{"id":47,"date":"2007-07-12T18:44:40","date_gmt":"2007-07-13T01:44:40","guid":{"rendered":"http:\/\/www.corneliadavis.com\/blog\/?p=47"},"modified":"2007-07-12T18:44:40","modified_gmt":"2007-07-13T01:44:40","slug":"web-20-and-soa-world","status":"publish","type":"post","link":"https:\/\/corneliadavis.com\/blog\/2007\/07\/12\/web-20-and-soa-world\/","title":{"rendered":"Web 2.0 and SOA World"},"content":{"rendered":"<p>A couple of weeks ago I attended the <a href=\"http:\/\/www.soaworld2007.com\/\">SOA World Conference and Expo<\/a> in New York City.  I gave a presentation on <a href=\"http:\/\/www.soaworld2007.com\/general\/session07.htm?id=26\">interoperability for content management<\/a>; I\u2019ll post on that topic again very soon, starting with my SOA World presentation but in short, it\u2019s about standards and they need to be service oriented.  More on that later.What I wanted to talk about today was the dominance of the Web 2.0 theme at that show.  Admittedly, I did attend a lot of talks in the Web 2.0\/Ajax and SOA track so my perspective may be a bit skewed, but it was also present in many of the general sessions and keynotes.  Is a Web 2.0 track at SOA World a cheap ploy on behalf of the conference organizers to get on a \u201chot\u201d topic?  Absolutely not!  Let me take one step back in order to take several more forward.SOA is fundamentally about loose coupling, heterogeneity and composition.  It also involves governance, messaging infrastructures and sometime registries.  It shouldn\u2019t be lost on too many folks who have been working in the software industry for more than a couple of years that many of the themes of SOA are not totally new; we\u2019ve been talking about abstractions, reusability and development methodologies for as long as I have been in computing (and I\u2019m sure much longer than that).When I started my career 20 years ago I was programming embedded systems \u2013 image processing, we were processing 30 frames per second.  Everything I coded ran on a single processor. Sometimes there were a couple of processors that ran things in parallel but I remember timing functional components on the target processor and then manually arranging what would run on which processor and it what order.  We were, of course, distributing the processing load across CPUs so that it was relatively even and and aligning processing so that a &#8220;module&#8221; depending on output from some other process wasn\u2019t left waiting on results for too long.  We did have a bit of shared memory but managing access was a pretty tractable problem in that only two or three processors were accessing it and we pretty much knew when they would be relative to one another.  If I remember correctly we implemented some simple semaphores and they worked just fine.My code development was governed, I modeled and abstracted plenty of things \u2013 things were decoupled where they needed to be, we had a way of multiple processes communicating with one another.  Heck we even had virtualization \u2013 we called our virtualizations &#8220;simulations&#8221;.  My point is this.  What changes all the time, and often very radically, is the environment in which our applications run and that environment continues to become increasingly complex.  Where I once was sure that all of my processes mapped their code abstractions to memory the same way, I am now concerned with how my data models are represented across processes because those processes are implemented in different languages and are running on different platforms.Okay, so SOA is an architectural approach that operates in an environment where we have a distributed network of computers, running a variety of operating systems, hosting a variety of applications, implemented in a variety of languages, oh and they all have to talk to one another.  Whew \u2013 this is not your grandfather\u2019s computing environment.  But then here\u2019s the thing.  For the most part, SOA has been applied in the enterprise.  The enterprise, I would argue, is still a constrained environment.  Not as constrained as the embedded environment I coded to 20 years ago but it still has some constraints.  Compared to what?  Compared to the world wide web.Ah so now I finally get to the point on what it is about Web 2.0 makes it an appropriate topic for SOA World 2007.  The \u201centerprise\u201d IT systems aren\u2019t just in the corporation anymore (haven\u2019t been for a while) \u2013 partners, vendors, customers all need to connect with the enterprise.  I won\u2019t make this already very long post any longer by arguing that utilizing the infrastructure of the web to make those connections is compelling \u2013 I\u2019ll assume we all agree on that one.  So taken in this context, where our operating environment is the web, the parts of Web 2.0 that are relevant to an SOA discussion are the architectural ones. (There are other Web 2.0 concerns like the emergence of the \u201cprocumer\u201d that I won\u2019t cover in this post, though I\u2019m sure to in the future.)<strong>Ajax and RIA<\/strong>  Sure we want to improve the user experience while running applications on the web but there is more.  Just because the point of integration is not necessarily deep within the enterprise, or even happening on servers doesn\u2019t mean that governance goes away.  Is there governance in the Web 2.0?  Maybe.  Yes, in places.  Part of it comes through standards \u2013 <a href=\"http:\/\/www.ietf.org\/html.charters\/atompub-charter.html\">Atom<\/a>, for example.  But there are also a lot of \u201caccidental architectures out there\u201d.  We\u2019ve got some work to do here.<strong>Mashups<\/strong>  Yes, I specifically address this separate from Ajax because mashups to me have more to do with the notion of composition than they do with where the composition is happening.  A colleague of mine recently created a mashup and reported (no surprise to me) that the process was painful in places \u2013 specifically the data models of the two \u201cmodules\u201d he was composing were either poorly or entirely undocumented.  <a href=\"http:\/\/www.soaworld2007.com\/general\/session07.htm?id=84\">Rob High had a slide<\/a> where he listed some core tenets of SOA \u2013 right after the line that said \u201cloosely coupled\u201d was a line that said \u201cstrongly coherent\u201d.  In the Web 2.0 world we aren\u2019t quite there yet.<strong>Agile development and deployment<\/strong>  Frequent releases or the perpetual beta.  How do we govern in an agile environment?<strong>Heterogeneity<\/strong> Yes, okay, been addressing this with SOA for some time but what is new in the Web 2.0 is that my runtime is the web.  What type of web services runtime can I depend on in the wild, wild web?  Am I all about REST?  What about SOAP and WS-*?  As an industry we are working on these answers.These topics and then some kept the conference very interesting.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of weeks ago I attended the SOA World Conference and Expo in New York City. I gave a presentation on interoperability for content management; I\u2019ll post on that topic again very soon, starting with my SOA World presentation but in short, it\u2019s about standards and they need to be service oriented. More on [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29,37],"tags":[],"class_list":["post-47","post","type-post","status-publish","format-standard","hentry","category-serviceorientation","category-web20"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/comments?post=47"}],"version-history":[{"count":0,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/posts\/47\/revisions"}],"wp:attachment":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/media?parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/categories?post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/tags?post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}