Jini and Legacy Systems
Jan Newmarch
University of Canberra
DSTC
Jini
-
Jini is "network plug and work"
-
Based on Java
-
Treats h/w and s/w as "services" with "clients"
-
Uses mobile code
-
Distributed event and transaction models
Legacy
-
Jini has been available for one year
-
Jini mailing list: "Jini has stalled"
-
CNet: "What is holding up Sun's much-hyped technology?"
-
How can Jini establish itself and grow in legacy environments?
Seminar
- Overview of Jini
- Jini in a Jini environment
- Jini in legacy environments
- Legacy clients with Jini services
- Jini clients with legacy services
Service Lookup Discovery
-
Broadcast to discover Lookup Service
-
LUS = (naming service + trader)/2
Lookup Service Discovered
- LUS transfers an object to the service
- Service transfers a "dormant" proxy to the LUS
Client Lookup Discovery
-
Client discovers LUS in the same way as any service
-
"discovering" != "being discovered"
-
Separation of concerns!
Client Search
-
Search based on object types
-
Type safety!
Client-Service Communication
-
Can use RMI proxy/stub
-
Can have no communication
-
Can use own client-server protocol
-
Flexibility!
Distributed Events
-
Any service/client can act as event generator
-
Any client/service can register as event listener
-
A client/service can register another as event receiver
Lookup Service Events
-
Events are generated on changes in the LUS knowledge of services
-
Service added events
-
Service removed events
-
Service properties changed events
Service Events
-
Services/clients can generate RemoteEvent's
-
The meaning depends on the generator
MindStorms
Jini in a Jini World
-
The Jini specification deals with Jini services and Jini clients
-
It covers interaction between services and clients
-
It doesn't cover interactions between clients and users
-
It doesn't specify services
Jini Desktop?
Interfaces
-
No interfaces yet defined!
Service UI Project
-
Led by Bill Venners of Artima Software
-
Allows definition of multiple UI's per service
-
UI attached to service, not part of the service
-
The service UI interface will go to Jini Community voting soon
Printer Interface Project
-
Led by Alan Kaminsky of Xerox Corp
-
Based on the Internet Printing Protocol (IPP)
-
IPP is just a protocol - the proposal adds classes, interfaces, types, methods
-
The printer interface will go to Jini Community voting soon
Legacy
-
What single application helped Microsoft Windows to succeed?
-
What single application helped X Windows to succeed?
Legacy
-
What single application helped Microsoft Windows to succeed?
the DOS box
-
What single application helped X Windows to succeed?
multiple xterm's
Jini and Legacy
-
Legacy clients with Jini services
- M/S Word using a Jini printer
- Web browser accessing a Jini service
-
Jini clients with legacy services
- Jini wordprocessor with Unix printer service
lpr
- Jini client driving MindStorms robot
Jini Services with Legacy Clients
-
Few known efforts
-
JTAW
-
Jini and SAP
-
Jini URL's
Jini Technology Adapter for Windows
-
Proposal from Printing group, by Alan Kaminsky
-
JTAW supplies a "network provider", similar to NFS network provider
or Print network provider
-
The JWAT network provider communicates with a JWAT gateway that interacts
with Jini services
-
These give the ability to "browse" Jini services from Windows
-
Extended to provide print services from Jini printer to Windows
-
Status: in alpha (September, 1999). Now defunct?
Jini and SAP
-
Projects in definition stage between DSTC and SAP
-
The coke machine continuously on the network
-
The coke machine on spontaneous Bluetooth networks
Coke on the Network
-
The Coke machine is permanently connected to the network
-
It broadcasts "change of state" events to a listener which does
a batch update on a SAP inventory
Coke on Bluetooth
-
The PDA joins the adhoc Bluetooth network around the Coke machine
-
It interrogates the Coke machine for state, and passes this up to the
SAP system by WAP
Jini URL's
-
"Jini services as URL's" project, still in formation stage
-
Scope is undecided as to "Jini in Jini" or "Jini services in legacy"
-
I have proposed a "Jini services in legacy" scheme, or "Jini services via HTTP"
Jini Services via HTTP
-
Control your airconditioning system from your browser!
Jini Clients with Legacy Services
-
Surrogate project
-
Client Server and Jini
-
CORBA and Jini
Surrogate Project
- In "discussion of ideas" phase
- Allows non-Jini devices to join a Jini "device bay"
- Clients look up a "surrogate" service and make requests on it
- Partly driven by failure from Sun to supply a KVM supporting Jini
Client Server and Jini
-
Client-server systems often suffer from version control problems
when the service is upgraded
-
Web browsers are extreme examples
-
By exporting the client-side as a Jini service, maintenance is simplified
CORBA
-
CORBA (Common Object Request Broker Architecture) is middleware for
distributed systems
-
A CORBA system is specified by a language-independant Interface Definition
Language (IDL)
-
There are language bindings from CORBA IDL to C, C++, Java, SmallTalk,
Cobol, Ada, Python, etc
-
Clients and "servants" communicate by remote procedure call, using the
CORBA backplane
-
Code mobility as in Java is in the latest CORBA specifications
CORBA and Jini
-
Bridges can be built between CORBA (over IIOP) and Jini
-
Due to shared TCP transport protocol, there are several ways bridging can
be done
-
Captured in "design patterns"
-
Should be possible to automatically generate bridges from the IDL
CORBA/Jini using thin Jini Proxies
Conclusion
-
In order to be successful, Jini must progress on three fronts
- Jini clients with Jini services
- Legacy clients with Jini services
- Jini clients with legacy services
-
Some interfaces are close to standardisation, but much needs to be done
-
Sun needs to complete the KVM with Jini support
-
It is still early: Linux took 8 years to get accepted, Java is still
a bit "nouveau" after only 5 years
-
The Australian Jini Centre aims to provide a showcase of examples in each
category, and encourage research and development in this area
Jan Newmarch (http://pandonia.canberra.edu.au)
jan@ise.canberra.edu.au
Last modified: Mon Mar 27 09:47:55 EST 2000
Copyright ©Jan Newmarch