Servereinrichtung für ein Java-Programm und Datenabruf

dameisel

Newbie
Registriert
Juli 2013
Beiträge
1
Hallo, ich möchte ein bisschen programmieren und habe folgendes Ziel (es klingt vielleicht etwas sinnfrei, aber es geht mir nur um die Grundfunktion)

Vorraussetzungen:

1. Ich möchte ein Java-Programm A auf meinem Rechner A erstellen.
2. Rechner B möchte ich zum Server machen mit einer MySQL-Datenbank.
3. Text-Datei C liegt extern auf http://????.de/text.txt mit 3 Zahlen (zw. 0 und 120)

Ablauf:
--------
A spricht B an
B registriert Anfrage
B holt sich C
B speichert erste Zahl vom Inhalt von C in der Datenbank
B sendet erste Zahl vom Inhalt (zurück) an A (als gepackte Datei)
A gibt Inhalt aus


Zur Erklärung das eigentliche (ferne) erste Ziel:
A ist Android App, und C eine XML-Datei.
Mit Minimum-Traffic soll A 2 Zahlen aus C bekommen, ruft ein zweiter mit A Datei C ab, nutzt B seine MySQL.


Jetzt meine Frage: Wie richte ich B am sinnvollsten ein für sowas?

Ich will vllt. einen Raspberry Pi als Server verwenden.
Würde da Java auf dem Server sinnvoll sein, welches auf die Anfrage wartet und sie verarbeitet? Da ja das Programm selber auch in Java ist.

Für den Anfang brauche ich nur ein paar Tipps, was auf dem Server laufen sollte, damit die Auslastung des Servers möglichst gering ist und die Verarbeitung funktioniert.
Und die Übertragung optimalerweise als gepackte Datei (gzip).
Ich weiß nämlich nicht so richtig wo ich anfange :(

Falls ich hier dafür falsch bin, auch gerne Links wo man mich da besser beraten kann.
 
Mir wäre auch als erstes die Idee mit einem Raspberry Pi gekommen. B sollte auf jeden Fall ein Caching durchführen, es wäre ja Quatsch, die Datei immer neu herunterzuladen. Falls oft Änderungen stattfinden, kann man ja einen MD5-Hash Abgleich machen. Ich würde dann die Daten in Form eines Webservices bereit stellen, falls du das kannst. Such dir doch einmal ein paar Sachen zu REST-Webservices heraus, lassen sich relativ einfach erstellen. REST-Webservices geben Ergebnisse von Methoden als XML aus. Ansonsten reicht vielleicht auch eine einfache Socket-Verbindung, mit der du die Datei rüberschiebst.
 
Splitte das Ding:
1.) Der Server lädt in einem Thread regelmäßig die XML-File, überprüft sie auf Änderungen und schmeißt die Daten in die Datenbank. Kannst du z.B. einfach per Cronjob auf ein kleines PHP-Script mit cURL machen.
2.) Die Clients fragen nur den Server an und der Server antwortet nur aus seiner Datenbank. Der Datenbestand in der Datenbank ist schlimmstenfalls so alt wie der letzte Cronjob, das reicht wohl vollkommen. Ob du hier dann Java einsetzt ist deine Sache, ich würd mir hier ne kleine Schnittstelle in PHP schreiben und das Ding über nginx mit PHP-FPM laufen lassen.
 
Zurück
Oben