jini design and principles ranjita bhagwan cse225: high-performance distributed computing
TRANSCRIPT
JINI Design and Principles
Ranjita Bhagwan
CSE225: High-Performance Distributed Computing
What is Jini?
• A distributed computing environment for Network Plug and Play.
• A system to provide services easily and transparently over the network.
• A system that can be “dynamic” - users and resources can come and go as they please with minimal administrative overhead.
Jini’s goals
• Provide shared service and resources.• Provide easy access to resources in spite of
changing network location of users.• Simplifying system and network
management.• Not yet a platform for a parallel programming
environment – more of a “plug and play” mechanism than a metacomputing infrastructure.
Jini Architecture
Infrastructure Programming Model
Services
Base Java
Java VM JAVA APIs JNDI
RMI JavaBeans Enterprise Beans
Java Security … …
Java + Jini Discovery/Join Leasing Printing
LookupTransactions Transaction
Manager
Distributed Security
Events …
Jini Components
• Service – an entity used by a person, program or another service.
• Service Locator/Lookup Service – keeps track of services and their properties and provides the Lookup Service.
• Client – uses the services.
ClientServiceLocator
Service
Service
• An object (or set of objects) located in a server which can be used by a user, program or another service.
• An application can be viewed as a collection of services – different from regular object-oriented view.
• More localized notion than Globus service, which can be distributed over a number of hosts.
Small Example
SmartViewergetMIMEType()
FileClassifier
display()
DisplayService
display()
ImageDisplay TextDisplay
display()
Example
FileClassifierProxy
ImageDisplayProxy
TextDisplayProxy
Service locator
SmartViewer
FileClassifierProxy
ImageDisplayProxy
FileClassifierService
TextDisplayService
ImageDisplayService
Service
Service
Service
User
Lookup Service
• Service is added to the Lookup Service by a pair of protocols– Discovery: Service locates the lookup service.– Join: Service joins the lookup service.
• Server “discovers” the service locator– Unicast TCP if location of service locator is known.– Multicast UDP if location of service locator is not
known.
• May include other Lookup Services for hierarchical lookup.
Discovery/Join & Lookup
Service Registration
Service Locator Service Server
service
registrarservice
Object Serialization is used to move the service object to the Service Locator.
Discovery/Join & Lookup
Client Lookup
Client Service Locator
serviceregistrarregistrar
service
Object Deserialization is used at the client torecreate the object.
Discovery/Join & Lookup
Entries and Groups
• Entries: A service may specify certain properties.– For a plain text editor, entries = {(“plain/text”)}– A client may specify the properties it requires of the
service.– A matching of all specified entry fields is performed
with the services on the service locator. – Relational operators (>,<, etc) not supported!– Serialized entries are compared.
• Groups: A service can specify which groups it belongs to. – Groups = {“CSE, UCSD”, “ECE, UCSD”)
Discovery/Join & Lookup
Service Proxies• Toaster, Printer, etc. cannot
perform their services remotely.• So, service sends out a “proxy”.• The proxy communicates with
the service.• The proxy is told its server’s
location when it is created.
ClientServiceLocator Service
Service Proxy
Registrar
Service Proxy
Registrar
Service
Discovery/Join & Lookup
Jini Architecture
Infrastructure Programming Model
Services
Base Java
Java VM JAVA APIs JNDI
RMI JavaBeans Enterprise Beans
Java Security … …
Java + Jini Discovery/Join Leasing Printing
LookupTransactions Transaction
Manager
Distributed Security
Events …
Leasing: request and grant
• The service requests that its copy be kept on the service locator for a given amount of time.– ANY: service locator determines lease time.– FOREVER: request for a lease that never expires.
• The service locator grants the lease and specifies how long it stays valid.– Default for SUN = 5 seconds.
Leasing
Leasing: Expiry
• “Quiet” expiration: no notification from the service locator to the service.
• The service has to renew the lease before it expires.– Problem: high network latency may cause
lease to expire before it is renewed.
• The Lease Renewal Manager quietly renews leases at regular intervals.
Leasing
Jini Architecture
Infrastructure Programming Model
Services
Base Java
Java VM JAVA APIs JNDI
RMI JavaBeans Enterprise Beans
Java Security … …
Java + Jini Discovery/Join Leasing Printing
LookupTransactions Transaction
Manager
Distributed Security
Events …
Security
• Based on JDK 1.2 security model.
• Uses a text based policy file to set security policy.
• If an all permissive policy is used, a malicious service, masquerading as a requested service may run on the client.
Security
JDK 1.2 Security
• Grant permission only for certain activities, such as access to certain files for reading, writing and execution.
• Grant access only to particular hosts, subdomains or domains.
• Require digital signatures attached to code.
Security
Security problems for a client
service locator
http server
service proxyinstance data
proxy class files
Security
client
A Policy that restricts attacks
Grant permissions to Application code based on the codesource. If you suspect these might be tampered with, get them signed.
Security
A Policy that restricts attacks
Grant permission to Jini core classes based on the codesource. These may be signed if need be.
Security
A Policy that restricts attacks
Grant permission to downloaded code only if it is signed by an authority you trust. Even then, grant only the minimum permission that is needed to perform the service’s task.
Security
Security challenges
• security should be strong but easily managed so that the ease of use of Jini does not disappear.
• In ad-hoc networks, when services may not have a fixed identity, how do you decide who is “trusted” and who is not?
Security
Jini Architecture
Infrastructure Programming Model
Services
Base Java
Java VM JAVA APIs JNDI
RMI JavaBeans Enterprise Beans
Java Security … …
Java + Jini Discovery/Join Leasing Printing
LookupTransactions Transaction
Manager
Distributed Security
Events …
Transactions
• A series of operations within a single service or involving multiple services.
• ACID properties– Atomicity– Consistency– Isolation– Durability
• Jini uses the two-phase commit method.
Transactions
Two-phase commit
• Mechanism– All participants in a transaction “vote” on it. – If all agree to go ahead, transaction
commits.– If any of them abort during the voting
stage, the transaction aborts on all participants.
• Jini supplies the mechanism, but policies are left to the participants.
Transactions
An example
client service accounts txnmanager
get cost
Transactions
An example
client service accounts txnmanager
cost
Transactions
An example
client service accounts txnmanager
create
Transactions
An example
client service accounts txnmanager
txn
Transactions
An example
client service accounts txnmanager
credit
txn
Transactions
An example
client service accounts txnmanager
credit debit
txn
Transactions
An example
client service accounts txnmanager
join
txn
Transactions
An example
client service accounts txnmanager
join
txn
Transactions
An example
client service accounts txnmanager
txn
request service
Transactions
An example
client service accounts txnmanager
txn
result
Transactions
An example
client service accounts txnmanager
txn
commit
Transactions
An example
client service accounts txnmanager
txn
prepare
Transactions
An example
client service accounts txnmanager
txn
commit
Transactions
An example
client service accounts txnmanager
txn
commit
Transactions
Related Technologies
• HAVi
• JetSend by Hewlett-Packard
• Bluetooth
• Inferno by Lucent
• Universal Plug and Play
“Sun officials this morning said Universal Plug and Play is behind Jini in development terms, and criticized it for being "PC-centric" and thus tied to the Microsoft operating system. Microsoft has countered that for Jini to work, thousands of applications will have to be rewritten in Java and Jini code.”
JINI v/s UPnP
Non-technical Issues
• July 1998: Jini was introduced.– “Jini products will be out by mid 1999.”
• Jan 1999: Around 30 partners to the Jini technology were announced.– “Jini products will be out by late1999.”
• Are they out yet?
Jini Products
• It is claimed that e-commerce and web-based applications are overshadowing Jini product development.
• Jini product prototypes are being developed by a number of companies – HP, 3Com, Cisco, Sony, Nokia, etc.
Concerns• Security!!!• Common interface development
– All printers should ideally use the same interface.
• Does not as yet support XML, which UPnP does(will do).• Needs JAVA VM to run on every device to avoid large
delays: this means large memory requirements.– Possible solution: Dallas semiconductors’ JAVA VM on a chip.
• Needs all applications to be coded in Java.– All manufacturers have to accept Java as their programming
language.• Scalability issues