Collaboration and Web Services

Slides:



Advertisements
Similar presentations
6/2/2015 doecomponentsjuly01 1 Architecture of Garnet Collaborative Portal DoE Components Meeting July July Geoffrey Fox IPCRES Laboratory.
Advertisements

Integration of Hand-Held Devices into Collaboration Environments IC’02 Las Vegas, NV June June Geoffrey Fox, Sung-Hoon Ko, Kangseok Kim,
Principles for Collaboration Systems Geoffrey Fox Community Grids Laboratory Indiana University Bloomington IN 47404
UNIT-V The MVC architecture and Struts Framework.
GIS technologies and Web Mapping Services
JMS Compliance in NaradaBrokering Shrideep Pallickara, Geoffrey Fox Community Grid Computing Laboratory Indiana University.
GEM Portal and SERVOGrid for Earthquake Science PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce Computer Science, Informatics, Physics.
Collaboration in Grid Systems Activities where collaboration important Functional Structure of a Collaborative System Collaborative Visualization Grid.
Ipgdec5-01 Remarks on Web Services PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce, Shrideep Pallickara, Choonhan Youn Computer Science,
Message Management April Geoffrey Fox Computer Science, Informatics, Physics Pervasive Technology Laboratories Indiana University Bloomington IN.
CGL: Community Grids Laboratory Geoffrey Fox Director CGL Professor of Computer Science, Informatics, Physics.
A Demonstration of Collaborative Web Services and Peer-to-Peer Grids Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University,
Some comments on Portals and Grid Computing Environments PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce Computer Science, Informatics,
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Thin Client Collaboration Web Services Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A
Overview of Grid Webservices in Distributed Scientific Applications Dennis Gannon Aleksander Slominski Indiana University Extreme! Lab.
Ubiquitous Access for Collaborative Information System Using SVG July Sangmi Lee, Geoffrey Fox, Sunghoon Ko, Minjun Wang, Xiaohong Qui
Introduction to PresentED 6/2014. PresentED is a software solution merging Video & Presentation, Attachments & Links in a single, powerful and uniform.
Partnerships in Innovation: Serving a Networked Nation Grid Technologies: Foundations for Preservation Environments Portals for managing user interactions.
Ipgdec5-01 Peer to Peer Networks and Web Services for a Community Grid PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce, Shrideep Pallickara,
What is BizTalk ?
Instructor Materials Chapter 5 Providing Network Services
WWW and HTTP King Fahd University of Petroleum & Minerals
Building Distributed Educational Applications using P2P
Principles of Network Applications
Bringing Grid & Web Services Together
Session Initiation Protocol (SIP)
Understanding the OSI Reference Model
Understand Windows Forms Applications and Console-based Applications
#01 Client/Server Computing
XML and SOAP Examples PTLIU Laboratory for Community Grids
A Scaleable Event Infrastructure for Peer-to-Peer Grids
A Web Services Framework for Collaboration and Videoconferencing
Chapter 3: Windows7 Part 4.
Collaboration and Web Services
Education as a Peer to Peer Grid Service
Design and Implementation of Audio/Video Collaboration System Based on Publish/subscribe Event Middleware CTS04 San Diego 19 January 2004 PTLIU Laboratory.
Introduction to Web Services and SOA
Some remarks on Portals and Web Services
NaradaBrokering – Building P2P Grids
Overview of Garnet Collaboration System
Education as a Web Service Technology, Experience & Futures
Community Grids Laboratory Activities
Java Messaging Service (JMS)
Collaborative Web Services and Peer-to-peer Grids
Peer to Peer Grids and Collaboration
Garnet Collaboration Framework
Portlets and Web Services for Collaboration and Videoconferencing
Mixed Reality Server under Robot Operating System
NaradaBrokering: Towards P2P Grids Beijing University, 19th.
The Narada Event Brokering System: Overview and Extensions
Integrating Peer to Peer Networks and Web Services with the Grid
Architecture of Garnet Collaborative Portal
Software models - Software Architecture Design Patterns
JXTA and Web Services and Messages
Application Web Services and Event / Messaging Systems
MWCN`03 Singapore 28 October 2003
Gateway and Web Services
Remarks on Peer to Peer Grids
An Introduction to Software Architecture
Grid Message Infrastructure
Message Queuing.
Grid Federation JXTA Jini etc.
Collaboration and Web Services
Introduction to Web Services and SOA
Gordon Erlebacher Florida State University
New Tools In Education Minjun Wang
#01 Client/Server Computing
Message Passing Systems
Presentation 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 gcf@indiana.edu 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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) 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaboration: Shared Display Sharing can be done at any point on “object” pipeline Shared Display Shared Web Service Shared Event Shared Export Object Object’ Object’’ Object Display Object Viewer Master Event (Message) Service Object Display Shared Display shares framebuffer with events corresponding to changed pixels in master client. In these and following diagrams, we have three collaborating clients; is master while and are non-masters Object Display 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaboration: Shared Export I Another point on object to display pipeline Shared Display Shared Web Service Shared Event Shared Export Driving Appl. Object Display Object Viewer Object Object’ 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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaborative Web Service Access Web Service either supports collaboration directly or uses event service Web Service Interceptor Providing General Services Set Collaboration Mode Master Web Service Object Display Object Viewer Object Object Viewer 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 Event (Message) Service Object Viewer Object Display 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 Event (Message) Service Client Client 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaborative Replicated Web Services I This uses event multicast to support replicated web services Web Service Interceptor Providing General Services Set Collaboration Mode Web Service Master Object Display Object Viewer Object Web Service Object Viewer Object Display Event (Message) Service Web Service Object Viewer Object Display 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaboration: Shared Export II One can use replicated “driver” for shared export Shared Display Shared Web Service Shared Event Shared Export Driving Appl. Object Display Object Viewer Object Object’ Master Event (Message) Service Driving Appl. Object Viewer Object Display Driving Appl. Object Viewer Object Display 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaboration: Shared Event I Object must be changed in object (application) specific fashion Master Shared Event shares State change events Object Object’’ Object Display Event (Message) Service Object Object’’ Object Display Object Object’’ Object Display 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaboration: Shared Event II Object events can be shared at any point in pipeline Master Shared Event shares State change events Object Object’’ Object Display Event (Message) Service Object Display Object’’ Object Display Object’’ 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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) 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

H323 SIP JXTA 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

SIP H323 JXTA SIP H323 JXTA 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

A Typical SIP Message REGISTER sip:registrar.biloxi.com Via: SIP/2.0/UDP 10.4.1.4:5060 To: Bob (sip:bob@biloxi.com) From: Bob (sip:bob@biloxi.com);tag=456248 Call-ID: 843817637684230@phone21.boxesbybob.com CSeq: 1826 REGISTER Contact: (sip:bob@10.4.1.4) Expires: 7200 Contact-Length: 0 Initially build a wrapper that accepts such messages and converts to ….. 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Collaboration as a Web service - now 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

SIP as XML <sipasxml> <register> sip:registrar.biloxi.com</register> <via> SIP/2.0/UDP 10.4.1.4:5060</via> <to> Bob (sip:bob@biloxi.com) </to> <from tag="456248" > Bob (sip:bob@biloxi.com) </from> <call-id> 843817637684230@phone21.boxesbybob.com </call-id> <cseq> 1826 REGISTER </cseq> <contact> (sip:bob@10.4.1.4) </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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Future Collaboration Web Service 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Destination Source Matching Event Web Service Web Service 1 (Virtual) Queue Web Service 2 Destination Source Matching Filter Routing workflow 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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

Broker Network Software multicast P2P: Brokers are clients Broker Resource Data base Broker Broker Broker Broker Broker Broker 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"

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 2/5/2019 uri="http://grids.ucs.indiana.edu/ptliupages/presentations/collabwsncsamar02" email="gcf@indiana.edu"