1 / 24

Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay

User Interfaces for Jini Services. The Jini Pattern Language Workshop OOPSLA – 2000. Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay. Pervasive Computing. Computing as a technology that hides, like paper

niveditha
Download Presentation

Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. User Interfaces for Jini Services The Jini Pattern Language Workshop OOPSLA – 2000 Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay

  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 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? 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) User Interfaces for Jini Services

  5. Key Jini Features • Discovery • Lookup • Leasing • Remote Events • Transactions Proxy publishing and lookup Soft State and automatic cleanup User Interfaces for Jini Services

  6. A Jini Scenario • Service discovers a Jini Lookup Multicast request Lookup proxy User Interfaces for Jini Services

  7. A Jini Scenario • Service publishes a proxy at the lookup Join Protocol User Interfaces for Jini Services

  8. A Jini Scenario • Client discovers a Jini Lookup Multicast request Lookup proxy User Interfaces for Jini Services

  9. A Jini Scenario • Client looks up the printer Lookup Printer proxy User Interfaces for Jini Services

  10. A Jini Scenario • Client uses the print service of the printer print() User Interfaces for Jini Services

  11. The Lego Example! 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?” 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) 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? 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); } 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); • } 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); • } User Interfaces for Jini Services

  18. JUnknown ties it all customized UI construction for different client devices • 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 User Interfaces for Jini Services

  19. Interactions and code User Interfaces for Jini Services

  20. Interactions and code 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 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 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 User Interfaces for Jini Services

  24. Thank You! User Interfaces for Jini Services

More Related