distributed systems
play

Distributed Systems Principles and Paradigms Chapter 09 (version - PDF document

Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001 ) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20. Tel: (020) 444 7784 steen/


  1. Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001 ) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20. Tel: (020) 444 7784 � steen/ E-mail:steen@cs.vu.nl, URL: www.cs.vu.nl/ 01 Introduction 02 Communication 03 Processes 04 Naming 05 Synchronization 06 Consistency and Replication 07 Fault Tolerance 08 Security 09 Distributed Object-Based Systems 10 Distributed File Systems 11 Distributed Document-Based Systems 12 Distributed Coordination-Based Systems 00 – 1 /

  2. � � � Distributed Object-Based Systems CORBA DCOM Globe 09 – 1 Distributed Object-Based Systems/

  3. � � � � � CORBA CORBA: C ommon O bject R equest B roker A rchitecture Background: Developed by the Object Management Group (OMG) in response to industrial demands for object- based middleware Currently in version #2.4 with #3 (almost) done CORBA is a specification : different implementa- tions of CORBA exist Very much the work of a committee: there are over 800 members of the OMG and many of them have a say in what CORBA should look like Essence: CORBA provides a simple distributed-object model, with specifications for many supporting ser- vices it may be here to stay (for a couple of years) 09 – 2 Distributed Object-Based Systems/9.1 CORBA

  4. CORBA Overview (1/2) Client machine Server machine Client application Object implementation Static Dynamic ORB Object Skeleton Dynamic ORB IDL Invocation interface adapter Skeleton interface proxy Interface Interface Client ORB Server ORB Local OS Local OS Network Object Request Broker (ORB): CORBA’s object bro- ker that connects clients, objects, and services Proxy/Skeleton: Precompiled code that takes care of (un)marshaling invocations and results Dynamic Invocation/Skeleton Interface (DII/DSI): To allow clients to “construct” invocation requests at runtime instead of calling methods at a proxy, and having the server-side “reconstruct” those request into regular method invocations Object adapter: Server-side code that handles incom- ing invocation requests. 09 – 3 Distributed Object-Based Systems/9.1 CORBA

  5. CORBA Overview (2/2) Interface repository: Database containing interface definitions and which can be queried at runtime Implementation repository: Database containing the implementation (code, and possibly also state) of objects. Effectively: a server that can launch ob- ject servers. 09 – 4 Distributed Object-Based Systems/9.1 CORBA

  6. � � � � CORBA Object Model Essence: CORBA has a “traditional” remote-object model in which an object residing at an object server is remote accessible through proxies Observation: All CORBA specifications are given by means of interface descriptions, expressed in an IDL. CORBA follows an interface-based approach to ob- jects: Not the objects, but interfaces are the really im- portant entities An object may implement one or more interfaces Interface descriptions can be stored in an inter- face repository, and looked up at runtime Mappings from IDL to specific programming are part of the CORBA specification (languages in- clude C, C++, Smalltalk, Cobol, Ada, and Java. 09 – 5 Distributed Object-Based Systems/9.1 CORBA

  7. CORBA Services Service Description Collection Facilities for grouping objects into lists, queue, sets, etc. Query Facilities for querying collections of objects in a declara- tive manner Concurrency Facilities to allow concurrent access to shared objects Transaction Flat and nested transactions on method calls over multi- ple objects Event Facilities for asynchronous communication through events Notification Advanced facilities for event-based asynchronous com- munication Externalization Facilities for marshaling and unmarshaling of objects Life cycle Facilities for creation, deletion, copying, and moving of objects Licensing Facilities for attaching a license to an object Naming Facilities for systemwide naming of objects Property Facilities for associating (attribute, value) pairs with ob- jects Trading Facilities to publish and find the services an object has to offer Persistence Facilities for persistently storing objects Relationship Facilities for expressing relationships between objects Security Mechanisms for secure channels, authorization, and au- diting Time Provides the current time within specified error margins 09 – 6 Distributed Object-Based Systems/9.1 CORBA

  8. Communication Models (1/2) Object invocations: CORBA distinguishes three dif- ferent forms of direct invocations: Request type Failure sem. Description Synchronous At-most-once Caller blocks One-way Unreliable Nonblocking call Deferred syn- At-most-once Nonblocking, but can pick- chronous up results later Event communication: There are also additional fa- cilities by means of event channels : Push event to consumers Supplier Consumer Event channel Supplier Consumer Supplier Ask suppliers for new event Supplier Consumer Event channel Supplier Consumer Supplier 09 – 7 Distributed Object-Based Systems/9.1 CORBA

  9. Communication Models (2/2) Messaging facilities: reliable asynchronous and per- sistent method invocations: Client application 1. Call by the application Client Callback 4. Call by the ORB proxy interface 3. Response from server Client ORB 2. Request to server Client application 1. Call by the 4. Call by the application application Client Polling proxy interface 3. Response from server Client ORB 2. Request to server 09 – 8 Distributed Object-Based Systems/9.1 CORBA

  10. Processes Most aspects of processes for in CORBA have been discussed in previous classes. What remains is the concept of interceptors : Client application Client proxy Invocation request Request-level interceptor Client ORB Message-level interceptor Local OS To server Request-level: Allows you to modify invocation se- mantics (e.g., multicasting) Message-level: Allows you to control message-passing between client and server (e.g., handle reliability and fragmentation) 09 – 9 Distributed Object-Based Systems/9.1 CORBA

  11. � Naming Important: In CORBA, it is essential to distinguish specification-level and implementation-level object ref- erences Specification level: An object reference is considered to be the same as a proxy for the referenced ob- ject having an object reference means you can directly invoke methods; there is no separate client- to-object binding phase Implementation level: When a client gets an object reference, the implementation ensures that, one way or the other, a proxy for the referenced object is placed in the client’s address space: �✂✁☎✄✝✆✟✞✡✠☞☛✌✆☞✍✎✆✑✏✒✆✑✓✔✞✟✆✖✕✗✁☎✄✘☛✌✆☞✍✚✙ ✕✛✁☎✄✘☛✌✆☞✍✢✜ ✁✤✣✥✓✧✦✩★✪✕✛✫✭✬✯✮✱✰✟✲✟✳✵✴✷✶ ✸✺✹✼✻✘✲✟✽✭✾✘✲✟✽❀✿❂❁✩✴❄❃✤✬✧✻❅✴❇❆❉❈❊✙ Conclusion: Object references in CORBA used to be highly implementation dependent : different imple- mentations of CORBA could normally not exchange their references. 09 – 10 Distributed Object-Based Systems/9.1 CORBA

  12. Interoperable Object References (1/2) Observation: Recognizing that object references are implementation dependent, we need a separate refer- encing mechanism to cross ORB boundaries Solution: Object references passed from one ORB to another are transformed by the bridge through which they pass (different transformation schemes can be implemented) Observation: Passing an object reference ✄✆☎ from �✂✁ ORB A to ORB B circumventing the A-to-B bridge may be useless if ORB B doesn’t understand ✄✝☎ �✂✁ 09 – 11 Distributed Object-Based Systems/9.1 CORBA

  13. Interoperable Object References (2/2) Observation: To allow all kinds of different systems to communicate, we standardize the reference that is passed between bridges: Tagged Profile Interoperable Object Reference (IOR) Repository Profile Profile identifier ID IIOP Object key Components Host Port version Other server- POA Object specific information identifier identifier 09 – 12 Distributed Object-Based Systems/9.1 CORBA

  14. � � Naming Service Essence: CORBA’s naming service allows servers to associate a name to an object reference, and have clients subsequently bind to that object by resolving its name Observation: In most CORBA implementations, ob- ject references denote servers at specific hosts; nam- ing makes it easier to relocate objects Observation: In the naming graph all nodes are ob- jects; there are no restrictions to binding names to ob- jects CORBA allows arbitrary naming graphs Question: How do you imagine cyclic name resolu- tion stops? Observation: There is no single root; an initial con- text node is returned through a special call to the ORB. Also: the naming service can operate across different ORBs interoperable naming service 09 – 13 Distributed Object-Based Systems/9.1 CORBA

Recommend


More recommend