SP Anwendung -> Rest API -> Java -> MYSQL

  • Antworten:12
MichiS
  • Forum-Beiträge: 6

17.03.2014, 11:53:31 via Website

Hi :)

ich hab ein kleines Problem. Diverse Tutorials im Netz habe ich mir schon angesehen, leider gehen einige ziemlich an dem vorbei was ich eigentlich machen möchte.

Ich habe eine kleine Anwendung für Smartphones geschrieben. Diese sollen Daten von einem Server abrufen.

Soweit ich verstanden habe, läuft das so SP Anwendung -> Rest API -> Java Anwendung -> MYSQL Abfragen
Doch die meisten Tutorials ersetzen meine Java Anwendung durch PHP, wovon ich leider keine Ahnung habe.

Im prinzip findet meine komplette App auf dem Server statt, ist dabei aber überhaupt nicht komplex, rechnet nur was und zwar nur, wenn ein Benutzerkonto mit Password angelegt ist. Das wars. Wie setze ich das am besten um, kennt da jemand ein gutes Tutorial für mein Anwendungsgebiet?

Danke euch :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.03.2014, 13:59:24 via Website

Wie soll den die Java Anwendung auf dem Server laufen?
Wenn dann muss es ja nen rootserver sein oder?
Denn auf einem WebServer läüft ja garkein Java oder irre ich mich daß
Wenn du das Java durch php ersetzen würdest, dann könnte es funktionieren, so brauchst du halt nen Java fähigen Rechner dazwischen.
Wie du DB etc. Operationen in Java machst, kannst du dir aneignen indem du mal nach tuts im inet suchst...
Ich habe dein Vorhaben zwar verstanden, aber verstehe noch nicht, wo das Java Programm laufen soll.
Android kannst du dann als http cleint an dein anderes Programm anbinden und dann die Daten lesen.
Oder du Programmierst gleich die App und das externe Programm in Zusammenhang mit einem Bestimmten Protokoll.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
MichiS
  • Forum-Beiträge: 6

17.03.2014, 14:14:58 via Website

Oh, dass wusste ich nicht. Dh. auf einem normalen WebServer kann ich gar kein Java drauf laufen lassen?

Ich habe eine Anwendung in Java programmiert. Nun habe ich dazu mittels Android SDK eine passende GU entwickelt.

Mein Programm soll allerdings nicht auf dem Handy laufen, sondern auf dem Server (zwecks Sicherheit und Schutz vor Datenmanipulation).

Sprich das Smartphone schickt eine Anfrage und Daten(UserID) an den Server. Mit diesen Daten arbeitet mein Java Programm und gleicht ein paar Werte aus einer MySQL DB ab. Wenn das fertig ist, soll der Server die Rückgabewerte an das Smartphone schicken und diese Rückgabewerte dort und auch in der DB speichern. Sprich auf dem Smartphone werden die Daten immer aktualisiert.

Wie realisiere ich das am besten?

Antworten
SvenDD
  • Forum-Beiträge: 272

17.03.2014, 14:21:51 via Website

Java kann schon auf einem Webserver laufen, es muss aber ein JBoss oder Tomcat Server sein, aber letzten Endes endet alles in der Webentwicklung. Reines Java Programm kriegst du nicht zum laufen.

Antworten
MichiS
  • Forum-Beiträge: 6

17.03.2014, 14:32:01 via Website

Ok und was heißt das konkret? Was muss ich mir jetzt alles besorgen und aneignet?

Kann ja eigentlich nicht sooo schwer sein oder doch :) ?

Antworten
SvenDD
  • Forum-Beiträge: 272

17.03.2014, 14:39:15 via Website

Entweder PHP oder JSP, JSF, etc.pp. anschauen.

Einfach Webentwicklung Java, J2EE eingeben.

— geändert am 17.03.2014, 14:39:39

Antworten
MichiS
  • Forum-Beiträge: 6

17.03.2014, 15:19:23 via Website

Wie meinst du das eigentlich, dass ich rein Java nicht zum laufen bekomme?

Via JAX (RS) sollte das doch funktionieren, dass ich einen Java WebServer laufen lasse oder? So könnte ich doch PHP und den ganzen anderen Kram umgehen?

Das Programm das ich habe, muss halt in jedem Fall mit Java laufen.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.03.2014, 15:54:00 via Website

Dann brauchst du dafür einen Speziellen Server und für webentwicklung schaust du dir das an:
http://jsfatwork.irian.at/book_de/introduction.html#!idx:/introduction.html:1.1

Wie sollte denn das phone mit dem Server kommunizieren, wenn es eine normale Application ist?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
MichiS
  • Forum-Beiträge: 6

17.03.2014, 16:12:21 via Website

Also ein Webserver mit Java Unterstützung auf Tomcat richtig?

"Wie sollte denn das phone mit dem Server kommunizieren, wenn es eine normale Application ist?"

Genau das ist glaube ich gerade mein Problem.

Vllt. könnt ihr mir kurz sagen wie ihr sowas machen würdet:

Ihr entwickelt ein Java Spiel in dem ein Spieler ein Punktekonto hat.
Mit den Punkten kann man Gegenstände kaufen.
Nun wollt ihr, dass man das Spiel auch auf dem Smartphone spielen könnt.
Wichtig ist dabei, dass der Spieler das Punktekonto nicht manipulieren kann.

--

Das ist gerade mein Problem. Wenn ich die Anwendung auf dem Smartphone habe, könnte man doch beliebig das Konto um z.B. 1000 erhöhen und an die Datenbank senden? Wenn das auf dem Server läuft dann kann ich das ja verhindern. Habt ihr da eine andere Idee wie man da rangehen kann?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.03.2014, 16:14:40 via Website

extern geht das nur über den http request, und nem http Server .
Dein Programm muss also html code oder was vergleichbares ausgeben, dass du in der App wieder einlesen musst.
Für eine sichere Verbindung hast du dein ssl Zertifikat nutzen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
MichiS
  • Forum-Beiträge: 6

17.03.2014, 16:24:10 via Website

versteh jetzt leider nicht ganz was du meinst, wie würdest du das Problem konkret lösen das der user nichtmsein punktestand manipulieren kann?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.03.2014, 16:26:12 via Website

Gegenfrage: Wie sollte der User den Stand denn manipulieren können?
Du kannst doch das ganze etwas absichern zb. mit https und vorher ne Authentifizierung etc.
Wenn es nicht über http laufen sollte was würdest du denn als Verbindung vorschlagen?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
impjor
  • Forum-Beiträge: 1.793

17.03.2014, 17:06:42 via App

Du kannst, wenn du nicht selber einen Server aufsetzen willst (was ich vermute), einfach Google App Engine benutzen. Dazu sollte es bei Google auch jede Menge Tutorials geben.

Prinzipiell musst du aber (immer bei einer Webanwendung) damit rechnen, dass die Anfragen manipuliert sind. (Punktzahl wird höher übermittelt als wirklich vorhanden.) Dagegen kann man sich nie zu 100% zu schützen, man kann nur zusätzliche Schutzmaßnahmen ergreifen. (z.B. Punktzahl verschlüsseln)

HTML muss nicht von der Webanwendung ausgegeben werden, es soll ja nicht im Browser angezeigt werden.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten