Messaging Oriented Middleware

GA-MOM is a transparent and scalable Messaging Oriented Middleware that enables communication between services, supporting applications and platforms. It supports asynchronous processing whilst reducing the number and complexity of interfaces by acting as a bridge at the application layer for any protocol or interface. In short it is a tool that enables the creation, deployment and management of both new and existing services.

 Challenges

Increasingly companies are taking an SOA (Service Oriented Architecture) approach in an attempt to enable business agility through IT flexibility. Essentially SOA refers to a collection of services or repeatable business tasks.

In the real world multiple services, processes, applications and platforms are required to work together in order to fulfill an individual service/task. However, complex architectures then often lack a central point for service configuration, launching, monitoring and control. In addition although services may use each other they have no control over each other. For example, the service "create new account" may require other services such as credit check, take payment, credit account, send SMS and email notification.

The result is that multiple disparate services and applications using various messaging and transport protocols will need to route messages between each other to process, synchronize and merge the data required to complete the task.

 Features

GA-MOM is a base communication layer enabling the integration of new and legacy services. It solves problems and issues with cross-service and cross-process communication by bringing a persistent data and event stack as well as a set of low-level services including tools for system integrity definition, monitoring and maintenance.

GA-MOM is the magic glue for such increasingly heterogeneous environments and enables application developers to break down complex tasks to simple ones and therefore reduce the complexity of the system to a manageable level. It brings significant improvement in robustness and simplifies troubleshooting.

Service Layer

GA-MOM provides control for the complete life-cycle of service management. An instance of a service controller checks the status of any compatible service (or service embedded via a Service Wrapper), manages proper spawning and re-spawning, monitors activity and removes any stalled services.

  • Service Controller - The Service Controller component is the heart of GA-MOM. It is responsible for launching, monitoring and re-spawning any service running in the scope of GA-MOM. This component can be controlled locally or even remotely and gives an instant overview of the system status and service activity. The core service controller is designed to be robust and stable in order to serve as a root component for system monitoring and QoS detection. Any event occurring in the system is processed and transferred to a logging facility or itself can become a part of event routing or processing. This allows redundant processing of exceptions and "suspicious" system states by a set of independent processes.
  • Service 1, Service 2... - GA-MOM defines rules for services how to become a part of the service architecture. These rules include how processes should signal their current status, how logging should be done and how embedded services should respond to controlling messages send by the service controller. As soon as the service follows these rules it becomes a part of GA-MOM controlled architecture.
  • Service Wrappers - Virtually any existing service not designed with respect to GA-MOM integration rules can be easily embedded to the system by creating a service wrapper. This service wrapper is designed to transform the desired service output and status to a presentation compatible with GA-MOM. Using this approach any proprietary system, Java implementation or other service can utilize all advantages that GA-MOM offers.

Messaging Layer

GA-MOM is a robust and flexible tool for cross service communication implemented as free-form persistence stack for messaging and event queues. The architecture satisfies the demands of distributed service computing where one service employs several other services to get a proper response to the initial request. As a result processes are typically processed in an asynchronous model; there is a complex requirement for event routing, data persistence and business transaction recoverability.

  • Event Queues - GA-MOM allows any service to define free-form messages and events to be used as a service input or output. The formal description of this structure is published and any existing and new services can use it instantly. Services integrate each to other by subscribing to the event queue and starting to process events. GA-MOM enhances this architecture with a high throughput persistence stack for messages and events including tools for maintenance, backup and optimization.
  • Event Router - Event routers (running in one or more instances) are responsible for sending messages and events between particular services either locally or across network. Thanks to the modular structure of routers it is easy to define new rules and data-flow schemes with no limitation.

Administration Layer

GA-MOM defines a common administration toolset for all participating services to be reused across all system components. Uniform configuration, logging and service monitoring allows to define simple rules for process status signaling and exceptional status handling.

This also allows integration with any existing network or service monitoring system and the seamless connection of GA-MOM services to the existing environment.

  • Configuration - GA-MOM provides a uniform extensible format for configuration files. A formal schema for any service configuration can be provided. This allows global checking for the completeness and consistency of configurations.
  • Logging - GA-MOM adds an enhanced logic to the system logging facility. As a result all services can provide meaningful log files with a consistent structure. Such log files are analyzed and system administrators are equipped with a log file digest or critical system status alerts.
  • Monitoring - Service controller provides a real time evaluation of status of all services running. As a response to any condition an alert is generated or defined action is performed (e.g. data recovery, service is re-spawned). A periodical check of log files is performed and provided to administrators as a log file digest or a system status alert.

 Benefits

  • Enables SOA Approach - Allows multiple services, processes, applications and platforms to work together in order to fulfill an individual service/task.
  • Instant Use - As GA-MOM comes with a minimal set of interfaces to integrated services it is easy and straightforward to integrate new and existing services instantaneously. More complex logic and architecture can be introduced over time
  • Reduces the Size and Complexity of Interfaces - Provides a single tool to enable communication between services, applications, platforms, networks. Legacy data and services can be integrated in a well-defined continuous process.
  • Flexible Service Contract Data - GA-MOM enables definition of any data to be used and shared by particular services and can easily integrate contract data used by the legacy services for reuse.
  • Internet Scalability - The distributed processing model and well-defined network protocols used by GA-MOM enables an SOA framework and associated functionality to be used across the network environment. Any events distributed and processed locally can be redirected to the network layer to be processed elsewhere with different rule sets. This enables performance scalability as well as for real-life changes in processing.
  • Reduces Risk and TCO - Because GA-MOM is built using standards based and Open Source technologies, the use of GA-MOM doesn't bring any additional expenses related to third-party software licenses or upgrades.