250 likes | 383 Views
CORBA: An Overview. Mojtaba Hosseini. Outline. Motivation Introduction to CORBA Evolution of CORBA CORBA Core Interoperability and internetworking Conclusion. Motivation. Applications working under different environments Operating System Programming Language
E N D
CORBA: An Overview Mojtaba Hosseini
Outline • Motivation • Introduction to CORBA • Evolution of CORBA • CORBA Core • Interoperability and internetworking • Conclusion
Motivation • Applications working under different environments • Operating System • Programming Language • Distributed applications such as IP telephony must communicate • Over different network protocols • How can these applications work together?
Interoperability Problem Mac OS Windows OS Smalltalk IP Telephony Application Java IP Telephony Application ? ? Network architectures and standards (SIP, ISDN, IP, ATM, etc) Linux OS C++ IP Telephony Application
Introduction to CORBA • Common Object Request Broker Architecture • Interface Definition Language (IDL), Object model and Object Request Broker (ORB) as key elements • Main idea: provide standardized interfaces for transparent requesting/providing of services
Object: entity providing service Client: entity requesting service Interface compiled into skeleton for object Interface compiled into stub for client ORB informs object of service ORB takes request from client Main Idea Behind CORBA • Client requests service without knowing where provider is and in what environment (programming language, operating system) • Object provides service without knowing about the client’s environment or location
1999 CORBA 3.0 1998 Facilities 1996 1991 Interoperability CORBA Core Evolution of CORBA Real-time Fault Tolerance Horizontal, Vertical Facilities Interoperability Networking IDL, Object Model, ORB
Schedule • CORBA IDL • Dynamic Invocation • ORB Interface • Object Adaptor • Interoperability • New features
IDL • IDL used to define service interface • IDL is defined just like any programming language: • defines keywords (e.g. “void”) • literals (e.g. character literal ‘x’) • Identifiers (e.g. int numb) • restrictions on these (e.g. identifier can’t start with a number)
IDL Grammar • IDL also defines a grammar • IDL can then be mapped into executable programming languages such as Java/C++
Schedule • CORBA IDL • Dynamic Invocation • ORB Interface • Object Adaptor • Interoperability • New features
Dynamic Invocation and Skeleton • IDL stub/skeleton not the only way to request/provide services • What if we don’t know about the interface at compile time? But we know what service we want to request? • Need Dynamic Invocation
Dynamic Invocation • Client defines “signature” of service: name, parameters, return value, context • ORB gives this to the object and object determines which method to invoke • Useful for providing different interfaces for the same service
Client charge(x,y) charge(x,y) Dynamic Invocation Interface Dynamic Skeleton Interface Charge(y) Client Charge() charge(y) Dynamic Invocation Example • Three telephone call charging policies: • Depending on originating/terminating location • Depending on terminating location only • Constant billing
Schedule • CORBA IDL • Dynamic Invocation • ORB Interface • Object Adaptor • Interoperability • New features
ORB Interface • Provides common interfaces such as: • ORB operations: shutdown, initialize • Object operation: are two objects equivalent? • Policy operation: deny/allow services • Policy Management: overriding policies • ORB exceptions: no implementation available
Schedule • CORBA IDL • Dynamic Invocation • ORB Interface • Object Adaptor • Interoperability • New features
Portable Object Adaptor • Allow for multiple object implementations to exist on server side (e.g. multiple billing services for several companies) VendorA Billing Service VendorB Billing Service Choose billing Service based on policy
Schedule • CORBA IDL • Dynamic Invocation • ORB Interface • Object Adaptor • Interoperability • New features
GIOP/IIOP • Multiple vendors implementing ORBs • A need for ORBs to interface with one another in a standard way: General Inter-ORB Protocol • GIOP: generic protocol, no implementation • IIOP (Internet Inter-ORB Protocol) is the TCP/IP implementation of GIOP
CORBA and Interoperability Mac OS Windows OS Smalltalk IP Telephony Application Java IP Telephony Application ORB ORB GIOP GIOP Network architectures and standards (SIP, ISDN, IP, ATM, etc) Linux OS ORB C++ IP Telephony Application
Schedule • CORBA IDL • Dynamic Invocation • ORB Interface • Object Adaptor • Interoperability • New features
More Recent CORBA features • Domains such as Transportation, Health Care, Finance, etc. developed IDL interface common in their domain • CORBA standardized these for the domains • More recent CORBA versions include • Real-time capabilities • Fault-tolerance
Conclusion • There exist different environments in which telephony applications operate • There is a need for these applications to be interoperable • CORBA provides the standard way of doing so