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

rcb a simple and practical framework for real time
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

2

End-user Real-time Communication

slide-3
SLIDE 3

3

Document Sharing and Collaboration

Adobe Buzzword

slide-4
SLIDE 4

4

Web Browsing: Heavily Isolated

slide-5
SLIDE 5

5

Collaborative Browsing (Co-browsing)

Student Instructor Technician Customer Friend Friend

slide-6
SLIDE 6

6

Simple Co-browsing via URL sharing

  • 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 http://www.usenix.org

slide-7
SLIDE 7

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

slide-8
SLIDE 8

8

Specific Co-browsing Solutions

Depend on special collaborative platforms

  • Server-based

– CWB – PageShare

Depend on site-specific server modification

  • Proxy-based

– UsaProxy – CoWeb – PROOF

Depend on deployment and trust of proxies

Platform Component Platform Component Server

  • Platform-based

– GroupWeb – GroupScape – SameSpace Proxy

slide-9
SLIDE 9

9

Our RCB Solution

  • Pure browser-based solution
  • Simple and Practical
  • Almost everywhere, various webpages
  • Fine-grained, high-quality

Browser Extension Regular Browser

Host Participant

slide-10
SLIDE 10

10

Outline

  • Introduction
  • Framework Design
  • Implementation
  • Evaluation
slide-11
SLIDE 11

11

RCB-Agent

Architecture of the RCB Framework

Host Browser Cache Participant Browser Webpage head body Ajax-Snippet Webpage head body Web Servers Ajax: Asynchronous JavaScript and XML

slide-12
SLIDE 12

12

Ajax-Snippet

A Typical RCB Co-browsing Session

1. Start the agent 2. Establish connection 3. Visit a webpage 4. Clone and modify 5. Synchronize document

RCB-Agent

Host Participant

6. Replace HTML elements 7. Download object (non-cache) 8. Download object (cache) 9. Synchronize changes/actions Repeat steps 3 ~ 9 ! Connection , Ajax , Object

http://AgentAddress:3000

slide-13
SLIDE 13

13

Three Design Decisions

  • Direct communication model
  • HTTP-based service model
  • Poll-based synchronization model

Ajax-Snippet RCB-Agent

Host Participant

TCP Connection HTTP Daemon Ajax

slide-14
SLIDE 14

14

Co-browsing Topologies and Policies

  • Multiple participants, free join/leave, awareness
  • RCB-Agent enforces high-level policies

Ajax-Snippet RCB-Agent

Host Participant

slide-15
SLIDE 15

15

Security Design

  • Similar to visiting a trusted HTTP website
  • Protect RCB-Agent by authenticating requests

– HMAC (keyed-Hash Message Authentication Code)

Ajax-Snippet RCB-Agent

Host Participant

slide-16
SLIDE 16

16

Implementation Overview

  • RCB-Agent

– Firefox Extension – Pure JavaScript – Possible for other browsers

  • Ajax-Snippet

– JavaScript objects/functions – Support different browsers

slide-17
SLIDE 17

17

RCB-Agent Request Processing

  • Implement a server socket object

– Asynchronously accept new TCP connections – Asynchronously process HTTP requests

  • Three types of HTTP requests

Request New connection Object (cache mode) Ajax polling (“POST”) Data merging Response generation

slide-18
SLIDE 18

18

RCB-Agent Response Content Generation

1. Clone 2. Change object URL

(Relative  Absolute)

3. Change object URL

(Absolute  Agent)

4. Rewrite event handler 5. Generate response <HTML>

……

</HTML> HTML XML ../image/example.gif http:// www.site.com/ image/example.gif http://AgentAddress: 3000/image/example.gif

  • nclick=“……”
  • nsubmit=“……”
slide-19
SLIDE 19

19

Ajax-Snippet

  • Request Sending

– XMLHttpRequest – “POST”, asynchronous

  • Response Processing

– Clean up and set head – Clean up and set other Participant Browser Webpage head body Ajax-Snippet

slide-20
SLIDE 20

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

slide-21
SLIDE 21

21

Performance Evaluation

Ajax-Snippet RCB-Agent

Host Participant

Response Generation Max: 0.4 second Content Update Max: 0.3 second Transmission LAN: < 0.4 second WAN: < 10 seconds 20 homepages 1.8 GHz PCs 384Kbps

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

slide-24
SLIDE 24

24

Usability Evaluation

  • Twenty students come from nine degree programs
  • Ten pairs perform the two scenarios in a session
  • Observation and questionnaire results

10 20 30 40 50 60 70 80 90 100

Usefulness Ease-of-use (Host) Ease-of-use (Participant) Potential Usage

92.5% 90.0% 92.5% 85.0%

Agree or Strongly Agree

slide-25
SLIDE 25

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

slide-26
SLIDE 26

26

Backup Slides

slide-27
SLIDE 27

27

Security Design

  • Similar to visiting a trusted HTTP website
  • Protect RCB-Agent by authenticating requests

– HMAC (keyed-Hash Message Authentication Code)

Ajax-Snippet RCB-Agent

Host Participant =?

slide-28
SLIDE 28

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>