Portlets and Web Services for Collaboration and Videoconferencing NESC 16 July 2003 PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce, Wenjun Wu Ahmet Uyar, Hasan Bulut Indiana University, Bloomington IN 47404 gcf@indiana.edu 2016/5/31 1 Abstract We define interoperable framework called XGSP (XML based General Session Protocol) based on Web services technology for creating and controlling sessions We developed a common dynamic messaging environment (NaradaBrokering) for Grid and collaboration applications Based on the web-services framework and NaradaBrokering messaging environment, we are developing Global Multimedia Collaboration System (Global-MMCS) with Beihang University China We use MVC (Model View Control) paradigm to develop Web Service model/data – Messaging Control -- Jetspeed style aggregation – portlet style view 2016/5/31 2 Collaboration and Web Services Collaboration has a) Mechanism to set up members (people, devices) of a “collaborative sessions” b) Shared generic tools such as text chat, white boards, audiovideo conferencing c) Shared applications such as Web Pages, PowerPoint, Visualization, maps, (medical) instruments …. b) and c) are “just shared objects” where objects could be Web Services but rarely are at moment • We can port objects to Web Services and build a general approach for making Web services collaborative a) is a “Service” which is set up in many different ways (H323 SIP JXTA are standards supported by multiple implementations) – we should make it a WS 2016/5/31 3 Shared Event Collaboration All collaboration is about sharing events defining state changes • Audio/Video conferencing shares events specifying in compressed form audio or video • Shared display shares events corresponding to change in pixels of a frame buffer • Instant Messengers share updates to text message streams • Microsoft events for shared PowerPoint (file replicated between clients) as in Access Grid Finite State Change NOT Finite State Machine architecture Using Web services allows one to expose updates of all kinds as messages • “Event service” for collaboration is similar to Grid notification service and we effectively define SDE’s (service data elements) in OGSI Group (Session) communication service is needed for the delivery of the update events • Using Event Messaging middleware makes messaging universal 2016/5/31 4 Portals and Web Services Web Services allow us to build a component model for resources. Each resource naturally has a user interface (which might be customized for user) Web Service <--> Portlet Natural to use a component model for portal building displayed web page from collection of portlets • So can customize each portlet and customize which portlets you want • Need to redirect portlets to cell-phones etc. What is form of MVC (Model-View-Controller) paradigm What happens if “real applications” like PowerPoint are formulated as Web Services Jetspeed uses HTML to build a portal – as well as Java, SVG (Scalable Vector Graphics) is interesting 2016/5/31 5 XGSP MCU Architecture Use Multiple Media servers to scale to many codecs and many versions of audio/video mixing Session Server XGSP-based Control NB Scales as distributed Admire Web Services NaradaBrokering All Messaging SIP H323 Media Servers Filters High Performance (RTP) and XML/SOAP and .. Access Grid Native XGSP Gateways convert to uniform XGSP Messaging 2016/5/31 6 Global-MMCS 2.0 (1) XGSP MCU We are building an open source protocol independent Web Service “MCU” which will scale to an arbitrary number of users and provide integrated thousands of simultaneous users collaboration services. We will deploy it globally and hope to test with later this year. The function of A/V media server will be distributed using NaradaBrokering architecture. • Media Servers mix and convert A/V streams Open XGSP MCU based on the following open source projects • • • • 2016/5/31 openh323 is basis of H323 Gateway NIST SIP stack is basis of SIP Gateway NaradaBrokering is open source messaging from Indiana Java Media Framework basis of Media Servers 7 Shared Output Port Collaboration Collaboration as a WS Set up Session with XGSP Web Service Message Interceptor F I WSDL R O U Application or Content source Web Service Text Chat Whiteboard Multiple masters 2016/5/31 Master O F I Event (Message) Service WS Viewer WS Display WS Viewer WS Display Other Participants WS Viewer WS Display 8 Shared Input Port (Replicated WS) Collaboration Collaboration as a WS Set up Session with XGSP R U Web F Servic I I e O O F WS Viewer WS Display Master U Web F Servic I I e O O F Event (Message) Service R R U Web F Servic I I e O O F 2016/5/31 WS Viewer WS Display Other Participants WS Viewer WS Display 9 XGSP Conference Control Framework Components User session management • User session management supports user sign-in, user create/terminate/join/leave/invite-into XGSP sessions. Application Session Management • XGSP application session management provides the services to A/V and data application endpoints and communities, controlling multipoint A/V RTP and data channels. Floor Control • Floor control manages the access to shared collaboration resources. 2016/5/31 10 XGSP Application Session Management XGSP signaling protocol for • H.323 signaling protocols (H.225, H.245) • SIP signaling protocol ( Invite, Bye Message ) • Access Grid ( Unicast VIC & RAT ) Join XGSP Session, Leave XGSP Session, Invite into XGSP Session, Expel from XGSP Session Activate the XGSP session • the XGSP session server will link all the “rooms” in the session together by connecting multipoint A/V and data channels from different communities to the XGSP A/V Media and Data Channel Services. Link/Disconnect XGSP SubSession 2016/5/31 11 XGSP Floor Control XGSP should provide: • Floor control primitives, including: request floor, release floor, grant floor, cancel floor, remove floor request • mediator-controlled floor control: to support the mediator control policy • Collaboration applications have to define their own roles in the XGSP registration so that the mediator could assign the role of the application to each user. for example, a shared PowerPoint application should define master/slave role. 2016/5/31 12 NaradaBrokering Based on a network of cooperating broker nodes • Cluster based architecture allows system to scale to arbitrary size Originally designed to provide uniform software multicast to support real-time collaboration linked to publish-subscribe for asynchronous systems. Now has five major core functions • Message transport (based on performance measurement) in heterogeneous multi-link fashion • General publish-subscribe including JMS & JXTA and support for RTP-based audio/video conferencing • Distributed XML data-base using P/S XPATH metaphor • Filtering for heterogeneous clients • Federation of multiple instances of Grid services as illustrated by JXTA peer-group linkage 2016/5/31 13 vic and RealVideo views of multiple streams 2016/5/31 14 Polycom view of multiple video streams 2016/5/31 15 Performance Test : GlobalMMCS1.0 We conducted extensive performance tests on audio and video servers. Video: • The test shows that our video server is capable of supporting 300 clients if there is only one video sender. • Video Server Machine : 1.2GHz Intel Pentium III dual CPU, 1GB MEM, RedHat Linux 7.3 Audio: • Our tests show that audio server can support 5 concurrent sessions (250 participants in total) without any packet droppings. • Audio Server Machine: 2.5GHz Pentium 4 CPU, 512MB Windows XP machine memory, Scale with logarithmic Broker network 2016/5/31 16 Transit delay for message samples in NaradaBrokering Different communication hops - Internal Machines 9 8 7 hop-2 hop-3 hop-5 hop-7 Sender/receiver/broker - (Pentium-3, 1 GHz, 256 MB RAM). 100 Mbps LAN. JDK-1.3, Red Hat Linux 7.3 6 5 4 3 2 1 1000 2016/5/31 1500 2000 2500 3000 3500 Message Payload Size (Bytes) 4000 4500 5000 17 Standard Deviation for message samples in NaradaBrokering Different communication hops - Internal Machines 0.8 hop-2 hop-3 hop-5 hop-7 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1000 2016/5/31 1500 2000 2500 3000 3500 Message Payload Size (Bytes) 4000 4500 5000 18 Comparison between the performance of NaradaBrokering and JMF Average delays/packet for 12 (of the 400 total) video-clients. NaradaBrokering Avg=80.76 ms, JMF Avg=229.23 ms 450 NaradaBrokering-RTP JMF-RTP 400 350 300 250 200 150 100 50 0 2016/5/31 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Packet Number 19 Comparison between the performance of NaradaBrokering and JMF Average jitter/packet for 12 (of the 400 total) video clients. NaradaBrokering Avg=13.38 ms, JMF Avg=15.55 ms 25 NaradaBrokering-RTP JMF-RTP 20 15 10 5 0 2016/5/31 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Packet Number 20 Global-MMCS 2.0 (2) Portlets Collaboration clients will be built into portlets by creating Java Applet or ActiveX controls for the nonHTML clients and adding them into HTML pages. A collaboration portlet opens local services for XGSP application session management and floor control. • Node Manager portlet invoke the service to control local portlets Apache Jetspeed seems good open source technology supporting this model Portlets such as Access Grid portlet (really a VIC portlet) can be reused by Grid Portal Developers 2016/5/31 21 Unicast AG Portlet 2016/5/31 22 Multicast Multistream AG Portlet 2016/5/31 Java applet supports multicast AG with multiple streams In Jetspeed, easiest to have fixed size but this doesn’t fit well natural range of 1-20 separate streams 23 Collaborative SVG Web Service SVG is W3C 2D Vector Graphics standard and is interesting for visualization and as a simple PowerPoint like application • Further SVG is built on W3C DOM and one can generalize results to all W3C DOM-based applications (“all” in future?) Apache Batik SVG is Java and open source and so it is practical to modify it to explore • Real Applications as a Web Service • Collaboration as a Web Service • MVC model and web services with implications for portlets We intend to use NaradaBrokering and XGSP to control collaboration; support PDA Cell-phone and desktop clients; restructure Batik as MVC Web Service • Good progress in all areas see • http://www.svgarena.org for SVG Games • http://grids.ucs.indiana.edu/ptliupages/projects/carousel/ for PDA 2016/5/31 24 Collaborative SVG Chess Game in Batik Browser Players 5/31/2016 Observers 25 Data to other clients R Master client SVG browser 1 Session control Server Control to/from all SVG browsers in the collaborative session Control to/from XGSP I Data from master client R Other client SVG browser 2 F Control to/from XGSP I Data from master client R O Other client SVG browser n F Control to/from XGSP 5/31/2016 O ••• Event (Message) Service Infrastructure XGSP NaradaBrokering F I O Figure 3 Architecture of collaborative SVG browser on PC 26 Architecture of collaborative SVG browser on PC Classic MVC Paradigm Model View Controller Model Controller Mouse event Keyboard events 5/31/2016 Figure View Display MVC Model 27 Model View Controller Decomposition of SVG Browser Semantic Model Events as messages Rendering as messages Controller High Level UI Input port Output port View Events as messages Rendering as messages Raw UI Display Display a. MVC Model Messages contain control information b. Three-stage pipeline Figure 1 Reformulation SVG to to message based MVC in based a Web Service Model in a Reformulation of ofSVG message MVC 5/31/2016 28 Web Service Model XGSP Architecture of multiplayer game with SVG Control to/from Session control Server Rendering to SVG display 2 SVG WS 2 SVG WS n Control to/from Internet Game SVG display 1 Rendering from SVG WS 2 SVG display 2 Control to/from SVG display 2 ••• ••• Control to/from XGSP, SVG display 2 NaradaBrokering SVG WS 1 Event (Message) Service Infrastructure SVG WS1,2, …, n SVG display n SVG WS1,2, …, n 5/31/2016 Web Services Messaging Displays Figure 4 Architecture of collaborative Web Services drawn for 29 Collaborative SVG As Aclients Web Service Control flow for collaborative SVG From Collaboration As a WS Application as a Web service Application as a Web service Events Rendering From Master W3C DOM Events User Interface Participating Client From Collaboration As a WS Application as a Web service Application as a Web service Events Rendering To Collaborative Clients W3C DOM Events User Interface 5/31/2016 Master Client 30 Shared SVG Browser on PC Shared SVG Browser on PDA Event (Message) Service Collaborative Web Service Events and messages Event (Message) Service Collaborative Web Service Events and messages Internet Game Event (Message) Service Collaborative Web Service RFIO RFIO Web Service Web Service RFIO Semantic Semantic High Level UI SVG Browser Input port Events as messages UFIO Input port UFIO Semantic High Level UI Raw UI Display Output port Rendering as messages Events as messages Messages contain control information Output port Rendering as messages High Level UI Raw UI Display Raw UI Display Messages contain control information Events and messages Messages contain control information a. Non-decomposed collaborative SVG b. Decomposed WS optimized for thin c. Decomposed WS optimized for requiring minimal changes to the original source code clients performance Figure 2 Three among the different ways of decomposing SVG between client and Web Service component Three among the different ways of decomposing 5/31/2016between client and Web Service component 31 SVG Real-time Community Collaboration 5/31/2016 32 Scalable Vector Graphics (SVG) via “Shared Web Service”