Introduction to CORBA
-
Upload
kaseem-bond -
Category
Documents
-
view
26 -
download
0
description
Transcript of Introduction to CORBA
![Page 1: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/1.jpg)
Introduction to CORBA
Organizational Communications and Technologies
Prithvi N. RaoH. John Heinz III School of Public
Policy and ManagementCarnegie Mellon University
![Page 2: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/2.jpg)
Readings
Posting on the Class Web Site
![Page 3: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/3.jpg)
Objectives Understand goals of distributed object
technology
Examine evolution of Software Bus
Cite CORBA challenges
Review OO support in CORBA
![Page 4: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/4.jpg)
Seven Layer Model RevisitedOSI Model Revised Model
Application
Presentation
Session
Transport
Network
Data Link
Physical
Religion
Politics
Finance
Environment
Stacks
Interfaces
Substrates
![Page 5: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/5.jpg)
Evolution of the Software Bus
Remote Msgs Remote Procedure Distributed Objects
LPC
IPC
UDP/TCP
DDE
DLL
OLE1.0
NCS RPC
ONC RPC
SHL RRBC
ONC+
DCE
OLE2.0 DCOM
CORBA/IIOP
JAVA/RMI
COM/CORBA
![Page 6: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/6.jpg)
Terms
Abbreviation Name Purpose
LPC
UDP
TCP
IPC
SHL
RRBC
DDE
DLL
OLE 1.0
Local Procedure Call Parameterized code segments
User Datagram Protocol Intermachine messaging
Transmission Control ProtocolReliable delivery of UDP messages
Inter-process CommunicationMessaging between processes
Shared Library/Object Dynamic Linking of shared code
Release to release binary compat.Support for versioning of shared Libs.
Dynamic data exchange uSoft’s messaging between procs.
Dynamic Link Library uSoft’s shared library/object
Object Linking and EmbeddingExtension of DDE for windows events
![Page 7: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/7.jpg)
Terms
Abbreviation Name Purpose
COM
DCOM
RPC
NCS RPC
ONC RPC
CORBA
IIOP
RMI
SNMP
Component Object ModelExtension DLL/C++ supporting versioning
Distributed COM Extension of OLE2.0 supporting IPC
Remote Procedure Call Proxies making RPC look like LPC
Network Computing ServiceApollo’s inter-machine marshalling
Open Network ComputingSun’s inter-machine marshallingCommon Object RequestBroker Architecture Extends NCS/DCE for dist. Object comm.
Internet Inter-ORB ProtocolCORBA 2.0 standard marshalling protocol
Remote Method InvocationDist. Java-java ipc marshalling protocol
Simple Network ManagementProtocol
Remote attribute query mechanism
![Page 8: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/8.jpg)
Software Interconnect Bus
Software Interconnect Bus
Application Objects Common Facilities
Services
![Page 9: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/9.jpg)
Distributed Objects
Objects + Remote Procedure Calls + Threaded Execution
CORBA brings together three technologies
![Page 10: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/10.jpg)
Why do we care? Interested in heterogeneous distributed
application development
Advanced complexity of applications Security Transactions Naming
Open standard development
![Page 11: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/11.jpg)
Distributed Objects: Combining Three Technologies
Objects + Remote Procedure Calls + Threaded Execution
InheritanceEncapsulationPolymorphism
DistributionHeterogeneityProcedural Model
ConcurrencyPrioritiesPre-emption
![Page 12: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/12.jpg)
The Basic Idea Take an Object
Make it distributable
Make it distributed
![Page 13: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/13.jpg)
Terminology Distributed
Objects and components are dispersed across processes that may exist on the same machine or located across machines on a network.
Heterogeneous
Application whose parts are located on machine that vary by hardware or by operating system or by programming language.
Object-Oriented
Applications written using objects.
![Page 14: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/14.jpg)
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
![Page 15: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/15.jpg)
General ORB Structure
CLIENTObject
Implementation
Object Request Broker
Dynamic II IDL Stubs ORB Interface
IDL Skeleton
Object Adapter
Op(args)
![Page 16: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/16.jpg)
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
![Page 17: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/17.jpg)
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
![Page 18: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/18.jpg)
Requesting Service Using CORBA (and DCE)
Client Server
RuntimeSystem
Application Code
Client stub generatedby IDL compiler
Server Code
Server stub generatedby IDL compiler
Runtime System
![Page 19: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/19.jpg)
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
![Page 20: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/20.jpg)
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.
![Page 21: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/21.jpg)
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
![Page 22: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/22.jpg)
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
![Page 23: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/23.jpg)
CORBA and Object Oriented Support Encapsulation
Data 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.
![Page 24: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/24.jpg)
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.
![Page 25: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/25.jpg)
CORBA and Object Oriented Support Inheritance
Inheritance 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.
![Page 26: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/26.jpg)
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.
![Page 27: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/27.jpg)
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
![Page 28: Introduction to CORBA](https://reader035.fdocuments.us/reader035/viewer/2022062304/56812bd6550346895d904076/html5/thumbnails/28.jpg)
Summary Examined evolution of distributed object
technology
Introduced CORBA services
Examined OO support in CORBA