Design of Distributed Systems Programming of Interactive Systems

Design of Distributed Systems Programming of Interactive Systems Lecture 3 Fredrik Kilander Wei Li 11/2/2006 Distributed System Support for Ubiquitous computing

Agenda • RMI • Jini (Dynamic Service Discovery) • Overlay Networks – Web naming scheme – Data Representation (XML) • Web Service • System Architecture • Perspectives on interactive systems 11/2/2006 Distributed System Support for Ubiquitous computing 2

Binding a Client to a Server 2 -15 Endpoint= IP+Port (server, endpoint) pairs Client-to-server binding in DCE (distributed computing environment 1990 -) 11/2/2006 Distributed System Support for Ubiquitous computing 3

Java RMI • Clients get the service location directly from the registry • RMI Registry is known to both RMI Client and RMI Server http: //download. oracle. com/javase/tutorial/rmi/TOC. html RMI Registry 2 Lookup stub 3 5 Client 11/2/2006 stub 4 Distributed System Support for Ubiquitous computing 1 Service Register (Service Binding) stub 4

Passing Object by Value or Reference (RMI) • The object to send to another machine has to be Serializable. Machine C MP 3 Selector Skeleton Interface Method: void Play(); void Play (String filename); void Play (MP 3 Selector mps); Machine Aproxy 2 Media. Player Controller proxy 1 • The object to send has to have the class definition in the classpath of the receiving side • Setup security policy file Machine B Skeleton Media Player “http: //myhost/a. mp 3” Interface Method: void Play (); void Play (String filename); void Play (MP 3 Selector mps); Three cases: 1) Play () without parameters. // only method name will be sent 2) Play (“http: //myhost/a. mp 3”) // send filename as a copied object (value/copy) 3) Play (mps) { // send the copy of proxy 2 play(mps. get. Latest. MP 3()) // (reference to MP 3 Selector) } http: //java. sun. com/developer/online. Training/rmi/RMI. html 11/2/2006 Distributed System Support for Ubiquitous computing 5

Java Jini • Jini is a technology for building service- oriented architectures. • Jini defines a programming model which exploits and extends Java technology. • Jini is a generally stable, fault-tolerant, scalable, dynamic, and flexible solution. 11/2/2006 Distributed System Support for Ubiquitous computing 6

Java Jini • Services discover lookup servers and register with multiple properties • Clients discover lookup servers and query them for services • Discovery with multicast (LAN) or unicast (WAN) 11/2/2006 Distributed System Support for Ubiquitous computing 7

Java Jini • • • RMI: registry is co-located with the service Jini: lookup services can be anywhere RMI: client must know the registry host Jini: clients discover lookup services RMI: service found by name Jini: service found by name, attributes and interfaces 11/2/2006 Distributed System Support for Ubiquitous computing 8

Jini Two ways to connect to a Lookup Service: • Multicast to discover local lookup services automatically (i. e. previously unknown) • Unicast to connect to a lookup service on a known host (e. g. , remote subnet) 11/2/2006 Distributed System Support for Ubiquitous computing 9

Jini Two ways to connect to a Lookup Service: • Multicast (1 -M) to discover local lookup services automatically (i. e. unknown) • Unicast (1 -1) to connect to a lookup service on a known host (e. g. on a remote subnet) Multicast Client Unicast Local Area Network Firewall Internet Lookup service 11/2/2006 Distributed System Support for Ubiquitous computing 10

Jini (Registering a Service) (1) Multicast/Unicast to discover the LUS (2) Retrieve a registrar object from the LUS (3) Use registrar to send a service object to the LUS 11/2/2006 Distributed System Support for Ubiquitous computing 11

Jini (Discover a service) (1) Multicast/Unicast to connect to LUS (3) Search service using registrar 11/2/2006 (2) Retrieve a registrar object from LUS (4) Retrieve a service object (proxy) Distributed System Support for Ubiquitous computing 12

JINI 2) Dynamic Service Discovery: 1) Simplified Running Environment: • Multicast to discover local lookup service automatically • Only one Jini lookup service is necessary in a local Jini network (local subnet). RMI and RMIRegistry is optional. (Lookup Service) • Unicast is used for a service to register from a remote subnet (2) (4) (1) (3) (5) http: //jan. netcomp. monash. edu. au/java/jini/tutorial/Jini. html http: //www. jini. org 11/2/2006 Distributed System Support for Ubiquitous computing 13

Jini distributed garbage collection • Leases (time-delimited promises) • Example: – A service registers a service object on the lookup server in return for a lease – The service must renew the lease every five minutes (”I am still here”) – When the lease expires the LUS deletes the service object from its database 11/2/2006 Distributed System Support for Ubiquitous computing 14

Jini – dead service Lookup service Service Client Service registers a service object Client queries Lu. S returns a lease Service renews lease Lu. S return service object Service crashes Client tries to call service Client gets Remote. Exception Lease expires Lu. S discards the service object 11/2/2006 Distributed System Support for Ubiquitous computing Client discards the service object 15

Middleware and Openness In an open middleware-based distributed system, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications. Early Binding: Language, Interface. 11/2/2006 Distributed System Support for Ubiquitous computing 16

Overlay Network Based on MOC & Socket • Sockets gives a simple abstraction for message transfer over network • With sockets one can construct a new abstract network over the underlying IP network • Prerequisites: – New address schema (Naming) and its – Name resolution mechanism (routing) 11/2/2006 Distributed System Support for Ubiquitous computing 17

Web naming scheme • Uniform Resource Identifiers (URI) come in two forms: – URL: Uniform Resource Locator – URN: Uniform Resource Name 11/2/2006 Distributed System Support for Ubiquitous computing 18

Uniform Resource Locators Common schemes Often-used structures for URLs. a) Using only a DNS name. b) Combining a DNS name with a port number. c) combining an IP address with a port number. 11/2/2006 Name Used for Example http HTTP http: //www. cs. vu. nl: 80/gl obe ftp FTP ftp: //ftp. cs. vu. nl/pup/min x/README file Local file: /edu/book/work/chp/ 11/11 telnet Remot e login telnet: //flits. cs. vu. nl Distributed System Support for Ubiquitous computing 19

Uniform Resource Names urn : isbn : 0 -13 -349945 -6 • Three parts: Scheme : Name space identifier : Name of resource • The name space identifier determines the syntactic rules for the third part. The third part may have different structure depending on the name space identifier. So URNs are not publicly resolveable. • In contrast to URLs, URNs are location-independent which means URNs usually are not related to any specific entity (only used as a name space). 11/2/2006 Distributed System Support for Ubiquitous computing 20

Locating URL (Name Resolving) • Domain Name System (Host. Name -> IP) – Each computer has to be assigned an IP address and DNS server IP address manually or through DHCP server. – DNS Request (nslookup) sends the hostname to the specified DNS server. – The DNS server returns the IP if it knows it, otherwise, the request is forwarded to upper-layer DNS server. Record of E’s IP User host 11/2/2006 Distributed System Support for Ubiquitous computing 21

Data Representation / XML (1) • Extensible Markup Language (XML) is a standard format for interchanging structured documents. • • • <? xml version="1. 0" ? > XML is designed to describe data <note xmlns: note=“http: //tv. com/note. xml”> <note: to>Tove</note: to> <note: from>Jani</note: from> HTML was designed to present data. <note: heading>Reminder</note: heading> <note: body>Don't forget me this Anyone can use XML to define weekend!</note: body> data in any tree-based structure. </note> • To be able to distinguish different structures, XML Name Spaces are used to enable different structures of data to co-exist in one document. 11/2/2006 Distributed System Support for Ubiquitous computing 22

Data Representation /XML (2) • It is the reader application’s responsibility to understand (parse) the elements in the XML document. • Extensible Stylesheet Language Transformations (XSLT) is a language for converting XML document from one structure to another. • XSLT is one way to help the interoperation between distributed systems using different standards. Input XML XSLT processor Output text XSL transformation rules 11/2/2006 Distributed System Support for Ubiquitous computing 23

Data Representation /XML (3) • • XML is self-describing XML treats all data as text Significant memory overhead Examples: – XML-RPC – JXTA messages – Web Service, SOAP 11/2/2006 Distributed System Support for Ubiquitous computing 24

Overlay Networks • Examples: – P 2 P networks (Content-oriented network/P 2 P file sharing, SIP) – Naming: auto-generate UUID and register – Routing: JXTA Rendezvous etc 11/2/2006 Distributed System Support for Ubiquitous computing 25

Web Services XML Web services are the fundamental building blocks in the move to distributed computing on the Internet, it takes the ideas and principles of the Web and apply them to enable computer-computer interactions (B-to -B transactions): • • SOAP (Simple Object Access Protocol): provides a simple and lightweight mechanism for exchanging structured and typed information using XML: WSDL (Web Services Description Language): describing service information including message contents, service location, communications protocol (IDL). UDDI (Universal Discovery Description and Integration): for registering Web services so that potential users can find them easily (service yellow pages/directory service). programming-language neutral 11/2/2006 Distributed System Support for Ubiquitous computing 26

Clients/Servers Architecture • General interaction between a client and a server. 1. 25 11/2/2006 Distributed System Support for Ubiquitous computing 27

Three-tiered C/S model • The general organization of an Internet search engine into three different layers 1 -28 11/2/2006 Distributed System Support for Ubiquitous computing 28

Multitiered Architectures • Alternative client-server organizations (a) – (e). 1 -29 11/2/2006 Distributed System Support for Ubiquitous computing 29

Conclusion • Distributed System technologies: – – – Procedure- and object-based communication MOM and socket Naming and resolution Overlay networks XML, Software architecture • Today – – Service-Oriented Architecture (cloud computing) Dynamic service access (late binding) Open standards Still ’standards wars’: e. g. HTML 5 video, Android versions 11/2/2006 Distributed System Support for Ubiquitous computing 30

Perspectives on interactive systems 11/2/2006 Distributed System Support for Ubiquitous computing

Contents • Interactive systems from a user perspective • Interactive systems from a systems perspective • Desirable properties of tools • Analysis of Java, Python, C# • Other considerations 11/2/2006 Distributed System Support for Ubiquitous computing 32

Interactive systems from a user perspective • Supports cooperation between, and in, groups of users • CSCW, Wiki, Facebook, Twitter, Second Life, Blue Mars • Interactive spaces • Supports shifting modalities and forms of interaction • WWW • Cell phones, PDA • Voice, gesture and tactile interfaces (wii, i. Phone) 11/2/2006 Distributed System Support for Ubiquitous computing

Interactive systems from a user perspective • Supports mobility and distance • Users moving in the real world • Users moving between different systems • Supports interaction with resources in the environment • File sharing (transparent document management) • Useful devices, sensors 11/2/2006 Distributed System Support for Ubiquitous computing

Interactive systems from a systems perspective • Distributed systems • Hierarchy: Client-Server, Peer-to-peer, open/closed • Computer communication issues • Transport, interaction protocols, security • Heterogenous systems and general interoperability • Hardware • Operating systems • Programmering languages • Software versions 11/2/2006 Distributed System Support for Ubiquitous computing

Interactive systems from a systems perspective • Exotic hardware • Cell phones, sensors, RFID, micronets • Dynamics • The availability of resources; users, clients, services • Establishing and maintaining interaction sessions 11/2/2006 Distributed System Support for Ubiquitous computing

To build interactive systems tools are needed • Communication methods and protocols • Programming languages • Runtime environments 11/2/2006 Distributed System Support for Ubiquitous computing 37

Desirable properties of tools Hardware independence OS independence • Cell phones • PDA: s • Wearable computers (laptops) • Server computers • Linux/Unix/OS X • Symbian/Android • Windows family Computer communication • Remote Procedure Call (RPC) • TCP/IP, Serial ports, USB, FW 11/2/2006 Distributed System Support for Ubiquitous computing

Desirable properties of tools Hardware independence OS independence • Cell phones • PDA: s • Wearable computers (laptops) • Server computers • Linux/Unix/OS X • Symbian/Android • Windows family Computer communication • Remote Procedure Call (RPC) • TCP/IP, Serial ports, USB, FW 11/2/2006 Virtualization Distributed System Support for Ubiquitous computing

Desirable properties of tools Hardware independence OS independence • Cell phones • PDA: s • Wearable computers (laptops) • Server computers • Linux/Unix/OS X • Symbian/Android • Windows family Computer communication • Remote Procedure Call (RPC) • TCP/IP, Serial ports, USB, FW Virtualization Host system: vm. Ware, C++. . Language system: Java, Python, elisp 11/2/2006 Distributed System Support for Ubiquitous computing

Analysis of Java, Python, C# Java Python C# Hardware independence yes yes OS independence yes no* Computer communication yes* yes Security yes no 11/2/2006 Distributed System Support for Ubiquitous computing yes*

Analysis of Java, Python, C# Java Python C# Hardware independence yes yes OS independence yes no* Computer communication yes* yes Security yes no 11/2/2006 Distributed System Support for Ubiquitous computing yes*

To reflect upon … • interaction implies communication • choose tools that enable and simplify communication (e. g. C# i Windows) • make abstract communication (t ex XML-RPC, SIP, SOAP) 11/2/2006 Distributed System Support for Ubiquitous computing 43

• Other considerations: – asyncronous communication – object-oriented programming – mobile code – the agent metaphor – launch and maintenance • code distribution • version management 11/2/2006 Distributed System Support for Ubiquitous computing 44

End 11/2/2006 Distributed System Support for Ubiquitous computing 45
- Slides: 45