300 likes | 539 Views
Dynamic Distributed Systems Using JINI. Outline. What is JINI ? Goals and Objectives Architectural Overview Infrastructure Programming Model Services Conclusion. What is JINI (TM) ?. Distributed systems architecture brought out by SUN (TM). It enables the building of Dynamic
E N D
Outline • What is JINI ? • Goals and Objectives • Architectural Overview • Infrastructure • Programming Model • Services • Conclusion
What is JINI (TM) ? • Distributed systems architecture brought out by SUN (TM). • It enables the building of • Dynamic • Flexible • Easily administered distributed system • Simply, it enables Plug and Play networks
What does the word "JINI" stands for ? • It is not an acronym, it does not stand for anything. It is pronounced as 'Genie’. As in "JINI in a bottle." or "JINI of the lamp" in Aladdin. That was one guess. • Bill Joy, one of JINI’s project leaders, came up with the name, because he liked the sound.
Goals and objectives • Resources • Management • Sharing • and access is more simple • Distributed Programming is more easy • Easy connection, no need for complicated setup procedures • Simply, Dynamic Distributed Systems
Architectural Overview • The whole technology can be segmented into : • Infrastructure • Programming Model • Services
Infrastructure • Set of components, includes the minimal JINI technology core, that enables building of the system. • It includes • Lookup Service • Discovery/Join Protocol • Distributed Security System
Lookup Service • Central storage of services available within the system • It is the fundamental part of the infrastructure. • It organizes services into groups. • Service can be a member of multiple groups. • Multiple Lookup Services can maintain the same group. • This helps to achieve fault tolerance.
How things work (Service Side)? • When a new service is created, it register itself with a Lookup Service (Join). • It must first locate the appropriate Lookup service (Discovery). • This done using the Discovery/Join Protocol.
How things work (Client Side)? • Client locate the appropriate Lookup Service (Discovery). • It locates a service by querying the Lookup Service (Lookup) • This done using the Discovery/Lookup Protocol. • Then, Client and service can communicate directly.
Discovery Protocol • It can be : • Multicast Discovery Protocol. (looking for an appropriate Lookup Service) • Unicast Discovery Protocol. (looking for a specific Lookup Service or non-local Lookup service) • Multicast Announcement Protocol. (Allow Lookup services to advertise their presence)
Join Protocol • A service discovers the appropriate Lookup Service. • It connects via the Lookup Service registrar. • The Service sends some info about itself. • The Lookup Service stores the information and associate it with the requested group, if any.
Lookup Protocol • A Client discovers the appropriate Lookup Service. • It’ll query for the service. • If found, the object reference of the requested service will be loaded into the client. • Finally, client invoke the service.
Distributed Security System • Define how entities got the right to perform actions on their behalf or on behalf of others. • It extends JDK1.2 platform’s security model to the world of distributed systems.
Programming Model • Set of interfaces that enables the construction of reliable services. • These interfaces make up the distributed extension of Java. • All interfaces are written in Java • Free source code. • Has no limit, and it can be extended.
Programming Model Cont.. • These interfaces include : • Leasing interface • Events interface • Transaction interface
Leasing interface • Access to many services in the JINI system is lease based. • Lease grant guaranteed access to the service over a period of time. • It is negotiable. • Can be exclusive or non-exclusive. • Can be renewed.
Example • When a service registers with the lookup service, it receives a lease. • It need to renew periodically. • When service failed or lease get expired, service will be removed.
Distributed Events Interface • It extends JavaBeans Event Model to the world of Distributed Systems. • One object, Event Listener, registers an interest in event of another object, Event Generator. • Listener will be notified in a timely and reliable fashion. • Registration of interest is lease based
Transaction Interface • Transactions enables operation grouping. Either all Succeed or all Fail. • The JINI’s Transaction Interface supply a service protocol needed to coordinate 2-Phase commit protocol.
Service • Something that can be used by a person, program or another service. • It can be : Computational, Storage, Software, Hardware or Communication Channel. • It has an interface which define the operations that can be requested.
Services Cont.. • Service objects can be written in any language. Client does not care. • But the interface has to be written in Java. • One of them is JavaSpaces which can be used for simple communication and storage of related groups of objects.
Conclusion • JINI is the feature of distributed systems • The dynamic nature of JINI allows resources to be added, subtracted at anytime without bothering other components. • Open Source Code is available for download. Thus it has no limit.
References • The main JINI page at Sun: http://java.sun.com/products/jini/ • JINI specifications: http://java.sun.com/products/jini/specs/ • JINI-USERS mailing list archives: http://archives.java.sun.com/archives/jini-users.html • Bill Venners' JINI/JavaSpaces talk: http://www.artima.com/javaseminars/modules/JINI/Handout.html • JINI Community Web Site, devoted to JINI http://www.jinivision.com