International Journal of Web Engineering 2013, 2(1): 1-8
DOI: 10.5923/j.web.20130201.01
Architecture for Real Time Communications over the
Web
S. Panagiotakis
1
, K. Kape tanakis
2,*
, A. G. Malamos
2
1
Department of Sciences/Division of Computer Science, Technological Educational Institute of Crete, Heraklion, Crete, GR 71410, Greece
2
Department of Applied Informatics and Multimedia, Technological Educational Institute of Crete, Heraklion, Crete, GR 71410, Greece
Abstract The emergence of HTML5 and other associated web technologies can shape a diversity of future applications,
where the client-server operations will be obsolete. In particular, the Media Capture and Streams API of HTML5 enables
third party access to multimedia streams from local devices. Enriched with a WebSockets implementation, a web application
can communicate, stream and transfer media or other data to its clients at real time to support a full collaborative environment.
In this paper, we introduce an architecture that capitalizes on the above technologies to enable real time communications over
the web. We also demonstrate the web applications we have developed in this context for live video streaming and web video
chat with no requirement for any plug-in installation.
Keywords WebSockets, HTML5, Video, Streaming, Conference, Web, Real-time Communications, Get User Media,
Web RTC
1. Introduction
So far, real time media communication between various
client devices, either one way (streaming) or two (chat or
conference), was, more or less, a static and monolithic
operation dominated by several platform-specific solutions.
In particular, the streaming of media required the setup of
dedicated streaming servers, the installation of the
appropriate standalone applications at client side and,
obviously, the support of the corresponding streaming
protocols for transferring the streamed packets. As far as it
concerns the latters, a whole family of private and
standardized ones is provided. Similar is the view with
respect to chatting and conferencing, which additionally
require the mediation of a session manager between clients
and the support of the corresponding session protocols.
With respect to communicatingat real time via the web,
until recently the streaming of media over HTTP was just a
myth, while the receipt of streaming media via web could
be accomplished only with the installation of the
appropriate third party software (browser plug-in) to receive
and process the data streamed from the server. Additionally,
the popular media players provide plug-ins for most
browsers to allow video and audio streams to be played
back over the web. Web chatting and conferencing is also
possible only via plug-ins. SIP (Session Initiation Protocol)
* Corresponding author:
kapekost@epp.teicrete.gr (K. Kapetanakis)
Published online at http://journal.sapub.org/web
Copyright © 2013 Scientific & Academic Publishing. All Rights Reserved
[1] and XMPP (eXtensible Messaging and Presence
Protocol)[2] are the most popular protocols for such uses.
However, the emergence of HTML5[3] and other
associated web technologies have drastically changed the
whole view to a dynamic, browser-friendly and platform
independent approach. This is due to the fact that HTML5
introduced several extended functionalities to web-browsers
changing the way data are transferred, visualizations are
displayed and graphics are processed using hardware
acceleration. This is mostly accomplished via several
JavaScript libraries and custom JavaScript programming
which allow to web-pages to gain access to various device
features provided for media access and customization. In
that context, the installation of flash player is not mandatory
for video streaming any more, since HTML5 provides an
element with the tag name “video” that can substitute the
requirement for any such plug-in. Furthermore, images can
be loaded in an element with the tag name “canvas”, a
container which can be used to draw graphics on the fly
with JavaScript. The canvas element is supported anymore
by the most popular desktop and mobile browsers.
Technologies such as WebGL(Web Graphics Library)[4],
SVG (Scalable Vector Graphics)[5] and Quartz 2D[6] can
be combined with canvas element to draw 2D and 3D
graphics with support for user interaction. More critical, the
Media Capture and Streams API[7], part of the general
Device APIs[8], enables access via the web to a user’s
microphone and camera device. To this end the
GetUserMedia method is defined. Hence, the live streaming
of media, audio and video, from a user over the web can be
now a reality.