SOA Patterns

I am wondering if W3C WS-Chor or OASIS BPEL TC are thinking about the 
following:

Assuming minimal essential SOA includes services with descriptions (WSDL) 
and interaction via messages (SOAP), other things we might think of as SOA 
are just different ways of realizing SOA.  I call these "SOA Patterns".

For example, some SOA realizations may have a BPEL engine for orchestration.

In some sense, the BPEL flow is just like any other web service with a WSDL 
description and SOAP endpoint to invoke or start the flow.  However, SOA 
with BPEL seems special enough (in contrast to SOA without BPEL) that we 
might want to call it a SOA Pattern (and give it a name or URI to identify 
it like a namespace).

Some realizations of SOA may not use UDDI for runtime discovery (late 
binding), while others depend on UDDI much like we typically depend on DNS 
to resolve hostnames to IP addresses.  SOA with UDDI may be another SOA 
Pattern.

Some realizations of SOA may want to federate discovery.  There may be a 
BPEL flow defined that involves a query to one UDDI server (or a proxy) to 
find other registered (private) UDDI servers.  The BPEL flow would then 
query each of these UDDI servers for a specific service binding (e.g., 
specifying a tModelBag).  The BPEL flow would join the results of these 
queries, and perhaps do some other consolidation or trimming.  It could 
even include a query to a semantic web match-maker before it queries UDDI; 
the semantic match helps construct the appropriate UDDI query.  If 
searching UDDI using a categoryBag and specifying a keyValue in a 
particular taxonomy, the BPEL flow may be able to invoke a thesaurus 
service to lookup similar terms in other taxonomies or ontologies.  Perhaps 
there is a private UDDI registry dedicated to a certain industry, like 
photography [1].  In the hypothetical BPEL flow above, where it looks for 
other UDDI registries, it could narrow the set of private registries to 
those that use a particular taxonomy (e.g., related to photography).  That 
is, I have a registry of registries where each registry can be assigned 
categories corresponding to the types of things that are in that registry.

This BPEL flow may be exposed as a single service, which is itself part of 
another BPEL flow.

Such an arrangement of services is clearly beyond minimal essential 
SOA.  It could be a SOA Pattern, or a way of implementing SOA within an 
organization or enterprise.

If WS-CDL describes the interaction between organizations (e.g., B2B), and 
BPEL describes the flows within an organization (EAI or SOI), then how do I 
describe the SOA Pattern?

[1] http://production.pictureservices.org/directory/web

Paul

Received on Friday, 5 March 2004 16:32:17 UTC