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.