Security for Web Services with SOAPHTTP Message Propagation Using Queues or Topics

Establishing Resource Connectivity 21-9 This case has two possibilities: – WSDL response message has component and elements for specifying error In this case, the AIA service, on encountering a business error, would put the error information in the response message fault component and elements and reply back to the calling service. The participating application takes action accordingly. – WSDL specifies no valid way for receiving fault information Two options: Send back the fault as a SOAP fault if the FMW component used for the AIA service supports it. Model the interaction as Request-Only and make provisions for a separate participating application Web service to receive the result.

21.2.5 Security for Web Services with SOAPHTTP

The participating applications should receive authentication information in WS Security username token profile format. They should be able to de-sign and decrypt the request and sign and encrypt the response. They should preferably receive authorization information in xacml format inside SOAP headers.

21.2.6 Message Propagation Using Queues or Topics

Participating applications can enqueue messages to queues JMS, AQ, MQ, MSMQ, and so on for inbound interactions. The participating applications construct messages for various events raised and enqueue the messages into named queues. The AIA services subscribing to these queues are triggered. These are asynchronous in nature. Publishing of a message into a queue should be part of the same transaction that occurred within the application. Participating applications also can dequeue messages from queues JMS, AQ, MQ, MSMQ, and so on for outbound interactions. AIA services construct messages for various events raised and enqueue the messages into named queues. The participating applications subscribing to these queues de-queue and process the messages. These are asynchronous in nature. Publishing of a message into a queue should be part of same transaction that occurred within the AIA service. The queuing mechanisms are asynchronous in nature. They consist of one-way calls.

21.2.6.1 Event Notification Without Payloads

For event notifications without payloads, the ABCS adapter that is subscribing to or polling the events pulls out the message from the participating application. A series of events are triggered, but there is no guarantee that the snapshot of the updated entity pulled from the participating application corresponds to the event. AIA suggests that events be user-triggered so that the data integrity is not compromised. Message sequencing is not possible in this case. To ensure the guaranteed delivery of the event notifications, these notifications should be able to receive an acknowledgment from AIA layer and the participating applications should be able to resend or do proper error handling of these event notifications. All these events should be preserved and aggregated based on the ID or timestamp in the AIA layer and further processing should be done at regular intervals to ensure the data integrity. 21-10 Developers Guide for Oracle Application Integration Architecture Foundation Pack

21.2.6.2 Events Leading to Message Queuing

When messages are queued as a result of events raised, the messages capture the snapshot of the entity state. If there are a series of operations on an entity in close succession, a series of messages for the same entity with different states arrive at the queue. Due to network latencies or errors in messages being processed, the ordering of messages in such a situation cannot be guaranteed. AIA services can process the messages in the correct sequence if some requirements are fulfilled. ■ Requirements for sequencing of messages For the messages to be sequenced, there should be a defined set of messages that must be sequenced. In addition, every message should be identifiable as a part of a sequence. ■ Identifier for the set of messages to be sequenced A named parameter like a Group ID is defined. All the messages having a common value are part of the same group or set of messages to be sequenced. ■ Identifier for the message to be sequenced A named parameter like a Sequence ID is defined. The value for this parameter can be a number or date-time. This value determines the position of each message in a sequence.

21.2.6.3 When to Use Message Propagation Using Queues or Topics

Meeting either of these two criteria leads to using message propagation using queuestopics: ■ Need to break processes into atomic transactions ■ Event triggering system cannot wait till the message is processed

21.2.6.4 Types of Queues

The two types are: ■ Queues ■ Topics Queues A Queue is a persistent storing mechanism designed for holding elements before processing. Points to note: ■ Queues are point-to-point. ■ Only one consumer gets the message. ■ The producer does not have to be running at the time the consumer consumes the message, nor does the consumer have to be running at the time the message is sent. ■ Every message successfully processed is acknowledged by the consumer. Considerations for Using Queues When using queues, consider the following: Establishing Resource Connectivity 21-11 ■ AIA recommends that you use WLSJMS Queues for inbound and outbound interactions with participating applications. ■ If the application is not compatible or does not have the ability to send or receive messages to and from AIA using WLSJMS, then any other supporting messaging should be used. For example, AQJMS or TIBCOJMS, and the required foreign JMS server setup should be done on native WLSJMS to interact with the applications. ■ AIA recommends that you configure a file-based persistent store for WLSJMS queues. If there is a specific need to use the database persistence for bulk messages, or for policy or business requirements, database persistence could be configured. Configuring the persistent store as file-based or database-based can be decided during deployment time. ■ The Foundation Pack AIA installation driver automatically creates the error queues for each queue. ■ To generate the error queue name, the Foundation Pack deployment plan generator scripts use the resource name from annotations to get the queue or topic name and then append _ErrorQ as suffix. For example, for the AIASalesOrderQueue, the generated error queue would be AIASalesOrderQueue_ErrorQ. ■ The Foundation Pack AIA installation driver uses the deployment plans to ensure creating, configuring, or assigning the generated error queue name for each JMS queue that it creates on WLS. ■ Foundation Pack creates one generic non-XA connection factory for connecting to all the error queues from the error resubmission utility. The name of the generic connection factory is AIAErrorQueueConnectionFactory. ■ The generic error connection factory is created during the Foundation Pack install. The error queues generation happens during the PIP installation based on the annotations. ■ For the integration flow milestones, AIA recommends that you use the WLSJMS Queues with file-based persistent store. Topics A topic is a persistent storing mechanism designed for holding elements before processing. For processing, messages are delivered to multiple subscribers. Points to note: ■ Multiple consumers can get the message. ■ A timing dependency exists between publishers and subscribers. The publisher has to create a subscription in order for clients to be able to subscribe. The subscriber has to remain continuously active to receive messages, unless it has established a durable subscription. In that case, messages published while the subscriber is not connected are redistributed whenever it reconnects. ■ For the publish-subscribe model, AIA recommends that you use WLSJMS topics.

21.2.7 Ensuring Guaranteed Message Delivery