![Page 1: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/1.jpg)
Distributed Software Systems with CORBA
Presented by:
Shruti Srivastava
05IT6015
Under the guidance of :
Prof. Debasis Samanta
![Page 2: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/2.jpg)
What is distributed System?
• “A distributed system is a collection of independent computers that appears to its user as a single coherent system”
Maartin Van SteenAndrew S. Tanenbaum
“A Distributed system is one in which components located at networked computers communicate
and coordinate their actions only by passing messages”
George CoulourisJean DollimoreTim Kindberg
![Page 3: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/3.jpg)
Characteristics of D.S.
• Concurrency of components • Lack of Global clock • Independent failures of
components
![Page 4: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/4.jpg)
Difficulty in designing D.S.
• Absence of global shared memory • Absence of Global Clock • Heterogeneity of the components • Concurrency of the processes
![Page 5: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/5.jpg)
Types of D.S. Architecture
• Client-server Architecture
Server
Client
Client
Server
![Page 6: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/6.jpg)
Distributed Object Architecture or
peer processors
Application
Coordination Code
Application
Coordination Code
Application
Coordination Code
![Page 7: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/7.jpg)
Need of a D.S.
• Resource Sharing
• Higher Performance
• Fault Tolerance
![Page 8: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/8.jpg)
Architectures for DS
• DCOM
• CORBA
• JAVA/RMI
• GLOBE – a file based system
![Page 9: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/9.jpg)
Object Management Group(OMG)
• Formed in 1989 to adopt the Distributed Object System so that the Object Oriented approach of a programming language can be used to develop software for a Distributed System
• Has more than 700 members- vendors, developers and end users.
![Page 10: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/10.jpg)
Object Modeling Architecture
The OMA is composed of an Object Model and a Reference Model. The Object Model defines how the objects distributed across a heterogeneous environment can be described, while the Reference Model characterizes interactions between those objects.
![Page 11: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/11.jpg)
OMA Interface Categories
Object Request Broker
Application Interface
ObjectServices
Domain Interface
Common Facilities
![Page 12: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/12.jpg)
CORBA(Common Object Request Broker Architecture) - 1995
• “CORBA is a middleware design that allows application programs to communicate with one another irrespective of their programming language, their hardware their software platforms, the network they communicate over and their implementation.”
- George Coulouris, Jean Dollimore, Tim Kindberg
![Page 13: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/13.jpg)
Main Features of CORBA
• ORB Core• OMG Interface Definition Language
(OMG IDL)• Interface Repository• Language Mappings• Stubs and Skeletons• Dynamic Invocation and Dispatch• Object Adapters• Inter-ORB Protocols
![Page 14: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/14.jpg)
ORB hides
• Object Location • Object Implementation • Object Execution State • Object Communication Mechanisms • Object Creation • Directory Service • Convert to String and Back
![Page 15: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/15.jpg)
OMG Interface Definition Language
// OMG IDLinterface Factory{ Object create();}; IDL is a declarative language, not a
programming language, it forces interfaces to be defined separately from object implementations
![Page 16: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/16.jpg)
Interface Repository
IDL Specification has to be compiled before it can be used by an application program
Distributed System has to be re-build every time its specification change
This is a problem when an application access a foreign object through a gateway
![Page 17: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/17.jpg)
Solution?
Interface Repository
- The Interface Repository provides the information about registered IDL interfaces to client and servers that requires it
![Page 18: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/18.jpg)
Language Mapping
• OMG IDL is just a declarative language, not a full-fledged programming language
• IDL features are mapped to the facilities of a given programming language
• IDL interfaces map to C++ classes, with operations mapping to member functions of those classes, modules map to C++ namespaces
![Page 19: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/19.jpg)
Stubs and Skeleton
• A stub is a mechanism that effectively creates and issues requests on behalf of a client
• A skeleton is a mechanism that delivers requests to the CORBA object implementation
• Dispatching through stubs and skeletons is often called static invocation
![Page 20: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/20.jpg)
![Page 21: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/21.jpg)
Dynamic Invocation and Dispatch
Interfaces for dynamic invocation:• Dynamic Invocation Interface (DII) —
supports dynamic client request invocation
• Dynamic Skeleton Interface (DSI) — provides dynamic dispatch to objects
The DII and DSI can be viewed as a generic stub and generic skeleton, respectively.
![Page 22: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/22.jpg)
Object Adapters
• An object adapter is an object that adapts the interface of another object to the interface expected by a caller.
![Page 23: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/23.jpg)
Responsibilities of object adapters
• Object registration • Object reference generation• Server process activation• Object activation • Request demultiplexing • Object upcalls- Without object adapters, the ability of
CORBA to support diverse object implementation styles would be severely compromised
![Page 24: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/24.jpg)
Inter- ORB Protocol
• General ORB interoperability architecture is based on the General Inter-ORB Protocol (GIOP), which specifies transfer syntax and a standard set of message formats for ORB interoperation over any connection-oriented transport
• IIOP (Internet IOP)determines how GIOP can be implemented using TCP/IP
![Page 25: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/25.jpg)
![Page 26: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/26.jpg)
Problem?
• Is the distributed system predictable in case of failures and asynchronous messaging ? – NO
• Solution- models like:– message queue– transaction process– virtual synchrony
![Page 27: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/27.jpg)
Message Queues (MQ)
![Page 28: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/28.jpg)
Advantages
This model is useful for applications that can be interconnected by an asynchronous, one way, “forward and forget” communication paradigm.
The advantage of the MQ model is that it is easy to use, implement, and understand.
It also supports disconnected operation of mobile equipment
![Page 29: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/29.jpg)
Transaction Processing Monitors
![Page 30: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/30.jpg)
Limitations
• They introduce substantial performance overhead and excessive serialization in many situations such as groupware applications and real-time market data feeds.
• They are hard to program.
![Page 31: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/31.jpg)
Virtual Synchrony Components:• Failure suspector service• Group abstraction Failure suspector service detects faulty
objects on the basis of timeoutIt only detects crash failures and assumes that
objects fail by crashing without emitting spurious messages
In an asynchronous system it is impossible to distinguish a crashed object from one that is very slow
![Page 32: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/32.jpg)
A Scenario:A client application mistakenly believes a server
object as faulty, due to a high temporary load on the server’s machine. However, another client application is able to interact with that server without any problem. Believing the server has crashed, the first client requests the run-time system to create a new instance of the server on another host. The result is that now two servers with an inconsistent internal state exist, and that both clients and servers believe that the system is running correctly. In reality, the clients are submitting update requests to two different servers, which places the system into an inconsistent state
![Page 33: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/33.jpg)
Solution
• Group abstraction of Virtual Synchrony
The object group abstraction allows programmers to assign a single object reference to a set of network objects that implement the same interface
• Use Roll Forward recovery
![Page 34: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/34.jpg)
Object Group in VS Model
![Page 35: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/35.jpg)
Limitation
It lacks high-level abstraction, standard APIs And framework, so applications may become hard to implement
![Page 36: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/36.jpg)
Comparison between TP, MQ, VS
![Page 37: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/37.jpg)
Comparison between CORBA and DCOM
FeatureFeature CORBACORBA DCOMDCOM
Abstraction Level
Java Integration
OS Platform Support All Java Implementation
Typed parameter support
Ease of configuration
![Page 38: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/38.jpg)
Distributed method invocation
State across Invocation
Dynamic discovery and Metadata support
Dynamic Invocation
Performance (remote ping)
Wire level security
![Page 39: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/39.jpg)
Wire level Transaction
Persistent object reference
URL based naming
Multilingual object Invocation
Language- neutral protocol
Intergalactic scaling
Open Standard
![Page 40: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/40.jpg)
References • Distributed System Concept and Design – Coulouris,
Dollimore, Kindberg• Distributed System Principles and Paradigms –
Tannenbaum, Van Steen• Software Engineering – Sommerville• Client/Server programming with Java and CORBA –
Robert Orfall, Dan Harkey• Constructing Reliable Distributed Communication
Systems with CORBA - Silvano Maffeis, Douglas C. Schmidt
• CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments - Steve Vinoski, IONA Technologies, Inc.
• The Open Agent Architecture _ A Framework for Building Distributed Software Systems - David L_ Martin, Adam J_ Cheyer, Douglas B_ Moran
• www.omg.org
![Page 41: Distributed Software Systems with CORBA Presented by: Shruti Srivastava 05IT6015 Under the guidance of : Prof. Debasis Samanta](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56649ea15503460f94ba4edc/html5/thumbnails/41.jpg)
Thank You