Upload
elizabeth-harrison
View
248
Download
0
Tags:
Embed Size (px)
Citation preview
What is CORBA
Common Object Request Broker Architecture Specification of a Standard
Product of OMG(Object Management Group) Consortium 700+ companies Exception of Microsoft(Dcom)
Middleware
Definitions
Distributed:Dispersed across processes
Hetrogeneous:Located on “different” machines
Object Oriented computing.
Motivation behind CORBA
Platform and Language dependant software
Monolithic applications
Consumers and Developers are tied
The CORBA ORB
Responsible for the communication between applications
Middleware between servers and clients
Handles the “talking” between applications
The Client
Object, Component or application
Make requests for services from servers
Can be a client for some requests and a server for
other requests
The Server(Object Implementation)
Provides a response to requests for services
Can be a server for some requests and a client for
other requests
The ORB core with IIOP(Internet Inter-Orb Protocol)
ORB core
Responsible for communicating requests
Identify and locate objects
Handle connection administration
Deliver Data
• ORB 可視為一種軟體的匯流排 (software bus)
• ORB 連接不同的物件,並隱藏了下列幾點:– 物件位置– 物件實作– 物件執行狀態– 物件通訊機制
• 各廠商只要遵循 ORB 對外的界面標準,至於內部可以由各廠商自行決定實作 ORB 的方法。
The ORB core with IIOP(Internet Inter-Orb Protocol)
IIOP developed by OMG
Handles communication between ORBs on TCP/IP
based networks
ORBs should support IIOP in order to be CORBA
compliant
The ORB core with IIOP(Internet Inter-Orb Protocol)
IIOP
IDL Client stubs
IDL(Interface Definition Language) CORBA definition of an Interface(object) Create Client stubs and server skeletons when compiled
IDL client stub A code written in IDL Use them 99.99% The other alternative is DII
Module <identifier>{ <type declarations>; <constant declarations>; <exception declarations>;
interface <identifier> [: <inheritance> ] { <type declarations>; <constant declarations>; <attribute declarations>; <exception declarations>;
[<op_type>] <identifier> ( <parameters> ) [raises exception] [context]; }
interface <identifier> [: <inheritance> ] :}
IDL(Interface Definition Language)
DII(Dynamic Invocation Interface)
The other alternative to invoke a server operation
Allow dynamic creation and invocation of requests to objects
The IDL server skeletons
Correspondant to client stub on the server side.
Provides the means by wich a server’s operations can be
accessed
Keeps the server from collapsing
Sequence of a method Call
1. Transforming the call into a request
2. Finding the server for the request
3. Preparing the server to receive the request
4. Communicating the data making up the request
5. Delivering the return reply
Transforming Method calls into requests
1. The client obtains an object reference for the server
2. The Client packages the reference,the method’s name & parameters and the type of return value
3. The Client executes the server’s method by calling the corresponding method in the Client stub
4. Inside the client stub the call is turned into a request
5. An ORB Interface operation is called to pass the request to the ORB
Finding the server for the request
1. ORB uses the information in the object reference to locate the server’s object
2. Determine the specific port number that the server object is accepting connections on
Preparing the server to receive the request
ORB sends a message to the
server’s Object adapter via the
IIOP “Activate” the server
or
ensure that it is already up and
running
Communicating the data making up th request
The client ORB sends the data
to the server’s ORB
The server skeleton turns the
data into a target language
specific method call
The server skeleton performs
the call on the server
implementation
Delivering the return reply
Changing the data back into
the client machine form
Send the data back to the
Client ORB and ultimately to
the Client stub
Object Management Architecture
Application Objects
Client Object Implementation
Common Object Services(COSS)
Common Facilities(CFA)
Object Request Broker (ORB)