{"id":64,"date":"2005-05-24T09:47:29","date_gmt":"2005-05-24T09:47:29","guid":{"rendered":"http:\/\/www.pleus.net\/blog\/?p=64"},"modified":"2010-08-13T00:10:14","modified_gmt":"2010-08-12T22:10:14","slug":"services-and-components","status":"publish","type":"post","link":"https:\/\/www.pleus.net\/blog\/?p=64","title":{"rendered":"Services and Components"},"content":{"rendered":"<p>A lot of discussions about Services vs. Components are currently taking place in the blog sphere. <br \/>\nThe debate is especially difficult because terms like Component, Service or Widget have a lot of different meanings dependent of whom you ask.<br \/>\nApart from that I think the phrase Services vs. Components is a bit misleading because this leads to an either-or kind of thinking which is not really helpful.<\/p>\n<p>So please let me add a another kind of definition which uses a more historical approach:<\/p>\n<p>In the very beginning we had <b>Functions<\/b>. These functions offered raw functionality which was not very organized and therefore often lead to messy code.  <\/p>\n<p>Later <b>Objects<\/b> were invented which gave us the opportunity to model concepts of the real world in our code. Much better but still messy because of tightly bound object systems and white box inheritance and reuse.<\/p>\n<p>In order to solve this <b>Components<\/b> introduced the notion of explicit interfaces and encouraged black box reuse. Much better but still not open because of platform affinity or complexity, e.g. COM-components, Java-Beans, Corba-Servants.<\/p>\n<p>Now <b>Services<\/b> add the platform neutral protocols which provide reachability from any platform that supports these protocols.<\/p>\n<p>The main difference between components and services is not the design granularity, although it apparently doesn&#8217;t make much sense to create fine grained services. The main difference is openness and reachability.<\/p>\n<p>Conclusion:<br \/>\nA service is a component which is reachable from any platform by using standard protocols.<\/p>\n<p>If you have other definitions which elucidate the subject, please let me know.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lot of discussions about Services vs. Components are currently taking place in the blog sphere. The debate is especially difficult because terms like Component, Service or Widget have a lot of different meanings dependent of whom you ask. Apart from that I think the phrase Services vs. Components is a bit misleading because this &hellip; <a href=\"https:\/\/www.pleus.net\/blog\/?p=64\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Services and Components<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-soa","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=64"}],"version-history":[{"count":2,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":315,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions\/315"}],"wp:attachment":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}