8.6 Oracle Advanced Queuing and Streams
Messaging technology has
existed for quite some time and is common in OLTP applications.
Typical messaging
technologies provide a reliable transport layer for shipping messages
from one machine to another over a network. Oracle8 introduced
Advanced Queuing (AQ) as an integrated database service.
Oracle9i Release 2 combined AQ with log-based
replication in the creation of Oracle Streams.Oracle AQ provides the benefits of simple messaging products but adds
the value of database-resident queues. The information in message
queues represents critical business events and should be stored in a
reliable, scalable, secure, and recoverable place. Placing the queues
in the database extends the core benefits of a database to the queues
themselves.The data that flows through queues represents the ebb and flow of
business activity. Analyzing the types and volumes of message traffic
can help to identify how different business functions are operating
and interacting and this, in turn, can provide valuable insights into
the operation of your business. Oracle AQ supports the notion of
message
warehousing, in which the content and details of the
queues can be queried and analyzed because they're
already in the database. Oracle can dequeue messages but can leave
historical data in the queues for subsequent analysis.Applications can enqueue and dequeue messages as part of a
transaction or as a separate event that occurs as soon as the
specific enqueue or dequeue statement is issued. Queue actions
included in the scope of a transaction are committed or rolled back
with that transaction. Should a failure occur, the queue activities
are recovered along with the rest of the database activities.Oracle can propagate messages from one queue to another by providing
a routing engine for message traffic. Figure 8-6 illustrates the use
of queuing and
propagation.
Figure 8-6. Advanced Queuing

Oracle Database 10g makes it easier to implement
Streams programmatically, by allowing you to enqueue and dequeue
batches of messages and by reducing the amount of coding required to
interact with queues.
8.6.1 Advanced Queuing for System Interfaces
Implementing OLTP systems
invariably involves interfaces with other systems in the enterprise
or in other companies. The effort to design, create, and manage these
interfaces is substantial and can easily account for 40 to 60% of the
cost of large-scale Enterprise Resource Planning (ERP)
implementations. Furthermore, adding other systems to the mix or
changing existing systems entails reworking the interfaces, resulting
in an increasing and ongoing burden. Oracle is focusing on its
Advanced Queuing technology as the foundation for integrating
application systems together with the Enterprise Integration
Framework.Oracle's Enterprise Integration Framework is a
bundle of services and products intended to help companies solve the
integration problem by implementing a
"hub-and-spoke" architecture using
a combination of messaging, routing, and transformation technologies.
Traditionally, you would develop a specific interface between two
systems. As you added a third system to the mix, you would have to
create more specific interfaces between each of the systems. The more
systems you attempt to integrate, the more custom interfaces you
would be responsible for developing and the greater the development
and maintenance burden would be.With the Enterprise Integration Framework, individual systems connect
to a hub via the spokes, thus avoiding direct system-to-system
interfaces. The spokes send and receive messages, while the hub
provides routing and transformation services. This reduces the number
of interfaces required to connect a set of systems. You
don't need a specific interface for every specific
system pair. Adding systems to existing systems
doesn't require development of many new interfaces.
You connect the new system to the hub and leverage the routing and
transformation services. Figure 8-7 contrasts the custom approach
with the hub-and-spoke approach of the Enterprise Integration
Framework.
Figure 8-7. Custom interfaces versus hub-and-spoke approach

8.6.2 Oracle and Publish-Subscribe Technology
Oracle8i enhanced Advanced Queuing to include
publish-subscribe functionality. Applications
can subscribe to a message queue by specifying the attributes of
messages they're interested in receiving. When
another application publishes a message by placing it in a queue,
Oracle evaluates the contents of the message to determine which of
the subscribing applications are interested and notifies those
applications. For example, a shipping application can subscribe to a
queue used for orders and specify that only messages for orders with
a status of "Ready to Ship" are of
interest. As messages representing these orders flow through the
queue, the shipping application will receive only the desired
messages. This publish-subscribe functionality, coupled with message
propagation for routing, provides a very powerful messaging backbone
for information flow between systems.