rcb a simple and practical framework for real time
play

RCB: A Simple and Practical Framework for Real-time Collaborative - PowerPoint PPT Presentation

RCB: A Simple and Practical Framework for Real-time Collaborative Browsing Chuan Yue, Zi Chu, and Haining Wang The College of William and Mary End-user Real-time Communication 2 Document Sharing and Collaboration Adobe Buzzword 3 Web


  1. RCB: A Simple and Practical Framework for Real-time Collaborative Browsing Chuan Yue, Zi Chu, and Haining Wang The College of William and Mary

  2. End-user Real-time Communication 2

  3. Document Sharing and Collaboration Adobe Buzzword 3

  4. Web Browsing: Heavily Isolated 4

  5. Collaborative Browsing (Co-browsing) Technician Customer Friend Instructor Friend Student 5

  6. Simple Co-browsing via URL sharing http://www.usenix.org • E.g., instant messenger tools/browser extensions • Limited collaboration – Can at most view webpages • Narrow scope of webpages – Cannot access session-protected or dynamic webpages 6

  7. Complex Co-browsing via Screen Sharing • E.g., screen or application sharing software • High demands on network bandwidth and security – Grant the control of a whole screen or application 7

  8. Specific Co-browsing Solutions • Platform-based • Server-based • Proxy-based Depend on special Depend on site-specific Depend on deployment – CWB – UsaProxy – GroupWeb collaborative platforms server modification and trust of proxies – PageShare – CoWeb – GroupScape – SameSpace – PROOF Server Proxy Platform Platform Component Component 8

  9. Our RCB Solution Host Participant Browser Regular Extension Browser • Pure browser-based solution • Simple and Practical • Almost everywhere, various webpages • Fine-grained, high-quality 9

  10. Outline • Introduction • Framework Design • Implementation • Evaluation 10

  11. Architecture of the RCB Framework Host Browser Participant Browser Ajax: Asynchronous Webpage Webpage JavaScript and XML head head RCB-Agent Ajax-Snippet body body Cache Web Servers 11

  12. A Typical RCB Co-browsing Session Host Participant Connection , Ajax , Object http://AgentAddress:3000 Ajax-Snippet RCB-Agent 1. Start the agent 6. Replace HTML elements 2. Establish connection 7. Download object (non-cache) 3. Visit a webpage 8. Download object (cache) 4. Clone and modify 9. Synchronize changes/actions 5. Synchronize document Repeat steps 3 ~ 9 ! 12

  13. Three Design Decisions Host Participant TCP Connection HTTP Ajax RCB-Agent Ajax-Snippet Daemon • Direct communication model • HTTP-based service model • Poll-based synchronization model 13

  14. Co-browsing Topologies and Policies Host Participant RCB-Agent Ajax-Snippet • Multiple participants, free join/leave, awareness • RCB-Agent enforces high-level policies 14

  15. Security Design Host Participant RCB-Agent Ajax-Snippet • Similar to visiting a trusted HTTP website • Protect RCB-Agent by authenticating requests – HMAC (keyed-Hash Message Authentication Code) 15

  16. Implementation Overview • RCB-Agent – Firefox Extension – Pure JavaScript – Possible for other browsers • Ajax-Snippet – JavaScript objects/functions – Support different browsers 16

  17. RCB-Agent Request Processing • Implement a server socket object – Asynchronously accept new TCP connections – Asynchronously process HTTP requests • Three types of HTTP requests New connection Data merging Ajax polling Request (“POST”) Response generation Object (cache mode) 17

  18. RCB-Agent Response Content Generation HTML 1. Clone 2. Change object URL <HTML> (Relative  Absolute) http://AgentAddress: http:// ../image/example.gif onclick=“……” 3. Change object URL 3000/image/example.gif www.site.com/ onsubmit=“……” …… (Absolute  Agent) image/example.gif </HTML> 4. Rewrite event handler 5. Generate response XML 18

  19. Ajax-Snippet • Request Sending Participant Browser – XMLHttpRequest Webpage – “POST”, asynchronous head Ajax-Snippet • Response Processing – Clean up and set head body – Clean up and set other 19

  20. Evaluation of RCB • Performance Evaluation – The real-time performance of RCB – LAN environment and WAN environment • Usability Evaluation – Whether RCB is helpful and easy to use – Using Google Maps and shopping online 20

  21. Performance Evaluation Host Participant Transmission RCB-Agent Ajax-Snippet LAN: < 0.4 second WAN: < 10 seconds 384Kbps 20 homepages Response Generation Content Update 1.8 GHz PCs Max: 0.4 second Max: 0.3 second 21

  22. Coordinating a Meeting Spot via Google Maps • Bob hosts • Alice joins • Bob may – Search, zoom in/out, drag, switch views • Alice sees same pages Rich content, communication intensive webpages 22

  23. Online Co-shopping at Amazon.com • Bob hosts • Alice joins • Bob or Alice may – Type in, search, click, fill/submit form Dynamic/session-protected webpages, various interactions 23

  24. Usability Evaluation • Twenty students come from nine degree programs • Ten pairs perform the two scenarios in a session • Observation and questionnaire results 92.5% 90.0% 92.5% 85.0% 100 90 80 70 60 Agree or 50 40 Strongly Agree 30 20 10 0 Usefulness Ease-of-use Ease-of-use Potential (Host) (Participant) Usage 24

  25. Summary • Pure browser-based co-browsing solution • Simple and Practical • Implemented as a Firefox extension • Efficient, high-quality, helpful and easy to use Thank You! cyue@cs.wm.edu http://www.cs.wm.edu/~cyue 25

  26. Backup Slides 26

  27. Security Design Host Participant RCB-Agent Ajax-Snippet =? • Similar to visiting a trusted HTTP website • Protect RCB-Agent by authenticating requests – HMAC (keyed-Hash Message Authentication Code) 27

  28. XML Format Response Content <?xml version=’1.0’ encoding=’utf-8’?> <newContent> <docTime>documentTimestamp</docTime> <docContent> <docHead> <hChild1><![CDATA[escape(hData1)]]></hChild1> <hChild2><![CDATA[escape(hData2)]]></hChild2> </docHead> <docBody><![CDATA[escape(bData)]]></docBody> </docContent> <userActions>userActionData</userActions> </newContent> 28

Recommend


More recommend