ETSI-ObjectWeb Mobile Middleware WorkshopPage 1 Middleware for mobile multiplayer online games PELLERIN Romain RIAM Project (1 year): JIMM (Bouygues Telecom,

Slides:



Advertisements
Similar presentations
J2EE Architecture Overview
Advertisements

MMOs and Socket Servers Diego O. Scarpa 10 y 11 de Diciembre – Hotel Panamericano - Buenos Aires.
Context-Awareness on Mobile Devices – the Hydrogen Approach Sangkeun Lee.
Online Educational Game of Snakes and Ladders -Shalini Pradhan -Manali Joshi -Uttara Paingankar -Seema Joshi.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Public Displays and Private Mobile Phone Displays in Multiplayer Games Riku Suomela Nokia Research Center.
Visual jMUD Oscar Chen CS491. Important Note The IMAGES used in this presentation and demonstration of Visual jMUD are COPYRIGHT by their respective holders.
6/4/2015Page 1 Enterprise Service Bus (ESB) B. Ramamurthy.
“Turn you Smart phone into Business phone “
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Distributed Systems and the WWW Extending the Capability of Massively Multiplayer Online Games by Introducing Distributed Systems as World Servers Jason.
OnME Platform Tutorial Ken Hui System Analyst OnME Research Laboratory.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Chapter 7: Client/Server Computing Business Data Communications, 5e.
II. Middleware for Distributed Systems
© 2004 IBM Corporation BEA WebLogic Server Introduction and Training.
Understanding and Managing WebSphere V5
A Framework for Smart Proxies and Interceptors in RMI Nuno Santos P. Marques, L. Silva CISUC, University of Coimbra, Portugal
Sheet 1XML Technology in E-Commerce 2001Lecture 4 XML Technology in E-Commerce Lecture 4 Case Study: XmlMessenger.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Online Game JAVA for PDA WAP for Mobile Phone. Java for PDA  Hardware limit - Java API Power Memory  JDK 2M byte. Connectivity Display size.
Client/Server Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Massively Multiplayer Online Games and Mobile Devices.
System Architecture.  Windows Phone 7  Mobile Phone Application  User – End Perspective  Google App Engine  Administration Console  Handles authentication,
A. Dworak BE-CO-IN, CERN. Agenda 228th June 2012  Sum up of the previous report  Middleware prototyping  Transport  Serialization  Design concepts.
OSIA Portal 2009 Mid-Term Presentation Nazim Öztahtaci Jiawei Chen Parvinder Gill Ye Tian Xin Guo Communication System Design 2009 Fall Mid-Term Workshop.
Leonardo da Vinci BeLT - Blended Learning Transfer On line collaboration Previous experience and proposal Confindustria Veneto SIAV SpA Mestre, Fabruary.
® 2007 Solid Information Technology Data Management for Automotive Standardization requirements Franz-Josef Maintz Solid Information Technology
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Online Game Anatomy Server Components &Services. Server Categories  Passive  Patching  Authentication  Game Data Storage  Stats / Inventory  Event.
D.S.I. Venezia L.N.L CMS Error Handling in RCMS An Overview Francesco Lelli
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
1 06/00 Questions 10/6/2015 QoS in DOS ECOOP 2000John Zinky BBN Technologies ECOOP 2000 Workshop on Quality of Service in Distributed Object Systems
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Evaluation of a Publish/Subscribe System for Collaboration and Mobile Working Collaborative Advertising over Internet with Agents Independent Study: Wireless.
Copyright, 1996 © Dale Carnegie & Associates, Inc. Presented by Hsiuling Hsieh Christine Liu.
ETSI-ObjectWeb Mobile Middleware WorkshopPage 1 Middleware for mobile multiplayer online games PELLERIN Romain RIAM Project (1 year): JIMM (Bouygues Telecom,
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
J2EE Overview ver 1.0Page 1 © Wipro Technologies Talent Transformation J2EE Overview.
OS2- Sem ; R. Jalili Introduction Chapter 1.
A Distributive Server Alberto Pareja-Lecaros. Introduction Uses of distributive computing - High powered applications - Ever-expanding server so there’s.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Title Line Subtitle Line Top of Content Box Line Top of Footer Line Left Margin LineRight Margin Line Top of Footer Line Top of Content Box Line Subtitle.
1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
DIS Project – Blackjack  Membership and job distribution –R 陳冠宇  client, game process –R 凌宇  server, game UI –R 謝昇穎  DB communicate.
Teleseminar Nice – Mannheim w3auction 1 W3 AUCTION Vanessa BOUCHET, Lars KLOSE, Heiko KOPITZKI, Annabelle LE SONN, Dorothée ROBERT, Gunnar WIEDENFELS.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Stream Spider Distributed Music Streaming Service with Sliced Music Files from Different Originating Hosts Justin Steffy and Michael D. Elder.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
AFS/OSD Project R.Belloni, L.Giammarino, A.Maslennikov, G.Palumbo, H.Reuter, R.Toebbicke.
The overview How the open market works. Players and Bodies  The main players are –The component supplier  Document  Binary –The authorized supplier.
DIS Final Project Proposal Content Express R 許坤進 R 余世傑 R 洪啓仁.
Mobile Analyzer A Distributed Computing Platform Juho Karppinen Helsinki Institute of Physics Technology Program May 23th, 2002 Mobile.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Real-Time Systems Lab. OSGi overview January 23, 2002 Sung-ho Park.
Grid Computing.
Time Gathering Systems Secure Data Collection for IBM System i Server
Guest Book Application
Chapter 17: Client/Server Computing
Presentation transcript:

ETSI-ObjectWeb Mobile Middleware WorkshopPage 1 Middleware for mobile multiplayer online games PELLERIN Romain RIAM Project (1 year): JIMM (Bouygues Telecom, CNAM-Cedric, Pastagames) Research project: CNAM-Cedric, INT

ETSI-ObjectWeb Mobile Middleware WorkshopPage 2 Contents 1.Game middleware platform functionalities 2.Game middleware for mobile market overview 3.Gaming Services Platform (GASP):  Objectives  Implementation 4.Conclusion and Perspectives

ETSI-ObjectWeb Mobile Middleware WorkshopPage 3 Game middleware functionalities Dedicated to multiplayer games Game services for  Players: accounts management, lobby room handling, buddy management, high scores handling  Editors: game publishing (includes updates), players management, competition management  System administrator: monitoring, logging, load sharing System services Security, data exchange optimisation, load balancing, fault tolerance, persistency, monitoring, logging, data mining…

ETSI-ObjectWeb Mobile Middleware WorkshopPage 4 Game middlewares for mobile market overview Existing middlewares for mobile multiplayer games  Proprietary platforms:Terraplay MOVE, Exit Games, InFusio EGE, Pixel Technologie JIVE, KayaK Interactive LIVE, Cash-U PECAN GAMING  No open source platforms for mobile (Massiv and Nel are for desktop environnements) Status of commercial platforms  Proprietary platforms have specific architecture and concepts.  => incompatibility of interfaces Games portability issues No interoperability between platforms  => Normalization

ETSI-ObjectWeb Mobile Middleware WorkshopPage 5 Market overview (2) Normalization activity: Open Mobile Alliance (OMA) Normalization started in 1999 in Mobile Gaming Interopérability Forum (MGIF) MIGF integrated into OMA in 2002 OMA  Founded in 2002 by a set of ~200 companies (IBM, Intel, France Telecom, Motorola, Ericsson, Siemens…)  Goal: standardize all technologies concerning mobile  One of the working group = Gaming Services which improves MGIF specifications

ETSI-ObjectWeb Mobile Middleware WorkshopPage 6 Implement OMA Gaming Services Specifications Open source Target –MIDP and Doja mobiles –Pseudo real-time games GAming Services Platform (GASP) Objectives

ETSI-ObjectWeb Mobile Middleware WorkshopPage 7 Data model Architecture Events model  Event types  MooDS protocol GAming Services Platform (GASP) Implementation

ETSI-ObjectWeb Mobile Middleware WorkshopPage 8 GASP Data model User MasterApplicationInstance ApplicationInstance ActorSessionSessionActor Application * Platform 1 0..* Rights Database Classes

ETSI-ObjectWeb Mobile Middleware WorkshopPage 9 PLATFORM REPRESENTATION Services Platform OTA GASP DB MOBILE GASP Client Game Logic ApplicationInstance ActorSession MasterApplicationInstance GAMES REPRESENTATION IDManager DBManager GASP Architecture COMMUNICATION MANAGEMENT FirstLogin Login Join Lobby Create InGame StartAI Name EndAI QuitAI Quit Server Game Logic GAME SERVER GASP Server extends com/calls association

ETSI-ObjectWeb Mobile Middleware WorkshopPage 10 GASP Events model 5 event types  JoinEvent => A new player joins  StartEvent => Start of the game  EndEvent => End of the game  QuitEvent => A player quits  DataEvent => In-game data received from a player or the server game logic 2 types of events listeners  ActorSessions (the players)  GASPServer (the server game logic) JOINactorSIDUsername DATAactorSIDHashtable START QUITactorSID END

ETSI-ObjectWeb Mobile Middleware WorkshopPage 11 SERVLET CONTAINER InGame D MOBILE ActorSession A ActorSession B GASP Events Model: Example A MOBILE B C JoinAI ActorSession C ActorSession D Join?sID onJoinEvent(e) ApplicationInstance listenners:Vector actorSessions:Vector onJoinEvent(e) raiseEventToListenners(e) raiseEventToActorSessions(e) raiseEvent (e) createAS(sID) aSID getEvents() Server Game Logic GAME SERVER GASP Server aSID4 PseudoJOIN aSID4 PseudoJOIN aSID4 PseudoJOIN aSID4 PseudoJOIN PLATFORM REPRESENTATION

ETSI-ObjectWeb Mobile Middleware WorkshopPage 12 GASP Event model: MooDS … … types.xml MooDS Generator gamePackage.CustomTypes void encodeUpdate(DataOutputStream dos) Update decodeUpdate(DataInputStream dis) Hashtable decodeData(DataInputStream dis) void encodeUpdate(Hashtable h, DataOutputStream dos) Objects description file Class including Encoding/Decoding methods CustomTypes.java Mobile Optimized Objects Description & Serialization (MooDS) –Goal: Increase communication speed by reducing length of in-game data messages –Algorithm: Send the game objects by values (primitive types)

ETSI-ObjectWeb Mobile Middleware WorkshopPage 13 Server Game Logic GAME SERVER GASP Server SERVLET CONTAINER InGame GASP Events Model with MooDS ActorSession D ApplicationInstance listenners:Vector actorSessions:Vector onDataEvent(e) raiseEventToListenners(e) server:MGPServer types:CustomTypes getCustomTypes() onDataEvent(e) raiseEvent(e) sendDataTo(aSID,e) events:Vector putEvent(e) getEvents() putEvent(e) getEvents() CustomTypes MOBILE GASP Client Game Logic CustomTypes encodedData PLATFORM REPRESENTATION

ETSI-ObjectWeb Mobile Middleware WorkshopPage 14 Conclusion & Perspectives GASP is an open source Java platform for mobile mutiplayer online games Status –Development according to a spiral model –First release = Prototype –On-going: Network load and machine load tests Perspectives –Open source publication –Implementation optimizations regarding tests results –New functionalities: Improved players communities management Competition management, reflection on a generic competition framework Multiple game execution model (automatic, proprietary…), reflection on a generic game execution framework

ETSI-ObjectWeb Mobile Middleware WorkshopPage 15 [1] R. Pellerin. GAming Services Platform, Plateforme pour les jeux multijoueurs sur mobiles. Research Master report (DEA). CNAM- Cedric/INT/Paris 6. September 2004 ( bretagne.fr/pub/bscw.cgi/0/ ) [2] R. Pellerin. Mobile Gaming Services, Services pour les jeux multijoueurs sur mobiles. Bibliography report. CNAM-Cedric/INT/Paris 6. June 2004 ( Bibliography

ETSI-ObjectWeb Mobile Middleware WorkshopPage 16 User MasterApplicationInstance ApplicationInstance ActorSessionSessionActor Application * OMA Gaming Services Specifications

ETSI-ObjectWeb Mobile Middleware WorkshopPage 17 GASP Client API org.mega.gasp.client.GASPClient int firstLogin(int userID, int username, String pwd) int login(int actorID, String username, String pwd) Vector getApplicationInstances (int sessionID) int joinAI (int sessionID, int appInstanceID) int joinAIRnd (int sessionID) int createAI (int sessionID, int min, int max) int createAIPriv (int sessionID, int min, int max, Vector actors) void getEvents(int actorSessionID) void sendData(int actorSessionID, Hashtable data) void quitAI(int actorSessionID) void quit (int sessionID) String name(int actorSessionID, String pseudo) void startAI(int actorSessionID) void endAI(int actorSessionID) First connection Connect to the platform Join a random game session Get the game sessions list Join a game session Create a game session Create a private game session Change pseudoname Get the platform events Start the game Send data Stop the game Quit the game session Logout from platform Role

ETSI-ObjectWeb Mobile Middleware WorkshopPage 18 GASP Server API org.mega.gasp.server.GASPServer void sendDataTo (int actorSessionID, DataEvent de) void onJoinEvent(JoinEvent je) void onStartEvent(StartEvent se) void onEndEvent(EndEvent ee) void onQuitEvent(QuitEvent qe) void onDataEvent(DataEvent de) Send data to a specific player StartEvent listenner JoinEvent listenner EndEvent listenner QuitEvent listenner DataEvent listenner Role

ETSI-ObjectWeb Mobile Middleware WorkshopPage 19 Update aSID:short posX:int posY:int time:long Update aSID:short posX:int posY:int Time:long UPTypeaSIDposXposYtime Update « Upd1 » Hashtable CustomTypes encodeUpdate(dos,update) void encodeData(dos,hashtable) Update « Upd1 » Hashtable CustomTypes Update decodeUpdate(dis) Hashtable decodeData(dis) Message senderMessage Receiver GASP Events Model: MooDS protocol – Example MooDS Bits Stream

ETSI-ObjectWeb Mobile Middleware WorkshopPage 20 Game Server GASP Platform Distribution in the context of a Multi-Game Server OTA MOBILE Services Platform GASP DB ApplicationInstance ActorSession MasterApplicationInstance GAMES REPRESENTATION IDManager DBManager JavaRMI SERVLET CONTAINER FirstLogin Login Join Lobby Create InGame StartAI Name EndAI QuitAI Quit JavaRMI PLATFORM REPRESENTATION Game Server Game Server Game Server

ETSI-ObjectWeb Mobile Middleware WorkshopPage 21 GASP Platform Distribution in the context of a Multi-SubPlatform OTA MOBILE Services Platform IDManager DBManager Lobby PLATFORM REPRESENTATION Game Server Game Server Game Server Game Server Game Server Game Server Game Server FirstLogin Login ApplicationInstance ActorSession MasterApplicationInstance SUB -PLATFORM ApplicationInstance ActorSession MasterApplicationInstance SUB - PLATFORM Java RMI Join Create startAI EndAI QuitAI InGame Name startAI EndAI QuitAI InGame Name MOBILE