SlideShare a Scribd company logo
Gamemate
DESIGN AND PROTOTYPICAL IMPLEMENTATION
OF AN ARCHITECTURE TO SHARE GAMES
UNIVERSITÁ DEGLI STUDI DI TORINO – DIPARTIMENTO DI
INFORMATICA
CANDIDATO: SANINO ALESSANDRO
RELATORE: DAMIANI FERRUCCIO
Gamemate : cosa è?
 Piattaforma di supporto (PROGMOB)
 Architettura Cloud (Clusters)
 Back-end (RESTful API)
 Template di apps
Obiettivo : interfaccia unificata per
PvP, punteggi,
tornei, …
Statistiche e
Analisi dei
miei prodotti
Facilita di
integrazione e
sicurezza
Template Apps
React Native
 App Native con codebase cross platform
 Facebook, Instagram apps sono create con questa
tecnologia
 Basato su JSX
 Logica Applicativa in Javascript
App Utente (User Catalog)
 Autenticazione
 Elenco dei giochi
 Attiva/disattiva gioco
App Utente (Admin)
 Autenticazione
 Inserimento dati gioco
 Eliminazione gioco
App Utente (Developer)
 Autenticazione
 Richiesta token
 Invalidazione token
Esempio di use case : sviluppatore
Quindi che
devo fare per
usare le API?
Assumendo un ambiente configurato:
 Registrarsi sul portale.
 Chiedere tramite il portale un token.
 Inserire in ogni richiesta effettuata al portale
dalle app/dai siti implementati.
L’Architettura Cloud
L’Architettura Cloud
Logica Applicativa
 Accoglie le richieste
 Comunica con gli altri cluster
 Fornisce risultati
Dati a lungo termine
 Aggregazione dei dati
 Persistenza su disco
 Eventuale Data Analysis
Dati a breve termine
 Velocità
 Eventually Persistent
 Scalabile
Implementazione
 Golang
 Labstack echo (framework)
 Redis + Mysql drivers
Implementazione
Golang + Echo = RESTful API
 Scambio dati JSON
 Collegamento tramite URL
Tecnologie Impiegate : Redis
 Key/Value NoSQL Database
 Allocazione in RAM = Velocità
 Difficile aggregare dati
Tecnologie Impiegate : MariaDB
 DB Relazionale
 Interfacciamento MySQL
 Esportazione di risultati tabellari
Test e Considerazioni
App di Test (Tic Tac Toe)
 Autenticazione utente
 Lobbies
 Partita = Connessione persistente
 Sfruttare dei containers e orchestrators per il deploy facile di un cluster.
 Supporto HTTPS (certificati)
 Creare script di deploy automatico
 Aggiungere i giochi come microservizi interni alla piattaforma
Possibili sviluppi futuri
Le repository sono tutte hostate su github ed è possibile collaborare facendo delle pull
request.
 Gamemate Server : https://git.io/Gamemate
 Gamemate Developer App: https://git.io/Template-Dev
 Gamemate Admin Template: https://git.io/Template-Admin
 Gamemate User Catalog Template: https://git.io/Template-User
 Tic Tac Toe con integrazione Gamemate: https://git.io/TicTacToe
Server : 4k+ righe di codice Apps : 4k+ righe di codice
Gamemate è Open Source
“
”
Do not communicate by sharing
memory. Instead, share memory
by communicating.
ANDREW GERRAND – GOLANG CORE CONTRIBUTOR @ GOOGLE SIDNEY
Grazie per l’attenzione
Note Aggiuntive
Partenza a freddo
 Cache on demand
 Cache popolata grazie agli archivi
Documentazione
 Assenza di wiki o manuali
 È possibile collaborare al suo sviluppo futuro
 Il sorgente è documentato
 È possibile usare GODOC

More Related Content

PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PPTX
Do IAs Dream of Electric Sheeps? Un'immersione nemmeno troppo noiosa nella IA...
PPTX
Fondamenti di REST API (3/3) - Lo standard REST
PPTX
Fondamenti di REST API (2/3) - I formati di interscambio
PPTX
Fondamenti di REST API (1/3) - I protocolli HTTP e HTTPS
PPTX
The Ethereum Blockchain - Introduction to Smart Contracts and Decentralized A...
PPTX
The GO Language : From Beginners to Gophers
Storytelling For The Web: Integrate Storytelling in your Design Process
2024 Trend Updates: What Really Works In SEO & Content Marketing
Do IAs Dream of Electric Sheeps? Un'immersione nemmeno troppo noiosa nella IA...
Fondamenti di REST API (3/3) - Lo standard REST
Fondamenti di REST API (2/3) - I formati di interscambio
Fondamenti di REST API (1/3) - I protocolli HTTP e HTTPS
The Ethereum Blockchain - Introduction to Smart Contracts and Decentralized A...
The GO Language : From Beginners to Gophers
Ad

Gamemate - Design and Prototypical Implementation of an Architecture for sharing Mobile Games

  • 1. Gamemate DESIGN AND PROTOTYPICAL IMPLEMENTATION OF AN ARCHITECTURE TO SHARE GAMES UNIVERSITÁ DEGLI STUDI DI TORINO – DIPARTIMENTO DI INFORMATICA CANDIDATO: SANINO ALESSANDRO RELATORE: DAMIANI FERRUCCIO
  • 2. Gamemate : cosa è?  Piattaforma di supporto (PROGMOB)  Architettura Cloud (Clusters)  Back-end (RESTful API)  Template di apps
  • 3. Obiettivo : interfaccia unificata per PvP, punteggi, tornei, … Statistiche e Analisi dei miei prodotti Facilita di integrazione e sicurezza
  • 5. React Native  App Native con codebase cross platform  Facebook, Instagram apps sono create con questa tecnologia  Basato su JSX  Logica Applicativa in Javascript
  • 6. App Utente (User Catalog)  Autenticazione  Elenco dei giochi  Attiva/disattiva gioco
  • 7. App Utente (Admin)  Autenticazione  Inserimento dati gioco  Eliminazione gioco
  • 8. App Utente (Developer)  Autenticazione  Richiesta token  Invalidazione token
  • 9. Esempio di use case : sviluppatore Quindi che devo fare per usare le API? Assumendo un ambiente configurato:  Registrarsi sul portale.  Chiedere tramite il portale un token.  Inserire in ogni richiesta effettuata al portale dalle app/dai siti implementati.
  • 12. Logica Applicativa  Accoglie le richieste  Comunica con gli altri cluster  Fornisce risultati
  • 13. Dati a lungo termine  Aggregazione dei dati  Persistenza su disco  Eventuale Data Analysis
  • 14. Dati a breve termine  Velocità  Eventually Persistent  Scalabile
  • 15. Implementazione  Golang  Labstack echo (framework)  Redis + Mysql drivers
  • 16. Implementazione Golang + Echo = RESTful API  Scambio dati JSON  Collegamento tramite URL
  • 17. Tecnologie Impiegate : Redis  Key/Value NoSQL Database  Allocazione in RAM = Velocità  Difficile aggregare dati
  • 18. Tecnologie Impiegate : MariaDB  DB Relazionale  Interfacciamento MySQL  Esportazione di risultati tabellari
  • 20. App di Test (Tic Tac Toe)  Autenticazione utente  Lobbies  Partita = Connessione persistente
  • 21.  Sfruttare dei containers e orchestrators per il deploy facile di un cluster.  Supporto HTTPS (certificati)  Creare script di deploy automatico  Aggiungere i giochi come microservizi interni alla piattaforma Possibili sviluppi futuri
  • 22. Le repository sono tutte hostate su github ed è possibile collaborare facendo delle pull request.  Gamemate Server : https://git.io/Gamemate  Gamemate Developer App: https://git.io/Template-Dev  Gamemate Admin Template: https://git.io/Template-Admin  Gamemate User Catalog Template: https://git.io/Template-User  Tic Tac Toe con integrazione Gamemate: https://git.io/TicTacToe Server : 4k+ righe di codice Apps : 4k+ righe di codice Gamemate è Open Source
  • 23. “ ” Do not communicate by sharing memory. Instead, share memory by communicating. ANDREW GERRAND – GOLANG CORE CONTRIBUTOR @ GOOGLE SIDNEY Grazie per l’attenzione
  • 25. Partenza a freddo  Cache on demand  Cache popolata grazie agli archivi
  • 26. Documentazione  Assenza di wiki o manuali  È possibile collaborare al suo sviluppo futuro  Il sorgente è documentato  È possibile usare GODOC