Master Thesis Proposal Building Collaborative Web Browsing and Chat into Standard Web Pages By Patricia Ferrao 4/11/2019
Introduction Casual user can browse the web and chat with a group of friends Entirely HTTP based No pre-registration, downloads or browser plug-ins Login from anywhere and immediately start collaborating Requires Internet access, a browser, session login and password Uses only light-weight, open source technology Works across firewalls 4/11/2019
Competing Products “Click To Meet” by First Virtual Communications Uses T.120 and H.323 Corporate solution Client browser requires plug-ins and uses Active-X components Expensive (range of $17K to $30K) “Cisco Collaboration Server” by Cisco Also a corporate solution Need their development kit to customize features Client is browser-based, requires no downloads Firewall friendly What are the metrics for evaluating these products? 4/11/2019
Competing Products (Cont’d) “Instant Co-Browsing” by Mitsubishi Electric Research Labs light-weight, web-based solution Uses Javascript, Java Servlets and DHTML Uses client pull Does not include chat, but includes a shared pointer Not a distributed architecture solution Requires that all browsable pages be part of the same domain as the Servlet application have not seen an implementation available New products rapidly emerging where? citations? 4/11/2019
What Differentiates My Solution? Uses Pushlets (server push technology) Distributed architecture that scales well and works across multiple client servers Can browse across entire Internet (Web pages need not belong to the same domain as the application) Uses only open-source technology 4/11/2019
System Architecture 4/11/2019
Client Server Registers with Directory All Client Servers register with the Directory Server Directory server keeps URL’s in database Directory Server gives Backbone Server’s URL to Client Servers upon registration Directory Server keeps track of how many clients each server has active at any given time 4/11/2019
Client Registers for a Session Users determine session ID and password among themselves Client uses Directory’s URL to initiate the service connection Directory redirects user to Client Server with available resources User logs in with the Client Server using session ID, password and login name 4/11/2019
Client Server Sets up a Session Client Server informs the backbone that it is part of a session, and provides session ID and password Backbone stores all active session IDs, passwords, and participating Client Server URLs in DB Client Server keeps track of its sessions and participating clients 4/11/2019
Collaborative Browsing User selects a URL to browse Client browser retrieves web page Client browser posts new URL to its local Client Server Client Server provides session ID and URL to backbone server Backbone gives new URL to all Client Servers belonging to session Client Servers push new URL to participating clients Client browsers retrieve and display web page 4/11/2019
Collaborative Chat User types text message at browser Browser posts chat message with local Server Client Server gives session ID, client login name, and text message to backbone Backbone provides information to all participating Clients Servers Client Servers push chat information to clients Browsers display chat id-name and text 4/11/2019
System Technology MySQL MySQL JDBC JDBC HTTP HTTP HTTP HTTP HTTP BackkBone Server Tomcat, Servlet Directory Server Tomcat, Servlet HTTP HTTP HTTP HTTP HTTP Client Server Tomcat, Pushlet Client Server Tomcat, Pushlet Pushlets Pushlets Postlets Postlets Client DHTML Client DHTML 4/11/2019
What is a Pushlet? Java Servlet application designed by Just van den Broecke from Just Objects B.V. Allows a web server to push information to a client browser Pushes events to clients using Javascript Browser uses Javascript to register for events with the Pushlet application 4/11/2019
Pushlet (cont’d) Client registers with Pushlet application Application will hold on to the connection for as long as the client remains available Pushlet will push an event to all active clients as soon as event is generated 4/11/2019
What is a Postlet? Also a Java Servlet (Where is the reference? Who designs it?) Allows a client browser to post an event to a Pushlet application Client uses HTTP Get Servlet does not hold up client connection Postlet event is published to all Pushlet active clients 4/11/2019
Pushlet Experiment Designed a Pushlet application in Fall 2002 for semester project Application generates and clears events randomly every few seconds Application pushes event information (either new event, or event clear) to all registered clients Client-side DHTML displays events in a table, and updated the client’s browser with new information from server 4/11/2019
Experimental Results Tomcat does not timeout Pushlet connections, even if information is not frequently pushed Pushlet holds up a Tomcat client connection. If all allowable connections are held-up, no other client can connect Suggest improvement on Pushlet as part of the thesis. What is your plan?” This can be one of main contribution. 4/11/2019
Client-Side Technology Web page consists of five frames, one of which is a hidden frame Visible frames include a status frame, browsing frame, URL frame, and chat frame Status frame displays all active participants’ login IDs URL frame contains a text field where a user can enter a new URL for collaborative browsing 4/11/2019
Client-Side Technology (cont’d) Browsing frame displays the web page that all participants are currently viewing Chat frame displays chat messages Hidden frame maintains the Pushlet connection, and distributes events received from Pushlet application (status, URL, chat) to the correct frames 4/11/2019
Client-Side Technology (cont’d) Hidden frame posts events (chat, URL) to the Client Server Postlet application Chat frame gives its chat messages to the hidden frame for distribution Browsing frame gives its URL to the hidden frame for distribution 4/11/2019
Signed JAVASCIPT Javascript does not allow a frame to discover another frame’s URL unless all web pages belong to the same domain Limitation can be overcome with signed Javascript technology Snippet of Javacript code can be certified by a service like VeriSign Client is presented with a certificate of authenticity, and must accept the certificate before the Javascript code can execute 4/11/2019
Limitations Service requires clients to use Netscape Navigator as the browser (signed Javacript is browser-dependent) This service may not work if there are proxy servers between clients and Client Servers (limitation of pushlets) 4/11/2019
Timeline Already Complete - done during Fall 2002 and Spring 2003 Master Pushlets and Postlets, Tomcat Server Learn Javascript, Servlets and DHTML Research the topic to learn about competing applications and technologies Put together a detailed thesis topic 4/11/2019
Timeline (cont’d) In Progress – target completion October 2003 Write thesis proposal, pick a committee and present topic Get committee approval Put together a presentation for the network research group discussions 4/11/2019
Timeline (cont’d) Future – Fall 2003 and Spring 2004 Write software Setup a test bed and test configuration Future - complete during Summer 2004 Complete implementation and testing of application (final details) Give demo to Dr. Chow 4/11/2019
Timeline (cont’d) Future - complete during Fall 2004 Write Thesis paper Defend Thesis Graduate!! 4/11/2019
Deliverables Collaborative web browsing and text chat application software Demo of registration process for Client Servers, Login process for clients, collaborative browsing, and collaborative chat (using two client servers, one backbone and one directory) Thesis report 4/11/2019
References Just van den Broecke, “ Pushlets Whitepaper ”, Just Objects B.V. 2002/08/05. Alan W. Esenther, “Instant Co-Browsing: Lightweight Real-Time Collaborative Web Browsing”, Mitsubishi Electric Research Labs, http://www2002.org/CDROM/poster/86/, 2002. Nishanth Menon, “ Collaborative Tools for the next millennium (and beyond) “. Microsoft, “Exchange 2000 Conferencing Server Downloadable documentation”, http://www.microsoft.com/exchange/techinfo/productdoc/2000/conferencedoc.asp , May 2001. Microsoft, “Microsoft Exchange Chat Service”, http://www.microsoft.com/exchange/en/55/help/documents/chat/coc01_3.htm, February 28, 2000. Lewis Ward, “ WebEx MediaTone: Delivering on the Promise of Rich Media Communications”, white paper, “http://www.webex.com/technology_whitepapers.html” , May 2002. First Virtual Communications, “Click To Meet”, http://www.fvc.com. 4/11/2019
References (cont’d) Sun Microsystems, “Sun Forum”, http://www.sun.com/desktop/products/software/sunforum/”. John Fontana, “ Sun Launches IM server, integrates it with collaborative platform “, Network World, http://www.nwfusion.com/news/2003/0410sunim.html, 04/10/03. Cisco, “Cisco Collaboration Server”, http://www.cisco.com/warp/public/180/prod_plat/cust_cont/nam/collaboration.html. Linda Rosencrance, “Tech firms lobby for open IM standards”, http://www.computerworld.com/printthis/2000/0,4814,45662,00.html, June 08, 2000. Cathleen Moore, “XMPP rises to face Simple standard”, InfoWorld, April 18, 2003. Christopher Saunders, “A Lack of Simple Pleasures”, Instant Messaging Planet, Nov. 12, 2002. Jabber Software Foundation, “ Jabber Technology Overview”, http://www.jabber.org. 4/11/2019
References (cont’d) Eidelshtein Ilya and Taubkin Victor, “IRC – Internet Relay Chat”, http://www2.rad.com/networks/1995/irc/irc.htm. Elizabeth Daly, “Distributed Slide Show Tool”, University of Dublin, September 16, 2002 Ganesh Godavari , “SGFR : Secure Groupware for First Responders”, University of Colorado at Colorado Springs, http://cs.uccs.edu/~sgfr/, 2003. Microsoft Corp. “MSN Messenger”, http://messenger.msn.com/ AOL Instant Messenger, http://www.aim.com/ YAHOO Messenger, http://messenger.yahoo.com/ The Apache Jakarta Project, http://jakarta.apache.org/tomcat/ Patricia Ferrao, Event Application Using Pushlets, http://piglet.uccs.edu/~cs526/projF2002/pferrao/doc/Eventapplication.doc, December 6, 2002 4/11/2019