Was ist ein ServerHandler?

Ein ServerHandler hat die Aufgabe Client-Anfragen zur Weiterbehandlung und ggf. Beantwortung an externe Anwendungslogik zu delegieren. Er ist somit de facto die Schnittstelle zwischen EJOE und der/den Anwendungen, welche über EJOE RemoteServices zur Verfügung stellen.

Der zu verwendende ServerHandler muss beim Erzeugen der EJServer-Instanz angegeben werden.

Es existieren drei Arten von ServerHandlern in EJOE:

  • RemotingHandler:

    bieten die Möglichkeit Client-Anfragen per Reflection zu verarbeiten
    • de.netseeker.ejoe.handler.DefaultRemotingHandler :

      Standard RemotingHandler, entspricht der Verwendung von normaler Reflection mit einigen Geschwindigkeitsgewinnen durch Caching von Klassen und Methoden.
    • de.netseeker.ejoe.handler.AssistedRemotingHandler :

      Erweiterter RemotingHandler, welcher auf Basis von generierten und gecachten Proxyklassen für Reflection-Aufrufe arbeitet.

      Durch die Generierung der Proxyklassen dauert der erste Aufruf einer Methode länger als mit dem DefaultRemotingHandler, alle folgenden Aufrufe sind jedoch schneller.

      Für die Proxygenerierung wird javassist eingesetzt.

      Der AssistedRemotingHandler ist nicht mit JDK/JRE < 1.5.0 einsetzbar!
  • Eigene ServerHandler:

    ServerHandler, erstellt von - aus Sicht von EJOE - Fremdanwendungen, welche das vordefinierte Interface de.netseeker.ejoe.handler.ServerHandler implementieren
    • de.netseeker.ejoe.handler.MultiObjectHandler :

      Abstrakter ServerHandler, welcher für einfache Multi-Objekt-Anfragen erweitert werden kann. Dieser Handler gibt anstelle des in EJOE für ServerHandler üblichen, als java.lang.Object behandelten, Parameters eine java.util.Map vor.
  • de.netseeker.ejoe.handler.ClassHandler :

    Spezieller, EJOE-interner ServerHandler, welcher vom EJOE-eigenen RemoteClassloader angesprochen wird.
Bei der Integration von EJOE in die eigene Umgebung stellt sich also eine entscheidende Frage:

Einen ServerHandler aus der Familie der RemotingHandler benutzen oder eigenen ServerHandler implementieren?