530 likes | 675 Views
Jini ™ Technology. Or: The End To Protocols As We Know Them. Simply connect. Dr. Hellmuth Broda Chief Technologist Europe, Middle East & Africa Member, Sun Vision Council Sun Microsystems, Inc. Hellmuth.Broda@Sun.COM. 2. A Computing History. Disk Centered Computing. Microprocessor
E N D
Jini™ Technology Or: The End To Protocols As We Know Them Simply connect. Dr. Hellmuth Broda Chief Technologist Europe, Middle East & Africa Member, Sun Vision Council Sun Microsystems, Inc. Hellmuth.Broda@Sun.COM 2
A Computing History Disk Centered Computing Microprocessor Age Network Age Service Age 1950’s 1980’s Mid-1990’s 2000 CPU Disk Disk-oriented OS Multi-chip CPUs Systems on a board Inexpensive disks Embedded devices Personal devices Network services Jini Communities Java™ Technology Services
History of Jini • Sun R&D project (Bill Joy, and Jim Waldo with Ann Wollrath, theinventor/designer of RMI, Ken Arnold, the designer of JavaSpaces, and Bob Schleifer, designer of Lookup/Discovery). • Mid-1960‘s: David Gelernter (Yale) developed a programming language called LINDA (http://www.cs.yale.edu/HTML/YALE/CS/Linda/linda.html)
Linda and JavaSpaces • JavaSpaces: implementation of the ideas behind LINDA but greater use of recent advances in object technology, namely Java. • ``The work at Yale focused mainly on data, but today we can just move objects in and out of JavaSpaces [. . .] JavaSpaces is essentially a facility for communicating tasks out and bringing jobs back'' (James Gosling).
Drivers of Transition to the Networked Age • Increased network bandwidth • Bandwidth is pervasive —increase in the number of wired/ wireless networks • Inexpensive processing power (systems on a chip) • Software based on objects and agents
Ten Megatrends • Services – not applications • Wireless > Internet > PC markets • eMarketPlaces • Content => service => device • Network centric development • Focus on business logic and accessibility • Capacity planning is an oxymoron • Supply chain integration and auctioning as examples of new business model • Everything is mission critical • Simplicity!
The Six Webs Traditional Entertainment Voice activated Pervasive computing Pocket Communicator eCommerce
The Traditional Web • computer • keyboard • screen
Pocket Communicator Web • follows you around • in your pocket • personal communicator • system on glass • my: position, profile, surrounding, context • cell phone? • clipping?
The Entertainment Web • sit on your couch • be entertained • ambient intelligence • follow-me system • story telling • video games • mobile music
The Voice Activated Web • voice activation • agents, bots • studs • always on • contiguous real time
The eCommerce Web • business to business • business to consumer • machines talking to machines
The Pervasive Computing Web • machines talking to machines • Jini, federations • wired or wireless • electric, processor, memory • communication free • processor free • memory free
The big transition • From our product centric industry to a service centric industry • Products (and content?) will metamorphose into services • Light bulb -> illumination lease
Big Questions How rich does the set of network-supported services become? How can we interoperate without a PhD in networking?
Jini technology, based on Java technology, enables digital services to simply connect together.
What is Jini? • Software layer (48kB) to describe services to the net • Runs on all Java Virtual Machines (JVM) on any device (from mainframe to toaster) • Only the Front-End of the service is transmitted---Distributed Computing • End of all Protocols as we know them • Resilience: does not assume that networks always work
Jini Technology Enables You to Simply Connect Introduces Simple, Powerful New Concepts • Instant On • Plug it in and it just works, no fuss, hassle free • Impromptu community • Create your personal community of devices and services — at home, in the office, or on the road — and interact with other communities quickly and easily • Resilient • Your Jini community maintains itself & adapts to change • Your Jini community is always available • The Service Age allows the system to be more tolerant and redundant • Special delivery • Services are available on demand
Simply Connect to Anyone, Anywhere, Anytime on Anything Home Small Office Email Voice Financial Telephony Entertainment Services Mobile Corporate Data Center
Jini Technology Signals theStart of the Service Age Creates New Business Opportunities An Easier Way to Interact with the Digital World • Device Manufactures • Storage, peripherals, PDAs, CPUs, etc. • Consumers • Phone • VCR • TV Create and Deploy New Applications A Simple Way to Develop & Deploy New Services • Service Providers • Search Engines • Portals • Telecommunications • Developers • Tools • Management software
The Philosophy Behind Jini Technology • Simplicity: Less is more • Small code base • No complicated OS • Everything is an object • Use RMI to extend objects to remote resources • Self-healing networks • System restores state after failures • Resilience • Community • Easy access to Jini technology • Anyone can join the Jinicommunity
Jini Technology Principles • Everything is an object • Distributed system is just a distributed program • Java Class Hierarchy describes devices/services • Mobile Code via Remote Method Invocation • Leasing and distributed garbage collection provides self-healing • Individual devices/services can be simple, don’t require a Java Virtual Machine • Services available on demand
Jini Technology …add simple APIs for remote objects and basic distributed computing,... …then everything elseis a service. Let objects find each other,... Programming Model Services Infrastructure • JNDI • Enterprise JavaBeansComponents • JTS • etc... • Java Virtual Machine • RMI • Java Security • Java APIs • JavaBeans Components • etc... Base Java Technology • Discovery & Join • Distributed Security • Lookup Service • Leasing • Transactions • Distributed Events • Printing • Transaction Manager • JavaSpaces™ Service Java + Jini Technology
Jini Technology Infrastructure:Discovery & Join Innovative Solution for Finding the Place to Start in an Unknown Network • Discover (find) and join a community of Jini technology-enabled devices • Advertise its capabilities • Provide any required software and attributes – no drivers required • Requires only one Java Virtual Machine on the network • Send out a multicast packet with reference to yourself • Receive a RMI reference to the Lookup Service
Jini Technology Infrastructure: Lookup Service Binds the Jini Community Together • Repository of available services • Stores service as extensible set of Java application objects • ID, interface, GUI’s, attributes, drivers... • Service objects downloaded as required • May be federated with other lookup services • Lookup Service interface • Registration, Access, Search, Removal
Jini Technology Infrastructure:Moving Code Uses Java Technology Remote Method Invocation (RMI) Basic communication mechanism between components in a Jini system Secure ability to find, activate, and garbage collect objects Allows data as well as code to be passed from object to object
Jini Technology Programming Model:Leasing Provides Method of Managing Resources in a Networked Environment Protocol for managing resources using a renewable, duration based model Contract between objects Resources can be shared or nonshared
Jini Technology Programming Model:Transactions Enables Distributed Entities to Cooperate Designed for distributed object conversations Light weight, object-oriented Supports subset levels of ACID properties Supports nested transactions Uses leasing protocol
Jini Technology Programming Model:Distributed Events Addresses Peculiarities of Messages in the Networked Environment • Extends Java platform event model to allow it to work in a distributed network • Register interest, receive notification • Allows for easy use of event managers • Can use numerous distributed delivery models • Push, pull, filter ... • Uses leasing protocol
Jini Technology Infrastructure:Distributed Security Builds on the Java Virtual Machine Jini distributed security adds notion of principal and access control lists Jini services are accessed on behalf of a principle which traces back to a particular user/device Access to a service depends on the access control list associated with that service
Jini Technology Services:JavaSpaces™ Technology May be Used to Implement a Large Number of Distributed Computing Patterns • Shared, “dynamic memory” for networked Java Virtual Machines • Helps federate the network of Java Virtual Machines • Provides simple, dynamic object persistence • Facilitates alternative messaging patterns • async, store and forward, routed, filtered... • Service interface of JavaSpaces technology • Writing, finding, reading, removing, event
Jini™, how does it work? I want to print Request a print service. Register your service (Java API) at the Jini Lookup Service. Client uses print services using code from manufacturer. I offer print services! Service Request Œ Print Service Java Interface Code Jini Lookup Service passes copy of print interface code to requestor. Java Interface Code Java Interface Code Jini Lookup Service stores copy of Java interface code for print services. Jini Lookup Service
Jini™, how does it work? Request the service. Show me what’s on. Client uses services using code from manufacturer. Register your service (Java API) at the Jini Lookup Service. Service Request I offer image services! Œ Image Service Java Interface Code Jini Lookup Service passes copy of interface code to requestor. Java Interface Code Java Interface Code Jini Lookup Service stores copy of Java interface code for services. Jini Lookup Service
The Jini Community Sun Community Source License (SCSL) model Any Jini SCSL licensee is in the Jini community Programs available for training, support, and marketing
Jini Technology Adoption is Accelerating • Jini community is increasing daily • Current development by Jini community members • Computer devices (Printers and storage) • Consumer devices (Camera, DVD, VCR, settop) • Mobile devices (Pager, cell phone, PDA) • Automotive devices (GPS, sound, embedded control) • Networked devices (Routers, switches) • Networked services • Community is defining and implementing • JavaSpaces, directories, printer classes
desktop, portable computers printers, scanners WebCams disk drives DVD, CD players VCRs, TVs refrigerators, freezers alarm systems heart monitors heating air conditioning automobile engines dashboard computers kitchen appliances . . . Where Will We See Jini In the Future?
Adaptive Networks America Online Axis Communications BEA Systems BizTone (ERP services) BoschSiemens Bull Canon (“using imaging products over any network”) Cisco Computer Associates Creative Design Solutions Dallas Semiconductor Echelon Encanto Ericsson Funai IBM Inprise Corp. Kinkos Corp. Kodak Metroworks (Code Warrior--SW dev) Motorola Novell Nokia Oki Electric Philips (HAVi) Who is implementing Jini already? • Phoenix Technologies • Quantum • Samsung (“Home Wide Web”) • Seagate • Seiko Epson • Sharp • Sony (HAVi) • Symbian • Palm Computing • Tatung • Toshiba • Xerox (remote doc services)
January 25, 1999 - Jini is officially launched and the technology is available for download March - Sun hosts the first Community event: the Printer Group March - jini.org goes live April - Sun hosts the second Community meeting: the Storage Group May - Sun hosts the first full Community Summit. Over 70 companies participate June - Sun’s Professional Services launch a full suite of Jini technology service offerings. How are we doing with Jini Technology?
How are we doing? • June - J2EE incorporates Jini as a complementary technology. • June - Addison-Wesley publishes The Jini™ Specification & The JavaSpaces ™ Principles, Patterns, and Practice • June - JavaOne -- Eight Jini partners exhibit products or concepts. • June - Jini Technology Group releases JavaSpaces 1.0, Jini 1.1 Helper Utilities and Services Draft Specification and RMI Security Draft Specification • July - the US Army announces they are implementing Jini technology. • August - Prentice Hall publishes Core Jini • October - Sun hosted the second full Community Meeting. • November - Released Jini 1.0.1, JavaSpaces 1.0.1, TCK 1.0B, Jini 1.1Alpha
How are we doing? • February, 2000 - Motorola announces plans for Jini in Command and Control. • March - O’Reily publishes Jini in a Nutshell • March - 3rd Community Summit held in California. • March - The printer working group agrees to final draft of the Printer API specification • April - eko Medical Systems announces products based on Jini. • April - 50,000+ developers are using Jini. • April - Jini Service UI working group releases code to community. • June - JavaOne with over 33 Jini presentations and a host of customer exhibits. • June - 4th Community Summit the day before JavaOne.
What have we learned about Jini Technology? • As partners have begun to understand its power, they are broadening its use. • The market has taken the technology well beyond Sun’s initial positioning • Offering Jini Technology through Sun’s Community Source License has stimulated research and development into what makes up a Jini service
FETISH PABADIS HeyWow SiemensFinancials US Army Web Trader Car Manuf.Ford, . . . Other interestingefforts WEBVillage JEMS Examples for Jini Projects
Ford, Visteon @ JavaOne Driving directions
Jini fridge Jini dishwasher Jini waste bin Jini light switch Jini toaster? Basis for leasing Jini . . . Why Jini? Technologies (and Protocols) come and go Jini can bridge technology generations Simple---no external knowledge of service required Jini in the Home
? 1-3 Data missing 3-12 12-25 >25 service UI Echelon Customers Expected Jini Market 2nd FCS Biztone Informative Telia/Oracle ? FCS Prosyst connections: eko PersonalGenie ? beta printers US Army Motorola OpenWings maturity alpha prototype ? ? ? test drive ? storage exploring ? ? E250 laptop Ultra60 E10000 desktop embedded tiny device >1 E10000 large device target size
Jini Surrogate Architecture Jini/Y Surrogate Protocol Jini/Y Surrogate Host Lookup Service com.mycom.jini.ServiceA[B,C] Jini Services com.mycom. jini.ServiceA Device could be repackaged as a native Jini device com.mycom.jini.ServiceA[B,C] Jini/X Surrogate Host Jini Clients Jini/X Surrogate Protocol
Jini Technology:Innovation for the Future • Powerful, yet simple technology & licensing • Enables mobile behavior and computing • Drives emerging networks of devices/services • Catch system-on-a-chip wave • No bloated fragile OS with complex configuration • Appropriate software for the networked age • Platform independent via Java Virtual Machine • Object-oriented via best language • Allows dynamic systems that can easily evolve Simply connect.
Quotes on Jini “We've taken the time to make it simple”- Bill Joy “Plug&Work instead of Universal Plug&P{}ay” - Scott McNealy r l
Service Driven Network Users Services Platform TM Solaris is .com grade platform