Distributed Massive Battle

Introduzione

Il mio lavoro ha lo scopo di distribuire su più macchine una applicazione per la simulazione di agenti autonomi in ambito bellico.
L'applicazione di partenza è un software di simulazione, in attiva fase di sviluppo in ISISLab, al quale ha lavorato Alberto Boccardo (User:Albboc) e sta lavorando Daniele Monaco (User:Danmon). Per quanto riguarda la distribuzione della simulazione, si è pensato di utilizzare una infrastruttura p2p che permettesse di alleggerire il carico di lavoro, non essendo quest'ultimo gestibile da un'unica macchina.
Sono state prese in rassegna diverse possibili infrastrutture per la realizzazione dell'applicazione. Essendo il software di simulazione sviluppato in C++ si è cercato di utilizzare un framework sviluppato in questo stesso linguaggio. La prima valutazione è caduta sulla versione in C# di FreePastry. FreePastry è una implementazione open-source di Pastry scritta in Java e pensata per il rilascio su Internet. Come prima accennato esiste anche una versione scritta in C# realizzata da Microsft e denominata MSPastry; se quest'ultima era inizialmente free successivamente è stata venduta dalla azienda produttrice e non è stato possibile avvalerci di tali API.
A questo punto sono state vagliate altre soluzioni come: SIENA e il servizio WSPEventRouter. Per vari motivi legati allo stato dell'arte nel caso di SIENA e della poca trasperenza del servizio nel secondo si è scelto di utilizzare FreePastry. L'utilizzo di un framework Java per distribuire una applicazione scritta in C++ ci ha imposto l'utilizzo di JNI (Java Native Interface).

Seminari

Secondo Seminario

Titolo del seminario :
Distributed Massive Battle
Abstract :
Distributed Massive Battle è la versione distribuita di un Massive Simulation Environment, un particolare MMVE, che si propone di riprodurre fedelmente battaglie storiche.
L'approccio adottato per realizzare la distribuzione della simulazione sfrutta il paradigma peer-to-peer. Ogni nodo dell'overlay network condivide memoria, banda e parte della propria potenza di calcolo con gli altri peer della rete. Nel seminario saranno presentate le scelte progettuali e le soluzioni adottate per la realizzazione del sistema.
A conclusione, saranno mostrate le prestazioni del sistema distribuito confrontandole con la versione originale del SE.
Materiale Seminario:
Seminario_2

Presentazione Finale

Materiale Seminario:
Presentazione_Finale

Software e librerie

  • Visual C++ 2008 Express Edition
  • OGRE SDK 1.4.7
  • PagedGeometry 1.04
  • Caelum 0.3.0
  • Editable Terrain Manager 2.2
  • Hydrax 0.4
  • OpenSteer 0.8.2
  • Eclipse 3.5.1
  • FreePastry 2.1
  • jdk 6.19

Altro

Abstract

I Massive Multiuser Virtual Environments (MMVEs) stanno rapidamente divenendo sempre più complessi sia per il numero di utenti che per la varietà delle interazioni. Nel seminario verrà presentato "Distributed Massive Battle" la versione distribuita di un Massive Simulation Environment, un particolare MMVE, che si propone di riprodurre fedelmente battaglie storiche come quella di Waterloo. Nella prima parte si accennerà a Pastry e Scribe necessari per implementare l'architettura P2P alla base della distribuzione ed a JNI (Java Native Interface) che viene utilizzato per la comunicazione tra il software di simulazione scritto in C++ e l'architettura P2P scritta in Java. Nella seconda parte viene illustrato come le tecnologie descritte in precedenza vengono utilizzate all'interno di Distributed Massive Battle.

News

  • 22/10 : E' il mio compleanno e entro a far parte dell' ISISLab
  • 15/11 : Ricerche su scribe, pastry, massive battle e articoli correlati
  • 09/12 : Ritorno in ISIS dopo aver completato gli esami 😀
  • 14/12 : Possibilità MSPastry scartata
  • 18/12 : Ho avuto molte difficoltà nella compilazione della versione C del Siena software che sembra incompleto
  • 21/12 :
    • Purtroppo anche il software SIENA è da scartare... Sono riuscito a compilare il progetto... ho contattato il prof. responsabile del progetto... la versione C del software sembra non aggiornata la loro attenzione si è spostata sulla implementazione Java.
    • Scelgo di utilizzare FreePastry
  • 08/01 : Primi esempi di utiilizzo di JNI funzionanti
  • 15/01 :
    • Separazione dell'interfaccia grafica dalla logica di massive battle
    • Generazione della dll
  • 22/01 :
    • Utilizzo di FreePastry
    • Realizzazione dell'architettura distribuita di FreePastry
  • 29/01 :
    • Timide interazioni con DistributedMassiveBattle
    • Evoluzione della distribuzione
  • 05/02 :
    • Utilizzo di Scribe
    • Creazione di metodi nativi più complessi
    • Simulazione funzionante ma con molte limitazioni
  • 08/02 : Realizzazione di una struttura dati efficienti per la gestione di blocchi e vehicles
  • 12/02 : Coordinazione tra i vari nodi di simulazione in maniera che siano rispettati i vincoli di aggiornamento
  • 16/02: Viene gestito l'evento di passaggio di un vehicle da un blocco ad un altro.
  • 10/02: Sto cercando di capire qual'è il set minimio di informazioni da inviare sulla rete per minimizzare il traffico dei dati.

Link Interessanti

Bibliografia

  • Towards a Common API for Publish/Subscribe
    • Interessante e recente pubblicazione comparativa tra diversi middleware publish/subscribe system
  • Survey of Publish Subscribe Event Systems
    • Altro documento che valuta le caratteristiche di middleware tra cui Gryphon, Scribe, Bayeux, Siena, NaradaBrokering, XMessages, Echo, JMS.
  • Design and Evaluation of a Wide-Area Event Notification Service
    • Paper realizzato dagli autori di Siena
  • Extending The Siena Publish/Subscribe System
    • Documento in cui viene spiegato come può essere esteso Siena in maniera che supporti la gestione di tipi complessi
  • P. Morillo, J.M. Orduña, M. Fernández and J. Duato. Impoving the Performance of Distributed Virtual Environment System. IEEE, 2004
  • K. L. Morse. Interest management in large-scale distributed simulations. Technical Report CS-TR-96-27, University of California, Irvine, 1996.
  • S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Schenker. A scalable content-addressable network. In Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications, pages 161-172. ACM Press, 2001.
  • I. Stoica, R. Morris, D. Karger, F. Kaashoek, and H. Balakrishnan. Chord: A scalable Peer-To-Peer lookup service for internet applications. In Roch Guerin, editor, Proceedings of SIGCOMM-01, volume 31, 4 of Computer Communication Review, pages 149-160, New York, August 27-31 2001. ACM Press.
  • B. Y. Zhao, J. D. Kubiatowicz, and A. D. Joseph. Tapestry: An infrastructure for fault-tolerant wide-area location and routing. Technical Report UCB/CSD-01-1141, UC Berkeley, April 2001.
  • A. Rowstron and P. Druschel. Pastry: scalable, decentraized object location and routing for large-scale peer-to-peer systems. In Proceedings of the 18th IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), November 2001.
  • M. Castro, M. B. Jones, A. Kermarrec, A. Rowstron, M. Theimer, H. Wang, and A. Wolman. An evaluation of scalable application-level multicast built using peer-to-peer overlays. In Infocom'03, April 2003.
  • Y. K. Dalal and R. Metcalfe. Reverse path forwarding of broadcast packets. Communications of the ACM, 21(12) 1040-1048, 1978.
  • C. Reynolds. Flocks, herds and schools: a distributed behavioral model. In SIGGRAPH'87: Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, 1987.
  • C. Reynolds. Steering behaviors for autonomous characters. In Game Developers Conference, Miller Freeman Game Group, San Francisco, CA, USA, 1999.
  • G. Cordasco, R. De Chiara, U. Erra and V. Scarano. Some Considerations on the Design of a P2P Infrastructure for Massive Simulations. In: International Conference on Ultra Modern Telecommunication (ICUMT 2009). October 2009, St.-Petersburg, Russia.
  • A. Boccardo, R. De Chiara, and V. Scarano. Massive Battle: Coordinated Movement of Autonomous Agents in Proc. of the Workshop on 3D Advanced Media In Gaming And Simulation (3AMIGAS), 2009.
  • B. Knutsson, H. Lu, W. Xu, and B. Hopkins. Peer-to-Peer Support for Massively Multiplayer Games, in Twentythird AnnualJoint Conference of the IEEE Computer and Communications Societies (INFOCOM 2004), 2004, p. 107.
  • G. Cordasco, B. Cosenza, R. De Chiara, U. Erra, and V. Scarano, Experiences with Mesh-like computations using Prediction Binary Trees, Scalable Computing: Practice and Experience, Scientific international journal for parallel and distributed computing (SCPE), vol. 10, no. 2, pp. 173-187, June 2009.
  • P. Pietzuch, D. Eyers, S. Kounev, and B. Shand. Towards a common api for publish/subscribe. In DEBS '07: Proceedings of the 2007 inaugural international conference on Distributed event-based systems, pages 152-157, New York, NY, USA, 2007.
  • M. Buckland, Programming Game AI by Example 2005.
  • D. Monaco. SteerUnit: un framework per lo Unit Testing di modelli comportamentali per simulazioni basate su agenti. Università degli Studi di Salerno, 2010.
  • A. Boccardo. Massive Battle: Simulazione di Combattimento e Movimento Coordinato di Agenti Autonomi. Università degli Studi di Salerno, 2008.