160 likes | 375 Views
CORBA. Common Object Request Broker Architecture…. …taking objects a step further!. Rapid changes in HW and OS lead to advantages of client/server systems Result: greater system complexity, user demand, management expectations
E N D
CORBA Common Object Request Broker Architecture… …taking objects a step further!
Rapid changes in HW and OS lead to advantages of client/server systems • Result: greater system complexity, user demand, management expectations • Additional pressure from the necessity to maintain legacy systems
Object Management Group, (OMG) formed in 1989 Focus on integration of systems and applications across heterogeneous platforms After soliciting input, CORBA standard was defined and introduced in 1991
CORBA PROVIDES HIGH-LEVEL OBJECT ORIENTED INTERFACE!!! The only REAL competitor is, of course… …MICROSOFT DCOM
CORBA …allows applications and their objects to communicate with each other no matter where they are and or who designed them!!
ORB request SERVER/OBJECT IMPLEMENTATION CLIENT ORB Result/ error • When introduced in 1991, CORBA defined the Interface Design Language, (IDL), and Application Programming Interface, (API) • These allow client/server interaction within a specific implementation of an Object Request Broker, (ORB)
IDL... A technology independent syntax for describing object encapsulation <specification> ::= <definition>+ <definition> ::= <type_dcl> “;” | <const_dcl> “;” | <except_dcl> “;” | <interface> “;” | <module> “;” An example of the syntax
CORBA... …it even has its own “hello world”!! import HelloWorld.*; public class HelloWorldImpl implements SimpleHelloWorldServant{ private final java.lang.String myString = "Hello World!"; public synchronized java.lang.String sayHello() throws sunw.corba.SystemException { return myString; } } The first thing we must do is define the interface to the serving object in OMG IDL: #ifndef _HELLOWORLD_IDL #define _HELLOWORLD_IDL module HelloWorld { interface SimpleHelloWorld { string sayHello(); }; }; #endif
ORB request SERVER/OBJECT IMPLEMENTATION CLIENT ORB Result/ error ORB is “middleware” Based on client/server model of distributed computing, CORBA inserts a “broker” between client and server
Broker provides basic messaging and communication between client and server, “insulating” applications from the specifics of the system configuration Client “transparently” invokes methods on server, either on same machine or across network
The ORB : • intercepts calls • finds object • invokes method • passes parameters • returns results or error messages REGARDLESS OF THE OBJECTS LOCATION, ITS PROGRAMMING LANGUAGE OR EVEN THE OPERATING SYSTEMS INVOLVED!!
Application software client Object implementation skeleton Object Adapter adapter DLL stub Object Request Broker, (ORB) IDL generates ‘stubs’ and ‘skeleton’ programs for each interface ‘Stub’ acts like a local function call, providing interface to ORB ‘Skeleton’ is server side implementation of IDL interface
Application software client Object implementation skeleton Object Adapter adapter DLL stub Object Request Broker, (ORB) Skeletons and stubs… …return the results and error messages
Application objects CORBAdomains CORBAfacilities Object Request Broker CORBAservices The role of CORBA and the ORB are defined in the Object Management Architecture Included within the OMA are four object categories:
The four categories of the OMA: • CORBAservices: creation/movement of objects, queries/transactions, concurrency control, directory servi ces • CORBAdomains are ‘vertical market’ standards. For example: financial, medical, telecommunications and manufacturing • CORBAfacilities include compound document and system management. Both can be applied across multiple vertical domains for added functionality • Applications: user defined and proprietary interfaces
The result? • Programmer free to design system as they see fit, ORB defines application protocol via IDL • Programmer free to choose language, environment and OS • ORB allows integration of existing components into a network object architecture • now possible to integrate existing systems with off-the- shelf products CORBA... …represents the next step in software re-use