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? JiniWhat if …there was a true distributed programming model?
3 What is Jini? Key Concepts Spontaneous networkingFederationServicesDiscoveryThe 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 networkDiscovery has to do with the automatic installation of a service.Simply put, connect anything at anytime, anywhere
4 Current Enterprise Reality VideoServerWebServerSolaris WorkstationTelcoServerPagerFirewallPublic InternetCorporate InternetThin ClientThe 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 PhoneNT WorkstationThin ClientSolaris WorkstationWorkgroupServerPDA
5 the Network really is the computer Jini:the Network really is the computerToday - 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!TodayFuture
6 Jini Technology Introduction Invented by Sun Microsystems, 1999Service-oriented framework for creating reliable distributed applicationsDesigned with the network in mindProvides a spontaneous, self-healing environmentMoves the Java platform to the networkInfrastructure and a programming model
7 Properties of Distributed Systems The following assumptions do not hold in distributed systems:Networks are reliableRemote systems are fault-freeNetwork latency is zeroBandwidth is infiniteOne administration domainSystems are homogeneousSuccessful systems must address these.
8 Service-oriented view Everything is a service on the networkHardware, software, etc.Services are represented by interfacesOnly functionality not implementation matters to clientsImplementation is a private businessIn Jini, services are described by Java interfacesPrograms understand programs bestProvides strong typingProven programming model
9 Spontaneous networking Jini enables clients to automatically discover services at runtimeAssociative searchNot by name lookup (e.g.Instead: find a service that does this or thatLoose couplingServices 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 NetworkServicesJava SpacesOther Services•••LookupJiniDiscovery/JoinRMIThe 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.JavaJavaJavaSolarisMacWindowsSparcPPCx86
11 The role of the proxyThe proxy is a Java object downloaded from the serviceprovides service ortransparently transfers method calls to the remote serviceHides implementation and communication detailsProtocol independent (TCP/IP, HTTP, SOAP, etc.)
12 Jini and Java Jini is 100% Pure Java Write once, run anywhere Wide industry acceptanceDesigned for building robust network appsbuilt on the Java standard RMIJini is Java technology centered“Jini.. a networked federation of Java virtual machines”
13 RMI Jini uses RMI for object-object communication Full object module supportPass any Java object and its codeWorks in any compliant JVMEasy to implement (i.e. automatic serialization)Provides foundation for addition ofmulticast, replication and basic securityJini 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 natureof the networked Jini system”
14 Jini Architecture Programming Model Services Infrastructure Lease JavaSpacesTX ManagerDiscoveryJiniLookupEventExtended SecurityTransactionJava VMJava API’sEnterprise BeansThe 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:InfrastructureA set of components that provide an infrastructure for federating services in a distributed systemProgramming modelThe programming model supports both the production *and use* of reliable distributed services.ServicesServices 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.JNDIJavaRMIBeans...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 JavaSpacesTX ManagerDiscoveryJiniLookupEventExtended SecurityTransactionLets now discuss the infrastructure components of Jini. I will discuss in further detail, Jini discovery, and lookup infrastructure.Java VMJava API’sEnterprise BeansJNDIJavaRMIBeans...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 devicesAdvertise its capabilitiesProvide any required SW and attributesWorks with JVM-enabled or non-JVM devicesSend out a multicast packet with reference to yourselfReceive a RMI reference to the Lookup serviceDiscovery 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 multicastrequests from discovering entities1. The device advertisesand looks for a serviceDiscoveringEntityLookup Server3. The discovering entity performsa multicast that requestsreferences 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 thediscovering entity’s exported object instance passing aremote reference to its lookup service as the parameter
18 Lookup Registration, Access, Search, Removal Repository of available servicesStores service as an extensible set of Java objectsID, interface, GUI’s, attributes, drivers ...Service objects downloaded to user as requiredMay be federated with other Lookup servicesLookup service interface:Registration, Access, Search, RemovalServices 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 invocationCapabilitiesAuthenticationIntegrityConfidentialityDelegationThe 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 objectJini 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 minimizesthe impact of security on the developer”
20 Jini Programming Model ServicesInfrastructureDiscoveryLeaseJavaSpacesTX ManagerJiniLookupEventExtended SecurityTransactionJava VMJava API’sEnterprise BeansThe programming model is an extension of the Java programming model to distributed, interconnected objectsIt provides the protocols that can be used by the services and infrastructure to communicate between themselvesIt 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 modelThe event and notification interface, which is an extension of the JavaBeansTM event model that enables event-based communications between Jini servicesThe 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 occurJNDIJavaRMIBeans...JTS...Security“The set of interfaces that allowthe construction of reliable services”
21 Jini Services Programming Model Services Infrastructure Lease JavaSpacesTX ManagerDiscoveryJiniLookupEventExtended SecurityTransactionBasic services required to support the Jini modelThe 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 objectsA 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 combinationService objects may be downloaded as requiredWe expect partners to add value by supplying their own kinds of services in the areas in which they have particular competence.Java VMJava API’sEnterprise BeansJNDIJavaRMIBeans...JTS...Security“Jini services provide simple solutions to complex problems faced by developers in the distributed environment”
22 Hardware Implementation Service Model 1Service ClientService ProviderHardware ImplementationProxyClientPrivateProtocolJava VMAn 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.RMINetwork
23 Service Model 2 Service Client Service Provider Dev 1 Dev 2 Dev 3 Java DeviceBayProxyClientPrivateProtocolIn 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 VMRMI
24 Service Model 3 Service Client Network Proxy Proxy Client Java VM PrivateProtocolIn 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.RMIDev 1Dev 2Dev 3
25 Conclusions http://www.sun.com/980713/jini/feature.jhtml Jini provides an elegant distributed programming modelCheck out our web sites...