1. Introduction to 60East Technologies AMPS

Thank you for choosing the Advanced Message Processing System (AMPS) from 60East Technologies. AMPS is a feature-rich message processing system that delivers previously unattainable low-latency and high-throughput performance to users. AMPS provides both publish-and-subscribe messaging and high-performance message queuing.

Getting Started with AMPS

AMPS is designed to help you quickly and easily develop and deploy data-intensive applications with demanding requirements for low latency and high performance.

AMPS combines aspects of a traditional message bus, message queue, database, view server, analytics and event processing engine. The features that AMPS provides are designed to be easy to use, to work well together, and to provide high performance.

  • The AMPS Introduction Guide provides an overall introduction to AMPS, including information on setting up a development environment, the basic concepts and features of AMPS, and general advice on which features combine effectively for specific scenarios.
  • The AMPS Evaluation Guide provides advice on evaluating AMPS, included a suggested evaluation process, tips on monitoring and measuring performance in an evaluation environment, and information on how to effectively partner with 60East on an evaluation of AMPS.
  • The AMPS User Guide – this guide – provides a complete overview of the features of AMPS and how to deploy and administer an instance of AMPS.
  • The AMPS Configuration Reference describes the AMPS configuration file and the options available to specify the behavior of an instance of AMPS.

These guides cover the general features of AMPS. The 60East website provides additional guides, such as guides for developing applications with AMPS, a guide to the statistics available for monitoring, and so on.

60East recommends starting with the AMPS Introduction Guide to become familiar with AMPS, and then reading the sections of the AMPS User Guide and AMPS Configuration Reference for the features that your application will use. For developers, becoming familar with the Developer Guide for the AMPS Client library that you will be using is also recommended.

Product Overview

AMPS, the Advanced Message Processing System, is built around an incredibly fast messaging engine that supports both publish-subscribe messaging and queuing. AMPS combines the capabilities necessary for scalable high-throughput, low-latency messaging in realtime deployments such as in financial services. AMPS goes beyond basic messaging to include advanced features such as high availability, historical replay, aggregation and analytics, content filtering and continuous query, last value caching, focus tracking, and more.

Furthermore, AMPS is designed and engineered specifically for next generation computing environments. The architecture, design and implementation of AMPS allows the exploitation of parallelism inherent in emerging multi-socket, multi-core commodity systems and the low-latency, high-bandwidth of 10Gb Ethernet and faster networks. AMPS is designed to detect and take advantage of the capabilities of the hardware of the system on which it runs.

AMPS does more than just route and deliver messages. AMPS was designed to lower the latency in real-world messaging deployments by focusing on the entire lifetime of a message from the message’s origin to the time at which a subscriber takes action on the message. AMPS considers the full message lifetime, rather than just the “in flight” time, and allows you to optimize your applications to conserve network bandwidth and subscriber CPU utilization – typically the first elements of a system to reach the saturation point in real messaging systems.

AMPS offers both topic and content based subscription semantics, which makes it different than most other messaging platforms. Some of the highlights of AMPS include:

  • Topic and content based publish and subscribe
  • Message queuing, including content-based filtering and configurable strategies for delivery fairness
  • Client development kits for popular programming languages such as Java, C#, C++, C, Python, and JavaScript
  • Built-in support for FIX, NVFIX, JSON, BSON, MessagePack, BFlat, Google Protocol Buffer and XML messages. AMPS also supports uninterpreted binary messages, and allows you to create composite message types from existing message types.
  • State of the World queries
  • Historical State of the World queries
  • Easy to use command interface
  • Full Perl compatible regular expression matching
  • Content filters with SQL92 WHERE clause semantics
  • Built-in latency statistics and client status monitoring
  • Advanced subscription management, including delta publish and subscriptions and out-of-focus notifications
  • Basic CEP capabilities for real-time computation and analysis
  • Aggregation within topics and joins between topics, including joins between different message types
  • Replication for high availability
  • Fully queryable transaction log
  • Message replay functionality
  • Fully-integrated authentication and entitlement system, including content-based entitlement for fine-grained control
  • Optional encryption (SSL) between client and server
  • Extensibility API for adding message types, user-defined functions, user-specified actions, authentication, and entitlement functionality

Software Requirements

The AMPS server is supported on the following platforms:

  • Linux 64-bit (2.6 kernel or later) on x86 compatible processors

Tip

While 2.6 is the minimum kernel version supported, AMPS will select the most efficient mechanisms available to it and as a result, reaps greater benefit from more recent kernel and CPU versions.

The AMPS distribution contains all of the supporting libraries and dependencies needed to run on a typical Linux server installation: no further software is required.

Some utilities provided with the AMPS server have additional dependencies. These utilities are not required to run the server, but can make it easier to troubleshoot and test on the system that hosts the AMPS instance:

  • spark, a basic command line client that supports a subset of AMPS functionality, requires Java 1.7 or later.
  • The utilities for inspecting AMPS files (amps_sow_dump, amps_clients_ack_dump, and so on) require a Python installation.
  • amps-grep requires a Python installation.
  • amps-sqlite3 requires a Python installation and the sqlite3 package for your distribution (often, but not always, installed by default).

Organization of this Manual

This manual is divided into the following parts:

Document Conventions

This manual is an introduction to the 60East Technologies AMPS product. It assumes that you have a working knowledge of Linux, and uses the following conventions.

Construct Usage
Text Standard document text
Code Inline code fragment
Variable Variables within commands or configuration
Required
Required parameters in parameter tables
Optional Optional parameters in parameter tables

The AMPS documentation also includes the following types of notes:

Tip

Inside the tip box, you will find usage tips or extra information.

Important

Inside the important box, you will find information that’s important to keep in mind when working with AMPS. These are typically recommendations that should generally be followed, but may not be applicable in special cases.

Caution

Inside the caution box, you will find important information and guidelines that require special consideration or caution when using AMPS to ensure the proper functioning of the system and to avoid any potential issues or risks.

Warning

Inside the warning box, you will find usage warnings or information that is critical for ensuring that AMPS functions correctly.

Documentation Conventions

Additionally, here are the constructs used for displaying content filters, XML, code, command line, and script fragments.

(expr1 = 1) OR (expr2 = 2) OR (expr3 = 3) OR (expr4 = 4) OR (expr5 = 5) OR (expr6 = 6) OR (expr7 = 7) OR (expr8 = 8)

Command lines will be formatted as in the following example:

find . -name *.java

Obtaining Support

For an outline of your specific support policies, please see your 60East Technologies License Agreement. Support contracts can be purchased through your 60East Technologies account representative.

Support Steps

You can save time if you complete the following steps before you contact 60East Technologies Support:

  1. Check the documentation

    The problem may already be solved and documented in the User Guide or Configuration Reference Guide for the product. 60East Technologies also provides answers to frequently asked support questions on the support website at: http://support.crankuptheamps.com.

  2. Isolate the problem

    If you require Support Services, please isolate the problem to the smallest test case possible. Capture erroneous output into a text file along with the commands used to generate the errors.

  3. Collect your information

    • Your product version number.
    • Your operating system and its kernel version number.
    • The expected behavior, observed behavior and all input used to reproduce the problem.
    • Submit your request.
    • If you have a minidump file, be sure to include that in your email to crash@crankuptheamps.com.

The AMPS version number used when reporting your product version number follows a format listed below. The version number is composed of the following:

MAJOR.MINOR.PREVIEW.HOTFIX.TIMESTAMP.TAG

AMPS Versioning and Certification

Each AMPS version number component has the following breakdown:

Version number components
Component Description Minimum Verification
MAJOR

Increments when there are any backward-incompatible changes in functionality, file formats, client network formats or configuration; or when deprecated functionality is removed.

May introduce major new functionality or include internal improvements that introduce major behavioral changes.

Megacert
MINOR

Increments when functionality is added in a backwards-compatible way, or when functionality is deprecated.

May include internal improvements that introduce minor behavioral changes or changes to network formats used only by the AMPS server (such as replication).

Megacert
PREVIEW

Increments for previews of new features.

May introduce behavioral changes to fix incorrect behavior, enable new functionality or to enhance performance.

May include internal enhancements that do not introduce behavioral changes.

Kilocert
HOTFIX

A release for a critical defect impacting a customer. A hotfix release is designed to be 100% compatible with the release it fixes (that is, a release with the same MAJOR.MINOR.PREVIEW version).

May introduce behavioral changes to fix incorrect behavior.

May document previously undocumented features or extend surface area to improve usability for existing features.

Cert
TIMESTAMP Proprietary build timestamp. (does not affect verification level)
TAG Identifier that corresponds to precise code used in the release. (does not affect verification level)

The certification levels are defined in the following table. Notice that, in all cases, 60East will certify at a higher level if time permits or if a change involves a critical part of AMPS (such as replication or internal utility classes that are widely used).

Certification level definitions
Certification Level Description Time to Certify
Megacert

Performance and long-haul testing.

Full regression suite and stress-testing suite, including replication testing and application scenario tests.

Full unit testing suite, including new unit tests to verify correct behavior of bugfixes in this release.

less than 2 weeks
Kilocert

Full regression suite and stress-testing suite, including replication testing and application scenario tests.

Full unit testing suite, including new unit tests to verify correct behavior of bugfixes in this release.

less than 1 week
Cert

Full unit testing suite, including new unit tests to verify correct behavior of bugfixes in this release.

Replication testing suite if release affects replication code.

4 hours

Contacting 60East Technologies Support

Please contact 60East Technologies Support Services according to the terms of your 60East Technologies License Agreement.

Support is offered through the United States:

Web: http://www.crankuptheamps.com
E-Mail: sales@crankuptheamps.com
Support: http://support.crankuptheamps.com

Other support options (such as support via phone), may be available depending on the terms of your support agreement.