jini overview and specification presented by jas, alvin & chris cse 291-b may 29, 2003
TRANSCRIPT
Jini Overview and Jini Overview and SpecificationSpecification
Presented by Jas, Alvin & ChrisPresented by Jas, Alvin & Chris
CSE 291-BCSE 291-BMay 29, 2003May 29, 2003
Jini - IntroductionJini - Introduction
Jini technology allows devices to dynamically Jini technology allows devices to dynamically establish communication to share and exchange establish communication to share and exchange services across a network. services across a network.
Provides simple mechanisms which enable Provides simple mechanisms which enable devices to plug together to form an impromptu devices to plug together to form an impromptu community (federation)community (federation) Lesson in Political Science: In a federation, most power Lesson in Political Science: In a federation, most power
lies in local authorities. Federal authorities ensure that lies in local authorities. Federal authorities ensure that local authorities work together.local authorities work together.
Each device provides services that other devices Each device provides services that other devices in the community may use.in the community may use.
These devices provide their own interfaces which These devices provide their own interfaces which ensure reliability & compatibility.ensure reliability & compatibility.
Jini - IntroductionJini - Introduction
Jini is an extension of JavaJini is an extension of Java Java consists of one virtual machineJava consists of one virtual machine Jini is a kind of virtual networkJini is a kind of virtual network
Jini Devices must have processing power Jini Devices must have processing power or memory.or memory. Otherwise controlled by another device.Otherwise controlled by another device.
Relies on existence of a network of Relies on existence of a network of “reasonable” speed connecting these “reasonable” speed connecting these devices.devices.
Key ConceptsKey Concepts
ServicesServices An Entity used by person, program, or another An Entity used by person, program, or another
service. May be a computation, storage, a service. May be a computation, storage, a communication channel, etc. You know…a communication channel, etc. You know…a service!service!
Jini system consists of services that can be Jini system consists of services that can be collected to perform a particular task. collected to perform a particular task.
Services can be dynamically added or Services can be dynamically added or withdrawn from the system as needed.withdrawn from the system as needed.
Services Communicate using a service protocol Services Communicate using a service protocol which is a set of interfaces written in Java.which is a set of interfaces written in Java.
Key ConceptsKey Concepts
Lookup ServiceLookup Service Major point of contact between users of the system Major point of contact between users of the system
and the system.and the system. Finds and adds services to the Jini FederationFinds and adds services to the Jini Federation Maps functionality to a set of objects in Jini that Maps functionality to a set of objects in Jini that
actually implement the serviceactually implement the service Can include other lookup services (hierarchy)Can include other lookup services (hierarchy) Can for bridges to other lookup services.Can for bridges to other lookup services.
Services added using two protocolsServices added using two protocols Discovery – locates appropriate lookup serviceDiscovery – locates appropriate lookup service Join – join lookup service.Join – join lookup service.
Key ConceptsKey Concepts
Java RMIJava RMI Provides communication between Provides communication between
servicesservices Extension to normal remote procedure call.Extension to normal remote procedure call. Passes not only data, but entire objects and Passes not only data, but entire objects and
code.code. Provides SimplicityProvides Simplicity
Code can be encapsulated in an object and Code can be encapsulated in an object and can be passed from service to service. can be passed from service to service.
Key ConceptsKey Concepts
LeasingLeasing Access to many services are lease based. Access to many services are lease based. Guarantees access to a service for a Guarantees access to a service for a
negotiated period of time.negotiated period of time. Services can be exclusive or non-exclusive.Services can be exclusive or non-exclusive.
TransactionsTransactions A series of operations to be performed.A series of operations to be performed. Within a single service or spanning multiple Within a single service or spanning multiple
services.services.
Key ConceptsKey Concepts
SecuritySecurity Built on the twin notions of a principal Built on the twin notions of a principal
and an access control list.and an access control list. Jini services are accessed on behalf of Jini services are accessed on behalf of
some entity (principal) which traces some entity (principal) which traces back to a user of the system. back to a user of the system.
Check object’s access control list to Check object’s access control list to determine permissions to use a determine permissions to use a particular service. particular service.
Key ConceptsKey Concepts
EventsEvents Ability to notify objects when a Ability to notify objects when a
particular event occurs.particular event occurs. Could trigger new task/transactionCould trigger new task/transaction
ComponentsComponents
Three main Three main componentscomponents InfrastructureInfrastructure Programming ModelProgramming Model ServicesServices
Tend to get blurred, Tend to get blurred, but just an extension but just an extension of the virtual of the virtual machine concept.machine concept.
ComponentsComponents
InfrastructureInfrastructure Discovery & Join ProtocolDiscovery & Join Protocol
Define way services become part of Jini SystemDefine way services become part of Jini System Java RMIJava RMI
Base language with which services communicateBase language with which services communicate Security ModelSecurity Model
Define how entities are identified and how they get Define how entities are identified and how they get rights to perform actions.rights to perform actions.
Lookup ServiceLookup Service Marketplace for finding and offering services. Marketplace for finding and offering services. Entries in Lookup Service are objects written in Java. Entries in Lookup Service are objects written in Java.
Objects can be downloaded and act as local proxies.Objects can be downloaded and act as local proxies.
ComponentsComponents
Programming ModelProgramming Model Sets of interfaces designed to extend Sets of interfaces designed to extend
the usual single virtual machine model. the usual single virtual machine model. Leasing InterfacesLeasing Interfaces
Adds time-based interface to resources.Adds time-based interface to resources. Event and Notification InterfacesEvent and Notification Interfaces
Enable event-based communication between Enable event-based communication between servicesservices
ComponentsComponents
Programming Model (Cont)Programming Model (Cont) Transaction InterfacesTransaction Interfaces
Coordinates the actions of a group of Coordinates the actions of a group of distributed objects in a two phase systemdistributed objects in a two phase system
Voting PhaseVoting Phase An object votes on whether it has completed it An object votes on whether it has completed it
portion of a task and is ready to commit.portion of a task and is ready to commit. Commit PhaseCommit Phase
Coordinator issues a commit request to each Coordinator issues a commit request to each object.object.
ComponentsComponents
ServicesServices Consist of objects coded in JavaConsist of objects coded in Java
Can be made up of other objectsCan be made up of other objects Has an interface that defines what a Has an interface that defines what a
service is capable of doingservice is capable of doing
A Closer Look at JINIA Closer Look at JINI
Similar TechnologiesSimilar Technologies
Limitations of JINILimitations of JINI
Case StudiesCase Studies
Current StatusCurrent Status
Similar TechnologiesSimilar Technologies
UPnP, Salutation, NINJAUPnP, Salutation, NINJA Common Object Request Broker Common Object Request Broker
ArchitectureArchitecture CORBA is a specification for a Distributed CORBA is a specification for a Distributed
Object SystemObject System RMI vs CORBARMI vs CORBA
performance and portability tradeoffsperformance and portability tradeoffs
Distributed Objects vs Distributed ServicesDistributed Objects vs Distributed Services Can be used in complementary fashion?Can be used in complementary fashion?
Using CORBA with JINIUsing CORBA with JINI
Limitations: Service LookupsLimitations: Service Lookups
Lookup Servers vs Name ServersLookup Servers vs Name Servers Query by service or nameQuery by service or name
Exact MatchingExact Matching ServiceTemplateServiceTemplate / / ServiceRegistrarServiceRegistrar
provide limited expressiveness (i.e. for provide limited expressiveness (i.e. for range queries)range queries)
Fault-toleranceFault-tolerance No defined policies for system recoveryNo defined policies for system recovery
Limitations: Low-Resource Limitations: Low-Resource HostsHosts
Servers: Sun’s reference Servers: Sun’s reference implementation of Lookup Service implementation of Lookup Service consumes 3 MB storage consumes 3 MB storage
Clients: Limitedness of lookup Clients: Limitedness of lookup interface can require a lot of interface can require a lot of unnecessary overheadunnecessary overhead
Is this really a problem (given the Is this really a problem (given the success stories)?success stories)?
Case Studies: Who uses it?Case Studies: Who uses it?
QuantumQuantum Seagate Seagate 3COM3COM CiscoCisco XeroxXerox NovellNovell NokiaNokia PhilipsPhilips SonySony MotorolaMotorola KodakKodak SharpSharp CanonCanon
SiemensSiemens ToshibaToshiba SamsungSamsung Kinko’s Kinko’s Hewlett PackardHewlett Packard AOLAOL Adaptive Adaptive NetworksNetworks EricssonEricsson
Case Studies: Success Case Studies: Success StoriesStories
4D Networks: 4D Networks: Application Services for the Web Built on Jini Network Technology.Application Services for the Web Built on Jini Network Technology.
Appropria: Appropria: Jini Technology Brings Mission-critical Information Out of the Silo. Jini Technology Brings Mission-critical Information Out of the Silo.
Entegrity Solutions: Entegrity Solutions: Major Online E-commerce and Enterprise Solutions Company Rely on Jini Network Major Online E-commerce and Enterprise Solutions Company Rely on Jini Network Technology for Secure E-Commerce.Technology for Secure E-Commerce.
Eko: Eko: Jini Technology connects medical data and equipment dynamically and reliably. Jini Technology connects medical data and equipment dynamically and reliably.
FETISH Federation: FETISH Federation: Jini Network Technology Links Online Travel Services. Jini Network Technology Links Online Travel Services.
Lightflow: Lightflow: Jini Network Technology Adds "High Touch" to Online Shopping. Jini Network Technology Adds "High Touch" to Online Shopping.
Maui High Performance Computing Center: Maui High Performance Computing Center: Sun Architects Jini Network Technology Infrastructure for Military Simulations. Sun Architects Jini Network Technology Infrastructure for Military Simulations.
Procoma: Procoma: An Innovative Solution for Commerzbank AG with Jini Technology. An Innovative Solution for Commerzbank AG with Jini Technology.
Raytheon: Raytheon: Open, Adaptive, Self-Healing Architecture for DD21. Open, Adaptive, Self-Healing Architecture for DD21.
U.S. Army: U.S. Army: Reliable Battlefield Communication Using Jini Connection Technology. Reliable Battlefield Communication Using Jini Connection Technology.
Case Studies: Success Case Studies: Success Stories (cont.)Stories (cont.)
““We believe that the Jini and Java technologies will dramatically change We believe that the Jini and Java technologies will dramatically change the way DD 21 and future Navy systems are developed. The spontaneous the way DD 21 and future Navy systems are developed. The spontaneous community capabilities of Jini will lead to much more reliable, capable community capabilities of Jini will lead to much more reliable, capable and maintainable systems. The development and integration cycle will be and maintainable systems. The development and integration cycle will be reduced significantly, and the use of commercial components will finally reduced significantly, and the use of commercial components will finally be cost-effective.”be cost-effective.”
-- Lead Systems Engineer for DD21, Raytheon-- Lead Systems Engineer for DD21, Raytheon "The cost of manually implementing what Jini network technology is "The cost of manually implementing what Jini network technology is
providing us would have been prohibitive both from an actual cost providing us would have been prohibitive both from an actual cost perspective (person-hours to build) and time perspective (time to market)," perspective (person-hours to build) and time perspective (time to market)," said Horvath. "Jini technology's increasingly mature and well-documented said Horvath. "Jini technology's increasingly mature and well-documented capabilities would be very difficult to reproduce. The use of Jini capabilities would be very difficult to reproduce. The use of Jini technology allows our team to stay focused on the problem space of technology allows our team to stay focused on the problem space of AssureDelivery, and not on implementation details of the underlying AssureDelivery, and not on implementation details of the underlying distributed service." distributed service."
-- Director of Product Development, Entegrity Corp.-- Director of Product Development, Entegrity Corp.
Current StatusCurrent Status
Increased Deployment: Increased Deployment: ““Jini Technology Licensees, Including Heartlab Inc, Jini Technology Licensees, Including Heartlab Inc, Templar Corp, Valaran Corp, FETISH Federation, and Templar Corp, Valaran Corp, FETISH Federation, and Cysive Inc., Turn to Jini Technology to Address Dynamic Cysive Inc., Turn to Jini Technology to Address Dynamic Networking Challenges”Networking Challenges” (May 7, 2003) (May 7, 2003)
Standardization:Standardization:““Jini Community Approves the ServiceUI API”Jini Community Approves the ServiceUI API” (May 7, (May 7, 2003)2003)
Current Status (cont.)Current Status (cont.)
Open Issues:Open Issues: Network Scalability: In theory, a JINI Network Scalability: In theory, a JINI
systerm can scale if it uses a hierarchy of systerm can scale if it uses a hierarchy of lookup servers (like DNS), but no actual lookup servers (like DNS), but no actual ‘wide area’ JINI network has been deployed. ‘wide area’ JINI network has been deployed. But is this even relevant? But is this even relevant?
Generality: Can well-defined interfaces be Generality: Can well-defined interfaces be established for all types of services besides established for all types of services besides simple examples like printers and cameras?simple examples like printers and cameras?
Jini & SensorNetsJini & SensorNets
Can they benefit from each Can they benefit from each other?other?
Benefits of Jini on Benefits of Jini on SensorNetsSensorNets
Sensor networks could benefit from having Sensor networks could benefit from having a virtual machine on each platform so that a virtual machine on each platform so that not every platform required special codenot every platform required special code Allows for single deployments with multiple Allows for single deployments with multiple
sensing applicationssensing applications Dynamic addition/removal of servicesDynamic addition/removal of services
As platforms with newer sensors come As platforms with newer sensors come onboard, the network would automatically onboard, the network would automatically adapt to support themadapt to support them
DivergencesDivergences
Jini seems to imply high connectivity and high Jini seems to imply high connectivity and high bandwidthbandwidth Code is dynamically downloaded to the nodeCode is dynamically downloaded to the node Currently, this is too much to expect from nodesCurrently, this is too much to expect from nodes
Jini makes no attempt to address power Jini makes no attempt to address power consumption issuesconsumption issues Asynchronous communication implies the radio be Asynchronous communication implies the radio be
on most of the timeon most of the time Automatic discovery and handshaking looks costlyAutomatic discovery and handshaking looks costly
Perhaps this is why Jini hasn’t taken off—most embedded Perhaps this is why Jini hasn’t taken off—most embedded devices are on a power conscious dietdevices are on a power conscious diet
Future WorkFuture Work
Since they expect Jini to take off for Since they expect Jini to take off for embedded devices which have embedded devices which have significant power constraints, Jini significant power constraints, Jini should be made aware of these should be made aware of these constraintsconstraints
Should prioritize the needs in sensor Should prioritize the needs in sensor networks and eliminate “marketing” networks and eliminate “marketing” features found in Jinifeatures found in Jini
Discussion QuestionsDiscussion Questions
Should sensornets adapt and conform to Should sensornets adapt and conform to Jini-like standards or should sensornets Jini-like standards or should sensornets use a simplified version of Jini?use a simplified version of Jini?
How much overhead is acceptable for How much overhead is acceptable for sensor networks in terms of sensor networks in terms of communication and computation?communication and computation?
Can virtual machines be made to have Can virtual machines be made to have virtually no overhead and still be virtually no overhead and still be powerful?powerful?