<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-479214606211871351</id><updated>2011-09-08T10:45:38.365-07:00</updated><category term='MOM'/><category term='SOA'/><category term='ESB'/><title type='text'>SOA Sidewalk</title><subtitle type='html'>A Pedestrian (Developer) View of Service Oriented Architecture Design and Development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1465102164546821283</id><published>2011-08-07T07:21:00.000-07:00</published><updated>2011-08-07T07:25:33.001-07:00</updated><title type='text'>Getting soapUI AMF example on MacOS Running</title><content type='html'>If you are trying to get soapUI 3.6.1 AMF example running with BlazeDS samples, make sure you do the following:&lt;br /&gt;&lt;br /&gt;- Place the flexsample.jar file under /Applicatons/eviware/soapUI-Pro-3.6.1.app/Contents/Resources/app/lib&lt;br /&gt;- Restart the application and create a TestSuite, TestCase, AMF Test Step&lt;br /&gt;- Specify the endpoint of: http://localhost:8400/samples/messagebroker/amf&lt;br /&gt;- Specify the AMF Call as: product.getProducts&lt;br /&gt;&lt;br /&gt;All is good!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1465102164546821283?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1465102164546821283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1465102164546821283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1465102164546821283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1465102164546821283'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2011/08/getting-soapui-amf-example-on-macos.html' title='Getting soapUI AMF example on MacOS Running'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3735258456266456993</id><published>2011-06-28T08:43:00.000-07:00</published><updated>2011-06-28T08:51:36.108-07:00</updated><title type='text'>SEVERE: WSSERVLET11: failed to parse runtime descriptor: exception during WSDL parsing</title><content type='html'>Have been doing development of JAX-WS service in Metro/Tomcat 6 and ran across the following failure when deploying the WAR file. Examination of google results didn't provide the exact answer I needed but resolved it by doing the following:&lt;br /&gt;&lt;br /&gt;- Under the WEB-INF a directory called com existed that I had noticed before. &lt;br /&gt;- Examined the contents of it and found the package and java classes was reproduced in this location. &lt;br /&gt;- Deleted the directory, recreated the WAR and redeployed. &lt;br /&gt;&lt;br /&gt;All was good!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3735258456266456993?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3735258456266456993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3735258456266456993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3735258456266456993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3735258456266456993'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2011/06/severe-wsservlet11-failed-to-parse.html' title='SEVERE: WSSERVLET11: failed to parse runtime descriptor: exception during WSDL parsing'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2713546345823853139</id><published>2010-12-11T17:34:00.000-08:00</published><updated>2010-12-11T17:44:01.074-08:00</updated><title type='text'>Musings about Oracle SOA Suite 11G</title><content type='html'>A little over a year ago I undertook a project to migrate a customer of mine from Cape Clear to a new solution. The solution chosen was Oracle Fusion Middleware and more specifically we settled on the Oracle SOA Suite 11G. With no training, great assistance by Oracle Product Management and lot of trial and error we were able to get SCA composites with BPEL components developed within a 1.5-2 month time frame. Like most SOA Platforms, the secret was not so much in the development but more so in the runtime and tuning. Like most BPEL engines, this one was no different in that the Database and its proper configuration required great effort on the part of Oracle support and my clients DBA and WLS experts. The migration took approximately 10 months. So what did I learn?&lt;br /&gt;&lt;br /&gt;- Development with Web Service standards is a significant time saver. &lt;br /&gt;- We struggled with where the rubber meets the road. &lt;br /&gt;-- JMS Adapter configuration within the container to integrate to a non-certified JMS Provider.&lt;br /&gt;-- Oracle RAC Tuning and Configuration for SOA Suite specifically&lt;br /&gt;-- WLS Tuning and Configuration for SOA Suite specifically&lt;br /&gt;&lt;br /&gt;So in the end migration if planned properly can be done, but always leave extra time for the tuning and performance testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2713546345823853139?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2713546345823853139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2713546345823853139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2713546345823853139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2713546345823853139'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/12/musings-about-oracle-soa-suite-11g.html' title='Musings about Oracle SOA Suite 11G'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8996433234589477809</id><published>2010-12-11T10:37:00.000-08:00</published><updated>2010-12-11T10:44:29.757-08:00</updated><title type='text'>Oracle vs. Open Source</title><content type='html'>With all the clients we work with, HKM has to be flexible to meet their budgetary needs. Some of our clients will have enterprise agreements and others are just starting. To this end, open source is the defacto starting point for many. Over the next several months I will be diving into the Apache solutions to a take another peak at the most recent Apache CXF, Camel and Ode. I am specifically interested in Ode to see how it has progressed from when I tried it 2 years ago and how close these solutions are to Oracle SOA Suite and other traditional vendors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8996433234589477809?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8996433234589477809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8996433234589477809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8996433234589477809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8996433234589477809'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/12/oracle-vs-open-source.html' title='Oracle vs. Open Source'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1792685439389136766</id><published>2010-11-22T07:13:00.000-08:00</published><updated>2010-11-22T07:43:42.485-08:00</updated><title type='text'>Oracle SOA Suite 11G, JmsAdapter and Sonic MQ Topics</title><content type='html'>Recently we were working with a customer who needed to integrate SOA Suite to Progress Sonic MQ and specifically topics that were hosted. The first step with Oracle is to edit the JmsAdapter.rar configuration (specifically weblogic-ra.xml) to point at Sonic MQ. Sonic &lt;br /&gt;&lt;br /&gt;&amp;lt;connection-instance&amp;gt;&lt;br /&gt;&amp;lt;jndi-name&amp;gt;eis/sonic/queue&amp;lt;/jndi-name&amp;gt;&lt;br /&gt;&amp;lt;connection-properties&amp;gt;&lt;br /&gt;&amp;lt;properties&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;ConnectionFactoryLocation&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;MyCF&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;FactoryProperties&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;java.naming.factory.initial=com.sonicsw.jndi.mfcontext.MFContextFactory;java.naming.provider.url=tcp://sonicmq1:2506;com.sonicsw.jndi.mfcontext.domain=Domain1&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;AcknowledgeMode&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&gt;AUTO_ACKNOWLEDGE&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;IsTopic&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;IsTransacted&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;false&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Username&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Password&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/properties&amp;gt;&lt;br /&gt;&amp;lt;/connection-properties&amp;gt;&lt;br /&gt;&amp;lt;/connection-instance&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Having integrated to Sonic Queue(s) in the past, we were running into an issue where the SOA Suite cluster was picking up the message for each node within the cluster and was unaware of initially how to solve this. A simple solution was identified and specifically it was within the jDeveloper JmsAdapter Wizard. The following image shows the "Durable Subscriber Id". By simply specifying a value here, the cluster is only allowed to consume one message from the topic. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_udzPjBm3v4E/TOqLrADapVI/AAAAAAAAADI/tXBB4N6f_78/s1600/jms.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 273px;" src="http://3.bp.blogspot.com/_udzPjBm3v4E/TOqLrADapVI/AAAAAAAAADI/tXBB4N6f_78/s320/jms.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5542395862297781586" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1792685439389136766?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1792685439389136766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1792685439389136766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1792685439389136766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1792685439389136766'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/11/oracle-soa-suite-11g-jmsadapter-and.html' title='Oracle SOA Suite 11G, JmsAdapter and Sonic MQ Topics'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_udzPjBm3v4E/TOqLrADapVI/AAAAAAAAADI/tXBB4N6f_78/s72-c/jms.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8559504047334421009</id><published>2010-03-21T18:43:00.000-07:00</published><updated>2010-03-21T19:06:20.756-07:00</updated><title type='text'>Oracle 11.1.1.2 XPath issues</title><content type='html'>Currently I have been migrating BPEL for a client using Oracle SOA Suite and ran into incompatibilities between 11.1.1.1.0 and 11.1.1.2.0. A simple example that worked in 11.1.1.1.0 and not in the latest patched released is a simple evaluation where I am trying to confirm the existence of an element in a message.&lt;br /&gt;&lt;br /&gt;&amp;lt;bpws:getVariableData("message","part","/element/element")&amp;gt; = true()&lt;br /&gt;&lt;br /&gt;The same statement also works in Cape Clear ESB and its BPEL implementation. &lt;br /&gt;&lt;br /&gt;One workaround that I used was to count the nodes using the Oracle XPath Advanced Functions:&lt;br /&gt;&lt;br /&gt;ora:countNodes("message","part","/element/element") &gt; 0&lt;br /&gt;&lt;br /&gt;I am working with Oracle support services to see how this can be resolved in the code base.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8559504047334421009?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8559504047334421009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8559504047334421009' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8559504047334421009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8559504047334421009'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/03/oracle-11112-xpath-issues.html' title='Oracle 11.1.1.2 XPath issues'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-6097824207240618248</id><published>2010-03-21T18:24:00.000-07:00</published><updated>2010-03-21T18:40:40.697-07:00</updated><title type='text'>Open Cloud Manifesto and Standardization</title><content type='html'>The Open Cloud Manifesto provides a solid definition of the state of cloud computing. Just like other industry movements in distributed computing, enterprise integration or other, cloud computing is evolving in many different directions but the core patterns and architecture of outsourced infrastructure, platforms and software supporting elasticity, multi-tenancy, metering etc. &lt;br /&gt;&lt;br /&gt;The hope of the manifesto and other cloud computing standards/organization, standardization in the areas of deployment, execution and management are desirable. When standards exist, it allows us to focus on generating business logic and the value it provides versus the technical wiring and potential workarounds necessary. Just like Web Services and the standards they developed over the past 10 years, I envision cloud computing will take a similar period of time to clarify and flush out the details that can be standardized. &lt;br /&gt;&lt;br /&gt;The one area that has traction is support for REST/SOAP based APIs. In fact as companies develop private clouds and potentially expose them as to the public, other architectures such as SOA become important in providing concise and clear interfaces to business logic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-6097824207240618248?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/6097824207240618248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=6097824207240618248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6097824207240618248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6097824207240618248'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/03/open-cloud-manifesto-and.html' title='Open Cloud Manifesto and Standardization'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1562388910218576690</id><published>2010-02-15T17:23:00.000-08:00</published><updated>2010-02-15T17:28:29.138-08:00</updated><title type='text'>Wiseclouds: Eating the Dog Food</title><content type='html'>As part of our development of &lt;a href="http://www.wiseclouds.com"&gt;WiseClouds&lt;/a&gt;, it is important that we demonstrate our agnostic nature in evolving the company and its technologies. The site itself is a Google Apps Engine based with integrations into Salesforce.com and Amazon EC2. We will also include Azure in the future along with WordPress for blogging services. This simple example allows us to demonstrate the use of PaaS, IaaS and Saas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1562388910218576690?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1562388910218576690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1562388910218576690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1562388910218576690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1562388910218576690'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/02/wiseclouds-eating-dog-food.html' title='Wiseclouds: Eating the Dog Food'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2654699075430325799</id><published>2010-02-15T17:10:00.000-08:00</published><updated>2010-02-15T17:23:39.285-08:00</updated><title type='text'>Wiseclouds is out</title><content type='html'>As part of my own transformation to work with customers in new and interesting ways, I am collaborating with a team at &lt;a href="http://www.wiseclouds.com"&gt;WiseClouds&lt;/a&gt; to bring cloud computing training and consulting to a wider audience. Similar and yet different then SOA, Cloud means many things but is already proving its value in a few customers I work with and is on many a tongue in IT. &lt;br /&gt;&lt;br /&gt;Anyway, check out what we are working towards which is generating very useful training content along with a group of experienced practitioners in &lt;a href="http://www.wiseclouds.com/services.html"&gt;Service and Cloud Computing technologies&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2654699075430325799?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2654699075430325799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2654699075430325799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2654699075430325799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2654699075430325799'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/02/wiseclouds-is-out.html' title='Wiseclouds is out'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5155441684528561952</id><published>2010-01-18T11:39:00.000-08:00</published><updated>2010-01-18T12:05:07.189-08:00</updated><title type='text'>Cloud Computing begins but beware of the bill!</title><content type='html'>Per Gartner and other research organizations, customers have gotten familiar to the Adoption curve slide as part of state of the union for a technology segment. Cloud Computing in its various flavors (SaaS, IaaS and PaaS) has hit main street or in Gartner parlance is with the Early Adopters. Organizations that adopted SaaS (i.e. Salesforce.com, Workday) realized the financial benefits of the pay per subscriber model. Now as the space has rolled out Infrastructure and Platform services, customers are dipping their toe in the water or jumping right in. Some teams are placing functions in the cloud to take advantage of the elasticity features due to the processing volume necessary. Others are rapidly developing applications to fill voids in their technology stack sometimes by the Sales organization or other non-traditional technology. This wild-west period eventually settles down when the rest of the marketplace catches up and Cloud becomes the standard technology medium. &lt;br /&gt;&lt;br /&gt;The piece that is daunting right now is the cost that can creep up on you if you are not careful. With billing being an aggregation of the data stored, data shuttled, number of instances, number of connections or other metrics, it gets easy to forget the costs especially if elasticity is enabled in the environment. Similar to mobile data plans, triple play packages, the end of the month bill can be staggering. For now, make sure you not only architect a solution but also the cost models associated with that solution. A good rule of thumb is when developing and testing within the cloud, the costs are quite reasonable. If developing a large scale application that will be running 24x7, be clear on the aggregate costs and talk with the vendor about pricing flexibility. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following examples provide details from two popular vendors on pricing:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/windowsazure/pricing/"&gt;Microsoft Azure Pricing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aws.amazon.com/economics/"&gt;Amazon Web Services Pricing&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5155441684528561952?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5155441684528561952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5155441684528561952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5155441684528561952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5155441684528561952'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2010/01/cloud-computing-begins-but-beware-of.html' title='Cloud Computing begins but beware of the bill!'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2826355808768087455</id><published>2009-12-03T18:53:00.000-08:00</published><updated>2009-12-03T19:37:22.806-08:00</updated><title type='text'>Cloud to Cloud Integration</title><content type='html'>After having hosted a Cloud Computing event in November and hearing how companies are dipping their feet in the cloud, the next logical step we discussed was inter cloud communication. As a small company I may buy into Salesforce.com for CRM, Workday for HR/Financials and Google AppEngine for custom apps. How do I tie these solutions together for data synchronization? What if the data to be exchanged is extremely large? What solutions can I use to do the heavy lifting?&lt;br /&gt;&lt;br /&gt;Service Bus solutions either deployed locally or in the cloud provide a composition medium to support such interactions. Cloud platforms expose public APIs via REST or SOAP for near-real time communication. &lt;br /&gt;&lt;br /&gt;Large data sets and exchange of this for processing is being investigated by a interesting consortium called &lt;a href="http://opencloudconsortium.org/"&gt;Open Cloud Consortium&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Another interesting area may be the creation of middleware in the cloud. Grand Central tried to support this in the early 2000 timeframe. It was a little ahead of its time but now we are seeing Amazon SQS, Microsoft Azure w/Biztalk and other similar platforms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2826355808768087455?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2826355808768087455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2826355808768087455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2826355808768087455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2826355808768087455'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/12/cloud-to-cloud-integration.html' title='Cloud to Cloud Integration'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2155652895577262407</id><published>2009-12-03T18:34:00.000-08:00</published><updated>2009-12-03T18:52:53.199-08:00</updated><title type='text'>QCon, Security and Musings</title><content type='html'>I was fortunate to speak at QCon San Francisco, CA on November 20 discussing Service Security and my own journey on understanding security but more importantly how services can be hacked. It was interesting when examining the audience to see a mixture of participants but the lack of questions was a little disconcerning. I could take three things from that:&lt;br /&gt;&lt;br /&gt;1) Everyone in the audience was familiar with service hacking / security. &lt;br /&gt;2) People are not very familiar and were afraid to ask questions or didn't understand the content. &lt;br /&gt;3) People were not interested.&lt;br /&gt;&lt;br /&gt;Since the audience stayed for the entire presentation and questions were basic, I think the majority of the audience was in category 2. &lt;br /&gt;&lt;br /&gt;With the increasing discussion on Cloud Computing (QCON was loaded with Cloud presentations as was SOA / Cloud Symposium 2.0/1.0) security had very little presence. In understanding security, my own education was due to a client requirement. With just a couple months of effort, I was able to better understand the security technology. The harder part has been in understanding the hacking culture, finding helpful material and approaches and how that impacts services I create. Here is the link to the &lt;a href="http://qconsf.com/sf2009/tracks/show_track.jsp?trackOID=295"&gt;QCon presentation&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2155652895577262407?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2155652895577262407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2155652895577262407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2155652895577262407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2155652895577262407'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/12/qcon-security-and-musings.html' title='QCon, Security and Musings'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-9132165552523320966</id><published>2009-11-05T17:23:00.000-08:00</published><updated>2009-11-05T17:29:00.358-08:00</updated><title type='text'>ECAUG 1.0: Architecture User Group</title><content type='html'>Wednesday this week I hosted a user group in Waltham, MA focusing on Cloud Computing experiences. I was fortunate to have Steve Robbins of Modus21 and Matson Wade representing HKM at the event. In their discussions, they broke down their experiences with Amazon Web Services specifically EC2, S3, SQS and a few other features. If you are interested in participating in the future, let us know. We can extend an invite to the Ning forum that we have setup and you can check out the presentations. A couple of criteria at the moment are you are based in the US and you are willing to proactively participate. No vendors are allowed which in turn provides a more frank and interesting discussion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-9132165552523320966?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/9132165552523320966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=9132165552523320966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/9132165552523320966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/9132165552523320966'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/11/ecaug-10-open-source-user-group.html' title='ECAUG 1.0: Architecture User Group'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-6930625745069555825</id><published>2009-10-29T11:33:00.000-07:00</published><updated>2009-11-05T17:23:17.296-08:00</updated><title type='text'>SMB not fit for SOA?</title><content type='html'>During a training class I was leading today, a very interesting question came up which is "All this SOA stuff we have been talking about today is great for a large company but seems to be overkill for the SMB (Small / Medium Business). Since SMB makes up a much larger percentage of the business world then traditional business, why should we care?". &lt;br /&gt;&lt;br /&gt;Well one way to look at the problem is that services are permeating the cloud computing space, in fact last week's SOA Symposium co-hosted a Cloud Computer Conference. Cloud computing is becoming a game-changer for SMB in providing a variety of tooling from productivity (documents, email, etc.) to CRM (i.e. Saleforce.com) to HR (i.e. Workday) to Infrastructure (i.e. Amazon/Azure). The one common aspect in these is the ability to interact using service APIs and thus the need for SMB to be adept at service consumption and composition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-6930625745069555825?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/6930625745069555825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=6930625745069555825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6930625745069555825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6930625745069555825'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/10/smb-not-fit-for-soa.html' title='SMB not fit for SOA?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4910554499704756941</id><published>2009-10-14T19:05:00.001-07:00</published><updated>2009-10-14T19:07:06.823-07:00</updated><title type='text'>Versioning Podcasts</title><content type='html'>As part of my work with SOA Systems / SOABooks.com, I was asked to support Podcasts on versioning based on my participating with David Orchard (formerly BEA). Check the two &lt;a href="http://www.hkmconsultingllc.com/media.html"&gt;podcasts&lt;/a&gt; out and fire over some questions if you have any.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4910554499704756941?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4910554499704756941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4910554499704756941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4910554499704756941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4910554499704756941'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/10/versioning-podcasts.html' title='Versioning Podcasts'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5794052215592217289</id><published>2009-10-14T18:54:00.000-07:00</published><updated>2009-10-14T19:04:26.426-07:00</updated><title type='text'>Flexible Contracts?</title><content type='html'>After having delivered SOA Training to various clients this summer and fall many have asked how to deal with change. The contract is the center piece of services and with an effective versioning strategy it can be difficult to alter due to coupling that occurs with service consumers. David Orchard, James Pasley and others have been documenting versioning strategies. From my work with David on the SOA Patterns book(Erl 2008) and my consulting with organizations employing Agile Methodology, contract refactoring/change is a mandatory requirement. &lt;br /&gt;&lt;br /&gt;Identifying a versioning strategy such as Strict, Flexible or Loose along with Versioning Identification and Compatibility design patterns provides a foundation for indicating change and providing consistency in managing the consumer impact. &lt;br /&gt;&lt;br /&gt;For further details check out a &lt;a href="http://www.hkmconsultingllc.com/media.html"&gt;presentation&lt;/a&gt; related to mixing Agile along with SOA Design Patterns and Meet in the Middle Strategy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5794052215592217289?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5794052215592217289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5794052215592217289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5794052215592217289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5794052215592217289'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/10/flexible-contracts.html' title='Flexible Contracts?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-7297449079840216798</id><published>2009-10-14T18:15:00.000-07:00</published><updated>2009-10-14T18:22:17.409-07:00</updated><title type='text'>SOA Symposium 2.0: Rotterdam, Netherlands</title><content type='html'>It is amazing another year has passed and SOA Symposium 2.0 is around the corner. As part of the presentation work, two areas that I have focused on in blog postings and customer work is in &lt;a href="http://www.hkmconsultingllc.com/media.html"&gt;Agile Methodology&lt;/a&gt; and &lt;a href="http://www.hkconsultingllc.com/media.html"&gt;Service Hacking&lt;/a&gt;. Check out the presentations and feel free to post any questions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-7297449079840216798?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/7297449079840216798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=7297449079840216798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7297449079840216798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7297449079840216798'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/10/soa-symposium-20-rotterdam-netherlands.html' title='SOA Symposium 2.0: Rotterdam, Netherlands'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8152091126112846879</id><published>2009-10-14T18:07:00.000-07:00</published><updated>2009-10-14T18:35:02.580-07:00</updated><title type='text'>East Coast Architecture Group: Cloud Computing Seminar</title><content type='html'>The past couple years has seen an increase in the discussion and interest in Cloud Computing. In my own experience it started with Salesforce.com in 2003/4 and then Workday which acquired Cape Clear in 2008. More recently I have been tracking the use of Amazon EC2/S3 etc. and the impacts that IaaS is doing to the IT community. To help customers and architects that I have interacted with in the past 10 years, my company is hosting / starting an Architecture User Group. The first topic to be discussed is Cloud Computing and people that have experiences with this medium. The following URL provides specifics on the topic and dates:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://archusergroup.hkmconsultingllc.com"&gt;East Coast User Group: November 4th, 2009, Waltham, MA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8152091126112846879?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8152091126112846879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8152091126112846879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8152091126112846879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8152091126112846879'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/10/east-coast-architecture-group-cloud.html' title='East Coast Architecture Group: Cloud Computing Seminar'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3759101688542287265</id><published>2009-07-11T13:19:00.000-07:00</published><updated>2009-07-11T13:55:53.029-07:00</updated><title type='text'>Justification for constraining your XML Types</title><content type='html'>As part of work for a client and some training I need to perform in the future, I have been spending time on hacking of web services. A simple mechanism that is often unchecked is the use of types that have no restrictions within XML Schema and WSDL. An example is simple schema below where the Social Security Number is not restricted in length and type:&lt;br /&gt;&lt;br /&gt;&amp;lt;xsd:element name="SSN" type="xsd:string"/&amp;gt;&lt;br /&gt;&lt;br /&gt;If this element is used as a part of a SQL Query in a Web Services, there is the potential for SQL Injection attacks. SQL Injection is where hackers look for elements that are not constrained and thus can take advantage of the un-restricted size to insert additional sql. A simple mechanism to reduce this is to restrict the element via simpleType. &lt;br /&gt;&lt;br /&gt;&amp;lt;xsd:element name="SSN" type="SSNType"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;simpleType name="SSNType"&amp;gt;&lt;br /&gt;&amp;lt;restriction base="string"&amp;gt;&lt;br /&gt;&amp;lt;minLength value="9"/&gt;&amp;gt;&lt;br /&gt;&amp;lt;maxLength value="11"/&amp;gt;&lt;br /&gt;&amp;lt;/restriction&amp;gt;&lt;br /&gt;&amp;lt;/simpleType&amp;gt;&lt;br /&gt;&lt;br /&gt;This then reduces the overall buffer available for the hacker between 9 and 11 characters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3759101688542287265?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3759101688542287265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3759101688542287265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3759101688542287265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3759101688542287265'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/07/justification-for-constraining-your-xml.html' title='Justification for constraining your XML Types'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-6660509285581594329</id><published>2009-05-21T18:37:00.001-07:00</published><updated>2009-05-21T19:05:46.828-07:00</updated><title type='text'>Agile in the trenches (Part 1)</title><content type='html'>As part of my research on how Agile Methodologies can interface with Service-Oriented Architecture, I am working with a client performing a 2 week iteration. The iteration is focusing on automating a process via a Service Composition. The goal of the iteration is for an architect to provide a reference implementation for a development team. The development team will then use the reference implementation as the basis for the final service composition. &lt;br /&gt;&lt;br /&gt;The reference implementation employs design patterns for version identification, process abstraction/centralization as well as design standards and industry standards. This implementation reduces the requirements on the development team to create the entire service composition and more on modification of a framework. The overall idea of having architecture teams support development teams came about in discussions with Kevin Davis. We discussed how the enterprise architecture team could become a much more effective participant in development cycles by performing co-development.&lt;br /&gt;&lt;br /&gt;During execution of the architecture iteration the following was performed to keep the development team/architecture team interactions simple and concise:&lt;br /&gt;&lt;br /&gt;1) Stand up meetings are replaced with email stand up meetings. The customer is the development team and to reduce the impact on this team, a simple summary of the current tasks and blocking issues are identified. The development team manager is responsible for getting blocking issues resolved. &lt;br /&gt;&lt;br /&gt;2) An iteration planning meeting still occurs in this model to identify the user story(s) and development tasks. These are then entered into a Agile Management Tool for tracking and visibility.&lt;br /&gt;&lt;br /&gt;3) A retrospection meeting occurs to demonstrate the user story solution and delivery results for the identified development tasks. As part of the delivery, a step by step documentation set is provided to help the development team utilize the reference framework. &lt;br /&gt;&lt;br /&gt;This same process is being executed by other Architecture team members for future features/technology required by other development teams. The execution of these iterations is meant to help validate/alter the process towards a consistent delivery approach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-6660509285581594329?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/6660509285581594329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=6660509285581594329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6660509285581594329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6660509285581594329'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/05/agile-in-trenches-part-1.html' title='Agile in the trenches (Part 1)'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5343015901093673750</id><published>2009-04-07T17:38:00.000-07:00</published><updated>2009-04-07T17:53:05.803-07:00</updated><title type='text'>SOA in the DOD / Government</title><content type='html'>I just had the opportunity to participate at the latest &lt;a href="http://www.soasymposium.com"&gt;SOA Symposium&lt;/a&gt; focusing on the Department of Defense and other government agencies. The theme was on the people aspects of SOA and how success is directly measured by the amount of collaboration and teamwork in the project.&lt;br /&gt;&lt;br /&gt;Vendor presentations by IBM, Microsoft, Oracle, Red Hat and Amberpoint talked to Cloud Computing, SAAS, Event Processing, Open-Source and Governance. &lt;br /&gt;&lt;br /&gt;Separate to this I have had the opportunity to do some training and consulting in the area exposing me to the contracting base and additional government agencies. It is clear that data sharing between agencies appears to be increasing and currently service APIs are seen as the goal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5343015901093673750?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5343015901093673750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5343015901093673750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5343015901093673750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5343015901093673750'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/04/soa-in-dod-government.html' title='SOA in the DOD / Government'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8092402347678292136</id><published>2009-03-19T19:52:00.001-07:00</published><updated>2009-03-19T20:06:18.004-07:00</updated><title type='text'>SOA Architecture and Agile Methodology</title><content type='html'>Over the past couple of months I have been exposed to colleagues, professional acquaintances, and training that has discussed the merits of Agile Methodologies in creating a loose but improved development organization. One client that I work for has several teams that are employing short iterations and have improved their overall deliver of software functionality. The company has also spent time training the teams via experienced Agilists and employed collaboration software to support epics, mrf, user stories, product backlog etc. &lt;br /&gt;&lt;br /&gt;Working in the architecture group, there is currently no process in place but we are considering applying Agile and short 2 week iterations to deliver value to the product teams. In essence have the product teams help define challenging issues to be solved to free them up and allow them to focus on their tactical user stories/development tasks. In addition having the architecture team sit in on the product teams iterations to identify / guide the development teams towards existing services in the domain/enterprise to reduce/eliminate rebuilding existing logic. This can be done by participating in the Iteration Planning Meeting at the beginning of each iteration.&lt;br /&gt;&lt;br /&gt;From these experience I will be trying some role/organizational approaches towards SOA in an Agile environment. They include setting up clear versioning policies for the service contracts and using design patterns to decouple the contract from the logic. This will allow the contract to more easily change from its potential tactical definition to a more domain/strategic one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8092402347678292136?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8092402347678292136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8092402347678292136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8092402347678292136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8092402347678292136'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/03/soa-architecture-and-agile-methodology.html' title='SOA Architecture and Agile Methodology'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-7384779418595762082</id><published>2009-03-12T22:01:00.000-07:00</published><updated>2009-03-12T22:22:18.332-07:00</updated><title type='text'>How easy is SOA?</title><content type='html'>When reading blogs on SOA or technology in general, what strikes me is the amount of misleading information that exists in the space or even worse, the lack of information. When tackling new technologies in open source or standards, the lack of documentation or practical information is quite often missing. Once in awhile, I find a clear and concise document that is able to help me learn a technology rapidly. An example of this was some work I was doing debugging a Hibernate issue. To really understand the process/facilities that Hibernate provides, the base documentation provided a solid basis and was able to get me to completion within a couple of hours. &lt;br /&gt;&lt;br /&gt;Compare this with work I was doing with some WS Standards, where the only information I could find was the specification and a poorly documented reference implementation. &lt;br /&gt;&lt;br /&gt;As part of my business diversification towards providing training in the SOA and Open-Source marketplace, I will be trying to distill how SOA, the available tools and design standards can be applied to people that have little to no experience. An example of this is a group of QA personnel who I will be training in SOAPUI. &lt;br /&gt;&lt;br /&gt;Another group I am training is around building a SOA Application that is front-ended by FLEX and back-ended by MySQL. &lt;br /&gt;&lt;br /&gt;My current experiences is always focused on the KISS principle. Don't assume the audience is familiar with XSD, WSDL, Service-Orientation etc. &lt;br /&gt;&lt;br /&gt;To date these students are getting the examples and are helping evolve these heterogenous scenarios into potentially valuable training offerings. So I can definitely answer that SOA is not easy however if approached properly, a wide audience can participate and incorporate the core principles and technologies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-7384779418595762082?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/7384779418595762082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=7384779418595762082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7384779418595762082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7384779418595762082'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/03/how-easy-is-soa.html' title='How easy is SOA?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2041448406617535332</id><published>2009-02-03T10:28:00.001-08:00</published><updated>2009-02-03T20:41:46.352-08:00</updated><title type='text'>"SOA is Dead" Questions</title><content type='html'>Anne Thomas Manes from Burton Group recently posted an article related to the &lt;a href="http://apsblog.burtongroup.com/"&gt;Death of SOA&lt;/a&gt;. Many customers that I work with who are in the middle of SOA Projects had questions on the article. Anne's presentation on SOA Fatigue at the SOA Symposium was also a prelude to this posting. If one examines the article, you can draw the following points:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- SOA Technologies from various vendors have become obtuse, costly and difficult to implement&lt;br /&gt;- Enterprise SOA success in the marketplace is limited to a small collection of customers and is not widely seen due to the amount of effort to establish the entire Inventory.&lt;br /&gt;- Service-orientation principles are still valid and important in providing value to the customer.&lt;br /&gt;- Services should be the focus not SOA. &lt;br /&gt;&lt;br /&gt;If one is attempting to apply SOA to a domain or Enterprise, we should revisit the goals of SOA:&lt;br /&gt;&lt;br /&gt;- Intrinsic Interoperability&lt;br /&gt;- Vendor Independence&lt;br /&gt;- Increased Federation&lt;br /&gt;- Business and Technology Domain Alignment&lt;br /&gt;- Increased ROI&lt;br /&gt;- Organization Agility&lt;br /&gt;- Reduced IT Burden&lt;br /&gt;&lt;br /&gt;These goals are then supported by the following principles of service-orientation&lt;br /&gt;&lt;br /&gt;- Standardized Contract&lt;br /&gt;- Loose Coupling&lt;br /&gt;- Reusability&lt;br /&gt;- Abstraction&lt;br /&gt;- Autonomy&lt;br /&gt;- Statelessness&lt;br /&gt;- Discoverability&lt;br /&gt;- Composability&lt;br /&gt;&lt;br /&gt;The application of service-orientation helps guide business analysts and architects towards resuable, agnostic services. By following these principles, we in affect are directly supporting interoperability, vendor independence and federation. Service development also benefits from business and technology domain alignment when analyzing existing processes in an Inventory Analysis. &lt;br /&gt;&lt;br /&gt;The success of customers I work with has been on supporting a domain versus the entire Enterprise. Success of the domain efforts in several cases has caused the business side of the organization to consolidate functionality in other divisions to leverage the domain services and their demonstrated benefits. &lt;br /&gt;&lt;br /&gt;The key in Anne Thomas Manes blog is that the fundamental piece of SOA, the service, is still important. A service is logic that has applied service orientation to a meaningful extent. This in combination with SOA Design Patterns provides the architect/developer with a solid foundation for realizing the benefits. How you the develop, register, host, monitor the service can be done in a heterogeneous way with a wide range of standards, technologies and patterns.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2041448406617535332?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2041448406617535332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2041448406617535332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2041448406617535332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2041448406617535332'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/02/questions-on-soa-is-dead-discussion.html' title='&quot;SOA is Dead&quot; Questions'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3800713861104652485</id><published>2009-01-06T19:26:00.001-08:00</published><updated>2009-01-06T19:34:11.449-08:00</updated><title type='text'>SOA Design Patterns Online</title><content type='html'>In a previous post I talked about the first SOA Symposium held in Amsterdam last October. One of the book releases from Thomas Erl was SOA Design Patterns which is now available in an updated form online. Check out &lt;a href="http://www.soapatterns.org"&gt;www.soapatterns.org&lt;/a&gt;. In addition to the published patterns are candidate patterns around REST, binary data transmission and others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3800713861104652485?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3800713861104652485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3800713861104652485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3800713861104652485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3800713861104652485'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2009/01/soa-design-patterns-online.html' title='SOA Design Patterns Online'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8603792291220063017</id><published>2008-12-31T12:02:00.000-08:00</published><updated>2009-02-03T20:40:03.516-08:00</updated><title type='text'>WOA versus SOA</title><content type='html'>My discussion point in my last entry discussed how SOA is agnostic in which technology should be used to employ it. Joe McKendrick and Dion Hinchcliffe at ZDNet along with research I did for a client identified a growing interest in using REST to support SOA. ZDNet refers to it as Web Oriented Architecture, a subset of SOA. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.zdnet.com/Hinchcliffe/?p=27"&gt;Dion Hinchcliffe's discussion on WOA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some points that are referred to in these articles identify these characteristics:&lt;br /&gt;&lt;br /&gt;- HTTP(S)&lt;br /&gt;- POX&lt;br /&gt;- JSON&lt;br /&gt;&lt;br /&gt;Effectively from the runup of Web 2.0 technologies, the ever increasing amount of public APIs, and the increasing amount of mashups that are being performed, Web Resources are more available then Web Services. WOA is being identified as the necessary amount of complexity to get the job done.&lt;br /&gt;&lt;br /&gt;If we compare WOA to SOA, there are some distinct differences with one distinct one being the Service or Resource Contract. WSDL/XSD/WS-Policy are front in center for describing a Web Service. Within REST, the contract is implicit and is based on HTTP verbs and XML Schema. If developing a web service, the contract analysis, design and development effort is the main focus whereby the service foundation layer and data representation layer are identified. In WOA, the data representation layer is the focus instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8603792291220063017?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8603792291220063017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8603792291220063017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8603792291220063017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8603792291220063017'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/12/woa-versus-soa.html' title='WOA versus SOA'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4397055982288817723</id><published>2008-11-21T07:16:00.000-08:00</published><updated>2008-11-21T07:44:13.233-08:00</updated><title type='text'>Web Services != SOA</title><content type='html'>During a recent trip to a company technical summit a discussion came about related to how SOA is just Web Services. As a SOA Trainer, Architect and Implementer I live and breath it every day. Most peoples perspectives probably fall in this category and currently most of the SOA implementations that I have worked with have used Web Services. The key is that Web Services is just an implementation technology not a SOA. &lt;br /&gt;&lt;br /&gt;Books from Thomas Erl, Intel Press and others have identified that SOA is a design paradigm that focuses on a series of principles that tie back into key business goals and benefits. Examples of these are presented at &lt;a href="http://www.soasystems.com"&gt;SOA Systems &lt;/a&gt; but include:&lt;br /&gt;&lt;br /&gt;- Interoperability&lt;br /&gt;- Federation&lt;br /&gt;- Cooperative Development between Business Analysts and Technical Architects&lt;br /&gt;- Vendor/Technology Choice&lt;br /&gt;- ROI&lt;br /&gt;- Reduced IT Effort&lt;br /&gt;- Business Agility&lt;br /&gt;&lt;br /&gt;Now a SOA could be constructed using CORBA, Java, SCA/SDO, Web Services, REST etc. The implementation mechanism that one chooses should support interoperability, federation etc. Currently XML Based technologies provide the best interoperability both in communication/exchange but in vendor support, standards, tooling but this may change over time and probably will. &lt;br /&gt;&lt;br /&gt;So if a person asks me what SOA is, I simple identify it as a design paradigm for developing and evolutionary distributed architecture. It has its basis in OO, AOP, EAI, BPM and other styles. It is like the Bruce Lee of architectures having evolved from various fighting styles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4397055982288817723?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4397055982288817723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4397055982288817723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4397055982288817723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4397055982288817723'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/11/web-services-soa.html' title='Web Services != SOA'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-7016902271824902755</id><published>2008-10-10T14:01:00.000-07:00</published><updated>2008-10-10T14:09:24.883-07:00</updated><title type='text'>SOA Design Patterns</title><content type='html'>As part of the SOA Symposium I was excited to watch the release of the latest Prentice Hall title, SOA Design Patterns by Thomas Erl. This is a large effort and I was fortunate to be asked by Thomas to participate in a contributing author capacity. Over 80+ patterns are outlined and include many of the speakers at the SOA Symposium. It is good to see such cooperation and the development of more independent material for the international audience. Some of the patterns are available at www.soapatterns.org which will be updated to match the book as well as candidate design patterns. &lt;br /&gt;&lt;br /&gt;Another title that I am very interested in reviewing is also another Prentice Hall title, Web Service Contract Design &amp; Versioning for SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-7016902271824902755?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/7016902271824902755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=7016902271824902755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7016902271824902755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7016902271824902755'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/10/soa-design-patterns.html' title='SOA Design Patterns'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4733065248667487383</id><published>2008-10-10T13:50:00.000-07:00</published><updated>2008-10-10T14:00:32.743-07:00</updated><title type='text'>SOA Symposium 1.0</title><content type='html'>Well it has been quite awhile since I have posted but now that I have a few minutes I figure I would discuss my experience at SOA Symposium 1.0 in Netherlands, Amsterdam. I am working for SOA Systems delivering SOA training this week and was fortunate to speak at three sessions and participate in a panel discussion with my peers. I was very impressed with the quality of sessions and speakers that were able to take time out and share their thoughts on the future of SOA. Check out www.soasymposium.com and look for publicly available content sometime in the future.&lt;br /&gt;&lt;br /&gt;There was a lot of discussion on how SOA Governance is becoming more important along with more efficient platforms and alternative consumers. One common thread in my discussion with attendees was how important the people quotient is in creating a successful SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4733065248667487383?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4733065248667487383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4733065248667487383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4733065248667487383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4733065248667487383'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/10/soa-symposium-10.html' title='SOA Symposium 1.0'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2409146817522874123</id><published>2008-08-08T18:55:00.000-07:00</published><updated>2008-08-08T19:06:45.203-07:00</updated><title type='text'>Cape Clear ESB (Workday) Assemblies Context Options</title><content type='html'>One client I am assisting is the Cape Clear ESB and it Assembly functionality. This provides mediation support via a Spring Bean configuration file which is generated via graphical drag/drop tools. Because the Assembly Service is stateless and the project we were working on required some context sharing, we had to open up the covers and learn about org.springframework.context.ApplicationContext and org.springframework.beans.factory.InitializingBean. A single bean with a scope of singleton was developed to provide context for all instances of the assembly and when the assembly was loaded this information was initialized as part  of the afterPropertiesSet() method.&lt;br /&gt;&lt;br /&gt;Within each instance of the assembly, Cape Clear provides another context called com.capeclear.mediation.MediationContext which provides a setProperty() and getProperty() method. This provides simple storage of variables within an instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2409146817522874123?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2409146817522874123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2409146817522874123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2409146817522874123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2409146817522874123'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/08/cape-clear-esb-workday-assemblies.html' title='Cape Clear ESB (Workday) Assemblies Context Options'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4101824909767460180</id><published>2008-08-08T18:45:00.001-07:00</published><updated>2008-08-08T18:50:12.870-07:00</updated><title type='text'>XACML: An option for authorization</title><content type='html'>I am currently taking the next step in security development learning about XACML from www.oasis-open.org. In the scenario that I am working on with the client, there Identity Management Solution will be acting as the Policy Authoring Point whereas the ESB that we have deployed will act as a Policy Enforcement Point and Policy Decision Point. Due to the fact that we have a clustered ESB a decision that we are mulling over is whether to have a central/shared directory for XACML Policies or use the support for XACML Request/Responses to do it real time. Our concern is the latency especially in a high volume environment and we are currently steering towards a shared directory. This will allow each ESB to take a portion of the load and keep the processing local. &lt;br /&gt;&lt;br /&gt;As part of a SOA Solution we will be using Service Agents or Intermediaries to support the authentication (SAML) and authorization (XACML). The ESB provides out of the box interceptors for both of these and only requires that the Service Consumer be able to interact with the SAML Provider.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4101824909767460180?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4101824909767460180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4101824909767460180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4101824909767460180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4101824909767460180'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/08/xacml-option-for-authorization.html' title='XACML: An option for authorization'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1064438380763383166</id><published>2008-06-18T22:24:00.000-07:00</published><updated>2008-06-18T22:37:18.426-07:00</updated><title type='text'>SAML</title><content type='html'>Well it's been awhile since my last post but work and life have been quite hectic. Currently I have a client that is attempting to integrate a Identity Management/Policy Decision application with their ESB. As part of this effort examination of the many options has presented itself and we have agreed to examine the Security Assertion Markup Language as a potential solution. The overall use case is to have internal/external clients use an SSO approach towards invoking available services.&lt;br /&gt;&lt;br /&gt;To demonstrate this capability a SAML Assertion will be inserted into the SOAP Header of a request. The deployed Web Service in the ESB will include Message Processing Logic in the form of an interceptor. The interceptor will examine the SOAP Header and SAML Assertion. At this time, it will be absent of a Digital Signature which adds an additional layer of integrity for the Assertion. The other challenge is the use of SAML 1.0 versus the current supported version of 2.0. Fortunately, the PDP has support for SAML 1.0 eliminating the immediate need to custom code 2.0 support. &lt;br /&gt;&lt;br /&gt;For a sample SAML Assertion, check out the Sun Web Site at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.sun.com/app/docs/doc/819-2142/6n4evuvvk?a=view"&gt;Sun Sample&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and OASIS which manages the specification. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oasis-open.org"&gt;OASIS Site&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1064438380763383166?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1064438380763383166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1064438380763383166' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1064438380763383166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1064438380763383166'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/06/saml.html' title='SAML'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4389029465928617201</id><published>2008-04-22T19:59:00.000-07:00</published><updated>2008-04-22T20:44:28.469-07:00</updated><title type='text'>Service Scalability</title><content type='html'>Over the past few weeks I have spoken with several customers who are implementing SOA in various stages and have decided to employ Web Services as the foundation. One of the key concerns is scalability and the ability to handle large volume for public / private services. An approach that evolved from these discussions was the following:&lt;br /&gt;&lt;br /&gt;- For new services, specify governance in the Service Analysis / Modeling phase. This should specify the SLA for the Service and help identify the potential reuse and usage pattern that may be experienced.&lt;br /&gt; &lt;br /&gt;- Services typically begin with a single instance using protocols such as HTTP&lt;br /&gt;&lt;br /&gt;- Service scalability should be tested via Performance tools to determine how it degrades with load, supportable performance etc.&lt;br /&gt;&lt;br /&gt;- Services should be monitored using JMX or similar API to determine runtime usage and usage patterns. &lt;br /&gt;&lt;br /&gt;- Make services stateless so that they can be easily clustered.&lt;br /&gt;&lt;br /&gt;- If service usage is higher than anticipated, consider configuring a cluster of service instances and use Hardware or Software load balancing. &lt;br /&gt;&lt;br /&gt;- If throttling is desired, have service instances read requests from a JMS Queue as this places an abstraction between the service consumer / service provider. Queues allow for asynchronous communication and persistence point for inbound requests. Services can then throttle how quickly requests are processed without losing messages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4389029465928617201?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4389029465928617201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4389029465928617201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4389029465928617201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4389029465928617201'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/04/service-scalability.html' title='Service Scalability'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1302751749428280959</id><published>2008-04-04T00:38:00.000-07:00</published><updated>2008-04-04T01:02:31.741-07:00</updated><title type='text'>Deployment / Test of simple BPEL Process in Apache ODE</title><content type='html'>In my previous post I spoke of the configuration / startup of Apache ODE. This morning I deployed one of the examples and tested it using the provided sendsoap.sh utility and SOAPUI. A couple of things were necessary to do this:&lt;br /&gt;&lt;br /&gt;1) New processes are stored in a folder with the process name and include:&lt;br /&gt;     - BPEL File&lt;br /&gt;     - WSDL(s) File&lt;br /&gt;     - deploy.xml (deployment descriptor)&lt;br /&gt;     - other necessary files&lt;br /&gt;2) The folder is stored under the &lt;tomcat/webapps/ode/WEB-INF/processes&gt; directory.&lt;br /&gt;3) On startup the server will load the processes and report on it within the server log file as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_udzPjBm3v4E/R_XctPllPFI/AAAAAAAAAA0/0n4UPAKdVhE/s1600-h/Picture+5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_udzPjBm3v4E/R_XctPllPFI/AAAAAAAAAA0/0n4UPAKdVhE/s320/Picture+5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5185293215823379538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4) The Apache ODE User Guide then describes a way to test services using a script called sendsoap.sh under the Apache ODE Distribution bin directory. To get this to run I needed to open up permissions using chmod. One this was complete the syntax for executing this is:&lt;br /&gt;&lt;br /&gt;/bin/sendsoap.sh (URL to the web service) (SOAP file sample)&lt;br /&gt;&lt;br /&gt;or in the case of what is provided in the distro:&lt;br /&gt;&lt;br /&gt;/bin/sendsoap.sh http://localhost:8080/ode/processes/helloWorld examples/HelloWorld2/testRequest.soap&lt;br /&gt;&lt;br /&gt;When executed the following is returned in the client window:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_udzPjBm3v4E/R_XdyPllPGI/AAAAAAAAAA8/ds-sf6hHDH0/s1600-h/Picture+6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_udzPjBm3v4E/R_XdyPllPGI/AAAAAAAAAA8/ds-sf6hHDH0/s320/Picture+6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5185294401234353250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The tomcat/catalina server window shows the following:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_udzPjBm3v4E/R_XeLfllPHI/AAAAAAAAABE/P9zBzWBNQx4/s1600-h/Picture+7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_udzPjBm3v4E/R_XeLfllPHI/AAAAAAAAABE/P9zBzWBNQx4/s320/Picture+7.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5185294835026050162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5) Testing in SOAPUI, the following was executed and the results are shown in the following image:&lt;br /&gt;       - Created new project in SOAPUI&lt;br /&gt;       - Selected WSDL&lt;br /&gt;       - Generated a message&lt;br /&gt;       - Invoked Service&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_udzPjBm3v4E/R_XfdfllPII/AAAAAAAAABM/E2QOvmArLv8/s1600-h/Picture+8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_udzPjBm3v4E/R_XfdfllPII/AAAAAAAAABM/E2QOvmArLv8/s320/Picture+8.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5185296243775323266" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1302751749428280959?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1302751749428280959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1302751749428280959' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1302751749428280959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1302751749428280959'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/04/deployment-quick-test-details-for.html' title='Deployment / Test of simple BPEL Process in Apache ODE'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_udzPjBm3v4E/R_XctPllPFI/AAAAAAAAAA0/0n4UPAKdVhE/s72-c/Picture+5.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3529049884240582152</id><published>2008-04-02T20:52:00.000-07:00</published><updated>2008-04-02T21:08:01.493-07:00</updated><title type='text'>Setting up Apache ODE within Tomcat / Axis2</title><content type='html'>So it has been a busy week and I have had little time to work on the Open Source BPEL investigation. I have decided for simplicty sake that I start with Apache Axis2 versus Apache ServiceMix. This will allow me to quickly fire in SOAP requests and not have to become familiar with the ServiceMix infrastructure. I will tackle this next and apply what is learned here to that.&lt;br /&gt;&lt;br /&gt;So here are the steps that I followed to get Apache ODE installed within Axis2. I made the mistake of initially downloading the Axis2 binary distro versus Tomcat. The Apache ODE instructions work with Tomcat/Axis but not Axis2 standalone. &lt;br /&gt;&lt;br /&gt;1) Download Apache Tomcat 6.0.16&lt;br /&gt;2) Download Apache Axis2 1.3 WAR distribution&lt;br /&gt;3) Download Apache ODE 1.1.1 WAR distribution&lt;br /&gt;4) Copy axis2.war to tomcat/webapps&lt;br /&gt;5) Copy ode.war to tomcat/webapps&lt;br /&gt;6) Set JAVA_HOME&lt;br /&gt;7) Run Tomcat using tomcat/bin/catalina.sh run&lt;br /&gt;&lt;br /&gt;The console then shows the following on startup:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_udzPjBm3v4E/R_RVkvllPDI/AAAAAAAAAAk/ogBecAtz98E/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_udzPjBm3v4E/R_RVkvllPDI/AAAAAAAAAAk/ogBecAtz98E/s320/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5184863160748031026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Success!&lt;br /&gt;&lt;br /&gt;I then accessed the Axis2 Console and could see the Apache ODE Services by going to http://localhost:8080/ode.   &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_udzPjBm3v4E/R_RXtfllPEI/AAAAAAAAAAs/-Oj1NNIOr6g/s1600-h/Picture+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_udzPjBm3v4E/R_RXtfllPEI/AAAAAAAAAAs/-Oj1NNIOr6g/s320/Picture+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5184865510095141954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next will be deployment of a BPEL sample into Apache ODE and invoking using SOAPUI. &lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3529049884240582152?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3529049884240582152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3529049884240582152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3529049884240582152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3529049884240582152'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/04/setting-up-apache-ode-within-tomcat.html' title='Setting up Apache ODE within Tomcat / Axis2'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_udzPjBm3v4E/R_RVkvllPDI/AAAAAAAAAAk/ogBecAtz98E/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5522667727227185874</id><published>2008-03-26T11:10:00.000-07:00</published><updated>2008-03-26T12:24:03.695-07:00</updated><title type='text'>Eclipse BPEL Project</title><content type='html'>Just wanted to give a rundown of the Eclipse (Europa) BPEL Project and my impressions at the moment. The eclipse bpel project is located at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/bpel/ "&gt;Eclipse BPEL Project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Having experienced most of my BPEL development in either TextPad (BPEL 1.0) or in the Cape Clear Studio solution (BPEL 1.1), the Eclipse BPEL Project was not too difficult to slide into. Here are the highlights:&lt;br /&gt;&lt;br /&gt;- BPEL Project is only focused on BPEL 2.0. No BPEL 1.1 at this time.&lt;br /&gt;- Overall GUI is nicely organized and employs a very similar look and feel to the BPEL Editor in Cape Clear.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_udzPjBm3v4E/R-qT8vllPBI/AAAAAAAAAAU/e9I69znld7I/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_udzPjBm3v4E/R-qT8vllPBI/AAAAAAAAAAU/e9I69znld7I/s320/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5182116993018706962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-Assignment Editor in the current release M3, does not provide a graphical drill down to the schema element level. You can select your messages but no further.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_udzPjBm3v4E/R-qUdvllPCI/AAAAAAAAAAc/JBuNJ_akW_Q/s1600-h/Picture+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_udzPjBm3v4E/R-qUdvllPCI/AAAAAAAAAAc/JBuNJ_akW_Q/s320/Picture+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5182117559954390050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-Activities are easily selected and placed in the panel. The Properties window needs to be visible to then edit those value.&lt;br /&gt;-No tab to edit the BPEL directly with context sensitive help. I opened the BPEL in an XML Editor and flipped between the windows.&lt;br /&gt;-XPath is done manually rather than created via the selection tool.&lt;br /&gt;-PartnerLink defintion process is not as easy as in Cape Clear but it does generate an artifact WSDL file that includes the partnerlink definition so you do not need to muck up your WSDLs with the elements.&lt;br /&gt;&lt;br /&gt;Issues that I have experienced:&lt;br /&gt;&lt;br /&gt;1) Currently the Web Service Tools that is bundled with the BPEL Project appears to have a bug with imported schema. This is obviously unrelated to the BPEL Project but the full-lifecycle of developing the Service Contract and using this for the BPEL is not working properly. Currently have to use inline schema instead of importing. &lt;br /&gt;&lt;br /&gt;What I haven't tried:&lt;br /&gt;&lt;br /&gt;1) Deploying generated BPEL 2.0 into a container. Will try Apache ODE in either Axis or ServiceMix to confirm execution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5522667727227185874?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5522667727227185874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5522667727227185874' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5522667727227185874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5522667727227185874'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/03/eclipse-bpel-project.html' title='Eclipse BPEL Project'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_udzPjBm3v4E/R-qT8vllPBI/AAAAAAAAAAU/e9I69znld7I/s72-c/Picture+1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-846186228213641680</id><published>2008-03-18T22:13:00.000-07:00</published><updated>2008-03-18T22:28:05.204-07:00</updated><title type='text'>SOAPUI Benefits</title><content type='html'>As part of the previously mentioned Continuous Integration effort I am undergoing, an effective/simple approach to Unit Testing needs to be identified. JUnit works well when performing assertions on Java. When testing Web Services, I decided to look for alternatives. One alternative is to use XMLUnit as I described in an earlier post. In order to test for the current client, a different approach was in order. Their current QA Staff are not familiar with Web Services so a Web Services centric Testing tool is an additional requirement. SOAPUI available at www.soapui.org provides a very simple and capable Test environment. GUI, command line and JUnit integration are provided in the freely available version. &lt;br /&gt;&lt;br /&gt;So currently my Continuous Integration looks like:&lt;br /&gt;&lt;br /&gt;- CruiseControl invoking Ant Script&lt;br /&gt;- Ant Script invoking:&lt;br /&gt;      - Build / Validation Process&lt;br /&gt;      - Deploy Utility&lt;br /&gt;      - Junit TestCase&lt;br /&gt;            - SOAPUI Project&lt;br /&gt;&lt;br /&gt;More to come....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-846186228213641680?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/846186228213641680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=846186228213641680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/846186228213641680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/846186228213641680'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/03/soapui-benefits.html' title='SOAPUI Benefits'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-7663090968091934057</id><published>2008-03-06T22:37:00.000-08:00</published><updated>2008-03-06T22:42:56.594-08:00</updated><title type='text'>OSS to the rescue for BPEL/ESB</title><content type='html'>Several of my customers are small independent start-ups that are heavily involved with OSS. Just recently a Web Service integration highlighted the amount of Java code necessary to broker interactions with external partners. The decision was made to examine the OSS marketplace for an ESB and BPEL development tools. &lt;br /&gt;&lt;br /&gt;I will be examining the BPEL Project from Eclipse, Apache ODE and Apache ServiceMix. I was very suprised at the quality of Apache CXF and its inclusion in the ServiceMix container was one of the factors in proceeding with this evaluation. &lt;br /&gt;&lt;br /&gt;The goal of the evaluation is to show the ability to compose a task service that will create users in two separate services (Apache CXF and Microsoft .Net). In addition, some of the mediation facilities will be examined for simplicity and flexibility. &lt;br /&gt;&lt;br /&gt;Does anyone have thoughts on ServiceMix? &lt;br /&gt;&lt;br /&gt;I may also attend a session at Sun related to their ESB/WS Tools next week. If I attend I will post my thoughts and how it rates with the niche Cape Clear solution and Apache solutons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-7663090968091934057?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/7663090968091934057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=7663090968091934057' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7663090968091934057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7663090968091934057'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/03/oss-to-rescue-for-bpelesb.html' title='OSS to the rescue for BPEL/ESB'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5761992244767428137</id><published>2008-03-06T22:20:00.000-08:00</published><updated>2008-03-06T22:36:11.321-08:00</updated><title type='text'>Continuous Builds with Web Services</title><content type='html'>In two of my current projects, I am working with clients that are moving to continuous builds from complete manual processes. What is a continuous build you may ask? Well anytime a change in the source code repository occurs, a build could be triggered and deployed to a development server. As part of the build process a suite of Unit Tests could be executed to confirm there is no regression in capabilities. Companies like Cape Clear employ this process to develop daily builds which are much improved in quality over the previous semi-automated processes.&lt;br /&gt; &lt;br /&gt;The ingredients to this always falls into the same basic technologies and like most people OSS provides the answers:&lt;br /&gt;&lt;br /&gt;- CruiseControl for the continuous build management&lt;br /&gt;- Apache Ant for the build scripts&lt;br /&gt;- JUnit for Unit Testing&lt;br /&gt;- Some sort of Version Control Repository like SVN or SCM&lt;br /&gt;- Web Service Container / ESB (Cape Clear or the like)&lt;br /&gt;&lt;br /&gt;So is it difficult? Well I was suprised to see how quickly CruiseControl could be downloaded, started and configured through two configuration files (config.xml and build-&lt;projectname&gt;.xml). In just a couple of hours the software was downloaded and a build was completed. &lt;br /&gt;&lt;br /&gt;The necessary components to execute the build are the configurations described above but also the main build.xml that in the case of Cape Clear, invoked the Eclipse Buckminster Framework. This effectively creates a headless Eclipse Workspace and allows the ant script to run the validators, package the content, deploy it and test it. Since the Web Service/BPEL developer is not writing a compiled language, the validators are the key component in the build process. &lt;br /&gt;&lt;br /&gt;Other things that I need to complete revolve around the rewriting of URLs or namespaces depending on which environment the build is being created for. Ant provides a soluton there via the replace feature which allows for the search/replace of tokens. This functionality is extremely helpful in complex BPEL where many partner services equates to many WSDL/endpoints. The other feature not complete is the execution of a JUnit test case using the Buckminster/Cape Clear launch feature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5761992244767428137?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5761992244767428137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5761992244767428137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5761992244767428137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5761992244767428137'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/03/continuous-builds-with-web-services.html' title='Continuous Builds with Web Services'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5266918987246557566</id><published>2008-02-21T16:34:00.000-08:00</published><updated>2008-02-21T17:09:59.401-08:00</updated><title type='text'>Event Driven versus Orchestration</title><content type='html'>I had an interesting conversation the other day at a client who was very interested in an event driven approach towards integration versus the traditional centralized orchestration model. The discussion identified that within the event driven model, the state of the process would be maintained in the message versus in the singular centralized orchestration (BPEL). Both solutions have their strengths and drawbacks. One of the big drawbacks that was discussed was in monitoring/management. Operations likes to have a centralized, process oriented depiction of what is occurring. The event model we discussed would spread out the process across a wide range of intermediaries and the message would be updated along the way. Not an ideal situation if viewing from this perspective. Whereas, the BPEL Service provides a more centralized view/approach.&lt;br /&gt;&lt;br /&gt;An option for Event Driven would be to utilize an auditing interceptor that would provide a centralized view/update of the process execution. Operations could then monitor this service to get the depiction they preferred.&lt;br /&gt;&lt;br /&gt;A strength of the BPEL approach was in the composing of task services or business processes. An event approach everyone thought would not be as easy to compose, however the scalability/performance benefits is very intriguing. This discussion will continue and hopefully draw out distinct patterns on when one approach is better than another.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5266918987246557566?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5266918987246557566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5266918987246557566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5266918987246557566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5266918987246557566'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/02/event-driven-versus-orchestration.html' title='Event Driven versus Orchestration'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3747759611937620276</id><published>2008-02-21T15:52:00.000-08:00</published><updated>2008-02-21T16:34:26.551-08:00</updated><title type='text'>Cape Clear and the bigger picture</title><content type='html'>Well over a week ago Cape Clear was consumed by the SAAS marketplace. When I first heard the news I scratched my head but as SAAS gains steam, the need to share data via automation becomes more important. The increasing communication of data outside organizations has not decreased but only increased making simplified integration an imperative. Currently I am working with a several clients that are sharing data with business partners to provide a more complete solution. REST and SOAP interfaces are the standard and from experience are easier then the RosettaNet and EDI standards of the past. These standards spent a lot of time identifying a domain, event model, protocol etc that provided an out of the box roadmap for B2B. &lt;br /&gt;&lt;br /&gt;These days the protocol and policy's are standardized however the event model and domain are custom to each. Most of the customers I am doing work for are implementing simple B2B models that share core data and simple event models. This is currently comprised of a WSDL on each end with customers invoking each others interface. &lt;br /&gt;&lt;br /&gt;How does this tie into SAAS? Well if you are familiar with the first evolution such as Salesforce.com, there was a backlash from large organizations around storing their data offsite with poor APIs to extract and manipulate the data. After several iterations, Salesforce.com has improved their APIs and you see the second generation like Google, Workday and others providing compelling solutions for GIS, ERP etc. These services have taken off not only in small niche like applications but in the Fortune 1000 and Local/State/Federal Government.&lt;br /&gt;&lt;br /&gt;What SAAS has exposed is the need for integration never decreases, it just sort of shifts from internal to external or if you look from a SOA perspective, the interoperability is baked in from the start.&lt;br /&gt;&lt;br /&gt;The acquisition of Cape Clear is testament to this fact and identifies the need to use standards to simplify adoption.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3747759611937620276?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3747759611937620276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3747759611937620276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3747759611937620276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3747759611937620276'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/02/cape-clear-and-bigger-picture.html' title='Cape Clear and the bigger picture'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5127025526868995453</id><published>2008-02-03T22:05:00.001-08:00</published><updated>2008-02-03T22:18:03.116-08:00</updated><title type='text'>BPEL Caching / Persistence</title><content type='html'>I recently attended a vendors presentation on some caching technology whereby Java Objects could be stored in an in-memory DB or caching layer. The architecture appeared to be quite sound in that it utilized a peer to peer network to manage copies of the information for reliability purposes. The demonstration sparked my interest in its application to stateful BPEL as persisting to a database is a costly exercise when executing large amount of transactions. Prior to / Following this I read subsequent articles at www.soamagazine.com which discussed BPEL Reliabilty using such a concept. A reliable in-memory grid caching store was discussed:&lt;br /&gt;&lt;br /&gt;The original article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.soamag.com/I10/0907-1.asp"&gt;Article 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A current article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.soamag.com/I14/0108-1.asp"&gt;Article 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Application of technologies such as these will provide dramatic impacts to stateful BPEL Services that are more and more being utilized for Service Composition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5127025526868995453?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5127025526868995453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5127025526868995453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5127025526868995453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5127025526868995453'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/02/bpel-caching-persistence.html' title='BPEL Caching / Persistence'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2132110444224474569</id><published>2008-02-03T21:47:00.000-08:00</published><updated>2008-02-03T22:01:59.547-08:00</updated><title type='text'>Apache CXF and SOAP Headers</title><content type='html'>Here is a link that helped me with the Apache CXF client capabilities. The requirement was to send a request to a web service which required a SOAP Header expressing authentication information. The WSDL for the Web Service did not express the request in the abstract portion but rather in the binding/concrete portion of the WSDL. Apache CXF generated a class to support the setting of the Authentication Header but no methods to  add it to the request. Using Google and a decent portion of scanning/reading, I found that Apache CXF will not generate the appropriate methods to attach a SOAP Header. Java Annotations provided the answer as described at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tapestryofthoughts.blogspot.com/2006/09/first-encounter-with-jax-ws.html"&gt;tapestryofthoughts.blogspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By adding an annotation @WebParam along with the header=true flag and other appropriate values in the generated &lt;####&gt;SOAP.java as well as instantiating the Authentication Header via the generated class inside the &lt;####&gt;SOAP_Client.java, the client was sending a SOAP Header to the destination service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2132110444224474569?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2132110444224474569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2132110444224474569' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2132110444224474569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2132110444224474569'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/02/apache-cxf-and-soap-headers.html' title='Apache CXF and SOAP Headers'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5641662977095918088</id><published>2008-01-14T14:55:00.001-08:00</published><updated>2008-01-14T22:14:52.565-08:00</updated><title type='text'>Versioning Part 2</title><content type='html'>In my readings, I found the topic of versioning discussed in Thomas Erl's SOA Principals of Service Design. I wanted to provide a brief mention of Thomas Erl's vantage as it provides another view of the topic.&lt;br /&gt;&lt;br /&gt;As I mentioned in the previous post, changes to the WSDL definition causes service consumers to break. Thomas' take on this is for core entity services and their associated contract to remain constant. Extension to those services can be performed which will not affect the service consumer. For Services that need to be dynamic and cannot be developed with longevity in mind, then SOA Governance is applied to manage versioning of services. &lt;br /&gt;&lt;br /&gt;SOA Governance solutions that I have heard marketed in the past provided XML Routing solutions which would inspect requests and then use a lookup mechanism to route to the eventual destination. In this case, multiple versions of a service could exist and it would be up to the Governance solution to manage the Addressing aspects.&lt;br /&gt;&lt;br /&gt;Another perspective of Service Versioning is James Pasley of Cape Clear and his examination of the current environment. His description of versioning best practices is available at:&lt;br /&gt;&lt;br /&gt;http://developer.capeclear.com/versioning&lt;br /&gt;&lt;br /&gt;and discusses the options for deploying various service versions concurrently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5641662977095918088?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5641662977095918088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5641662977095918088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5641662977095918088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5641662977095918088'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2008/01/versioning-part-2.html' title='Versioning Part 2'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-6654415399621419159</id><published>2007-12-19T21:27:00.000-08:00</published><updated>2007-12-19T21:48:40.604-08:00</updated><title type='text'>Service Versioning and Schema Evolution</title><content type='html'>This is a topic that comes up quite often when talking to clients. Based on some of the successful implementations that I have been lucky to be involved in, the one demoninator is how important XML Schema is in that success. In addition the existence of a Schema Custodian (Thomas Erl term) or a individual who guards the Schema with his/her life. The more difficult a Schema is to change, the more likely that it will succeed in an enterprise SOA. Sounds kind of strange but the foundational aspect of XML Schema in its use in WSDL, BPEL, XSLT, XPath/XQuery, auto-generated skeletons/stubs.... means that minor changes could seriously impact a deployment. &lt;br /&gt;&lt;br /&gt;One of the clients I work with has successfully employed a XML Schema definition for 3+ years now. The schemas have been allowed to evolve via the use of optional elements but those evolutions have been through a small group of Schema Owners and it is not modifyable via the developer community. Because of the inherent difficulty in changing the schema, it has prevented Schema creep and the potential interoperability damage quick changes could cause. The benefit of this has been interoperability across a wide range of technologies starting with four different app containers and two different JMS providers. &lt;br /&gt;&lt;br /&gt;One other area of discussion is on versioning of Schemas/Services. One approach that I have seen is the use of the namespace and ESB technology to route based on unique namespaces. Namespace versioning can be something like:&lt;br /&gt;&lt;br /&gt;http://www.mycompany.com/2007/12/ProvisioningService&lt;br /&gt;&lt;br /&gt;This service would then have been developed in December 2007. People are familiar with this approach with some of the WS-* standards like WS-RM. The good part of this is that for me to invoke a service using this as the target namespace, requires that my SOAP Request call it out. The bad news is that changing this will break any clients that were developed against it. A quick solution is to support several services if the namespace changes by infrastructure like an ESB and XPath Routing. A simple XPath statement focusing on the SOAP Envelope could route this request to the correct destination. There are several other versioning solutions, check out developer.capeclear.com for a whitepaper on Service Versioning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-6654415399621419159?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/6654415399621419159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=6654415399621419159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6654415399621419159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/6654415399621419159'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/12/service-versioning-and-schema-evolution.html' title='Service Versioning and Schema Evolution'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3366189554719100581</id><published>2007-12-19T21:13:00.000-08:00</published><updated>2007-12-19T21:26:15.204-08:00</updated><title type='text'>Fine Grained vs Coarse Grained BPEL</title><content type='html'>At a customer this past week, the team was examining the WSDL that had been defined for a new project. The WSDL was broken into three definitions but was going to provide aggregation capabilities for a single consumer. Since the consumer portion was already under development, there was a strong desire to limit the number of changes made to the interfaces. The first discussion was whether to use the several interfaces as separate services or to boil them down into one interface. If this was done, do we just map the current operations onto the WSDL interface or do we replace them. The current services were pretty fine grained providing specific capabilities for search. The results returned were represented as different elements with no consistency. Two options were then explored:&lt;br /&gt;&lt;br /&gt;1) Create a single WSDL that had N number of operations matching the current operations  that were currently spread across several WSDL. &lt;br /&gt;&lt;br /&gt;2) Blow up the WSDLs and start from scratch creating a coarse grained interface that provided a single search operation. For the Web Service implementation, it would need to examine the query data to determine which type of search was being requested or a new element with an enumeration of search types could be added. &lt;br /&gt;&lt;br /&gt;In both cases, revisiting the schema and collapsing the numerous elements that existed previously into a query input and search result was agreed upon. &lt;br /&gt;&lt;br /&gt;To demonstrate the impact of solution 1 or 2, we then turned to BPEL and developed the service implementation as a BPEL Service. Why BPEL, well this service was meant to aggregate data from various sources depending on the input. &lt;br /&gt;&lt;br /&gt;If we examine solution 1, the WSDL would have 8 operations. One option to support this was the use of a the Pick Activity and OnMessage Activity. One OnMessage per operation could be employed creating processing pipe creating an Event Driven design. &lt;br /&gt;&lt;br /&gt;If we examine solution 2, the WSDL would have a single operation and thus would support a more traditional Receive/Reply Activity.&lt;br /&gt;&lt;br /&gt;So in essence, the use of a Fine Grained WSDL impacted/reduced the options for BPEL development, whereas Coarse Grained WSDL did not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3366189554719100581?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3366189554719100581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3366189554719100581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3366189554719100581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3366189554719100581'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/12/fine-grained-vs-coarse-grained-bpel.html' title='Fine Grained vs Coarse Grained BPEL'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4400049106855859916</id><published>2007-12-10T13:16:00.000-08:00</published><updated>2007-12-10T13:26:30.523-08:00</updated><title type='text'>Simplification via the Service Interface</title><content type='html'>I was recently working with a client who had developed a solid demonstration vehicle showing many moving parts. As I was working with them, we identified that the service interfaces were developed with varying degrees of granularity. The data granularity for some of the interfaces was fine grained expecting small sets of data whereas other expected a full document or were coarse grained. &lt;br /&gt;&lt;br /&gt;To simplify the demonstration and complete the round-tripping exercise they were shooting for, we standardized the WSDL definitions to use the same Schema and to push the entire document across the wire between the services. In essence we standardized on a coarse definition. This then untethered the controller service they had defined in BPEL to just copy the top level element between services. &lt;br /&gt;&lt;br /&gt;As changes occurred in the demo, the refactoring demonstrated that maintenance or updates were much simpler or non-existent. &lt;br /&gt;&lt;br /&gt;From a business perspective using the business documents in the interfaces provides a SOA centric approach towards development. This approach doesn't always make sense as with very large documents, there may technology or complexity reasons to limit the use of such an approach. In those cases fine grained access make sense albeit with more work on the orchestration side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4400049106855859916?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4400049106855859916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4400049106855859916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4400049106855859916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4400049106855859916'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/12/simplification-via-service-interface.html' title='Simplification via the Service Interface'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-5905575891865874145</id><published>2007-12-10T13:05:00.000-08:00</published><updated>2007-12-10T13:16:12.947-08:00</updated><title type='text'>Thomas Erl SOA Training</title><content type='html'>Last week I was able to participate in training provided by Thomas Erl and his SOA Systems consulting organization. Being a fan of his books and how they crystallize the SOA concepts and associate them to the Web Services Standards, I was very excited to participate. Unfortunately I was only able to partake in 2 of the 4 days. These days focused on the SOA Methodology he has been working on namely SOA Modeling, SOA Analysis and the beginnings of SOA Design.&lt;br /&gt;&lt;br /&gt;Through his various books such as SOA Principles of Service Design and Service-Oriented Architecture a process of examining a current business process was defined. During the process, services are logically grouped into task, entity and utility. Each of these denotes a certain level of capability or interaction. The Modeling/Analysis phases help identify which bucket they belong in and confirm they follow his 8 SOA Principals such as Autonomy, Stateleness etc.&lt;br /&gt;&lt;br /&gt;What did I get out of the session? Simply put a methodology that allowed the team I was working with to break a current process into its core services and model the message exchanges that would occur if implemented. This was done at a high level but demonstrated a simple approach that allowed both developers and a business analyst to communicate effectively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-5905575891865874145?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/5905575891865874145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=5905575891865874145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5905575891865874145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/5905575891865874145'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/12/thomas-erl-soa-training.html' title='Thomas Erl SOA Training'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4025324762025728675</id><published>2007-11-07T13:16:00.000-08:00</published><updated>2007-12-06T20:15:03.470-08:00</updated><title type='text'>Operations is my customer</title><content type='html'>So I got a chance to partake in a Franklin Covey Leadership Training exercise several weeks ago. I was not sure what I would take out of the training and whether it would be beneficial. I was extremely impressed by its content, focus and most importantly the instructor. Long story short the class tried to identify what is a leader and how to become an effective one. As part of the sessions a discussion around identifying your customer came up. For the current customer I am working for, it is a little interesting in that with middleware there are many customers. Specifically though once in production, operations becomes a major customer. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I learned is that to make an effective middleware platform, quality comes in the flavors of Reliability, Scalability, Manageability. When these quality attributes skip a beat or fail to occur,  Operations has to swoop into action. The benefit of the training underscored the need for me to develop simpler and more capable tools to handle customer issues. Additionally, the increasing complexity of our SOA has begun to exacerbate the monitoring and management once in production. Log4J logs, JMX and Management Services become the virtual console for operations and development. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While these solutions may not occur immediately, I am working with them to define best practices, provide training and eventually automate solutions. This has resulted in reduced operational issues as well as increased self-reliance. Most importantly, this process never ends and must continue to be executed to provide consistency of results. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4025324762025728675?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4025324762025728675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4025324762025728675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4025324762025728675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4025324762025728675'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/11/operations-is-my-customer.html' title='Operations is my customer'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3993012954747493123</id><published>2007-11-07T13:02:00.000-08:00</published><updated>2007-11-07T13:14:55.035-08:00</updated><title type='text'>SOA Training, what is it?</title><content type='html'>Based on my current role as an independent consultant I have run into several clients looking to develop &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SOA&lt;/span&gt; technical skills inside the organization. Due to my Web Services lineage, I of course look at the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SOA&lt;/span&gt; solution set via the W3C and OASIS toolbox. From a training perspective I highly recommend the Cape Clear Developer site for two training facilities:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) XML Schema / SOAP/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;WSDL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Check out  &lt;a href="http://developer.capeclear.com/?q=justenough"&gt;http://developer.capeclear.com/?q=justenough&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;BPEL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Check out &lt;a href="http://developer.capeclear.com/?q=bpeltraining"&gt;http://developer.capeclear.com/?q=bpeltraining&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am looking for some decent tutorials on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;XSLT&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;XPath&lt;/span&gt;. Currently I have been using the www.w3c.org and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;O'Reilly&lt;/span&gt;. If you have any suggestions on alternative tutorials/locations let me know. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SOA&lt;/span&gt; Specific Articles / Books&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thomas Erl and his series of publications are a must. &lt;a href="http://www.soamagazine.com"&gt;http://www.soamagazine.com&lt;/a&gt; and &lt;a href="http://www.soabooks.com"&gt;http://www.soabooks.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally although not specifically for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SOA&lt;/span&gt; but rather all the other technologies like  AJAX, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;OOAD&lt;/span&gt;, HTML etc the Head First series from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;O'Reilly&lt;/span&gt; is excellent.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3993012954747493123?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3993012954747493123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3993012954747493123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3993012954747493123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3993012954747493123'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/11/soa-training-what-is-it.html' title='SOA Training, what is it?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-7138957583023789694</id><published>2007-11-07T12:54:00.000-08:00</published><updated>2007-11-07T13:01:56.907-08:00</updated><title type='text'>To Spring or not to Spring</title><content type='html'>I am trying to get a sense from people as to which framework people are selecting, Spring or EE5. Several different projects I am privy to at different companies have employed Spring with good success. Another colleague just published a book on JBoss SEAM with its EE5 underpinnings and is very high on its capabilities. Long story short it seems like this is going to be a Ford versus Chevy debate. Maybe I am wrong but would love to hear any feedback. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Due to the use of Spring configuration and Spring Bean support in Cape Clear 7.5, I see my path has been pre-determined. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-7138957583023789694?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/7138957583023789694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=7138957583023789694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7138957583023789694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/7138957583023789694'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/11/to-spring-or-not-to-spring.html' title='To Spring or not to Spring'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-2403551194183096096</id><published>2007-10-06T18:45:00.000-07:00</published><updated>2007-10-06T18:53:48.180-07:00</updated><title type='text'>The Web Service Standards Soup / BigSOAGrid.com</title><content type='html'>Over the past several weeks, a former colleague and I have put together a grid of the current Web Service Standards starting with the core and extending to the WS* features. You can find this at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.soamag.com/I11/1007-1.asp"&gt;http://www.soamag.com/I11/1007-1.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or at its home:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bigsoagrid.com/"&gt;http://www.bigsoagrid.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The purpose of this is to highlight the many options / directions the standards have gone as well as the large amount of vendor participation in these specifications. Obviously having vendors write standards is a double edged sword as they most often will have an offering following the standard release and will be pushing it on you and I. With the open source movement however, you will find a bunch of these standards available in Apache projects, Codehaus etc and the time/effort spent by other technologists can save time for us all.&lt;br /&gt;&lt;br /&gt;One example of this was a project I worked on recently for a State Government contractor. There was a need to support basic authentication and integrate this with LDAP. Within a half an hour discussion, the decision was made to use WS-Security UsernameToken. The implementation took advantage of the WSSJ package from Apache and in a few hours this feature was ready to test. The alternative might have been a custom SOAP Header and the resulting WSDL / Interceptor work to build out the infrastructure. Not worth it when deadlines are tight!&lt;br /&gt;&lt;br /&gt;So take a look at the BigSOAGrid and get up to speed on the latest and greatest. Maybe you will find a standards based option for your project needs!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-2403551194183096096?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/2403551194183096096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=2403551194183096096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2403551194183096096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/2403551194183096096'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/10/web-service-standards-soup.html' title='The Web Service Standards Soup / BigSOAGrid.com'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4002813292650489385</id><published>2007-09-26T18:23:00.000-07:00</published><updated>2007-09-26T18:43:11.403-07:00</updated><title type='text'>SCA Like Features in Cape Clear 7.5</title><content type='html'>Building large scale SOA has several pain points. One of them is in the assembly and deployment to a SOA cluster. Cape Clear 7.5 is a providing a starter to graphically assembling SOA using Web Service standards and Spring. I got a chance to participate in the Cape Clear 7.5 webinar this past week and saw a flexible mediation development tool which in turn developed a spring configuration. Within the Cape Clear Studio (Eclipse plugin) environment, transports, transformation, logging, exception handling, routing and Spring Beans can be combined into an assembly to perform mediation tasks. The diverse transport selection and simplicity by which this is defined was impressive. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A next step with this environment will be to apply policy between the steps/services. The final step would be in then being able to apply all these pieces to a diverse set of deployment platforms (both Cape Clear and non-Cape Clear).  Why would I want to do this?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let me provide an example. One customer I work with has open source J2EE container, a COTS J2EE container, Tomcat, Apache Axis.... and the list goes on and on. Trying to develop a SOA in this environment is one issue, deploying to all these entities and managing this in an automated fashion is another. A single deployment description will help lead towards deployment automation as well potentially a monitoring description. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4002813292650489385?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4002813292650489385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4002813292650489385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4002813292650489385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4002813292650489385'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/09/sca-like-features-in-cape-clear-75.html' title='SCA Like Features in Cape Clear 7.5'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3148332609012214108</id><published>2007-09-11T18:29:00.000-07:00</published><updated>2007-09-11T19:19:20.731-07:00</updated><title type='text'>How does UML apply to SOA?</title><content type='html'>I am currently participating in a UML / OOAD training class learning about the UML language and what it provides the Object Oriented development space. A question that I had asked early in the class to the instructor was how SOA can take advantage of UML. Unfortunately the instructor did not have an answer with his background being in application development versus service/integration development.&lt;br /&gt;&lt;br /&gt;So here are the diagrams we have covered:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;class diagram&lt;/li&gt;&lt;li&gt;sequence diagram&lt;/li&gt;&lt;li&gt;state machine diagram&lt;/li&gt;&lt;li&gt;activity diagram&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Still to go are: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;component diagram&lt;/li&gt;&lt;li&gt;use case diagram&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Based on the above it appears that BPEL could be described in a non-BPEL fashion using the activity diagram. An activity diagram could simply be described as a flow chart. It supports the definition of activities, looping, conditions etc. Sounds kinda like BPEL doesn't it.&lt;/p&gt;&lt;p&gt;Another diagram that appears to have some use is the component diagram. I am not 100% sure but the component diagram typically shows components in a system and how they interact with one another.  Looking at Martin Fowler's publication UML Distilled (Third Edition), pg 141:&lt;/p&gt;&lt;p&gt;"Use component diagrams when you are dividing your system into components and want to show their inter-relationships through interfaces..."&lt;/p&gt;&lt;p&gt;Additional details in the publication and diagram examples appear to provide a way to visually describe a SOA where Web Services are the components. &lt;/p&gt;&lt;p&gt;I haven't researched this with other organizations but will trying to apply these prinicipals/approaches for some upcoming projects to help in the detailed design documentation phase. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3148332609012214108?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3148332609012214108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3148332609012214108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3148332609012214108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3148332609012214108'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/09/how-does-uml-apply-to-bpel.html' title='How does UML apply to SOA?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1537936844724578874</id><published>2007-09-07T21:24:00.000-07:00</published><updated>2007-09-07T21:32:53.075-07:00</updated><title type='text'>Apache CXF, alternative to Axis?</title><content type='html'>Working on a small project with a startup and another consultant turned me onto Apache CXF (Celtix XFire). Both of us began looking at open source, specifically Axis 2 to provide a capable Web Service layer for an existing J2EE hosted application. After about a couple of weeks we gave up due to the poor documentation and issues that we ran into. We then decided to look into alternative containers such as Glassfish, JBoss etc and came upon Apache CXF. Some of the factors we decided on were a JAX-WS implementation with the ability to plugin into various implementations and support for the basic WS-* standards such as WS-Security.&lt;br /&gt;&lt;br /&gt;Today I used the Apache CXF wsdl2java features to simply generate a client stub to a .Net service. In addition I needed to enable SSL communcation. From install to executing the client, it took 3-4 hours with a bit of debugging on the CXF client configuration file.&lt;br /&gt;&lt;br /&gt;Current impressions are good documentation, clean generated code with no major issues.&lt;br /&gt;&lt;br /&gt;Check it out at &lt;a href="http://incubator.apache.org/cxf"&gt;http://incubator.apache.org/cxf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1537936844724578874?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1537936844724578874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1537936844724578874' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1537936844724578874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1537936844724578874'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/09/apache-cxf-alternative-to-axis.html' title='Apache CXF, alternative to Axis?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3984948389748963430</id><published>2007-08-31T18:30:00.000-07:00</published><updated>2007-08-31T18:58:01.778-07:00</updated><title type='text'>Dynamic Endpoints in Cape Clear BPEL</title><content type='html'>Creating dynamic endpoints in BPEL using Cape Clear is pretty easy. Just simply overwrite the PartnerLink using an Assign/Copy activity where the From value is the URL and the To is the partnerlink. Having done this in a previous implementation I statically defined these URLs in the BPEL itself. I could have developed a WS that returned the dynamic endpoint but thought that was too much for what was needed at the time. The URLs were static and would not change. Well 6 months later, the URLs are changing as new destinations are being added to the BPEL, in fact double the destinations.&lt;br /&gt;&lt;br /&gt;I am now refactoring the current BPEL to use a new feature in Cape Clear BPEL, the XPath function getInitValueParam(). The getInitValueParam() function allows me to send in a property name as a string and get back its value. These properties are defined in the initParams section of the Cape Clear deployment descriptor (ws-application.xml).&lt;br /&gt;&lt;br /&gt;I am also employing a while loop to examine the inbound XML for destination data and in combination with the above function, parameterize the destinations externally to the BPEL.&lt;br /&gt;&lt;br /&gt;Here is the scenario, an inbound XML messages defines the names of the various intermediaries in the overall process. This is represented in an element called system as shown below:&lt;br /&gt;&lt;br /&gt;&amp;lt;system&amp;gt;systema&amp;lt;system&amp;gt;&lt;/system&gt;&lt;br /&gt;&lt;system&gt;&amp;lt;system&amp;gt;systemb&amp;lt;system&amp;gt;&lt;/system&gt;&lt;br /&gt;&lt;br /&gt;The system element is unbounded but is an enumeration of valid destinations. Within the new BPEL, a counter is initialized and a while loop determines if the counter is less than or equal to the number of recipients. For each system I wanted to extract the system element value (the SOAP intermediary name) and then use the getInitValueParam() function to return the destinations URL . I then overwrite the PartnerLink value with this destination and I have performed dynamic endpoint assignment.&lt;br /&gt;&lt;br /&gt;Sounds good right! Well I finally got it working through the help of a fellow BPEL blogger. The problem that I had was accessing the system element via array notation. My array value was defined as a variable called counter. I tried using a combination of XPath that would get me down to the system node and then combine this with bpws:getVariableData() of the counter value. No luck. I found this link which got me through the issue quickly:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://covarm.tvu.ac.uk/blog/?p=4"&gt;http://covarm.tvu.ac.uk/blog/?p=4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, it was necessary to use the concat function in a Copy activity to create a xpath query that builds the actual expression I was interested in, in this case something like:&lt;br /&gt;&lt;br /&gt;concat('.../.../ns1:system[', bpws:getVariableData('counter'),']' )&lt;br /&gt;&lt;br /&gt;then, this value was assigned to a variable called xpath. Then in the next Copy activity I refer to the new variable xpath:&lt;br /&gt;&lt;p&gt;bpws:getVariableData('...', 'parameters', bpws:getVariableData('xpath') ) &lt;/p&gt;&lt;p&gt;A lot of work to do something so simple in Java. Oh well, the combination of these features is helping dramatically simplify my original BPEL and providing unlimited scalability for new systems via configuration instead of coding. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3984948389748963430?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3984948389748963430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3984948389748963430' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3984948389748963430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3984948389748963430'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/08/dynamic-endpoints-in-cape-clear-bpel.html' title='Dynamic Endpoints in Cape Clear BPEL'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3672106609628037940</id><published>2007-08-25T19:12:00.000-07:00</published><updated>2007-08-26T05:59:39.240-07:00</updated><title type='text'>Applying JUnit/XMLUnit to Web Services</title><content type='html'>As part of developing an agile SOA environment for a couple of clients, testing becomes a critical component. So perusing through cyberspace, I came upon an excellent and simple approach towards this goal. Check out &lt;a href="http://www.ibm.com/developerworks/webservices/edu/ws-dw-ws-soa-autotest2.html"&gt;http://www.ibm.com/developerworks/webservices/edu/ws-dw-ws-soa-autotest2.html&lt;/a&gt; . This article brings an Apache Commons HTTP Client, JUnit and XMLUnit to bear. The result is a reusable client that posts a SOAP request and writes the SOAP response received to the file system. Then XMLUnit methods are used to provide comparisons between the actual response and the desired response (stored in another file). This approach works well for Request/Response services.&lt;br /&gt;&lt;br /&gt;The challenge I have is that my most important client does not have this style of service. Rather they are using One-Way/JMS style of communications. My thoughts here are centering around the use of a centrally available file system or database. Each of the SOAP Intermediaries would need to store the inbound and outbound requests to this storage point. Once the overall cycle is complete, the same XMLUnit features could be used to compare the entire request lifecycle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3672106609628037940?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3672106609628037940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3672106609628037940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3672106609628037940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3672106609628037940'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/08/applying-junitxmlunit-to-web-services.html' title='Applying JUnit/XMLUnit to Web Services'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8397219862298385109</id><published>2007-08-16T09:49:00.000-07:00</published><updated>2007-08-16T10:02:14.120-07:00</updated><title type='text'>Rules Engines / Rule Based Services</title><content type='html'>How many people have actually implemented Rules Engines? I first ran into Expert Learning Systems in the 90's when working in the Mechanical Computer Aided Engineering (MCAE) space. They were being used to electronically document engineers/designers knowledge for the development of mechanical components. The idea at the time was to use this knowledge to optimize part development and reduce lead time. The infrastructure behind this was a Rules Engine.&lt;br /&gt;&lt;br /&gt;I don't know the answer on the current adoption of Rules Engines but for the right problem, it appears that it provides a compelling solution. I am currently investigating this sector to help identify if the technology is pluggable in a SOA and what type of business problems are best served. It appears that logic that is dynamic is the best candidate. The ability to update an external configuration without having to go through a typical release cycle if the logic was embedded in a bean is definitely attractive. The languages are pretty different between vendors, some using Natural Language approaches while others use a proprietary scripting language. The only constant is support for the JSR-094 specification.&lt;br /&gt;&lt;br /&gt;Most of the vendors generate a java implementation or even web services so inclusion into a Web Services infrastructure is pretty straight forward.&lt;br /&gt;&lt;br /&gt;So far I have looked at &lt;a href="http://herzberg.ca.sandia.gov/jess/"&gt;Jess&lt;/a&gt; and &lt;a href="http://www.openrules.com/"&gt;OpenRules&lt;/a&gt; and found the open source community to provide a very good starting point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8397219862298385109?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8397219862298385109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8397219862298385109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8397219862298385109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8397219862298385109'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/08/rules-engines-rule-based-services.html' title='Rules Engines / Rule Based Services'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-633057884884315191</id><published>2007-08-13T18:40:00.000-07:00</published><updated>2007-08-14T07:04:03.841-07:00</updated><title type='text'>Evolutionary SOA / Agile Development</title><content type='html'>About two years ago, my former company undertook a major development effort to implement an agile development process based on SCRUM. With a team of 20 developers, the company slowly but surely made the effort to transform the development process and use incremental / agile techniques to create a better quality product. The result after 2+ years is evident in the stability and consistency in releases of new features.&lt;br /&gt;&lt;br /&gt;One of my current customers is also striving to implement a similar process. Currently development occurs in one major release a year and focuses on a monolothic EJB infrastructure. Unlike the previous company, the switch from a traditional waterfall process to a more agile/incremental environment has several challenges:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;History (the current organization was built around a single major release and has done so for many years)&lt;/li&gt;&lt;li&gt;Platforms (the current infrastructure is comprised of very heavyweight EJB applications that are not flexible/agile)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The organization is tackling this on several fronts:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Executive Support (most important is to get executive support on the use of a incremental/agile development approach which in turn will directly correlate to performance factors for the business)&lt;/li&gt;&lt;li&gt;Organizational Changes (re-organizing the development team to focus on services)&lt;/li&gt;&lt;li&gt;Simplification/Refactoring/Replacement (simplifying the exiting infrastructure for immediate gains and replacing the monolith with a series of simpler services for long term benefit)&lt;/li&gt;&lt;li&gt;Putting out to pasture (placing the existing monolith into a legacy category thus limiting its scope/usage)&lt;/li&gt;&lt;li&gt;Training (bringing in external consultants to guide the existing development staff on the best practices and fast track the simplification/replacement strategies).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Overall, I have been trying to do the same with the current ESB infrastructure. Through consistent interaction with operations and my desire to continue to refactor/simplify the production solution, improvements in reliability and customer support have been made. Incrementally I am removing / improving the production solution to make it extensible and more reliable for the large volumes of customer that interact with it. This process will never end and thus like the Toyota commercials, will hopefully result in the Corolla of ESBs (400,000 miles and still going!).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-633057884884315191?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/633057884884315191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=633057884884315191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/633057884884315191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/633057884884315191'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/08/evolutionary-soa-agile-development.html' title='Evolutionary SOA / Agile Development'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8410511113146198135</id><published>2007-08-08T20:49:00.000-07:00</published><updated>2007-08-08T21:19:57.844-07:00</updated><title type='text'>A Bad Foundation makes a Bad House</title><content type='html'>If you have worked with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BPEL&lt;/span&gt;, you know how dependent it is on the foundation. In this case the foundation is XML Schema and the sub-floor is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WSDL&lt;/span&gt;. Challenges introduced in the XML Schema or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;WSDL&lt;/span&gt;, ripple there way into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;BPEL&lt;/span&gt; definition. Here are a few novice and advanced issues that have bitten me over the past several years when dealing with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BPEL&lt;/span&gt; variables:&lt;br /&gt;&lt;br /&gt;- Unique &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;namespaces&lt;/span&gt; are critical/mandatory in XML Schema/WSDL as they are used to uniquely identify variables and their content.&lt;br /&gt;&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Schemas&lt;/span&gt; with imports should utilize &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;xsd&lt;/span&gt;:ref otherwise &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;bpel&lt;/span&gt;:assign activities become a nightmare. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;BPEL&lt;/span&gt; Variables that are generated from XML Schema/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WSDL&lt;/span&gt; that import other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;schemas&lt;/span&gt; will each have their own &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;namespaces&lt;/span&gt;. This makes copying root elements between two variables with different &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;namespaces&lt;/span&gt; impossible using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;bpel&lt;/span&gt;:copy activity.  The option is to copy each element individually and see the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;BPEL&lt;/span&gt; script grow exponentially. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;BPEL&lt;/span&gt; 2.0 and its support of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;inline&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;XSLT&lt;/span&gt; will eliminate this issue.&lt;br /&gt;&lt;br /&gt;- Some Web Services are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;RPC&lt;/span&gt; Encoded versus Document Literal. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;bpws&lt;/span&gt;:&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;getVariableData&lt;/span&gt; syntax is different when extracting values from a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;RPC&lt;/span&gt; Encoded &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;BPEL&lt;/span&gt; Variable versus a Document Literal &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;BPEL&lt;/span&gt; Variable. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;BPEL&lt;/span&gt; Editors eliminate this issue, however when editing by hand the later will include the variable, part and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;XPath&lt;/span&gt; to the element. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;RPC&lt;/span&gt; only includes the variable and part.&lt;br /&gt;&lt;br /&gt;- One of the most simple but common mistakes is to not initialize the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;BPEL&lt;/span&gt; Variables with a literal assignment when using Document Literal services. This will cause &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;run-time&lt;/span&gt; failures or other depending on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;BPEL&lt;/span&gt; engine you are using.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8410511113146198135?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8410511113146198135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8410511113146198135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8410511113146198135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8410511113146198135'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/08/bad-foundation-makes-bad-house.html' title='A Bad Foundation makes a Bad House'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-8864739539873373731</id><published>2007-07-31T19:45:00.000-07:00</published><updated>2007-07-31T20:06:42.856-07:00</updated><title type='text'>WS-* Bloat, what is actually being used</title><content type='html'>Below is a list of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WS&lt;/span&gt;/XML Specifications that I have implemented with customers that are in production or in pilot mode. The first generation specifications (XML Schema, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;XSLT&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;XPath&lt;/span&gt;, SOAP, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WSDL&lt;/span&gt;) are used widely. The second/third  generation specifications would be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BPEL&lt;/span&gt; and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;WS&lt;/span&gt;-* standards.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SOAP &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;WSDL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;XML Schema - Pretty much the standard for data definition and more powerful than &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;DTDs&lt;/span&gt; (nothing new here). &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;XSLT&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;XPath&lt;/span&gt; - Standard for data transformation (haven't used &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;XQuery&lt;/span&gt; yet). &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;BPEL&lt;/span&gt; - Standard for Orchestration Web Services&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;WS&lt;/span&gt;-RM - only have used it at one client but it provides reliability as advertised. &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;WS&lt;/span&gt;-Security - not used in production but have several customers moving to it for up-coming releases. &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;WS&lt;/span&gt;-Addressing - examining this and other specifications for a routing road map. Not currently used in production work that I have performed. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So as you can see there are still a lot of missing specifications that are floating in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;WS&lt;/span&gt;-* ether as well as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;UDDI&lt;/span&gt;  (an unpopular specification in project based &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;SOA&lt;/span&gt;). The above is based on a sampling of  200+ customers that I have worked with from 2002.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-8864739539873373731?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/8864739539873373731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=8864739539873373731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8864739539873373731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/8864739539873373731'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/ws-bloat-what-is-actually-being-used.html' title='WS-* Bloat, what is actually being used'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-4426080015324135931</id><published>2007-07-30T19:06:00.000-07:00</published><updated>2007-08-08T21:43:51.972-07:00</updated><title type='text'>JMS Queues versus JMS Topics</title><content type='html'>Today I was working with a customer on demonstrating integration of a JMS Topic into their ESB. For years now I have spent all my JMS Integration work specifically using JMS Queues. For this integration, however, the customer was utilizing a topic. Based on my research the following rule of thumb appears to delineate when one is used over the other:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Topics are utilized when the information is time senstive (i.e. stock quote). &lt;/li&gt;&lt;li&gt;Topics are utilized to broadcast of information to a wide audience (or subscribers).&lt;/li&gt;&lt;li&gt;Queues are utilized when performing transactions.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;There may be several other reasons to use one over the other, but this applied to this specific customer and helped address its usage. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-4426080015324135931?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/4426080015324135931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=4426080015324135931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4426080015324135931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/4426080015324135931'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/jms-queues-versus-jms-topics.html' title='JMS Queues versus JMS Topics'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-967997019491671265</id><published>2007-07-29T20:23:00.000-07:00</published><updated>2007-07-29T21:07:44.234-07:00</updated><title type='text'>Personal Services show the way</title><content type='html'>Although this is not directly related to my main discussion about SOA/Web Services, I noticed a trend in the past 3 days that impacted me and shows the power of what SOA/Web Services/Internet technologies are bringing and will bring .&lt;br /&gt;&lt;br /&gt;So on Friday I checked my gmail account and noticed that LinkedIn (&lt;a href="http://www.linkedin.com/"&gt;http://www.linkedin.com/&lt;/a&gt;) had notified me of several contacts who were interested in touching base and joining my personal network. One was a fomer colleague and another was a former friend from college. Within a couple of hours I had caught up on 6 years with my colleague and 15 years with my college buddy. The part that is interesting is all I needed to do was post my LinkedIn profile (my personal WSDL). This included my destination (email address) and content. LinkedIn hosts some general operations and away you go.&lt;br /&gt;&lt;br /&gt;So a single personal service in a short time frame brought me information relevant to me and simplified my networking life dramatically. Just imagine all the phone calls, mixers, conferences etc that you would have had to attend. Who's got the time!&lt;br /&gt;&lt;br /&gt;Personal Integration is here and helping me and many others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-967997019491671265?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/967997019491671265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=967997019491671265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/967997019491671265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/967997019491671265'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/personal-services-show-way.html' title='Personal Services show the way'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1082236184697404704</id><published>2007-07-28T07:16:00.000-07:00</published><updated>2007-07-28T07:33:02.718-07:00</updated><title type='text'>Transport or Message Level Security?</title><content type='html'>This is a question that has been posed to me at a lot of state government pilots over the past few years with regard to encryption/privacy of messages. The following is the simple rule of thumb that I have used based on the best practices ( &lt;a href="http://www.ws-i.org/"&gt;http://www.ws-i.org&lt;/a&gt; ) and discussions with security/web service professionals.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If securing two points (a client and a service for instance) and the assumption is that security is not required once it is received on either end, then transport level security is sufficient (HTTPS, SFTP etc.) &lt;/li&gt;&lt;li&gt;If it is unknown how many systems/intermediaries will be touching the message then message level security should be utilized (WS-Security / XML-Encryption). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;An interesting point by the security gurus is that transport level security has the potential of being at various strengths (i.e. 128 bit). As a message travels between more than one point, there is the potential for the privacy of the message to vary. This is not the case with message level security as the strength is specified within the SOAP Headers of the message and thus remains constant. This is an important consideration as a lot of state agencies begin integrating across departments/agencies which in turn may be across networks. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1082236184697404704?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1082236184697404704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1082236184697404704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1082236184697404704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1082236184697404704'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/transport-or-message-level-security.html' title='Transport or Message Level Security?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-1594040254712574458</id><published>2007-07-27T11:44:00.001-07:00</published><updated>2007-07-27T11:49:58.665-07:00</updated><title type='text'>One simple reason for using ESB in a SOA</title><content type='html'>Well here is a real world example of why an ESB is a nice piece of infrastructure when things fail. I am working with a company which had a failed transaction. An ESB is being used to broker communications across multiple applications. The failed transaction had originally been created by one of those applications and placed on a JMS Queue for processing. Because there is an ESB, the destination service is not only available over JMS but also HTTP (the default transport for the waiting BPEL Service) or other transports that you can choose from.&lt;br /&gt;&lt;br /&gt;We simply resolved this issue by loading the SOAP request into a SOAP Client in Eclipse and doing an HTTP Post to the service.&lt;br /&gt;&lt;br /&gt;There are many other reasons to using an ESB but just the flexibility in supporting multiple transports can help out in a pinch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-1594040254712574458?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/1594040254712574458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=1594040254712574458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1594040254712574458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/1594040254712574458'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/one-simple-reason-for-using-esb-in-soa.html' title='One simple reason for using ESB in a SOA'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-3332537256303783158</id><published>2007-07-26T20:23:00.001-07:00</published><updated>2007-07-27T06:44:46.726-07:00</updated><title type='text'>Simple SOA Client</title><content type='html'>Several months ago I needed to demonstrate a workflow task in a BPEL Service. Searching the web, I came across an old colleague. In his spare time he founded &lt;a href="http://www.magoosoft.com/"&gt;http://www.magoosoft.com/&lt;/a&gt;. Using it reminded me of an email client like Outlook Express. It supports multiple protocols and more importantly renders the SOAP message as a HTML Form. So for the scenario that I was working on, it was simply defined by importing the WSDL for the BPEL Service to define the call back and messages. Once defined a few properties were specified and my magoo client would receive messages, allow me to view and then respond back to the waiting BPEL Service. All the work was done within a day and demonstrated a human workflow component for SOA Pilot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-3332537256303783158?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/3332537256303783158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=3332537256303783158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3332537256303783158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/3332537256303783158'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/simple-soa-client.html' title='Simple SOA Client'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-479214606211871351.post-776392555278625927</id><published>2007-07-26T19:52:00.000-07:00</published><updated>2007-07-26T20:04:08.137-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MOM'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>SOA for the masses?</title><content type='html'>Most of the blogs I have read don't seem to talk about the developers viewpoint ("the masses")  of actually implementing an enterprise SOA using ESB or other technologies. Maybe I have missed some good independent literature out there.&lt;br /&gt;&lt;br /&gt;Currently I am working with a variety of clients that are large and small using third party ESB, MOM or Open Source. In my travels I have run into the good and bad of SOA and when done right, the benefits it can provide.&lt;br /&gt;&lt;br /&gt;As I navigate my customers problems and learn/implement  the WS-* standards, I'll post what I find. Maybe this will help you or at a minimum draw some debate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/479214606211871351-776392555278625927?l=soasidewalk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soasidewalk.blogspot.com/feeds/776392555278625927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=479214606211871351&amp;postID=776392555278625927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/776392555278625927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/479214606211871351/posts/default/776392555278625927'/><link rel='alternate' type='text/html' href='http://soasidewalk.blogspot.com/2007/07/soa-for-masses.html' title='SOA for the masses?'/><author><name>Chris Riley</name><uri>http://www.blogger.com/profile/14838855108558965941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_udzPjBm3v4E/SY5xNcvMXcI/AAAAAAAAACM/TkmY_ZyqQvA/S220/ChrisRiley.jpg'/></author><thr:total>0</thr:total></entry></feed>
