En vän till mig har skapat en applikation skriven i C++ som körs lokalt på en maskin. För att programmet skall vara användbart behöver den sparade ”banor”, vilket representeras av binärblobbar. I programmet kan man sen spela dessa banor och vid varje speltillfälle skapas det sedan en logg på vad man gjort. Denna logg representeras också av en binärblob.

Nu till problemet. Binärblobbarna (både banorna och loggarna) tillsammans med lite metadata skall lagras på en central server någonstans på internet. Hur skall då serversidan byggas upp för att på enklaste sätt få det att fungera smidigt?

Som jag ser det finns det ett antal vägar att gå:

  • Do-it-your-own-way: Koda ihop en server (i Java) som lyssnar på en TCP-port och skapa sedan ett eget protokoll för att skicka/ta emot data. Serversidan sparar/läser från en databas eller direkt till/från fil på disk
  • Enterprise-lösningen: Sätt upp en JEE-server där man kodar en servlet/WebService som snackar XML som använder JPA för att läsa/skriva till/från en relationsdatabas
  • Web2.0:  Skapa en restful webservice (i Java) som sparar metadata i en relationsdatabas (med hjälp av JPA) och pekar ut binärdatan (via en separat URI) som är lagrad via Amazon S3 t.ex.

Utöver dessa alternativ finns det ju en miljon sätt till att lösa problemet på. Min vän funderar på det sista alternativet, men det känns ändå som en del jobb att få ihop allt.

Vad tror du? Har du någon snilleblixt på hur man löser problemet? Ska man tänka på ett helt annat sätt (jag kanske är för insnöad i Java-världen)?