Download - Or: The End To Protocols As We Know Them
2
Or: The End To Protocols As We Know Them
Dr. Hellmuth BrodaChief Technologist
Europe, Middle East & AfricaMember, Sun Vision Council
Sun Microsystems, [email protected]
Dr. Hellmuth BrodaChief Technologist
Europe, Middle East & AfricaMember, Sun Vision Council
Sun Microsystems, [email protected]
Jini™ Technology
Jini™ Technology
Simply connect.
A Computing History
Disk CenteredComputing
MicroprocessorAge
NetworkAge
CPUDiskDisk-oriented OSMulti-chip CPUs
Systems on a boardInexpensive disksEmbedded devices
Personal devicesNetwork services
ServiceAge
1950’s1950’s 1980’s1980’s Mid-1990’sMid-1990’s
Jini CommunitiesJava™ Technology Services
20002000
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
1. Services – not applications2. Wireless > Internet > PC markets3. eMarketPlaces4. Content => service => device5. Network centric development6. Focus on business logic and accessibility7. Capacity planning is an oxymoron8. Supply chain integration and auctioning
as examples of new business model9. Everything is mission critical10.Simplicity!
The Six WebsThe Six Webs
EntertainmentEntertainmentTraditionalTraditional
eCommerceeCommerce
Pervasive computingPervasive computing
Pocket CommunicatorPocket Communicator
Voice activatedVoice activated
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 QuestionsHow 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• 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
Introduces Simple, Powerful New Concepts
Simply Connect to Anyone, Anywhere, Anytime on Anything
Services
HomeSmall Office Email Voice
Financial Telephony
Entertainment
Email Voice
Financial Telephony
Entertainment
CorporateData Center
Mobile
Jini Technology Signals theStart of the Service Age
Creates NewBusiness Opportunities
• Device Manufactures
– Storage, peripherals, PDAs, CPUs, etc.
• Device Manufactures
– Storage, peripherals, PDAs, CPUs, etc.
An Easier Way to Interactwith the Digital World
• Consumers– Phone– VCR– TV
• Consumers– Phone– VCR– TV
• Service Providers– Search Engines– Portals– Telecommunications
• Service Providers– Search Engines– Portals– Telecommunications
A Simple Way toDevelop & Deploy New Services
Create and DeployNew Applications
• Developers– Tools– Management software
• 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 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 + JiniTechnologyJava + Jini
Technology
InfrastructureInfrastructure Programming Model
Programming Model
ServicesServices
• Java APIs• JavaBeans
Components• etc...
• Java APIs• JavaBeans
Components• etc...
• Discovery & Join
• Distributed Security
• Lookup Service
• Discovery & Join
• Distributed Security
• Lookup Service
• Java Virtual Machine
• RMI• Java Security
• Java Virtual Machine
• RMI• Java Security
• JNDI• Enterprise JavaBeans
Components• JTS• etc...
• JNDI• Enterprise JavaBeans
Components• JTS• etc...
• Leasing• Transactions• Distributed Events
• Leasing• Transactions• Distributed Events
• Printing• Transaction Manager• JavaSpaces™ Service
• Printing• Transaction Manager• JavaSpaces™ Service
Base JavaTechnologyBase 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 capabilitiesProvide any required software and
attributes – no drivers requiredRequires only one Java Virtual Machine
on the networkSend out a multicast packet with reference
to yourselfReceive 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 servicesStores service as extensible set of Java
application objectsID, interface, GUI’s, attributes, drivers...
Service objects downloaded as requiredMay be federated with other lookup
servicesLookup 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 objectsResources 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-orientedSupports subset levels of ACID
propertiesSupports nested transactionsUses 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 notificationAllows for easy use of event managersCan 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 patternsasync, store and forward, routed, filtered...
Service interface of JavaSpaces technologyWriting, 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 CodeJava 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)– 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 NetworksAdaptive Networks•America OnlineAmerica Online•Axis CommunicationsAxis Communications•BEA SystemsBEA Systems•BizTone (ERP BizTone (ERP services)services)•Bosch SiemensBosch Siemens•BullBull•Canon (“using Canon (“using imaging products imaging products over any network”)over any network”)•CiscoCisco•Computer AssociatesComputer Associates•Creative Design Creative Design SolutionsSolutions•Dallas Dallas SemiconductorSemiconductor
•EchelonEchelon•EncantoEncanto•EricssonEricsson•FunaiFunai•IBMIBM•Inprise Corp.Inprise Corp.•Kinkos Corp.Kinkos Corp.•KodakKodak•Metroworks (Code Metroworks (Code Warrior--SW dev)Warrior--SW dev)•MotorolaMotorola•NovellNovell•NokiaNokia•Oki ElectricOki Electric•Philips (HAVi)Philips (HAVi)
•Phoenix Phoenix TechnologiesTechnologies• QuantumQuantum•Samsung Samsung (“Home (“Home Wide Web”)Wide Web”)•SeagateSeagate•Seiko EpsonSeiko Epson•SharpSharp•Sony Sony (HAVi)(HAVi)•SymbianSymbian•Palm ComputingPalm Computing•TatungTatung•ToshibaToshiba•Xerox Xerox (remote doc (remote doc services)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• 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• 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
?
matu
rity
target size
exploring
2nd FCS
FCS
beta
alpha
prototype
test drive
tiny d
evic
e
larg
e d
evic
e
em
bedded
lapto
p
desk
top
Ult
ra6
0
E2
50
E1
00
00
>1
E1
00
00
1-3
3-12
12-25
service UI
storage
printers
Biztone
Echelon
? Data missing
Informative
??
?
??
PersonalGenie
ProsystTelia/Oracle
US Army
?
?
connections:
Expected Jini MarketCustomers
>25
eko
Motorola OpenWings
Jini Surrogate Architecture
Lookup Service
JiniServices
JiniClients
Jini/YSurrogateHost
Jini/XSurrogateHost
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
“Plug&Work instead of Universal Plug&Play”
- Scott McNealy
Service Driven Network
PlatformPlatform
ServicesServices
UsersUsers
SolarisTM
is .com grade platform
What You Need to Use Jini Technology
May The Force (of Solaris) Be With You . . .