Jini ™ Technology Simply connect. Or: The End To Protocols As We Know Them 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 1950’s CPU Disk Disk-oriented OS Microprocessor Age 1980’s Multi-chip CPUs Systems on a board Inexpensive disks Network Age Mid-1990’s Embedded devices Personal devices Network services Service Age 2000 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.ht ml) 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 9. Everything is mission critical 10. Simplicity! 1. 2. 3. 4. 5. 6. 7. 8. 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? The Quest For Connectivity 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 Small Office Email Voice Financial Telephony Entertainment Services Corporate Data Center Mobile Jini Technology Signals the Creates New An Easier Way to Interact Start the Service Age Businessof Opportunities with the Digital World • Device Manufactures – Storage, peripherals, PDAs, CPUs, etc. Create and Deploy New Applications • Developers – Tools – Management software • Consumers – Phone – VCR – TV A Simple Way to Develop & Deploy New Services • Service Providers – Search Engines – Portals – Telecommunications 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 Jini community 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 Let objects find each other,... Infrastructure Base Java Technology • Java Virtual Machine • RMI • Java Security Java + Jini Technology • Discovery & Join • Distributed Security • Lookup Service …add simple APIs for remote objects and basic distributed computing,... Programming Model …then everything else is a service. Services • Java APIs • JavaBeans Components • etc... • JNDI • Enterprise JavaBeans Components • JTS • etc... • Leasing • Transactions • Distributed Events • Printing • Transaction Manager • JavaSpaces™ Service 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? Request a print service. I offer print services! Register your service (Java API) at the Jini Lookup Service. Client uses print services using code from manufacturer. Print Service I want to print Service Request Java Interface Code Java Interface Code Java Interface Code Jini Lookup Service stores copy of Java interface code for print services. Jini Lookup Service Jini Lookup Service passes copy of print interface code to requestor. Jini™, how does it work? Request the service. I offer image services! Client uses services using code from manufacturer. Register your service (Java API) at the Jini Lookup Service. Image Service Show me what’s on. Service Request Java Interface Code Java Interface Code Java Interface Code Jini Lookup Service stores copy of Java interface code for services. Jini Lookup Service Jini Lookup Service passes copy of interface code to requestor. 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 Where Will We See Jini In the Future? • 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 • ... Who is implementing Jini already? •Adaptive Networks •America Online •Axis Communications •BEA Systems •BizTone (ERP services) •Bosch Siemens •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) •Phoenix Technologies • Quantum •Samsung (“Home Wide Web”) •Seagate •Seiko Epson •Sharp •Sony (HAVi) •Symbian •Palm Computing •Tatung •Toshiba •Xerox (remote doc services) How are we doing with Jini Technology? • 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? • 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 Examples for Jini Projects • • • • FETISH PABADIS HeyWow Siemens Financials • US Army • Web Trader • Car Manuf. Ford, . . . Other interesting efforts • WEBVillage • JEMS Ford, Visteon @ JavaOne Driving directions Jini in the Home • • • • • • • Jini fridge Why Jini? Jini dishwasher • Technologies (and Protocols) Jini waste bin come and go Jini light switch • Jini can bridge Jini toaster? technology Basis for leasing generations Jini . . . • Simple---no external knowledge of service required Expected Jini Market Customers 2nd FCS Telia/Oracle FCS service UI 1-3 beta printers ? ? US Army Motorola OpenWings alpha prototype ? ? ? storage ? target size Ultra60 desktop laptop embedded large device ? >1 E10000 exploring ? E250 test drive tiny device Data missing maturity 12-25 ? PersonalGenie Echelon 3-12 >25 eko E10000 connections: Biztone Informative Prosyst Jini Surrogate Architecture Jini/Y Surrogate Protocol Lookup Service Jini/Y Surrogate Host 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 Clients Jini/X Surrogate Host 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&Play” - Scott McNealy Service Driven Network Users Services Platform TM Solaris is .com grade platform What You Need to Use Jini Technology May The Force (of Solaris) Be With You . . .