SoA and Guideline for Technology, UGC, and

Transcription

SoA and Guideline for Technology, UGC, and
CNG
ICT-248175
Deliverable D2.10
SoA and Guideline for Technology, UGC, and
Collaboration Tools
Authors:
Version:
Date:
Classification:
Contract Start Date:
Project Co-ordinator:
File Name:
Shakeel Ahmad (DMU), Kerry Fraser-Robinson (RB),
Raouf Hamzaoui (DMU), Fred Hasson (RB), Ainatte
Inbal (KAL), Jiayi Liu (ITE), Andreas Papazois (CTI),
Erez Perelman (EXENT), Marius Preda (ITE), Gwendal
Simon (ITE), George Tsichritzis (CTI)
V1.2
15/08/2011
Public
01/02/2010
Exent
CNG D2.10 SoA and Guideline for Technology, UGC,
and Collaboration Tools V1.2.doc
Project funded by the European Commission
under the
“Information and Communication Technologies”
Programme
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
CNG Consortium consisting of:
Participant name
S.N
Country
Exent Technologies Ltd.
Research Academic Computer Technology Institute
EXENT
CTI
IL
GR
Institut Telecom
ITE
FR
De Montfort University
DMU
UK
Kaltura Ltd.
KAL
IL
RedBedlam LTD
RB
UK
European Games Developer Federation
EGDF
SE
i2 media research limited
i2MEDIA
UK
This document may not be copied, reproduced, or modified in whole or in part for any purpose
without written permission from the CNG Consortium. In addition to such written permission to
copy, reproduce, or modify this document in whole or part, an acknowledgement of the authors
of the document and all applicable portions of the copyright notice must be clearly referenced.
All rights reserved.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 2 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Executive Summary
One of the most attractive features of massively multiplayer online games (MMOGs) is the
possibility for users to interact with a large number of other users in a variety of collaborative and
competitive situations. Gamers within an MMOG typically become members of active communities
with common interests, shared adventures, and common objectives.
The Community Network Game (CNG) project is a small or medium-scale focused research
project (STREP) that is focused on applying new network technologies to support community
activities over highly interactive centrally managed MMOGs.
The CNG project will provide tools to enhance collaborative activities between online gamers and
will develop new tools for the generation, distribution and insertion of UGC into existing MMOGs.
CNG will allow the addition of new engaging community services without changing the game code
and without adding new processing or network loads to the MMOG central servers.
CNG intends to research and develop in-game community activities using an in-game graphical
insertion technology (IGIT) and an architecture that combines efficiently the client-server
infrastructure for the MMOG activities with a peer-to-peer (P2P) overlay for the delivery of User
Generated Content (UGC). IGIT is an innovative technology of replacing or inserting content to
the game in real time without the need to change the game’s code in the client or server. The
UGC considered by the CNG project includes 3D objects and graphics as well as video to be
shared using peer-to-peer (P2P) technology. The video traffic represents a real challenge to the
network already occupied by the MMOG client-server data. The project intends to research and
develop new techniques for P2P video streaming that are “friendly” to the MMOG client-server
traffic.
The CNG project intends to research, develop and implement the following ideas:
•
In-game content using new techniques of replacing existing texture with a new one and
inserting new 3D objects, Web 2.0 based tools and video elements (IGIT).
•
Massive P2P delivery of user-generated content while being “friendly” to the MMOG data
flow.
•
Enhanced video delivery protocols for P2P.
This report is Deliverable D2.10 of the CNG project. It describes and analyses the state of the art
in all areas related to the project. Chapter 2 introduces MMOGs and surveys their network
architectures and technologies. Chapter 3 presents existing tools for the creation and distribution
of game-related content. Chapter 4 deals with P2P systems for video distribution, reviewing their
architectures and transmission protocols. Chapter 5 presents online collaboration tools, focusing
on Web 2.0 applications. Chapter 6 examines games adaptation technologies. Chapter 7 looks at
standards that may be used as part of the CNG project.
Chapter 8 was prepared following the state of the art study and a preliminary design review
conducted by the consortium. This chapter includes the suggested guidelines and
recommendations that will drive the design of the CNG platform in the most suitable way
according to the market and technology trends and user needs.
Chapter 9 includes a short summary of the results as conclusions for the report.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 3 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Table of Contents
Executive Summary ....................................................................................................... 3 1 Introduction ............................................................................................................. 6 2 Massively Multiplayer Online Games and Virtual Worlds .......................................... 9 2.1 2.2 2.3 2.4 3 Overview ............................................................................................................. 9 MMOGs and Virtual Worlds: History, markets and trends ............................................ 9 State of the art architectures for MMOGs and Virtual Worlds...................................... 11 Operating system diversity in mainstream MMOGs and Virtual Worlds ........................ 15 User Generated Content ......................................................................................... 17 3.1 Overview ...........................................................................................................
3.2 Online content creation ........................................................................................
3.3 Dissemination of content creation ..........................................................................
3.4 Available tools ....................................................................................................
3.4.1 Capturing software example – Fraps .................................................................
3.4.2 Video editing software example – Windows/Live Movie Maker ..............................
3.4.3 Web upload example – YouTube ......................................................................
3.4.4 Live video streaming example –Xfire ................................................................
3.5 Conclusions ........................................................................................................
4 Content Sharing via P2P ......................................................................................... 26 4.1 Overview ...........................................................................................................
4.2 State of the art architectures for P2P streaming.......................................................
4.2.1 Tree-based systems .......................................................................................
4.2.2 Mesh-based systems ......................................................................................
4.2.3 DHT-assisted systems ....................................................................................
4.2.4 Server-assisted P2P systems ...........................................................................
4.2.5 Hybrid CDN-P2P systems ................................................................................
4.3 State of the art transmission protocols ...................................................................
5 59 59 59 61 64 Standards ............................................................................................................... 66 7.1 Overview ...........................................................................................................
7.2 State of the art ...................................................................................................
7.2.1 Natural media ...............................................................................................
7.2.2 Computer generated media .............................................................................
8 37 38 38 45 52 52 Game Adaptation Technologies .............................................................................. 59 6.1 Overview ...........................................................................................................
6.2 State of the art ...................................................................................................
6.2.1 In-game adaptation methods ..........................................................................
6.2.2 In-game adaptation products ..........................................................................
6.2.3 Summary .....................................................................................................
7 26 27 28 29 30 31 32 34 Online Collaboration Tools ..................................................................................... 37 5.1 Overview ...........................................................................................................
5.2 State of the art ...................................................................................................
5.2.1 Web 2.0 services ...........................................................................................
5.2.2 Web 2.0 collaboration tools .............................................................................
5.2.3 Web 3.0 and semantic Web .............................................................................
5.2.4 Server technology ..........................................................................................
6 17 17 18 19 20 22 22 23 24 66 66 66 67 Guidelines .............................................................................................................. 70 8.1 8.2 8.3 8.4 8.5 Overview ...........................................................................................................
Game adaptation (IGIT) .......................................................................................
UGC tools ...........................................................................................................
P2P live video streaming ......................................................................................
Web 2.0 collaboration tools...................................................................................
70 70 71 72 76 ----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 4 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
8.6 CNG Server ........................................................................................................
8.7 Standards ..........................................................................................................
8.7.1 Natural media ...............................................................................................
8.7.2 Computer-generated media .............................................................................
9 77 78 78 79 Conclusions ............................................................................................................ 80 10 References ........................................................................................................... 83 11 Abbreviations ....................................................................................................... 94 ----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 5 of 94
D2.10 SoA and Guideline for Technology
1
CNG: ICT-248175
Introduction
Massively Multiplayer Online Games (MMOGs) are becoming more and more popular with around
16 million subscribers in 2008 and predicted growth to 30 million in 2012 [MMOG]. One of the
most attractive features of MMOGs is the possibility for users to interact with a large number of
other users in a variety of collaborative and competitive situations. Gamers within an MMOG
typically become members of active communities with common interests, shared adventures, and
common objectives.
The Community Network Game (CNG) project will provide tools to enhance collaborative activities
between online gamers and will develop new tools for the generation, distribution and insertion of
user generated content (UGC) into existing MMOGs. CNG will allow the addition of new engaging
community services without changing the game code and without adding new processing or
network loads to the MMOG central servers. The UGC proposed by the CNG project includes
images, 3D objects and graphics as well as video. Because the world of online gaming is about
the friendships users make and the experiences they share, by enabling users to share richer
UGC, CNG will enhance users’ activities and roles within and around MMOGs.
CNG will develop a P2P video system that allows multiple users of an MMOG to share live video
without interrupting the MMOG data flow and without the need to upload the data to the MMOG
servers. While the generic MMOG architecture is not modified (the game content and the game
data are still transferred through the MMOG servers), the following components will be added: (i)
Sandbox on the client side that is responsible for modifying the game environment; (ii) CNG
Server for monitoring the P2P UGC communication. Figure 1 gives an overview of the CNG
architecture.
Figure 1: CNG architecture.
CNG will also develop an In-Game Graphics Insertion Technology (IGIT) which will be used to
change existing game objects and to insert additional objects on demand. For example, a player’s
face can be customized, billboards can be added, tattoos can be added to in-game characters, an
area on the screen can be assigned to display user information, and any type of window
(browser, chat, etc.) can be inserted floating on or outside the game area. The technology does
not require any change to the game code. By implementing the technology on multiple games, it
is possible to create a community that is not limited to a specific game or publisher.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 6 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 2 and Figure 3 show some possibilities of the usage of IGIT. Figure 2 is a screenshot from
the MMOG game “Roma Victor” [RV] by RedBedlam. Figure 3 shows the same game scene with a
mock-up of some potential CNG features. The modifications, which are numbered in Figure 3,
are as follows:
[1] The original resolution of the game was modified to enable an additional frame around the
game to hold the in-frame objects. CNG uses the GPU of the user’s machine for changing the
resolution of the game to avoid reduction in the image quality;
[2] Instant messaging window;
[3] Web browser that presents online passive information (in this example, a leader board);
[4] Another Web browser window that presents an updated advertisement;
[5] MMOG specific chat to enable the users in a specific scene to cooperate;
[6] In-game 3D UGC. In this example, a user added a note on a tree to publish an eBay auction;
[7] Two windows of a video chat with casual friends or cooperative players.
The choices of which application to use and the applications’ screen location are under the control
of the user (player).
Figure 2: Original MMOG screenshot.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 7 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 3: Mock-up of MMOG screen with possible CNG features.
This report is Deliverable D2.10 of the CNG project. It describes and analyses the state of the art
in all areas related to the project. Chapter 2 introduces MMOGs and surveys their network
architectures and technologies. Chapter 3 presents existing tools for the creation and distribution
of game-related content. Chapter 4 deals with P2P systems for video distribution, reviewing their
architectures and transmission protocols. Chapter 5 presents online collaboration tools, focusing
on Web 2.0 applications. Chapter 6 examines games adaptation technologies. Chapter 7
examines standards that may be used as part of the CNG project.
Chapter 8 was prepared following the state of the art study and a preliminary design review
conducted by the consortium. This chapter includes the suggested guidelines and
recommendations that will drive the design of the CNG platform in the most suitable way
according to the market and technology trends and user needs.
Chapter 9 includes a short summary of the results as conclusions for the report.
In addition to setting the stage for the design stage of the CNG project, the deliverable will be
useful to other researchers and developers working in the areas of MMOGs, P2P networking, and
game adaptation. It gives in particular an up-to-date overview of available technologies, identifies
their limitations, and provides guidelines on how to use and enhance them.
The deliverable is closely related to Deliverable D2.1, which presents current online communities
activities and trends and studies MMOG users’ needs for enhanced UGC tools.
This document includes updates following the first Project Review and is based on the
recommendations of the reviewers.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 8 of 94
D2.10 SoA and Guideline for Technology
2
CNG: ICT-248175
Massively Multiplayer Online
Games and Virtual Worlds
2.1 Overview
Although the CNG project does not intend to develop a new MMOG architecture, knowledge of the
existing MMOG architectures and transport protocols is important to ensure that the proposed
CNG network technologies are compatible with them and will not disrupt the users’ game
experience. This survey chapter can also serve as a reference for MMOG researchers and
developers.
Section 2.2 gives a general introduction to MMOGs and online virtual worlds, explaining their
similarities and differences. Key market players, genres, business models, and market growth are
briefly discussed. Section 2.3 describes the state of the art architectures for MMOGs and online
virtual worlds. The three main architectures are presented and compared. The section also covers
the transport protocols used for the transmission of game data in MMOGs and virtual worlds.
Section 2.4 presents the operating systems used in popular MMOGs and virtual worlds.
2.2 MMOGs and Virtual Worlds: History,
markets and trends
The most competitive and fastest growing segment of the computer and video games industry
worldwide is the online phenomenon of virtual worlds and MMOGs. A growing feature of this form
of entertainment is the social networking side of the engagements players make in these
environments. This segment is attracting most of the investment by venture capitals and in trade
acquisitions.
While computer games have been traditionally single player, a single person vs. the computer,
the technology and internet connectivity in MMOGs allow tens and hundreds of thousands of
users (and in some cases, millions) to inhabit the same virtual spaces and interact.
MMOGs and virtual worlds had their origins in what was known as Multi-user dungeons, but the
growing access to computers and broadband connectivity has led to an explosion of content in
this part of the industry, in particular through the use of personal computers and laptops.
MMOGs vs. 'open' Virtual Worlds
MMOGs are generally differentiated from virtual worlds by a ‘theme park’ vs. ‘sandpit’ analogy,
best represented by the differences between the MMOG ‘World of Warcraft’ [WoW] and virtual
world 'Second Life' [SecondLife].
MMOGs are more structured environments, where the players’ purposes are governed by the
producers of the content into missions and objectives, and where the feedback of the players or
users are commonly used by the publisher/developers to inform the evolution of the games.
Virtual Worlds are less structured and a player is faced by many of the decision challenges in real
life; there is more opportunity to socialise with other avatars, and to develop user generated
content.
Traditional games platforms such as dedicated hand-held devices and consoles have responded
by creating gaming networks for multiplayer experiences and social networking activities, such as
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 9 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Xbox Live Arcade and Playstation Network and have had to face similar realities to other media as
rapidly the expanding connectivity on the Internet has challenged traditional business models and
value chains.
Thus the games industry is undergoing a transformation from one of delivering products to one of
delivering a service.
MMOG culture and evolving variations
The games culture around MMOGs which dates back the early days of networked computers, is
itself undergoing change and transformation: most gamers who played early MMOGs were
undoubtedly 'hardcore gamers'. In today's world of MMOGs and Virtual Worlds, new players of
games as a significant entertainment medium, are being successfully encouraged by the new
genres of casual and social networking MMOGs.
Hardcore MMOGs demand dedication and commitment from players who can be expected to stay
with the same games for years, and commit over 20 hours a week. Hardcore MMOGs
entertainment culture is big in US, South Korea and Europe. The best examples include World of
Warcraft (US), Lineage I and II (South Korea) and many others. Recent examples of this tradition
include Funcom's (Norway) Age of Conan, and APB (All Points Bulletin) by Scottish based
RealTime Worlds. The games' revenues are generated by subscriptions and in game economic
activities.
Casual MMOGs are best represented by German companies such as BigPoint, GamesForge, and
Travian, who create MMOGs for a fraction of the costs of the hard core MMOGs. Their portals offer
a choice of games and users to stay with any particular game for 4 to 6 months and might
characteristically play 3 to 4 games concurrently. These use a mixture of subscriptions and ingames economies, for income generation.
Social networking and personalisation trends
Social networking MMOGs represent a fusion of the games and Internet sectors' skills. At the
social networking end of gaming the most popular MMOs and virtual worlds for younger users
include Club Penguin (Disney), Habbo Hotel (Sulake Finland) , and ‘Moshi Monsters’ (UK) and a
growing array of others, often written in ‘Flash’.
For older users, Runescape, produced by UK company Jagex, is a leading brand, as is 'Dofus'
(France). Users of these games generally stay with the one game, whilst more recently, simpler
social networking games such as 'farmville' from Zynga and 'Pet Society' from Playfish (recently
acquired by Electronic Arts) have used the social networking site Facebook to distribute content
to users, and like the casual games portals expect users to play more than one game. These are
also produced for a fraction of the costs of traditional computer games. They use simple graphics
and are the most obvious exponents of 'freemium' business models where the majority of players
opt to play for free with others improving their performance and individuality by purchasing ingames assets.
Associated with these MMOGs and the general pattern of 'Web 2.0' applications, is the emergence
of UGC. The rapid rise of UGC as a one of the backbones of social networking meeting places is
demonstrated by recent figures given by Facebook's European Business Development head,
Christain Hernandez Gallardo, at a British Screen Advisory Council (BSAC) conference on June
24th 2010 in London “Of Facebook’s 400 million active users per month, 50% log in every day.
These users post 25 billion bits of content a month.”
At the same conference, Playfish CEO Kristian Segerstrale said that their stable of 14 games were
used by 60 million players per month (10 million a day). These games also use feedback from
users to update, refresh and improve their games. Integral to the keen interest in these games
from venture capital investors are the reporting systems used by these games platforms to
collect user information, which is anticipated will open up more advertising opportunities.
The advent of network connectivity on a popular scale has turned the old communications and
media industries models on their heads, with deep seated impacts on both social and business
relations. As internet philosopher Douglas Rushkoff has commented “People don't talk in order to
share stuff, they share stuff in order to have something to talk about”.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 10 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Business models
MMOGs and Virtual Worlds are also known for having radicalized the business models used to
monetise content. Although the largest and most well-known MMOG, World of Warcraft uses a
monthly subscription model, the most used model is known as ‘Freemium’ – a combination of
Free play and Premium subscriptions, with the added ingredient of virtual items sales and
transactions. This is most simply demonstrated in the kids social networking game ‘Habbo Hotel’
whose revenues were derived from virtual items sales to decorate virtual hotel rooms and cloth
in-game avatars, and from premium services to enhance standing in the game. It is this business
model that allows MMOG publishers in China to succeed although the average revenue per user is
lower than in the West.
The phenomenon of buying and selling virtual items is well known in many virtual worlds, not
least Second Life. Virtual economics has been written about extensively in the early part of the
last decade by Edward Castronova [Cast01].
Some revenues are generated by advertising, but not to the extent of subscriptions and in-games
virtual economies. But the growing sophistication of reporting system for in-games user actions
and the monitoring of social recommendations are anticipated to offer more targeted advertising
opportunities in the future.
Market growth
MMOGs are a key centre of attention for investors and Venture Capitalists in Silicon Valley as well
as in South Korea, and Europe albeit to a lesser extent.
The games consoles – Xbox 360, Playstation 3 and Nintendo Wii as well as the handheld versions
are sinking much investment into networked services; the two largest games publishers
Electronic Arts and Activision have invested heavily in online games.
Broadcasters and media groups are now looking at developing channels based on online games
action. The BBC is currently launching 4 'Dr Who' online games, instead of making more
programmes in the latest TV series. UK's Channel 4 has switched most of its education budgets to
developing games rather than linear TV programmes.
What seems apparent is that the ability to host a large number of concurrent users in one site or
game is transforming the nature of interactive entertainment, and that we are in the early days
of the revolution this is causing.
According to Screen Digest [Screen] the revenues generated by MMOGs in the West were almost
$3.5 billion in 2009. Asian revenues are predicted to hit this same level by 2011-2, about 15% of
the total games market worldwide.
These figures are based on the existing user base of games, but it is anticipated that the genres
of MMOGs and Virtual Worlds and the opportunities for creating new content will continue to
expand.
2.3 State of the art architectures for
MMOGs and Virtual Worlds
The traditional architecture for MMOGs is the client-server model. However, alternative
architectures have been proposed, especially in the research community. In this section, we
present the three existing MMOG architectures and describe the main protocols used to transmit
data over them.
1) Client-Server
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 11 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
The client-server architecture is adopted in most commercial MMOG implementations. A client has
first to log in to a server and then exchange all information (game content, state, updates, etc.)
with the server.
In most systems, a group of servers are used to enhance the processing and bandwidth capability
of the server. Here, the service is shared by a number of machines with dedicated
responsibilities.
Let us describe the popular Blizzard’s World of Warcraft (WoW) and Linden’s Second Life (SL). In
WoW, there are several parallel virtual world instances, each of which is maintained by one
server cluster. A client only exists in one virtual world instance in which it is created, and it
cannot interact with users from other world instances. SL works in a different way; the universal
virtual world is divided into sub-regions among which clients’ avatars are free to move. Each subregion is maintained by one server cluster. When a client’s avatar moves across region
boundaries, the client’s state is migrated from one server to another.
From the server location point of view, two categories can be formed, clusters and grids. In
cluster computing, the machines are in the same geographical location. In grid computing,
various types of computing resources are connected on the Internet. In [YuLa07], a grid
computing platform is proposed. The system allows executions of applications based on specified
policy rules with dynamic addition of computing resources at run-time. Each application is
managed separately, and multiple large-scale applications can share a single computing
architecture. In [AsTz06], the virtual word is split into smaller regions, and each region is handled
by a different server. The system allows seamless interaction between players located in different
regions handled by different servers. In [BCFG08], geographically distributed nodes working as a
distributed game server are used.
When several servers are available, clients normally choose the server with the lowest latency
and packet loss rate. The goal of server selection is to minimize server resource usage while
satisfying a real-time delay constraint. For community-based Networked Virtual Environment
(NVE), a player usually maintains a list of friends with which it would like to play. Then, the
selection of servers for a group of clients is based on the client’s view point. The goal should be to
minimize the delay among multiple collaborating players. In [BVHG08], a mechanism to optimize
the server selection from a group of clients is proposed.
Because of the unpredictable movements and interactions of avatars, the concentration of
avatars in some regions of the virtual world may cause some servers of a distributed client-server
architecture to be overloaded. The usual solution is to try to balance the workload among servers
by transferring some workload of an overloaded server to other servers. However, this approach
might result in frequent client migrations, which can damage the interactivity of the game. In
[DuZh03], a dynamic load sharing algorithm and an efficient client migration scheme are
proposed. In [NPFI09], a dynamic allocation of server resource is proposed to balance the work
load among server clusters. A busy server can dynamically migrate game states to idle servers.
Cheating players can be a problem in MMOGs. Kaiser and Feng [KaFe09] described an add-on for
WoW to rate players by their behaviours in the game. The mechanism is like webpage voting;
players rate players they meet, and the result is distributed. This mechanism can distinguish fair
players from cheaters.
2) P2P
P2P architectures were proposed to address the client-server’s lack of scalability. In P2P
architectures, peers (equivalent to clients or players) autonomously maintain the game state by
exchanging update messages. Flooding of messages reduces the scalability, causes too much
overhead and is also a waist of bandwidth. The solution is sending each peer only the messages it
is interested in. This solution is also called interest management and deals with message filtering,
Area of Interest (AoI) management and so on. Two categories can be distinguished according to
the type of interest management mechanism.
The first category is based on the notion of approximate. The key feature for this kind of
approach is the partitioning of the virtual world. Usually, the whole world is partitioned into
smaller regions. Each region corresponds to a multicast channel. Peers subscribe to channels of
regions with which their AoIs overlap. This is what 'approximate' means: the messages a peer
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 12 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
receive may include some useless information for the peer. Many papers can be found in this
category. The main difference between them lies in the way they partition the world. For
example, early papers simply partition the world into squares or rectangles. Yu and Vuong
[YuVu05] propose a hexagonal zoning because a hexagon can better approximate a circle than a
rectangle. Then an irregular partitioning is proposed. Boulanger, Kienzle, and Verbrugge
[BoKiVe06] propose a triangular zoning which can better deal with visibility-based AoI (objects
behind obstacles are excluded from AoIs).
The second category is based on proximity. The key feature in this category is constructing a P2P
overlay according to peers’ position in the virtual world. Systems in this category are for
example, VON [HuChCh06] and Solipsis [KeSi03]. VON is based on a mathematical construct
known as Voronoi diagram. The game space is dynamically partitioned depending on peers’
positions using a Voronoi graph partitioning algorithm. Peers exchange update messages with
Voronoi neighbours and maintain a consistent game space. In Solipsis, peers are also dynamically
connected to each other according to their current position and dedicated algorithms are used to
achieve the global stability and connectivity. The Delaunay network is also an appealing solution
to organize peers according to their positions in the virtual world [VaBiDi07]. The whole virtual
world is divided into triangular regions by Delaunay triangulation (DT). The work in [VFBD09] is
an experimental evaluation of a Delaunay P2P overlay. The authors designed P2P-SL clients which
connect to the DT neighbours as well as the game servers. Thus, it is possible to run a P2P
simulation among these clients and also collect clients-server traffic to do a comparison. Metrics
such as inconsistency and inconsistency duration are used to evaluate the performance of the DT
network.
One of the first implementations of a P2P architecture for MMOGs was proposed in [KLXH04].
Transient game states are distributed among the peers while the user state is handled by the
central server. The virtual world is partitioned into regions. State updates are disseminated only
to the group of players within a region. Objects in a region communicate only the part of their
state that is visible to players.
The system of [KLXH04] uses a distributed hash table (DHT) and application-layer multicast for
message exchange. To reduce latency, Iimura, Hazeyama, and Kadobayashi [IiHaKa04] restrict
the use of DHT to the backup storage of global states and to the initial rendezvous point to an
authoritative node. Once the authoritative node for a particular global state is found by DHT, a
client node uses the connection to the authoritative node to receive latest updates and to request
modification of the data.
When zones are assigned to peers, it is crucial to reduce the inter-zone communication cost. In
[JiSa08], a low-complexity heuristic algorithm is proposed for this problem.
In [JoLe05], a P2P architecture that manages game consistency for a set of peers with
heterogeneous connections (e.g., highly variable delays) is proposed.
In [BDLM08], a P2P system is proposed that reduces bandwidth demand by estimating what
players are paying attention to. This enables the system to reduce the frequency of sending less
important state updates. Resource and interest heterogeneity are addressed by disseminating
updates via a multicast system that takes into consideration the presence of multiple sources,
latency-sensitivity, and frequent group membership changes.
One of the main problems of P2P architectures is their vulnerability to cheating. The traditional
solution is to use trusted referees. In [WeSoTr08], two secure referee selection algorithms are
proposed. The algorithms aim at ensuring that the probability of corrupt referees controlling a
zone/region is below a predefined limit, while attempting to maximize responsiveness and
fairness.
Other works that deal with cheating in P2P supported MMOGs include [KTCB05], [BaLiLe07], and
[HaKu07].
Compared to the large number of papers proposed, only a few P2P based NVEs are implemented
in practice mainly because P2P systems have problems with consistency, persistency, and
security.
3) Hybrid P2P-server
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 13 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
While the client-server architecture provides advantages in consistency, persistency and
administrative control, it lacks scalability support. On the other hand, P2P architectures have selfscalable properties but drawbacks on the other aspects. This has motivated the development of
hybrid architectures that combine the advantages of both. The main target is reducing the
processing tasks and traffic load on the server side.
The work in [AhShOl09] is based on zonal MMOG. The virtual world is decomposed into smaller
manageable hexagonal zones. A master node is selected in each zone to coordinate the
interactions of zone members in a multicast way. A set of master nodes provides overlay services
and regulates the operation of the game. In this sense, it is a hybrid architecture. The authors
also propose an intelligent interest-driven zone crossing approach.
In [KiYeLe04], a dynamic celling process which divides the virtual world according to the density
of avatars is proposed. A peer is selected to play the role of local server in each cell to which
some functions are distributed to reduce the outgoing bandwidth consumption of the server.
In [MeRh04], a dynamic hybrid architecture is proposed. Initially, the architecture is based on a
main server only. As the number of players increases, the server delegates more and more of its
role to the clients, which self-organize in a P2P fashion. The peers rely on the central server to
join and leave the game, discover their peer group, and receive the game data. However, once a
player is connected to his peer group, all in-game communication is done over the P2P network.
In [AhSh08], the game world is split into zones. Each zone is coordinated by a server that
performs the statement management with the active participation of the players. The focus of the
paper is on load balancing for collaborative virtual environments.
In [HuChJi08], the virtual world is dynamically partitioned with Voronoi diagrams. Game states of
overloaded nodes are aggregated onto super-peers. Both client and server-side resources are
used collaboratively. This hybrid P2P-server architecture is an extension of the previous work in
[HuChCh06].
4) Data transmission
Data transmission in MMOGs can be performed using a variety of delivery methods, from unicast,
multicast, to broadcast. Unicast is used frequently in the client-server architecture to build
connections between servers and clients. Multicast is widely used in both client-server and P2P
architectures. Broadcast is not typically allowed across router boundaries, which limits its usage
in LAN based smaller sized implementation (e.g., first-person shooter), and internet-based
MMOGs are not able to take practical advantages of this efficiency.
The Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) are core
members of the Internet Protocol Suite. TCP provides reliable transmission using
acknowledgement and retransmission, but also brings the drawbacks of large latency. MMOGs are
latency-sensitive applications, and latency is critical for users’ play experience. Latencies larger
than 200 ms will be felt by normal players. For professional players, latencies larger than 50 ms
are intolerable. TCP guarantees ordered delivery of packets. If the bandwidth requirement can be
met, it remains the best choice for many commercial MMOGs (e.g., WoW, EVE Online) to
exchange data between servers and clients. UDP is a simple best-effort protocol that offers no
reliability and no packet ordering guarantee. It has very little overhead, making it appropriate for
highly interactive games (e.g., first-person shooter).
Multicast allows a sender to notify multiple recipients with one single transmission. It can
significantly reduce the total amount of messages being sent and processed and naturally accords
with the requirement of sending update messages from each user to its neighbour set. Thus, it is
widely used in NVE. For IP Multicast, it requires substantial router-level support and a large
amount of multicast addresses, which makes its deployment unfeasible to support concurrent
NVEs with many participants. Consequently, Application Layer Multicast (ALM) is proposed to shift
the multicast task from the networking layer to the end hosts. In ALM, data packets are
replicated at end-hosts instead of routers, and reach the destination by node relays. This is
realized by creating virtual application-layer multicast trees routed at the sender, one tree per
one multicast group. This approach is widely used in NVEs, especially P2P-based ones. For
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 14 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
example, Bharambe et al. [BDLM08] use multiple multicast trees to send regular update
messages among players.
2.4 Operating system diversity in
mainstream MMOGs and Virtual Worlds
Virtual Worlds and Massively Multiplayer Online Games are not well suited to consoles. Windows
and Web platform-based (e.g., Flash, Unity3D, Java) dominate primarily for reasons of interface
features and usability [MMO1]. A significant minority of mainstream commercial MMOGs do
provide Mac and even Linux clients, e.g., Blizzard's World of Warcraft and Linden Labs' Second
Life. There are also a handful of commercial projects in development, which are attempting to
advance the cause of MMOGs running on video game consoles [MMO2], [MMO3]. However it
would certainly be unrealistic to expect a huge take-up in console-based MMOGs within the next
few years, if at all. As of June 2010, by far the dominant client platform for major AAA MMOGs
and Virtual Worlds remains Windows (specifically: DirectX 9.0c), see Table 1.
Virtual
World /
MMOG
Dofus
World Of
Warcraft
Eve Online
Star Trek
Online
Club
Penguin
Fallen Earth
Developer /
Publisher
Chronicles
of Spellborn
Age of
Conan
Anarchy
Online
Runescape
Second Life
Moshi
Monsters
Warhammer
Online
Frogster /
Acclaim
Funcom
Ankama
Blizzard
CCP
Cryptic/ Atari
Disney
Fallen Earth
Funcom
Jagex
Linden Lab
Mind Candy
Aion
Mythic
Entertainment
/ EA
NCSoft
Guild wars
NCSoft
City of
Heroes
APB
Paragon /
NCSoft
Realtime
Worlds
Square Enix
Final
Fantasy XI
Habbo Hotel
Lord Of The
Rings
Online
Rendering
Platform
Sulake
Turbine /
Midway
DirectX
9.0c
Flash
DirectX
9.0c
DirectX
9.0c
DirectX
9.0c
DirectX
9.0c
Java
Flash
DirectX
9.0c
DirectX
9.0c
DirectX
9.0c
Flash
DirectX
9.0c
Windows
PC
Mac
Linux
Consoles
Y
Y
Y
Y
Y
N
N
N
Y
Y
Y
N
N
N
N
N
Y(Web)
Y(Web)
Y(Web)
Y(Web)
Y
N
N
N
Y
N
N
N
Y
N
N
N
Y
N
N
N
Y(Web)
Y
Y(Web)
Y(Web)
Y
Y(Web)
Y(Web)
Y
Y(Web)
Y(Web)
N
Y(Web)
Y
Y
N
N
Y
N
N
N
Y
N
N
N
Y
Y
N
N
Y
N
N
N
Y
N
N
Y
Y(Web)
Y
Y(Web)
N
Y(Web)
N
Y(Web)
N
Table 1: Platforms for major MMOGs and Virtual Worlds.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 15 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 16 of 94
D2.10 SoA and Guideline for Technology
3
CNG: ICT-248175
User Generated Content
3.1 Overview
In many MMOGs, developers have made allowances for enterprising players to craft their own
unique look-and-feel for their gamespace. Players can modify ("mod") their own client
application, or upload their user interface (UI) modification (mod) to one of the many fan
sites that host file transfers. Players can also download mods by peers and use those UI mods
with their client.
To date, academic research on the subject of UGC and MMOGs focused on the tension between
UGC within the game environment and intellectual property issues. IP issues have reached
headlines [O’Dell10] with a lawsuit by a group of Second Life [SecondLife] over a virtual land
dispute. As the abstract of the paper [Last08] indicates: “A significant tension exists between
permitting participants to create content freely and building a successful virtual environment. In
some instances, user-generated content can overwhelm virtual worlds. The future of usergenerated content in virtual worlds is not clear, given the significant practical and legal problems
that accompany user-generated content” (see also [HeCoKa06]).
This chapter focuses on the following two issues:
1. Practices of sharing and remixing that are carried beyond the game environment.
Research into the arena of content creating activities (e.g., sharing and remixing) that
extends beyond the gamespace itself has yet to be pursued. The following overview is
based on findings and observations included in reports on content creation and the social
Web that does not pertain explicitly to MMOGs, in addition to informal observations as to
the practices of extending UGC into the realm of the social Web.
2. Current tools for UGC creation, sharing and remixing that are not included within the
game platforms, including a review of their limitations.
3.2 Online content creation
Social networking sites are a hotbed not only for discussion but also for the creation of new
content and creating contexts for discussion around re-purposed content. A report published on
Feb 3, 2010 by the Pew Research Center on Social Media [LPSZ10], dedicates a section to
content creation. The predominant content creation activity is sharing of self-created content.
“Teens share self-created content online like photos, videos, artwork or stories. Online sharing of
content that teens have created themselves has remained steady since 2006; 38% of internetusing teens say they shared content online in 2009, similar to the 39% who said the same in
November 2006… While creative content sharing among teens has not increased significantly
since 2006, more adults now share self-created content online than did so two years ago. Three
in ten online adults (30%) share online content as of September 2009, up from 21% of such
adults in December 2007” [LPSZ10].
The second most dominant activity is remixing of content: “About one in five online teens (21%)
report remixing digital content… Among online adults, 15% take part in remix culture—and as
with online content sharing, remixing has grown somewhat in popularity among older adults over
the last two years and not at all among young adults or teens’’ [LPSZ10] (Figure 4).
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 17 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 4: Online content remixing (from [LPSZ10]).
Commenting on videos and adding “Likes” has become a vibrant channel of communication
around videos, mainly on video-centric sites. A popular YouTube StarCraft gameplay garnered
thousands of “Likes” within several days [YouTube3]. As the leading paradigm for video centric
sites, YouTube’s introduction of inline annotations has created many more use cases for adding
content to video. Most common use cases are disclaimers and pointers to external URLs.
3.3 Dissemination of content creation
This section outlines the practices currently used by game players to disseminate their knowledge
of the game via capturing of game fragments and the creation of “How-To” videos.
MMOGs and YouTube
As the predominant video sharing site [COM10], YouTube illustrates common practices of sharing
and remixing MMOG content outside the realm of the game sphere. Informal observations
regarding the practices found there have shown that there are two types of videos posted by
single users: Manoeuvres captured by expert users and How-Tos.
Manoeuvres
•
•
•
Manoeuvres are short sequences captured during play with an additional soundtrack
layer.
Manoeuvres receive many comments but not many views; this supports the claim that
this type of content might cater to a relatively small interest-based group, but that group
is very enthusiastic about the subject matter.
Comments usually also include reference to the additional soundtrack: “I like this music”
[YouTube1]; “Down w/ the Horde...FOR THE ALLIANCE!.........great choice in music little
Horde (; whats the secound song called?” [YouTube2]
How-Tos
•
•
Have much more views than manoeuvres (reaching the millions).
Are elaborately produced, including text overlays, narration, soundtrack and animations,
as illustrated in Figure 5 and Figure 6.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 18 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 5: How-to example from [YouTubeHowTo1].
Figure 6: How-to example from [YouTubeHowTo2].
User Channels
User Channels on YouTube are a prime cross-over between in-game activity and the Web: “Game
fans have become obsessed with Machinima videos (films of actual game play) with funny voice
overs creating unique narratives. Among the biggest is Red vs. Blue, which starts the Halo Master
Chief characters in red or blue body armour. Now the videos on the Machinima channel on
YouTube have been viewed more than 14 million times. The most popular one, a [updated]
Machinima.com episode entitled Master Chief Sucks at Halo 3, has been viewed more than six
million times’’ [Taka08].
3.4 Available tools
Current UGC tools can be classified in three categories: tools for capturing, for editing and for
uploading/broadcasting.
Capturing
Capturing videos from within games is done in two methods:
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 19 of 94
D2.10 SoA and Guideline for Technology
-
CNG: ICT-248175
Recording is supported within the gamespace, as in the example of Spore. This is not a
common feature in MMOGs.
Users use external video capture software, such as CamStudio (freeware), Camtasia or
Fraps, to capture fragments of their game. Fraps (Windows OS only) is the preferred
software for users who want to capture high quality video. However, its free version has a
30 s recording limitation. .
Editing
To edit the video and add effects, narration, soundtrack and text overlays, users tend to use
readily available software such as Windows Movie Maker for Windows or iMovie for Mac that allow
for the inclusion of additional content: audio, images and other videos. Annotations can only be
added after the capture is done, and cannot include other participants’ comments.
Uploading/broadcasting
Once a user captured and edited the video, a final step is needed in order to upload it for
viewing. In 2008, Maxis, the creators of Spore, incorporated YouTube APIs within their game:
“Maxis has seamlessly integrated YouTube into the Spore Creature Creator, enabling a player to
upload video of their creations to their YouTube account with only two clicks” [YouTubeSpore].
Since then the Spore channel on YouTube has accumulated 185884 user videos. Reliable data
cannot be retrieved by browsing, as all videos are marked as uploaded four months ago. If
viewing numbers are correct, the viewership seems to be very low.
The collaboration between YouTube and a game creator (EA), including revenue share from
advertisements, is unique to date. Players of other games need to upload their video creation
from their computer and not from within the game itself [Taka08].
Alternatively a user can capture the video of the game and broadcast it live to other users via a
video server. This feature is offered by Xfire [Xfire], which allows anyone to watch a live feed of
a user's game screen. When a user begins a stream, a chat room is opened which anyone who is
watching the live feed can join.
3.4.1 Capturing software example – Fraps
Fraps is a Windows utility that allows for screen capture and real-time video capture (Figure 7)(.
The shareware includes an unremovable Fraps watermark at the top of every video, and each
recorded video is limited to 30 s in length. Screenshots are not watermarked in the free version
but can only be taken in the BMP format.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 20 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 7: Fraps.
Recording is done via HotKeys during the game. Screen captures are automatically named and
time-stamped.
Fraps records video in a proprietary codec using the AVI container format. Videos saved in the
Fraps codec usually require additional encoding after the save in order to playback the video
smoothly. Vendor recommends that once the player has finished capturing they should convert
the saved AVI into one of the popular compressed movie formats such as mpeg or divx.
Recommended programs for doing this are tmpgenc (Tsunami Mpeg Encoder) and VirtualDub.
The real-time video capture feature can record video at resolutions up to 2560x1600 in size.
While the game is being recorded the frame rate of the game will be limited to the speed of the
movie.
Users have options to choose Half-size that will store the movie at half the resolution of the game
screen and also the frame rate of the output movie from 25fps, 30fps, 50fps, 60fps, or a custom
value up to 100fps. Higher values result in smoother playback but will increase the file size.
Due to Fraps not supporting AVI 2.0 OpenDML extensions (and using AVI 1.0 instead) the
maximum clip size is about 3.9 GB regardless of the file system of the destination drive. Should
the recorded clip exceed this limit it is automatically split into two (or more) separate files.
In order for Fraps to take pictures or capture videos onto their system, users must first be using
a program that uses DirectX or OpenGL as a core runtime system. Programs that run on
Windows without DirectX or OpenGL are not supported, and therefore Fraps cannot capture
desktop applications under Windows 2000 and XP. In Windows Vista the Aero desktop runs
through DirectX and can be captured by Fraps.
The nearly lossless format is considerably less space-efficient than more heavily compressed
lossy video formats such as H.264. This is because encoding on-the-fly to a high-compression
format such as H.264 would have a large negative impact on game performance.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 21 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
3.4.2 Video editing software example –
Windows/Live Movie Maker
Windows Movie Maker is a video creating/editing software, included in Microsoft Windows Me,
XP, and Vista. It contains features such as effects, transitions, titles/credits, audio track, timeline
narration, and Auto Movie. New effects and transitions can be made and existing ones can be
modified using XML code.
Development of Windows Movie Maker was abandoned after the release of Windows Vista; its
replacement is Windows Live Movie Maker (Figure 8) which does not have the same features
as Windows Movie Maker.
Windows Live Movie Maker was officially released on August 19, 2009 and is not available for
Windows XP or earlier versions of Windows. Windows Live Movie Maker allows users to publish
videos to YouTube, as well as make a HD video. It has received criticism, however, over its
removal of most of the features of the older versions, particularly the timeline. Due to removal of
features considered unimportant to general users and focus on auto-creation of videos,
specifically from a set of images, the software is less capable than previous versions and may
only be appropriate for basic video creation.
Figure 8: Windows Live Movie Maker.
3.4.3 Web upload example – YouTube
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 22 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
YouTube allows for up to 10 files to be uploaded at a time but restricts the file size that
subscribed users can upload: It must be under 2GB and less than 15 minutes long.
Some well-known formats which YouTube supports are:
• WebM files (Vp8 video codec and Vorbis Audio codec);
• .MPEG4, 3GPP and MOV files - (typically supporting H.264 and MPEG4 video codecs and
AAC audio codec);
• .AVI (Many cameras output this format - typically the video codec is MJPEG and audio is
PCM);
• .MPEGPS (Typically supporting MPEG2 video codec and MP2 audio);
• .WMV;
• .FLV (Adobe - FLV1 video codec, MP3 audio)
3.4.4 Live video streaming example –Xfire
Xfire is an application for Windows (Pentium processor running Windows XP, 2000, Vista, or 7)
that combines multiple gaming tools allowing players to chat with their friends, see what games
their friends are playing, what servers they are playing and also to capture and broadcast live
video on the Xfire website.
Video Capture:
Xfire Video Capture does not support 16-bit or DDraw rendered games. Some examples of this
would be Starcraft or older Need for Speed games. Several video players, such as VLC Media
Player, do not support the Xfire video codec. Uploading to site is restricted to 200 MB or 10
minutes total.
Video Broadcast:
A hotkey combination triggers the live broadcast within the game (Figure 9) , for users who have
the application installed and are playing a supported game.
Friends can then highlight the broadcaster’s name in their friends list and click on the video icon
that says "Live" in the info view.
The application runs on Windows XP and Vista under Internet Explorer or Firefox. There is
approximately a 3-5 s delay between the broadcaster and the receivers under normal network
conditions.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 23 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 9: Xfire live video.
3.5
Conclusions
•
Most MMOG based UGC content is confined to dedicated player/game company sites. This
might be due to the tension described above between the impetus behind social
networking sites and interest-based communities. It might also be the case that there is
no easily-available tool of porting content to these sites.
•
Sharing and remixing of content is a widespread online activity that crosses borders of
age and gender.
•
Avid players will go to great lengths in their efforts to create shared content in which they
reveal their mastery. Additional data layers are always included: narration, animation and
primarily – soundtrack.
•
Players who wish to display their game mastery use tools at hand in the creation of
manoeuvre capturing and how-tos but these tools are limited to single contributions and
require a great deal of effort.
Limitations of available tools
-
Single contribution: this seems to be the major limitation of current use: raw material
cannot be edited by other game members and cannot be shared in a collaborative
manner.
Once the edited capture has been created there is no easy way to revise and build upon
it.
Cumbersome editing of video capture.
Existence of watermarks and limited recording duration in the shareware versions of the
software (Fraps, Camtasia Studio).
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 24 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 25 of 94
D2.10 SoA and Guideline for Technology
4
CNG: ICT-248175
Content Sharing via P2P
4.1 Overview
The CNG project aims at developing tools to allow MMOG players to share game-related UGC.
MMOG players will be able to
•
•
•
transmit live video captured from the game screen for co-operative play, coaching, or
sharing experience;
watch videos on demand (VoD) captured by other players showing quest walk-throughs,
game tutorials, or changes in the virtual world;
send and receive non-real-time items such as 3D objects, textures, images, and video
files.
In existing MMOGs, players can send captured video to a central server which broadcasts it live to
other users or watch it on demand from the MMOG central servers or video-sharing websites such
as YouTube (see Section 3.4).
However, solutions that heavily rely on central servers have many drawbacks such as high costs
for bandwidth, storage, and maintenance. Moreover, these solutions are not easily scalable to
increasing number of users.
The CNG project intends to design a P2P live streaming system to address the limitations of the
server-based solutions. The CNG P2P live system will allow every peer to become a source of a
user generated video stream for a potentially large set of receivers. While many P2P live video
systems have been proposed, none of them has been specifically designed for the unique
environment of MMOGs. In particular, none of the existing P2P live video systems addresses the
following challenges:
•
•
•
•
For a player, the participation to the P2P overlay requires to use some physical resources on
its own device. Unlike a video server, a user PC has limited resources, including CPU. So
these resources have to be shared carefully among all processes running on the device.
Live video streaming should not consume the upload and download bandwidth that is
necessary for the smooth operation of the MMOG (MMOG client-server traffic).
Many peers can emit simultaneously live content, so the P2P overlay consists actually in
many concurrent P2P overlays. A peer should be automatically attached to a subset of all P2P
overlays depending on its distance to the different sources, and on the capacity of the other
peers in its surroundings.
Live video should be delivered at about the same time for all peers in the same region of the
virtual space. This optional requirement can be useful in some MMOG and Virtual World
scenarios.
In addition to these MMOG-specific challenges, current P2P live video systems face several other
problems summarized as follows:
•
•
•
•
•
•
Long start-up delay. For example, the average start-up delay for live broadcast provided by
CoolStreaming, SopCast [Sopcast], PPlive [PPlive], and Zattoo [Zattoo] is 5s, 1 min, 20 s,
and 6.2 s, respectively [AlLi09, LKLL08].
Lack of interactivity. Most systems do not allow a user to pause and resume a live stream
or view a video that was streamed before it joined the session.
Poor video quality. Most P2P streaming systems support video rates of up to 400 kbps only
[GSKT08]. This does not enable high video quality.
Increased network traffic. This is a major concern for ISPs.
Poor resilience to churn. More research is needed to minimize service disruption for one
user due to other users leaving the system.
High failure rate. Users are often denied access to a live session.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 26 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Section 4.2 surveys existing P2P streaming architectures, covering tree-based, mesh-based,
DHT-assisted, server-assisted, and hybrid CDN-P2P architectures. For each architecture, both live
and VoD systems are covered. Moreover, a new type of P2P systems called time-shifted TV is also
discussed.
The issue of packet loss has not been sufficiently addressed in previous P2P streaming systems.
Indeed, most reported implementations use TCP or UDP without error control (see Section 4.3) .
Another objective of the CNG project is to develop an alternative solution based on UDP and
application layer error control with hybrid ARQ. This approach has several advantages over TCP,
including faster transmission and better adaptivity to both video content and network conditions.
Section 4.3 presents the state of the art in transport protocols for video streaming over P2P.
To distribute non-real-time UGC (e.g., 3D objects, textures, images, video files), the CNG project
aims at using Web 2.0 file sharing tools (see Chapter 5) or existing P2P file sharing systems such
as BitTorrent clients.
4.2 State of the art architectures for P2P
streaming
Traditional client-server video streaming systems have critical issues of high cost and low
scalability on the server. P2P networking has been shown to be cost effective and easy to deploy.
The main idea of P2P is to encourage users (peers) to act as both clients and servers. A peer in a
P2P system not only downloads data, but also uploads it to serve other peers. The upload
bandwidth, computing power and storage space on the end user are exploited to reduce the
burden on the servers. P2P video streaming systems can be classified into two categories: live
and on-demand.
In a live streaming system, the live video content is diffused to all users in real time and video
playback for all users is synchronized. Users that are watching the same live video can help each
other to alleviate the load on the server. P2P live streaming systems allow viewers to delete the
historic data after the playback, and hence have no requirement for any data storage and
backup. Viewers of a live event wish to watch the video as soon as possible. That is, the time lag
between the video source and end users is expected to be small.
VoD streaming systems allow users to implement VCR (Video Cassette Recorder) operations, for
example, pause, forward, random seek and particular locations seek. Unlike live streaming, a
viewer can request any video data in any position at any time. P2P VoD systems aim at achieving
smooth playback, rather than a strict real-time performance. It is reported [CLZJ07] that VoD
users frequently switch to the positions that they are interested in. P2P VoD systems usually
require a vast amount of storage contribution of the servers and end users. Frequent VCR
operations mean that good neighbourhood can be changed quickly, degrading peer collaboration
and deteriorating the user experience. Because of different joining positions and VCR operations,
the playbacks on different users are not synchronized, even for the same video. This
asynchronicity severely reduces cooperation opportunity among peers. The cooperation is further
deteriorated because of the dispersal of requests to a large number of video chunks, especially
for the chunks with low popularity in an unpopular video.
Recently, time-shifted streaming systems, which combine live streaming and VCR operations
have been proposed. A time-shifted system allows viewers to watch a live program from the
beginning, although the program has already started or is finished. It also allows VCR operations
similar to those of VoD systems. So the system has to ingest live content and output it on
demand, which requires a huge amount of storage and capacities.
Besides, an additional requirement in VoD and time-shifted systems is content location. A peer
requesting a given video part should discover the peers that store it. A distributed solution for
this problem consists in implementing a Distributed Hash Table (DHT). Some recent works have
focused on proposing improved implementations of DHT for the specific problem of VoD and timeshifting. Another solution consists in using a central server, which does not store any data, but
focuses on facilitating peer discoveries.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 27 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Based on the overlay network structure, the current approaches for P2P streaming systems can
be broadly classified into two categories: tree-based and mesh-based. In tree-based systems,
peers form an overlay tree, and video data are pushed from the parent node to its children.
However, a mesh-based system has no pre-fixed streaming topology: any connection between
peers is authorized. Peers pull video data from each other for content delivery. Over the years,
many tree-based systems have been proposed. However, to the best of our knowledge, the most
popular commercial systems are mesh-based (e.g., PPLive [PPlive], PPStream [PPstream]).
Table 2 gives an overview of P2P streaming systems. The next sections summarize the works
related with tree-based, mesh-based, DHT-assisted, and peer-assisted streaming systems.
Structure
Chain
Tree-based
Live
Multiple-trees
Splitstream
[CDKNRS03]
CoolStreaming
[LKLL08],
PPLive
[PPlive],
PPStream
[PPstream]
Mesh-based
DHT
ESM [SRSZ02]
VoD
Chaining [ShHuTa97]
P2Cast
[YKJD03],
P2VoD
[DoHuTa08],
DirectStream
[GSKT03]
Coopnet
[PWCS02],
Promise [HeHaBo03]
Bittorrent-based
[DLHC05,
VIF06,
CSDP07],
RINDY
[CSJ08],
DSL
[WaLi08]
VMesh
[YiJiCh07],
BulletMedia [NPND07]
Time-shifted
liveShift [HBMH08]
Table 2: P2P streaming systems.
4.2.1 Tree-based systems
Many early P2P streaming systems use a tree-based approach that is typically based on
application-level multicast architectures. Tree-based systems, such as ESM [SRSZ02] and P2Cast
[YKJD03], organize peers into a tree structure for delivering data. The data are diffused following
this well-defined structure, typically pushed from a peer to its children. Tree-based solutions are
perhaps the most natural and efficient approach, but they face several challenges. One major
drawback of tree-based systems is the system fragility due to peer churn. A peer departure will
disrupt data delivery to all its descendants, particularly for the peers in the higher level of the
tree. The high dynamicity of peers in a P2P network potentially deteriorates transient
performance. Another drawback is the under-utilized upload bandwidth of the peers. The leaf
nodes in the tree cannot contribute any upload bandwidth resource to the system. Since a
majority of nodes are leaves in the tree structure, this significantly reduces the overall efficiency.
To address the issues of leaf nodes, multi-tree structures were introduced [CDKNRS03, PWCS02].
In a multi-tree system, the source encodes the stream into several sub-streams and diffuses
each sub-stream along one sub-tree. Each peer participates in many or all sub-trees to retrieve
sub-streams. Hence, a peer might be deployed on an intermediate position in one sub-tree or a
leaf position in another sub-tree. Compared with the single-tree approach, the multiple-tree
solution has two advantages. First, the system’s robustness is improved, as the failure of a highlevel node would not completely disrupt all its descendants. Second, the upload bandwidth of all
nodes could be well utilized, since each node stands a good chance to be both a leaf and an
intermediate node. However, since the multiple-tree approach is still a tree-based solution, the
drawbacks of tree-based systems remain basically unsolved. First, the construction and
maintenance of the multiple-tree structure are costly because of frequent peer churn behaviours.
Second, the upload bandwidth contribution of a node, which depends on the position in each subtree, is deficient. Furthermore, the design involves overhead.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 28 of 94
D2.10 SoA and Guideline for Technology
4.2.1.1
CNG: ICT-248175
P2P live streaming
Viewers in P2P live streaming systems only focus on the live video data that currently are output
from the source. Hence, the video playbacks for all users are synchronized. In tree-based P2P live
systems [SRSZ02], all users participating in a video streaming session can form a tree at the
application layer with the root at the video source. Each peer receives the live video data from its
parent and immediately forwards the data to its children. Usually peers at lower levels receive the
live data after peers at upper levels. The major consideration is to balance the depth of the tree
and the out-degree of the intermediate nodes. Multi-Tree based approaches for P2P live systems
are described in [CDKNRS03].
4.2.1.2
P2P video on demand
In VoD streaming systems, although a large number of users may be watching the same video,
different users are watching different portions, which make their playback requirements
asynchronous. How to accommodate asynchronous users using tree-based P2P system is a
critical issue, and several solutions are proposed in the literature.
Chaining: Chaining [ShHuTa97] seems to be the first and simplest scheme for peer-to-peer VoD
streaming systems. Chaining uses an interval caching scheme. That is, each peer with a fixedsize buffer caches the most recent data and serves other later peers in the chaining. However,
Chaining does not address failure recovery and system stability under network dynamics.
Tree-based and Multiple-trees: P2Cast [YKJD03] proposes a tree-based peer-to-peer VoD
streaming system with patching techniques. The peers that arrive within a threshold T constitute
a session and form an overlay tree. The video stream includes a base stream and a patch stream.
A peer gets the base stream from its parent, and also requests its ancestors in the same session
or servers for the patch stream. P2VoD [DoHuTa08] proposes generations in each session. The
parent departure problem can be resolved by finding another parent in the upper generation
instead of source requirement. In P2Cast and P2VoD, the peers in the base tree are synchronous,
as in live streaming applications. Moreover, the asynchronous data are delivered using patching.
Instead of patching techniques, DirectStream [GSKT03] uses the interval caching scheme to
resolve the asynchronous issue. DirectStream also forms a tree to deliver the video data and uses
the same solution for the problem of parent departure.
However, in tree-based VoD systems, each peer only has one parent which usually does not have
enough bandwidth to give the service. Also parent departure leads to the failure of all its
descendants. CoopNet [PWCS02] delivers multiple description codes (MDC) over multiple
distribution trees to address the drawbacks of tree-based peer-to-peer VoD systems. Each tree is
used to transfer a single description. So each peer joins multiple trees, and then has more than
one parent.
4.2.2 Mesh-based systems
In a mesh-based P2P streaming system, peer relationships are built and terminated according to
data availability and bandwidth availability on peers. A video is typically divided into many
chunks. Moreover, a tracker server maintains the relationship between peers and video data.
Then, a peer can dynamically connect to a peer list that is chosen randomly from the tracker
server according to which chunk the peer requests. After that, the peer maintains multiple
neighbours and exchanges chunks with these neighbours simultaneously. A gossip protocol
[JGKS04] is typically used for the topology management. Peers also periodically exchange
information of the chunk availability using a buffer map. Usually, a chunk is pulled by a peer from
its neighbours who have the requested chunk. The pull policy can avoid redundant chunk
transmission.
If a neighbour leaves, the peer can continue retrieving chunks from other neighbours. The peer
also explores some new neighbours to keep a certain number of neighbours. Due to the
maintenance of multiple neighbours, mesh-based systems are highly robust against peer churns
and fully utilize users upload bandwidth. However, transmission delay presents a challenge to
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 29 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
mesh-based systems (for example, long start-up delay and channel switching problems for live
streaming systems).
4.2.2.1
P2P live streaming
Many successful P2P live streaming systems [LKLL08, PPlive, PPstream] use the mesh-based
streaming approach. The design of mesh-based P2P live streaming systems is relatively simple.
All users are interested in the same live data. All chunks downloaded at a peer are always useful
to other peers that have not retrieved these chunks. Some studies investigate the quality of
peering connections. Several strategies are proposed to construct the peer relationship. The first
consideration is the workload and resource availability on both peers, such as the current number
of connections, upload and download bandwidth, and system resources. Other considerations are
the network condition, which includes end-to-end delay and loss rate, and the network proximity,
including geographical position, bandwidth, delay and network distance.
4.2.2.2
P2P video on demand
Due to the asynchronicity of VoD users, the main challenges of mesh-based P2P VoD systems are
how to balance between the system efficiency and guarantee sequential playback requirement for
asynchronous peers, as well as frequent VCR operations. In fact, earlier arrived peers could serve
the chunks that have been downloaded and watched to the new arrivals. However, peer churn
and limited storage capacity challenge chunk availability, especially for unpopular chunks.
Optimizing resource allocation and managing overlay topology are also important design issues.
In Gridcast [CSJ08], each peer maintains a sliding buffer window to manage chunks with recent
past, current and upcoming positions. Gridcast constructs a ring-assisted peer-to-peer VoD
overlay, RINDY, where a peer implements fast relocation of random seeks by maintaining some
near-neighbors (for data delivering) and far-neighbors (for fast seeking) in a set of concentric
rings with power law radii. InstantLeap [QWLL09] uses a simple random algorithm and gossip
protocol to construct the assisted overlay. A sliding buffer window is also configured in each peer,
containing current playing data, past data and future playing data. The video stream is
partitioned into m consecutive segments along the time axis, and then m groups are formed
depending on the playing positions.
4.2.3 DHT-assisted systems
Distributed Hash Tables (DHTs) are used in peer-to-peer networks to execute an efficient search
in a decentralized and scalable way.
4.2.3.1
P2P video-on-demand
In a DHT-based peer-to-peer VoD system, each peer randomly or tactically stores a number of
video chunks in a distributed way. A DHT is used to locate these chunks. That is, given a hashed
key, it returns the corresponding object. Each stored chunk should be registered to the peer with
responsibility of the chunk location in the DHT network. According to a required chunk ID, a peer
demands the DHT network and gets a peer list associated with the chunk ID. Then the peer
randomly chooses one or more peers from the peer list as its neighbors. VMesh [YiJiCh07] uses
static local storage instead of sliding window buffering. Each peer stores certain chunks which can
be located using a DHT network. VMesh helps peers keep the same neighbors when a VCR
operation occurs. However, the peers need to refresh their neighbors after the playback time of
the current chunks. In [NPND07], A DHT is used to store meta-data about content location in a
special situation where a peer cannot find a neighbor with the required data after performing a
seeking operation. Each peer is configured with a fixed-size playback buffer and a content cache.
The playback buffer contains the current blocks and the content cache stores the blocks in the
past and future.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 30 of 94
D2.10 SoA and Guideline for Technology
4.2.3.2
CNG: ICT-248175
P2P time-shifted
A couple of preliminary works have recently sketched a peer-to-peer architecture for time-shifted
TV systems. In [HBMH08], every client stores all downloaded video parts. A DHT is used to keep
trace of the owner of every video part, so that a peer that is able to upload a past video part can
be found upon a simple request to the DHT. Similarly, in [GMCC09], a DHT is used to locate video
parts. Some additional proxies aim to ensure the continuity of some video that are locally
downloaded. However, these works appear to suffer from some drawbacks. First, the use of the
hash function seems irrelevant in this context where chunks are iteratively produced. A structure
that takes into account the stream linearity would be more appropriate. Second, a peer departure
should lead to multiple deletions in the DHT. For peers that store vast amounts of chunks in timeshifted TV, this may produce a huge number of messages. Furthermore, the DHT could not
guarantee the availability of all chunks, particularly for early and unpopular chunks.
4.2.4 Server-assisted P2P systems
Most peer-to-peer systems rely on a server, either a bootstrapping server or a tracker server. A
bootstrapping server is only used when a new peer joins an overlay. The bootstrapping server is
expected to give to this newcomer a list of peers that are currently in the system. In this way,
the new peer can quickly open connections. It has been shown however that a popular P2P
streaming system like PPLive fails in providing accurate information to newcomers, resulting in a
too long start-up delay [KLLS09]. Actually, a large proportion of peers that are given by the
bootstrapping server do not answer to the initial request of the newcomer, either because they
are no longer in the system, or because they do not need any new connections. A tracker server
extends the bootstrapping function. Every peer periodically sends a message to the tracker,
which gives in return a list of peers, namely a peerlist. That is, the participants to a peer-to-peer
system can discover new peers on a periodic basis. The bit-torrent system has popularized this
hybrid architecture, which guarantees, among other suitable properties, that new peers can
quickly find matching peers.
In general, implementations of tracker-based peer-to-peer systems are simple. The tracker
basically sends to a requesting peer a list of randomly chosen peers among the set of peers that
are expectedly active in the system. Interestingly, the resulting topology is a random regular
graph: every peer is connected to a given number of randomly chosen other peers. This randomlike underlying topology is interesting on several aspects, especially random regular graphs are
connected with high probability (so any information is accessible from any peer), and the
diameter of a random regular graph is small (therefore any information is close to any peer, if it
is able to find it).
This topology links "acquaintances". A peer can contact any subset of peers in the peerlist, but it
is free to choose, among them, some privileged peers with which it will actually exchange data.
In fact, this "peerlist topology" lies between the underlying network (Internet) and the "overlay
network", which represents the actual data exchanges. This position explains some criticisms.
First the peerlist contains peers exhibiting a broad scope of capacities, although the overlay tends
to connect peers having similar characteristics [GMMR07]. The overlay would converge faster if
the peerlist could contain preferentially the peers having the closest characteristics to the
requester. However, it would require to authorize the tracker to determine as accurately as
possible the capacity of peers, which appears to be impossible or costly in many cases. Second,
the peerlist topology does not take into account the location of peers. Therefore the overlay
wastes network resources. The growth of the network traffic related with peer-to-peer
applications has encouraged network operators to propose new solutions. The IETF Working
Group on this topic, namely ALTO, was started in early 2008. The goal of the Working Group is to
define a normalized service, which gives resource selection guidance to service clients, in order to
improve both application performance and resource utilization on the underlying network. The
detailed formulation of ALTO problem and its goals are available in RFC 5693 [SeBu09]. The ALTO
service can be considered as an extension of the earlier work called P4P [XYKL08]. P4P has
proposed a simple and flexible framework to enable cooperation between P2P applications and
network providers. P4P relies on an entity called iTracker, which is maintained by the network
providers. An iTracker interfaces with both peers and application tracker to provide relevant
information for the P2P service, such as network capability, distance among peers and operator
policies. Hence, it is possible to build a peerlist containing peers that are located in the same
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 31 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
network domain as the requester. However, the most popular peer-to-peer applications have not
yet implemented the ALTO protocol, which is still in debate.
4.2.5 Hybrid CDN-P2P systems
This section surveys peer-assisted (PAS) Content Delivery Networks (CDNs), which have
attracted a lot of attention in recent years. The main CDN organizations offer now various
services (e.g., website, video on demand, live streaming). An attractive idea consists in also
using peers to massively deliver the content.
One of the most advanced PAS systems is Globule [PiSt06], an open source module of a PAS
CDN. Several issues have been identified during the conception of Globule. We emphasize three
important ones. Replica placement: A given content should be replicated and distributed over the
peers. To decide an optimal replica placement, the first task is to define a cost metric in the
network. In Globule, the authors take internodes latency as their proximity measure. Many other
measures can be used. Request redirection: Globule supports HTTP and DNS redirection. In
[PiSt06], the authors use DNS redirection. So the principle of request redirection of Globule is the
same as in traditional CDN systems. Content availability: Globule guarantees the availability of
both origin server and replica server (end user hosting a service). For origin server, the authors
propose using backup servers. To make sure that clients are always redirected to lively servers,
redirectors are required to periodically probe the availability of servers.
4.2.5.1
PAS-CDN for video on demand
Hybrid CDN-P2P architectures for VoD system are studied in [HLR07, TSHP05, XKRC06,
MKHH09]. In [TSHP05] and [XKRC06], the authors focus on system architecture and service
process, and their proposals are quite similar. In the system of [TSHP05] there are three
elements: a directory server used as a tracker; a streaming server responsible for streaming
delivery; and end user machines participating in the streaming system. The service of each video
stream experiences three stages. The initial stage begins when a video is pushed to a server.
During the initial stage requests of end users are served only by the CDN server. With the
increment of requesting peers, the CDN server reaches its bandwidth limitation. Then the service
turns to a CDN-P2P stage. The CDN server selects a subset of peers holding the video to be the
complementary suppliers. After a large number of peers have downloaded the video, the
contribution of supplying peers can satisfy the playback rate of requesting peers. Then the
service enters a pure P2P stage for the video. The video in the CDN server is finally replaced by
another one, and the CDN server works only as a tracker of the original video.
In [XKRC06], the authors integrate a tracker function and streaming server into CDN servers. The
service of each video is also divided into the same phases as in [TSHP05]. The difference is that
in [XKRC06] each peer has its contribution commitment. After the commitment is fulfilled, a peer
becomes a retired peer and does not upload the video anymore. This configuration eases the
problem of peer overloading and unfairness among peers. One important metric to evaluate these
PAS-CDN systems is the request rejection rate. If the rejection rate is low, then the scaling issue
of VoD service is well solved. Unfortunately, both of the systems in [TSHP05] and [XKRC06] still
suffer from a high rejection rate during the initial and CDN-P2P stage. In particular, many peers
request a video simultaneously at the beginning of the service. The rejection rate is low only after
the handoff to a pure P2P stage.
Besides the research on system architecture, [HLR07] and [MKHH09] study the PAS-CDN system
from other angles. The authors of [HLR07] highlight the potential benefits of implementing
prefetching policies in PAS-CDN. No prefetching means that a peer downloads a video stream
only when it needs it. Otherwise, in prefetching system each peer pre-downloads some streams
for further use. The authors assume two modes of a PAS-CDN system: 1) surplus mode, where
total service capacity of peers is higher than total demand; 2) deficit mode, where total service
capacity cannot afford total demand in the system. In their simulations, they show that in a
totally surplus or deficit mode, where service capacity is much higher or lower than demand, no
prefetching system works well and the CDN server load remains low. But when service capacity is
similar to total demand, the system may change between surplus mode and deficit mode
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 32 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
frequently due to peer churn, and the workload of the CDN server increases dramatically.
Therefore two prefetching policies, water-leveling and greedy, are proposed by the authors to
solve the previous scaling issue.
On the other hand, [MKHH09] improves the PAS-CDN from a business point of view. Although
managed PAS-CDN systems using ALTO or P4P protocol work well theoretically, they need peer
information to construct a controlled environment. Since end users can provide their information
according to their willingness, there is no reason for every user to cooperate with an ALTO/P4P
service provider. So the authors of [MKHH09] propose that ISPs give users explicit incentives,
e.g., giving virtual currency or discounting monthly fee, to encourage users to cooperate with
service providers and contribute their resources.
4.2.5.2
PAS-CDN for live streaming
In this section, we present the architecture of a real-world CDN-P2P live video streaming system
called LiveSky [YLZS09], which has been deployed in China. The system is designed to solve a
set of problems in current CDN and P2P live video streaming systems such as scaling, fast startup
and upload fairness. It is composed of three modules: 1) management module; 2) cache servers
module; 3) clients module, which is organized in a hybrid client-to-server and peer-to-peer
model.
Server side organization. The CDN overlay is constructed according to a tree-based structure,
where leaves are edge servers, whose role is to serve end users. All other intermediate nodes are
core servers, which are responsible for delivering content to edge servers. Because of their work
load, edge servers are not allowed to transfer content between each other. To realize a P2P
organization at the client side, an edge server has several roles: 1) a regular server for legacy
clients; 2) a tracker for the P2P operation; 3) a seed in the P2P system.
Client side organization. There are two types of clients: legacy clients and P2P clients. Legacy
clients are served in the traditional CDN manner and receive low quality streams. P2P clients are
organized in a hybrid scheme proposed in [XYKL08, ZLZY05] that combines the multi-tree and
mesh topologies. As usual a video is divided into several substreams. Each substream contains
nonconsecutive frames. The peers that host the same substream compose a tree-based overlay.
This ensures upload fairness of each peer. On the other hand, peers also use a mesh-style pull
mechanism to retrieve missing frames for continuous playback. This enhances the robustness of
the network. Moreover, P2P clients are allowed to access high quality videos.
Adaptive scaling and improvements. In the system, each edge server decides whether a new
arrival client should be treated as a legacy client or a P2P client independently. A threshold is preconfigured in every edge server. When the number of clients is below the threshold, all clients
retrieve the content directly from the edge server. If the number of clients exceeds the threshold,
new arrival clients will be redirected to other clients to form a P2P organization. Both the
threshold and the capacity of an edge server are calculated by some parameters, including the
level of the P2P tree overlay, peer arrival rate, peer leaving rate and peer contribution rate. When
an edge server reaches its capacity limitation, new clients will be redirected to a less loaded edge
server.
Fast startup. Startup time is optimized in LiveSky in two ways. First, the buffer size is reduced
to 15 seconds. Second, the first request of a client is always replied directly by an edge server,
thus it is very quick to retrieve startup streams. For upload fairness besides using upload
bandwidth restriction mechanisms, LiveSky also adopts techniques such as STUN [RWHM03] to
ensure the contribution of the clients behind NAT.
Evaluation. The performance is evaluated by scaling adaptation and quality of experience (QoE)
in real-world deployment. The authors use edge servers with 200Mbps bandwidth capacity. If the
media translation rate is 400Kbps, each edge server can afford 1000 end users. For QoE, they
measure several aspects, including startup delay, rebuffering dynamics and stability. They show
that LiveSky can provide a convincing performance.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 33 of 94
D2.10 SoA and Guideline for Technology
4.2.5.3
CNG: ICT-248175
Advantages and shortcomings
P2P organization of end users can significantly lower the workload of edge servers by sharing the
delivery task. In other words, peers contribute their upload bandwidth so that the system can
serve more requests. Moreover, peer-assisted CDNs take advantages of idle resources in the
system, thus the cost-effectiveness of the service provider increases.
Like pure CDN systems, peer-assisted CDNs also use DNS-based redirection when an end user
first accesses the network [PiSt06]. In DNS redirection, a request needs at most three roundtrips to access the content. First, the client sends its request to a local DNS server, and the local
DNS server should access the DNS root server to obtain the address of the authoritative name
server of the content provider. Then, the local DNS server has to ask the name server and CDN
provider to send back the address of a nearby content server. Finally, it incurs the round-trip for
the client to access the content on the designated server. Therefore, the current routing scheme
may cause higher round-trip times for request redirection than the round-trip times to access the
content, if the client, DNS server and the name server are located far away from each other.
Besides the long round-trip overhead, DNS redirection leads to other side effects in CDN. The
most critical problem is the mis-designation of edge server. In DNS redirection, the location of
local DNS server is regarded as the originated location of a request [BCNS03]. However, the end
user is not always close to its local DNS server [MCDR02, HLR07]. Consequently, the end user is
redirected to a remote edge server and causes an inefficient transaction. In P2P organization, the
mis-designation of edge server brings about high cross AS traffic between a supplying peer and a
requesting peer. One way to solve the problem is the recently proposed ALTO/P4P framework
[XYKL08, AlPeYa10], which further adds to the complexity of the network. In the framework,
peers are required to participate in the network management. How to incentivize peers to
cooperate with ALTO/P4P provider is still a problem under discussion.
Furthermore, peer-assisted CDNs still suffer from high service rejection rate during the initial and
peer-assisted stage because of the limited server bandwidth and lack of peer resources [XKRC06,
TSHP05]. Finally, malicious users can intentionally stick to a particular edge server, which can
cause significant degradation of system performance [SuKu08].
4.3 State of the art transmission protocols
In private, well-managed IP networks, the quality of service (QoS) is maintained by calibrating
the end-to-end infrastructure. This is not possible in P2P overlays since they are built on open IP
networks, which are best-effort in nature. Real-time video communication over P2P overlays on
the public Internet mainly relies on the transmission control protocol (TCP). TCP guarantees
reliable transmission of the data by automatic retransmission of lost packets. However, as TCP
requires in order delivery of the data and keeps on retransmitting a packet until an
acknowledgement is received, significant delays may be introduced. Further delays are caused by
the congestion control algorithm used by TCP, which reacts to packet loss by reducing the
transmission rate, leading occasionally to service interruption. This presents a serious drawback
for real-time video communication where the data must be available to the receiver at its
playback time. Lost and delayed packets that miss their playback deadline not only are useless,
they also consume the available bandwidth unnecessarily.
The most common protocol for streaming video content on demand is progressive downloading
where the video content is sent to the client faster than real time. Progressive downloading is
typically done with TCP and requires a large client buffer, which leads to a high start-up latency.
Moreover, the network bandwidth should be much greater than the video bit rate. In a P2P
overlay, the upload bandwidth may be limited, restricting the permissible video bit rate.
An alternative to TCP is to use UDP as the transport protocol and apply application-layer error
control. For example, the Darwin Streaming Server, which is the open-source version of Apple's
QuickTime Streaming Server, uses a simple timeout-based ARQ scheme [Roed07]. The Helix DNA
streaming system, which is the open-source version of RealNetworks Helix streaming suite, also
uses timeout based ARQ [Roed07]. Windows Media uses a selective retransmission scheme. If the
client detects gaps in the packet sequence numbers, it sends a retransmission request to the
server, which retransmits the missing packets. Packet retransmissions are limited to a certain
percentage of the available bandwidth and packets to be retransmitted are prioritized according
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 34 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
to their content. Audio packets are given the highest priority. Video packets close to their playout
deadlines are given the lowest priority, on the presumption that retransmissions are most likely
to miss the playout deadline [Chou07]. VideoLAN, a popular open-source streaming system, uses
either TCP or UDP without packet loss mechanisms [Roed07]. These streaming techniques are
suitable for well-managed networks. However, they face considerable problems in open IP
networks where the packet loss rate may be significant, and the available bandwidth may be
variable. In P2P overlays, in particular, packet loss is not only due to congestion at routers but
also to the heterogeneity in node stay-time duration. The fundamental weakness of these
streaming techniques is their limited adaptivity to network conditions.
More adaptive streaming techniques have been proposed in the research community. The most
popular one is the RaDiO framework of Chou and Miao [ChMi06]. Here each data unit is
characterized by its size, its importance for the video quality, and the delivery deadline after
which it is not useful for online delivery. Data units can be transmitted at a given number of
transmission opportunities. When a data unit is received, an acknowledgement is sent back to the
transmitter. Using the data unit information and the channel statistics, an expected distortion and
an expected transmission rate are obtained for each possible transmission strategy. Optimal
transmission strategies are defined as those minimizing the expected distortion subject to a
constraint on the expected transmission rate. However, the practical relevance of this scheme is
limited as it relies on theoretical assumptions that are not satisfied in practice. For example, the
framework assumes that both packet loss and delay are independent events that can be
accurately modelled.
Most P2P streaming systems use TCP (CoolStreaming, PPStream), a combination of UDP without
error control and TCP (PPLive, TVAnts [TVAnts]), UDP with FEC [PaWaCh03], [CDKNRS03],
[HeHaBo03], [XWPR04], [SDKM07], and ARQ [SeNoGi05]. Another approach is multiple
description coding (MDC) [AkTeCi07], [LWPH07]. However, MDC schemes are rarely used in
practice because they rely on non-standard video coders.
Thomos and Frossard [ThFr07] use network coding with rateless codes for P2P video streaming.
The technique exploits path diversity and lessens the burden of re-encoding on an intermediate
forwarding peer.
Wu and Li [WuLi05],[WuLi08] also use network coding based on rateless codes for P2P live video
streaming. A peer can recover the original video source block by receiving enough encoded
symbols from multiple receivers. As soon as a receiving peer successfully decodes the source
block, it becomes a source and applies rateless coding on the decoded source block to generate
encoded symbols for other peers. To avoid receiving redundant symbols, each peer uses a
different seed for rateless encoding. The authors propose a distributed algorithm for best peer
selection and optimize rate allocation to guarantee minimum delay.
Grangetto, Gaeta, and Sereno [GrGaSe09] propose an improvement to the method of Wu and Li
[WuLi08]. In their method, called ‘Relay and Encode’ (RE), a receiving peer relays the received
encoded symbols immediately. Once it decodes the source block, a rateless code is applied on the
source block and newly produced encoded symbols are sent to its children. The authors show
that RE has a lower delay than the method of [WuLi08]. However, the paper does not consider
the effects of varying channel conditions and does not exploit feedback to minimize bandwidth
usage. Moreover, the protocol is not robust against failures. For example, if one peer cannot
decode the source block, all its descendent peers are affected. A similar system is proposed by
the same authors in [GrGaSe09a]. Here, receiver feedback is used to ask the sender to stop
sending more symbols when the source block is decoded.
In [SDKM07], rateless coding is used to make a P2P VoD system resilient to peer churn. The
source partitions the video into source blocks and applies rateless coding on these blocks. During
a push phase, for each source block, distinct groups of encoded symbols are distributed among a
number of volunteering peers, which may not be interested to watch the video. This pushing can
be done during low network utilization time. In a pull phase, a peer who wants to watch the video
needs to collect a minimum number of distinct encoded symbols from any subset of volunteering
peers.
Setton, Noh, and Girod [SeNoGi06] propose a system for live video streaming over P2P networks
aimed at low latencies and congestion avoidance. Video packets are sent using UDP/IP, and a
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 35 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
scheduling algorithm is used to maximize the received video quality, while minimizing network
congestion.
In [BSWG07], a P2P live video streaming system aimed at low delays is presented. The system
uses the Stanford Peer to Peer Multicast Protocol to build multiple complementary multicast trees,
all originating at the source. The source exploits path diversity and sends different packets over
different multicast trees. The video is compressed with the Scalable Video Coding (SVC) and
packets are sent over UDP/IP. Depending on the available bandwidth and packet loss rates,
intermediate nodes decide how many layers should be sent to their children. A simple ARQ
mechanism is used to deal with packet loss.
One limitation of the UDP protocol is the lack of a congestion control mechanism. Congestion
control with UDP can be realized with the Datagram Congestion Control Protocol (DCCP)
[RFC4340]. DCCP uses an Explicit Congestion Notification (ECN) bit, which is set on by a
congested router. When a receiver receives a packet with an ECN bit set on, it asks the sender to
react to the congestion accordingly. However, most routers disable ECN [DiLo11]. .
Table 3 gives an overview of the transport protocols used in P2P systems.
Streaming System
CoolStreaming [LKLL08]
PPStream [SiFo07]
PPLive [AlMaZh06]
TVAnts [SiFo07]
[PaWaCh03]
SplitStream [CDKNRS03],
PROMISE [HeHaBo03]
[XWPR04]
[SeNoGi05]
[SeNoGi06],
[BSWG07],
[BNSG07]
SopCast [AlMaZh06]
GridMedia [ZZSY07]
iGridMedia [ZhSuYa08]
Prime [MaRe09]
Joost [AlLi09]
Type of Service
Live
Live
Live
Live
Live
Not clear
Not clear
VoD
Live
Live
Transport Protocol
TCP
TCP
A combination of TCP and UDP
A combination of TCP and UDP
UDP with FEC
UDP with FEC
UDP with FEC
UDP with FEC
UDP with ARQ
UDP
Live
Live
Live
Live
Live and VoD
PULSE [PPKB07]
Live
R2 [WaLi07]
Live
BulletMedia [VGKK07]
BEAM [PuGu07]
DirectStream [GSKT08]
HON [ZhLi05]
P2VOD [DoHuTa04]
VMESH[YiJiCh07]
PROP [GCRC04]
BiToS [VIF06]
Push-to-Peer [SDKM07]
VoD
Live
VoD
VoD
VoD
VoD
VoD
VoD
VoD
A combination of TCP and UDP
UDP
UDP
Not clear
UDP and TCP with UDP being the
dominant traffic
UDP for control messages and
TCP for data exchange
UDP or TCP when UDP cannot
be used due to firewall blocking
TCP
TCP
Not clear
Not clear
Not clear
Not clear
Not clear
Not clear
Not clear
Table 3: Transport protocols in P2P systems
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 36 of 94
D2.10 SoA and Guideline for Technology
5
CNG: ICT-248175
Online Collaboration Tools
5.1 Overview
One of the major objectives of CNG is to research and develop online collaboration tools. A lot of
online collaboration applications have been developed and many popular among them, like Skype
and MSN Messenger are standalone “desktop” applications. CNG focuses on the Web collaboration
tools that are mainly used for community activities since they can run on the user’s browser and,
in most of cases, without the need of the installation of any additional software application. The
Web-based online collaboration tools are mainly developed using the Web 2.0 technology. Web
2.0 is a trend in the use of World Wide Web (WWW) technology and web design that aims to
facilitate creativity, information sharing, and, most notably, collaboration among users [WAG10].
“These concepts have led to the development and evolution of Web-based communities and
hosted services, such as social-networking sites, wikis, blogs, and folksonomies”, source:
[WebEs10]. The Web 2.0 technologies are standardized by the WWW Consortium (W3C).
Although the Web 2.0 term suggests a new version of the WWW, it does not refer to an update to
any technical specifications, but to changes in the ways software developers and end-users use
the Web. In the context of CNG, the participation in community activities will not mean closing or
resizing the screen of the game and activating the tool’s window. Instead, the Web 2.0
technologies will integrate the applications environment into one common environment,
incorporating Web applications and internet services in a single framework where all services will
be available through the CNG Server and the game environment.
The Web 2.0 based collaboration applications may include instant messaging, audio and video
chat, file sharing and online voting and polling [Tech08]. For audio/video chat the Flash software
platform [Adobe2] is commonly deployed. Other solutions that are commonly used are the Java
Applet technology or the use of standalone applications which run on Web browser and offers
interoperability over different platforms. For instant messaging, online polling/voting and file
sharing, Asynchronous JavaScript and XML (Ajax) are commonly used [Kest09]. “Ajax allows the
Web applications to retrieve data from the server asynchronously in the background without
interfering with the display and behaviour of the existing page”, source [AP10]. The use of Ajax
techniques has led to an increase in interactive or dynamic interfaces on webpages [Ajax10].
Regarding the WWW client-server communication, most of the Web 2.0 applications are based on
Simple Object Access Protocol (SOAP) [Gudg07]. SOAP is a protocol specification for the
exchange of structured information in the implementation of Web services in computer networks.
SOAP relies on eXtensible Markup Language (XML) as its message format, and usually relies on
other Application Layer protocols, most notably the Remote Procedure Call (RPC) and HTTP.
Finally, the current trend for the Web and Internet application servers, which are the entry to all
online features, is towards free and open source technologies. Apache HTTP Server [Apache10] is
a reliable solution for the provision of the online collaboration services. A very common
combination of technologies is Apache HTTP Server, PHP language with the support of MySQL
[Mysql] database management system. Another commonly used server technology is the Tomcat
Server [Tomc10].
The online collaboration tools will be available through the CNG Server. The in-game experience
will include mostly real-time communication tools like voice and video chat, messaging, polling
and file sharing. Additionally, CNG intends to extend the benefits of Web 2.0 applications into the
field of internet applications in order to enhance the social presence and to offer a more realistic
way of interaction between the users. Most of the user’s interface will be developed according to
the Web 2.0 programming model.
In the following sections, the state-of-the art for the above technologies is described in more
detail.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 37 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
5.2 State of the art
In the following sections, the state of the art of the technologies related to online collaboration
tools are described in detail.
5.2.1 Web 2.0 services
The term "Web 2.0" [Tech08] is commonly associated with Web applications that facilitate
interactive information sharing, interoperability, user-centred design, and collaboration on the
World Wide Web. A Web 2.0 site allows its users to interact with each other as contributors to the
website's content, in contrast to websites where users are limited to the passive viewing of
information that is provided to them. “Examples of Web 2.0 include Web-based communities,
hosted services, Web applications, social-networking sites, video-sharing sites, wikis, blogs,
mash-ups, and folksonomies”, source [Web10].
A very important feature that a Web 2.0 service can offer is online collaboration. Collaboration in
technology encompasses a broad range of tools that enable groups of people to work together
including social networking, instant messaging, team spaces, Web sharing, audio conferencing,
video, and telephony.
5.2.1.1
Web 2.0 technologies
5.2.1.1.1 Actionscript, Flex and Flash
Adobe Flash (formerly Macromedia Flash) [Adobe2] is a multimedia platform used to add
animation, video, and interactivity to webpages. Flash is frequently used for advertisements and
games. More recently, it has been positioned as a tool for the so-called "Rich Internet
Application" (RIA). Flash manipulates vector and raster graphics to provide animation of text,
drawings, and still images. It supports bidirectional streaming for audio and video chat. Flash
contains an Object-oriented language called ActionScript. Flash content may be displayed on
various computer systems and devices, using Adobe Flash Player, which is available free for
common Web browsers, some mobile phones and a few other electronic devices (using Flash Lite)
[AcSc10]. The current version for Adobe Flash Player is version 10, released in February 2010.
In order to build Adobe Flash applications, Adobe Flex [Adobe3], a part of Adobe Flash Platform is
used. Adobe Flex is a software development kit released by Adobe Systems for the development
and deployment of cross-platform rich Internet applications based on the Adobe Flash platform.
Flex applications can be written using a proprietary IDE called Adobe Flash Builder or by using the
freely available Flex compiler from Adobe. In March 2010, Adobe released the Flex 4 SDK under
the open source Mozilla Public License and so Flex applications can be developed using any
standard IDE, for example Eclipse.
The scripting language that is used primarily for the development of websites and software using
the Flash Platform is ActionScript [Adobe1] (in the form of SWF files embedded into webpages).
ActionScript was initially designed for controlling simple 2D vector animations made in Adobe
Flash (formerly Macromedia Flash). Later versions added functionality allowing for the creation of
Web-based games and rich Internet applications with streaming media (such as video and audio).
Its current version is 3.
5.2.1.1.2 JavaScript and Ajax
JavaScript [Hoeh06] is another scripting language that is widely used in Web applications. It has
been developed by Netscape and it has inherited Java’s innovation although it is simpler.
JavaScript is widely used for enhancing WWW pages with frames, forms and interactive content.
Furthermore, it can be used to validate data before they are submitted to the server. JavaScript
can be client or server side, but both share the same core language. The latest version of the
language is JavaScript 1.8.1.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 38 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
“The advent of Ajax brought JavaScript to the spotlight and brought more professional
programming attention”, source: [Java10]. As it is mentioned in [Enter10] “the result was a
proliferation of comprehensive frameworks and libraries, improved JavaScript programming
practices, and increased usage of JavaScript outside of Web browsers, as seen by the
proliferation of server-side JavaScript platforms”.
Ajax (Asynchronous JavaScript and XML) [Kest09] was brought to the spotlight and gained
widespread usage since the advent of Ajax. Ajax is a group of interrelated Web development
techniques used on the client-side to create interactive Web applications. “With Ajax, Web
applications can retrieve data from the server asynchronously in the background without
interfering with the display and behaviour of the existing page”, source: [AP10]. In [Ajax10] it is
indicated that “the use of Ajax techniques has led to an increase in interactive or dynamic
interfaces on webpages. Data is usually retrieved using the XMLHttpRequest object”.
In 1998, Microsoft introduced Remote Scripting, a technology that allowed scripts running inside
a browser, e.g., through a Java Applet, to exchange information with a server. Shortly after, in
1999, the XMLHttpRequest object was created as an ActiveX control in Internet Explorer 5. Other
browsers (e.g., Mozilla, Safari) soon followed with their own implementation of this object. The
XMLHttpRequest object can be accessed in JavaScript to transfer text in various formats, such as
XML (for example SOAP messages), HTML, plain text, JavaScript Object Notation (JSON), and
JavaScript, between the server and the browser synchronously at the background without the
need of a page refresh.
Like DHTML and LAMP, Ajax is not a technology in itself, but a group of technologies. Ajax uses a
combination of HTML and Cascading Style Sheets (CSS) to mark up and style information. The
Document Object Model (DOM) is accessed with JavaScript to dynamically display, and to allow
the user to interact with the information presented. “JavaScript and the XMLHttpRequest object
provide a method for exchanging data asynchronously between browser and server to avoid full
page reloads”, source: [AP10]. Specifically, the following technologies are required:
•
HTML or XHTML and CSS for presentation
•
The DOM for dynamic display of and interaction with data
•
XML for the interchange of data, and XSLT for its manipulation
•
the XMLHttpRequest object for asynchronous communication
•
JavaScript to bring these technologies together
Since then, however, there have been a number of developments in the technologies used in an
Ajax application, and the definition of the term Ajax. In particular, it has been noted that:
•
JavaScript is not the only client-side scripting language that can be used for implementing
an Ajax application. Other languages such as VBScript are also capable of the required
functionality. However JavaScript is the most popular language for Ajax programming due
to its inclusion in and compatibility with the majority of modern Web browsers.
•
XML is not required for data interchange and therefore XSLT is not required for the
manipulation of data. JavaScript Object Notation (JSON) is often used as an alternative
format for data interchange, although other formats such as preformatted HTML or plain
text can also be used.
According to [Mesbah09], “Ajax potentially brings an end to the classical click-and-wait style of
Web navigation, providing the responsiveness and interactivity end users expect from desktop
applications. In a classical Web application, the user has to wait for the entire page to reload to
see the response of the server. With Ajax, however, small delta messages are requested from the
server, behind the scenes, by the Ajax engine and updated on the current page through
modification to the corresponding DOM-tree as depicted in Figure 10. This is in sharp contrast to
the classical multi-page style, in which after each state change a completely new DOM-tree is
created from a full page reload. Ajax gives a vehicle to build Web applications with a single-page
Web interface, in which all interactions take place on one page. Single-page Web interfaces can
improve complex, non-linear user workflows by decreasing the number of click trails and the time
needed to perform a certain task, when compared to classical multi-page variants”.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 39 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 10: Classic Web application model vs. asynchronous interaction model of a
typical Ajax application (source: [Garret05]).
5.2.1.1.3 HTML and CSS
Hypertext Markup Language (HTML) [RaHoJa99] is the most common language for publishing
hypertext, platform independent documents in WWW. It supports text, multimedia and hypertext
features, scripting languages, style sheets, printing facilities and documents. Its current version
is 4.01, published on 24 December 1999 as a W3C recommendation. According to [HtCs10] HTML
gives authors the means to:
•
“Publish online documents with headings, text, tables, lists, photos, etc.
•
Retrieve online information via hypertext links, at the click of a button.
•
Design forms for conducting transactions with remote services, for use in searching for
information, ordering products, making reservations, etc.
•
Include spreadsheets, video clips, sound clips, and other applications directly in their
documents”.
HTML5 is currently under development as the next major revision of the HTML standard. Like its
immediate predecessors, HTML 4.01 and XHTML1.1, HTML5 is a standard for structuring and
presenting content on the WWW. [Html10] mentions that “the new standard incorporates
features like video playback and drag-and-drop that have been previously dependent on thirdparty browser plug-ins such as Adobe Flash, Microsoft Silverlight, and Google Gears”.
Cascading Style Sheets (CSS) [BCHL09] is a language for calling fonts by name, controlling text
size, specifying bolds and italics, and adding special effects. CSS allows the WWW author to
control the layout, to make smaller, faster pages, and to easily maintain many pages at once.
“CSS gives lots of control over how characters, words, and lines can be spaced relative to one
another. These CSS properties give power over the space between words and letters, the vertical
spacing between lines of text, the alignment of text, margins and padding, borders, and floating
elements”, source: [CssTut10].
The same source also mentions that “Cascading Style Sheets, level 1 (CSS1) became a W3C
Recommendation in December 1996. It describes the CSS language as well as a simple visual
formatting model. CSS2, which became a W3C Recommendation in May 1998, builds on CSS1
and adds support for media specific style sheets (e.g. printers and aural devices), downloadable
fonts, element positioning and tables. The CSS Mobile Profile specification became a W3C
Candidate Recommendation in Oct 2001. CSS3 is currently under development”.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 40 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
5.2.1.1.4 Ajax development frameworks
A nice description of Ajax frameworks exists in [AF10] where an Ajax framework [Ajax
Frameworks] is defined as “a framework that helps to develop Web applications that use Ajax, a
collection of technologies used to build dynamic webpages on the client side. Data is read from
the server or sent to the server by JavaScript requests. However, some processing at the server
side may be required to handle requests, such as finding and storing the data. This is
accomplished more easily with the use of a framework dedicated to processing Ajax requests. The
goal of the framework is to provide the Ajax engine and associated server and client-side
functions”.
Echo2 (source: [Echo10])
“Echo2 is a pure Java framework for developing Ajax-based Web applications that can run in any
servlet container. Developers using Echo2 typically do not need to know any HTML or JavaScript
code, unless they are extending the framework. As a purely server-side product, Echo2 processes
all client interactions on the server and sends results back to the browser in a DOM format. The
Echo2 client engine then transforms the DOM into HTML.
Since it is based on pure Java, Echo2 abstracts from the developer all the nuances of HTML,
JavaScript, and traditional JSP-based application development. This allows Java programmers to
build Web applications quickly and easily. Echo2 also instantly introduces Ajax capabilities into
the application; the developer does not have to worry about the plumbing of the Ajax
communication.
Along with these advantages, however, Echo2's server-side nature makes it slower than
equivalent client-side frameworks. For this reason, many argue that Echo2 is better suited for
intranet applications that do not require speed and bandwidth as much. Yet benchmark tests
have shown that Echo2 performance is optimized to such a degree that it can serve all kinds of
Web applications.”
Google Web Toolkit (GWT)
According to the description of GWT found in [GWT10] “the Google Web Toolkit (GWT) is an Ajax
development tool from Google, targeted for Java developers. Web applications (both GUIs and
RPCs) are written in Java using the GWT API. The Java files are then compiled into compact,
obfuscated, browser-specific JavaScript files. A small bit of loading JavaScript determines which
browser-specific script file gets used depending on the user-agent. The API library is licensed
under the Apache License 2.0. The GWT-Compiler was originally licensed under a proprietary
license, but the most recent version is also licensed under the Apache 2.0 License. Figure
11depicts the remote procedure call used by GWT”.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 41 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 11: Remote Procedure Call by using Google Web Toolkit (source: [GWT10]).
Other popular Ajax frameworks are shown in Table 4.
JavaScript Frameworks
•
AJAX.OOP: an open source framework, providing an OOP-style coding engine and
Ajax requests-handling functionality to create Web 2.0 components.
•
Ample SDK: standards-based Ajax framework, enabling Rich Internet application
development
•
Bindows: an enterprise Ajax framework, with Windows look and feel.
•
Clean AJAX: framework also able to deal with Web services
•
qooxdoo: is a comprehensive Ajax application framework. Leveraging objectoriented JavaScript allows developers to build impressive cross-browser
applications.
•
Smartclient: provides a zero-install DHTML/Ajax client engine, rich user interface
components & services and client-server data binding systems.
•
Spry framework: an open source Ajax framework developed by Adobe which is
used in the construction of Rich Internet applications.
Java Frameworks
•
Apache Wicket: an open-source Java server-centric framework supporting Ajax
development
•
AribaWeb: an open-source framework with Reflection and Object-Relational
mapping
•
Backbase: enterprise Ajax for JSF
•
DWR: Direct Web Remoting
•
Echo: for Ajax servlets
•
Vaadin: a server-side Java widget framework utilizing GWT
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 42 of 94
D2.10 SoA and Guideline for Technology
Java
CNG: ICT-248175
•
ItsNat: a server-side
applications
framework
focused
on
single-page
interface
•
OpenXava: model-driven framework for creating Ajax business applications
•
RAP: the Eclipse Rich Ajax Platform
•
Tersus: an open-source platform for developing rich Web applications by visual
programming
C++ Frameworks
•
Wt: a C++ Web Toolkit
.NET
•
ASP.NET AJAX
PHP
•
Quicknet: an Ajax framework that provides secure data transmission, uses PHP
on the server side
•
Sajax: a PHP framework with a lot of functions, easy to integrate functions
yourself
•
Xajax: which uses only the XML format, on the server side
Python
•
Pyjamas: a widget library with a Python to JavaScript compiler
Table 4: Popular Ajax Frameworks (source: [AFList10]).
5.2.1.2
Web protocols and security
5.2.1.2.1 Protocols for RPC
A Remote Procedure Call (RPC) is an Inter-process communication that is widely used in Web 2.0
applications. It allows a computer program to cause a subroutine or procedure to execute in
another address space (commonly on another computer on a shared network) without the
programmer explicitly coding the details for this remote interaction. That is, the Web programmer
writes essentially the same code whether the subroutine is local to the executing program, or
remote. When the software in question uses object-oriented principles, RPC is called remote
invocation or remote method invocation.
Simple Object Access Protocol (SOAP) is a lightweight protocol for exchange of information in
a decentralized, distributed environment. “It is a way for a program running in one kind of
operating system to communicate with a program in the same or another kind of operating
system by using the WWW's Hypertext Transfer Protocol (HTTP) and the Extensible Markup
Language (XML) as the mechanisms for information exchange. Since Web protocols are installed
and available for use by all major operating system platforms, HTTP and XML provide an already
at-hand solution to the problem of how programs running under different operating systems in a
network can communicate with each other. SOAP specifies exactly how to encode an HTTP header
and an XML file so that a program in one computer can call a program in another computer and
pass it information. It also specifies how the called program can return a response. SOAP Version
1.2 is the latest version of this protocol released in April 2007”, source: [Gudg07].
XML-RPC is described in [Xmlrpc] as “an RPC protocol that uses XML to encode its calls and
HTTP as a transport mechanism. It works by sending an HTTP request to a server implementing
the protocol. The client in that case is typically software wanting to call a single method of a
remote system. Multiple input parameters can be passed to the remote method, and one return
value is returned. The parameter types allow nesting of parameters into maps and lists, thus
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 43 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
larger structures can be transported. Therefore XML-RPC can be used to transport objects or
structures both as input and as output parameters. Identification of clients for authorization
purposes can be achieved using popular HTTP security methods. Basic access authentication is
used for identification; HTTPS is used when identification (via certificates) and encrypted
messages are needed. Both methods can be combined”.
JSON-RPC is similar to XML-RPC.
5.2.1.2.2 Instant messaging protocols
Extensible Messaging and Presence Protocol (XMPP) [Sain04] is an open, XML-based
protocol for near real-time extensible messaging and presence. “It is the core protocol of the
Jabber Instant Messaging and Presence technology which is currently deployed on thousands of
servers across the Internet and is used by millions of people worldwide. The XMPP working group
shall adapt the XMPP for use as an IETF Instant Messaging and Presence technology. The first IM
service based on XMPP was Jabber.org, which has operated continuously since 1999 and has
offered free accounts to users of XMPP. In February 2010, the social-networking site Facebook
opened up its chat feature to third-party applications via XMPP. The Facebook developers' site
notes that Facebook Chat does not actually run an XMPP server internally, but merely presents an
XMPP interface to clients; consequently, some server-side features like roster editing cannot be
done via XMPP”, source: [Jabber10].
In addition to Google Talk, many other public IM services use XMPP, including Live Journal's "LJ
Talk and Nokia's Ovi. Furthermore, several enterprise IM software products that do not natively
use XMPP nevertheless include gateways to XMPP, including IBM Lotus Sametime and Microsoft
Office Communications Server (OCS).
Internet Relay Chat (IRC) [OiRe93], as mentioned in [IRC10], “is a form of real-time Internet
text messaging (chat) or synchronous conferencing. It is mainly designed for group
communication in discussion forums, called channels, but also allows one-to-one communication
via private message as well as chat and data transfers via Direct Client-to-Client. It is an open
protocol that uses TCP and optionally TLS. An IRC server can connect to other IRC servers to
expand the IRC network. Users access IRC networks by connecting a client to a server. There are
many client implementations such as mIRC or XChat and server implementations, e.g. the
original IRCd. Most IRC servers do not require users to register an account but a user will have to
set a nickname before being connected”.
5.2.1.2.3 Audio and video delivery protocols
Voice over IP (VoIP) is a general term for a family of transmission technologies for delivery of
voice communications over IP networks such as the Internet or other packet-switched networks.
Additionally, video over IP systems use some existing standard video codec to reduce the
program material to a bitstream (e.g., an MPEG transport stream), and then to use an Internet
Protocol (IP) network to carry that bitstream encapsulated in a stream of IP packets. This is
typically accomplished using some variant of RTP protocol.
In the following paragraphs, the main protocols used for audio/video delivery and audio video
streaming for audio and video chat applications, are presented in more detail.
Real Time Messaging Protocol (RTMP) [AdobeRTMP] is a system for delivering on-demand
and live media to Adobe Flash applications. RTMP supports video in FLV and H.264
(MP4/MOV/F4V) formats and audio in MP3 and AAC (M4A) formats. As it is described in
[AdobeRTMP] “RTMP offers several advantages over regular HTTP video download:
•
RTMP can do live streaming, people can watch video while it is being recorded.
•
With RTMP, viewers can seek to not-yet-downloaded parts of a video. This is especially
useful for longer-form content (> 10 minutes).
•
Videos delivered over RTMP (and over secure RTMP - RTMPS) are harder to be sniffered
than videos delivered over regular HTTP”.
Real-time Transport Protocol (RTP) [SCFJ03] defines a standardized packet format for
delivering audio and video over the Internet. In [Rtmp10] it is mentioned that RTP “was
developed by the Audio-Video Transport Working Group of the IETF, first published in 1996 as
RFC 1889 and superseded by RFC 3550 in 2003. RTP is used extensively in communication and
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 44 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
entertainment systems that involve streaming media, such as telephony, video teleconference
applications and Web-based push to talk features. For these it carries media streams controlled
by H.323, MGCP, Megaco, SCCP, or Session Initiation Protocol (SIP) signalling protocols, making
it one of the technical foundations of the Voice over IP industry. RTP is usually used in
conjunction with the RTP Control Protocol (RTCP)”.
Other protocols for media streaming are: Real Time Media Flow Protocol, Real Time Streaming
Protocol, HTTP Live Streaming, and Microsoft Silverlight.
5.2.1.2.4 Security protocols
Hypertext Transfer Protocol Secure (HTTPS) [Resc00] is an extension to the HTTP protocol
to support sending data securely over the WWW. According to [Https10] “Not all Web browsers
and servers support HTTPS. HTTPS is HTTP traffic provided through a Secure Sockets Layer (SSL)
secured channel. Whereas SSL is designed to establish a secure connection between two
computers, HTTPS is designed to send individual messages securely. In the context of a Web
application, the HTTPS client authentication requires the client to possess a Public Key Certificate
(PKC). If client authentication is specified, the Web server will authenticate the client using the
client’s public key certificate. HTTPS Client Authentication is a more secure method of
authentication than either basic or form-based authentication. It uses HTTPS, in which the server
authenticates the client using the client’s PKC. SSL technology provides data encryption, server
authentication, message integrity, and optional client authentication for a TCP/IP connection. The
public key certificate is issued by a trusted organization, which is called a certificate authority
(CA).”
Transport Layer Security (TLS) and its predecessor, SSL, are according to [Dier08]
“cryptographic protocols that provide security for communications over networks such as the
Internet. TLS and SSL encrypt the segments of network connections at the Transport Layer endto-end. TLS version 1.2 is the latest version of this protocol released in August 2008”.
5.2.2 Web 2.0 collaboration tools
5.2.2.1
Instant messaging
Instant messaging software is mainly based on Ajax technology. A typical Ajax chat application
uses a database (MySQL) and Ajax to store and retrieve the users' messages and pass them
between the client and the server. The chat window contacts the server periodically to send and
retrieve the newest posted messages from the server to each user.
In the rest of the paragraph, we present some typical instant messaging software examples.
AJAX Chat Platform (http://blueimp.net/ajax)
According to the description found in [AC10] “AJAX Chat is a free and fully customizable open
source Web chat software implemented in JavaScript, PHP and MySQL (Figure 12). Ajax chat also
supports voice chat using Flash, Socket support using Flash on client-side and Ruby on serverside”.
Both “text chatting” and “voice chatting” use the client-server model. This means that in order for
two clients to communicate with each, other intermediate servers are used (Jabber servers
[Basc06]), as opposed to the P2P model where the intermediate server is used only for
introducing peers.
“AJAX Chat can easily be integrated with phpbb, MyBB, PunBB, SMF, vBulletin and other PHP
community software”, source: [AC10].
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 45 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 12: Ajax-based chat platform.
Google Talk (http://www.gmail.com)
As it is described in [GT10] “on February 7, 2005, Gmail received chat functionality, using Ajax
for server–browser communication, and was integrated with Google Talk. Users can send instant
messages to other Gmail users. As it works within a browser, Google Talk does not need to be
downloaded to send instant messages to Gmail users”.
Gmail chat also supports audio and video chatting. For that, the users have to download a Gmail
voice and video chat plug-in. The chatting is peer to peer, in the sense that the data exchanged
by the users during the chat session do not need to pass through a chat server [GT10].
ChatZilla (https://addons.mozilla.org/el/firefox/addon/16/)
“ChatZilla is a clean, easy to use and highly extensible IRC client, built on the Mozilla platform. It
is written entirely in JavaScript, supported by XUL, CSS and HTML. It is designed to run on any
platform on which Mozilla runs, such as Mac OS, Linux, BSD, Microsoft Windows, Solaris, IRIX,
BeOS, AIX, HP-UX, and OS/2. It currently supports most standard features of IRC clients,
including connections to multiple servers, a built-in list of standard networks, easy searching and
sorting of available channels, logging, Direct Client-to-Client (DCC) chat and file transfers, plus
easy customization with scripts and styles. DCC is an IRC-related sub-protocol enabling peers to
interconnect using an IRC server for handshaking in order to exchange files or perform nonrelayed chats. Once established, a typical DCC session runs independently from the IRC server. It
also supports IPv6, SSL, and UTF-8. By default, JavaScript is used as the scripting language.
Messages are styled using CSS, which means that the style of the client can be easily changed,
including one that places photographs next to the names of users who speak in the channel”,
source: [DCC10]. DCC, which allows users to transfer files and chat directly between one
another, is supported but with no resume for file transfers.
ChatZilla is currently included with SeaMonkey as well as being available for Mozilla Firefox as an
optional extension.
Mibbit (http://www.mibit.com)
Mibbit is described in [Mibbit10] as “a Web-based client for modern Web browsers that supports
IRC, Yahoo Messenger, and Twitter. Unlike typical Web-based IRC clients, like ChatZilla, Mibbit
makes use of a client–server design model. The user interface is written in HTML and JavaScript
using Ajax programming techniques. The client's backend is written completely in Java and
operates independently of the Web server in a standalone fashion on the Mibbit server. This
design differs from Web browser component clients or Java applet based IRC clients such as
PJIRC and ChatZilla that operate entirely from within the Web browser. It also differs from
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 46 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
server-based Web proxy IRC clients such as CGI:IRC where all processing takes place on a
remote server”.
Java/Javascript chat (http://www.php-development.ru/software/chat-java.php)
“Java/JavaScript Chat is a chat software that allows the users of a website or a private network to
communicate with each other”, source: [JJC10]. The software includes
•
Java/JavaScript client application,
•
PHP/MySQL chat server.
5.2.2.2
File sharing
Some typical examples of Web-based file sharing software are presented below.
Meebo (http://www2.meebo.com/)
Meebo is an Ajax-based tool for using multiple instant messaging services simultaneously. A basic
characteristic of Meebo is that is enables file sharing (Figure 13).
Meebo also offers video, audio chat capabilities, text chat, and enables users to play games with
each other.
Figure 13: Meebo file sharing interface.
iGoogle/Orkut chat (http://www.google.com/ig and www.orkut.com/)
Google has added a nifty feature in Google Chat on iGoogle and Orkut which allows users to send
files to friends. File transfer works directly in iGoogle and orkut, so files can be sent without the
need to be saved and attached to an email.
FlashComs Community Chat (http://www.flashcoms.com/products/community_video_chat/)
The Community Chat of FlashComs is a flash-based many-to-many video chat application. It
requires a streaming media server. The flash media servers supported are:
•
Adobe Flash media server (FMS3 interactive edition / FMS2)
•
Wowza media server
•
Red5.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 47 of 94
D2.10 SoA and Guideline for Technology
5.2.2.3
CNG: ICT-248175
Audio and video chat
Audio and video chat applications are based on the Flash Platform. Some typical examples of
Web-based audio and video chat tools are presented below.
AVChat 3 (http://avchat.net/)
AVChat 3 is a Flash Video Chat Application that can be installed on a website. AVChat 3 supports
one to one, one to many and many to many video chat scenarios. The quality is fully adjustable.
In order to send audio, video and text between users, AVChat 3 (like most Flash video chat
software) needs a media server. AVChat 3 supports Flash Media Interactive Server, Red5 and
Wowza. Rtmpd support is in progress. As a result, the audio and video data exchanged between
the users pass through the Flash multimedia server, so the video chatting does not occur in a P2P
manner. The interface of AVChat 3 is illustrated in Figure 14.
Figure 14: AVChat 3.0 video application service.
Red5Chat (http://www.red5chat.com/)
Red5Chat is a full FLASH video chat with audio and video support made using Open Source RED5
technology and Flash. Red5chat can be downloaded and installed in a Red5 Server. Some
important features supported are
•
Video chat
•
Private Messages
•
Registration process
•
Fully customizable design
•
Admin users
•
Up to 4 video chat participants
•
Rooms
MeBeam (http://www.mebeam.com/)
MeBeam is a video chat website, allowing anyone to create video conference rooms for up to 18
people. The website uses Adobe Systems Flash Player to display video and access the user's
webcam. It works across Windows, Linux and Macintosh, along with any Web browser that
supports Flash 8.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 48 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Peer to Peer Flash via Stratus (http://apps.facebook.com/stratuschat/)
Adobe Stratus is a hosted beta service that uses new Real Time Media Flow Protocol (RTMFP)
functionality in Flash Player 10 to connect directly instead of having to round trip between the
server and the instance of the player. In source [Rtmfp10] RTMFP is described as “a proprietary
protocol developed by Adobe Systems. RTMFP enables direct P2P communication between
multiple Adobe Flash Players and applications. The most important features of RTMFP include low
latency, end-to-end peering capability, security and scalability. These properties make RTMFP
especially well-suited for developing real-time collaboration applications by not only providing
superior user experience but also reducing cost for operators”. It is worth mentioning that in
order to have P2P communication between two clients when Flash technology is applied the only
way is with the use of the stratus.
Web Voice Chat 1.2 (http://www.fileguru.com/Web-Voice-Chat/info)
Web Voice Chat consists of a Public Room with textchat and Private Rooms for two users for faceto-face voice and text communication. The connection between users in the Private Room can be
created as P2P or via server. Voice communication is implemented in full-duplex mode. Web
Voice Chat requires 28.8kbps Internet connection. So, usual dial-up Internet connection is
enough for successful work.
Web voice chat is client-server application with the client software being a Java applet, something
that makes Web voice chat easily integrated in a website.
123 Live Help Chat Server Software 1.0 (http://www.123flashchat.com)
123 Live Help Chat Server Software offers software to one-to-one chat with website visitors, to
promote sales with online customer support. It constitutes of a Java chat server and a Flash live
chat client.
Table 5 lists some widely used chat tools and the underlying technology.
Instant
Messaging
Tools
Audio & Video
Chat
File Sharing
Protocols
CGI:IRC
Perl/CGI
Not supported
Not supported
IRC
PJIRC
Java Applet
Not supported
Not supported
IRC
qwebirc
Ajax Applet
Not supported
Not supported
IRC
Parachat
Java applet
Not supported
Not supported
Jabber/XMPP
Pichat
Ajax
Not supported
Not supported
Unknown
Facebook Chat
Ajax
Not supported
Not supported
Jabber/XMPP
eBuddy
Ajax
Not supported
Not supported
Jabber/XMPP
Omegle
Ajax
Flash
Not supported
Jabber/XMPP
webcamnow
Ajax
Flash
Not supported
Jabber/XMPP
JatChat
Java Applet
Java applet
Not supported
Jabber/XMPP
campfire
Ajax
Not supported
Ajax
Unknown
Single Operator
Ajax Chat
Ajax
Not supported
Ajax
Unknown
Table 5: Popular chat tools.
5.2.2.4
Online voting and polling
Some typical examples of Web-based collaborative voting and polling tools are presented below.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 49 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
VotingPoll (http://acidjs.wemakesites.net/voting-poll.html)
VotingPoll is a Web 2.0 component for creating voting polls on webpages. It is fully Ajax-driven
and extremely easy to integrate. Voting poll is illustrated in Figure 15.
Before Voting
After Voting
Figure 15: VotingPoll is an Ajax based voting application.
DPolls (http://ajaxian.com/archives/dpolls-an-ajax-pollster)
DPolls is an Ajax application in which interaction occurs in-page, without any need for refresh. A
user that chooses an option will see a progress indicator appear, followed by an animation
showing the results growing to their rightful size.
XML Flash Voting Poll (http://www.flabell.com/flash/XML-Flash-Voting-Poll-39)
XML Flash Voting Poll is a fully customizable XML Flash Voting Poll, built with support for an
unlimited number of answers.
Table 6 lists some widely used voting and polling applications and the technology that is utilized
for their implementation.
Tools
Poll4Web
Flash Web Poll
ABPollMaster Polling
Fly06 Poll
Technologies
Flash
Flash
Java Applet
Ajax
Table 6: Popular voting and polling applications.
5.2.2.5
Blogging
Below we present some important tools used for the building of online blogging applications.
WordPress (http://wordpress.org/)
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 50 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
WordPress is an open source content management system, often used as a blog publishing
application powered by PHP and MySQL (Figure 16). “It has many features including a plugin
architecture and a templating system”, source: [WP10]. “Used by over 300 of the 10,000 biggest
websites, WordPress is the most popular blog software in use today”, source: [WPD10].
Figure 16: Example of a Wordpress blog.
[WP10] also mentiones that “WordPress has a templating system, which includes widgets that
can be rearranged without editing PHP or HTML code, as well asthemes that can be installed and
switched between. The PHP and HTML code in themes can also be edited for more advanced
customizations”. WordPress also features integrated link management; a search engine-friendly,
clean permalink structure; the ability to assign nested, multiple categories to articles; and
support for tagging of posts and articles. Automatic filters that provide for proper formatting and
styling of text in articles (for example, converting regular quotes to smart quotes) are also
included [Opensources10]. “WordPress also supports the Trackback and Pingback standards for
displaying links to other sites that have themselves linked to a post or article. Finally, WordPress
has a rich plugin architecture which allows users and developers to extend its functionality
beyond the features that come as part of the base install”, source: [WP10].
Movable Type (http://www.movabletype.org/)
Movable Type is a weblog publishing system developed by the company Six Apart. On 12
December 2007, Movable Type was re-licensed as free software under the GNU General Public
License [MT10].
The current version is 5.02. Among the futures currently supported by Movable type are
•
Multiple weblogs
•
Standalone content pages
•
Asset and File Manager
•
User and user role management
•
Customizable templates
•
Tags
•
Categories, sub-categories and multiple categories for articles
•
TrackBack
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 51 of 94
D2.10 SoA and Guideline for Technology
•
CNG: ICT-248175
Bookmarklets
The application supports static page generation (in which files for each page are updated
whenever the content of the site is changed), dynamic page generation (in which pages are
composed from the underlying data as the browser requests them), or a combination of the two
techniques. Movable Type optionally supports the Lightweight Directory Access Protocol (LDAP)
for user and group management and automatic blog provisioning [MTF10].
Movable Type is written in Perl, and supports storage of the weblog's content and associated data
within MySQL, PostgreSQL, and SQLite (support for Berkeley DB was dropped in version 4, and
support for PostgreSQL and SQLite will be dropped in version 5). Dynamic page generation is
handled by Smarty [MT10].
Table 7 lists some widely used voting and polling applications and the technology that is utilized.
Tools
Kontain
Blogsmith
TypePad
Gawker bespoke software
Technologies
Flash
Ajax
Ajax
Ajax
Table 7: Popular blogware examples.
5.2.3 Web 3.0 and semantic Web
For most experts, Web 3.0 is perceived as the “semantic Web”, an evolving extension of the
WWW in which Web content can be expressed not only in natural language, but also in a form
that can be understood, interpreted and used by software agents, thus permitting them to find,
share and integrate information more easily. The state of the art technology that can achieve the
above uses reusable and remotely queryable formats [Herman07]. Some of these include
“Resource Description Framework (RDF), a variety of data interchange formats (e.g. RDF/XML,
N3, Turtle, N-Triples), and notations such as RDF Schema (RDFS) and the Web Ontology
Language (OWL), all of which are intended to provide a formal description of concepts, terms,
and relationships within a given knowledge domain” source: [SW10]. Major websites are going to
be transformed into Web services and will effectively expose their information to the world
[Iskold10]. The transformation will happen in one of two ways; some websites will follow the
example of Amazon [Amazon], Delicious [Delicious] and Flickr [Flickr] and will offer their
information via a REST API. Others will try to keep their information proprietary, but it will be
opened via mashups created using services like Dapper [Dapper], Yahoo! Pipes [Yahoo], etc. The
net effect will be that unstructured information will give way to structured information paving the
road to more intelligent computing.
The semantic organization of the Web 3.0 will lead to a more “personalized Web” where the Web
will be adapted to the user and not the other way around. By paying attention (and ignoring)
things users come across on the Web, users implicitly generate attention data that potentially is
of great value to companies let alone themselves. Attention data will be used by websites to
create a more personalized and immersive experience, and to recommend things that are
relevant to the users. In the context of Web 3.0 the information collected will be distributed
virally: literally by social networks, by email, etc. [Agar09]. Thus, Web 3.0 will be all about the
growth of smaller vertical social networks. Some examples of Web 3.0 social networks include
Wink [Wink] which is a people-focused search engine that scans social networks, blogs etc.,
Google’s OpenSocial [Opensocial] which brings social networks together via useful applications
and Facebook’s Beacon which is a part of Facebook's advertisement system that sends data from
external websites to Facebook, ostensibly for the purpose of allowing targeted advertisements
and allowing users to share their activities with their friends.
5.2.4 Server technology
A very important aspect of the technology of online collaboration tools is the server side
technology. In this section, we provide an overview of the server side architecture and we
describe the state of the art for the server side components, along with the state of the art of
their technologies.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 52 of 94
D2.10 SoA and Guideline for Technology
5.2.4.1
CNG: ICT-248175
Server architecture
Multi-tier architecture (or n-tier architecture) is a client–server architecture in which the
presentation, the application processing, and the data management are logically separate
processes. “N-tier architecture provides a model for developers to create a flexible and reusable
application. By breaking up an application into tiers, developers only have to modify or add a
specific layer, rather than having to rewrite the entire application over”, source: [MTA10].
In the rest of this subsection, two types of Web architectures [Archweb10], [XWPR04] will be
reviewed:
•
Architectures suitable for larger Enterprise Web Applications
•
Architectures that might be used for Smaller Web Applications
Architecture for an Enterprise Web Application
A modern Web-based enterprise application has four layers, as shown in Figure 17. According to
[GWA10], these are:
•
“A client layer which renders webpages.
•
A middle tier which includes:
1. A Presentation Layer which generates webpages, including their dynamic content.
It interprets webpages submitted from the client.
2. A Business Logic Layer which enforces validations and which handles interaction
with the database”,.
•
A data layer which stores data between transactions.”
Below, each layer is described separately:
The client layer of a Web application is implemented as a Web browser running on the user's
client machine. It displays data and lets the user enter/update data.
The presentation layer “generates webpages and it includes dynamic content in the webpage.
The dynamic content typically originates from a database” source: [GWA10]. The other major job
of the presentation layer is to "decode" the webpages coming back from the client. The
presentation layer can be built in a number of different tools. “The presentation layer for early
websites was built as Common Gateway Interface (CGI) programs. Netscape also had server-side
JavaScript for websites. Most modern websites presentation layers are built using: the Microsoft
Active Server Pages (ASP) which may be generated by Visual InterDev, the Java combination of
Servlets and JavaServer Pages (JSP) or other scripting languages such as PHP, Perl, Python, and
Ruby” source: [GWA10].
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 53 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 17: Architecture of an enterprise Web application.
As mentioned in [GWA10], “the presentation layer is generally implemented inside a Web server
(like Microsoft IIS, Apache WebServer, IBM Websphere, etc.). The Web Server can generally
handle requests for several applications as well as requests for the site's static webpages. Based
on its initial configuration, the Web server knows which application to forward the client-based
request to (or which static webpage to serve up)”.
The business logic layer includes the bulk of the application [AlBa03]. In more detail, it
includes:
•
performing all required calculations and validations managing workflow (including keeping
track of session data),
•
managing all data access for the presentation tier.
In modern Web applications, business logic is frequently built using:
•
the Microsoft solution where Component Object Model (COM) objects are built using
Visual Basic or C++
•
the Java solution prescribed by Sun has been to build the business logic layer with
Enterprise Java Beans (EJB). However, this has evolved to building the business layer
using Plain Old Java Objects (POJOs) while implementing data persistence with simple
Java Database Connectivity (JDBC) or using various persistence frameworks like
Hibernate or Java Data Objects (JDOs). Heterogeneous back-end systems frequently
provide additional logic and these applications are often accessed through a message
oriented middleware via Java Message Service (JMS) in Java.
“The business logic layer is generally implemented inside an Application Server (like Microsoft
MTS, BEA WebLogic, IBM WebSphere, etc.)”, source: [GWA10]. The Application Server generally
automates a number of services like transactions, security, persistence/connection pooling,
messaging and name services. “Isolating the business logic from these activities allows the
developer to focus on building application logic while application server vendors differentiate their
products based on manageability, security, reliability, scalability and tools support”, source
[GWA10].
The data layer is, according to [GWA10], “responsible for managing the data. In the simple
case, a data layer may simply be a modern relational database. However, it may include data
access procedures to other data sources like hierarchical databases, legacy flat files, etc. The job
of the data layer is to provide the business logic layer with required data when needed and to
store data when requested. In conclusion, the architect should aim to have little or no
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 54 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
validation/business logic in the data layer since that logic belongs to the business logic layer.
However, eradicating all business logic from the data tier is not always the best approach. Not
null constraints and foreign key constraints can be considered "business rules" which should only
be known to the business logic layer”. Most would agree that it is safer/better to include such
simple constraints in the database (and to change them, as the business rules evolve).
Simplified Model for Smaller Web Applications
The 4-level model presented above is appropriate for enterprise applications where there are
many webpages and a significant amount of business logic. “The Enterprise Model provides a
clear delineation between presentation logic and business logic (which improves maintainability).
Also, separating the business logic from the presentation logic provides much more scalability
since the intense business logic can run on separate server(s) under the management of
application server software”, source: [GWA10].
For smaller Web applications, it may be unnecessarily complex to have two separate layers in the
middle tier (and specifically, it may be too much overhead to run a Web server as well as an
application server). While it is still advisable to develop business logic in separate modules, a
smaller application may run both presentation logic and business logic inside the Web server as
shown in Figure 18.
Figure 18: Alternative architecture for a small Web-based application (source:
[WGA10]).
5.2.4.2
Server software
In this section an analysis of the main Web server software is presented.
Apache HTTP server
Apache HTTP Server [Apache10] is a Web server software notable for playing a key role in the
initial growth of the WWW. In 2009 it became the first Web server software to surpass the 100
million website milestone. “Apache was the first alternative to the Netscape Communications
Corporation Web server (currently known as Sun Java System Web Server), and has evolved to
rival other Unix-based Web servers in terms of functionality and performance”, source [AHS10].
The majority of Web servers using Apache run a Unix-like operating system.
Apache is primarily used to serve both static content and dynamic webpages on the WWW. “Many
Web applications are designed expecting the environment and features that Apache provides”,
source: [AHS10]. Since April 1996 Apache has been the most popular HTTP server software in
use, with the main competitor being the Microsoft Internet Information Services (IIS). As of
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 55 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
February 2010 Apache served over 54.46% of all websites and over 66% of the million busiest
[AHS10].
Apache Tomcat
Apache Tomcat [Tomc10] (or Jakarta Tomcat or simply Tomcat) is an open source servlet
container developed by the Apache Software Foundation (ASF). “Tomcat implements the Java
Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a
"pure Java" HTTP Web server environment for Java code to run. Tomcat should not be confused
with the Apache Web server, which is a C implementation of an HTTP Web server; these two Web
servers are not bundled together. Apache Tomcat includes tools for configuration and
management, but can also be configured by editing XML configuration files”, source: [AT10].
The latest version of Apache Tomcat is 6.0.26.
Adobe Flash Media Server
The Adobe Flash Media Server [FMS10] is used for streaming video and real-time communication
mainly targeting collaboration activities. Applications connect to the Flash Media Server using
RTMP and its variants, and the server can send data to and receive data from many connected
users. A network connection to the server is similar to a large pipe and can carry many streams
of data. “Each stream travels in one direction and transports content between one client and the
server. Each server can handle many connections concurrently, with the number determined by
the server’s capacity”, source: [AFMS10].
The client application is developed in Adobe Flash or Adobe Flex and runs in Flash Player, AIR, or
Flash Lite 3. It can support audio and video chat and handle user interaction. The server
application runs on the server [AFMS10]. “It manages client connections, writes to the server’s
file system, and performs other tasks. The client must initiate the connection to the server. Once
connected, the client can communicate with the server and with other clients. More specifically,
the client connects to an instance of the application running on the server. An example of an
application instance is an online game with different rooms for various groups of users. In that
case, each room is an instance. Many instances of an application can run at the same time. Each
application instance has its own unique name and provides unique resources to clients. Multiple
clients can connect to the same application instance or to different instances”, source: [CSA10].
The latest version of Adobe Flash Media Server is 3.5.
Red5 Server
Red5 [Red510] is an open source Flash RTMP server written in Java that can be used for audio
and video chat applications. It supports audio/video streaming (FLV and MP3), client stream
recording (FLV only) and live stream publishing. Figure 19 depicts a service using the Red5
server. The red5Phone Flex3 client makes a NetConnection with the Red5 SIP application. When it
receives a success response, it makes a remote “open” method call in the Red5 SIP application
which creates a pair of SIPUser and RTMPUser objects for that user and instructs SIPUser to
register the user with the specified SIP proxy. When the NetConnection is closed by the Flex3
client, the pair of objects is destroyed and the user is unregistered from the SIP proxy [SipPh10].
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 56 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 19: SIP service using Red5 server (source: [SipPh10]).
Other widely used Flash Media Servers are shown in Table 8.
Broadwave: allows the creation of broadcast from pre-recorded or live audio
Icecast: an open source streaming media server
PlayOn: a media server that runs on a PC and supports Netflix streaming
SHOUTcast: audio streaming (HTTP and/or multicast)
Steamcast: a freeware streaming media server
Subsonic: an open source, Web-based media server
TVersity: a partially open source, Web-based media server
UltraStream SoundBox: a commercial media server based on IceCast
Table 8: Popular Flash Media Servers.
5.2.4.3
AAA server
The Authentication, Authorization, and Accounting (AAA) Server provides a uniform framework
for configuring the AAA security functions in order to implement network security management. It
provides security mechanisms that enable authenticated and authorized entities to access specific
resources and records operations of the entities [LGGVS00]. In more detail, the three security
functions as specified in [H3C10], are:
•
“Authentication: Identifies remote users and judges whether a user is legal.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 57 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
•
Authorization: Grants different users different rights. For example, a user logging into the
server can be granted the permission to access the files in the server.
•
Accounting: Records all network service usage information of users, including the service
type, start and end time, and traffic. In this way, accounting can be used for not only
charging, but also network security surveillance”.
“The AAA framework thus allows for excellent scalability and centralized user information
management. An AAA Server may be used to provide only one or two security functions, if
desired”, source: [H3C10]. For example, if a website only wants visitors to be authenticated
before they access specific resources, only an authentication server is configured. If network
usage information is expected to be recorded, an accounting server is also configured.
AAA can be implemented through multiple protocols but the most commonly used one is Remote
Authentication Dial In User Service (RADIUS). RADIUS is a client/server protocol that runs in the
application layer, using UDP as transport. Another, not so common protocol is HWTACACS.
AAA methods use a client/server model, where the client runs on the Network Access Server
(NAS) and the AAA Server maintains user information centrally [PaSk09]. In an AAA network, a
NAS is a server for users but a client for the AAA servers. In the case of a Web application the
role of the NAS server is played by the Web server.
When a user tries to establish a connection to the NAS and to obtain the rights to access other
networks or some network resources, the NAS authenticates the user or the corresponding
connection. The NAS can transparently pass the user’s AAA information to the AAA Server
(RADIUS server or HWTACACS server). The RADIUS/HWTACACS protocol defines how the NAS
and the AAA Server exchange user information [H3C10].
Finally, [H3C10] mentions that “in an AAA network, both a RADIUS AAA Server and a HWTACACS
Server can co-exist. The authentication, authorization and accounting methods can be
determined according to the actual requirements. For example, the HWTACACS server can be
used for authentication and authorization, and the RADIUS server for accounting”.
5.2.4.4
Databases
MySQL is a Relational Database Management System (RDBMS) that runs as a server providing
multi-user access to a number of databases. The MySQL development project has made its
source code available under the terms of the GNU General Public License, as well as under a
variety of proprietary agreements. MySQL is owned and sponsored by a single for-profit firm, the
Swedish company MySQL AB, now owned by Sun Microsystems, a subsidiary of Oracle
Corporation [Mysql10].
Many Web applications use MySQL as the database component of a LAMP software stack. Its
popularity for use with Web applications is closely tied to the popularity of PHP, which is often
combined with MySQL. Several high-traffic website including Flickr, Facebook, Wikipedia, Google,
Nokia and YouTube use MySQL for data storage and logging of user data [AbcTec10]. The latest
MySQL stable release is 5.1.46.
Other popular RDBMS are MS SQL Server, DB2, and Oracle.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 58 of 94
D2.10 SoA and Guideline for Technology
6
CNG: ICT-248175
Game Adaptation Technologies
6.1 Overview
CNG in-game adaptation and insertion technology intends to enable integration of an external
content in the game without changing the game source. This chapter presents existing
technologies for integration of community objects into games and other immersive/interactive
content. These technologies are available in the global market in a variety of patterns. Some of
them are distributed as an external utility that can overlay a pack of games while others are part
of MMOG service features which are provided to the users. These technologies are aimed to
enhance the gaming experience and strengthen the user interaction by enriching the game
environment with community features such as in-game Web browser or chat. This chapter
surveys the existing technologies and their contribution to create an enriched community
environment. It also tries to pinpoint their limitations and how the CNG project can fulfil the gap
to create a better community environment.
6.2 State of the art
With each passing year the video game industry gains more and more clout among consumers.
In-game technologies have been common in the gaming market for several years. The gaming
industry has adopted these technologies to increase its revenue by finding more financial sources
and by attracting more users with enhanced gaming experience.
6.2.1 In-game adaptation methods
In this section, we survey the existing methods for in-game adaptation. In general it can be said
that the benefit of the in-game technologies is the availability of additional features within the
game frame. As an example the user can chat with friends without the need to close or minimize
the game screen.
6.2.1.1
In-game overlay
The technology allows the user to view and interact with windows outside the game, but without
"Alt-Tabbing" and requiring the game to reinitialize its graphics. It does this by actually rendering
the window inside the game. In Figure 20 one can see an in-game Web browser.
Figure 20: In-game Web browser.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 59 of 94
D2.10 SoA and Guideline for Technology
6.2.1.2
CNG: ICT-248175
Texture replacement
This technology enables to replace an origin game texture with a different one. The new placed
textures are seen as part of the original game content. This method is commonly used for a
dynamic in-game advertisement. In Figure 21 one can see texture advertisements such as on the
player shirt or the truck side.
Figure 21: In-game advertising.
6.2.1.3
Game size modification
This technology adapts the original game by decreasing its original size and surrounding it with
external content. The technology supports multiple game resolutions and different content types
that can surround the game main window. In Figure 22 one can see a resized game with a left
vertical and bottom horizontal ad banners.
Figure 22: Left vertical and bottom horizontal ad banners.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 60 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
6.2.2 In-game adaptation products
This section includes a review of the main available in-game adaptation products on the market.
Some of the products require for the game developer to integrate the product’s software
development kit (SDK) (for each game to be developed the game developer must use the
product’s SDK). The use of those in-game adaptation products is not available for the existing
games catalogue.
6.2.2.1
Xfire
Xfire [Xfire] is a free tool that provides enhanced gaming experience. It provides a variety of
overlay features without the need of SDK for games integration. The in-game features are
provided as an overlay on the game. The main features Xfire supports are as follows
[Xfirefeatures]. Some of these features have already been mentioned in Section 3.4.4 and are
presented again for completeness.
•
Game detection
Xfire features the ability to detect the video game a particular contact is running. By analyzing
running processes, Xfire can detect active games and send that information to the Xfire clients
that are “friends” of the current player.
•
Instant messages
Xfire is most notable for its ability to send and receive instant messages from inside a game in
full screen mode, eliminating the need to minimize the game window (Figure 23). Users can also
send in-game messages to other players without joining the game and are also able to see what
games their friends are playing. Xfire also supports 3rd party instant messaging services AOL
Instant Messenger and Windows Live Messenger.
•
Voice chat
Xfire hosts an in-game voice chat session in high-quality.
•
Screenshots and videos
Xfire has the ability to take screenshots in-game and save them to a specified folder. Once the
user exits their game, Xfire will load all of their screenshots in a window, where the user can then
select all of the screenshots that they want to upload to their Xfire profile page. Xfire has also the
ability to record video in-game. However, this can have a significant impact on game
performance and recording quality; if a user has a low-performance system and starts recording,
the frame rate will slow dramatically.
•
Live Video (Broadcasting)
Xfire has a video streaming feature. It allows anyone to watch a live feed of a user's screen while
they are playing a game. When a user begins a stream, it opens up a chat room which anyone
who is watching a live feed can join.
•
In-Game Web Browsing
In-game internet browsing capabilities are also enabled with Xfire. Its homepage is set as a
statistics page of the game being played: Clans and Guilds based around the game, current users
playing, peak position, etc.
Figure 23: Xfire.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 61 of 94
D2.10 SoA and Guideline for Technology
6.2.2.2
CNG: ICT-248175
PLAYXPERT
PLAYXPERT [PlayX] (Figure 24) is an in-game tool that enriches the gaming experience with a list
of features. “PLAYXPERT's in-game overlay is run on an in-house engine, called PLAYXPERT True
Overlay. There is little performance impact, as the overlay works at the operating system's kernel
level. This also means that it supports any game, and does not depend on explicit support from
the game developer” [PlayXfeatures]. The PLAYXPERT provides the following features
[PlayXfeatures].
Instant Messaging
In addition to its own proprietary instant messaging service, it also supports AOL Instant
Messenger, Google Talk, ICQ, Sony Station Friends, MSN, Yahoo! Messenger, and Xfire.
Web Browser
The Web browser widget supports tabbed browsing, an in-game download manager, and
bookmarks.
Diagnostics
The Diagnostics widget is an in-game Task Manager of sorts, which allows to monitor the CPU
usage, RAM usage, network bandwidth usage, and also a process manager, which allows to end
system processes while in-game.
Arcade
The Arcade widget is essentially a game manager, allowing to launch all games from it, and see
what games the friends have. It also serves as a server browser.
User-Made Widgets
PLAYXPERT supports user-made widgets, and offers them for download in the Widget Gallery
section of their website.
All of these features can be opened in-game, eliminating the need to minimize whatever game, or
other full-screen application that may be running. All in-game widgets have adjustable opacity.
Figure 24: PLAYXPERT.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 62 of 94
D2.10 SoA and Guideline for Technology
6.2.2.3
CNG: ICT-248175
Massive Incorporated
“Massive Incorporated [Massive] is an advertising company that provides software and services
to dynamically host advertisements within video games. Massive Incorporated was purchased by
Microsoft in May 2006. The service, collectively known as The Massive Network, allows game
developers to place advertisements within video games by providing an SDK and servers to host
advertisements to be streamed to clients when the game is played (Figure 25). The streaming of
advertisements allows old advertisements to be removed and more contextual ones applied in
their place. Advertisements can be any texture, but to maintain realism, advertisements are
generally placed on objects such as posters, billboards, storefronts, and other likely media.”
[Wiki].
Figure 25: Massive Incorporated.
6.2.2.4
Double Fusion
Double Fusion [Double] provides in and around game advertising technology similar to Massive
Incorporated. It uses a texture replacement method for placing advertisements in the game and
requires SDK integration (Figure 26).
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 63 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Figure 26: Double Fusion.
6.2.2.5
FreeRideGames
FreeRidesGames [Freeride] is a free ad-based games service (Figure 27) provided by Exent
Technologies. It provides casual games for free while the service revenues are coming from the
in-game ad units placed in and around the game (while the game is resized). The service in- and
around-the-game advertising product allows for advertisements to be incorporated at any stage
of the game life cycle. It facilitates enabling video games and the dynamically serving of in-game
2D and 3D texture and object advertisements, during-the-game as an overlay and around-thegame, all without having to change the game’s source code and with no developer support. It can
be implemented over the extensive catalog of new and back catalogue video games, without the
need for integration or other adaptation of the game source code by the video game developer.
Figure 27: FreeRideGames.
6.2.3 Summary
We have presented existing game adaptation technologies and reviewed the main in-game
products that are available in the market. Other similar products not covered in this survey
include Steam [Steam], Raptr [Raptr], and Overwolf [Over]. The survey shows that there are
currently no products that offer all available game adaptation technologies.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 64 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 65 of 94
D2.10 SoA and Guideline for Technology
7
CNG: ICT-248175
Standards
7.1 Overview
CNG covers several technological domains from data representation and transmission to Web
communication and application design. To ensure interoperability and reusability as well as to
offer the best conditions to a possible exploitation of CNG technologies, the project will be
extensively based on existing open standards. In addition, the consortium has long term
expertise in participation in different standard organizations at international level, thus easing
both the usage of standards and the impact that the project may have in the
development/extension of some of them.
This chapter aims to provide an overview of existing standards related to content representation
and that may be used in CNG. Each standard is analysed with respect to the project’s
requirements, adoption in existent prototypes and products, accessibility of reference software
implementations, as well as potential for improvements.
7.2 State of the art
Under the paradigm of User Generated Content one can find nowadays a rich set of multi-media
content. They comprise a large spectrum starting from simple representation forms such as text
and sounds, continuing with natural images and videos, relatively easy to capture, up to complex
computer generated content based on parametric representation and most often created by
dedicated authoring tools.
The success of integrating UGC into arbitrary games heavily depends on the consistency of the
content chain to be developed within the project with the current practices, standards and tools
deployed or in course of deployment by the external market. Therefore, we analyse in details
different existing standards/recommendations/practices for representing multi-media content.
The online nature of the CNG applications imposes a strong requirement on the amount of data to
be transmitted; therefore, the compression is a key element in our analysis.
7.2.1 Natural media
Today, producing media as image, audio and video is easier than ever. A proliferation of
capturing devices (cameras, smart phones, etc.) together with smooth integration of
communication between them based on open standards makes that yesterday’s multimedia
consumers become easily content producers. The debate concerning the right standard to use
with respect to the natural media is less technical, several solutions (mainly developed by ISO
and ITU-T) being available and widely adopted into the market, and more related to a business
perspective. It is mainly played at the frontier between royalty-free standards and the so-called
RAND1 ones. The policy of W3C is to adopt only technologies from the first category while the
ISO's one is that both categories may be accepted in the standardization process. Additional
complexity to this debate is the fact that for compression algorithms, it is always a problem to
ensure that a technology is free of any third-party patents. While these aspects will be addressed
in the exploitation plan of CNG, Table 9 indicates different standards and proprietary solutions for
compressing images, audio and video.
1
Reasonable and non discriminatory.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 66 of 94
D2.10 SoA and Guideline for Technology
Media
Organisation
ISO/IEC
ITU-T
Video
Proprietary
ISO/IEC
Audio
ITU-T
proprietary
ISO/IEC/ITU-T
Still images
Proprietary
CNG: ICT-248175
Standard name
MJPEG ·
Motion JPEG 2000 ·
MPEG-1 ·
MPEG-2 (Part 2) ·
MPEG-4 (Part 2/ASP · Part 10/AVC) ·
HVC
H.120 ·
H.261 ·
H.262 ·
H.263 ·
H.264 (same as MPEG-4 Part 10)·
H.265
AMV · AVS · Bink · CineForm · Cinepak · Dirac · DV ·
Indeo · Microsoft Video 1 · OMS Video · Pixlet ·
RealVideo ·
RTVideo ·
SheerVideo ·
Smacker ·
Sorenson Video & Sorenson Spark · Theora · VC-1 ·
VP6 · VP7 · VP8 · WMV
MPEG-1 Layer III (MP3) ·
MPEG-1 Layer II ·
MPEG-1 Layer I ·
AAC ·
HE-AAC ·
MPEG-4 ALS ·
MPEG-4 SLS ·
MPEG-4 DST
G.711 · G.718 · G.719 · G.722 · G.722.1 · G.722.2 ·
G.723 · G.723.1 · G.726 · G.728 · G.729 · G.729.1
AC3 · AMR · AMR-WB · AMR-WB+ · Apple Lossless ·
ATRAC · DRA · DTS · FLAC · GSM-FR · GSM-EFR ·
iLBC · Monkey's Audio · MT9 · µ-law · Musepack ·
Nellymoser · OptimFROG · Original Sound Quality ·
RealAudio · RTAudio · SD2 · SHN · SILK · Siren ·
Speex · TwinVQ · Vorbis · WavPack · WMA · True
Audio
JPEG ·
JPEG 2000 ·
JPEG XR ·
lossless JPEG ·
JBIG ·
JBIG2 ·
PNG ·
WBMP
APNG · BMP · DjVu · EXR · GIF · ICER · ILBM · MNG ·
PCX · PGF · TGA · QTVR · TIFF
Table 9: Compression formats for audio, video and still images [Comp].
7.2.2 Computer generated media
Compared to natural media, synthetic content is relatively difficult to create. While some semiautomatic synthesis of graphical objects by capturing real ones exists, it is far from being easy
enough to be used at large scale. Therefore, the main creation method of such content is based
on dedicated authoring tools. This complicates even further the interoperability problem since
each tool comes with its own data format. In the last decade, the hyperlink and composition
principles of different sources initially developed for the text over Internet have been extended to
media scenes, resulting in the development of plenty of scene representation formalisms. Some
of them are open standards (like VRML , X3D , SMIL , SVG , MPEG-4 BIFS, MPEG-4 XMT, MPEG-4
LaSER, COLLADA) published by ISO, W3C or Khronos; others, like Flash by Adobe or 3ds by
Autodesk, accompanying authoring tools, became de facto standards.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 67 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Table 10 shows the features of five open standards (VRML, X3D, SMIL, SVG, MPEG-4) published
by ISO or W3C for handling different aspects of 2D/3D graphics and scene graph.
VRML
X3D
SMIL
SVG
MPEG-4
Virtual
Reality
Standard name
Modelling
Language
Synchronised
Multimedia
eXtensible 3D
Integration
Language
Scalable Coding of
Vector
audio-visual
Graphics objects
Organisation
ISO
ISO
W3C
W3C
ISO
Publication
Year
1997
2005
1998-2007
2003
1998-2007
Media types
2D/3D
2D
3D graphics
Ref.
to
2D
graphics and
graphics,
and ref. to
graphics, video
ref. to video /
text and
video / audio
/ audio
audio
Image
Still
image,
video,
audio,
2D/3D
Graphics
Animation
Linear
Linear
Interpolation Interpolation
Local
animation
Not
relevant
Linear
and
higher
order
interpolation
Compression
No
No
No
Yes
Streaming
Only
for Only for
Only for
video / audio video / audio video / audio
Yes
Video, audio,
Not
scene
graph,
supported graphics
Animation
Only
between
Synchronisation
animation
tracks
Only between
Not supported Not
animation
per frame
relevant
tracks
Full support
Interactivity
Yes
Yes
Yes
Yes
Yes
Table 10: Comparative analysis of the multimedia open standards
In the 2D graphics world, the W3C consortium published the recommendations for designing
multimedia presentation within two standards: 1) SMIL which describes the temporal behaviour
by synchronising the elementary media objects and 2) SVG which describes the 2D graphics
primitives and their spatial properties. Both formalisms are XML-based, enabling easy integration
and taking advantage of XML related tools. While the combination of both standards brings a rich
solution in terms of features such as animation, content control, layout, linking, timing and
graphics primitives, no support for streaming the graphic content is provided.
In the 3D graphics realm, X3D (based on VRML) and COLLADA are the best known, the latter
probably being the most adopted by current tools, although still far from being the Holy Grail of
the 3D graphics production industry. While COLLADA concentrates on representing 3D objects or
scenes, X3D pushes the standardization further by addressing as well user interaction thanks to
an event model in which scripts, possibly external to the file containing the 3D scene, may be
used to control the behaviour of its objects.
One of the characteristics of modern standards is the data representation based on XML. Indeed,
using XML allows a very easy extension of the structure, as one can impregnate data with
meaning and purpose, implicitly upgrading it to be self-contained information. XML is an
appropriate mechanism to express dynamic 2D/3D scenes because even non-interactive ones
usually contain complex structures of heterogeneous data, organized in different kinds of graphs
(for both the scene as a whole and its possibly many objects) and containing elements of
inherently different nature (geometry, appearance, animation, lights, viewpoints, etc.)
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 68 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Recent developments of collaborative sharing platforms (Web2.0) are efficient vehicles for
pushing media over the Internet, and introduce the additional need of compactness in data
representation. Even games, which have traditionally been distributed in DVDs containing all
assets, openness to new distribution channels is a must, either for entire game downloading
before playing, or for the streaming of assets during the match in the case of on-line games.
Neither the formats used in the content creation phase, nor the ones used for rendering are
appropriate for transmission, since they usually satisfy none of the three requirements that are
most important in this context:
•
•
•
compression, to reduce the size of the transmitted data;
“streamability”, to enable players to start using the content before having downloaded it
entirely;
scalability, to ease real-time adaptation of the content to a specific platform and network.
Generic compression on top of XML (achieved through entropy coding of the corresponding text
file thanks to “gzip” or similar tools) usually reduces the data size only by a factor of
10 [ABMB07], because it is just able to exploit the data structure redundancy, since the
information represented by the data is not understood and hence cannot be exploited. Even
worse, streaming and scalable coding are out of the question with generic compression methods
since both require that the data semantics be understood to build hierarchical or at least
progressive representations of the information, which can then be adequately packetized.
Instead, specific 3D graphics (lossy) compression techniques may exploit better the spatial or
temporal correlation present in the information, and reduce the data size by a factor of over
40 [PeKiKu05, KhScSw00], while possibly yielding progressive, scalable bitstreams, suitable for
streaming scenarios involving heterogeneous networks and/or terminals.
Built on top of VRML, MPEG-4 contained, already in its first two versions [MPEG99], tools for the
compression and streaming of 3D graphics assets, enabling to describe compactly the geometry
and appearance of generic, but static objects, and also the animation of human-like characters.
Since then, MPEG has kept working on improving its graphics compression toolset and published
two editions of MPEG-4 Part 16, AFX (Animation Framework eXtension) [MPEG04], which
addresses the requirements above within a unified and generic framework and provides many
more tools to compress more efficiently more generic textured, animated 3D objects.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 69 of 94
D2.10 SoA and Guideline for Technology
8
CNG: ICT-248175
Guidelines
8.1 Overview
In the previous chapters, we presented the state of the art in all areas related to the CNG science
and technology contributions. In this chapter, we build on this state of the art survey and a user
needs study (to be published in Deliverable D2.1) to provide guidelines for the design of the CNG
infrastructure and tools. These guidelines were discussed and finalised at a Design Review
meeting with the representatives of the consortium. The guidelines cover all technical aspects of
the CNG system as follows:
•
•
•
•
•
•
Game Adaptation (IGIT) (Section 8.2)
UGC Tools (Section 8.3)
P2P Live video streaming (Section 8.4)
Web 2.0 collaboration tools (Section 8.5)
CNG Server (Section 8.6)
Standards (Section 8.7)
8.2 Game adaptation (IGIT)
The CNG project intends to combine all the existing methods for in-game adaption but with no
need for SDK integration. In this way, we will be able to surround the game, overlay it or replace
an existing game texture with an external content.
The CNG project will combine the game adaption technologies in a way that will not harm the
game experience and without the need for SDK integration.
1. Texture replacement
For replacing existing assets (such as textures) CNG will develop an interception layer
and alter the game’s directives for replacing the game’s assets with assets that will be
generated by the project’s utilities.
The game logic should not be affected since only the visual of the object is changed while
the structure of the 3D scene remains the same with no additional objects.
This method will consist of the three following techniques:
a. Spots identification - we will identify the relevant spots in the game which are
suitable for replacement.
b. we will enable the user to replace 2D textures in the identified spots.
c. we will also enable to manipulate 3D objects in those spots.
2.
Game size modification
CNG will use the aforementioned interception layer for decreasing the game window size
and surrounding it with new windows.
3. Game overlay
CNG will use the aforementioned interception layer for redesigning the game visualization
area and adding Web browser objects to the game frame area to host online webpages
(including Web 2.0 applications).
The windows system which will be implemented will include predefined fixed layouts in
order to give the user the ability to manage his Web/UGC tools/Web 2.0 applications.
The windows system will surround the game as an overlay.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 70 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
8.3 UGC tools
CNG UGC tools enable the following features:
Capturing and Encoding
The game play’s image frames are captured during the game directly from the GPU. The GPU is
also used for resizing those frames. The captured image frames are transcoded using H.264 into
the video stream. CNG capturing tools use the GPU for resizing of the image frames rather than
using the CPU. The use of the GPU eliminates the effects on the game play that may be caused if
the CPU power is used. The resizing of the image frames is used to decrease the bandwidth
required for transmission on the P2P network.
Editing
The editing features used in UGC tools are:
•
•
•
•
Ease of use
Trimming of videos
Ability to add titles and text overlays (annotation)
Ability to reorder clips (recording)
The Editing process for each video segment generates an XML file which includes the details of
the editing done.
The XML file can be modified, without affecting the original captured files and can be re-used in
other published videos. The edited video needs then to be re-encoded so that users can publish it
elsewhere (either within the game for other players to see or to external destinations such as
YouTube).
Uploading
The system includes also tools to enable upload of video files to YouTube. Such upload has
certain limitations such as 2GB or 10 minutes. The CNG UGC tools will take into consideration
such constraint helping the user in preparing files for upload.
Textures and 3D objects
For the CNG online verification a set of pre-prepared items for texture replacement and a set of
3D objects will be given to the users:
•
5-10 suggested pre-prepared items for texture replacement (selected from the many
textures in the game);
•
5-10 suggested pre-prepared 3D objects created to be used for add-on to the game.
In an off-line process the user will be able to "graphically annotate" the textures and the 3D
objects and to decide which texture will be replaced and which 3D object will be added to the
scene. This will be done by matching the new texture or the 3D object with a screen shot in the
game. At that stage the user may also be able decide which other user will also have this
content. This tool is off-line and needs to be used before playing the game or before starting a
new session. The replaced texture or add-on 3D objects will be distributed via the Web 2.0 file
sharing tool (see Section 8.5).
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 71 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
8.4 P2P live video streaming
CNG will enable users to stream live video captured from the game screen via P2P. The guidelines
for the P2P live video system are as follows.
Any MMOG player should be able to multicast live video. The video can potentially be received by
any other player in the P2P network. The set of authorised receivers can be defined by the
source of the video through the CNG server.
The video is captured in real time from the source screen, compressed, and partitioned into
source blocks. Each block consists of one GOP (Group of Pictures) and is an independent unit of
fixed playback duration (e.g., 1 s).
UDP is used as the transport protocol, and the video data is protected against packet loss at the
application layer with forward error correction (FEC) in conjunction with receiver feedback. The
proposed approach, a type of incremental redundancy, encodes the source block with a rateless
code (LT code or Raptor code) and keeps on sending the channel symbols until an
acknowledgement is received from the receiver or a timeout occurs. But as the acknowledgment
needs time to reach the sender, the sender may transmit redundant channel symbols, which
results in significant bandwidth wastage. Thus, a major challenge is to determine packet
scheduling algorithms that minimize this overhead. The optimization of incremental redundancy
for video streaming scenario was recently introduced for a client-server model [AhHaAl10]. An
optimal strategy typically consists of a sequence of successive transmission bursts and waiting
times. The CNG project extends this work by devising solutions for a P2P network. Later on in the
project, the solution will be adapted to Reed-Solomon codes.
A mesh-based topology is used for the P2P network. Players/peers are organized in different
levels (Figure 28). The source peer is placed at level 0. All peers directly connected to the source
peer are at level 1, and the peers that are not connected to the source peer but are connected to
level-1 peers are at level 2. In general, a peer is considered to be at level j if its shortest route to
the source peer consists of j intermediate links.
Figure 28: CNG P2P mesh topology.
The source peer applies rateless coding on each source block and keeps on sending the resulting
encoded symbols in encoded packets (packets of encoded symbols) to level-1 peers until it
receives an acknowledgment from them as explained previously. Level-1 peers forward the
received packets to other level-1 peers immediately as instructed by the source peer. Level 1peers also forward the received packets to the level-2 peers that are directly connected to them.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 72 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
When a level-1 peer completes the decoding of a block, it sends an acknowledgement to all
senders so that they stop sending it packets. Then it applies rateless coding on the decoded block
to feed level-2 peers. In this way, each receiving peer has two phases: forwarding (before the
decoding is successful) and encoding (after decoding the block). In the first phase, the receiving
peer just forwards the received encoded packets to the next-level peers connected to it, while in
the encoding phase, it generates encoded symbols from the decoded block and feeds the nextlevel peers.
Note that the source peer is responsible only for level-1 peers, which in turn are responsible only
for level-2 peers. In the following, we describe the process in more detail.
The source peer computes a scheduling strategy for each source block. The strategy specifies the
maximum number of encoded packets n that can be sent for this block, and the time ti at which
packet i is sent with a hierarchical forwarding scheme Fi, i=1,2,...,n. If the source peer receives
an acknowledgment from a level-1 peer j before n packets are sent, it can update its scheduling
strategy by, e.g., removing peer j from the forwarding schemes of the remaining packets. Figure
29 shows an example of a transmission strategy for n=4 and the four level-1 peers of Figure 28.
1:
2:
3:
4:
t1:A->B(->D)+C
t2:B->A+D(->C)
t3:C->A(->B)+D
t4:D->C(->A)+B
Figure 29: Scheduling strategy example.
The strategy states that at most four packets can be transmitted. Packet 1 is transmitted at time
t1 to peer A; peer A forwards this packet to B and C, and peer B forwards it to D. Note that a
packet is forwarded immediately after being received. Packet 2 is transmitted at time t2 to peer B
that forwards it to peer A and D, peer D further forwards it to C.
Peer B also computes a scheduling strategy for the level 2 peers that are directly connected to it.
While in the forwarding phase, since peer B has no control on when it will receive a packet, it
cannot precisely comply with the transmission times of the scheduling strategy. However, in the
encoding phase, the scheduling strategy can be obeyed fully.
Since a peer can have multiple neighbours, it can receive the same packet from multiple senders.
For example, peer F, which is receiving video from peers A and B and also from some other peers
at level 2 can receive the same packet from A and B in both the forwarding and encoding phases.
To avoid this, a parent should know the other parents of its children. For example, peer B should
know that F is its common child with A. In this way, peer B will not forward a packet to F if this
packet has previously visited peer A. This will avoid receiving duplicate packets from A and B
while they are in the forwarding phase. In the encoding phase, receiving duplicate packets can be
avoided with high probability by forcing peers to use different seed values for the rateless code
The proposed scheme is resilient to packet loss, bandwidth fluctuation and peer churn. By having
multiple senders, lost packets on one link can be compensated for by receiving more packets on
other links. Similarly, packet loss rate and bandwidth dynamics can be averaged out smoothly. If
one of the senders churns out, it can be compensated for by others before running the
neighbour-discovery mechanism.
Unlike conventional P2P systems, the source peer is required to have an upload bandwidth only
slightly higher than the playback rate of the video.
Since the seed value of the rateless code is crucial for decoding the block, video data can be
protected from wire tappers or unauthorised viewers by transmitting the seed value to the
intended receivers on a separate secure link.
Players that are neighbours in the virtual world can be placed at the same level in the mesh, so
that they can watch the video with approximately the same playback lag with respect to the
original source.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 73 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
To compute an optimal scheduling strategy, a sending peer tries to maximize the expected user
experience subject to the available resources. The user experience can be a weighted sum of
perceived multimedia quality (e.g., start-up delay, percentage of frozen frames, duration of
freeze period, peak signal to noise ratio, etc.). The resources may consist of the uplink/downlink
bandwidth and the computational power of each peer. In a clustered topology (where neighbours
of a given peer are also neighbours with high probability), the scheduling strategy can become
complex to decide. One of the challenges in the project consists of determining topologies that
allow efficient and simple computation of scheduling strategies with regards to the
aforementioned requirement that close peers should preferentially appear at the same level.
MMOG friendly P2P streaming
One essential requirement is that the live video stream should not consume the (upload and
download) bandwidth that is necessary for the smooth operation of the MMOG. Usually, peers
have much lower upload bandwidth than download bandwidth. Therefore, protecting the upload
bandwidth for MMOG traffic is more crucial. One simple way to achieve this would be to reserve a
portion of the upload bandwidth for the MMOG traffic. However, this would result in inefficient
bandwidth utilisation, especially when the MMOG traffic pattern is unknown and the upload
bandwidth is scarce. We propose instead to use priority queues at the peer side as shown in
Figure 30.
Figure 30: Priority queues.
Each peer maintains two queues, one for the MMOG traffic and the other for the CNG traffic
(including live video and any other user-generated traffic). The scheduler ensures that (i) the
MMOG traffic always gets higher priority over the CNG traffic by multiplexing both queues
appropriately over the outgoing link (ii) the average transmission rate on the outgoing link does
not exceed the upload bandwidth allocated by the ISP to avoid unnecessary queuing at the first
router. Note that this technique does not need to know the pattern of MMOG traffic generation.
Protecting enough download bandwidth for MMOG is also important. However, since a peer
receives traffic from multiple senders, the technique of priority queues cannot be implemented.
The only possibility is to reserve enough download bandwidth. This can be accomplished, e.g., by
making each peer keep track of all its download activities so that there is enough download
bandwidth available for the MMOG.
Media-adaptive transmission
In addition to the above features, the CNG project proposes media-adaptive channel coding and
joint source-channel coding for the P2P live video system.
•
Design of UEP with rateless codes for video streaming over P2P network. Classes of
importance for the source data are defined and protected unequally to achieve better
overall quality for the same used bandwidth. The idea is to make the receiver send a
feedback not only after recovering a whole source block but also after recovering each
class. The sender can then update the UEP information (i.e., the relative importance of
each class) accordingly.
•
Design of joint source-channel coding techniques for incremental redundancy with
rateless codes. The goal is to find an optimal trade-off between the source coding rate
and the channel coding rate.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 74 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Congestion control
As UDP does not have a built-in congestion control mechanism, a pure UDP-based application
may overwhelm the network. Therefore, the CNG project proposes an application-layer
congestion control mechanism for the P2P system. The idea is to adapt the UDP sending rate
according to the receiver’s feedback. For each block, the receiver sends a feedback to the sender
reporting the average packet loss rate and the forward trip time (FTT). If the average FTT and
packet loss rate are higher than some threshold values, this is a strong indication of congestion,
and the sender decreases the sending rate accordingly. The threshold values can be determined
experimentally.
Multiple overlays management
Many peers can become a source of live content. The P2P overlay is actually the union of multiple
P2P overlays rooted on distinct sources. A peer cannot obviously participate in all overlays,
because some resources are used in every overlay a peer belongs to. Practically, a user can
decide whether it wants to receive the stream from a given source. Yet, in a long-term vision, an
automatic management would be suitable. We propose in the following a technique, which takes
into account the position of the peers and the capacity of nearby peers, in order to determine to
which overlays every peer should belong to.
We propose to continuously adjust the set of peers who are targeted to receive data from a
source. The goal is to obtain a fair nearly congested system, where the peers that receive the
stream are close to the user who generates the content. We use the concept of Area of Interest
(AoI) [JiHuHu09] for that purpose. An AoI is defined as the part of the virtual world around a
user that generates content. When a peer is within the AoI of a user generating high-quality
content, or when it belongs to many AoIs, it may experience congestion. The challenge is to
design a mechanism for determining the best size of these AoIs, that is, a size such that the
maximum amount of UGC is practically delivered while no user experiences congestion. The
management of the AoI must then take into account the popularity of the virtual place and the
capacity of the devices of the players that are located there. Such a management has been
shown to be hard in wireless sensor networks [HaLeSi09], but some heuristics can perform quite
well. For a player, the decision of increasing or decreasing the size of the AoI should be based on
feedbacks from other nearby players in a collective manner.
Two strategies can be implemented. In the first strategy, one peer is congested, and not all peers
in an AoI can be served. However, the capacity of peers in the surroundings of the congested
peers makes that a new computation of the AoI for all sources is not necessary. Instead, it is
possible to “pass” one peer from one P2P overlay to another P2P overlay, so that the capacity
provided by this peer can tackle the congestion issue. This strategy, which avoids heavy
computations, can solve local small congestion problems. The second strategy can be
implemented when the first strategy fails. A process similar to the one that ensures a fair
resource sharing in TCP can be used. Every source periodically tries to increase (in an additive
manner) the size of its AoI until congestion is detected. Then, the radius of the AoI is decreased
in a multiplicative manner.
We expect that the combination of both strategies can guarantee that sources take profit from
the capacity of peers to diffuse content as massively as possible, without provoking congestion in
the system. Thus, a casual peer can automatically switch from one source to another one,
depending on its distance to these sources and on the capacity of nearby peers.
P2P streaming overlay capacity
In addition to designing an efficient P2P live video streaming system for a game environment, the
CNG project proposes to contribute to a better understanding of the general problem of the
diffusion of multiple video streams in a constrained environment. In most prior works, the system
is assumed to be over-provisioned, that is, the resources are abundant, and so the content can
be delivered on time. In the CNG project, we want to maximize the amount of peers receiving
content in an environment where not all peers can be reached because too few resources are
available. If we consider only one video stream, the problem is to build a tree that spans the
maximum number of peers with the constraint that every peer can only serve a limited number of
other peers. In the context of many concurrent video streams, the problem becomes even harder
with a constrained forest.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 75 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
The building of degree-constrained trees is an NP-hard problem [KoRa03]. We propose to
contribute to the analysis of the computational properties of this problem. In particular, the
formulation of the problem into several Integer Programming models, and comprehensive
benchmarks of these models will enable the computation of optimal solutions on small instances
of the problem. Besides, we aim at designing heuristic algorithms, which allow the computation of
nearly optimal solutions for large problem instances, as well as approximate algorithms
(algorithms that compute solutions that are proved to be never far to the optimal solutions).
8.5 Web 2.0 collaboration tools
Since a large variety of Web-based online collaboration tools are available, the design of online
collaboration tools offered to the gamers in the context of CNG should focus on making use of
these state of the art applications. Therefore, the CNG online collaboration tools will be based on
existing frameworks for Web 2.0 applications which make use of technologies that are commonly
used in the WWW and are described in Chapter 5. These technologies are Java, Flash (Adobe Flex
framework) and Ajax. The design of these tools should target the integration of the profile of the
CNG user in the existing applications and, if necessary, the adaptation of the existing software to
any particular needs of the online gamers.
An important aspect that should be considered during the design and the development of the
online collaboration tools is that a part of the technologies that formulate the Web 2.0 technology
consists of very well-defined standard technologies such as HTML, XHTML, CSS (for presentation)
the DOM (for dynamic display of and interaction with data) XML and XSLT (for the interchange,
and manipulation and display, of data, respectively) the XMLHttpRequest object (for
asynchronous communication) and JavaScript (to bring these technologies together). In order to
assure the robustness and the interoperability of the provided Web applications, the available
W3C recommendations for the several Web technologies are used as guidelines during the
development of the online collaboration tools. All the recommendations are available at the
official website of W3C [W3C].
Frameworks that use Java technology and/or Adobe Flex should be chosen for the provision of
the Web-based collaboration tools, mainly for the audio and video chat. Any other similar
application that offers video/audio chatting capabilities for the collaboration activities can also be
based on these technologies. Flash platform has a lot of limitations in comparison with Java and
Java Media Framework API [JMF] but the simplicity of the online collaboration tools that are
required in the context of CNG may be covered by the capabilities that the Flex framework offers.
A Red5 Server will be used for the support of the media streaming functionality for the
collaboration activities. The architecture for the provision of this application is described in
Chapter 5.
For audio and video collaboration tools, an alternative is to use Ajax and HTML5. HTML5 is
expected to support new features like the “drag-and-drop” functionality and the audio/video
feature without the need for any installed Flash player plug-in in the browser’s application. Since
the standardization process of HTML5 is not finalized, the examination of the potentials of the
HTML5 will be performed during the design and implementation phases of the CNG online
collaboration tools. During those phases, the features of the HTML5 will be considered and it will
be decided whether the collaboration tools will make use of this new technology or not.
On the other hand, the technology of collaboration applications like text messaging, file sharing
and blogging can be based on Ajax technology. An existing Ajax framework such as the one
presented in Chapter 5 (Echo2, GWT, etc.) can be used for the purpose.
All the available online collaboration tools will be easily accessible to the online users through a
collaboration toolbox. This collaboration toolbox will contain links towards the available tools
along with the contact list of the user and will appear immediately after the user authentication.
The contact list will be available for all users. The user will be able to see his/her contacts and
additionally information should be provided of whether they are online or not.
Privacy should be considered during the design of the online collaboration tools. A basic search
tool will be available for the users in order to build their online community but not all the personal
information should be public, unless it belongs to a user that belongs to the same collaboration
community.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 76 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
Another important issue that should be considered during the selection of the online collaboration
tools is the simplicity of the tools provided. In the context of the CNG project, online collaboration
tools and the MMOG are expected to appear simultaneously at the user display. Therefore, the
user interface of the collaboration tools should be simple and compact enough in order not to
harm the display of the MMOG itself. For example, a potential uploading of text in combination
with video may lead to the creation of a webpage that cannot be easily followed in the browser’s
window while playing an MMOG.
Finally, since the main focus of the “Web 3.0 and Semantic Web” concepts is the semantic
organization of the Web, Web 3.0 technologies are mainly useful for information retrieving
applications, which are outside the scope of the CNG project.
8.6 CNG Server
The CNG Server acts as a tracker for the system in the sense that it is in charge of introducing
peers to other peers. It has persistent communication with the clients and manages the
organization of the P2P exchanges. While the CNG Server is not dedicated to supply users with
content, it can in a few well-defined cases act as a backup storage for the UGC of users, e.g.,
when these players suffer from transient network troubles or when a player that holds a specific
data leaves the scene.
In addition to its role as a tracker in the P2P system, the CNG Server is responsible for the
provision of the online collaboration services. The CNG Server does not have direct access to
information hosted by the MMOG server and mainly provides social networking for gamers (e.g.,
friend lists or discussion groups) and gives gamers a place to present themselves and customize
their own profiles (e.g., by using blogs).
The design of the CNG server should follow an approach of multi-tier architecture (Figure 31).
The main reason for this is that this architecture is more technically concrete in terms of
scalability and modularity so as to support a large scale application as that of the CNG Server
component for collaboration activities. The other reason is that an independent Backend
Component will be needed to implement the business logic. This Backend Component should be
independent in order to provide its services not only to the Presentation (User Interface)
Component but also to other components of the CNG server as that of the Administration User
Interface component and the CNG Server part that are responsible for the provision of the P2P
services. These components will use the business logic implemented in the Backend Component
in order to perform the methods they are responsible for.
CNG Server
Presentation
Component
BackEnd
Component
CNG DB
&
Users
Accounts
AAA
Server
Figure 31: Architecture of CNG server part for online collaboration services.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 77 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
The solution of the Apache HTTP server seems to be suitable as the Web server technology of
both the Presentation and the Backend Component. Apache HTTP is a free software that is very
reliable and is used by over half the current active websites in the WWW.
Alternatively, the Backend Component may be running separately on a different engine, e.g., an
Apache Tomcat application server. Tomcat is a free software and a powerful tool that has been
designed to run Java software and to provide business logic services.
The CNG Server will be responsible for the provision of the interfaces for the login and the
registration to the in-game collaboration activities. For this purpose, a registration webpage, a
login page and a page for personal data modification will be used. While it seems convenient for
the user to login at-once to both the game and the collaboration tools, this approach has several
drawbacks. The most important ones are, first, that potentially the same CNG Server will be
needed to support multiple MMOGs and, second, that the synchronization of users’ accounts
between the MMOG and the CNG database will be complicated by the CNG requirement to keep
the MMOG code unchanged. Thus a better approach would be to create separate accounts for the
same user on the MMOG and CNG servers.
For the support of the Authentication, Authorization and Accounting methods an AAA Server
engine should be used. Authentication is necessary for the CNG system and a basic authorization
will be needed in order to assign access privileges and protect the system data repository.
Accounting methods are not necessary at this stage since a billing system and trend analysis are
outside the scope of the CNG project.
The CNG database may be based on MySQL RDBMS which is a free and reliable database system
that is commonly used for the database support of Web applications. MySQL is easily manageable
and can also be easily secured. This can be done with control over direct access to the database
tables, and also through views. Views and privileges assigned to the views can be created to limit
users to only see specified portions of data contained within a table. Role-based authentication
through the AAA Server will also be considered when adding access to any database. Typical roles
for access may include administrator, user, programmer and operator. Not all the information will
be public to all users. Instead, each user will be authorized to view the information of the other
users belonging to the same community. Operators are expected to play an essential part in the
production operation of a system, yet they are often restricted in what type of access they are
granted. Segregation of duties should be considered in the operator role, instead of just granting
one operator control over an entire process. Operators’ roles do need to be carefully defined and
kept within the realm of production support as much as possible. Furthermore, all roles should
have logging enabled to keep track of what occurs.
Since the CNG server and the users may exchange critical information, end-to-end security
encryption should be used to protect this information. The security protocols presented in Chapter
5 may be used for this purpose.
8.7 Standards
Analysed with respect to the CNG requirements, the first level of discussion is on open standards
vs. proprietary solutions. The need of in-depth knowledge on the bitstream syntax for the design
of suitable transmission strategies in the P2P network disqualifies proprietary and not
documented solutions. In addition, the suite of ISO/IEC standards is always accompanied by
source code of reference implementation for both encoder and decoder to avoid any confusion
that a solution exposing only APIs may bring.
8.7.1 Natural media
The best candidates for CNG are JPEG for still images, MPEG-4 AVC/H.264 for video and MP3 and
AAC for audio.
The specific nature of video content considered in CNG, namely synthetic content, creates the
premises of the need for a specific coding profile. To our knowledge, there is no profile
established in MPEG-4 AVC/H.264 that specifically addresses synthetic content. Therefore, CNG
will analyse the existent profiles and, if needed, a request for a dedicated profile will be proposed
to MPEG.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 78 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
The access to the depth map allows to optimize the video encoding by setting different quality
parameters based on image segmentation. CNG will investigate on the optimal coding
configuration.
8.7.2 Computer-generated media
For 2D/3D graphics, there was until recently a strong tendency for reinventing the wheel every
time a new authoring tool was born. It is much easier to format the data in a proprietary way,
that one may change afterwards, than to spend time in understanding a standard and sticking to
it forever. That is why there are currently dozens of de jure and de facto standards for
representing exactly the same thing: textured, and possibly animated shapes (usually
approximated by triangular meshes) positioned relative to each other in a synthetic scene. Even
taking into account ISO standards only, this trend was identified as wrong in the past (VRML and
MPEG-4 are around ten years old), but the recent publication of COLLADA may have changed
things. In this new picture, each of these three specifications has its own role: COLLADA could
become the interchange format for authoring tools; MPEG-4 on top of it (as specified in MPEG-4
Part 25) the publishing format of graphics assets; and X3D the format for interactive applications,
enriched by MPEG-4 compression in the case of online ones.
MPEG-4 3D Graphics solutions as specified in ISO/IEC 14496-16 and ISO/IEC 14496-25 offers the
functionalities needed in CNG for 3D graphics representation, compression and transmission. CNG
can contribute to the definition of a profile dedicated to static and animated asset sharing.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 79 of 94
D2.10 SoA and Guideline for Technology
9
CNG: ICT-248175
Conclusions
The CNG projects aims at enhancing collaborative activities among MMOG gamers by developing
new tools for the generation, delivery, and insertion of user-generated content (UGC). This will be
achieved without disrupting the game experience, changing the game logic, or adding processing
and bandwidth loads to the MMOG servers. The proposed tools will be based on the In-Game
Graphics Insertion Technology (IGIT) to change the size of the game screen and insert objects
such as textures and Web browsers, on open source software for the creation of UGC, on P2P
technology for live streaming of user game, and on Web 2.0 technology for collaboration tools.
In the first part of the deliverable, the state of the art in all technology areas related to the
project is presented. The state of the art survey covers MMOG architectures, game adaptation
technologies, tools for the creation and editing of UGC, P2P streaming systems, Web collaboration
tools, and standards.
Highlights of the state of the art review are:
♦
All existing commercial MMOG systems use central servers, which may be supported by
CDNs for the delivery of the static content part of the game. Many academic papers propose
alternative solutions based on P2P or hybrid server-P2P systems, but none of them seems to
be mature enough.
♦
Three game adaptation technologies were identified: in-game overlay, texture replacement,
and game resize, and several commercial products that offer these technologies were
reviewed. None of these products offers all three game adaptation technologies. .
♦
Practices of sharing and remixing content were presented. Current tools for UGC creation,
sharing and remixing were overviewed and their limitations discussed.
♦
State of the art P2P streaming systems were surveyed. Tree-based, mesh-based, DHTassisted, server-assisted, and hybrid CDN-P2P architectures were discussed. For each
architecture, both live and VoD systems were covered. Moreover, transport protocols for P2P
systems were reviewed. It was found that most deployed systems use TCP or UDP without
error control. A few systems using UDP in conjunction with application-layer error control
were proposed in research papers.
♦
Web-based online collaboration tools using Web 2.0 technology were reviewed. These tools
are commonly used by Web-based communities and hosted services, such as socialnetworking sites, wikis, blogs, and folksonomies. They include instant messaging, audio and
video chat, file sharing and online voting and polling. Also server technologies that support
such tools were discussed.
♦
Existing standards related to content representation were analysed with respect to the
project’s requirements, adoption in existent prototypes and products, accessibility of
reference software implementations as well as potential for improvements.
Table 11 lists the features proposed by the CNG project and shows those offered by existing
products.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 80 of 94
D2.10 SoA and Guideline for Technology
Product
Texture
replace
Game
resize
In-game
overlay
Video
capture
Video edit
Video
upload
Live video
Instant
messaging
Audio chat
File
sharing
Polling
Need for
SDK
Xfire
PLAYXPERT
Massive
CNG: ICT-248175
FreeRideGames
x
Double
Fusion
x
Steam
Overwolf
Raptr
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
No
x
x
No
Yes
No
Yes
Yes
x
x
No
No
Table 11: In-game features. An x indicates that the feature is offered by the product.
In the second part of the deliverable, guidelines for the design of the CNG architecture and tools
were provided.
The CNG project is relying on the existing client-server infrastructure as it is the most commonly
used architecture in current MMOG implementations and the one used by RedBedlam.
The game adaptation tools that will be developed within the CNG project will consist of in-game
overlay, texture replacement, and game resize. This should be done without harming the game
experience and without the need for SDK integration.
Tools will be developed to capture video from the screen and either edit it and upload it to video
sharing sites such as YouTube from where it can be watched on demand or stream it live to other
players using the CNG P2P system.
The P2P live system will be developed according to the following guidelines.
•
•
•
•
Physical resources on the player device have to be shared carefully among all processes
running on the device.
Video streaming should not consume the upload and download bandwidth that is necessary
for the smooth operation of the MMOG (MMOG client-server traffic).
A peer should be automatically attached to a subset of all P2P overlays according to its
distance to the different sources and to the capacity of the other peers in its surroundings.
Live video should be delivered at about the same time for all peers in the same region of the
virtual space.
In designing the P2P system the following guidelines are considered:
♦
A mesh-based topology is used. Players/peers are organized in different levels. UDP is used
as the transport protocol, and the video data is protected against packet loss at the
application layer with forward error correction (FEC) in conjunction with receiver feedback.
The proposed approach, a type of incremental redundancy, encodes the source block with an
erasure code (both rateless codes and Reed-Solomon codes will be considered) and keeps on
sending the channel symbols until an acknowledgement is received from the receiver or a
timeout occurs.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 81 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
♦
The source peer computes a scheduling strategy for each source block. The strategy specifies
the maximum number of encoded packets that can be sent for this block, and the time at
which a packet is sent with a hierarchical forwarding scheme.
♦
To protect the upload bandwidth for MMOG traffic, priority queues will be used. For download
bandwidth, each peer keeps track of all its download activities.
♦
In addition to the above features, the CNG project proposes media-adaptive channel coding
and joint source-channel coding for the P2P live video system.
♦
For congestion control, the UDP sending rate will be adapted according to the receiver’s
feedback on the average packet loss rate and forward trip time.
♦
Since a peer cannot obviously participate in all overlays, a multiple overlay management,
which takes into account the position of the peers and the capacity of nearby peers will be
developed.
♦
To distribute non-real-time UGC (e.g., 3D objects, textures, images, video files), the CNG
project aims at using Web 2.0 file sharing tools or existing P2P file sharing systems such as
BitTorrent clients.
In designing the Web 2.0 application and the CNG Server the following guidelines are adopted:
♦
The CNG online collaboration tools will be based on existing technologies for Web 2.0
applications. These technologies are Java, Flash (Adobe Flex framework) and Ajax. In order
to assure the robustness and the interoperability of the Web applications, W3C
recommendations will be followed.
♦
The design of the CNG server should follow an approach of multi-tier architecture. An Apache
HTTP server will be used as the Web server technology of both the Presentation and the
Backend Component. Alternatively, the Backend Component may be running separately on a
different engine, e.g., an Apache Tomcat application server.
♦
The CNG Server will be responsible for the provision of the interfaces for the login and the
registration to the in-game collaboration activities.
♦
For the support of the Authentication, Authorization and Accounting methods an AAA Server
engine should be used.
♦
The CNG database will tentatively be based on MySQL RDBMS. MySQL is easily manageable
and can also be easily secured. This can be done with control over direct access to the
database tables, and also through views. Role-based authentication through the AAA Server
will also be considered when adding access to any database.
For standards, the best candidates are JPEG for still images, MPEG-4 AVC/H.264 for video, MP3
and AAC for audio, and MPEG-4 3D Graphics solutions as specified in ISO/IEC 14496-16 and
ISO/IEC 14496-25 for 3D graphics representation, compression, and transmission.
To conclude, we point out that these guidelines and specifications are provisional and may be
changed during the design stage.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 82 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
10 References
[AbcTec10] ABC Technology. Available at: http://www.abcecommerce.com/technology.html.
[ABMB07] C.J. Augeri, D.A. Bulutoglu, B.E. Mullins, R.O. Baldwin, and L.C. Baird, “An analysis of
XML compression efficiency,” in Proc. 2007 Workshop on Experimental Computer Science, San
Diego, California, June 2007.
[AC10] AJAX Chat - Open Source Web Chat. Available at: https://blueimp.net/ajax/.
[AcSc10] ActionScript – Wikipedia. Available at: http://en.wikipedia.org/wiki/ActionScript.
[Adobe1] Adobe Actionscript. Available at: http://www.adobe.com/devnet/actionscript/.
[Adobe2] Adobe Flash. Available at: http://www.adobe.com/support/flash/downloads.html.
[Adobe3] Adobe Flex. Available at: http://www.adobe.com/products/flex/.
[AdobeRTMP] Adobe RTMP protocol. Available at: http://www.adobe.com/devnet/rtmp/.
[Agar09] A. Agarwal, “Web 3.0 concepts explained in plain English”. Available at:
http://www.labnol.org/internet/web-3-concepts-explained/8908/.
[AF10] Ajax framework – Wikipedia. Available at: http://en.wikipedia.org/wiki/Ajax_framework.
[AFList10] List of Ajax frameworks – Wikipedia. Available at:
http://en.wikipedia.org/wiki/List_of_Ajax_frameworks.
[AFMS10] Adobe Flash Media Server: Overview of Flash Media Server. Available at:
http://help.adobe.com/.
[AhHaAl10] S. Ahmad, R. Hamzaoui, and M. Al-Akaidi, ''Adaptive unicast video streaming with
rateless codes and feedback,” IEEE Transactions on Circuits and Systems for Video Technology,
vol. 20, pp. 275-285, Feb. 2010.
[AHS10] Apache HTTP Server – Wikipedia. Available at:
http://en.wikipedia.org/wiki/Apache_HTTP_Server.
[AhSh08] D. T. Ahmed and S. Shirmohammadi, “A microcell oriented load balancing model for
collaborative virtual environments,” in Proc. VECIMS 2008, Istanbul, July 2008.
[AhShOl09] D. T. Ahmed, S. Shirmohammadi, and J. C. de Oliveira, “A hybrid P2P
communications architecture for zonal MMOGs,” Multimedia Tools Appl., Vol. 45, pp. 313-345,
2009.
[Ajax10] AJAX - European commission. Available at:
ec.europa.eu/ipg/standards/scripting/ajax/index_en.htm.
[AjaxFrameworks] Ajax Frameworks. Available at: http://ajaxpatterns.org/Ajax_Frameworks.
[AkTeCi07] E. Akyol, A.M. Tekalp, and M.R. Civanlar, “A flexible multiple description coding
framework for adaptive peer-to-peer video streaming,” IEEE Journal of Selected Topics in Signal
Processing, vol. 1, issue 2, pp. 231-245, Aug. 2007.
[AlLi09] M. Alhaisoni and A. Liotta. “Characterization of signalling and traffic in Joost,” Journal of
Peer-to-Peer Networking and Applications, vol. 2, issue 1, pp. 75-83, 2009.
[AlMaZh06] S. Ali, A. Mathur, and H. Zhang, “Measurement of commercial peer-to-peer live video
streaming”, in Proceedings of ICST Workshop Recent Adv. Peer-To-Peer Streaming, Waterloo,
Aug. 2006.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 83 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[AlBa03] P. Allen, J. Bambara “Sun Certified Enterprise Architect for J2EE Study Guide”, 2003.
[AlPeYa10] R. Alimi, R. Penno, and Y. Yang, “Alto protocol”. Available at:
http://64.170.98.42/pdf/draft-ietf-alto-protocol-02.pdf.
[Amazon] Amazon. Available at: http://www.amazon.com/.
[AP10] Ajax (programming) – Wikipedia. http://en.wikipedia.org/wiki/Ajax_(programming).
[Apache10] Apache HTTP Server Version 2.2 Documentation. Available at:
http://httpd.apache.org/docs/2.2/.
[Archweb10] General Web Architecture. Available at: http://www.woodger.ca/archweb.htm.
[AsTz06] M. Assiotis and V. Tzanov, “A distributed architecture for MMORPG,” in Proc. ACM
SIGCOMM, 2006.
[AT10] Apache Tomcat – Wikipedia. Available at: http://en.wikipedia.org/wiki/Apache_Tomcat.
[BaLiLe07] N.E. Baughman, M. Liberatore, and B.N. Levine, “Cheat-proof playout for centralized
and peer-to-peer gaming,” IEEE/ACM Transactions on Networking, vol. 15, Feb. 2007.
[Basc06] A. Basch, Instant Messaging for Massive Multi-Player Online Games, Master Thesis,
Freie Universität Berlin, 2006.
[BCFG08] C.E. Bezerra, F. R. Cecin, and C. F. R. Geyer, “A3: a novel interest management
algorithm for distributed simulations of MMOGs,” in Proc. 12th IEEE/ACM International
Symposium on Distributed Simulation and Real-Time Applications, 2008.
[BCHL09] B. Bos, T. Celik, I. Hickson, and H. W. Lie, Cascading Style Sheets Level 2 Revision 1
(CSS 2.1) Specification, 2009. Available at: http://www.w3.org/TR/CSS2/.
[BCNS03] A. Barbir, B. Cain, R. Nair, and O. Spatscheck, “Known content network (CN) requestrouting mechanisms,” IETF RFC 3568, July 2003.
[BDLM08] A. Bharambe, J. R. Douceur, J. R. Lorch, T. Moscibroda, J. Pang, S. Seshan, and X.
Zhuang, “Donnybrook: enabling large-scale, high-speed, peer-to-peer games,” in Proc. SIGCOMM
08, Seattle, WA, Aug. 2008.
[BNSG07] P. Baccichet, J. Noh, E. Setton, and B. Girod, "Content-aware P2P video streaming with
low latency,” Proc. IEEE International Conference on Multimedia and Expo, ICME 2007, Beijing,
China, Jul. 2007.
[BoKiVe06] J.-S. Boulanger, J. Kienzle, and C. Verbrugge, “Comparing interest management
algorithms for massively multiplayer games,” in Proc. NetGames'06: 5th ACM SIGCOMM Workshop
on Network and System Support for Games, New York, NY, 2006.
[BSWG07] P. Baccichet, T. Schierl, T. Wiegand, and B. Girod, "Low-delay peer-to-peer streaming
using scalable video coding", Proc. International Packet Video Workshop, PV2007, Lausanne,
Switzerland, Nov. 2007.
[BVHG08] P. B. Beskow, K.–H. Vik, P. Halvorsen, and C. Griwodz, Latency reduction by dynamic
core selection and partial migration of game state, in Proc. NetGames, Worcester, MA, Oct. 2008.
[Cast01] E. Castronova, “Virtual Worlds: A first-hand account of market and society on the
cyberian frontier,” The Gruter Institute Working Papers on Law, Economics, and Evolutionary
Biology, Vol. 2, Issue 1, 2001.
[CDKNRS03] M. Castro, P. Druschel, A.-M. Kermarrec, A. Nandi, A. Rowstron, and A. Singh,
“SplitStream: High-bandwidth multicast in a cooperative environment,” in Proc. ACM SOSP, 2003.
[ChMi06] P.A. Chou and Z. Miao, “Rate-distortion optimized streaming of packetized media,” IEEE
Trans. Multimedia, vol. 8, pp. 390-404, Apr. 2006.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 84 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[Chou07] P.A. Chou, “Streaming media on demand,” in M. van der Schaar, P.A. Chou (editors),
Multimedia over IP and Wireless Networks: Compression, Networking, and Systems, Academic
Press, 2007.
[CLZJ07] B. Cheng, X. Liu, Z. Zhang, and H. Jin, “A measurement study of a peer-to-peer videoon-demand system," in Proc. IPTPS'07: 6th International Workshop on Peer-to-Peer Systems,
2007.
[COM10] Available at:
http://www.comscore.com/Press_Events/Press_Releases/2010/9/comScore_Releases_August_20
10_U.S._Online_Video_Rankings.
[Comp] Available at: http://en.wikipedia.org/wiki/Template:Compression_formats/.
[CSA10] Client-server architecture. Available at:
http://livedocs.adobe.com/flashmediaserver/3.0/hpdocs/00000003.html.
[CSDP07] Y. R. Choe, D. L. Schuff, J. M. Dyaberi, and V. S. Pai, “Improving VoD server efficiency
with bittorrent," in Proc. MULTIMEDIA '07: 15th international conference on Multimedia, New York,
NY, pp. 117-126, 2007.
[CSJ08] B. Cheng, L. Stein, H. Jin, X. Liao, and Z. Zhang, “Gridcast: Improving peer sharing for
p2p VoD,” ACM Trans. Multimedia Comput. Commun. Appl., vol. 4, no. 4, pp. 1-31, 2008.
[CssTut10] CSS: Stylesheets Tutorial. Available at: http://www.oznet.com/HTML/Style/CSS.WebMonkey.Tutorial/.
[Dapper] Dapper Website. Available at: http://www.dapper.net/.
[DCC10] Direct Client-to-Client Summary. Available at: www.bookrags.com/wiki/Direct_Client-toClient.
[DCKM04] F. Dabek, R. Cox, F. Kaashoek, and R. Morris, “Vivaldi: A decentralized network
coordinate system,” in: Proc. ACM SIGCOMM 2004, Portland, 2004.
[Delicious] Delicious Website. Available at: http://delicious.com/.
[Dier08] T. Dierks, The Transport Layer Security (TLS) Protocol Version 1.2, 2008. Available at:
http://www.ietf.org/rfc/rfc5246.txt.
[DiLo11] R. Diana and E. Lochin, “ECN verbose mode: A statistical method for network path
congestion estimation,” in Proc. INFOCOM, San Diego, CA, 2010.
[DLHC05] C. Dana, D. Li, D. Harrison, and C.-N. Chuah, “Bass: Bittorrent assisted streaming
system for video-on-demand,” in Proc. IEEE 7th Workshop on Multimedia Signal Processing,
Shanghai, Nov. 2005.
[DoHuTa04] T.T. Do, K.A. Hua, and M.A. Tantaoui, “P2VoD: Providing fault tolerant video-ondemand streaming in peer-to-peer environment,” in Proc. IEEE International Conference on
Communications, Volume 3, pp. 1467- 1472, June 2004.
[DoHuTa08] T. T. Do, K. A. Hua, and M. A. Tantaoui, “Robust video-on-demand streaming in
peer-to-peer environments,” Comput. Commun., vol. 31, no. 3, pp. 506-519, 2008.
[Double] Available at: http://www.doublefusion.com/.
[DuZh03] T. N. B. Duong and S. Zhou, “A dynamic load sharing algorithm for massively
multiplayer online games,” in Proc. ICON 2003, Sept. 2003.
[Echo10] Echo2: Turn Java into AJAX Without Touching JavaScript or JSP. Available at:
http://www.devx.com/Java/Article/41356/1954.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 85 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[Enter10] Technologies Enterpi - Software Development Services. Available at:
http://www.enterpi.com/technologies.html.
[Flash10] Adobe Flash – Wikipedia. Available at: http://en.wikipedia.org/wiki/Adobe_Flash.
[Flickr] Available at: http://www.flickr.com/.
[FMS10] Flash Media Server 3.5, Technical Overview. Available at:
http://www.adobe.com/support/documentation/en/flashmediaserver/.
[Freeride] Available at: http://www.freeridegames.com/.
[Garret05] J.J. Garrett, “Ajax: A New Approach to Web Applications”. Available at:
http://adaptivepath.com/ideas/ajax-new-approach-web-applications.
[GCRC04] L. Guo, S. Chen, S. Ren, X. Chen, and S. Jiang, “PROP: a scalable and reliable P2P
assisted proxy streaming system,” in Proc. ICDCS’04, Tokyo, Japan, Mar. 2004.
[GMCC09] D. Gallo, C. Miers, V. Coroama, T. Carvalho, V. Souza, and P. Karlsson, “A multimedia
delivery architecture for IPTV with p2p-based time-shift support," in Proc. CCNC '09: 6th IEEE
Consumer Communications and Networking Conference, Jan. 2009.
[GMMR07] A.-T. Gai, F. Mathieu, F. de Montgolfier, and J. Reynier "Stratification in P2P networks:
application to BitTorrent,” in Proc. 27th IEEE International Conference on Distributed Computing
Systems (ICDCS), 2007.
[GrGaSe09] M. Grangetto, R. Gaeta, and M. Sereno, “Rateless codes network coding for simple
and efficient P2P video streaming,” in Proc. IEEE ICME, 2009.
[GrGaSe09a] M. Grangetto, R. Gaeta, and M. Sereno, “Reducing content distribution time in p2p
based multicast using rateless codes,” in Proc. Italian Networking Workshop, pp. 1-12, Bologna,
2009.
[GSKT03] Y. Guo, K. Suh, J. Kurose, and D. Towsley, “A peer-to-peer on-demand streaming
service and its performance evaluation,” in Proc. ICME '03, Washington, DC, pp. 649-652, 2003.
[GSKT08] Y. Guo, K. Suh, J. Kurose, and D. Towsley, "DirectStream: A directory-based peer-topeer video streaming service,” Journal of Computer Communications, Volume 31, Number 3, pp.
520-536, Feb. 2008.
[GT10] Google Talk – Wikipedia. Available at: http://en.wikipedia.org/wiki/Google_Talk.
[Gudg07] M. Gudgin et al., SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
W3C Recommendation, 2007. Available at: http://www.w3.org/TR/soap12-part1.
[GWA10] Woodger Computing Inc. - General Web Architecture. Available at:
http://www.woodger.ca/archweb.htm.
[GWT10] Google Web Toolkit - The Unofficial Google Wiki. Available at:
http://google.wikia.com/wiki/Google_Web_Toolkit.
[H3C10] H3C - Technical Support & Documents. Available at: http://www.h3c.com/.
[HaKu07] A. Harwood and S. Kulkani, “Delay sensitive identity protection in peer-to-peer online
gaming environments,” in Proc. Int. Conf. Parallel and Distributed Systems, 2007.
[HaLeSi09] B. Han, J. Leblet, and G. Simon,”Query range problem in wireless sensor networks,”
IEEE Comm. Letters, vol. 13, no. 1, pp. 55–57, 2009.
[HBMH08] F. V. Hecht, T. Bocek, C. Morariu, D. Hausheer, and B. Stiller, “Liveshift: Peer-to-peer
live streaming with distributed time-shifting,” in Proc. P2P '08: 8th International Conference on
Peer-to-Peer Computing, Sep. 2008.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 86 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[HeCoKa06] A. Herman, R. Coombe, and L. Kaye, “YOUR SECOND LIFE? Goodwill and the
performativity of intellectual property in online digital gaming,” Cultural Studies, Vol. 20, pp. 184210, March/May 2006.
[HeHaBo03] M. Hefeeda, A. Habib, B. Botev, D. Xu, and B. Bhargava,“PROMISE: peer-to-peer
media streaming using CollectCast,” in Proc. ACM Multimedia, Berkeley, CA, Nov. 2003.
[Herman07] I. Herman, Introduction to the Semantic Web. Available at:
http://www.w3.org/2007/Talks/0831-Singapore-IH/
[HLR07] C. Huang, J. Li, and K. W. Ross, “Peer-assisted VoD: Making internet video distribution
cheap,” in Proc. IPTPS, 2007.
[Hoeh06] B. Hoehrmann, Scripting Media Types, RFC 4329. Available at:
http://tools.ietf.org/html/rfc4329.
[HtCs10] HTML & CSS - W3C. Available at: http://www.w3.org.
[Html10] HTML5 – Wikipedia. Available at: http://en.wikipedia.org/wiki/HTML5.
[Https10] Understanding Login Authentication. Available at:
http://download.oracle.com/javaee/1.4/tutorial/doc/Security5.html.
[HuChCh06] S.-Y. Hu, J.-F. Chen, and T.-H. Chen, “VON: a scalable peer-to-peer network for
virtual environments,” IEEE Network, Volume 20, July-Aug. 2006.
[HuChJi08] S.-Y. Hu, S.-C. Chang, J.-R. Jiang, “Voronoi state management for peer-to-peer
massively multiplayer online games,” in Proc. CCCNC 08.
[IiHaKa04]] T. Iimura, H. Hazeyama, and Y. Kadobayashi, “Zoned federation of game servers: a
peer-to-peer approach to scalable multi-player online games,” in Proc. 3rd ACM SIGCOMM
Workshop on Network and System Support for Games, 2004.
[IRC10] Internet Relay Chat – IRC. Available at: www.airdemon.net/irc.html.
[Iskold10] A. Iskold, “Web 3.0: When Web Sites Become Web Services”, March 2007. Available
at:
http://www.readwriteweb.com/archives/web_30_when_web_sites_become_web_services.php.
[Jabber10] JABBER/XMPP. Available at: http://www.jabbir.org/.
[Java10] Learning Java. Available at: http://jhippjava.blogspot.com/.
[JGKS04] M. Jelasity, R. Guerraoui, A.-M. Kermarrec, and M. V. Steen, “The peer sampling service: experimental evaluation of unstructured gossip-based implementations,” in Proc.
ACM/IFIP/USENIX Int. Conf on Middleware, pp. 79-98, 2004.
[JiHuHu09] J.R. Jiang, Y.-L. Huang, and S.-Y. Hu, ”Scalable AOI-cast for peer-to-peer networked
virtual environments”, Journal of Internet Technology, vol. 10, no. 2, pp. 119–126, 2009.
[JiSa08] X. Jiang and F. Safaei, “Supporting a seamless map in peer-to-peer system for
massively multiplayer online role playing games,” in Proc. 33rd Conf. on Local Computer
Networks, Montreal, Que, Oct. 2008.
[JJC10] Java/JavaScript Chat - PHP Development. Available at: http://www.phpdevelopment.ru/software/chat-java.php.
[JMF] Java Media Framework. Available at:
http://java.sun.com/javase/technologies/desktop/media/jmf/.
[JoLe05] A. St. John and B. N. Levine, “Supporting P2P gaming when players have
heterogeneous resources,” in Proc. NOSSDAV’05, Stevenson, Washington, June 2005.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 87 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[Joost] Joost Website. Available at: http://www.joost.com/.
[KaFe09] E. Kaiser and W.-C. Feng, “PlayerRating: a reputation system for multiplayer online
games,” in Proc. NetGames 2009, Paris, France.
[Kanjilal10] C. Kanjilal, “Google Adds File Transfer to Orkut and iGoogle Chat, Arriving Soon on
GMail Google Chat”, March 2010. Available at: http://techie-buzz.com/tech-news/gmail-orkutgoogle-chat-coming-on-google.html.
[KeSi03] J. Keller and G. Simon, “Solipsis: massively multi-participant virtual world,” in Proc. Int.
Conf. Parallel and Distributed Techniques and Applications, pp. 262-268, 2003.
[Kest09] A. van Kesteren, XMLHttpRequest, W3C Working Draft, 2009. Available at:
http://www.w3.org/TR/2009/WD-XMLHttpRequest-20091119/.
[KhScSw00] A. Khodakovsky, P. Schröder, and W. Sweldens, “Progressive geometry
compression,” in Proc. SIGGRAPH 2000, pp. 271-278, 2000.
[KiYeLe04] K. Kim, I. Yeom, and J. Lee, “HYMS: A hybrid MMOG server architecture,” IEICE
Trans. Info. and Sys., vol. E87-D, no. 12, 2004.
[KLLS09] A.-M. Kermarrec, E. Le Merrer, Y. Liu, and G. Simon, “Surfing peer-to-peer IPTV
system: distributed channel switching,” in Proc. EuroPar, 2009.
[KLXH04] B. Knutsson, H. Lu, W. Xu, and B. Hopkins, “Peer-to-peer support for massively
multiplayer games,” in Proc. INFOCOM 2004.
[KoRa03] J. Könemann and R. Ravi,”Primal-dual meets local search: approximating MST’s with
nonuniform degree bounds”, Proc. 35th Annual ACM Symposium on Theory of Computing, 2003.
[KTCB05] P. Kabus, W. W. Terpstra, M. Cilia, and A. P. Buchmann, “Addressing cheating in
distributed MMOGs,” in Proc. NetGames 05.
[Last08] G. Lastowka, “User-generated content & virtual worlds,” Vanderbilt Journal of
Entertainment and Technology Law, 2008. Available at:
http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1094048.
[LGGVS00] C. de Laat, G. Gross, L. Gommans, J. Vollbrecht, D. Spence, “Generic AAA
Architecture,” IETF RFC 2903, 2000.
[LKLL08] B. Li, G. Y. Keung, C. Lin, J. Liu, and X. Zhang, “Inside the new coolstreaming:
Principles, measurements and performance implications,” in Proc. INFOCOM'08, 2008.
[LPSZ10] A. Lenhart, K. Purcell, A. Smith, and K. Zickuhr, “Social media and young adults,” Feb.
2010. Available at: http://pewinternet.org/Reports/2010/Social-Media-and-Young
Adults/Summary-of-Findings.aspx?r=1
[LWPH07] M.-T. Lu, J.-C. Wu, K.-J. Peng, P. Huang, J. J. Yao, and H. H. Chen, “Design and
evaluation of a P2P IPTV system for heterogeneous networks,” IEEE Transactions on Multimedia,
vol. 9, pp. 1568-1579, Dec. 2007.
[MaRe09] N. Magharei and R. Rejaie, “PRIME: Peer-to-peer receiver-driven mesh-based
streaming,” IEEE/ACM Transactions on Networking, vol. 17, Issue 4, pp. 1052-1065, Aug. 2009.
[Massive] Available at: http://www.massiveincorporated.com/.
[MCDR02] Z. M. Mao, C. D. Cranor, F. Douglis, M. Rabinovich, O. Spatscheck, and J. Wang, “A
precise and efficient evaluation of the proximity between web clients and their local DNS servers,”
in Proc. USENIX Annual Technical Conference, 2002.
[MeRh04] M. Merabti and A. El Rhalibi, “Peer-to-peer architecture and protocol for a massively
multiplayer online game,” in Proc. Globecom 2004.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 88 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[Mesbah09] A. Mesbah, “Analysis and Testing of Ajax-based Single-page Web Applications”,
Thesis Delft University of Technology, 2009.
[Mibbit10] Mibbit – Wikipedia. Available at: http://en.wikipedia.org/wiki/Mibbit.
[MKHH09] T. Mori, N. Kamiyama, S. Harada, H. Hasegawa, and R. Kawahara, “Improving
deployability of peer-assisted CDN platform with incentive,” in Proc. 28th GLOBECOM, Honolulu,
Hawaii, 2009.
[MMO1] Available at: http://www.mmocrunch.com/2008/02/08/why-console-mmorpgs-cant-cutit/. (Feb. 2008).
[MMO2] Available at: http://www.massively.com/2009/09/18/agdc09-breaking-turbine-confirmsconsole-mmo-in-the-works/. (Sept. 2009).
[MMO3] Available at: http://www.digitalspy.co.uk/gaming/news/a234028/twisted-pixeldeveloping-turbine-mmo.html/. (June 2010).
[MMOG] Available at: http://www.mmogchart.com/.
[MPEG99] ISO/IEC JTC1/SC29/WG11, Standard 14496 2, a.k.a. MPEG 4 Part 2: Visual, ISO,
1999.
[MPEG04] ISO/IEC JTC1/SC29/WG11, Standard 14496 16, a.k.a. MPEG 4 Part 16: Animation
Framework eXtension (AFX), ISO, 2004.
[MT10] Movable Type – Wikipedia. Available at: http://en.wikipedia.org/wiki/Movable_Type.
[MTA10] Multitier architecture – Wikipedia. Available at:
http://en.wikipedia.org/wiki/Multitier_architecture.
[MTF10] Movable Type: Facts, Discussion Forum, and Encyclopedia Article. Available at:
http://www.absoluteastronomy.com/topics/Movable_Type.
[Mysql] MySQL. Available at : http://www.mysql.com/.
[Mysql10] MySQL – Wikipedia. Available at: http://en.wikipedia.org/wiki/MySQL.
[Netfix] Netfix Website. Available at: http://www.netflix.com/.
[NPFI09] V. Nae, R. Prodan, T. Fahringer, and A. Iosup, “The Impact of virtualization on the
performance of massively multiplayer online games,” in Proc. NetGames 2009, Paris, France,
2009.
[NPND07] V. Nevena, G. Priya, K. Nikola, K. Dejan, and R. Antony, “Enabling DVD-like features in
p2p video-on-demand systems,” in Proc. P2P-TV '07: 2007 Workshop on Peer-to-Peer Streaming
and IP-TV, New York, NY, pp. 329-334, 2007.
[O’Dell10] J. O’Dell, “Second Life users file class action lawsuit over virtual land,” 2010. Available
at: http://mashable.com/2010/05/03/second-life-users-file-class-action-lawsuit-over-virtualland/.
[OiRe93] J. Oikarinen and D. Reed, Internet Relay Chat, IETF RFC 1459, 1993.
[Opensocial] Opensocial Website. Available at: http://www.opensocial.org/.
[Opensources10] Opensources. Available at: http://www.web-trendz.com/opensource.html.
[Over] Available at: http://www.overwolf.com/.
[PaSk09] N. Papatheodoulou and N. Sklavos, “Architecture & system design of authentication,
authorization & accounting services,” in Proc. IEEE EUROCON 2009.
[PaWaCh03] V. N. Padmanabhan, H.J. Wang, and P.A Chou, “Resilient peer-to-peer
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 89 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
streaming,” in Proc. IEEE ICNP, pp. 16–27, 2003.
[PeKiKu05] J. Peng, C.-S. Kim, and C.-C. J. Kuo, “Technologies for 3D mesh compression: A
survey,” Journal of Visual Communication and Image Representation, Volume 16, Issue 6, pp.
688-733, 2005.
[PiSt06] G. Pierre and M. van Steen, “Globule: A collaborative content delivery network,” IEEE
Communications Magazine, Vol. 44, pp. 127-133, Aug. 2006.
[PlayX] Available at: http://www.playxpert.com/web/guest/product.
[PlayXfeatures] Available at: http://en.wikipedia.org/wiki/PlayXpert.
[PPKB07] F. Pianese, D. Perino, J. Keller, and E.W. Biersack, “PULSE: An adaptive, incentivebased, unstructured P2P Live streaming system”, IEEE Transactions on Multimedia, Volume 9,
Number 8, pp. 1645-1660, Dec. 2007.
[PPlive] Available at: http://www.PPlive.com.
[PPstream] Available at: http://www.PPstream.com.
[PuGu07] D. Purandare and R. Guha, “BEAM: A peer-to-peer framework for live media
streaming,” P2P-TV'07, Kyoto, Japan, Aug 2007.
[PWCS02] V. N. Padmanabhan, H. J.Wang, P. A. Chou, and K. Sripanidkulchai, “Distributing
streaming media content using cooperative networking,” in Proc. NOSSDAV '02, pp. 177-186,
2002.
[QWLL09] X. Qiu, C. Wu, X. Lin, and F. C. Lau, “Instantleap: Fast neighbor discovery in p2p VoD
streaming,” in Proc. NOSSDAV' 09, 2009.
[RaHoJa99] D. Raggett, A. Le Hors, and I. Jacobs, HTML 4.01 Specification, W3C
Recommendation, 1999. Available at: http://www.w3.org/TR/html401/.
[Raptr] Available at: http://raptr.com/
[Red510] Red5 Media Server. Available at: http://osflash.org/red5.
[Resc00] E. Rescorla, HTTP over TLS. Available at: http://tools.ietf.org/html/rfc2818.
[RFC4340] Available at: http://tools.ietf.org/html/rfc4340.
[Roed07] M. Röder, Efficient Rate-Distortion Optimized Media Streaming, PhD Thesis, University
of Konstanz, 2007.
[Rtmp10] Real Time Streaming Protocol – Wikipedia. Available at:
http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol.
[Rtmfp10] Cirrus | Real Time Media Flow Protocol (RTMFP) - Adobe Labs. Available at:
http://labs.adobe.com/technologies/cirrus/.
[RV] Available at: http://www.roma-victor.com/.
[RWHM03] J. Rosenberg, J.Weinberger, C. Huitema, and R. Mahy, “Stun simple traversal of user
datagram protocol (UDP) through network address translators (NATs),” IETF RFC 3489, 2003.
[Sain04] P. Saint-Andre, “Extensible Messaging and Presence Protocol (XMPP): Core,” IETF RFC
3920, 2004.
[SCFJ03] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, “RTP: A transport protocol for
real-time applications,” IETF RFC 3550, 2003.
[Screen] Available at: http://www.screendigest.com/.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 90 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[SDKM07] K. Suh, C. Diot, J. Kurosey, L. Massoulie, C. Neumann, D. Towsley, and M. Varvello,
“Push-to-Peer video-on-demand system: design and evaluation,” IEEE Journal on Selected Areas
in Communications, vol. 25, no. 9, 2007.
[SeBu09] J. Seedordf and E. W. Burger, “Application-Layer Traffic Optimization (ALTO) Problem
Statement,” IETF RFC 5693, Oct. 2009.
[SecondLife] Available at: http://secondlife.com/?v=1.1
[SeNoGi05] E. Setton, J. Noh, and B. Girod, “Rate-distortion optimized video peer-to-peer
multicast streaming,” in Proc. ACM APPMS, pp. 39–48, 2005.
[SeNoGi06] E. Setton, J. Noh, and B. Girod, “Congestion-distortion optimized peer-to-peer video
streaming,” Proc. IEEE ICIP-2006, Atlanta, GA, Oct. 2006.
[ShHuTa97] S. Sheu, K. A. Hua, and W. Tavanapong, “Chaining: a generalized batching
technique for video-on-demand systems,” in Proc. IEEE Int. Conf. Multimedia Computing and
Systems '97, pp. 110-117, June 1997.
[SiFo07] T. Silverston and O. Fourmaux, “Measuring P2P IPTV systems,” in Proc. ACM
NOSSDAV'07, June 2007.
[SipPh10] Open source web based sip phone. Available at: http://raytipha.bligoo.com/opensource-web-based-sip-phone.
[Sopcast] Available at: http://www.sopcast.com/.
[SRSZ02] Y.-H. C. Sanjay, S. G. Rao, S. Seshan, and H. Zhang, “A case for end system
multicast,” in Proc. ACM Sigmetrics, pp. 1-12, 2002.
[Steam] Available at: http://store.steampowered.com/
[SuKu08] A.J. Su and A. Kuzmanovic, “Thinning Akamai,” in Proc. 8th ACM SIGCOMM Conference
on Internet Measurement, 2008.
[SW10] Semantic Web – Wikipedia. Available at: http://en.wikipedia.org/wiki/Semantic_Web.
[Taka08] D. Takahashi, “YouTube game videos become a big channel for game marketers”,
2008. Available at: http://games.venturebeat.com/2008/12/18/youtube-game-videos-become-abig-channel-for-game-marketers/
[Tech08] Core characteristics of Web 2.0 services. Available at: http://www.techpluto.com/web20-services/.
[ThFr07] N. Thomos and P. Frossard, “Raptor network video coding,” in Proc. 1st ACM
International Workshop on Mobile video (in conjunction with ACM Multimedia 2007), Augsburg,
Germany, Sep. 2007.
[Tomc10] Apache Tomcat 2.0, Documentation. Available at :http://tomcat.apache.org/tomcat6.0-doc/index.html
[TSHP05] Y.-C. Tu, J. Sun, M. Hefeeda, and S. Prabhakar, “An analytical study of peer-to-peer
media streaming system,” ACM Transactions on Multimedia Computing, Communications, and
Applications, Vol. 1, No. 4, pp. 354-376, 2005.
[TVAnts] Available at: http://www.tvants-ppstream.com/.
[VaBiDi07] M. Varvello, E. Biersack, and C. Diot, “Dynamic clustering in Delaunay based P2P
networked virtual environments,” in Proc. NetGames, 2007.
[VFBD09] M. Varvello, S. Ferrari, E. W. Biersack, and C. Diot, “Distributed avatar management
for Second Life,” in Proc. NetGames 2009, Paris, France.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 91 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[VGKK07] N. Vratonjic, P. Gupta, N. Knezevic, D. Kostic, and A. Rowstron, “Enabling DVD-like
features in P2P video-on-demand systems,” in ACM SIGCOMM 2007 Peer-to-Peer Streaming and
IP-TV Workshop (P2P-TV’07), Kyoto, Japan, Aug. 2007.
[VIF06] A. Vlavianos, M. Iliofotou, and M. Faloutsos, “Bitos: Enhancing bittorrent for supporting
streaming applications," in Proc. INFOCOM '06: 25th IEEE International Conference on
Computer Communications, pp. 1-6, April 2006.
[W3C] World Wide Web Consortium (W3C). Available at: http://www.w3.org/TR/.
[WAG10] The Fundamentals of Web Analytics Glossary. Available at:
http://www.webtrends.com/Education/Glossary.
[WaLi07] M. Wang and B. Li, “R2: Random push with random network coding in live peer-to-peer
streaming”, IEEE Journal on Selected Areas in Communications, Vol. 25, Number 9, pp. 16551666, Dec. 2007.
[WaLi08] D. Wang and J. Liu, “A dynamic skip list-based overlay for on-demand media streaming
with VCR interactions,” IEEE Trans. on Parallel and Distributed Systems, vol. 19, no. 4, pp. 503514, April 2008.
[Web10] Web 2.0 – Wikipedia. Available at: http://en.wikipedia.org/wiki/Web_2.0.
[WebEs10] Web 2.0 Essentials - Glostra Wiki - Aalto University Wiki. Available at:
https://wiki.aalto.fi/display/Glostra/Web+2.0+Essentials.
[WeSoTr08] S. D. Webb, S. Soh, and J.L. Trahan, “Secure referee selection for fair and
responsive peer-to-peer gaming,” in Proc. PADS 08, 2008.
[Wink] Available at: http://wink.com/.
[Wiki] Available at: http://en.wikipedia.org/wiki/Massive_Incorporated.
[WoW] Available at: http://www.worldofwarcraft.com/.
[WP10] WordPress – Wikipedia. Available at: http://en.wikipedia.org/wiki/WordPress.
[WPD10] Wordpress Development – Advantech. Available at:
http://advantechsolutions.com.au/wordpress_development.html.
[WuLi05] C. Wu and B. Li, “Optimal peer selection for minimum-delay peer-to-peer streaming
with rateless codes,” in Proc. ACM Workshop on Advances in Peer-to-Peer Multimedia Streaming,
Singapore, pp. 69–78, Nov. 2005.
[WuLi08] C. Wu and B. Li, “rStream: resilient and optimal peer-to-peer streaming with rateless
codes,” IEEE Transactions on Parallel and Distributed Systems, vol. 19, no. 1, pp. 77–92, Jan.
2008.
[Xfire] Xfire live video. Available at http://www.xfire.com/live_video/.
[Xfirefeatures]. Available at: http://en.wikipedia.org/wiki/Xfire.
[XKRC06] D. Xu, S. S. Kulkarni, C. Rosenberg, and H.-K. Chai, “Analysis of a CDN-P2P hybrid
architecture for cost-effective streaming media distribution,” ACM/Springer Multimedia Systems,
Vol. 11, No. 4, pp. 383-399, 2006.
[Xmlrpc] XML-RPC Home Page. Available at : http://www.xmlrpc.com/.
[XWPR04] X. Xu, Y. Wang, S. S. Panwar, and K. W. Ross, “A peer-to-peer video-on-demand
system using multiple description coding and server diversity,” in Proc. IEEE Int. Conf. Image
Processing, 2004.
[XYKL08] H. Xie, Y. R. Yang, A. Krishnamurthy, Y. G. Liu, and A. Silberschatz, “P4p: Provider
portal for applications,” ACM SIGCOMM Computer Communication Review, Vol. 38, No. 4, 2008.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 92 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
[Yahoo] Yahoo Pipes Website. Available at: http://pipes.yahoo.com/pipes/.
[YiJiCh07] W.-P. K. Yiu, X. Jin, and S.-H. G. Chan, “Vmesh: Distributed segment storage for peerto-peer interactive video streaming,” IEEE Journal on Selected Areas in Communications,
vol. 25, no. 9, pp. 1717-1731, Dec. 2007.
[YKJD03] G. Yang, S. Kyoungwon, K. Jim, and T. Don, “P2cast: peer-to-peer patching scheme for
VoD service,” in Proc. 12th Int. Conf. World Wide Web, pp. 301-309, 2003.
[YLZS09] H. Yin, X. Liu, T. Zhan, V. Sekar, F. Qiu, C. Lin, H. Zhang, and B. Li, “Design and
deployment of a hybrid CDN-P2P system for live video streaming: Experiences with livesky,” in
Proc. ACM Multimedia, 2009.
[YouTube1] Comment on Game manoeuver. Available at:
http://www.youtube.com/watch?v=P758_GR46TQ
[YouTube2] Comment on Game manoeuver. Available at:
http://www.youtube.com/watch?v=KaGnrfS6lQc&feature=related
[YouTube3] Starcraft gameplay with many “Likes”. Available at:
http://www.youtube.com/watch?v=MJSGHytzKN0
[YouTubeHowTo1] HowTo video. Available at:
http://www.youtube.com/watch?v=m6XqQM9hgB0&feature=related
[YouTubeHowTo2] HowTo video. Available at:
http://www.youtube.com/watch?v=KaGnrfS6lQc&feature=related
[YouTubeSpore] Spore Case Study on YouTube. Available at:
http://code.google.com/apis/youtube/casestudies/ea.html
[YuLa07] Y.C.A. Yu and K.L.E. Law, “Grid computing on massively multi-user online platform,” in
Proc. ICCCN, Honolulu, HI, Aug. 2007.
[YuVu05] A. Yu and S. T. Vuong, “MOPAR: a mobile peer-to-peer overlay architecture for interest
management of massively multiplayer online games,” in Proc. NOSSDAV '05, New York, NY,
2005.
[Zattoo] Available at: http://zattoo.com/view/.
[ZhLi05] M. Zhou and J. Liu, “A hybrid overlay network for Video-on-Demand,” in Proc. IEEE
ICC, Seoul, Korea, Volume 2, pp. 1309-1313, May 2005.
[ZhSuYa08] M. Zhang, L. Sun, and S. Yang, “iGridMedia: Providing delay-guaranteed peer-topeer streaming service on Internet,” Proc. IEEE GLOBECOM 2008, New Orleans, LO, Dec. 2008.
[ZLZY05] M. Zhang, J.-G. Luo, L. Zhao, and S.-Q. Yang, “A peer-to-peer network for live media
streaming using a push-pull approach,” in Proc. 13th ACM International Conference on
Multimedia, 2005.
[ZZSY07] M. Zhang, Q. Zhang, L. Sun, and S. Yang, “Understanding the power of pull-based
streaming protocol: Can we do better?,” IEEE Journal on Selected Areas in Communications, Vol.
25, pp. 1678-1694, Dec. 2007.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 93 of 94
D2.10 SoA and Guideline for Technology
CNG: ICT-248175
11 Abbreviations
ALM: Application layer multicast.
AoI: Area of interest.
API: Application programming interface.
ARQ: Automatic repeat request.
CDN: Content delivery network.
CGI: Common Gateway Interface.
CNG: Community Network Game.
CSS: Cascading Style Sheets.
DCC: Direct Client-to-Client.
DCCP: Datagram Congestion Control Protocol.
DHT: Distributed Hash Table.
DNS: Domain name system.
DOM: Document Object Model.
DT: Delaunay triangulation.
ECN: Explicit Congestion Notification.
FEC: Forward error correction.
FTT: Forward trip time.
GWT: Google Web Toolkit.
HTTP: Hypertext Transfer Protocol.
HTTPS: Hypertext Transfer Protocol Secure.
IGIT: In-Game Graphics Insertion Technology.
IP: Internet Protocol.
IRC: Internet Relay Chat.
ISP: Internet Service Provider.
LDAP: Lightweight Directory Access Protocol.
MDC: Multiple description coding.
MMOG: Massively multiplayer online game.
NAS: Network Access Server.
NAT: Network address translation.
NVE: Networked Virtual Environment.
PAS: Peer-assisted.
P2P: Peer-to-peer.
QoE: Quality of experience.
QoS: Quality of service.
RADIUS: Remote Authentication Dial In User Service.
RPC: Remote Procedure Call.
RTMFP: Real Time Media Flow Protocol.
RTMP: Real Time Messaging Protocol.
RTP: Real-time Transport Protocol.
SDK: software development kit.
SIP: Session Initiation Protocol.
SL: Second Life.
SOAP: Simple Object Access Protocol.
SVC: Scalable Video Coding.
TCP: Transmission control protocol.
TLS: Transport Layer Security.
UDP: User datagram protocol.
UGC: User-generated content.
UI: User interface.
VCR: Video Cassette Recorder.
VoD: Video on demand.
WoW: World of Warcraft.
WWW: World Wide Web.
XML: Extensible Markup Language.
XMPP: Extensible Messaging and Presence Protocol.
----------------------------------------------------------------------------------------------------------© Copyright 2010-2012 CNG Consortium
15/08/2011
Page 94 of 94