Multi-Tier mit JBoss und Tomcat: Trennung der Ebenen

Status
Nicht offen für weitere Antworten.

Grizzly

Top Contributor
Hi,

mal 'ne Frage zur Trennung der einzelnen Schichten bei Multi-Tier Anwendungen:
Wir werden hier in nächster Zeit einige Anwendungen in einer Multi-Tier Architektur entwickeln. Dabei werden wir JBoss und Tomcat einsetzen. Nun kam aber die Frage nach der sinnvollen Trennung der Präsentations-, der Business Logik- und der Datenschicht auf:

Sollen von der Applikation-Schicht nur die Informationen oder Id an den Tomcat durchgegeben werden? Denn rein theoretisch würden ja auch die Informationen an sich sowie die eine Id reichen (die Id wird benötigt, um nachher bspw. von dieser Id aus einer ComboBox wieder auf das Objekt zurückschließen zu können).

Oder sollen die Objekte bis zum Tomcat durchgereicht werden? Der Tomcat müsste sich dann um das Mapping kümmern und die Objekte im Speicher behalten.

Was sind Eure Erfahrungen bzw. wir habt Ihr das gelöst?
 

meez

Top Contributor
1. Warum Jboss und Tomcat...Löst alles mit einem reinen J2EE Server, sprich JBOSS..
2. Hähh ID..Die Datentrennung erfolgt automatisch, wenn du EJB's einsetzt??
 

Grizzly

Top Contributor
Wir werden für die Datenbank <-> Objekt Geschichte Hibernate einsetzen. Damit ist auch die Trennung zwischen Business Logic und Datenschicht schon mal garantiert.
In der Web-Oberfläche kann ich aber nicht mit ganzen Objekten hantieren. Das maximale wäre eine Id (bzw. die Id, die Hibernate jedem Objekt verpasst), die ich dann bspw. durch eine ComboBox im Formular wieder zurückbekomme. Und von dieser Id muss ich ja irgendwie wieder zum Objekt kommen, um mit diesem dann in der Business Logic in den EJBs weiterverarbeiten zu können.
 
G

Guest

Gast
Was spricht dagegen, die Primärschlüssel zu verwenden?
Selbstverständlich vorausgesetzt, es sind keine Primärschlüssel,
die aus sensiblen Daten bestehen.
Optimal wäre es die Datenbank direkt so zu modelieren, dass
die Primarykeys rein zur Identifizierung eines Datensatzes
gedacht sind. Also kein Bezug zum tatsächlichen Inhalt der
Tabellenzeile. z.B. ein Integer (auto-increment)

Am Beispiel einer Tabelle-Person wäre das:
Code:
  ID, Rest der Daten
   1, Person_1
   2, Person_2
1234, Person_3
  56, Person_4
  789, Person_5
In HTML dann
Code:
<select name="person" ...>
<option value="1">Name Vorname_1
<option value="2">Name Vorname_2
<option value="1234">Name Vorname_3
<option value="56">Name Vorname_4
<option value="789">Name Vorname_5
</select>
Es sind zwar "nichtssagende" Daten diese ID's, kosten aber nichts und
lassen sich einheitlich für alle Tabellen in der Persistenzschicht
verwenden.
 

Grizzly

Top Contributor
@Gast: Genau das war ja eine der Lösungen, die ich versucht habe zu skizzieren. Hibernate - das in dem Fall die Persistenzschicht wäre - generiert selber eindeutige Id's (muss ja auch selber die Objekte wieder erkennen ;) ).

Meine Frage war eigentlich eher, wie Ihr das in Euren Projekten bisher gelöst habt und was Eure Erfahrungen waren.
 
G

Guest

Gast
Ich würde sagen, dass Webseiten stark Usecase bezogen sind.
Eine Möglichkeit, die sich anbietet, ist die Verwendung "versteckter"
Formularfelder, anhand deren man das entsprechende Formular
erkennt.
z.B. <input type=hidden name="formid" value="frm002">

Serverseitig wird dann anhand dieser ID's eine Statemaschine
bedient, die den Aufruf an den entsprechenden FormHandler
weiterleitet.
Stichworte: Statemaschine, Workflow, PageFlow, Chain of responsibility, Delegation

Das eigentliche Servlet sollte strohdoof sein und lediglich eine Statemaschine mit
Daten bedienen bzw. Daten/Anweisungen von der Statemaschine empfangen.

Hoffe, es bringt Dich auf paar Ideen. ;)
 
G

Guest

Gast
Wieso kannst/darfst du denn in der Präsentationsschicht keine Objekte verwenden? Hibernate lädt Value Objects, einfache Datenobjekte aus der Datenbank. Die eignen sich bestens zur Übertragung zwischen den Schichten. In der Präsentationsschicht werden die Daten aus den Ojekten mit dem geeigneten Framework (JSP, Struts, JAXB/XSLT etc.) an Html-Forms gebunden. Der Benutzer kann Werte ändern, die Objekte werden zurückübertragen und mit Hibernate in der Datenbank aktualisiert. Funktioniert problemlos.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Multi-Server Architektur im AS (JBOSS/Glassfish) realisieren Server einrichten und konfigurieren 2
I "localhost" zu DNS (z.B. my webapp.de) ändern bei JBoss / Wildfly Server einrichten und konfigurieren 6
OnDemand Welcher Appserver? Glassfish, Jboss? Server einrichten und konfigurieren 8
C Probleme beim Starten von JBoss AS 7.1.1 Server einrichten und konfigurieren 1
P JBoss Domain mode Server einrichten und konfigurieren 1
W Mehrere Datasources unter JBoss Domain-Modus? Server einrichten und konfigurieren 0
D JBoss Download Speed Server einrichten und konfigurieren 3
M JBoss JNDI Server einrichten und konfigurieren 0
boxi JBoss standalone.sh bleibt "hängen" Server einrichten und konfigurieren 0
V JBoss DuplicateServiceException mysql Server einrichten und konfigurieren 2
R Jboss Problem nach versuchtem PrimeFaces Update Server einrichten und konfigurieren 0
P JBoss 7.1 konfigurieren fürs Web Server einrichten und konfigurieren 2
S JBoss 7.1.1 stürzt ab Server einrichten und konfigurieren 5
G JBoss restart nach Stromausfall Server einrichten und konfigurieren 2
E JBoss bind address Server einrichten und konfigurieren 4
P JBoss vom putty aus starten Server einrichten und konfigurieren 7
T JBoss mit JSF Problemem Server einrichten und konfigurieren 2
P JBoss in Linux Server einrichten und konfigurieren 2
H JBoss AS 7.1.1 Installations problem Server einrichten und konfigurieren 2
N JBoss AS 7.1 - Fehler: Hauptklasse C: Server einrichten und konfigurieren 7
T JBOSS und Glassfish auf einem physischen Rechner Server einrichten und konfigurieren 5
G JNDI JBoss Server einrichten und konfigurieren 5
T Von JBoss gelieferte Dependencies nicht deployen Server einrichten und konfigurieren 7
P JBoss 7 Server log4j.jar Server einrichten und konfigurieren 10
J JBoss zeigt im Browser nichts an Server einrichten und konfigurieren 18
M JBoss und Tomcat Server einrichten und konfigurieren 8
P JBoss Server Server einrichten und konfigurieren 2
NoXiD EJB 3.1 für JBoss 7 Server einrichten und konfigurieren 3
D In Jboss 4.2 *-ds.xml Deployment Reihenfolge steuern? Server einrichten und konfigurieren 2
M Exception mit Hippo ECM auf Jboss Server einrichten und konfigurieren 2
M Wenn Classloader isolation dann keine JNDI Verbindung mit Webapp in Jboss Server einrichten und konfigurieren 2
M Jboss Deployment Problem Server einrichten und konfigurieren 2
V Jboss 5 Release Infos auslesen? Server einrichten und konfigurieren 7
G JBoss Portal =? JBoss + JBoss Portal Server einrichten und konfigurieren 2
D jBoss Basis-setup Server einrichten und konfigurieren 8
V Problem bei Portwechsel bei JBOSS unter macosx, oder anderes Problem? Server einrichten und konfigurieren 3
T JBoss 5 DataCache Server einrichten und konfigurieren 3
J Seam 2.2: JBoss 4.2.3 oder 5.1? Server einrichten und konfigurieren 1
D Probleme Installation JBoss Application Server Server einrichten und konfigurieren 5
S JBoss MySQL TimeOut Server einrichten und konfigurieren 3
M Problem beim jboss Start Server einrichten und konfigurieren 2
S JBoss und Eclipse unter Windows 7 Server einrichten und konfigurieren 2
F JBoss-Download ohne run.bat Server einrichten und konfigurieren 2
G JBoss 4.2 und Eclipse Server einrichten und konfigurieren 4
M JBoss 5.1 will nicht starten Server einrichten und konfigurieren 2
G JBoss Port in use- Problem Server einrichten und konfigurieren 4
K JBoss 4.2.1 Directory Browsing Server einrichten und konfigurieren 4
Y Jboss nur im internen Netz auf Port 8080zulassen Server einrichten und konfigurieren 6
fastjack jBoss Natives und Windows Service Server einrichten und konfigurieren 3
R JBoss AS 5.1: --host-Parameter für Windows-Service Server einrichten und konfigurieren 1
S Problem mit JBoss und DataSource Server einrichten und konfigurieren 3
P JBOSS AS5 Port Konfig Server einrichten und konfigurieren 11
GFEMajor Von Tomcat auf JBoss EJB mit Sicherheit Server einrichten und konfigurieren 2
N JMX Console von JBoss und Hochkomata Server einrichten und konfigurieren 3
J SecurityContextInterceptor fehlt bei ejb3 Anwendung unter JBoss 5.0 Server einrichten und konfigurieren 1
S JBoss & Apache 2.2 parallel betreiben Server einrichten und konfigurieren 5
J JBoss 2 Servlet in 1 web-app Server einrichten und konfigurieren 4
S JBoss nicht von außen erreichbar? Server einrichten und konfigurieren 1
P JBoss Cluster mit Apache als Loadbalancer Server einrichten und konfigurieren 1
F Jboss mit Apache2 verbinden Server einrichten und konfigurieren 3
S Eine Frage zu log4j, jboss an sql-server (im teigmantel ;) ) Server einrichten und konfigurieren 3

Ähnliche Java Themen

Neue Themen


Oben