Académique Documents
Professionnel Documents
Culture Documents
UNIT - III
CORBA COMPONENT TECHNOLOGIES
Java and CORBA – Interface Definition language – Object Request Broker – system object
model – portable object adapter – CORBA services – CORBA component model – containers –
application server – model driven architecture
3.1.JAVA and CORBA:
Java :
Pure object oriented language.
Non distributed.
Contribution to Distributed Computing
o Platform independent.
o Applets
o RMI-support of DC.
Editions
o J2SE - standard edition consisting of CORBA standard, IDL based communication.
o J2ME - Micro edition for Consumer devices (pager/smart cards)
o J2EE - Enterprise edition for EJB, Servlets.
Java RMI :
A network of heterogeneous machines is seen as a homogeneous network of Java virtual
machines.
Transparency of access to remote objects: remote method invocation looks like local
method invocation, modulo exception handling.
CORBA :
What Is CORBA?
The Common Object Request Broker Architecture (CORBA) is a unifying standard for
writing distributed object systems. The standard is completely neutral with respect to platform,
language, and vendor. CORBA incorporates a host of technologies and is very broad in scope.
The Object Management Group (OMG), a consortium of companies that began in 1989,
invented CORBA.
The OMG has defined a protocol called Internet Inter-ORB Protocol (IIOP, pronounced
“eye-op”). IIOP is the standard Internet protocol for CORBA.
Why Should I Care about CORBA?
There are several reasons:
You can use CORBA for legacy integration.
CORBAservices
i. CORBA services – Provides some basic system level services like Naming,
Persistence, and Event Notification.
ii. CORBA facilities – Set of high level functions applicable in areas like user
Interface & Information Management.
iii. CORBA domains – Specific to particular application domains
like finance, telecommunication and manufacturing.
Application objects – Provides the new business capabilities that are
created by the system implementers. The key to integrating app
objects is the spec. of std interfaces using the Interface Definition
Language . Once interface is in IDL, communication is independent
of
1) Physical location
2) Platform type
3) N/w protocol
4) Programming language
CORBA Object Implementation Model :
Protocol – GIOP (General Inter ORB Protocol)
Mapping of GIOP to TCP/IP => IIOP
IOR (Interoperable Object Reference) –
Mechanism through which objects are accessed through the IIOP & between ORB
Java RMI :
S.No. PROS CONS
1 Portable across many platform Tied only to platforms with java support
2 Can Introduce new code to foreign Security threats with remote code execution,
JVMs and limitations are enforced by security
restriction
3 Java developers may already have Learning curve for developers that have no
experience with RMI RMI experience is comparable with CORBA.
4 Existing system may already use RMI Can Only operate with java systems . No
the cost and time to convert to a new support legasy systems written in C+
technology may prohibitive. +,Ada,Fortran,Cobol.
CORBA :
S.No. PROS CONS
1 Services can be written and executed with Describing services require the use
different language with different platform through of an IDL which must be learned.
IDL.
2 With IDL , the interface is clearly separated from Some tools may not integrate new
implementation changes with existing code.
3 CORBA support primitive data types and wide CORBA does not support the
range of data structures. transfer of objects or code.
4 CORBA is an easy way to link objects and CORBA specifications is still in a
systems together. state of flux.
5 CORBA system may offer greater performance Speed may be traded off against ease
of use for pure java systems.
Understanding of how CORBA Work :
Object Request Brokers : (ORB)
An Object Request Broker (ORB) facilitates network communication. ORBs enable
disparate applications to communicate without being aware of the underlying communications
mechanism. They are responsible for finding objects to service method calls, handling parameter
passing, and returning results.
Numerous commercial and Open Source CORBA ORBs for different platforms and
programming languages are available on the market. Some examples are Iona Orbix, Borland
VisiBroker, and the Open Source ORBs TAO and JacORB.
RoleA Figure
Relationship
B
Document
RoleC AA
Relationship
A
RoleE
Icon
3)Query Service:
- allows application to perform queries on CORBA objects.
- General purpose set of software interface for query objects.
- Query objects are used to parse queries and execute and return query result.
- Used in database products – supports both relational & object database model.
- Supports (1) static query (2) dynamic query.
Static query :
Persistent Persistent
client object
ID
Connect,
dis
OMG IDL
connect,
Persisten Persistent
store,
ce object restore,
protocol mgr delete
Data
store
1-
restore Persistent 2-
Client restore
object
4- Persistent
data
object mgr
3-
restore
Persistent data
service
2) Concurrency Service :
• Framework for managing concurrent object access
– Analogous to multithreading support in C++/Java
– Facilities for interfacing with transaction service
• Concurrency Service assumes usage of locks
– Read, write-locks, multi-possession, two-phase locks
– Conflicts with existing locks are resolved by a first-come first-served
queuing model
• Interfaces to represent resources:
– LockSet, TransactionalLockSet
– LockSetFactory interface for object creation
3) Transaction Service (contd.)
• Transaction can involve a series of remote method calls
– Whole transaction is rolled back when a significant error is encountered
– Transaction contexts are propagated along the way
• Service provides framework for notification and management of transaction boundaries
Panimalar Engineering College , Chennai.
Sri - 36
Component Based Technology Unit - III
– Little help with implementation of rollback operations
• Interfaces:
– Current interface: start and end of transactions
– Control interface: manipulation of ongoing transactions
– Terminator, Coordinator, Resource objects
• Depends on Concurrency and Persistent Object Services
3.7.CORBA COMPONENT MODEL(CCM):
Introduction:
The CORBA Component Model (CCM) is a specification for creating server-side scalable
,language-neutral, transactional, multi-user and secure enterprise-level applications.
CCM component model is an extension of EJB.
CCM – Compliant products would go beyond the current tendency of J2EE application
servers that largely use CORBA only as an interoperable connectivity standard via
IIOP.
CCM components itself consists of multiple segments.
Goals:
Separating configuration concerns into aspects:
– Server configuration
– Object/service configuration
– Application configuration
– Object/service deployment
CCM Architecture:
A typical CCM architecture consists of
1. CCM Containers
2. CORBA components that run in these containers
3. The portable Object Adapter (POA)
4. The Object Request Broker(ORB)
5. Other CORBA objects services like CORBA Transactions, CORBA Security,
CORBA Persistence ,CORBA Events ,etc;
The container manages a component. It creates and uses a POA with requested features for
specific component category. Client can use external interfaces of a component to interact with
component and home interfaces to manage life cycle of a component.
a. External API types:
The external API types of a component are the contract between the component developer
and the component client. It consists of two types of interfaces mainly home interface and
application interface. Home interface allows client to obtain reference to one of the application
interfaces the component implements. From Client’s prospective two design patterns are
supported namely factory patterns for creating new components and finder patterns for existing
components.
b. The container API type:
The container API defines a API framework, i.e. contract between specific component and
container. It defines two types of container APIs namely session APIs and entity APIs depending
on component category.
CORBA Usage Model:
A CORBA Usage specifies the required interaction pattern between the container, the POA and
the CORBA services.
Stateless: which uses transient object reference in conjunction with a POA servant which
can support any objected
Conversational: which uses transient references with a POA servant that is dedicated to
specific objected
Durable: Which uses persistentence references with POA servant that is dedicated to a
specific obectid
Servant Programming Environment:
Method: This policy causes the container to activate the component on every operation
request and to passivate when that operation is completed.
Transaction: This policy causes the container to activate the components on the first operation
of request within transaction and leave it until transaction completes.
Component: This policy causes the container to activate the component on the first operation
and remains active until component implementation requests to passivate.
Container : This policy cause the container to activate component on the first
operation request and leave it active until container decides to
passivate it.
2.TRANSACTION:
CORBA component supports both self-managed transaction through containers APIs Or
container managed transaction by using set of defined policies.
NOT_SUPPORTED The component does not support transactions. If client sends transaction
to the component, it remains suspended until component completes the
operation.
REQUIRED The component requires a current transaction to execute successfully. If
the operation is invoked without a transaction context, the container starts
new transaction and commits or rollback once operation is completed by
component.
SUPPORTS This component will support transaction if one is available.
REQUIRES_NEW The component requires its own transaction to execute successfully. If
client sends transaction context it'll remain suspended until the new
transaction is completed.
Panimalar Engineering College , Chennai.
Sri - 44
Component Based Technology Unit - III
MANDATORY The component requires the client be in a current transaction before this
operation is invoked.
NEVER The component required that client not be in current transaction
before this operation is invoked.
3. Security
The security policy is applied consistently to all categories of components. Access
permissions are defined by the deployment descriptors associated with the component
4. Event
CORBA components use a simple subset of the CORBA notification service to emit and
consume events
5.Persistence
To make component state durable , entity container API make use of persistence
mechanism .It support 2 types of persistent support.
1) Container Managed Persistence 2) Self Managed Persistence
Meta Models :
This is the way to describe the semantics of the models.