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?