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] 11/6/2015 uri="http://grids.ucs.indiana.edu/ptliupag es/presentations/collabwsapril02" email="[email protected]"

Download Report

Transcript 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] 11/6/2015 uri="http://grids.ucs.indiana.edu/ptliupag es/presentations/collabwsapril02" email="[email protected]"

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

4/26/2020

[email protected]

uri="http://grids.ucs.indiana.edu/ptliupag es/presentations/collabwsapril02" email="[email protected]" 1

  

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 2

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 3

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 4

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

• 4/26/2020

One can often choose between sharing user inputs or sharing implied change in specification of object state

uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 5

Collaboration: Shared Display

Sharing can be done at any point on “object” pipeline

Shared Web Service Shared Event Shared Export Shared Display Object Object’ Object’’ Object Viewer Object Display

Master

Shared Display shares framebuffer with events corresponding to changed pixels in master client.

Event (Message) Service

Object Display 4/26/2020 In these and following diagrams, we have three collaborating clients; is master while and are non-masters Object Display uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 6

Collaboration: Shared Export I

Another point on object to display pipeline

Shared Web Service Shared Event Shared Export Shared Display Object Object’ Driving Appl.

Object Viewer Object Display

Master

Shared Export shares client side viewer with events corresponding to user interactions or information from driving application

Event (Message) Service

Object Viewer Object Display Object Viewer Object Display 4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 7

Collaborative Web Service Access

Web Service either supports collaboration directly or uses event service

Web Service Interceptor Providing General Services Set Collaboration Mode Object Web Service Object Viewer

Master

Object Display Web Service has a port on which collaborative modes set Web Service can be “front-end” (in middle tier) to complex back-end object 4/26/2020

Event (Message) Service

Object Viewer Object Viewer Object Display Object Display uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 8

   

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 9

Collaborative Web Service Access

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

Web Service Interceptor Providing General Services Collaboration as a Web Service Collaborative Web Service Set Collaboration and Message Mode Master Client Web Service has a port on which collaborative modes set Web Service can be “front-end” (in middle tier) to complex back-end object 4/26/2020

Event (Message) Service

Client Client uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 10

Collaborative Replicated Web Services I

This uses event multicast to support replicated web services

Web Service Interceptor Providing General Services Set Collaboration Mode Object Web Service Object Viewer

Master

Object Display

Event (Message) Service

4/26/2020 Web Service Object Viewer Object Display Web Service Object Viewer Object Display uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 11

Collaborative Replicated Web Services II

  

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 12

Collaboration: Shared Export II

One can use replicated “driver” for shared export

Shared Web Service Shared Event Shared Export Shared Display Object Object’ Driving Appl.

Object Viewer Object Display

Master Event (Message) Service

Driving Appl.

Object Viewer Object Display 4/26/2020 Driving Appl.

Object Viewer Object Display uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 13

Collaboration: Shared Event I

Object must be changed in object (application) specific fashion

Shared Event shares State change events

Master

Object Object’’ Object Display

Event (Message) Service

Object Object’’ Object Display 4/26/2020 Object Object’’ Object Display uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 14

Collaboration: Shared Event II

Object events can be shared at any point in pipeline

Shared Event shares State change events

Master

Object Object’’ Object Display

Event (Message) Service

Object’’ Object Display 4/26/2020 Object’’ Object Display uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 15

Collaborative Portlets I

When one has multiple components in the UI one must extend Web Service picture to include Portal and Portlets Application as a WS

General Application Ports Interface with other Web Services WSDL Application or Content source Web Service W S R P

Portal

User Profile Aggregate UI Fragments

Client

User Face of Web Service WSRP Ports define

WS as a Portlet

Integrate Multiple Portlets User Customization at either Portal or if complicated at WS uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 4/26/2020 16

Collaborative Portlets II

Collaboration is gotten by extending the WSRP Interface

WSDL Application or Content source

Interceptor

W S R P Control Collaboration as a Web Service Web Service

Portal

User Profile Aggregate UI Fragments

Workflow Filter Pub-Sub

Event (Message) Service Client

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 17

Shared Display Collaboration

Multi resolution And other shared display Features WSDL Shared Display WS Web Service W S R P

Event (Message) Service

Collaboration as a Web Service

Portal

User Profile Aggregate UI Fragments

Non Master Clients

Shared Input Control Port Local or Remote Application to Share (maybe from Portal) Display Updates

Master Client

uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 18 4/26/2020

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 – Networks interfaces Groove effectively defines some shared application 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)

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 19

H323 SIP JXTA

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 20

SIP H323 JXTA

SIP

4/26/2020

H323 JXTA

uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 21

A Typical SIP Message

REGISTER Via: sip:registrar.biloxi.com

SIP/2.0/UDP 10.4.1.4:5060 To: Bob (sip:[email protected]) From: Bob (sip:[email protected]);tag=456248 Call-ID:

[email protected]

CSeq: 1826 REGISTER Contact: (sip:[email protected]) Expires: 7200 Contact-Length: 0

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

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

Collaboration as a Web service - now

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

SIP as XML

sip:registrar.biloxi.com

SIP/2.0/UDP 10.4.1.4:5060 Bob (sip:[email protected]) Bob (sip:[email protected]) [email protected]

1826 REGISTER (sip:[email protected]) 7200 0

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 24

Future Collaboration Web Service

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 25

  

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 WSDL bindings here have different fault tolerance/reliability semantics

Could use JMS as long distance “carrier” between JXTA peers

with JXTA protocol – different JXTA provides higher performance than JMS for nearby recipients

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 26

Routing

Event Web Service

Destination Source Matching Filter workflow Web Service 1 (Virtual) Queue Web Service 2   WSDL Ports WSDL Ports

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 27

Resource

Broker Network

Software multicast P2P: Brokers are clients Broker Broker Broker Broker Broker

Data base

4/26/2020 Broker uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 28

    

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 and Narada as different bindings to event/messaging web service

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 29

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

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 30

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)

4/26/2020 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsapril02" email="[email protected]" 31