Products & Services

Architecture

The Aleri Streaming Platform can be viewed as having two main elements: an application development environment and a run-time event processing engine.

As an application development environment, an Aleri user identifies one or more input event streams and then defines the business logic to produce new "high level" events that are delivered to a user or a downstream application. Aleri uses a dataflow programming model that allows the user to deconstruct the business logic into a set of dataflows. This high level programming environment allows the user to focus on the business logic without the need to manage data storage, event handling or threading. In fact Aleri makes it easy to take full advantage of modern multi-core, multi-CPU environments since the Aleri run-time engine is fully multi-threaded, maximizing the use of parallel processing for speed and capacity.

The Aleri application development environment includes a choice of three event processing "languages": SQL, XML or visual programming in the Aleri Studio which uses the EclipseR framework. The studio also includes a range of testing, debugging and optimization tools including record and playback facilities.

The Aleri Complex Event Processing (CEP) engine is a native server process that runs under Solaris, Linux or Windows. It is written in C++ for optimal real-time performance, and includes interfaces (API's) for C++, Java and .NET. The simple publish/subscribe API allows applications or adapters to stream event messages into the Aleri server and/or subscribe to events produced by the Aleri server.

The Aleri server has built in security, providing user authentication, stream-level access control, and stream encryption.

High availability options include hot standby configurations with automatic failover, clustered configurations with cold-spare capabilities, and rapid full-state recovery when disk-based data persistence is enabled.

Support for clustered configurations allows a single Aleri data model to span multiple machines for scalability. Alternatively, Aleri can be deployed in cascaded configurations where the output of one Aleri server becomes the input of another.

Adapters are often used to integrate the Aleri server with other systems. An adapter simply connects to a data source or data consumer and uses the Aleri publish/subscribe API to pass data between the source (or consumer) and the Aleri server. A range of adapters are available from Aleri including adapters for common messaging environments including JMS, TIBCO, MQ, common databases including Oracle, DB2, SQL Server, Sybase, Teradata and others, a range of market data adapters, plus file loaders. New adapters are being built all the time—so check with Aleri about the availability of specific adapters. Custom adapters can be built by Aleri, Aleri customers, or third parties.

The Aleri server provides an on-demand query interface that allows snap-shot SQL queries to be processed against individual streams within the Aleri data model. An ODBC/JDBC driver provides connectivity to off-the-shelf query applications including Microsoft Excel and others; a C++ interface is also available.

The server also provides a Command & Control interface for controlling and monitoring the server process itself. This is a standard XML RPC interface.

The final interface is the User Defined Function interface that allows external function libraries to be used within an Aleri data model. Within the data model, external functions can be invoked within an expression. The external functions will be called on an event-driven basis as data streams into the Aleri server.