Eine Serialisierungsstrategie entscheidet darüber, in welchem Umfang EJServer und EJClient Serialisierungsaufgaben übernehmen sollen.
Auch wenn einer der Grundgedanken hinter EJOE der einfache, unkomplizierte Austausch von Objekten über Netzwerk ist, bietet EJOE dennoch Eingriffsmöglichkeiten um neben der Art der Serialisierung (siehe SerializeAdapter) auch Einfluss auf den Umfang der Serialisierung nehmen zu können.
EJOE, sowohl EJClient als auch EJServer, versendet Daten immer in der sogenannten serialisierten Form , welche durch den jeweiligen SerializeAdapter bestimmt wird. Unter gewissen Umständen kann es sinnvoll sein entweder komplett auf die Verwendung der durch EJOE automatisch, intern erzeugten serialisierten Form zu verzichten oder aber anstelle deserialisierter Serverantworten in Objektform Zugriff auf die serialisierte Form zur Weiterverarbeitung zu erhalten.
Arbeiten bspw. sowohl ServerHandler als auch Clientanwendung mit Bytearrays und/oder Objekten vom Typ java.nio.ByteBuffer, dann ist es unnötig diese Daten in eine transportable Form zu bringen, da sowohl Bytearrays als auch ByteBuffer bereits transportabel sind.
Evtl. ist aber auch wünschenswert lediglich die Serverantworten von EJServer mittels eines XML-basierten SerializeAdapters in XML-Form zu serialisieren, an den EJClient zu übermitteln und dann in der serialisierten XML-Form an den Aufrufer zurückzugeben, da die XML-Form via XSLT oder anderer auf XML aufsetzender Mechanismen direkt weiterverarbeitet werden kann.
Bei der Standardserialisierung werden alle Objekte serialisiert bevor sie
import de.netseeker.ejoe.EJClient; import de.netseeker.ejoe.EJConstants; ... EJClient client = new EJClient(...); client.setAdapterStrategy( EJConstants. ADAPTER_STRATEGY_DEFAULT ); ...
EJClient bietet die Möglichkeit, sich anstelle deserialisierter Objekte die serialisierte Form einer Serverantwort zurückliefern zu lassen. Dies kann insbesondere dann sinnvoll sein, wenn
import de.netseeker.ejoe.EJClient; import de.netseeker.ejoe.EJConstants; ... EJClient client = new EJClient(...); client.setAdapterStrategy( EJConstants. ADAPTER_STRATEGY_MIXED ); ...
In Fällen, in denen sowohl ServerHandler als auch Clientanwendung Request- und Responsedaten als java.nio.ByteBuffer verarbeiten können, ist es möglich die Serialisierung komplett abzuschalten, da Objekte vom Typ java.nio.ByteBuffer bereits ohne weitere Serialisierung über Netzwerk transportabel sind. Es wird keine serialisierte Form für den Transport dieser Objekte benötigt.
Die direkte Serialisierungsstrategie wird durch die Konstante ADAPTER_STRATEGY_DIRECT in der Klasse de.netseeker.ejoe.EJConstants abgebildet.
import de.netseeker.ejoe.EJClient; import de.netseeker.ejoe.EJConstants; ... EJClient client = new EJClient(...); client.setAdapterStrategy( EJConstants. ADAPTER_STRATEGY_DIRECT ); ...