Slide 52 -
2 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 Jini™ Technology Simply connect. A Computing History Disk Centered
Disk-oriented OS Multi-chip CPUs
Systems on a board
Inexpensive disks Embedded devices
Network services Service
Age 1950’s 1980’s Mid-1990’s Jini Communities
Java™ Technology Services 2000 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
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 Entertainment Traditional eCommerce Pervasive computing Pocket Communicator Voice activated The Traditional Web computer
screen Pocket Communicator Web follows you around
in your pocket
system on glass
my: position, profile, surrounding, context
clipping? The Entertainment Web sit on your couch
mobile music The Voice Activated Web voice activation
contiguous real time The eCommerce Web business to business
business to consumer
machines talking to machines The Pervasive Computing Web machines talking to machines
wired or wireless
electric, processor, memory
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 Instant On
Plug it in and it just works, no fuss, hassle free
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
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
Services are available on demand Introduces Simple, Powerful New Concepts Simply Connect to Anyone, Anywhere, Anytime on Anything Services Home Small Office Email
Data Center Mobile Jini Technology Signals the Start of the Service Age Creates New
Business Opportunities Device Manufactures
Storage, peripherals, PDAs, CPUs, etc. An Easier Way to Interact
with the Digital World Consumers
TV Service Providers
Telecommunications A Simple Way to
Develop & Deploy New Services Create and Deploy
New Applications Developers
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
System restores state after failures
Easy access to Jini technology
Anyone can join the Jini community 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 Principles Jini Technology Java + Jini
Technology Infrastructure Programming Model Services Java APIs
etc... Discovery & Join
Lookup Service Java Virtual Machine
Java Security JNDI
Enterprise JavaBeans Components
Distributed Events Printing
JavaSpaces™ Service Base Java
Technology Let objects find each other,... …add simple APIs for remote objects and basic distributed computing,... …then everything else is a service. 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 Innovative Solution for Finding the Place to Start in an Unknown Network Jini Technology Infrastructure: Discovery & Join 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 Binds the Jini Community Together Jini Technology Infrastructure: Lookup Service 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 Infrastructure: Moving Code Uses Java Technology Remote Method Invocation (RMI) Protocol for managing resources using a renewable, duration based model
Contract between objects
Resources can be shared or nonshared Provides Method of Managing Resources in a Networked Environment Jini Technology Programming Model: Leasing Designed for distributed object conversations
Light weight, object-oriented
Supports subset levels of ACID properties
Supports nested transactions
Uses leasing protocol Enables Distributed Entities to Cooperate Jini Technology Programming Model: Transactions 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 Addresses Peculiarities of Messages in the Networked Environment Jini Technology Programming Model: Distributed Events 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 Builds on the Java Virtual Machine Jini Technology Infrastructure: Distributed Security 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 May be Used to Implement a Large Number of Distributed Computing Patterns Jini Technology Services: JavaSpaces™ Technology Jini™, how does it work? Java Interface Code Java Interface Code Java Interface Code Service Request Print Service Œ Jini Lookup Service I want to print Register your service (Java API) at the Jini Lookup Service. Jini Lookup Service stores copy of Java interface code for print services. Request a print service. Jini Lookup Service passes copy of print interface code to requestor. Client uses print services using code from manufacturer. I offer print services! Jini™, how does it work? Java Interface Code Œ Jini Lookup Service I offer image services! Register your service (Java API) at the Jini Lookup Service. Jini Lookup Service stores copy of Java interface code for services. Request the service. Client uses services using code from manufacturer. Image Service Show me what’s on. Java Interface Code Jini Lookup Service passes copy of interface code to requestor. Service Request Java Interface Code 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)
Community is defining and implementing
JavaSpaces, directories, printer classes Where Will We See Jini In the Future? desktop, portable computers
DVD, CD players
refrigerators, freezers alarm systems
. . . Who is implementing Jini already? Adaptive Networks
BizTone (ERP services)
Canon (“using imaging products over any network”)
Creative Design Solutions
Dallas Semiconductor Echelon
Metroworks (Code Warrior--SW dev)
Philips (HAVi) Phoenix Technologies
Samsung (“Home Wide Web”)
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. 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. How are we doing? 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
Siemens Financials US Army
Car Manuf. Ford, . . .
Other interesting efforts
JEMS Ford, Visteon @ JavaOne Driving directions Jini in the Home Jini fridge
Jini waste bin
Jini light switch
Basis for leasing
Jini . . .
Technologies (and Protocols) come and go
Jini can bridge technology generations
Simple---no external knowledge of service required ? maturity target size exploring 2nd FCS FCS beta alpha prototype test drive tiny device large device embedded laptop desktop Ultra60 E250 E10000 >1 E10000 1-3 3-12 12-25 service UI storage printers Biztone Echelon ? Data missing Informative ? ? ? ? ? PersonalGenie Prosyst Telia/Oracle
US Army ? ? connections: Expected Jini Market Customers >25 eko Motorola OpenWings Jini Surrogate Architecture Lookup
Host Jini/X Surrogate Protocol Jini/Y Surrogate Protocol com.mycom.jini.ServiceA[B,C] com.mycom.jini.ServiceA[B,C] com.mycom.
jini.ServiceA Device could be repackaged
as a native Jini device 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 Platform Services Users Solaris TM is .com grade platform What You Need to Use Jini Technology May The Force (of Solaris) Be With You . . .