Post on 20-Dec-2015
Distributed Service Architectures
Yitao Duanduan@cs.berkeley.edu
03/19/2002
Outline Overview CORBA JINI Summary
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?
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
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
Communication
ORB1
Stub
Client
Skel
Object
ORB2
Stub
Client
Skel
Object
IIOP
OBR: Object Request Broker
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
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
CORBAservices (continued) Transaction Service
2PC among recoverable components Flat or nested transactions
Security Service authentication, access control,
message protection, audit, non-repudiation, security management
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/
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
Key Concepts Discovery Lookup Leasing Remote Events Transactions
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
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 …
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy Code
Proxy Code
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
Jini Lookup Service
Jini Service
Jini Service
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
PDA
Jini Client
Discovery and Lookup
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy Code
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
PDA
Jini Client
Discovery and Lookup
Jini Lookup Service
Jini Service
Jini Service
Proxy Code
Proxy
AttributeAttributeAttribute
Proxy
AttributeAttributeAttribute
PDA
Jini Client
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.
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.
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
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
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
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
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
CORBA Interoperable Object Reference (IOR)
Type Name (Repository
ID)
Protocol and Address Details
Object Key (Adapter & Object Name)
CORBA Interoperable Object Reference (IOR)
Binding of a persistent reference