# Hilfe bei umstellung.



## Ice-Tea (15. Mai 2007)

hallo zusammen,

ich Arbeite derzeit an einem datenbankgebundenem Onlinespiel. Da ich bis September 2006 mit Java nicht viel zu tun hatte, ist es gleichzeitig eine art selbst-studium.

Es handelt sich um eine Standart Applikation, also kein Applet.
Der Server stellt wiederum eine eigene App. dar.
Aufgaben vom Server sind u.A. die Vergabe von Ressourcen (Kristalle, Metalle usw.).
Aber auch der bau(Fertigstellung) von Gebäuden gehört zu seinen aufgaben.
(Der Client setzt nur einen in der Zukunft liegenden Unix-Timestamp in die Datenbank, der Server überprüft ob die Zeit schon erreicht ist und stellt das Gebäude ggf. dem Benutzer zur Verfügung.)


Da ich aus der php-Welt komme (irgendwann in meiner Jugend hab ich auch mal ein c++ Buch gelesen) bin ich es gewohnt MySQL-Statements direkt in den Code einzubinden. Das stellt im nachhinein, zumindest auf der Client-seite, einen großer Fehler dar.

die DB-Daten (User/pass) sind im client.jar gespeichert (sehr unschön!). Das macht mir sorgen um SQL-Injections.

Nun befasse ich mich mit dem Thema java-persistence. Vor kurzem habe ich die Referenzinplemetierung von Sun's App-Server installiert und einen Connection-Pool auf meine MySQL DB gelinkt. Funktioniert wunderbar.

Jedoch, wie gehe ich die Sache nun am besten an?

Client->RMI->Beans->MySQL ???
Da stellt sich mir jedoch wieder die frage nach der Sicherheit, da der Client nicht für EE-Server geschrieben wurde und unabhängig heruntergeladen werden kann/soll.


Ich bin für jeden Vorschlag dankbar!


----------



## ptriller (19. Mai 2007)

dien Client->RMI ansatz ist genau der richtige.

Prinzipiell fallen mir 2 wege ein das zu machen. 
1) spring-rim 
2) j2ee ..

spring-rmi is recht einfach
aber das j2ee ist etwas nervig zu coden.. es sei denn man benutzt das neue EE5 .
Prinzipiell sollte das relativ leicht in den Client einzubetten sein.

Das prinzip ist bei beiden methiden das gleiche: Man bekommt auf der Client seite ein interface hinter dem über einen proxy dann die Implementation auf dem server aufgerufen wird.

Zu integrieren im client sollte das in beiden Fällen relativ leicht sein, da man nur einfach ein paar jars in den client steckt, und die klassen die dann die RMI aufrufe macht ersetzt dur die RMI Fasaden.


----------



## Ice-Tea (22. Mai 2007)

klasse, danke für die Antwort.

Ich dachte schon ich liege so daneben, dass niemand anworten will  

Ich werd es mal mit j2ee versuchen, da ich wie gesagt erst vor kurzem einen server aufgesetzt habe der auf ee5 aufbaut.

Wenn ich nicht mehr weiter weiß melde ich mich ... bestimmt


----------

