{"id":1225,"date":"2006-01-08T13:50:00","date_gmt":"2006-01-08T17:50:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2006\/01\/08\/nick-gall-on-meps\/"},"modified":"2006-01-08T13:50:00","modified_gmt":"2006-01-08T17:50:00","slug":"nick-gall-on-meps","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2006\/01\/nick-gall-on-meps\/","title":{"rendered":"Nick Gall on MEPs"},"content":{"rendered":"<p><a href=\"http:\/\/feeds.feedburner.com\/NickGallsWeblog?m=205\">Nick links<\/a> to\n<a href=\"http:\/\/www.pacificspirit.com\/blog\/2005\/04\/05\/underlying_protocol_is_a_completely_leaky_abstraction\">DaveO&#8217;s &#8220;leaky abstraction&#8221; bit<\/a>\nfrom a while back, and comments;<\/p>\n\n<blockquote cite=\"http:\/\/feeds.feedburner.com\/NickGallsWeblog?m=205\">\nGood discussion (as usual) of design issues (incl design conflicts) between SOAP and WSDL MEPs. Also points out that apparently SOAP envelopes don&#8217;t contain MEP metadata, so SOAP intermediaries cannot tell be examining a SOAP envelope which MEP it is part of! This seems like a huge design oversight and proof of how little experience we have with protocols with first-class treatment of intermediaries. Perhaps SOAP and WSDL have bitten off more than the critcal mass of programmers can chew on.\n<\/blockquote>\n\n<p>It&#8217;s a feature, not a bug!  I can&#8217;t find it, but I remember when MEPs were introduced\nback in the early days of XMLP, that I expressed concern that MEP information would find\nits way into the message.<\/p>\n\n<p>The problem is that application protocols determine the &#8220;MEP&#8221;, not the SOAP envelope.\nFor example, if the transfer protocol is HTTP then you know you&#8217;re in the middle of a\nrequest-response interaction <em>because it&#8217;s HTTP<\/em>.  Want to use HTTP with a new\nMEP that enables, say, out-of-order responses?  Tough!  HTTP\n<a href=\"http:\/\/lists.w3.org\/Archives\/Public\/xml-dist-app\/2006Jan\/0010.html\">doesn&#8217;t support it<\/a>.\nWell, I suppose you could define an\n<a href=\"http:\/\/ftp.chello.pl\/pub\/rfc\/search.ietf.org\/internet-drafts\/draft-mogul-http-ooo-00.txt\">HTTP extension<\/a>\nto support it, but you still don&#8217;t need anything in the SOAP envelope.<\/p>\n\n<p>It&#8217;s just another example of how\n<a href=\"http:\/\/www.markbaker.ca\/2002\/09\/Blog\/2004\/10\/29#2004-10-protocols\">protocol independence<\/a>\nreally is the root of all evil in Web services.<\/p>\n\n<p>As for Nick&#8217;s suggestion that we lack experience with protocols with first-class treatment\nof intermediaries, I disagree; as an industry, we have a <em>huge<\/em> amount of experience\nwith them, in particular with SMTP and HTTP, both of which have been deployed for ages, and\nat massive scale.  Unfortunately, the overlap between those with that knowledge and experience,\nand advocates of WS-*, is essentially the empty set. 8-(<\/p>","protected":false},"excerpt":{"rendered":"Nick links to DaveO&#8217;s &#8220;leaky abstraction&#8221; bit from a while back, and comments; Good discussion (as usual) of design issues (incl design conflicts) between SOAP and WSDL MEPs. Also points out that apparently SOAP envelopes don&#8217;t contain MEP metadata, so SOAP intermediaries cannot tell be examining a SOAP envelope which MEP it is part of! [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26,40],"class_list":["post-1225","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-soap","tag-xml"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=1225"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1225\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=1225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=1225"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=1225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}