Database Reference
In-Depth Information
Tip
Select this approach with extra caution. It has all rights to exist because BPEL is one of
the possible platforms for ABCS and Service Broker with routing capabilities; it is an es-
sential pattern for northbound and southbound adapters. In a non-agnostic controller, the
best approach would be to validate the XML property for validating inbound and out-
bound XML messages; just set it to True (in the SOA EM console, SOA Administra-
tion | BPEL Properties ). Of course, it impacts the performance. For our agnostic control-
ler with a containerized payload as the <any> element, we have limited options, but any-
way, it would be more prudent to delegate this function to every individual adapter that is
isolating the endpoint.
One more thing. We have already departed from the telecom-orders-specific Composition
Controller and strive to achieve a truly agnostic realization, hence the routing slip could
potentially contain more than ten invocations (endpoints). In the SCM domain, for in-
stance, we deal with objects such as CargoManifest, BillOfLading, VesselSchedule, and
quite often, the same task will be repeated a considerable number of times (even dozens).
How can we do that?
Extending the asynchronous agnostic Composition Controller
The following table explains the method to accomplish the functions in the first column:
Task
Realization
This option allows us to keep the task parser within the Business Delegate simplified. Only one loop is maintained. Alternat-
ively, if we need to perform nested looping, we will call another service broker's instance with the new EP (extracted first), or
another composite with the While loop based on the payload, extracted EP, and object's context. This option is very attractive
for the implementation of parallel or foreach flows.
Include the
same task n
number of
times in EP
The drawback here could be that the size of the EP can grow considerably depending on the number of task interactions.
At first glance, this would be the best approach, as it looks similar to debatching. With debatching, we send message chunks to
the designated endpoint. Unfortunately, debatching here is not pure as we want to send the entire message several times (or per-
form several invocations with the same payload); most importantly, batching and debatching functionalities are supported for a
limited number of adapters: DB, FTP, and File for inbound adapters.
Delegate the
looping to
the Adapter
framework
Anyway, an adapter is the most logical option from the separation of concern standpoint. We have to supply an adapter with the
number of interactions we want to execute and that could be done using EP (see the following option with the looping attrib-
ute). The previous tip is also valid here.
Set an extra attribute for individual tasks, describing the number of iterations for this task:
Search WWH ::




Custom Search