{"id":1319,"date":"2006-03-10T14:06:00","date_gmt":"2006-03-10T18:06:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2006\/03\/10\/generally-useful\/"},"modified":"2006-03-10T14:06:00","modified_gmt":"2006-03-10T18:06:00","slug":"generally-useful","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2006\/03\/generally-useful\/","title":{"rendered":"Generally useful"},"content":{"rendered":"<img decoding=\"async\" src=\"http:\/\/www.markbaker.ca\/images\/slot.jpg\" \/>\n\n<p>William Henry wrote a little piece called\n<a href=\"http:\/\/www.ipbabble.com\/2006\/03\/poor_interface_semantics.html\">Poor Service Semantics<\/a>\nwhere he criticizes uses of CORBA IDL that offer operations like &#8220;runIt&#8221; or &#8220;doIt&#8221;.  He\nwrites;<\/p>\n\n<blockquote cite=\"http:\/\/www.ipbabble.com\/2006\/03\/poor_interface_semantics.html\">\nThe problem with these is that the semantics are lost as to what the business actually is doing.\n<\/blockquote>\n\n<p>Rubbish!  &#8220;what the business actually is doing&#8221; is determined by the\n<em>implementation<\/em> of the service.  Do you want clients of your\nservices to have dependencies upon those implementations?  I thought\nnot.  We have a name for that practice, &#8220;tight coupling&#8221;.<\/p>\n\n<p>submitPizzaOrder() tells you less about what the business is doing\nthan submitPepperoniPizzaOrder(), but is it somehow less of business semantic\nas a result?  No, of course not, it&#8217;s just more general.  Likewise,\nsubmitOrder() is more general still, and submit() yet more general again &#8230;\nso general in fact that it can&#8217;t be generalized any further (i.e. it&#8217;s\n<a href=\"http:\/\/www1.ics.uci.edu\/~fielding\/pubs\/dissertation\/rest_arch_style#sec_5_1_5\">uniform<\/a>).<\/p>\n\n<p>doIt, runIt, submit,\n<a href=\"http:\/\/savas.parastatidis.name\/2004\/04\/29\/54ae8b22-2911-4b92-bf8c-b4293f1441f2.aspx\">processMessage<\/a>, or\n<a href=\"http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec9.html#sec9.5\">POST<\/a>;\nwhatever you want to call your &#8220;process this document&#8221; semantic, it&#8217;s most\ndefinitely a business operation, just a\n<a href=\"http:\/\/www.coactus.com\/blog\/2005\/11\/on-interface-and-implementation-and-reuse\/\">highly reusable<\/a>\none.<\/p>\n\n<p>Tags:\n<a href=\"http:\/\/del.icio.us\/tag\/soa\">soa<\/a>,\n<a href=\"http:\/\/del.icio.us\/tag\/rest\">rest<\/a>,\n<a href=\"http:\/\/del.icio.us\/tag\/mest\">mest<\/a>,\n<a href=\"http:\/\/del.icio.us\/tag\/webservices\">webservices<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"William Henry wrote a little piece called Poor Service Semantics where he criticizes uses of CORBA IDL that offer operations like &#8220;runIt&#8221; or &#8220;doIt&#8221;. He writes; The problem with these is that the semantics are lost as to what the business actually is doing. Rubbish! &#8220;what the business actually is doing&#8221; is determined by the [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[22],"class_list":["post-1319","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-rest"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1319","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=1319"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1319\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=1319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=1319"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=1319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}