I’d like to start a discussion around Web Services architecture specifically around SOAP RPC versus Document/Literal and SOA. We are just getting started with Web Services and also SOA.
Seems like folks overall are leaning towards Document/Literal as far as SOAP goes. Standard arguments seem to center around loose coupling, abstraction etc. As Mark C has pointed out, Document/Literal also brings some more complexity into the picture.
I’m doing some prototyping with a generic webMethods web service that allows external clients to initiate transactions/flow within webMethods. I’m doing it two ways, one with RPC and one with Doc/Literal. The RPC version takes a single xmlstring as input and returns a single xmlstring as output. The xmlstring contains a valid xmldocument defined within webMethods. The generic publishing service simply queries the header information within the xmldocument to determine which document to publish and whether it is a request/reply or simply publish. It then returns a response with a xmldocument to the calling client. In a sense it is a proxy service that determines routing information, maintains persistent, logs etc.
The Doc/literal version does pretty much the same thing. The difference being the way the service gets invoke via the namespace setup. The client still has to send a formatted xmldocument with control information in it. But no direct method call.
Discussion Point - It seems that both provide the same level of abstraction and loose coupling. But does it really? Opinions please.
The second item is SOA. Specifically, service proxies that coordinate the web services. Seems to me that webMethods naturally does this well without having to build the transaction management, audit logging, reliability, persistent into a hand coded services layer like in .Net or a J2EE app. Opinions? Has anyone done this in a real implementation?
Thanks for the feedback.
markg
#webMethods-General#webMethods#Integration-Server-and-ESB#webMethods-Architecture