Application messaging architectures
provide a platform that supports interoperability among loosely coupled
applications over a message passing bus. When the targeted scope of
interoperability is broad (for example, spanning multiple application
systems and organizational boundaries), application messaging architectures
might be required. This is because the likelihood of conformance in
the software implementation base (for example, the selected distributed
object standard) across the set of participating applications is diminished.
In addition, the set of participating applications can exhibit asynchronous,
disconnected operation. These applications execute with no direct
point-to-point communication session. However, they require guaranteed
fulfillment of requests for service or event delivery.
This degree of operational heterogeneity
introduces several requirements that are reflected in the application
messaging infrastructure. Heterogeneity in the implementation base
of the various applications (including perhaps, retrofitted legacy
applications) suggests a need for a reasonably nonintrusive integration
mechanism. The semantics of application messaging satisfy this need,
generally expressing open, close, send, and receive functionality
with flexible application-defined message structures. Heterogeneity
with respect to the asynchronous, disconnected execution and notification
modes of end-point participants introduces requirements for service
qualities that include routing, assured just-once delivery, and retained
sequencing. The architecture that has emerged within commercial application
messaging products to express these quality-of-service properties
is store-and-forward queuing.
In a store-and-forward
model, messages are sent to named queues, which are in turn hosted
at specific destination network addresses. The navigation of messages
from their origin occurs through a transmission network that ensures
the integrity of message delivery to the destination queue and presentation
to the recipient process.
The Store and Forward Messaging Model
Ever more frequently,
the simple design pattern of two identifiable applications that interoperate
over a message passing bus is inconsistent with the realities of an
event-driven enterprise. Interdependencies across multiple applications
with respect to events that occur within an enterprise combined with
an ever-changing topology of event supplier and consumer applications
are often present. Decision-makers require information pertinent to
their domain of responsibility regardless of the reporting applications.
Automated business processes require modification in rapid response
to changing operational conditions. The ability to satisfy these requirements
in a timely manner, and thereby reduce the latencies too common in
information interchange, is critical to efficient and effective enterprise
performance.
To support such dynamism,
extended application messaging infrastructure facilities in the form
of message brokers are emerging. Message brokers are being effectively
positioned as enterprise application integration and event-management
focal points, which function as hub processes that manage the information
flow throughout an enterprise. Operationally, message brokers provide
rules-based message routing and distribution as well as message transformation
and augmentation capabilities that enable the removal of this aspect
of implementation logic from participating applications.
A SAS JMS (Java Message
Service) file access method allows SAS programs to interface with
any Message-Oriented Middleware (MOM) that includes a JMS provider.
Many MOM vendors include JMS providers, including some open-source
offerings such as Apache ActiveMQ and RabbitMQ.
In addition to the JMS
interfaces, SAS Integration Technologies provides interfaces to three
principal commercial messaging platforms, IBM WebSphere MQ (previously
named MQSeries), Microsoft MSMQ, and TIBCO Software Rendezvous (including
the Certified Message Delivery transport). Support for these platforms
enables SAS software's information delivery capabilities to be leveraged
within various enterprise solution scenarios, including application
integration, asynchronous and mobile synchronization, and event notification.
Support for client environments
is broad. IBM provides WebSphere MQ on a vast array of operating system
platforms with programming language support including C/C++, Java,
JMS, and Cobol as well as ActiveX control support that enables Visual
Basic participation. Likewise, Microsoft provides full language support
for MSMQ.