This process entails a unique combination of specific behaviors of public Java API's, achieving an efficient, flexible combination of shared B2B processing goals including data transport and delivery, wire encoding, serialization, de-serialization, and reformatting according to a customer specific data format.
Given that the following 4 objects are serializable and encodible one would then be
able to bundle them inside a message like a SOAP ENVELOPE and move them on a Business
Process Network (BPN) so that
they when they arrive at any node or locale in a B2B Processing Network they render
their distributable XML data in the preferred format used by that Subscriber at that particular locale:
Runnable Interface
that performs useful work in conjunction with the other objects by transforming the
sender's XML data for the receiver according to the XSLT Template.
Run logic uses the template to operate on the XML data producing as a result an implementation of
transform.stream package like
StreamResult.
Encapsulating the XML conversion process, the RUN method
operates transparently at either node in the BPN. Prior to putting the SOAP envelope
on the wire, the Sender's Pipeline Chain may call run for the conversion,
then the XML data format changes from SENDER Schema to Receiver Schema. Subsequent calls
to RUN by the receiving system after the SOAP envelope arrives on that BPN Node
will NO-OP due to the state information in the context object -Transformed=TRUE.
review this .. do you want serializable procedural logic , or do you want to
be conservative,
limiting distributed properties to just data and context info? The conservative
design needs another deployment option as this class must be
deployed on all nodes (WebStart).
SAXSource or StreamSource.
XSL Template.
Runnable interfaces introduce the ability
to drop one of these compound objects mentioned above on a processing icon.
During development, this means that a programmer just constructs this compound
object without worrying about the default Transformer Factory or anything.
What is transparent in this type of architecture is the actual location of the
client ie was the client requesting the transformation of data on my machine
or on your machine.
Again, it doesn't matter.
An XSLT Context or transformation context is a software object with properties
whose values direct a computing process using data transformation functionality to convert
XML data elements from a Schema
or specific data structure expression preferred by Company A into a different data structure or Schema
preferred by Company B. The process uses an XML data source or input to produce an
XML data target or output using a template -
the template is a collection of rules expressions from an
XML transformation language API.
Transformations are activities implemented in a number of software APIs designed for XML that reformat entities within
the data source using a template to map input data to an XML data target having specific
data structure organization meeting the requirements for subsequent downstream processing
by the target.
A Topic Subcription is an associative data entity relationship
binding a user to a Topic - a user in a role of Subscriber to a Topic
receives any data published by a data producer after being bound to the topic.
A
StreamSource within the javax.xml.transform.stream Package
is a Java API Class implementing the XML Data Source, whose features include 3 critical
components of the process addressed in this application:
Mapped XML StreamSource software object that gets sent from Company A
to Company B. Its a conversion process with 2 layered streams - 1 for input as an expression
of company A's data preferences, the 2nd as output expressing the different Data Schema of
company B. The other component is the conversion process, sitting between the 2 layered streams.
The conversion component is a standard API conversion process using normal inputs and outputs
for an XSLT translation.
The Post Office (PO) is an implementation of a message handler
and manager that directs messages by using the message Topic to retreive Subscriber lists.
The end to end sequence is summarized below:
PO receives data on a topic PO looks up subscribers to that topic in a DB **Patent stuff really starts here** For each subscriber: - getMappedTemplate(forThis Subscriber) - getContext(forThis Transformation) - Transform the data when RUN is called - serialize and encode the data for transport - send the data along the wire