Log in Help
Print
Homesalelrec2010clarin 〉 ws_blurb.txt
 
from Ian:

[This is the same thing I sent you before but with the middle paragraph
added to describe the WSDL/Schema/BPEL thing]

The Musing web services are standard SOAP web services. They take their
input as binary data - though the services are intended to process text
they can handle input in many formats including XML, HTML and PDF,
extracting the text from the source data using the format handling
mechanism provided by GATE. A service loads the input data into a GATE
Document object, then processes that Document using a GATE
DocumentProcessor (typically a saved GATE application), and returns its
output as RDF-XML.

All the services share a common WSDL interface as their inputs and
outputs are the same, only the underlying GATE application needs to vary
between services.  While the service infrastructure used is able to
produce any XML in any namespace, for better compatibility with the BPEL
orchestration tools used in Musing the WSDL specifies that the output
will be RDF-XML, and embeds an XML schema defining the
{http://www.w3.org/1999/02/22-rdf-syntax-ns#}RDF element.  For this case
we settled on a very simple schema that simply permits any attributes
and any child elements on the RDF element.  While there have been
attempts by others to produce a more detailed schema for RDF-XML to at
least cover the standard elements in the rdf-syntax-ns namespace, the
format allows 'shorthand' forms that can represent the same graph of RDF
triples with many different XML trees.  These shorthands use XML
namespaces in a somewhat unorthodox way and thus any schema ultimately
needs to allow any element or attribute at any level alongside its more
detailed definitions.  Given that our services make little use of the
full forms we chose to use the simpler schema.

[Note to Adam - is the previous sentence a reasonable thing to say?]

The various components making up the service implementation are
configured using the Spring framework, making it simple to slot in
alternative DocumentProcessor implementations for different services
without changes to the code.  The aspect-oriented programming tools
provided by Spring are used to allow pooling of several identical
DocumentProcessors, to support multiple concurrent web service clients.
The web service layer is provided by the Apache CXF toolkit, which
itself uses Spring extensively and thus was a good fit with the
Spring-driven architecture adopted for the business logic.