1 Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay User Interfaces for Jini Services The Jini Pattern Language Workshop OOPSLA – 2000
1
Vrijendra Gokhale, Bernard Menezes
K. R. School of Information TechnologyIIT Bombay
User Interfaces for Jini Services
The Jini Pattern Language WorkshopOOPSLA – 2000
15 October 2000 User Interfaces for Jini Services
2
Pervasive Computing
• Computing as a technology that hides, like paper
• Devices around us have increasing computational power
• Future wireless networks are going to be increasingly dynamic
15 October 2000 User Interfaces for Jini Services
3
Context Aware Computing
• Control: ability to control things around me
• Data manipulation: ability to gather data from gadgets around me and process it
• Customization: does the environment adapt to my needs?
15 October 2000 User Interfaces for Jini Services
4
The Jini Technology
• A federating technology for services
• Enables impromptu communities• Supports service discovery based
on attributes• Based on the Java Remote Method
Invocation (RMI)
15 October 2000 User Interfaces for Jini Services
5
Key Jini Features
• Discovery• Lookup• Leasing• Remote Events• Transactions
Proxy publishing and lookup
Soft State and automatic cleanup
15 October 2000 User Interfaces for Jini Services
6
A Jini Scenario
• Service discovers a Jini Lookup
Multicast request
Lookup proxy
15 October 2000 User Interfaces for Jini Services
7
A Jini Scenario
• Service publishes a proxy at the lookup
Join Protocol
15 October 2000 User Interfaces for Jini Services
8
A Jini Scenario
• Client discovers a Jini Lookup
Multicast request
Lookup proxy
15 October 2000 User Interfaces for Jini Services
9
A Jini Scenario
• Client looks up the printer
Lookup
Printer proxy
15 October 2000 User Interfaces for Jini Services
10
A Jini Scenario
• Client uses the print service of the printer
print()
15 October 2000 User Interfaces for Jini Services
12
A Hypothetical Situation
“You enter a room which contains appliances like printers, cameras, music systems, microwave ovens… is it possible to control, compute or manipulate these gadgets without any prior knowledge of their existence?”
15 October 2000 User Interfaces for Jini Services
13
Issues: A Hypothetical Situation• To programmatically talk to a Jini service
the client must have the service interface• Does the client carry ALL the interfaces it
needs to talk to [impractical]• How to handle gizmos?
Something the Martians left behind!(assuming it participates in a Jini federation)
15 October 2000 User Interfaces for Jini Services
14
Issues: A Hypothetical Situation• Can a common Jini interface allow
service specific behaviour?• Does the client have a JVM?
15 October 2000 User Interfaces for Jini Services
15
Solution: User Interfaces
• All interactive services export UIs.• Programmatically such services
are known by a well known interface.
public interface JUnknown{
public void getBuilder(String id);
}
15 October 2000 User Interfaces for Jini Services
16
Using Patternsto Accommodate Varied Client Display Technologies
• A Factory encapsulates client side UI capabilities
public interface Factory{
public Object getObject(Object which);
}
15 October 2000 User Interfaces for Jini Services
17
Using Patternsto Accommodate Varied UI Construction Logic
• A Builder encapsulates client UI technology specific UI construction logic
public interface Builder {
public void buildUI (Factory factory);
}
15 October 2000 User Interfaces for Jini Services
18
• the getBuilder(String id)method of JUnknown dynamically loads the appropriate builder for the specified client factory type!
• this uses underlying RMI class loading mechanisms
JUnknown ties it all customized UI construction for different client devices
15 October 2000 User Interfaces for Jini Services
21
Advantages
• Dynamically builders can be loaded for various factory types
• Support for different display technologies
• Stub is lightweight and does not carry any extra UI classes
• Dynamically builders can be loaded for various factory types
• Support for different display technologies
• Stub is lightweight and does not carry any extra UI classes
15 October 2000 User Interfaces for Jini Services
22
More Advantages
• Adding support for new UI tech by simply adding new builders at service end
• Support for Non JVM clients viz web clients– Using an intermediate tier viz Servlets– Involves an HTMLFactory and
HTMLBuilder
15 October 2000 User Interfaces for Jini Services
23
Future Work
• Identifying and refining the UI patterns
• Security in Jini– Who can access services?
Authentication– Who can invoke what service?
Authorization