Presentation is loading. Please wait.

Presentation is loading. Please wait.

Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.

Similar presentations

Presentation on theme: "Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field."— Presentation transcript:

1 Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field. Please pull down the Jini architecture and specs to supplement this presentation.

2 there was a true distributed programming model?
Jini What if … there was a true distributed programming model?

3 What is Jini? Key Concepts
Spontaneous networking Federation Services Discovery The concept is that Jini is a system, in the sense that it has a number of interacting components that work together to give an effect greater than any of the individual pieces. It simplifies the task of building, maintaining and altering a network of devices, software and users. Spontaneous networking: The ability to establish dynamically (without drivers or network configuration) the communication, sharing, and exchange of services between HW and SW. Simplified interaction with networks. The real win with Jini has to do not so much with drivers, but with the ability to add new things to a network (or take existing things off the network) and have those changes reflected immediately and without the intervention of some system administrator. Federation allows interaction of services over the network by establishing a small number of minimal conventions and services that allow the interaction. All other parts of the interaction are determined by the entities involved. This both simplifies the system (there is no large set of rules to follow) and makes it more flexible (different rules can be followed indifferent situations that go beyond the base conventions of the system). Services enable users to share services and resources over a network Discovery has to do with the automatic installation of a service. Simply put, connect anything at anytime, anywhere

4 Current Enterprise Reality
Video Server Web Server Solaris Workstation Telco Server Pager Firewall Public Internet Corporate Internet Thin Client The Current Enterprise complex and heterogeneous. Current network reality is static-- adding or removing a part of the network is difficult and requires considerable human intervention. This makes changing the network hard, and increases both the cost and the difficulty of maintaining a network. They are very difficult to develop, deploy and manage. Jini will simplify the task of building, maintaining and altering a network of disparate components. Cell Phone NT Workstation Thin Client Solaris Workstation Workgroup Server PDA

5 the Network really is the computer
Jini: the Network really is the computer Today - All devices must be configured by SysAdm or user to access services. Note, keyboard & monitor associated with co-located CPU. With Jini - There will be no intervention, devices dynamically plug it to the net, become aware of resources, announce their services, and collaborate. Jini actually moves the notion of the system away from the combination of a motherboard and a disk and to the notion of a chip and the network. As such, it is the first major innovation in the way computer systems have been assembled in the last forty years. No CPU! Today Future

6 Jini Technology Introduction
Invented by Sun Microsystems, 1999 Service-oriented framework for creating reliable distributed applications Designed with the network in mind Provides a spontaneous, self-healing environment Moves the Java platform to the network Infrastructure and a programming model

7 Properties of Distributed Systems
The following assumptions do not hold in distributed systems: Networks are reliable Remote systems are fault-free Network latency is zero Bandwidth is infinite One administration domain Systems are homogeneous Successful systems must address these.

8 Service-oriented view
Everything is a service on the network Hardware, software, etc. Services are represented by interfaces Only functionality not implementation matters to clients Implementation is a private business In Jini, services are described by Java interfaces Programs understand programs best Provides strong typing Proven programming model

9 Spontaneous networking
Jini enables clients to automatically discover services at runtime Associative search Not by name lookup (e.g. Instead: find a service that does this or that Loose coupling Services and clients can join and leave the system (Jini federation) at any time without causing system failure

10 Jini Overview Jini ••• Java Spaces Other Services Lookup
Network Services Java Spaces Other Services ••• Lookup Jini Discovery/Join RMI The Jini Technology can be broken into three categories: Infrastructure, Distributed Programming and network services that run on top of Jini. Infrastructure: Addresses how devices and software connect and register with the network. This is accomplished through Discovery and Join. Distributed Programming: Adds to Java additional functionality for building distributed systems. Jini Distributed programming proved leasing, distributed transactions, and distributed events. Services are what run and utilize the Jini infrastructure. RMI is the bottom layer of Jini, allowing the dynamic movement of code around the network. Java Java Java Solaris Mac Windows Sparc PPC x86

11 The role of the proxy The proxy is a Java object downloaded from the service provides service or transparently transfers method calls to the remote service Hides implementation and communication details Protocol independent (TCP/IP, HTTP, SOAP, etc.)

12 Jini and Java Jini is 100% Pure Java Write once, run anywhere
Wide industry acceptance Designed for building robust network apps built on the Java standard RMI Jini is Java technology centered “Jini.. a networked federation of Java virtual machines”

13 RMI Jini uses RMI for object-object communication
Full object module support Pass any Java object and its code Works in any compliant JVM Easy to implement (i.e. automatic serialization) Provides foundation for addition of multicast, replication and basic security Jini uses RMI for OO communication. This is the basic mechanism of communication between Jini components and services. RMI is more than the communication mechanism for Jini, it is the mechanism that allows the movement of objects (both data and code) around the network. In a sense, RMI objects can exist extended over the network, with part of the object (the proxy) located with the client of the service, and the rest of the service residing in some other network location (although conceptually the service really looks like it resides on the network). This allows a real notion of a distributed object rather than a notion of distributed computing. “RMI enables the simple, dynamic nature of the networked Jini system”

14 Jini Architecture Programming Model Services Infrastructure Lease
JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Java VM Java API’s Enterprise Beans The purpose of the Jini Architecture is to federate groups of services (implemented in either hardware or software) and service clients into a single, dynamic distributed system. The Jini System consists of the following parts: Infrastructure A set of components that provide an infrastructure for federating services in a distributed system Programming model The programming model supports both the production *and use* of reliable distributed services. Services Services that can be made part of a Jini federation which offer functionality to any member of the federation. A single Jini federation is targeted to the workgroup. It is possible to hierarchically group such federations to span larger groups, or to place such federations into existing enterprise services such as directory or naming services. The most important concept within Jini is that of a service. A service is an entity that can be used by a person, a program, or other service. A service may be computational, storage, a communication channel, a software filter, a hardware device, or another user. JNDI Java RMI Beans ... JTS ... Security “Jini can be seen as an extension of the infrastructure, programming model, and services of Java”

15 Jini Infrastructure Programming Model Services Infrastructure Lease
JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Lets now discuss the infrastructure components of Jini. I will discuss in further detail, Jini discovery, and lookup infrastructure. Java VM Java API’s Enterprise Beans JNDI Java RMI Beans ... JTS ... Security “The set of components that allow the building of a Jini system”

16 Discovery Allows Jini services (both HW and SW) to:
Find and join a group of Jini devices Advertise its capabilities Provide any required SW and attributes Works with JVM-enabled or non-JVM devices Send out a multicast packet with reference to yourself Receive a RMI reference to the Lookup service Discovery allows services to join a federation by finding a lookup service (or a bunch of lookup services). The rest of this is really part of Lookup; once a lookup service is found, (via discovery) the registration of services (and their subsequent finding) occurs in the lookup service. “Discovery solves the problem of finding the place to start in an unknown network”

17 Discovery in Brief 2. Lookup Servers run instances of the
discovery service which listen for multicast requests from discovering entities 1. The device advertises and looks for a service Discovering Entity Lookup Server 3. The discovering entity performs a multicast that requests references to the lookup service. Discover and Join - A device is plugged into the network and must discover the network and have the network discover the device or application. Step 1: When a Jini enabled device is plugged in it drops a 512 byte multi cast discovery packet onto the network on a well-known port. The packet contains a reference back to itself. Step 2: the Jini lookup listens on the well-known port. When a discovery packet is received, lookup uses the device’s interface to pass an interface to itself back o the plugged device or application. The device or application has now discovered the network and is ready to upload all its characteristics to to the Jini lookup. This aspect is the join aspects of discovery. The service will register a set of Java objects, some of which can be used by a client to utilize the service (proxies, in effect) and others of which can be used to further describe the service (attribute objects). 4. The lookup server calls a remote method on the discovering entity’s exported object instance passing a remote reference to its lookup service as the parameter

18 Lookup Registration, Access, Search, Removal
Repository of available services Stores service as an extensible set of Java objects ID, interface, GUI’s, attributes, drivers ... Service objects downloaded to user as required May be federated with other Lookup services Lookup service interface: Registration, Access, Search, Removal Services are found and resolved by the lookup service. The lookup service is the central bootstrapping mechanism for the system and provides the major point of contact between the system and users of the system. It maps interfaces and the Java type indicating the functionality provided by a service to sets of objects that implement the service. The lookup service takes in a request for something of a particular (Java) type, and returns a object (including, if necessary, the code for the object) that is an implementation of that type. “The lookup service binds the federation together”

19 Distributed Security Extends the Java security model
Identity carried in remote invocation Capabilities Authentication Integrity Confidentiality Delegation The Jini Security model as part of the infrastructure is built on the twin notions of a principal and access control list. It extends Java’s Security model. Jini Services are accessed on behalf of some entity - the principal. Services may request access to other services based on identity of the object that implements the service. Access to a service depends on the contents of the ACL associated with the object Jini uses all of the existing Java security mechanisms,including verification prior to code loading, sandboxing, code signing, the ability to communicate over cryptographically secure and verified channels, etc. The additional security features of Jini (verified principals,access control lists) will not be available until the second release of the system. “A simple model that minimizes the impact of security on the developer”

20 Jini Programming Model
Services Infrastructure Discovery Lease JavaSpaces TX Manager Jini Lookup Event Extended Security Transaction Java VM Java API’s Enterprise Beans The programming model is an extension of the Java programming model to distributed, interconnected objects It provides the protocols that can be used by the services and infrastructure to communicate between themselves It has low resource requirements. It is extensible and flexible. Among the interfaces that make up the Jini programming model are the following: The leasing interface, which defines a way of allocating and freeing resources using a renewal, duration-based model The event and notification interface, which is an extension of the JavaBeansTM event model that enables event-based communications between Jini services The transactional interfaces provides a two-phase commit protocol, which enables entities to cooperate in such a way that either all of the changes made to a group occur atomically or none of them occur JNDI Java RMI Beans ... JTS ... Security “The set of interfaces that allow the construction of reliable services”

21 Jini Services Programming Model Services Infrastructure Lease
JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Basic services required to support the Jini model The Jini infrastructure and programming model are built to enable services to be offered and found in the network federation. Services appear programmatically as objects written in the Java programming language. A single service may be implemented using other services. The initial Jini services include the following: JavaSpaces, which can be used for simple communication and for storage of related groups of Java objects A two-phase commit manager, which enables groups of objects to participate in the two-phase commit protocol defined by the programming model. Services may represent software hardware or a combination Service objects may be downloaded as required We expect partners to add value by supplying their own kinds of services in the areas in which they have particular competence. Java VM Java API’s Enterprise Beans JNDI Java RMI Beans ... JTS ... Security “Jini services provide simple solutions to complex problems faced by developers in the distributed environment”

22 Hardware Implementation
Service Model 1 Service Client Service Provider Hardware Implementation Proxy Client Private Protocol Java VM An implementor of services has a number of ways it can be done. This slide and the next 2 show how it can be done. This allows maximum flexibility in the design and implementation without compromising the Jini architecture. In this example the JVM and the device’s services are integrated. As an example, this could be a disk drive or a hub/router/switch. RMI Network

23 Service Model 2 Service Client Service Provider Dev 1 Dev 2 Dev 3 Java
Device Bay Proxy Client Private Protocol In this example the service is provided by a more complex device than previously. Here, the JVM services many devices contained in a single box. A good example would be a disk storage array. You wouldn’t want each disk to have a JVM as it would be less efficient in terms of access and design. NOTE that the protocol to the device is native. Java VM RMI

24 Service Model 3 Service Client Network Proxy Proxy Client Java VM
Private Protocol In this last example the Jini device is separate from the devices it manages. An example might be a networked controller whose devices are scattered about the network. Note that the Jini device has drivers that talk the native protocol to the devices it controls. While all of these examples could be hardware, it could also be software. In the above example, the Jini device could be a network management DB talking to it’s agents represented by Dev 1, etc. RMI Dev 1 Dev 2 Dev 3

25 Conclusions
Jini provides an elegant distributed programming model Check out our web sites...

Download ppt "Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field."

Similar presentations

Ads by Google