1 / 17

Distributed Programming

Distributed Programming. low level: sending data among distributed computations. network is visible (to the programmer) programmer must deal with many details. higher level: supporting invocations among distributed computations. network is invisible (to the programmer)

samson
Download Presentation

Distributed Programming

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. Distributed Programming • low level: sending data among distributed computations • network is visible (to the programmer) • programmer must deal with many details • higher level: supporting invocations among distributed computations • network is invisible (to the programmer) • programmer focuses on application

  2. args Calling Procedure Called Procedure Calling Procedure Called Procedure RPC Transport RPC Transport Server Stub Client Stub results args args results results request reply reply Remote Procedure Call

  3. Remote Object Systems proxy objects invoking object invoked object network objects

  4. Remote Invocation Issues • generating stubs/proxies • serialization or arguments and return values • heterogeneity of data representations • locating servers in a distributed environment • authentication of called and calling procedures • semantics of invocation (at-most-once, at-least-once, best-effort)

  5. IDL description Server Stub/Proxy Client Stub/Proxy Calling Procedure Called Procedure Transport Layer Transport Layer translator translator args results results request reply reply Interface Definition Language Language binding: how IDL is translated to a given programming language.

  6. IDL Elements modulemodulename { exceptionexceptionName { [type pname]* }; typedef type newtype; interfacenewInterface { oneway type fname(in type pname1); attributenewtype; }; interfacenewInterface2 : newInterface { type fname2 (outnewInterface pname3) raisesexceptionName; }; }; From: Ole Arthur Bernsen

  7. Simple IDL Example module Counter { interface Count { attribute long sum; long increment(); }; }; From: Ole Arthur Bernsen

  8. IDL Example typedef unsigned long AccountNumber; typedef unsigned long PersonalIdentificationNumber; exception NoSuchAccount {}; exception InvalidPin{}; exception InsufficientFunds {}; interface Account { struct AccountRecord { string owner; float balance; string lastaccess; }; void Credit (in float Amount); void Debit(in float Amount) raises (InsufficientFunds); void List (out AccountRecord List_R1); }; interface Sbank { Account Access (in AccountNumber acct, in PersonalIdentificationNumber pin) raises (NoSuchAccount, InvalidPin); }; From: Nigel Edwards

  9. a b x y z c x y c z Serialization • Issues: • how to represent base types (i.e. int) • how to represent structured types (arrays) • how to deal with references (pointers) • how to treat duplicated objects transforming a typed, highly structured object into a stream of bytes. Transfer syntax: the description of the encoded data stream.

  10. Corba • Goal: interoperability among application components • written in different programming languages • executing on heterogeneous architectures • communicating over different networks. Corba: Common Object Request Broker Architecture ORB: Object Request Broker From: Object Mangagement Group

  11. Role of the Object Request Broker • Application interfaces: interfaces for a specific application • Domain interfaces: interfaces shared across applications in a given application domain (publishing) • Common Facilities: generic services that might be needed in several domains (document structure) • Object Services: commonly needed across all applications (e.g., lifetime, naming, trading) From: Doug Schmidt

  12. Elements of Corba From:Kate Keahey (kksiazek@cs.indiana.edu)

  13. Role of IDL in Corba From: Object Mangagement Group

  14. Elements of Corba From: Doug Schmidt

  15. client IDL Skeletons ORB Interface IDL Stubs DII Object Adaptor IDL Skeletons ORB Interface IDL Stubs DII ORB Core Object Adaptor ORB Core Object Adaptor operating system operating system Corba Process Structure object ORB Daemon

  16. Corba Services • Naming - bind of names to objects • Events - asynchronous notification (*) • Lifecycle - object management • Relationship - maintaining relationships among objects • Transaction - structured, reliable, database operations (*) (*) - see more about later in the course

  17. Corba and Java Corba is still needed to fill in the gaps between Java and system developed in other languages.

More Related