Verteilte JAVA Systeme

P

private x

Gast
Hallo,

meine Frage bezieht sich auf die Programmierung von verteilten Systemen in JAVA. Ich möchte nämlich für meine Abteilung in der ich arbeite ein verteiltes System entwickeln. Dazu hätte ich folgende Allgemeine Fragen:

1.) Wann macht es Sinn solch ein System aufzubauen? Wenn viele Clients das Programm benutzen???
2.) Würde es ausreichen einen Rechner als Server zu benutzen und dort die Anwendungslogik sowie Datenhaltungsschicht zu realisieren? Oder müsste ich diese nochmals Trennen (3-Tier)...

Danke schon mal im Voraus!

Viele Grüße
jonny
 

XHelp

Top Contributor
Was heißt für dich "verteiltes System"? Nur Client-Server Anwendung?
zu 1: Es macht Sinn, wenn... wenn es Sinn macht. Eine der Gründe hast du ja schon genannt. Ansonsten kann da Rechnerauslastung eine Rolle spielen, Sicherheit etc.
zu 2: Ob du dein Programm in Schichten machst oder ob du es auf verschiedene Rechner auslagerst sind 2 verschiedene Sachen.

Im Grunde hast du gefragt: "Ich will da irgendwas machen: macht das überhaupt Sinn und wie soll ich das am besten machen?". Da müsstest du schon etwas konkreter bei der Beschreibung werden.
 
P

private x

Gast
Hi,

danke für die Antwort.

Ja überlegt habe ich mir eine Client-/Server Anwendung. Ne GUI damit Benutzer mit dem System verschiedene Interaktionen durchführen kann (Kommunikation über RMI mit dem Server). Auf dem Server soll dann die Logik implementiert werden. Die Datenbank würde ich dann auch aufm Server drauf packen. Ein PC beinhaltet praktisch den Server mit dem Programm und der Datenbank. Die Clients würden dann auf eine zentrale Dtbk zugreifen.
 
P

private x

Gast
hi du meinst view auf dem Client oder? ich interpretier deine Antwort ,gibt schon sinn, als nicht-ironisch ;) ...

LG
 
R

reNur

Gast
Ob die Datenbank jetzt wirklich auf dem Server liegt oder wo ganz anders, ist eigentlich egal. Ausschlaggebend für eine 3-Tier-Architektur ist, dass die Logik und die Datenhaltung klar getrennt sind - und dass ist natürlich bereits der Fall, wenn eine Datenbank im Spiel ist.

Aber der ganze Ansatz (Java-Clients greifen über RMI auf einen Java-Server zu) ist - imo - schon etwas angestaubt. Da wirst du später größere Probleme mit Skalierung, Sicherheit etc. bekommen. Schau die am besten wirklich mal JavaEE inkl. Applikationsserver an.
 

Landei

Top Contributor
Die Frage bei Clients ist immer: Wie läuft die Maintenance? Also Erst-Installation, Updates u.s.w.

Dann kann es sinnvoll sein, einen Webclient zu bevorzugen, oder (bei kleinen, aber häufig zu updatenden Apps) Web-Start.
 
P

private x

Gast
Hallo zusammen,

zunächst einmal vielen Dank für die Beiträge!

Also habe mich mal ein bisschen mit JAVA EE beschäftigt. D. h. der Client kann ein einfacher Webbrowser sein über das dann die Datenbank über die Logik angesprochen wird. Im weiteren Sinn bedeutet dies, dass die Benutzungsschnittstelle ohne Swing realisiert wird sondern über HTML???

Aber im Grunde genommen könnte man es auch ohne JAVA EE implementieren. Da mir das Know-How und die Zeit für das Einarbeiten in die Materie fehlt, müsste ich dies ohne JAVA EE machen.


Viele Grüße
 

TheDarkRose

Gesperrter Benutzer
Glaub mir, das einarbeiten in Java EE (EJB, JPA, JSF/JSP) ist wertvoller als wie wenn du was mit Sockets/RMI zusammenschusterst und es dich später beim warten und updaten auf die Fresse haut.
 
P

private x

Gast
Hallo,

für die Datenbank würde ich eine mysql Datenbank einrichte. Die Frage ist, wenn ich diese lokal wie auf Apache installieren (damit ich die Datenbank mit phpmyadmin verwalten kann), kann ich dann überhaupt die Datenbank dann auch noch über den Applikationsserver erreichen.

Kann mir da jemand vllt. erklären wie ich am besten die Client/Server-Anwendung verteilen kann.

Beispiel: Es befinden sich 6 PC's im LAN. 1 PC bildet der Applikationsserver mit der logischen Implementierung. 1 PC bildet den Datenbankserver mit der mySQL-Datenbank.

Frage: wie installiere ich die Datenbank und vorallem wie spreche ich die Datenbank dann an (über die IP-Adresse des Servers und dem Pfad?)
 

TheDarkRose

Gesperrter Benutzer
Ganz normal über die IP. Und man installiert keine Datenbank in einen Apache. Der Apache ist ein Webserver. Beides kann natürlich parallel auf einer Maschine laufen.


Code:
Clients <-> Applicationserver <-> Datenbankserver
 
R

reNur

Gast
private x, ich glaub du musst dir erst mal ein paar Grundlagen anlesen bevor du da irgendwas installierst und programmierst und später dann nur Ärger damit hast.
"Verteilte Systeme" von Tannenbaum/Steen ist ein sehr gutes Buch und hat mir auch geholfen.Und dann würd ich mich, wenn du bei Java bleiben willst, wirklich in JavaEE einarbeiten. Wenn du anfängst, mit RMI und Sockets einen eigenen "Applikationsserver" anzusprechen, und dann auch noch nativ eine Datenbank - das hat keine Zukunft und ist eigentlich nur Zeitverschwendung.
 

DerFeivel

Bekanntes Mitglied
Als erstes, solltest du uns vielleicht mal sagen, was genau du vorhast.

Konkrete Hinweise zu einer vagen Vorstellung sind....nun ja, nicht unbedingt immer zielführend.


Trotzdem ein paar konkrete Sachen:


Die Datenbank kann auch auf dem gleichen Server laufen. Wenn du bspw. Xampp benutzt, kannst du da ja auch einen Apache starten und gleichzeitig einen MySql-Server.
Der Apache ist dann über Port: 80 erreichbar und der MySql-Server glaube ich über Port: 3306.
 
P

private x

Gast
Hallo,

während dem Studium gabs schon so ein ähnliches Projekt. Da wurde das ganze System entkoppelt, d. h. eigener Applikationsserver, eigener Datenbankserver und eben die Clients. Das ganze wurde dann mit RMI für die Netzwerkkommunikation und JDBC für den Datenbankzugriff realisiert. Hat eigtl. auch ganz gut geklappt (Java ee kenn ich ja noch nicht, ist das wirklich so viel besser??). Ist auch ein weilchen her und des war mir alles nicht mehr so richtig im Kopf :).

Ich wollte eigtl. nur nochmal einen Überblick über das Gerüst der verteilten Systeme erhalten. Also 3-tier Architektur, RMI, JDBC, im Grunde genommen den Zusammenhang. Ich habe nämlich vor ein Programm mit solch einer Struktur zu realisieren. Genauer gesagt ein Fahrzeugreservierungssystem mittels Java.

LG
 

Landei

Top Contributor
Java ee kenn ich ja noch nicht, ist das wirklich so viel besser??

Es versteckt die ganzen Klempner-Arbeiten besser, übernimmt Routine-Aufgaben und bietet verschiedene Services wie Transaktionalität, Object-Pooling, Timer, Message-Queues u.s.w. Die Vorgänger-Versionen des aktuellen EJB 3 Standards (der wiederum Teil von JEE ist) waren deutlich schlechter als andere Ansätze (insbesondere Spring/Hibernate), aber das hat sich inzwischen sehr gebessert.
 
R

reNur

Gast
Das ganze wurde dann mit RMI für die Netzwerkkommunikation und JDBC für den Datenbankzugriff realisiert. Hat eigtl. auch ganz gut geklappt

Ich nehme an, dein Studium ist dann schon eine Weile her :) Soweit ich das Überblicken kann, wird so etwas nicht mehr gemacht. Besonders direkte JDBC-Zugriffe durch einen Applikationsserver - da gibt es sehr viele bessere Lösungen (Stichwort OR-Mapping), die z.B. von JavaEE angeboten werden.

Natürlich könntest du eine Client-Server Architektur bzw. 3-Tier auch mit RMI und JDBC realisieren - das ganze hat dann aber heutzutage keine Zukunft mehr, und für alles was über einen Prototyp hinausgeht würd ich so etwas auch nicht mehr einsetzen.
 
P

private x

Gast
Hi renur,

ich denke das sollte anfangs auch als Prototyp dienen. Hatte jemand schon Erfahrungen über derartige Systeme? Welche Funktionalitäten wären denn außer Reservierung verwalten, Stammdaten verwalten denn noch sinnville Funktionen?

LG
 

areafo

Mitglied
@private

Der Funktionsumfang hängt von den Wünschen der Benutzer ab :D, befrag sie dazu einfach.

Schreib dir dann ein kleines Pflichtenheft, diskutiere Umsetzungsvarianten mit den Benutzern usw.

Soll es tatsächlich nur auf Desktops benutzt werden oder wäre der Chef nicht begeistert mit seinem Blackberry oder Tablet das in der Badewanne durchzuführen ^^.

Denk auch an neue Architekturen, Laufzeit und Zukunftssicherheit. Nicht nur immer hier und jetzt und ganz schnell irgendwas
 
P

private x

Gast
Hi,

ja um ne Anforderungsdefinition komme ich nicht rum. Ich dachte mir vllt. gibts noch ein paar Stammfunktionen die unentbehrlich sind :)...Ja das wär mal interessant, das ganze auch mobil anzubieten. Was braucht man denn alles dafür bzw. wie programmiert man das??

Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
agent47 HTTP Grundstzfrage verteilte Anwendung Netzwerkprogrammierung 20
B Konzept Verteilte Datensicherung Netzwerkprogrammierung 1
M Verteilte Anwendung - welche Technik? Netzwerkprogrammierung 31
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
S Java Chat Server Netzwerkprogrammierung 8
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
P Chat in Java Netzwerkprogrammierung 3
C java.net.ConnectException: Operation timed out? Netzwerkprogrammierung 2
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
T curl request in java umwandeln Netzwerkprogrammierung 4
M Socket Java Server: NullPointerException Netzwerkprogrammierung 4
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
I Socket Kommunikation C / Java Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
L Java RMI Objekt konsistenz Netzwerkprogrammierung 1
H Portforwarding umgehen in Java? Netzwerkprogrammierung 5
D Response in Java Servlet erzeugen Netzwerkprogrammierung 0
X Mit Java eine Applikation auf einem anderen Windows Rechner (Windows Server 2008) starten Netzwerkprogrammierung 1
E HttpUrlConnectionExample cannot be resolved to a type / Java 8 Netzwerkprogrammierung 1
F Socket Java Server mit Android App, Antwort vom Server an App Netzwerkprogrammierung 5
M Java-Programm aus dem Web laden Netzwerkprogrammierung 3
S HTTP-Requeste von Browser mit Java sniffen? Netzwerkprogrammierung 9
J access denied (“java.net.SocketPermission”…) mit Java 8 Netzwerkprogrammierung 1
N CURL requests in Java Netzwerkprogrammierung 6
P Kritische Java-Anwendung und Citrix veröffentlichen Netzwerkprogrammierung 1
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
1 Netty NIO oder Java IO Netzwerkprogrammierung 2
1 Via Java mit WLAN Netzwerken verbinden Netzwerkprogrammierung 5
J Java Service Wrapper Netzwerkprogrammierung 1
K Mit Java ASPX Webseite fern steuern Netzwerkprogrammierung 2
H Socket Java | Server sendet Nachricht nur wenn vorher eine JOptionPane-Nachricht ausgegeben wurde. Netzwerkprogrammierung 2
K Emailsenden via Java Applikation Netzwerkprogrammierung 5
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
C Java Chat Admin Kenzeichnung Netzwerkprogrammierung 14
P PHP Script per Java ausführen Netzwerkprogrammierung 2
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
T php/java-bridge Netzwerkprogrammierung 16
D Webseite(mit JavaScript-Element) mit Java auslesen Netzwerkprogrammierung 0
G Multiple Clients and one Server --> java.lang.NullPointerException Netzwerkprogrammierung 1
E Java Server übers Internet erreichen Netzwerkprogrammierung 4
D Socket Error: java.lang.NullPointerException Netzwerkprogrammierung 1
windl AirPlay mittels Java Netzwerkprogrammierung 0
R Email mit Java API Netzwerkprogrammierung 1
P Java Deauth / Deauthentication request Netzwerkprogrammierung 10
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
E HTTP java.lang.IllegalArgumentException: protocol = http host = null Netzwerkprogrammierung 1
R Java - Socketprogrammierung Netzwerkprogrammierung 10
B Methoden und Konstruktoren von Java.net package werden nicht geladen Netzwerkprogrammierung 2
L Email versenden mit Java funktioniert nicht, Fehlermeldungen: MessagingException & SocketException Netzwerkprogrammierung 10
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben