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