Software AG Apama essentially has three elements: an integration framework for connecting to external systems and data feeds, an execution engine known as the Apama Correlator, and front-end tools for developers. As far as integration is concerned, Apama ships with connectivity to JMS, Universal Messaging, MQTT, Kafka, HTTP, databases, web services, files on disk and 27 capital markets-specific sources. There is also a connectivity plug-in framework that allows you to create your own in-process adapters and to reuse elements of these plug-ins across other adapters. For example, you can reuse JSON mapping logic across multiple adapters, so you only have to define such processes once.
Apama Correlator consists of multiple parallelised containers that are known as “contexts”. Multiple (thousands) of contexts may be active simultaneously and each context can process any number of Apama applications, which are written in either EPL (Apama’s event processing language) or Java (Apama has a built-in JVM). An optimised thread scheduler allows elastic scaling. Within the Correlator there are three major components: the Apama HyperTree, the Temporal Sequencer and the Stream Processor. Respectively, these provide an indexing method that allows low latency matching between events and patterns you are trying to detect; support for temporal and spatially-based correlations; and the ability to store and organise events that occur within a time interval and orchestrate real-time analytics across those time windows. Additionally, events can be stored in Software AG’s TerracottaDB, an in-memory NoSQL database. This is useful, for example, for long-running queries. Apama Correlator also features tight integration with Zementis for deploying predictive models in Apama, with support for both PMML (Predictive Modelling Mark-up Language) and TensorFlow models.
There are three front-end tools provided for developers of Apama applications, intended for use by developers, business analysts and end users respectively. The first of these is an Eclipse-based environment that supports development using EPL, the second provides a drag-and-drop interface wherein you graphically model declarative patterns across windows of data, and in the third case there is a web-based, wizard-driven interface whereby you parameterise pre-built templates. Software AG also offers a range of pre-built applications (accelerators) that span a variety of use cases, including IoT, intelligent GRC (governance, risk and compliance), and smart logistics.
Figure 1 – A dashboard created in MashZone NextGen
A variety of pre-built components and capabilities are available inside Apama via the Industry Analytics Kit. There are a number of commonly occurring quality issues that can arise with streaming events, as well as various fundamental analytics that are regularly reused, and what Software AG has done, is to pre-build these components for you. It has also developed extended capabilities that will, for example, link different capabilities together, such as linking a threshold breach to a missing data analytic that will look for any gaps in regular breaches. Software AG has also developed a number of proprietary, industry specific capabilities that are available in the Industry Analytics Kit.
Apama also integrates bi-directionally with MashZone NextGen, Software AG’s self-service analytics environment for preparing, visualising and analysing data. In particular, both Apama and MashZone NextGen can be used to build real time, interactive dashboards (an example of which can be seen in Figure 1).