distributed service architectures yitao duan [email protected] 03/19/2002
Post on 20-Dec-2015
224 views
TRANSCRIPT
![Page 2: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/2.jpg)
Outline Overview CORBA JINI Summary
![Page 3: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/3.jpg)
Overview How different entities communicate
with each other? How is a service discovered by
client? How does the system adapt to
faults? How is security addressed? Mobility? Scalability?
![Page 4: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/4.jpg)
CORBA The OMG grew out of the object technology
boom of the 1980s. Its founders were Data General, Hewlett-Packard,
and Sun. Today some 800 (and growing) companies
comprise the OMG. Together these companies have created and continue to create standards for object-oriented computing
CORBA 1.0 (October 1991) CORBA 3.0 -- Pre-release Spring 1999,
Commercial release late 1999
![Page 5: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/5.jpg)
Object Interoperability – CORBA Style All about Objects -Common Object Request
Broker Architecture Interface defined in Interface Definition
Language (IDL) A contract between objects Marshaling/unmarshaling arguments and results. Independent of implementation. Heterogeneous
language support, mapped to C, C++, Java, COBOL, Smalltalk, Ada, Lisp, Python etc.
Objects live within server and are passed by reference
![Page 6: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/6.jpg)
Communication
ORB1
Stub
Client
Skel
Object
ORB2
Stub
Client
Skel
Object
IIOP
OBR: Object Request Broker
![Page 7: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/7.jpg)
CORBA ORB Architecture
DII: Dynamic Invocation InterfaceDSI: Dynamic Skeleton Interface
POA: Portable Object Adapter
ORB Core
Client
DIIClien
t Stub
s
ORB Interface
Impl Skeleto
ns
DSI POA
Object Implementation
OBJ REF
![Page 8: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/8.jpg)
CORBAservices OMG published 17 object services Naming Service
Association of names to objects Locate components by name
Trader Service – Object Yellow Page Match services by type and properties
Concurrency Control Service A lock manager for transaction or
threads
![Page 9: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/9.jpg)
CORBAservices (continued) Transaction Service
2PC among recoverable components Flat or nested transactions
Security Service authentication, access control,
message protection, audit, non-repudiation, security management
![Page 10: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/10.jpg)
JINI Jini technology was publicly
released on January 25, 1999. Current Release:Jini Technology
Starter Kit v 1.2 (released 12/2001) http://developer.java.sun.com/developer/products/jini/
![Page 11: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/11.jpg)
Jini – An Overview Service centered Fulfillment of original
Java vision – groups of devices exchanging data and code.
The Jini vision: Networkanything, anytime, anywhere!
Built on top of Java Ne twork Transport
Ope rating Syste m
Jav a Te chnology
Jini Te chnology
Se rv ice A p p licatio n
![Page 12: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/12.jpg)
Key Concepts Discovery Lookup Leasing Remote Events Transactions
![Page 13: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/13.jpg)
Discovery Process used to find communities on the
network and join them Enable spontaneous Jini community-
building = finding (and joining) lookup services Protocols
Multicast Request Protocol Multicast Announcement Protocol Unicast Discovery Protocol
![Page 14: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/14.jpg)
Lookup Enables a client to find a particular srvc Maintains a list of Service Items.
Service Item = Downloadable proxy object + Attributes
Searchable by object type, ID, or attributes Services join the lookup services Clients download proxy objects and
request service from them Proxy: performs …
![Page 15: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/15.jpg)
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
![Page 16: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/16.jpg)
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
![Page 17: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/17.jpg)
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy Code
Proxy Code
![Page 18: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/18.jpg)
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
![Page 19: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/19.jpg)
Jini Lookup Service
Jini Service
Jini Service
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
PDA
Jini Client
Discovery and Lookup
![Page 20: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/20.jpg)
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy Code
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
PDA
Jini Client
![Page 21: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/21.jpg)
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy Code
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
PDA
Jini Client
![Page 22: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/22.jpg)
Leasing Enables Jini’s stable, self-healing,
self-adapting nature. Acknowledges explicitly the fact
that network is transient Resources are allocated for a
specific time period. If the resource is needed longer, the client must renew the lease, demonstrating its continued need.
![Page 23: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/23.jpg)
Remote Event Provide asynchronous notifications
to Jini clients and services Adhere to Jini leasing so that event
generation can survive the transient nature of clients on a network.
![Page 24: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/24.jpg)
Transactions Jini’s mechanism for allowing
computations that may involve multiple services to reach a “safe” state
Protects against partial failure Help address concurrency
problems
![Page 25: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/25.jpg)
Other issues Fault tolerance - Multiple lookup services in
a community (also for load balancing) Mobility
Discovery and lookup support spontaneous form of communities
Leasing clears the system off any stale information
Scalability Lookup services are services Supporting multiple communities
![Page 26: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/26.jpg)
Other issues (continued) Security
Distributed computing makes the issue tougher
Jini doesn’t provide additional security mechanism
Relies on Java 2 security
Being worked on
![Page 27: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/27.jpg)
Summary CORBA
Low level primitives for distributed computing
Language independent
Pass remote object by references
Network transparent
Jini Flexible framework for
building complex distributed systems
Language-specific, OS independent
Pass remote object by value (instances)
Network aware
![Page 28: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/28.jpg)
Jini Surrogate Architecture
Category 1
Category 2(MIDP, PersonalJava)
Category 3 (J2ME CVM
w/RMI Profile)
Service N
Service 2
Jini Lookup Service
Jini client #1
Jini client #2
Jini client #n
PDA
Telephone
Fax
Pager
TV set-top box
VCR
Gateway ServiceProvider
Service 1
Internet
Gateway Server
![Page 29: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/29.jpg)
CORBA Interoperable Object Reference (IOR)
Type Name (Repository
ID)
Protocol and Address Details
Object Key (Adapter & Object Name)
CORBA Interoperable Object Reference (IOR)
![Page 30: Distributed Service Architectures Yitao Duan duan@cs.berkeley.edu 03/19/2002](https://reader036.vdocuments.mx/reader036/viewer/2022062421/56649d485503460f94a22de1/html5/thumbnails/30.jpg)
Binding of a persistent reference