Search This Blog

Monday, September 17, 2007

Extended XQuery for SOA

In a services-oriented architecture (SOA), a business process is
implemented as a web service that programs (orchestrates in SOA
terminology) other web services. An orchestrator web service is usually
coded in a language outside the XML domain (e.g., Java), and in this
context XQuery is used only to query and transform data -- not to
orchestrate other web services. However, here we show how a few
extensions to XQuery give it the additional role of web service
orchestrator, allowing this XML-domain-specific language to implement
all the steps in a complex SOA processes. This article explains the
choice of extensions, outlines their implementation for a specific
XQuery processor, and shows how extended XQuery was used to create web
services to process complex financial data. While web services created
in this way are usable within any SOA, they can also act as the
highest-level orchestrators in what some authors refer to as SOA lite.
The extensions applied here for XQuery work equally well for XSLT 2.0...
SOA Lite refers to a SOA which has all services wrapped in web service
interfaces and in which some web services are specially created for
orchestration. Therefore, SOA lite need not implement the many so-called
governance services, such as for security, discovery, and testing;
neither would it involve using an engine to automatically generate the
orchestrator web service from a BPEL document. However, SOA lite has
the core features of a full SOA, and extended XQuery is ideally suited
to create the orchestrator web services for it. We have extended XQuery
to give it a new role as web service orchestrator, so that complex web
services, involving validation and orchestration, can be implemented
entirely in this XML-domain-specific language. Extended XQuery, as
applied to the processing of structured finance deals, has greatly
simplified the code engineering and given very good performance. We see
extended XQuery as suitable for SOA lite or as part of any SOA. These
extensions work identically for XSLT 2.0. More Information See also W3C XML Query (XQuery): XQuery

No comments: