{"id":469,"date":"2004-09-24T00:34:00","date_gmt":"2004-09-24T04:34:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2004\/09\/24\/what-is-an-interface-constraint\/"},"modified":"2004-09-24T00:34:00","modified_gmt":"2004-09-24T04:34:00","slug":"what-is-an-interface-constraint","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/09\/what-is-an-interface-constraint\/","title":{"rendered":"What is an interface constraint?"},"content":{"rendered":"<p>If you&#8217;ve heard me discuss Internet scale systems, you&#8217;ve certainly\nheard me talk about the necessity of interface constraints\nfor those systems.  What hit home with me today was that this term is\nprobably unfamiliar to a lot of folks, so it could be of value to\nattempt to relate it to other things that they might be more familiar\nwith.<\/p>\n\n<p>What other names does &#8220;interface constraint&#8221; go by?  &#8220;Component\nmodel&#8221; is one you might recognize.  The value of component models like\n<a href=\"http:\/\/java.sun.com\/products\/javabeans\/index.jsp\">Java Beans<\/a>\nderives entirely from the generality of the common interface they define.\nIn the case of Beans, that interface isn&#8217;t complete (it&#8217;s more akin to a\nCRUD interface) but it remains useful.<\/p>\n\n<p>Hmm, I wonder what a <em>complete<\/em> distributed component framework\nmight look like?  8-)<\/p>","protected":false},"excerpt":{"rendered":"If you&#8217;ve heard me discuss Internet scale systems, you&#8217;ve certainly heard me talk about the necessity of interface constraints for those systems. What hit home with me today was that this term is probably unfamiliar to a lot of folks, so it could be of value to attempt to relate it to other things that [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-469","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/469","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=469"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/469\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=469"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}