Design of d istributed s ystems programming of interactive system s lecture 3
This presentation is the property of its rightful owner.
Sponsored Links
1 / 45

Design of D istributed S ystems Programming of Interactive System s Lecture 3 PowerPoint PPT Presentation


  • 112 Views
  • Uploaded on
  • Presentation posted in: General

Design of D istributed S ystems Programming of Interactive System s Lecture 3. Fredrik Kilander Wei Li. Agenda. RMI Jini (Dynamic Service Discovery) Overlay Networks Web naming scheme Data Representation (XML) Web Service System Architecture Perspectives on interactive systems.

Download Presentation

Design of D istributed S ystems Programming of Interactive System s Lecture 3

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Design of d istributed s ystems programming of interactive system s lecture 3

Design of Distributed Systems Programming of Interactive Systems Lecture 3

Fredrik Kilander

Wei Li


Agenda

Agenda

  • RMI

  • Jini (Dynamic Service Discovery)

  • Overlay Networks

    • Web naming scheme

    • Data Representation (XML)

  • Web Service

  • System Architecture

  • Perspectives on interactive systems

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

Binding a Client to a Server

2-15

Endpoint= IP+Port

(server, endpoint) pairs

Client-to-server binding in DCE

(distributed computing environment 1990-)

Distributed System Support for Ubiquitous computing


Java rmi

RMI Registry

stub

Service

stub

Java RMI

  • Clientsget 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

Lookup

Register(Service Binding)

2

3

1

Client

5

stub

4

Distributed System Support for Ubiquitous computing


Passing object by value or reference rmi

Machine C

MP3Selector

Skeleton

MediaPlayerController

proxy1

proxy2

“http://myhost/a.mp3”

“http://myhost/a.mp3”

Passing Object by Value or Reference (RMI)

  • The object to send to another machine has to be Serializable.

  • The object to send has to have the class definition in the classpath of the receiving side

  • Setup security policy file

Interface Method:

void Play();void Play (String filename);void Play (MP3Selector mps);

Machine A

Machine B

proxy2

Interface Method:

void Play ();void Play (String filename);void Play (MP3Selector mps);

Media

Player

Skeleton

Three cases:1) Play () without parameters. // only method name will be sent

2) Play (“http://myhost/a.mp3”) // send filename as a copied object (value/copy)

3) Play (mps) { // send the copy of proxy2 play(mps.getLatestMP3()) // (reference to MP3Selector) }

http://java.sun.com/developer/onlineTraining/rmi/RMI.html

Distributed System Support for Ubiquitous computing


Java jini

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.

Distributed System Support for Ubiquitous computing


Java jini1

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)

Distributed System Support for Ubiquitous computing


Java jini2

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

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

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)

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

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

Lookup

service

Firewall

Internet

Lookup service

Distributed System Support for Ubiquitous computing


Jini registering a service

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

Distributed System Support for Ubiquitous computing


Jini discover a service

Jini (Discover a service)

(1) Multicast/Unicast to connect to LUS

(2) Retrieve a registrar object from LUS

(3) Search service using registrar

(4) Retrieve a service object (proxy)

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

JINI

  • 2) Dynamic Service Discovery:

  • Multicast to discover local lookup service automatically

  • Unicast is used for a service to register from a remote subnet

  • 1) Simplified Running Environment:

  • Only one Jini lookup service is necessary in a local Jini network (local subnet). RMI and RMIRegistry is optional.

(LookupService)

(2)

(4)

(1)

(3)

(5)

http://jan.netcomp.monash.edu.au/java/jini/tutorial/Jini.html

http://www.jini.org

Distributed System Support for Ubiquitous computing


Jini distributed garbage collection

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

Distributed System Support for Ubiquitous computing


Jini dead service

Jini – dead service

Lookup

service

Service

Client

Service registers

a service object

Client queries LuS

LuS returns a lease

LuS return service object

Service renews lease

Service crashes

Client tries to call service

Client gets

RemoteException

Lease expires

LuS discards the

service object

Client discards the

service object

Distributed System Support for Ubiquitous computing


Middleware and openness

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.

Distributed System Support for Ubiquitous computing


Overlay network based on moc socket

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)

Distributed System Support for Ubiquitous computing


Web naming scheme

Web naming scheme

  • Uniform Resource Identifiers (URI) come in two forms:

    • URL: Uniform Resource Locator

    • URN: Uniform Resource Name

Distributed System Support for Ubiquitous computing


Uniform resource locators

Uniform Resource Locators

Often-used structures for URLs.

  • Using only a DNS name.

  • Combining a DNS name with a port number.

  • combining an IP address with a port number.

Common schemes

Distributed System Support for Ubiquitous computing


Uniform resource names

Uniform Resource Names

  • 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).

urn : isbn : 0-13-349945-6

Distributed System Support for Ubiquitous computing


Locating url name resolving

Locating URL (Name Resolving)

  • Domain Name System (HostName -> 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

Distributed System Support for Ubiquitous computing


Data representation xml 1

Data Representation / XML (1)

  • Extensible Markup Language (XML) is a standard format for interchanging structured documents.

  • XML is designed to describe data

  • HTML was designed to present data.

  • Anyone can use XML to define data in any tree-based structure.

  • To be able to distinguish different structures, XML Name Spaces are used to enable different structures of data to co-exist in one document.

<?xml version="1.0" ?>

<note xmlns:note=“http://tv.com/note.xml”>

<note:to>Tove</note:to>

<note:from>Jani</note:from>

<note:heading>Reminder</note:heading>

<note:body>Don't forget me this weekend!</note:body>

</note>

Distributed System Support for Ubiquitous computing


Data representation xml 2

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.

Output

text

Input

XML

XSLT processor

XSL transformation

rules

Distributed System Support for Ubiquitous computing


Data representation xml 3

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

Distributed System Support for Ubiquitous computing


Overlay networks

Overlay Networks

  • Examples:

    • P2P networks (Content-oriented network/P2P file sharing, SIP)

    • Naming: auto-generate UUID and register

    • Routing: JXTA Rendezvous etc

Distributed System Support for Ubiquitous computing


Web services

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

SOAP

Distributed System Support for Ubiquitous computing


Clients servers architecture

Clients/Servers Architecture

  • General interaction between a client and a server.

1.25

Distributed System Support for Ubiquitous computing


Three tiered c s model

Three-tiered C/S model

  • The general organization of an Internet search engine into three different layers

1-28

Distributed System Support for Ubiquitous computing


Multitiered architectures

Multitiered Architectures

  • Alternative client-server organizations (a) – (e).

1-29

Distributed System Support for Ubiquitous computing


Conclusion

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. HTML5 video, Android versions

Distributed System Support for Ubiquitous computing


Perspectives on interactive systems

Perspectives on interactive systems


Contents

Contents

  • Interactive systems from a user perspective

  • Interactive systems from a systems perspective

  • Desirable properties of tools

  • Analysis of Java, Python, C#

  • Other considerations

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

  • 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, iPhone)


Design of d istributed s ystems programming of interactive system s lecture 3

  • 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


Design of d istributed s ystems programming of interactive system s lecture 3

  • 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


Design of d istributed s ystems programming of interactive system s lecture 3

  • 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


To build interactive systems tools are needed

To build interactive systems tools are needed

  • Communication methods and protocols

  • Programming languages

  • Runtime environments

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

Desirable properties of tools

  • Hardware independence

  • Cell phones

  • PDA:s

  • Wearable computers (laptops)

  • Server computers

  • OS independence

  • Linux/Unix/OS X

  • Symbian/Android

  • Windows family

  • Computer communication

  • Remote Procedure Call (RPC)

  • TCP/IP, Serial ports, USB, FW


Design of d istributed s ystems programming of interactive system s lecture 3

Desirable properties of tools

  • Hardware independence

  • Cell phones

  • PDA:s

  • Wearable computers (laptops)

  • Server computers

  • OS independence

  • Linux/Unix/OS X

  • Symbian/Android

  • Windows family

  • Computer communication

  • Remote Procedure Call (RPC)

  • TCP/IP, Serial ports, USB, FW

Virtualization


Design of d istributed s ystems programming of interactive system s lecture 3

Desirable properties of tools

  • Hardware independence

  • Cell phones

  • PDA:s

  • Wearable computers (laptops)

  • Server computers

  • OS independence

  • Linux/Unix/OS X

  • Symbian/Android

  • Windows family

  • Computer communication

  • Remote Procedure Call (RPC)

  • TCP/IP, Serial ports, USB, FW

Virtualization

Host system:

vmWare, C++..

Language system:

Java, Python, elisp


Design of d istributed s ystems programming of interactive system s lecture 3

Analysis of Java, Python, C#

Java

Python

C#

yes

yes

yes

Hardware independence

OS independence

Computer communication

Security

yes

yes

no*

yes

yes*

yes

yes

yes*

no


Design of d istributed s ystems programming of interactive system s lecture 3

Analysis of Java, Python, C#

Java

Python

C#

yes

yes

yes

Hardware independence

OS independence

Computer communication

Security

yes

yes

no*

yes

yes*

yes

yes

yes*

no


Design of d istributed s ystems programming of interactive system s lecture 3

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)

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

  • Other considerations:

    • asyncronous communication

    • object-oriented programming

    • mobile code

    • the agent metaphor

    • launch and maintenance

      • code distribution

      • version management

Distributed System Support for Ubiquitous computing


Design of d istributed s ystems programming of interactive system s lecture 3

End

Distributed System Support for Ubiquitous computing


  • Login