# Client Anwendung mit zentraler SQL-Datenbank



## StefanKa (28. Aug 2014)

Hallo erstmal,

hoffe bin hier im Bereich richtig.
Bin zur Zeit ja in der Umschulung zum Fachinformatiker-Anwendungsentwicklung und nun aktuell im Praktikum, aber dort leider ohne professionelle Unterstützung.
Ich soll nun für das Unternehmen(Schule) eine umfassende Raumplanungs - Software erstellen.
Läuft soweit auch alles gut. Das Prog. besteht aus einem kleinen Java-Client, welcher über JPA auf den SQL Server zugreift. Sprich  Entitys und EntityManager ist alles im Client fest drin.
Dies wird auch gut funktionieren, solange das Programm nur von einem Nutzer zur selben Zeit genutzt wird.
Mir ist aber bewusst, wenn jetzt plötzlich zwei Leute auf ihrem PC das Raumplanungs-Java Programm starten und auch neue Eintragungen vornehmen wollen, es zu Problemen kommt, da ich keine Client-Server Struktur habe. (zum beispiel überschreibt User2, den erstellten Eintrag von User1, da User2 ja nicht sofort über Neuerungen in der Datenbank informiert wird.)

Leider haben wir in der Umschulung diese Client-Server Programmierung so nicht durchgenommen. Deswegen meine Frage, lässt sich dies einfach, und ich meine wirklich einfach lösen. So in der Art, Manager und Entitys auf dem Server laufen lassen, und vom Client auf die Server Methoden zugreifen ?  Wenn ja gibts da irgendwo ein Tutorial / Anleitung, was ich dann für meine Wünsche ranziehen kann, und dann für mich entsprechend anpassen kann ?

Das Programm muss nicht unbedingt MultiUser fähig sein, wäre aber halt schön, wenn es sich einfach realisieren lassen würde. Und ich würde mich für mich freuen, wenn ich es schaffen würde.

lg StefanKa

P.s. Hab grad noch was gefunden, mit Tabellen-Sperren über "Locking Table"..... wenn ich das richtig verstanden habe, blockt dass, das zwei änderungen gleichzeitg in die DB geschickt werden, würde mir ja eigentlich schon reichen


----------



## JavaMeister (28. Aug 2014)

> Bin zur Zeit ja in der Umschulung zum Fachinformatiker-Anwendungsentwicklung und nun aktuell im Praktikum, aber dort leider ohne professionelle Unterstützung.



Das glaube ich nicht. Ich würde mich and die Leute vor Ort wenden, vor allem, da deine Kenntisse aktuell sehr bescheiden sind. Statt über deine Kollegen hier herzuziehen, würde ich mir zunächst ein paar Bücher besorgen und die Grundlagen lernen.

Zu deiner übrigen Frage: Google Pesimistic Lock, Optimistic Lock. Funktioniert beides mit JPA.


----------



## StefanKa (28. Aug 2014)

Ich ziehe über niemandem her. Es lies sich schlicht weg einfach kein Praktikums-Platz in einer Programmier Firma finden. Da es immer als Antwort gab, leider kein Betreuer für die betreffende Zeit frei. Deswegen bin ich Schlicht und weg einfach über Beziehungen in einer BranchenFremden Schule gelandet, die mir ein Praktikumsplatz gabe, aber deswegen halt ohne unterstützung.

Und wegen Bücher, die Grundlagen von Java kann ich, also Laut Dozent der Umschlung, welche für die Prüfung notwendig sind, und dazu gehöre eben Netzwerk Programmierung nicht.


und wie oben unter P.s. steht bin ich im I-Net auch grad über Locking Tabel usw.. gestolpert, mal weiter kucken, was sich daraus machen lässt


----------



## nvidia (29. Aug 2014)

Also eine Client <-> DB Architektur ist anstrengend, vor allem in einer Mehrbenutzerumgebung und wenn es noch irgendwie effizient sein soll. Besser, meines Empfindens nach, ist eine Client <->Server<->DB Struktur insofern besser da alles über den Server geht und man dort viele Sachen einfacher gestalten kann, vor allem wenn es komplex wird. Man muss z.B. keine Tabellen explizit locken sondern kann die Synchronisationsmöglichkeiten von Java verwenden. Ob die Kommunikation mit dem Server über RMI/XMLRPC/Webservices etc. pp. erfolgt ist dann vom Anwendungsfall abhängig.


----------

