Developer(s) | Software AG |
---|---|
Stable release | 10.5.3 / June 26, 2020 [1] |
Written in | C++ and Java |
Operating system | Windows, Linux |
Type | Complex event processing, Event stream processing, IoT, Data analytics |
License | Commercial / Freemium |
Website | apamacommunity |
Apama is a complex event processing (CEP) and event stream processing (ESP) engine, developed by Software AG. Apama serves as a platform for performing streaming analytics over a range of high volume/low latency inputs and applications, such as IoT devices, financial exchanges, fraud detection, social media and similar. [2] Users can define data patterns to listen for and actions to take when these patterns are found, which are defined in the provided domain-specific language called the Event Processing Language (EPL). The core Apama engine is written in C++; the process can also optionally contain a JVM for interacting with user created Java code. Apama focuses on high throughput, low latency and memory efficient performance; used in both Intel benchmarks [3] and smaller machines such as the Raspberry Pi, [4] routers and other Edge/IoT [5] devices. It is particularly noteworthy within the CEP space as being one of the earliest projects, a long term market leader, [6] [7] [8] [9] and innovator of many patents. [10] [11] [12] [13] [14] [15] [16] [17]
Apama Ltd. was founded in 1999 by Dr John Bates, Dr Giles Nelson and Dr Mohamad Afshar, who met while undertaking research at the Cambridge University Department of Computer Science and Technology.
In 2005, Apama Limited was acquired by Progress Software for $25 million. [18]
In 2013, Apama was acquired by Software AG from Progress for an undisclosed amount. [19]
In 2016, a freemium version, Apama Community Edition, was released, [20] alongside supporting forums and GitHub spaces.
Applications for Apama are authored in the Event Processing Language (EPL). EPL contains language features designed purely for Event Driven Programming, [21] including:
The EPL C++/Java-like syntax is designed to create CEP applications succinctly in conjunction with the above features, an example of which can be found below:
eventMyEvent{integermyInt;sequence<string>myListOfStrings;booleanmyBool;}monitorMyMonitor{actiononload(){spawnworker()tocontext("mySideThread");}actionworker(){onallMyEvent(myInt>10)asmyCoassignedEvent->MyEvent(myInt>20)orMyEvent(myBool=true)within30.0{if(doWork(myCoassignedEvent.myListOfStrings)!=true){log"Problem!";}}}actiondoWork(sequence<string>)returnsboolean{// do work on the listreturntrue;}}
Apama Queries is an alternate language for creating rules over defined data sets, such as the past five minutes of received data or past twenty events received, in an automatically multi-threaded environment that scales across machines. Apama Queries are better suited for monitoring very large sets, such as bank transactions. Typically, each entity (i.e. account holder) will be partitioned and processed independently of the rest of the set. Queries and Monitors can communicate via channels. An example of the previous scenario can be found below:
queryFindSuspiciousWithdrawals{parameters{floatDURATION;floatTHRESHOLD;}inputs{Withdrawal()keycardNumberwithinDURATION;}findeveryWithdrawalaswwherew.amount>100selectlast(w.transactionId)astidselectlast(w.cardNumber)ascidhavinglast(w.amount)>THRESHOLD*avg(w.amount){sendSuspiciousTransaction(tid,cid)toSuspiciousTransactionManager;}}
The Software AG Designer is an Eclipse based IDE with special support for developing and deploying Apama applications, which is included in a standard installation. Features include code assistance, package management, profiling, GUI development and deployment management.
Apama supports the ability for users to create plugins to extend capability. These plugins come in two forms, EPL plugins (to add features to EPL) and Connectivity plugins (for communicating with the outside world). C++ and Java APIs are available for both plugin types. Connectivity plugins come in two forms, codecs (which translate data from one format to another, such as the internal Apama representation to JSON) and transports (which handle sending/receiving to/from external systems, such as JMS). Connections to external systems are made by composing chains of codecs and one transport to achieve the desired topology; these connections are defined by a YAML configuration file at start-up or through dynamic management with the provided tools. Several pre-built plugins for popular technologies (e.g. R, MQTT, Kafka, HTTP, MatLab) as well as connectivity to other Software AG products (e.g. Universal Messaging, Terracotta, Cumulocity) are shipped with Apama installations.
The Apama process is entirely in memory and supports an optional SQLite based in-built persistence system. Additionally, the connectivity API supports reliable messaging to systems that support it, such as JMS. Finally, a pre-built distributed memory store plugin is provided with standard installations for use with appropriate back-ends.
Apama provides an in-built dashboarding technology developed from within the Software AG Designer, as well as native connections to Software AG's MashZone NextGen.
Software AG is a German multinational software corporation that develops enterprise software for business process management, integration, and big data analytics. Founded in 1969, the company is headquartered in Darmstadt, Germany, and has offices worldwide.
Nagios Core, formerly known as Nagios, is a free and open-source computer-software application that monitors systems, networks and infrastructure. Nagios offers monitoring and alerting services for servers, switches, applications and services. It alerts users when things go wrong and alerts them a second time when the problem has been resolved.
Progress Software Corporation (Progress) is an American public company that offers software for creating and deploying business applications. Headquartered in Burlington, Massachusetts with offices in 16 countries, the company posted revenues of $531.3 million (USD) in 2021 and employs approximately 2100 people.
Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing (CEP) consists of a set of concepts and techniques developed in the early 1990s for processing real-time events and extracting information from event streams as they arrive. The goal of complex event processing is to identify meaningful events in real-time situations and respond to them as quickly as possible.
Online transaction processing (OLTP) is a type of database system used in transaction-oriented applications, such as many operational systems. "Online" refers to that such systems are expected to respond to user requests and process them in real-time. The term is contrasted with online analytical processing (OLAP) which instead focuses on data analysis.
Operational intelligence (OI) is a category of real-time dynamic, business analytics that delivers visibility and insight into data, streaming events and business operations. OI solutions run queries against streaming data feeds and event data to deliver analytic results as operational instructions. OI provides organizations the ability to make decisions and immediately act on these analytic insights, through manual or automated actions.
Omnipeek is a packet analyzer software tool from Savvius, a LiveAction company, for network troubleshooting and protocol analysis. It supports an application programming interface (API) for plugins.
Splunk Inc. is an American software company based in San Francisco, California, that produces software for searching, monitoring, and analyzing machine-generated data via a web-style interface.
Truviso is a continuous analytics, venture-backed, startup headquartered in Foster City, California developing and supporting its solution leveraging PostgreSQL, to deliver a proprietary analytics solutions for net-centric customers. Truviso was acquired by Cisco Systems, Inc. on May 4, 2012.
Microsoft Azure, often referred to as Azure, is a cloud computing platform run by Microsoft, which offers access, management, and development of applications and services through global data centers. It provides a range of capabilities, including software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Microsoft Azure supports many programming languages, tools, and frameworks, including Microsoft-specific and third-party software and systems.
Nastel Technologies is an information technology (IT) monitoring company that sells software for Artificial Intelligent IT Operations (AIOps), monitoring and managing middleware, transaction tracking and tracing, IT Operational Analytics (ITOA), Decision Support Systems (DSS) business transaction management (BTM) and application performance management (APM).
SQLstream is a distributed, SQL standards-compliant plus Java stream processing platform. SQLstream, Inc. is based in San Francisco, California and was launched in 2009 by Damian Black, Edan Kabatchnik and Julian Hyde, author of the open source Mondrian Relational OLAP Server Engine.
The following is provided as an overview of and topical guide to databases:
Apache Drill is an open-source software framework that supports data-intensive distributed applications for interactive analysis of large-scale datasets. Built chiefly by contributions from developers from MapR, Drill is inspired by Google's Dremel system. Drill is an Apache top-level project. Tom Shiran is the founder of the Apache Drill Project. It was designated an Apache Software Foundation top-level project in December 2016.
Esper is an open-source Java-based software product for Complex event processing (CEP) and Event stream processing (ESP), that analyzes series of events for deriving conclusions from them.
The Industrial Internet Consortium rebranded as the Industry IoT Consortium in August 2021. The Industry IoT Consortium is a program of the Object Management Group (OMG).
Predix, known as Predix Platform is an industrial IoT software platform from GE Digital. It provides edge-to-cloud data connectivity, processing, analytics, and services to support industrial applications. The Platform has both edge and cloud components. Predix Cloud is hosted on AWS.
The industrial internet of things (IIoT) refers to interconnected sensors, instruments, and other devices networked together with computers' industrial applications, including manufacturing and energy management. This connectivity allows for data collection, exchange, and analysis, potentially facilitating improvements in productivity and efficiency as well as other economic benefits. The IIoT is an evolution of a distributed control system (DCS) that allows for a higher degree of automation by using cloud computing to refine and optimize the process controls.
John Bates is a British computer scientist, and businessman. He has started several technology companies in the UK. Bates is CEO at ECM/DMS vendor SER Group.