A 'ServiceMDE' should/can includes query interfaces related to
'Service' data.
Examples: 'GetPolicy'
Base message as
SOAP Message:
I think that ALL of our
XML messages should be in SOAP format.
I feel pretty
strongly about this too.
I know that, many of you
will quickie shake your heads 'No Way', though I am not entirely sure
why.
One argument is that
a SOAP message format would restrict us to a particular implementation
profile.
That is not
true.
We must remember that
SOAP messages, are merely an XML format for expressing
function-and-argument.
(i.e. Remote Procedure
Calls) At heart, it is an XML
message, that includes 'action', and 'arguments', as well as being able to
express 'caller' and 'recipient', and all other sorts of useful
data.
By function-and-argument,
I mean things like: 'GetCase (
myGjxdmCaseId )' and 'ReviewFiling ( myGjxdmFiling )'
SOAP messages
are XML. And, just like any other XML message, SOAP messages can be
exchanged between components, in any profile we like.
COM, CORBA, WebServices,
eBXML, and, yes, sneaker net.
We need to understand:
You don't have to implement WebServices to assemble OR parse SOAP
messages.
As with any XML message
format, you can read and write SOAP messages, using standard XML
tools.
It is no more difficult
than reading/writing the non-SOAP messages we are currently proposing to
invent.
I think it would be quite
silly and short-sighted of us to NOT use the well-defined SOAP format as
our base for expressing function-and-args.
We will not be anywhere
near as successful if we attempt to invent our OWN format for that
purpose.
These UML-ish
statements might help illustrate what I am advocating:
Instead of
this:
GjxdmMessage{ GetCase ( myGjxdmCaseId ) }
We have
this:
SoapMessage{ GetCase ( myGjxdmCaseId ) }
In COM, instead of
this:
COM-->Send( GjxdmMessage )
We have
this:
COM-->Send( SoapMessage )
In HTTP, instead of
this:
Http.Send( GjxdmMessage )
We have
this:
NOTE: The HTTP example,
when implemented with WebServices/ebXM toolkits, can be simply thought of
as:
WebService-GetCase( myGjxdmCaseId )
...only because
WebService toolkits nicely hide the 'HTTP.Send' part of the
process.
No biggy.
In the
end, exchanging SOAP messages is the same as exchanging
XML.
SOAP *is*
XML.
- Shane
Durham
LexisNexis