Transcript Document

Distributed Service
Architectures
Yitao Duan
[email protected]
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
Client
Object
Client
Object
Stub
Skel
Stub
Skel
ORB1
OBR: Object Request Broker
IIOP
ORB2
CORBA ORB Architecture
Client
DII
Client
Stubs
Object Implementation
OBJ
REF
Impl
Skeletons
ORB
Interface
DSI
ORB Core
DII: Dynamic Invocation Interface
DSI: Dynamic Skeleton Interface
POA: Portable Object Adapter
POA
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: Network
anything, anytime,
anywhere!
Built on top of Java
Service
Application
Jini Technology
Java Technology
Operating System
Network Transport
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 Service
Jini Lookup Service
Jini Service
Discovery and Lookup
Jini Service
Jini Lookup Service
Jini Service
Discovery and Lookup
Proxy Code
Jini Service
Proxy Code
Jini Service
Jini Lookup Service
Discovery and Lookup
Attribute
Proxy Attribute
Attribute
Attribute
Proxy Attribute
Jini Service
Attribute
Jini Lookup Service
Jini Service
Discovery and Lookup
Attribute
Proxy Attribute
Attribute
Attribute
Proxy Attribute
Jini Service
Attribute
Jini Lookup Service
Jini Service
Jini Clien
Discovery and Lookup
Attribute
Proxy Attribute
Attribute
Attribute
Proxy Attribute
Attribute
Jini Service
Jini Lookup Service
Proxy Code
Jini Service
Jini Clien
Discovery and Lookup
Attribute
Proxy Attribute
Attribute
Attribute
Proxy Attribute
Attribute
Jini Service
Jini Lookup Service
Proxy Code
Jini Service
Jini Clien
Leasing



Enables Jini’s stable, self-healing, selfadapting 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 3
(J2ME CVM
w/RMI Profile)
Jini client #1
Jini client #2
Jini Lookup
Service
Jini client #n
Category 1
Telephone
Service 1
Fax
Gateway
Server
Service 2
Internet
Category 2PDA
(MIDP, PersonalJava)
Pager
VCR
TV set-top box
Gateway Service
Provider
Service N
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