Apama 10.15.3 | Introduction to Apama | Apama Architecture | How Apama integrates with external data sources
 
How Apama integrates with external data sources
You can connect Apama to any event data source, database, messaging infrastructure, or application. There are several ways to do this:
*Write transport and codec connectivity plug-ins.
*Develop custom client applications with Apama APIs for Java, .NET, and C++.
*Create applications that use correlator-integrated messaging for JMS.
*Use MQTT for communication between constrained devices, for example, devices with limited network bandwidth.
*Use Kafka for communication with the Kafka distributed streaming platform.
*Use Cumulocity IoT for communication with connected IoT devices.
Using connectivity plug-ins to connect with external data sources
Connectivity plug-ins can be written in Java or C++, and run inside the correlator process to allow messages to be sent and received to/from external systems. Individual plug-ins are combined together to form chains that define the path of a message, with the correlator host process at one end and an external system or library at the other, and with an optional sequence of message mapping transformations between them.
Connectivity plug-ins allow plug-ins to transform and handle delivery of events.
Connectivity plug-ins perform a similar role to the Apama client library, which allows Java or C++ code in an external process to send/receive messages to/from the correlator. If Apama events need to be made available within an external system, then consider connectivity plug-ins if the external system has a protocol (such as JSON over HTTP). If the external system hosts plug-ins via an API, then the client library may be a better fit.
For detailed information, see Using Connectivity Plug-ins.
Using Apama APIs to connect with external data sources
A range of APIs let you extend Apama at the client and correlator levels for integration with other environments, such as Java, .NET or C++. In addition, you can extend correlator behavior with Java and C++ plug-ins that can call external function libraries from within an application.
For detailed information, see Developing Custom Clients.
Using correlator-integrated messaging for JMS to connect with external data sources
Apama's correlator-integrated messaging for JMS provides an efficient way to receive and send JMS messages to and from Apama applications. It also provides for reliable messaging (guaranteed delivery) and duplicate detection.
For detailed information, see Using the Java Message Service (JMS).
Using MQTT for communication between constrained devices
Apama provides a connectivity plug-in, the MQTT transport, which can be used to communicate between the correlator and an MQTT broker, where the MQTT broker uses topics to filter the messages. MQTT messages can be transformed to and from Apama events by listening for and sending events to channels such as prefix:topic (where the prefix is configurable).
For detailed information, see The MQTT Transport Connectivity Plug-in.
Using Kafka for communication with a Kafka distributed streaming platform
Apama provides a connectivity plug-in, the Kafka transport, which can be used to communicate with the Kafka distributed streaming platform. Kafka messages can be transformed to and from Apama events by listening for and sending events to channels such as prefix:topic (where the prefix is configurable).
For detailed information, see The Kafka Transport Connectivity Plug-in.
Using Cumulocity IoT for communication with connected IoT devices
Apama provides a connectivity plug-in, the Cumulocity IoT transport, which allows you to communicate with the IoT devices connected to Cumulocity IoT. For example, you can receive events from the devices and send operations to the devices.
For detailed information, see The Cumulocity IoT Transport Connectivity Plug-in.