Collaborative Web Browsing Tool
Supporting Audio/Video Interactive
Presentations
Guillermo de Jesús HOYOS-RIVERA
Roberto WILLRICH
Roberta LIMA-GOMES & Jean-Pierre COURTIAT
Department of Computer Science (INE)
LAAS-CNRS
Santa Catarina Federal University (UFSC)
Toulouse, France
Florianópolis, Brazil
{ghoyos, rgomes, courtiat}@laas.fr
14th IEEE International Workshops on Enabling
Technologies: Infrastructures for Collaborative Enterprises
Presentation Outline
Collaborative Web Browsing
Synchronization Model
Functional Architecture
Operational behavior of CoLab
Collaborative Web Browsing
Users are isolated when they browse the
Web
We propose to provide Web users with a
group awareness
User 1
User 2
Web Server B
Collaborative Web Browsing
The number of Web pages containing
embedded continuous media increases
quickly
New challenge for Collaborative Web
Browsing
Collaborative Web Browsing
Synchronization of
Web Browsing
Continuous media
presentations
HTTP Server
User 1 User 2 User 3
HTTP GET
HTTP GET
RSTP Server
User 1 User 2 User 3
RSTP
RSTP
PLAY!
PAUSE!
STOP!
PLAY!
PAUSE!
STOP!
PLAY!
PAUSE!
STOP!
Collaborative Web Browsing
Web browsing synchronization solutions
Communication tools
Windows Messenger
ICQ
Browsing indexing
CoBrow
Let’s Browse
PROOF
Collaborative Web Browsing
Web browsing synchronization solutions
Browsing synchronization
Application sharing (VNC)
E-coBrowse
WABX
PROOF
Integrated collaboration environments (NetDive,
PlaceWare, WebEx,…)
Possibility of flexibly creating/releasing
Collaborative Web Browsing
It seems that there is no currently existing
solution allowing users to synchronize
embedded continuous media presentations in
Web pages
Some problems arise, due to
Response times when clicking the “Play” button
Connection delays
Transmission delays of the RSTP packets
Transmission delays of the stream
Presentation Outline
Collaborative Web Browsing
Synchronization Model
Functional Architecture
Operational behavior of CoLab
Synchronization Model
The synchronization state of a collaborative Web
browsing session is represented in a tree
structure called SDT (Synchronization
Dependency Tree)
1
2
3
4
Asynchronous User
Synchronous Users
B
ro
w
s
in
g
A
c
ti
v
it
ie
s
P
ro
p
a
g
a
ti
o
n
D
ir
e
c
ti
o
n
Synchronization Model
Browsing synchronization in SDTs
1
2
3
4
5
Browse(URL1)
URL1
Browse(URL1)
URL2
Browse(URL2)
URL2
Browse(URL2) Browse(URL2)
1
2
3
4
5
Browse(URL1)
Browse(URL1)
Browse(URL1)
URL1
Browse(URL1)
Browse(URL1)
URL1
URL1
URL1
URL2
URL2
URL2
URL1
URL1
URL1
URL1
URL1
Synchronization Model
Synchronization Relations are dynamically
created and released by using
Synchronization Requests, which are
subject to an authorization protocol:
“I_Follow_You”
“You_Follow_Me”
Synchronization Model
The “I_Follow_You” request:
Can I see what
you are reading?
Of course!
A
B
B
A
SDT
Synchronization Model
The “I_Leave_You” request:
A
B
B
A
I quit you,
See you!
SDT
I_Leave_You
Synchronization Model
The “You_Follow_Me” request:
A
B
B
A
Do you want to see
this information?
OK, I’m
coming!
SDT
I_Accept
You_Follow_Me
Synchronization Model
Continuous media presentations
synchronization is made according to the
synchronization relations among users: the
user at the root of a SDT has the control
Presentation Outline
Collaborative Web Browsing
Synchronization Model
Functional Architecture
Operational behavior of CoLab
Client
Functional Architecture
Users
Role
Login/out &
Synchronization
Actions
Browsing
Actions
Session
Information
Exchange
Resource
Retrieval
Internet/Intranet
Internet/Intranet
Broker
Broker
Integration API
Integration API
Session Manager
Session Manager
External Tools
External Tools
Browsing
Requests
Browser
Browser
Plug-in
Plug-in
Media
Controller
Media
Controller
Browsing
Controller
Browsing
Controller
Playback control &
State Changes
Playback Control &
State Changes
Media
Streaming
MediaSync
Manager
MediaSync
Manager
Browsing
Manager
Browsing
Manager
Session
Information
Exchange
Session Managing
and integration
Browsing request
treating
Resource
retrieval
PrepareToPlay
Play, Stop & Pause
Integration with the
server and synchronization
requests treating
Capture state changes
and execute Playback
Presentation Outline
Collaborative Browsing
Synchronization Model
Functional Architecture
Operational behavior of CoLab
Current Implementation
Browsing Manager
Browsing Manager
Translator
Translator
Cache
Module
Cache
Module
Cache
Cache
T
ran
s.
re
q
. 7
T
ran
s.
re
sp
. 8
Tr
an
s.
res
p.
8
Caching
9
Cach
4
ed?
Get
cach
ed
18
Ge
t
cac
hed
17
Internet/Intranet
Internet/Intranet
6
H
T
T
P
re
q
u
es
t
5
H
T
T
P
re
sp
on
se
MediaSync
Manager
MediaSync
Manager
Retriever
Retriever
Control
Data
Broker
Broker
H
T
T
P
re
q
.
1
H
T
T
P
re
sp
.
11
10
12
Synchronize?
13
∀
∀
∀
∀Slave ⇒
⇒
⇒
⇒
URL
H
T
T
P
re
q
.
14
H
T
T
P
r
es
p
.
20
H
T
T
P
r
eq
.
3
H
T
T
P
re
sp
.
Can access?
2
Session
Manager
Session
Manager
Synchronization
Module
Synchronization
Module
23
State Change
24
Asynchronous User
Asynchronous User
Playback Control
22
State Change
Playback Control
Synchronous User
Synchronous User
21
15
16
19
Current Implementation
Media synchronization mechanism
The “PrepareToPlay” command allows us to control
the synchronization of the state of the whole
presentation in spite of the non deterministic
connection and buffering times
MediaSync Manager
Client A
Client B
Client C
Connecting
PrepareToPlay
ReadyToPlay
ReadyToPlay
ReadyToPlay
Current Implementation
G
U
I
B
row
si
ng
F
ra
m
e
Current Implementation
Browsing Controls
User’s Identity and
Session Name
Awareness &
Synchronization State
Synchronization Controls
(for Users and Roles)
Current Implementation
1 ≤ N ≤ 165
0
200
400
600
800
1000
1200
1400
T
i
m
e
(
m
s
)
1
15
30
45
60
75
90
105
120
135
150
165
Number of Users
Presentation Outline
Collaborative Browsing
Synchronization Model
Functional Architecture
Operational behavior of CoLab
Conclusions
Allowing flexible synchronization relations
creation/release is a good issue
Usable on any standard browser following the
W3C standard specification and supporting the
automatic proxy configuration and on any HTML
resource
Continuous media presentations
synchronization: a new issue particularly useful
in e-learning
Flexible extensible architecture
Future Work
Implementation of a distributed version
API’s development for integrating our
platform with other collaborative tools
Implementing enhanced synchronization
mode using roles privileges: