CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control...

28
 CM0256 Pervasive Computing Lecture 19 – Collaboration Technologies Tom Goodale [email protected]

Transcript of CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control...

Page 1: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

CM0256 Pervasive Computing 

Lecture 19 – Collaboration Technologies

Tom [email protected]

Page 2: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Lecture OutlineIn this lecture we will examine several difference 

collaboration technologies: Mail Chat Audio and videoconferencing ...

Page 3: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Mail

Probably the oldest computer­based collaboration technology in general use today is e­mail.

Formally SMTP is defined in RFC 821 (STD 10) as amended by RFC 1123 (STD 3) chapter 5. The protocol used today is also known as ESMTP and defined in RFC 2821.

SMTP is a simple, humanly readable protocol.

Page 4: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Sending a mail

At its simplest, sending an email consists of: discovering the mail­exchanger (MX record) of the target address 

which lists the mail server Connecting to port 25 on the mail server Sending SMTP HELO or EHLO commands to initiate a session Using more SMTP commands

MAIL FROM:<address>, RCPT TO:<address>, DATA Sending the mail message and finishing mail message with 

“<CRLF>.<CRLF>”

Page 5: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Chat

Many different chat clients out there. More sophisticated version of old “talk” 

program and chatting in MUDS. AIM, Jabber, ...

Page 6: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Video and audio conferencing

Becoming progressively more common Remember the Aura video Many different technologies out there

Netmeeting, ekiga, gizmo, wengo, skype, access grid, ...

Most of the modern ones are built on open standards

Page 7: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Session Initiation Protocol (SIP)

an application­layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences." (cit. RFC 3261).

 Originally designed by Henning Schulzrinne (Columbia University) and Mark Handley (UCL) starting in 1996. The latest version of the specification is RFC 3261 from the IETF SIP Working Group.

In November 2000, SIP was accepted as a 3GPP signaling protocol and permanent element of the IMS architecture. It is widely used as a signaling protocol for Voice over IP, along with H.323 and others.

Page 8: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

SIP Features:

Lightweight, in that SIP has only six methods, reducing complexity.

Transport­independent, because SIP can be used with UDP, TCP, ATM & so on.

Text­based, allowing for humans to read SIP messages.

Page 9: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype

Very successful audio and now videoconferencing software

Skype builds a peer to peer network Has sophisticated techniques to work around 

firewalls.

Page 10: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype and firewalls

Let's assume that Alice wants to call her friend Bob. Her Skype client tells the Skype server that she wants to do so. 

Server already knows a bit about Alice.  From incoming query it sees that Alice is currently registered 

at the IP address 1.1.1.1 and a quick test reveals that her audio data always comes from UDP port 1414.

The Skype server passes this information on to Bob's Skype client, which, according to its database, is currently registered at the IP address 2.2.2.2 and which, by preference uses UDP port 2828.

Page 11: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype and firewalls

Alice calls Bob  Step 1: Alice tries to call Bob, which signals Skype.

Bob's Skype program then punches a hole in its own network firewall: It sends a UDP packet to 1.1.1.1 port 1414. This is discarded by Alice's firewall, but Bob's firewall doesn't know that. It now thinks that anything which comes from 1.1.1.1 port 1414 and is addressed to Bob's IP address 2.2.2.2 and port 2828 is legitimate ­ it must be the response to the query which has just been sent.

Page 12: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype and firewalls

Hole punching  Step 2: Bob tries to reach Alice, which punches a 

hole through Bob's Firewall. Now the Skype server passes Bob's coordinates on to Alice, 

whose Skype application attempts to contact Bob at 2.2.2.2:2828. Bob's firewall sees the recognised sender address and passes the apparent response on to Bob's PC ­ and his Skype phone rings.

Page 13: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype and firewalls

Call established  Step 3: Alice finally reaches Bobs computer 

through the hole.

Page 14: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype and firewalls

What if NAT rewrites ports as well ? If a firewall simply assigns ports in sequence, e.g. first connection 

is assigned 30001, the next 30002, etc. The Skype server knows that Bob is talking to it from port 31234, but the connection to Alice will run via a different port. But even here Skype is able to outwit the firewall. It simply runs through the ports above 31234 in sequence, hoping at some point to stumble on the right one. But if this doesn't work first go, Skype doesn't give up. Bob's Skype opens a new connection to the Skype server, the source port of which is then used for a further sequence of probes.

Page 15: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Skype and firewalls

If all else fails e.g. The NAT assigns ports at random

The skype server can be used as a relay.

Page 16: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Access Grid

As described on the Access Grid web site:  "The Access Grid is the ensemble of resources that 

can be used to support human interaction across the grid. It consists of: multimedia display, presentation and interaction 

environments, 

interfaces to grid middleware,  interfaces to visualization environments

Page 17: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Access Grid

The Access Grid supports large­scale distributed meetings, collaborative work sessions, seminars, lectures, tutorials and training.

The Access Grid design point is group­to­group communication (thus differentiating it from desktop to desktop based tools that are focused on individual communication).

The Access Grid includes the notion of a "persistent" video conferencing venue, a conferencing site operating continuously and accessible to a wide audience of users on an ad hoc basis.

Page 18: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Basic Functionality

An Access  Grid "node" is generally a small conference room or auditorium, with the equipment to participate in a multipoint video conference. Basic functionality is:  Audio encoding using one or more microphones Video encoding or "capture" using one or more cameras Audio presentation using one or more speakers Video display via one or more computer monitors and/or video 

projection techniques  Display of PowerPoint "slides" under the control of a presenter 

located either on­site or at a remote site. 

Page 19: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Functionality

To achieve this functionality the Access Grid model relies upon the ability to send and receive Internet Multicast traffic to and from all conference nodes. 

The Access Grid is based on software (vic and rat) developed as part of the Internet Multicast backbone, or MBONE, which provided multicast services over the unicast Internet backbone (using "tunnels", or "bridges", between multicast nexus sites). 

Page 20: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Software components

The Access Grid model revolves around two pieces of software:  Vic

the video conferencing tool

Rat the robust audio tool. 

and involves several other applications  Distributed PowerPoint , a jabber server, a Multicast Beacon 

and a  Virtual Venue 

Page 21: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Video Conference (vic)

Vic was developed by Steve McCanne and Van Jacobson at the Lawrence Berkeley Labs. It is intended to link multiple sites with multiple simultaneous video streams over a multicast infrastructure. 

Vic can perform 2 basic functions:  take data from video capture cards in the PC to which cameras (or 

other video devices) are attached and send it over the network.  receive data from the network and display it on a video monitor or 

on some other attached video device such as a video projector. 

Page 22: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

VIC

Note that vic may be run in such a way that it only receives video transmissions or only sends transmissions; it is not required to do both at the same time. 

For more information about vic see: http://www­mice.cs.ucl.ac.uk/multimedia/software/vic

Page 23: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Robust Audio Tool (Rat)

rat is a recent version of the Visual Audio Tool, also developed by Steve McCanne and Van Jacobson at the Lawrence Berkely Labs. rat allows multiple users to engage in a audio conference over the Internet in multicast mode. rat can perform 2 basic functions:  take data from the sound card in the PC to which microphones, 

headphones, or some other audio devices are attached and send it over the network. 

receive data from the network and send it to speakers, headphones, or other attached sound processing device, such as a tape recorder, etc. 

Page 24: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

RAT

rat displays a list of connected participants and identifies who is speaking and who is listening at any given time. 

For more information about rat see  http://www­mice.cs.ucl.ac.uk/multimedia/software/rat 

and the Access Grid web site. 

Page 25: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

The Distributed PowerPoint software The Argonne Distributed PowerPoint software allows a single 

presenter at one node to control PowerPoint applications running on computer systems located at other Access Grid nodes. 

For example, a conference speaker can run PowerPoint along with the Distributed PowerPoint master software on her laptop computer at the podium of one of the AG sites. When the speaker changes slides, the master will notify the DPPT server, which will notify DPPT clients running on systems at other nodes which will, in turn, direct their local PowerPoint programs to change slides. 

Page 26: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

The Virtual Venue software

Coordinating multiple group conferences can be complicated. Argonne has developed a collection of web pages and Java applications that can simplify the process. 

The Virtual Venue is basically a web­page that lets users select a "conference" to attend. In this context a "conference" is composed of  a vic multicast address,  a rat multicast address, and  a jabber chat room. 

Page 27: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

Lecture SummaryIn this lecture we have: Looked at several collaboration technologies.

Page 28: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one

   

End of Lecture