collaboration and web services

31
05/09/22 05/09/22 uri="http://grids.ucs.indiana.edu/p uri="http://grids.ucs.indiana.edu/p tliupages/presentations/collabwsapr tliupages/presentations/collabwsapr il02" email="[email protected]" il02" email="[email protected]" 1 Collaboration and Web Services [email protected] Geoffrey Fox Professor of Computer Science, Informatics, Physics and Director PTLIU Laboratory for Community Grids Indiana University, Bloomington IN 47404 http://grids.ucs.indiana.edu/ptliupages/pr esentations

Upload: cosmo

Post on 22-Feb-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Collaboration and Web Services. Geoffrey Fox Professor of Computer Science, Informatics, Physics and Director PTLIU Laboratory for Community Grids Indiana University, Bloomington IN 47404 http://grids.ucs.indiana.edu/ptliupages/presentations. [email protected]. Collaborative Web Services. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupaguri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="es/presentations/collabwsapril02" email="[email protected]"[email protected]"

11

Collaboration and Web Services

[email protected]

Geoffrey FoxProfessor of Computer Science, Informatics, Physics

and Director PTLIU Laboratory for Community GridsIndiana University, Bloomington IN 47404

http://grids.ucs.indiana.edu/ptliupages/presentations

Page 2: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 22

Collaborative Web Services First note that there are two distinct concepts Collaboration as a Web Service

• Such as “Audio-Video Conferencing” as a Web Service or “Text Chat as a Web Service”

Collaborative Web Services• Here we view a Web Service as specifying a (distributed)

object and wish to share an object• Object could be a Web page, a Job status form, a scientific

visualization, a PowerPoint slide etc. (not all of these are Web Services but all should be)

• There is an overall framework (part of collaboration as a web service) specifying such items as members of collaborative session and their preferences. There is a mechanism to make Web services collaborative within this framework

Page 3: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 33

Why Web Services for Collaboration Well everything is meant to be a Web Service but also: Web Services are MUCH EASIER to make

collaborative than other objects because all input and output is defined by uniform XML messages• You need to teach your message service about collaboration!• Note local applications are NOT Web Services – input is

things like “user mouse click” represented by “method events” (UI program interrupts) not “XML message events”

The elegance of collaborative web services suggest that it could be easiest to make object X (such as PowerPoint or SVG) collaborative not by traditional direct methods but by converting to a Web Service

Page 4: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 44

Types of Collaboration I Shared Display: here one shares the rendering of a

Web Service. No modification is needed of the web service. Rather this is handled by the portal controlling the user interface

Collaborative Replicated Web Services: here one replicates several instances of a web service and the task is to keep these copies consistent. This synchronizes inputs to multiple Web Services

Collaborative Web Service Access: here one has multiple clients accessing a single instance of a web service and obtaining consistent views. This multicasts output of a single Web service to multiple clients

Page 5: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 55

Types of Collaboration II Shared Export is built on synchronizing the viewers

(PDF HTML SVG Browsers) of standard formats. It differs from Shared Web Services in that user inputs (mouse clicks, keyboard) and not (XML Web service) messages are shared• One can share export with either a single or replicated back-

end engine• The most elegant shared export models are built around

viewers of documents sharing W3C DOM• It would be interesting to convert W3C DOM to a Web

Service Shared event is like shared Web service but is a custom

“implementation” for each application• One can often choose between sharing user inputs or sharing

implied change in specification of object state

Page 6: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 66

Collaboration: Shared Display Sharing can be done at any point on “object” pipeline

Object Object’ Object’’ Object Display

Object Viewer

Object Display

Object Display

Event(Message)

ServiceShared Display sharesframebuffer with eventscorresponding to changedpixels in master client.

Master

SharedDisplay

SharedWeb Service

Shared Event

Shared Export

In these and following diagrams, we havethree collaborating clients; is masterwhile and are non-masters

Page 7: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 77

Collaboration: Shared Export I Another point on object to display pipeline

Object Object’ DrivingAppl.

Object Display

Object Viewer

Object Display

Object Viewer

Event(Message)

Service

Shared Export sharesclient side viewer with events corresponding touser interactions orinformation from drivingapplication

Master

Object Display

Object Viewer

SharedDisplay

SharedWeb Service

Shared Event

Shared Export

Page 8: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 88

Collaborative Web Service Access Web Service either supports collaboration directly or uses event service

ObjectWeb

ServiceObject Display

Object Viewer

Object Display

Object Viewer

Event(Message)

Service

Web Service has a porton which collaborativemodes set Web Service can be“front-end” (in middletier) to complex back-end object

Master

Object Display

Object Viewer

Web Service InterceptorProviding General Services

Set Collaboration Mode

Page 9: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 99

Web Service Interceptor Collaborative Web Services are implemented “just” by

replicating the messages that are output by the Web service This replication is provided by the event service which needs

both client and service dependent information• The service specific message function is provided by an interceptor or an

adaptor which takes care of issues like security, collaboration, management, service information, which message service to use

• The client specific function specifies the client profile telling event service how to filter events for each client

Depending on system implementation, the interceptor is either built into web service or a wrapper provided by event service• The latter implies that all messages between clients and (all) web services

are handled by event service There are ports on the interceptor allowing specification of

Collaboration Session and giving event service access to information needed for appropriate filtered (as per profile) message delivery to clients

Page 10: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1010

Collaborative Web Service Access This shows how the “Collaboration Web service” supports collaborative web services

Collaborative WebService

MasterClient

ClientEvent(Message)

Service

Web Service has a porton which collaborativemodes set Web Service can be“front-end” (in middletier) to complex back-end object Client

Web Service InterceptorProviding General Services

Set Collaboration and Message Mode

Collaborationas a WebService

Page 11: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1111

Collaborative Replicated Web Services I This uses event multicast to support replicated web services

Object Object Display

Object Viewer

Object Display

Object ViewerEvent

(Message)Service

Master

Object Display

Object Viewer

WebService

Web Service InterceptorProviding General Services

Set Collaboration Mode

WebService

WebService

Page 12: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1212

The event service now replicates the messages INPUT to the master web service (In Collaborative Web Service Access we replicated messages OUTPUT to the client)

Again we use a special “collaboration” port on the Web Service to set up links between clients• Note publish/subscribe mechanism in the events service

supports the late joiners (in other collaboration models as well)

The event service can also handle messages between Web services and clients and provide the user customization service but this is not shown on previous foil

Collaborative Replicated Web Services II

Page 13: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1313

Collaboration: Shared Export II One can use replicated “driver” for shared export

Object Object’ DrivingAppl.

Object Display

Object Viewer

Event(Message)

Service

Master

Object Display

Object Viewer

DrivingAppl.

Object Display

Object Viewer

DrivingAppl.

SharedDisplay

SharedWeb Service

Shared Event

Shared Export

Page 14: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1414

Collaboration: Shared Event I Object must be changed in object (application) specific fashion

Event(Message)

Service

Shared Event sharesState change events

Master

Object Object’’ Object Display

Object Object’’ Object Display

Object Object’’ Object Display

Page 15: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1515

Collaboration: Shared Event II Object events can be shared at any point in pipeline

Event(Message)

Service

Shared Event sharesState change events

Master

Object Object’’ Object Display

Object’’ Object Display

Object’’ Object Display

Page 16: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1616

Collaborative Portlets I When one has multiple components in the UI one must extend

Web Service picture to include Portal and Portlets

Application orContent source

WSDL

Web Service

SR

W

P

Application as a WSGeneral Application PortsInterface with other WebServices

User Face ofWeb ServiceWSRP Ports define WS as a Portlet

PortalUser ProfileAggregate

UI Fragments

Client

Integrate Multiple Portlets User Customizationat either Portal or ifcomplicated at WS

Page 17: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1717

Collaborative Portlets II Collaboration is gotten by extending the WSRP

Interface

Application orContent source

WSDL

Web Service

SR

W

P

Event(Message)

Service

Collaborationas a WebService

Interceptor

PortalUser ProfileAggregate

UI Fragments

Client

Control

WorkflowFilterPub-Sub

Page 18: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1818

Shared Display Collaboration

Shared DisplayWS

WSDL

Web Service

SR

W

P

Event(Message)

Service

Collaborationas a WebService

MasterClient

Local or RemoteApplication to Share(maybe from Portal)

Display Updates

Multi resolutionAnd other shared displayFeatures

PortalUser ProfileAggregate

UI Fragments

Shared InputControl Port

NonMasterClients

Page 19: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 1919

CollabWS: Collaboration as a Web Service This includes Audio-Video conferencing, Instant

Messengers, shared applications and tools There are basic standards H323 and SIP There are peer to peer collaboration approaches like

JXTA from Sun There are various commercial products – Groove

Networks effectively defines some shared application interfaces

CollabWS defines a superset of collaboration properties and subservices in XML/WSDL

Then you provide several bindings of collabws.wsdl to new transports and old ones (binary H323)

Page 20: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2020

H323 SIP

JXTA

Page 21: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2121

SIPH323 JXTA

H323 JXTA

SIP

Page 22: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2222

A Typical SIP Message REGISTER sip:registrar.biloxi.com

Via: SIP/2.0/UDP 10.4.1.4:5060To: Bob (sip:[email protected])From: Bob (sip:[email protected]);tag=456248Call-ID: [email protected]: 1826 REGISTERContact: (sip:[email protected])Expires: 7200Contact-Length: 0

Initially build a wrapper that accepts such messages and converts to …..

Page 23: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2323

Collaboration as a Web service - now

Page 24: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2424

SIP as XML <sipasxml>

<register> sip:registrar.biloxi.com</register><via> SIP/2.0/UDP 10.4.1.4:5060</via><to> Bob (sip:[email protected]) </to><from tag="456248" > Bob (sip:[email protected]) </from><call-id> [email protected]</call-id><cseq> 1826 REGISTER </cseq><contact> (sip:[email protected]) </contact><expires> 7200 </expires><contact-length> 0 </contact-length></sipasxml>

So this is either an internal format to which we map SIP messages or it is an external format used for Collaboration Web Service

Page 25: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2525

Future Collaboration Web Service

Page 26: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2626

Messaging/Events as a Web Service We can implement messaging subsystem (between

WSDL resources) with either direct messages or by a queued system where you publish messages to queues and subscribe as receiver to particular queues

There are many different publish/subscribe models• JMS is a cluster of central servers• JXTA is a very dynamic Peer to Peer model where pipes are

queues and topics (metadata) are service advertisements Implement JMS API with JXTA protocol – different

WSDL bindings here have different fault tolerance/reliability semantics• Could use JMS as long distance “carrier” between JXTA peers• JXTA provides higher performance than JMS for nearby

recipients

Page 27: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2727

Event Web Service

Filter is mapping to PDA or slow communication channel (universal access) – see our PDA adaptor

Workflow natural as all messages “intercepted” by Event Web Service

Routing illustrated by JXTA Destination-Source matching illustrated by JMS

Web Service 1

(Virtual)Queue

Web Service 2

Destination Source Matching FilterRouting workflow

WSDLPorts

WSDLPorts

Page 28: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2828

Broker Network

Database

Resource

Broker

Broker

Broker

Broker

Broker

Broker

Software multicastP2P: Brokers are clients

Page 29: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2929

Narada JXTA/JMS Integration http://grids.ucs.indiana.edu/ptliupages/projects/narada/ Is a network of event brokers which can reliably deliver XML

specified events Using openJMS selection module, becomes a distributed or

conventional Java Message Service Linking special JXTA

proxies, it can link JXTA communities

Think of JXTA JMS andNarada as differentbindings toevent/messagingweb service

Page 30: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 3030

Education as a Web Service Can link to Science as a Web Service and substitute educational

modules “Learning Object” XML standards already exist from IMS/ADL

http://www.adlnet.org – need to update architecture Web Services for virtual university include: Registration Performance (grading) Authoring of Curriculum Online laboratories for real and virtual instruments Homework submission Quizzes of various types (multiple choice, random parameters) Assessment data access and analysis Synchronous Delivery of Curricula Scheduling of courses and mentoring sessions Asynchronous access, data-mining and knowledge discovery Learning Plan agents to guide students and teachers

Page 31: Collaboration and  Web Services

04/22/2304/22/23 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]"uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 3131

CMS (Content Management) as a Web Service

For meta-data, build federated database as a Web Service• Storage, update, lookup of objects• Registration of different control engines

For content, if W3C DOM and Java API as for SVG and “decent” XHTML browsers, then can wrap DOM as a web service for all interface functions• Can of course do this for IE5 but document object model

unreliable Build collaboration systems as sharing Web Service

interfaces (not COM or other object API as proposed by Groove Networks)