Top Banner
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
24

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

Dec 30, 2015

Download

Documents

Shanna Watkins
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay User Interfaces for Jini Services The Jini Pattern Language Workshop.

1

Vrijendra Gokhale, Bernard Menezes

K. R. School of Information TechnologyIIT Bombay

User Interfaces for Jini Services

The Jini Pattern Language WorkshopOOPSLA – 2000

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

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

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

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?

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

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)

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

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

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

15 October 2000 User Interfaces for Jini Services

6

A Jini Scenario

• Service discovers a Jini Lookup

Multicast request

Lookup proxy

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

15 October 2000 User Interfaces for Jini Services

7

A Jini Scenario

• Service publishes a proxy at the lookup

Join Protocol

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

15 October 2000 User Interfaces for Jini Services

8

A Jini Scenario

• Client discovers a Jini Lookup

Multicast request

Lookup proxy

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

15 October 2000 User Interfaces for Jini Services

9

A Jini Scenario

• Client looks up the printer

Lookup

Printer proxy

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

15 October 2000 User Interfaces for Jini Services

10

A Jini Scenario

• Client uses the print service of the printer

print()

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

15 October 2000 User Interfaces for Jini Services

11

The Lego Example!

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

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?”

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

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)

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

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?

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

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);

}

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

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);

}

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

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);

}

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

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

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

15 October 2000 User Interfaces for Jini Services

19

Interactions and code

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

15 October 2000 User Interfaces for Jini Services

20

Interactions and code

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

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

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

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

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

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

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

15 October 2000 User Interfaces for Jini Services

24

Thank You!