1 / 28

Introduction to CORBA

Introduction to CORBA. Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie Mellon University. Readings. Posting on the Class Web Site. Objectives. Understand goals of distributed object technology

kaseem-bond
Download Presentation

Introduction to CORBA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to CORBA Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie Mellon University

  2. Readings Posting on the Class Web Site

  3. Objectives • Understand goals of distributed object technology • Examine evolution of Software Bus • Cite CORBA challenges • Review OO support in CORBA

  4. Seven Layer Model Revisited OSI Model Revised Model Application Religion Presentation Politics Session Finance Environment Transport Network Stacks Data Link Interfaces Substrates Physical

  5. Evolution of the Software Bus Remote Msgs Remote Procedure Distributed Objects DLL LPC DDE OLE1.0 OLE2.0 DCOM DCE COM/CORBA NCS RPC ONC RPC ONC+ CORBA/IIOP UDP/TCP SHL RRBC JAVA/RMI IPC

  6. Terms Name Abbreviation Purpose LPC Local Procedure Call Parameterized code segments User Datagram Protocol UDP Intermachine messaging TCP Transmission Control Protocol Reliable delivery of UDP messages Messaging between processes IPC Inter-process Communication SHL Shared Library/Object Dynamic Linking of shared code RRBC Release to release binary compat. Support for versioning of shared Libs. Dynamic data exchange DDE uSoft’s messaging between procs. DLL Dynamic Link Library uSoft’s shared library/object OLE 1.0 Object Linking and Embedding Extension of DDE for windows events

  7. Terms Name Abbreviation Purpose Component Object Model Extension DLL/C++ supporting versioning COM DCOM Distributed COM Extension of OLE2.0 supporting IPC RPC Remote Procedure Call Proxies making RPC look like LPC NCS RPC Apollo’s inter-machine marshalling Network Computing Service ONC RPC Open Network Computing Sun’s inter-machine marshalling Common Object Request Broker Architecture Extends NCS/DCE for dist. Object comm. CORBA Internet Inter-ORB Protocol CORBA 2.0 standard marshalling protocol IIOP RMI Remote Method Invocation Dist. Java-java ipc marshalling protocol SNMP Simple Network Management Protocol Remote attribute query mechanism

  8. Software Interconnect Bus Application Objects Common Facilities Software Interconnect Bus Services

  9. Distributed Objects CORBA brings together three technologies Objects + Remote Procedure Calls + Threaded Execution

  10. Why do we care? • Interested in heterogeneous distributed application development • Advanced complexity of applications • Security • Transactions • Naming • Open standard development

  11. Distributed Objects: Combining Three Technologies Objects + Remote Procedure Calls + Threaded Execution Concurrency Priorities Pre-emption Inheritance Encapsulation Polymorphism Distribution Heterogeneity Procedural Model

  12. The Basic Idea • Take an Object • Make it distributable • Make it distributed

  13. Terminology • DistributedObjects and components are dispersed across processes that may exist on the same machine or located across machines on a network. • HeterogeneousApplication whose parts are located on machine that vary by hardware or by operating system or by programming language. • Object-OrientedApplications written using objects.

  14. CORBA Challenges • Presents two challenges of developing distributed systems • Making distributed application development no more difficult than developing centralized programs • Providing an infrastructure to integrate application components into a distributed application • Challenges are easier said than done due to: • Partial failures • Impact of latency • Load balancing • Event ordering

  15. General ORB Structure Op(args) CLIENT Object Implementation IDL Skeleton Object Adapter Dynamic II IDL Stubs ORB Interface Object Request Broker

  16. CORBA Interface Definition Language (IDL) • OMG IDL is an object-oriented interface definition language • Used to specify interface containing methods and attributes • OMG IDL support interface inheritance both single and multiple inheritance • OMG IDL is designed to map onto multiple programming languages • C, C++, Smalltalk, COBOL, Modula 3, DCE

  17. OMG IDL Compiler • OMG IDL compiler generates client stubs and server skeletons • Stubs and skeletons automate the following activities in conjunction with the ORB • Client proxy factories • Parameter marshalling and unmarshalling • Implementation class interface generation • Object registration and activation • Object location and binding

  18. Requesting Service Using CORBA (and DCE) Application Code Server Code Client stub generated by IDL compiler Server stub generated by IDL compiler Runtime System Runtime System Client Server

  19. CORBA Services (OMG specified) • Services essential for implementing objects • Concurrency control service protects integrity of an object’s data when multiple requests to object are processed concurrently • Event service that supports notification of interested parties when program-defined events occur • Externalization service that supports conversion of object state to a form that can be transmitted between systems by means other than a request broker • Life Cycle service that support creation, copying, moving and destruction of objects

  20. CORBA Services (OMG specified) • Naming service that permits object reference to be retrieved through associations between names and objects and for those associations to be created and destroyed • Persistent Object service that supports persistence of an object’s state when the object is not active in memory and between application executions. • Query service that supports operations on sets and collections of objects. • Relationship services that provides for creating, deleting, navigating and managing relationships between objects • Containment relationship between a “folder” object and “document” objects contained in that folder.

  21. CORBA Services (OMG Specified) • Transaction service provides support for ensuring that a computation consisting of one or more operations on one or more objects satisfies the requirements of: • Atomicity in case of failure • Isolation – transactions run concurrently but results are the same as if they ran serially • Durability – result of successful transaction is never lost

  22. CORBA Services (OMG specified) • Security service that supports authentication, authorization, integrity and privacy to degrees and using mechanisms yet to be determined. • Time service that provides synchronized clocks to all objects regardless of location. • Collection service that support creation and manipulation of collections of objects. • Replication service that would provide for the explicit replication of objects in a distributed environment for the purpose of fault tolerance and for management of consistency of replicated copies. • Trader service that provides matchmaking service between clients seeking services and objects offering services

  23. CORBA and Object Oriented Support • EncapsulationData and functions manipulating data are “encapsulated” in object. This enforces data hiding since the only way to access an object’s data is through the operations in the object’s public interface.

  24. CORBA and Object Oriented Support • Abstraction Abstraction of common features shared by objects in classes. A class definition describes the data associated with each instance of the class, defines the set of operations that can be invoked on an instance of the class and prescribes the functions that are executed in response to requests for those operations.

  25. CORBA and Object Oriented Support • InheritanceInheritance of interfaces and implementations. This is the mechanism that supports the specialization or refinement of classes into subclasses. It is also one example of reuse inn object-oriented programming.

  26. CORBA and Object Oriented Support • Polymorphism Polymorphism is the ability for a request to specific operation to be handled differently depending on the type of object on which it is invoked. Example: subclasses of a common superclass may override functions defined by the superclass to differentiate how instances of the subclasses and superclass behave.

  27. CORBA and Object Oriented Support • Creation of new objects and classes • Late binding of operation invocations to function calls allow programs to be written without regard for types objects they will manipulate

  28. Summary • Examined evolution of distributed object technology • Introduced CORBA services • Examined OO support in CORBA

More Related