collaboration and web services
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 PresentationTRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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 …..
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
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
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
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
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
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
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
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
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)