ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
2392
2392
EMPFEHLEN
-
Hi!
Da ich mit beiden Themen nicht vertraut bin ich aber zumindest wissen möchte wann ich was benutze, hier meine Frage (vllt erbarmt sich ja einer):
Wann benutze ich RMI?
Wann benutze ich EJB?
Die 3te Variante wäre dann bspw ein Webservice, hierbei weiß ich aber wann ich es als Technologie verwenden würde (Webservice benutzen wenn ich bspw verschiedene Programme welche wiederum in den unterschiedlichsten Sprachen geschrieben sind auf ein Service zugreifen solln --> sprich mit nem Webservice bin ich nicht an Java gebunden, also die Aufrufer des Services).
mfg
-
15.04.08 10:47 #2
Im besten Fall nutzt du gar nichts davon
. Martin Fowler hat mal geschrieben: "The first rule of distributing objects is: don't do it!"
. Remotekommunikation ist ungefähr um den Faktor 1000 langsamer als lokale. Hinzu kommen die Themen Serialisierung usw.
Grundsätzlich gehst du mit deiner Erklärung schon in die richtige Richtung. Wenn die erste Frage (Brauche ich remoting?) geklärt und mit "ja" beantwortet ist, stellt sich die Frage nach der einzusetzenden Technologie. Hierbei gibt es eine Reihe von Entscheidungskriterien. In welchen Sprachen sind die kommunizierenden Systeme implementiert? Gibt es eine heterogene Systemlandschaft setzt man meißt auf WebServices. Die sind sprachneutral und werden in den meisten Sprachen unterstützt. Allerdings gibt es hier auch Interoperabilitätsschwierigkeiten (v.a. zw. Java und C# z.B.). WebServices sind XML basiert und produzieren einen ordentlichen Overhead, so dass in performancekritischen Anwendungen durchaus nach Alternativen geschaut werden muss.
Hier fallen dann schnell die Namen Hessian und Burlap. Burlap ist ein XML basiertes, sprachunabhängiges Protokoll mit weniger Overhead als WebServices. Hessian ist die binärvariante von Burlap, ebenfalls sprachunabhängig.
RMI ist nur für Java 2 Java Kommunikation möglich, ist aber selbst von den Binärprotokollen das schnellste.
Als wenn das nicht schon genug wirrwarr wäre, gilt es in vielen Fällen noch das Übertragungsprotokoll zu beachten. RMI basiert auf TCP, kann also in Umgebungen, wo Ports stark restriktiert sind Probleme bereiten, ebenso Hessian und Burlap. Weitaus entspannter gestalten sich Protokolle die auf HTTP aufsetzen, wie Springs HTTP Invoker (nur Spring <-> Spring). WebServices gehen sowohl über HTTP als auch über JMS und SMTP.
Der große Vorteil von WebServices ist die enorme Flexibilität, gegen die man meist etwas Performance opfert.
Genug Verwirrung gestiftet? Hier gibts noch nen netten Artikel zu dem meisten Technologien: http://daniel.gredler.net/2008/01/07...ol-benchmarks/
Gruß
Ollie
PS: EJB ist unter der Haube RMI. Ich würde aber auf keinen Fall anfangen EJB einzuführen, nur um Remoting zu machen. Dazu ist der Kram (immernoch) zu schwergewichtig.In theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
15.04.08 11:04 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
RMI und Webservices sind eine Remoting Technologie
EJB ist ein Komponentenmodell.
Also per se sind das erstmal zwei paar Schuhe.
Ich kann mich der Erklärung von Ollie nur anschließen.
Stimmt nicht ganzRMI ist nur für Java 2 Java Kommunikation möglich, ist aber selbst von den Binärprotokollen das schnellste.
Mit IIOP.Net (http://iiop-net.sourceforge.net/rmiAdderDNClient.html)
kann man auch mit einer Java Anwendung via RMI over IIOP kommunizieren und ist auch ziemlich schnell.
Das ist zwar der default lässt sich aber in der Regel im Container konfigurieren.PS: EJB ist unter der Haube RMI. Ich würde aber auf keinen Fall anfangen EJB einzuführen, nur um Remoting zu machen. Dazu ist der Kram (immernoch) zu schwergewichtig.
Nur weil Systeme in unterschiedlichen Sprachen geschrieben sind, muss man nicht gleich Webservices zur Kommunikation verwenden. Es lassen sich auch eigene binäre Kommunikation über TCP/UDP Sockets, XML RPC oder JMS (via JNI Bridge oder NMS mit ActiveMQ: http://activemq.apache.org/nms/).
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
wann Config-Datei, wann Registry?
Von XtremeCJ im Forum Coders TalkAntworten: 1Letzter Beitrag: 27.11.10, 12:16 -
Wann benutze ich welchen Listener?
Von swas im Forum JavaAntworten: 2Letzter Beitrag: 25.06.10, 08:01 -
Wann sollte man DIV, wann TABLE einsetzen?
Von trench140 im Forum HTML & XHTMLAntworten: 5Letzter Beitrag: 18.08.08, 12:14 -
Java Anwendung als ausführbare exe Datei- Warum, Wann, Wann nicht und Wie
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 26.06.05, 15:01 -
Wann Klassen und wann ID´s?
Von Jan-Frederik Stieler im Forum CSSAntworten: 4Letzter Beitrag: 03.03.05, 21:13





Zitieren

Login





