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.

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 thus 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 utlities 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
tip usage tip or extra information
important important additional information
warning usage warning
required
required parameters in parameter tables
optional optional parameters in parameter tables

Table 1.1: 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’s Guide or reference guide for the product. 60East Technologies also provides answers to frequently asked support questions on the support web site 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:

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, including 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 same MAJOR.MINOR.MAINTENANCE 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)

Table 1.2: Version Number Components

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 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

Table 1.3: Certification Level Definitions

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: support@crankuptheamps.com

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