Public Content

Public content that doesn't require a login

Non-Java Versions of JMS

OK, so the JMS spec makes sense for market data. But is that just for Java? What about non-Java applications? While JMS is, by definition, a Java standard, the fact is that most JMS suppliers offer non-Java bindings. In effect, the JMS messaging model itself has been adopted as a standard by the market.

MetaFluent API Use-Case - the MetaFluent Excel Add-In


The MetaFluent Excel Add-In provides macros to publish and subscribe to dynamic data from within Excel. It provides macros for subscription to individual fields, or tables of fields, or fields from collections (multi-stream topics).


The MetaFluent Excel Add-In has a caching layer that implements the Excel RTD Server mechanism. The cache uses the 'C' version of the MetaFluent JMS API. When coupled with the Server-based Provider implementation, Excel is then able to publish-subscribe via the MetaFluent JMS Server and from there interact with external distribution systems such as RMDS.

Client-tier Interaction with the MetaFluent JMS Server

The modular nature of the MetaFluent Server Framework supports the creation of server applications that combine content modeling capabilities with distribution capabilities to support downstream applications based on a variety of standard APIs and distribution protocols

MetaFluent Content Modeling Concepts

An essential component of the MetaFluent architectural vision is the ability to flexibly and efficiently give our customers control over the representation of content as seen by applications. In other words, we want our customers to control the data model. To do this the customer needs control over naming (how are items and fields named), scope (what fields are present in the model), content transformation (how do applications see the content), blending of content (where does content come from within the model) and flexible control over data sources (easily switching from one to another). Customizing the data model to fit the business needs of a particular customer requires a very flexible solution based on modular building blocks.

MetaFluent Server Framework - Modular Components

The centerpiece of the MetaFluent Architecture is a modular server framework that allows us to assemble a variety of products satisfying a diverse set of requirements in different deployment scenarios.

MetaFluent JMS Server Implementation

In conjunction with the various MetaFluent JMS API implementations, the MetaFluent JMS Server is an extensible, modular JMS Provider based on the MetaFluent Server Framework. The modular architecture means the MetaFluent JMS Server supports a variety of different configurations combining different kinds of functionality so as to efficiently support different business needs - ranging from traditional enterprise application integration to the more specialized functionality of a distribution system for dynamic data.

MetaFluent Design Philosophy

The MetaFluent architecture embodies a few basic principles. Achieving these is not easy but has big payoffs for customers.

  • Use standards where possible

    Standards lower development and operating costs, shorten the learning curve, and improve interoperability. If a well-known standard exists that could solve a particular problem, we will use it creatively to make life easier for our customers. An example is our use of JMS as a market data API. Developers with no market data API experience can be subscribing or publishing market data in minutes.

MetaFluent JMS Application Contexts

A MetaFluent JMS Application Context defines the resources available to a JMS client application. A Context is a view of the system from an application perspective. The client application specifies which Context it wants using a context identifier (consisting of a name and version number). This is done before creating a JMS Session.

MetaFluent JMS Deployment Architecture

Currently, the MetaFluent JMS Server implementation is a hub-and-spoke architecture that uses TCP/IP as transport and supports clustering with resilient load-balancing. Both MetaFluent JMS Server and the MetaFluent JMS Load-Balancer applications use the modular MetaFluent Server Framework - each application comprising a different set of modules used within the framework.

MetaFluent JMS Providers and Dynamic Data

MetaFluent JMS Providers

The MetaFluent architecture includes multiple JMS Providers, each suitable for different types of solutions. Two have been productized so far:

  • MetaFluent Server Provider
    This JMS Provider relies on the MetaFluent JMS Server, a solution enabled by the modular MetaFluent Server Framework. This Provider offers the full range of capabilities provided by the Server, including clustering and load-balancing, multiple Application Contexts and various data adapters, transformation and modeling options. This provides a very thin, zero-configuration library, minimizing the footprint at the application node (desktop).