{"id":27,"date":"2004-08-08T00:21:52","date_gmt":"2004-08-08T06:21:52","guid":{"rendered":"http:\/\/www.khaitan.org\/blog\/2004\/08\/ws-spaghetti-uncontrolled-proliferation-of-webservices-specifications\/"},"modified":"2004-08-08T00:21:52","modified_gmt":"2004-08-08T06:21:52","slug":"ws-spaghetti-uncontrolled-proliferation-of-webservices-specifications","status":"publish","type":"post","link":"https:\/\/www.khaitan.org\/blog\/2004\/08\/ws-spaghetti-uncontrolled-proliferation-of-webservices-specifications\/","title":{"rendered":"WS-SPAGHETTI: Uncontrolled proliferation of WebServices Specifications"},"content":{"rendered":"<p>WebServices were supposed to be simple:<\/p>\n<ol>\n<li>Do an HTTP GET request, pass some query parameters, <\/li>\n<li>Retrieve XML instead of the regular HTML. <\/li>\n<li>Process the XML and extract data. <\/li>\n<\/ol>\n<p>One of the very early implementations of WebService I did, was just that. Send a GET request for news stories for a ticker symbol. Retrieve the RDF document with stories and other data. Massage retrieved data the way you want&#8211;cache it, format it, archive it. Straight-forward.<br \/>\nIn real world, If the request happens to be more than just query parameters, do an HTTP POST of an XML document. Then SOAP comes into picture&#8211;a way to formalize the passing of parameters, generalization of target functions, abstraction of network end-points, transport and marshalling of values. SOAP was good, provided us a means of exposing the remote method calls. Then we had WSDL, a language for describing WebServices.<br \/>\nThen came the boom, much fuelled by rivalries between companies, and the consortium jump started by these companies. SOAP, itself has its own competitors in terms of the XML-RPC protocol.<br \/>\nHere is the reality&#8211;For every WS-XXX specification, claiming to enhance the security, reliability of WebServices, there is an equivalent XXX4WS already being proposed by a competing consortia formed by the rivals of the former.<\/p>\n<ol>\n<li><b>Messaging and Transaction Coordination<\/b> BPEL4WS, BTP, WSCI, WS-CAF, WS-CDL, WSCL, WS-AtomicTransaction, WS-Coordination, WS-BusinessActivity, BPML, WSFL, XLANG, ebBPSS.<\/li>\n<li><b>Reliable Messaging<\/b> ebMS, WS-ReliableMessaging, HTTPR, WS-Reliability<\/li>\n<li><b>WebServices Addressing<\/b> WS-Eventing, WS-Addressing, WS-Routing, WS-Discovery<\/li>\n<\/ol>\n<p>That&#8217;s not the definitive list, there are many other specifications, which I don&#8217;t know where to bucket, unless I pore through the specifications, use cases and relevance related to the base SOAP &#038; WSDL specifications.<br \/>\nWhat we want is simplicity&#8211;WSDL to expose the service interface and their end-points, SOAP to exchange the payload and a protocol for doing 2-phase commit operations on the services. Bingo&#8211;95% of the applications using WebServices for SOA implementations would be covered. Rest of the 5% will customize anyway.<br \/>\nOn the similar lines&#8211;<a href=\"http:\/\/www.adambosworth.net\/archives\/000024.html\">Adam Bosworth&#8217;s latest entry<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WebServices were supposed to be simple: Do an HTTP GET request, pass some query parameters, Retrieve XML instead of the regular HTML. Process the XML and extract data. One of the very early implementations of WebService I did, was just that. Send a GET request for news stories for a ticker symbol. Retrieve the RDF [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/posts\/27"}],"collection":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/comments?post=27"}],"version-history":[{"count":0,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/posts\/27\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/media?parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/categories?post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/tags?post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}