2010-09-09 2 views
11

Nun Wir haben Situation zu entscheiden, jetzt. Ich dachte Stackoverflow ist der beste Ort, um zu diskutieren.EJB Vs WebService? Leistung Sicht

Hintergrund:

Wir haben 2 JVMs Enterprise Application Server und eine Anwendung auf jedem von ihnen im Einsatz. Wir müssen den Aufruf der Geschäftsfunktionalität von einem Computer auf einen anderen aktivieren. Nehmen wir an, einer ist Client und ein anderer ist Server.

Nun von der Performance-Point-Ansicht, welche Ansatz besser ist, Server-Anwendung zu entwerfen.

durch folgende Dinge im Auge behalten:

Ich habe 2 Möglichkeiten:

  1. Reine EJB-Anwendung bedeutet EJB-Client und EJB-Server-Komponente

  2. WebService Plain Java-Ansatz (kein Webservice über EJB, coz es ist einfach Durcheinander)

Meine Leistungsmetriken: Geschwindigkeit: Mit welchem ​​Designansatz wird eine Anfrage schneller verarbeitet? Meine Business-Anwendung wird auf 32-Bit-Maschine sicher bereitgestellt werden!

Beachten Sie auch, dass es 2 JVMs ist, ein 32-Bit und 64 Bit (Vermeidung dieser Situation jetzt unvermeidlich ist)

Bitte geben Sie Ihr Feedback

Grüße

Chetan

+0

Java-Tag zu Ihrer Frage hinzugefügt. –

+0

Welche Probleme haben Sie mit EJB-unterstützten Webdiensten? –

+0

@BlaiseDoughan Sorry für offtopic, aber es ist eine gute Praxis, EJB-basierte Web-Services zu machen? – MyTitle

Antwort

8

Wenn Sie unter "Web Services" SOAP Web Services verstehen, sollten EJBs schneller sein, egal wie Sie es tun.

Vorteile:

  • Java Serialisierung ist schneller als XML Web Services
  • Serialisieren und XML verwendet als gerade Serialisierung mehr Speicher Parsen, EJBs speichern Speicher
  • EJBs sind in gerade Java-Schnittstellen und Wertobjekte ausgedrückt . Für Webdienste müssen Sie möglicherweise eine Zuordnungsebene wie XmlBeans oder JAXB hinzufügen.
  • meisten EJB-Protokolle können Sie die TCP/IP-Verbindungen zwischen den Anrufen

Cons leicht wiederverwenden: Client und Server

  • Es ist

    • Doing eine richtige Gestaltung erste XML-Nachrichtendefinition wird entkoppeln leichter zu ändern die Nachrichtenformate angesichts dieser zusätzlichen Ebene der Indirektion
    • EJB-Implementierungen waren historisch riesig und langsam, wie in größer als Web-Service-Stacks (aber neuere EJB-Implementierungen wie Apac Die OpenEJB sind klein, leicht und einbindbar.

    Wenn Sie jedoch keine verteilte Transaktionsverarbeitung benötigen, verwenden Sie einfach RMI.Es hat die Vorteile, aber keine Nachteile von EJBs. Es ist schon eine Ewigkeit her, aber es funktioniert immer noch gut.

  • +0

    vielen Dank für die Details .. Ich bin auf der Suche nach einer schnelleren Art der Kommunikation zwischen 2 JVM. EJB ist diejenige, die ich fühle. Vor allem in meiner Anwendung möchte ich meine Leistung nicht verlieren, weil XML an beiden Enden parst. – Chetan

    1

    Es muss nicht das eine oder das andere sein. Sie können Ihre gesamte Geschäftslogik in EJBs speichern und eine Web-Service-Fassade für den Zugriff auf das EJB bereitstellen. Denken Sie auch daran, dass es verschiedene Arten von Webservice-Architekturen gibt. SOAP ist das, was die meisten Leute denken, wenn sie "Web Service" hören, aber vielleicht möchten Sie auch JAX-RS sehen.

    Senden von Daten als XML über HTTP ist schrecklich ineffizient. Auf der anderen Seite gibt es Ihnen viel mehr Flexibilität auf der Client-Seite. Web-Services können von nahezu jeder Plattform oder Programmiersprache genutzt werden.

    +0

    danke Mike. Wenn ich SOAP über EJB nehme, würde die XML-Verarbeitung meine Performance stark beeinträchtigen. Denn meine xml-Payload würde meist zwischen 60 und 100KB liegen. – Chetan

    +0

    Mike schlägt JAX-RS vor, das XML nicht SOAP-Nachrichten sendet. Ein Beispiel finden Sie unter: http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html –