The
codec layer is a layer of abstraction between the transport layer and the IAF's Semantic Mapper. It consists of one or more plug-in libraries that perform message
encoding and
decoding. Decoding involves translating
downstream messages retrieved by the transport layer into the standard "normalized event" format on which the Semantic Mapper's rules run; encoding works in the opposite direction, converting
upstream normalized events into an appropriate format for transport layer plug-ins to send on. Note that unlike the situation with C/C++, in Java codec plug-ins are always both encoders and decoders. See
The Integration Adapter Framework for a full introduction to codec plug-ins and the IAF's architecture.
This chapter includes the codec plug-in development specification for Java and additional information for developers of Java event codecs.
C/C++ Codec Plug-in Development provides analogous information about developing codec plug-ins using C/C++.
Before developing a new codec plug-in, it is worth considering whether one of the standard Apama plug-ins could be used instead.
Codec IAF Plug-ins provides more information on the standard IAF codec plug-ins:
JStringCodec and
JNullCodec. The
JStringCodec plug-in codes normalized events as formatted text strings. The
JNullCodec plug-in is useful in situations where it does not make sense to decouple the codec and transport layers, and allows transport plug-ins to communicate with the Semantic Mapper directly using normalized events.