<?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-13327496</id><updated>2011-04-26T11:21:23.783+05:30</updated><category term='ROI'/><category term='BPM'/><category term='Savvion'/><category term='SOA'/><title type='text'>Integrating Islands with Landmasses</title><subtitle type='html'>EAI notes and thoughts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dan8sh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13327496.post-5856288968607759834</id><published>2007-10-17T16:19:00.001+05:30</published><updated>2007-10-17T16:21:20.152+05:30</updated><title type='text'>Choreography &amp; Orchestration - Difference</title><content type='html'>I have been having this doubt on the difference between Orchestration and Choreography for a while now. Learnt today that Choreography involves multiple parties while Orchestration focuses on a single one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-5856288968607759834?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/5856288968607759834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/5856288968607759834'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2007/10/choreography-orchestration-difference.html' title='Choreography &amp; Orchestration - Difference'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-224000314426602781</id><published>2007-09-19T14:41:00.000+05:30</published><updated>2007-09-19T14:44:28.952+05:30</updated><title type='text'>New Blog</title><content type='html'>I've started posting at the &lt;a href="http://www.integrationconsortium.org"&gt;Integration Consortium&lt;/a&gt;'s blog.  Do check it out at  &lt;a href="http://www.icmembers.org/blog/zaki"&gt;http://www.icmembers.org/blog/zaki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-224000314426602781?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.icmembers.org/blog/zaki' title='New Blog'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/224000314426602781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/224000314426602781'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2007/09/new-blog.html' title='New Blog'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-8183668042345260102</id><published>2007-07-20T22:52:00.000+05:30</published><updated>2007-07-20T22:57:47.865+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ROI'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>How to improve ROI with SOA?</title><content type='html'>&lt;div&gt;&lt;span style="font-size:100%;"&gt;I was talking to a colleague of mine on using SOA in  integration projects, when she cut through the chaff and asked me if we  &lt;/span&gt;&lt;span style="font-size:100%;"&gt;could show a better ROI when a project is done using SOA  versus doing it "traditionally".  Traditional means could be either  &lt;/span&gt;&lt;span style="font-size:100%;"&gt;by custom programming or buying commercial integration  components/products, which would essentially be EAI. Most of &lt;/span&gt;&lt;span style="font-size:100%;"&gt;the organizations are aware of EAI products and are engaged in doing  integration using them in some form or the other, which leads us to the following&lt;/span&gt;&lt;span style="font-size:100%;"&gt; questions:&lt;/span&gt;&lt;/div&gt;  &lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Can doing an integration project with SOA get a  &lt;span style="font-weight: bold;"&gt;significantly &lt;/span&gt;better ROI vs. doing it with EAI products?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;In either case,  do we need to optimize our business processes too to see a better  ROI?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;Any thoughts are welcome.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-8183668042345260102?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/8183668042345260102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/8183668042345260102'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2007/07/how-to-improve-roi-with-soa.html' title='How to improve ROI with SOA?'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-8208946643882558178</id><published>2007-04-21T14:14:00.000+05:30</published><updated>2007-04-21T14:26:30.580+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Savvion'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><title type='text'>Few Minutes with Savvion Process Modeler</title><content type='html'>I played around a while with &lt;a href="http://www.savvion.com/"&gt;Savvion Process Modeler&lt;/a&gt; and found the UI (non-eclipse) simple and intuitive. Modeling was straight forward and in my opinion the tool should have a flat learning curve and keep the Business Analyst interested. On the negative side, the tool does not give an option to save the model as a BPEL file, by default, it saves the model as a proprietary SPT file and can export only to an XML file. It has got pretty decent features for running the model as a simulation with Normal distribution, constant and exponential values that can be given to the variables.&lt;br /&gt;&lt;br /&gt;For execution, the SPT file needs to be deployed onto the Savvion BPM server (BizLogic Server) for execution.&lt;br /&gt;&lt;br /&gt;Overall, I liked the product for its speed and intuitive GUI but was not happy that it could not save the output as a BPEL file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-8208946643882558178?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.savvion.com/' title='Few Minutes with Savvion Process Modeler'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/8208946643882558178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/8208946643882558178'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2007/04/few-minutes-with-savvion-process.html' title='Few Minutes with Savvion Process Modeler'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-2047896584517802700</id><published>2007-03-04T17:47:00.000+05:30</published><updated>2007-03-04T17:52:00.456+05:30</updated><title type='text'>Actional SOAPStation - First Look</title><content type='html'>Actional SOAPStation is a web services management tool with features for&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Security&lt;/li&gt;   &lt;li&gt;Failover&lt;/li&gt;   &lt;li&gt;Monitoring&lt;/li&gt;   &lt;li&gt;Reporting&lt;/li&gt;   &lt;li&gt;Rule based routing&lt;/li&gt; &lt;/ul&gt; All the features are configurable through the administrative console. Installation is straight forward and the documentation is useful. Lack of examples make the learning a little steep.&lt;br /&gt;&lt;br /&gt;It has extensive features for security, providing options such as SSL certificates, SAML token and WS-Security policies. Monitoring of web services helps check if a service is alive using Hearbeats. Configurable alerts can be sent through e-mail or a MOM. Actional SOAPStation also has a comprehensive reporting feature that enables it to generate reports based on date, events and other criteria. Routing of messages based on rules is possible. The rules inspect message contents and route the message to the appropriate service that can handle it.&lt;br /&gt;&lt;br /&gt;In addition to the above features, Actional SOAPStation has features for generating dynamic WSDL based on the operations to be made visible. This enables it to function as a web services proxy.&lt;br /&gt;&lt;br /&gt;In combination with a registry, this tool should help in providing governance of services across the organization.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-2047896584517802700?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.actional.com/products/soap_station/' title='Actional SOAPStation - First Look'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/2047896584517802700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/2047896584517802700'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2007/03/actional-soapstation-first-look.html' title='Actional SOAPStation - First Look'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-116343479422767519</id><published>2006-11-13T21:40:00.000+05:30</published><updated>2006-11-13T21:52:14.073+05:30</updated><title type='text'>Java - Now Open and Free</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/470/1167/1600/Duke_and_Tux.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/470/1167/320/Duke_and_Tux.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Java is now Open and Free, things that a mean a lot from a community perspective - giving programmers who have benefited from the language a chance to give back to it by adding features/functionalities to it.&lt;br /&gt;&lt;br /&gt;Also, it seems like the right time to go open, especially with several &lt;a href="http://jakarta.apache.org/"&gt;open-source Java projects&lt;/a&gt; doing well and more being announced.  Sun gives the overview &lt;a href="http://www.sun.com/software/opensource/java/"&gt;here&lt;/a&gt;.&lt;a href="http://www.sun.com/software/opensource/java/"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-116343479422767519?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sun.com/software/opensource/java/' title='Java - Now Open and Free'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/116343479422767519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/116343479422767519'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/11/java-now-open-and-free.html' title='Java - Now Open and Free'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-116178948725993028</id><published>2006-10-25T20:45:00.000+05:30</published><updated>2006-10-25T20:48:07.293+05:30</updated><title type='text'>Microsoft Dynamics AX (Axapta)</title><content type='html'>When my cousin mentioned to me last week about Microsoft's new ERP product called &lt;a href="http://www.microsoft.com/dynamics/ax/product/overview.mspx"&gt;Microsoft Dynamics AX&lt;/a&gt;, formerly known as Axapta, I got curious to know more about it and this is what I found:&lt;br /&gt;&lt;br /&gt;MS Dynamics AX is mainly targeted at SMBs (Small &amp; Medium Size Businesses) and focuses on manufacturing and the e-business sectors. The USP for this product, in my opinion, would be the ability to leverage existing MS resources in the organization such as Excel and MS-SQL Server. Since the product GUI's look and feel is consistent with other MS-Office products, it could result in a flatter learning curve. A language called X++,  similar to C++ and Java, is used to program the product. MS has provided dotnet integration into the language as an attraction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-116178948725993028?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/116178948725993028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/116178948725993028'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/10/microsoft-dynamics-ax-axapta.html' title='Microsoft Dynamics AX (Axapta)'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-115830319197491841</id><published>2006-09-15T11:37:00.000+05:30</published><updated>2006-09-15T12:23:12.010+05:30</updated><title type='text'>WPS and a Bunch of Specs From IBM</title><content type='html'>I have been attending an &lt;a href="http://www-306.ibm.com/software/integration/wps/index.html" rel="tag"&gt;IBM WebSphere Process Server&lt;/a&gt; training this week and here is the residue from what was taught.&lt;br /&gt;&lt;br /&gt;WebSphere Process Server (WPS) is IBM's answer to the &lt;a href="http://technorati.com/tag/esb" rel="tag"&gt;ESB&lt;/a&gt;, whoever has designed the product has probably not heard of the saying - "Make things as simple as possible but no simpler" because my assessment is that it is an extremely complex product. Nevertheless, it is a feature-filled product that provides capabilities on SOA and a whole new set of related specs. It has evolved from &lt;a href="http://www-306.ibm.com/software/integration/wbiserver/ics" rel="tag"&gt;WebSphere InterChange Server&lt;/a&gt; (ICS) but transcends the EAI space as it uses &lt;a href="http://www-306.ibm.com/software/info1/websphere/index.jsp?tab=products/apptransaction" rel="tag"&gt;WebSphere Application Server&lt;/a&gt; (WAS) as the underlying runtime. The components built on WPS are turned into J2EE modules and components during deployment. A significant benefit of using WAS is that WPS can be clustered, unlike ICS that had no clustering features by itself.&lt;br /&gt;&lt;br /&gt;As with other IBM products, WPS too is resource hungry requiring 2 GB RAM for a development machine.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Specs Arrive&lt;/strong&gt;&lt;br /&gt;In order to consolidate its position in the SOA area, IBM along with BEA has authored the following specs (except EMD and CEI which are IBM-only) and WPS implements all of them.&lt;br /&gt;&lt;br /&gt;SCA: &lt;a href="http://www.ibm.com/developerworks/webservices/library/specification/ws-scasdosumm/" rel="tag"&gt;Service Component Architecture&lt;/a&gt; is a component model used to wrap components and expose them as Services. This is true for Java, WSDL and other WPS components. Other implementations of this spec are coming up, details are available at &lt;a href="http://www.osoa.org" rel="tag"&gt;www.osoa.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;SDO: &lt;a href="http://www.ibm.com/developerworks/webservices/library/specification/ws-scasdosumm/" rel="tag"&gt;Service Data Object&lt;/a&gt; is an API to access the elements in Business Objects (BO). Business Objects are data structures in WPS that carry data. They are implemented using XML schemas. The SDO spec does not mandate on how the Business Object is to be modeled.&lt;br /&gt;&lt;br /&gt;EMD: &lt;a href="http://www-128.ibm.com/developerworks/webservices/library/ws-soa-eisjca/" rel="tag"&gt;Enterprise Metadata Discovery&lt;/a&gt; is an API to expose the meta-data of data structures such as database tables and XML schemas. This API is used by the WebSphere adapters to get the application details and create the WPS Business Objects.&lt;br /&gt;&lt;br /&gt;CEI: &lt;a href="http://demos.dfw.ibm.com/on_demand/Streamed/IBM_Demo_WebSphere_Business_Integration_Developing_a_Business_Process-21-Jun05.html" rel="tag"&gt;Common Event Infrastructure&lt;/a&gt; is an IBM standard for monitoring. It provides a framework for capturing events and publishing them to different consumers. Events can be turned on/off for all WPS components.&lt;br /&gt;&lt;br /&gt;Despite the negative points on the product's complexity, it should score on robustness as it is built on top of WAS and with IBM's aggressive selling and licensing policies (including giving away free licenses to existing ICS customers), there is going to be no stopping this product from getting a large customer base.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-115830319197491841?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115830319197491841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115830319197491841'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/09/wps-and-bunch-of-specs-from-ibm.html' title='WPS and a Bunch of Specs From IBM'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-115305502959232077</id><published>2006-07-16T18:29:00.000+05:30</published><updated>2006-07-16T18:35:23.636+05:30</updated><title type='text'>Micro and Macro Flows</title><content type='html'>I have recently been hearing two new terms - "&lt;span style="font-weight: bold;"&gt;Micro Flow&lt;/span&gt;" and "&lt;span style="font-weight: bold;"&gt;Macro Flow&lt;/span&gt;". These are two fancy terms to describe the types of business processes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technorati.com/tag/micro+flow" rel="tag"&gt;Micro Flow&lt;/a&gt; means that a business process starts and ends in a single transaction whereas&lt;br /&gt;&lt;a href="http://technorati.com/tag/macro+flow" rel="tag"&gt;Macro Flow&lt;/a&gt; means that the business process is long lived, requiring more than one transaction. Macro Flows are generally more complicated as they are composed of multiple transactions. The participating system's state cannot be changed in a single rollback and a compensating transaction or Compensation needs to be enforced. &lt;a href="http://technorati.com/tag/workflow" rel="tag"&gt;Workflows&lt;/a&gt; involving human approvals are examples of Macro Flows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-115305502959232077?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115305502959232077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115305502959232077'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/07/micro-and-macro-flows.html' title='Micro and Macro Flows'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-115039449569758147</id><published>2006-06-15T23:20:00.000+05:30</published><updated>2006-06-15T23:31:35.713+05:30</updated><title type='text'>Learning Apache Axis - II</title><content type='html'>I have been trying to understand how to develop a document style &lt;a href="http://technorati.com/tag/web+service" rel="tag"&gt;web service&lt;/a&gt; and it has been a frustrating experience to say the least. There is a lot of code required in the client, a number of interfaces to create, a number of utilities to run/re-run all for just sending an XML document instead of a string. I am fully aware of the benefits of this style but I am wondering if too much complexity would drive developers away from this approach to the more simpler RPC approach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-115039449569758147?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115039449569758147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115039449569758147'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/06/learning-apache-axis-ii.html' title='Learning Apache Axis - II'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-115011665530354395</id><published>2006-06-12T17:49:00.002+05:30</published><updated>2006-06-12T18:26:59.410+05:30</updated><title type='text'>Learning Apache Axis - I</title><content type='html'>In the past couple of weeks, I had been getting a lot of fundamental doubts in &lt;a href="http://technorati.com/tag/web+services" rel="tag"&gt;Web Services&lt;/a&gt;, so a friend asked me to learn &lt;a href="http://technorati.com/tag/Apache+axis" rel="tag"&gt;Apache Axis&lt;/a&gt; to get an understanding on Web Services. So, I started with writing a simple web service and deploying it on Axis. Following are the steps to do so.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a webapp for axis in Tomcat or any other web container ($:\apache-tomcat-5.5.17\webapps\axis\WEB-INF\classes)&lt;/li&gt;&lt;li&gt;Create a service class with service methods&lt;/li&gt;&lt;li&gt;Create deploy.wsdd file (sample code pasted below)&lt;/li&gt;&lt;li&gt;Deploy using admin client - java org.apache.axis.client.AdminClient OrderDeploy.wsdd&lt;/li&gt;&lt;li&gt;Copy web service class to Tomcat classes folder - $:\apache-tomcat-5.5.17\webapps\axis\WEB-INF\classes&lt;/li&gt;&lt;li&gt;By default, the service will be deployed at - http://localhost:8080/axis/services/OrderService. &lt;/li&gt;&lt;li&gt;Invoke service at above &lt;span style="font-family:georgia;"&gt;location&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Sample Web Service Deployment Descriptor (wsdd)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;deployment xmlns="http://xml.apache.org/axis/wsdd/"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;service name="OrderService" provider="java:RPC"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &amp;lt;parameter name="className" value="OrderService"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &amp;lt;parameter name="allowedMethods" value="*"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/service&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/deployment&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;I will provide more details in subsequent posts.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-115011665530354395?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ws.apache.org/axis/' title='Learning Apache Axis - I'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115011665530354395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/115011665530354395'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/06/learning-apache-axis-i_115011665530354395.html' title='Learning Apache Axis - I'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114850623026553394</id><published>2006-05-25T02:58:00.000+05:30</published><updated>2006-05-25T03:01:17.023+05:30</updated><title type='text'>Data Federation</title><content type='html'>Data Federation is a ETL term that means integrating data from multiple data sources. A federated system consists of :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;+ A federated server such as DB2&lt;/li&gt;&lt;li&gt;+ A federated database &lt;/li&gt;&lt;li&gt;+ Remote datasets&lt;/li&gt;&lt;/ul&gt;Using a federated system, a single SQL statement can be used to fetch data from remote databases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114850623026553394?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0506lin/' title='Data Federation'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114850623026553394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114850623026553394'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/05/data-federation.html' title='Data Federation'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114841558464354931</id><published>2006-05-24T01:46:00.000+05:30</published><updated>2006-06-20T15:22:35.356+05:30</updated><title type='text'>Distributed Development:  the non-ICC approach</title><content type='html'>From recent conversations with a fellow consultant, I learnt that the ICC approach had not sold well with a customer. I was surprised as I had always seen ICC as a successful concept. When I probed further for the reason, I came to know that the application groups in the concerned organization were well-staffed and skilled to handle their development and support needs. So they would be responsible for servicing their own needs. For governance on integration development, a Governance Committee would be created to define standards, best practices and guidelines for integration. This committee would also participate in higher level activities such as architecture definition and design reviews. But would not be involved in development.&lt;br /&gt;&lt;br /&gt;So, this is an alternative approach to suggest when an organization's culture/environment does not favor an ICC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114841558464354931?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114841558464354931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114841558464354931'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/05/distributed-development-non-icc.html' title='Distributed Development:  the non-ICC approach'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114339761297758752</id><published>2006-03-26T23:52:00.000+05:30</published><updated>2006-03-26T23:56:53.023+05:30</updated><title type='text'>Revisiting WMQ Basics - Client &amp; Server Connection Channels</title><content type='html'>Client and Server Connection Channels work in pairs to facilitate communication between the &lt;a href="http://technorati.com/tag/WebSphere MQ" rel="tag"&gt;MQ&lt;/a&gt; clients and the server queue manager. The MQ client might exist on the same, or different, platform as the queue manager.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Server Connection Channel&lt;/span&gt;&lt;br /&gt;The Server Connection Channel is defined on the server as follows:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;DEFINE CHANNEL(CHAN1) CHLTYPE(SVRCONN) TRPTYPE(TCP) + DESCR('Server-connection to Client_1')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Client Connection Channel&lt;/span&gt;&lt;br /&gt;The Client Connection Channel is defined on the client as follows:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SET MQSERVER=CHANNEL1/TCP/server-address(port)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where:&lt;br /&gt;    * server-address is IP address/machine name of the server&lt;br /&gt;    * (port) is the port number the server is listening on&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114339761297758752?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114339761297758752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114339761297758752'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/03/revisiting-wmq-basics-client-server.html' title='Revisiting WMQ Basics - Client &amp; Server Connection Channels'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114309130879730191</id><published>2006-03-23T10:13:00.000+05:30</published><updated>2006-03-23T15:30:58.306+05:30</updated><title type='text'>RosettaNet Overview</title><content type='html'>I have been wanting to read up on &lt;a href="http://technorati.com/tag/RosettaNet" rel="tag"&gt;RosettaNet&lt;/a&gt; for a long time now and finally managed to do so. In my earlier visits to the the site, the site design had dissuaded me from exploring it further. But now, the site appears to have been revamped and navigation is simple and easy.&lt;br /&gt;&lt;br /&gt;RosettaNet standards can be used in &lt;a href="http://technorati.com/tag/B2B" rel="tag"&gt;B2B&lt;/a&gt; communication among trading partners similar to ANSI EDI X12. The standards are defined in terms of &lt;a href="http://technorati.com/tag/PIP" rel="tag"&gt;Partner Interface Processes (PIP)&lt;/a&gt;. Partner Interface Processes define the rules for communication (sequence of messages, timeframe etc) and the format of the message used in communication. The message format is enforced through an XML DTD. PIPs exist for 7 functional areas called clusters. Order Management, Product Information and Inventory Management are examples of some clusters.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.iblog.com/resserver.php?blogId=1931&amp;resource=PO-snippet.jpg" /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;Purchase Order DTD part of the Purchase Order PIP&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114309130879730191?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.rosettanet.org' title='RosettaNet Overview'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114309130879730191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114309130879730191'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/03/rosettanet-overview.html' title='RosettaNet Overview'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114278773088816363</id><published>2006-03-19T22:29:00.000+05:30</published><updated>2006-03-20T22:56:00.253+05:30</updated><title type='text'>Revisiting WMQ Basics - Queues &amp; Channels</title><content type='html'>I was informed of an assignment related to &lt;a href="http://technorati.com/tag/MQ" rel="tag"&gt;WebSphere MQ&lt;/a&gt; troubleshooting and performance enhancement but had to turn it down as I have been off MQ for quite sometime. However, I've decided now that I will refresh my MQ skills and become hands-on. I am starting from the basics and will post interesting/important notes here as I go along. I may choose to skip topics that seem a bit too obvious to me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Queues&lt;/span&gt;&lt;br /&gt;WebSphere MQ has four types of &lt;a href="http://technorati.com/tag/queue" rel="tag"&gt;queues&lt;/a&gt;: Local, Remote, Alias and Model queue. The first 3 function as their names' suggest, the last one - Model queue is a template that can be used to define new queues with the same properties.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Triggering&lt;/span&gt;&lt;br /&gt;Triggering happens when a message appears on an Initiation queue. The process defined and associated with the trigger is started when a message with the matching trigger critieria occurs on the queue.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Message Channels&lt;/span&gt;&lt;br /&gt;&lt;a href="http://technorati.com/tag/Message" channels="" rel="tag"&gt;Message Channels&lt;/a&gt; communicate between Queue Managers and can transmit messages in one direction only.&lt;br /&gt;&lt;br /&gt;A transmission queue (XMITQ), which is a local queue is mentioned in the channel definition to associate it with the channel.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Types of Channels&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sender: Sends message and initiates connection to Receiver&lt;/li&gt;&lt;li&gt;Receiver: Waits for initiation from Sender&lt;/li&gt;&lt;li&gt;Cluster-Sender: Used in Cluster Queue Managers (need to find out more) &lt;/li&gt;&lt;li&gt;Cluster-Receiver: Used in Cluster Queue Managers (need to find out more)&lt;/li&gt;&lt;li&gt;Requester: Sends request and becomes receiver&lt;/li&gt;&lt;li&gt;Server: Accepts request to start from requester, then becomes sender&lt;/li&gt;&lt;/ul&gt;Two channel types that I need to look at are Client Connection and Server Connection.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/470/1167/1600/MQ-Basic%20flow.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/470/1167/320/MQ-Basic%20flow.jpg" alt="" border="0" /&gt;&lt;/a&gt;Channels are initiated through programs called Message Channel Agents (MCA). Persistent messaging is handled by MCAs as they are the ones who deliver the messages. The message is not removed from the xmit queue (transmission queue) until the MCA confirms the placement on the target queue.&lt;br /&gt;&lt;br /&gt;I will next take a look at the properties of MQ messages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114278773088816363?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114278773088816363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114278773088816363'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/03/revisiting-wmq-basics-queues-channels.html' title='Revisiting WMQ Basics - Queues &amp; Channels'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114190576972240200</id><published>2006-03-09T17:21:00.000+05:30</published><updated>2006-03-09T17:34:08.753+05:30</updated><title type='text'>XML Design Patterns</title><content type='html'>I was reading a document on Service Payload design in &lt;a href="http://technorati.com/tag/SOA" rel="tag"&gt;SOA&lt;/a&gt; and stumbled upon this page on &lt;a href="http://www.xml.com/pub/a/2003/03/26/patterns.html?page=1"&gt;design patterns in XML by Kyle Downey&lt;/a&gt;. It talks about four patterns -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dynamic Document&lt;/li&gt;&lt;li&gt;Composition&lt;/li&gt;&lt;li&gt;Self-Documenting Files &lt;/li&gt;&lt;li&gt;Multipart Files &lt;/li&gt;&lt;/ul&gt;Use of relevant examples in the site makes it a good place to start with when designing XML messages/structures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114190576972240200?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.xml.com/pub/a/2003/03/26/patterns.html?page=1' title='XML Design Patterns'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114190576972240200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114190576972240200'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/03/xml-design-patterns.html' title='XML Design Patterns'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-114068727004732539</id><published>2006-02-23T14:55:00.000+05:30</published><updated>2006-03-09T17:20:35.216+05:30</updated><title type='text'>SAP Integration Basics</title><content type='html'>There are two ways of integrating external systems with &lt;a href="http://technorati.com/tag/SAP" rel="tag"&gt;SAP R/3&lt;/a&gt;.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ALE&lt;/li&gt;&lt;li&gt;BAPI&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://technorati.com/tag/ALE" rel="tag"&gt;ALE&lt;/a&gt; - Application Link Enabling, part of SAP's integration layer enables integration between SAP R/3 systems and other external systems. It is best suitable for use with batch objects and asynchronous integration.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technorati.com/tag/BAPI" rel="tag"&gt;BAPI&lt;/a&gt; - Business APIs are SAP's APIs to interact with SAP R/3. They are implemented as RFC functions for an SAP business object's (e.g. Customer, Vendor etc) methods. BAPI is best suitable for real time synchronous integration where the BAPI method is invoked as a request and the resultant data is returned as a reply (request-reply paradigm).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-114068727004732539?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114068727004732539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/114068727004732539'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/02/sap-integration-basics.html' title='SAP Integration Basics'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113691756567113975</id><published>2006-01-10T23:41:00.000+05:30</published><updated>2006-01-10T23:56:05.750+05:30</updated><title type='text'>SOA Startup?</title><content type='html'>After reading &lt;a href="http://weblog.infoworld.com/realworldsoa/archives/2006/01/clear_trend_soa.html" rel="tag"&gt;David Linthicum's post&lt;/a&gt; on &lt;a href="http://technorati.com/tag/SOA" rel="tag"&gt;SOA&lt;/a&gt; startups being acquired early&lt;a href="http://news.zdnet.com/2100-3513_22-6024366.html?tag=zdfd.newsfeed" rel="tag"&gt;&lt;/a&gt;, I was wondering whether I should quit my job and start a startup! Maybe a company that builds an &lt;a href="http://technorati.com/tag/ESB" rel="tag"&gt;ESB&lt;/a&gt; that runs on mobile devices? (Is it a worthwhile idea?) I would go to &lt;a href="http://avc.blogs.com/a_vc/" rel="tag"&gt;Fred Wilson&lt;/a&gt; of &lt;a href="http://www.unionsquareventures.com/"&gt;Union Square Ventures&lt;/a&gt; for &lt;a href="http://technorati.com/tag/VC" rel="tag"&gt;VC&lt;/a&gt; funding, hire &lt;a href="http://technorati.com/tag/J2ME" rel="tag"&gt;J2ME&lt;/a&gt; and Pocket C programmers and start rolling. I will also generate hype through various means and one day somebody will acquire the startup, I will be made the Vice-President and live happily ever after!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113691756567113975?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113691756567113975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113691756567113975'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/01/soa-startup.html' title='SOA Startup?'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113605863870628569</id><published>2006-01-01T01:09:00.000+05:30</published><updated>2006-01-01T01:22:19.123+05:30</updated><title type='text'>Microsoft in EAI</title><content type='html'>My knowledge of EAI is largely concentrated with IBM, Java and &lt;a href="http://technorati.com/tag/Open" source="" rel="tag"&gt;Open Source&lt;/a&gt; middleware. This week, I completed a course on &lt;a href="http://www-306.ibm.com/software/integration/wbimodeler/"&gt;IBM WBI Modeler&lt;/a&gt; and will post a summary on it shortly. After that I plan to spend sometime learning Microsoft's offerings in EAI, notably &lt;a href="http://technorati.com/tag/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113605863870628569?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113605863870628569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113605863870628569'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2006/01/microsoft-in-eai.html' title='Microsoft in EAI'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113605640997047700</id><published>2005-12-31T11:43:00.000+05:30</published><updated>2006-01-01T01:23:38.660+05:30</updated><title type='text'>Now an Integration Appliance!</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I was reading literature on &lt;a href="http://blogs.ittoolbox.com/eai/cto/authorbio.asp" rel="tag"&gt;David Linthicum&lt;/a&gt;'s &lt;a href="http://www.bridgewerx.com/" rel="tag"&gt;Bridgewerx&lt;/a&gt; appliance for SMBs (Small and Medium Scale Businesses) and also attended a &lt;a href="http://www.ebizq.net/webinars/6483.html" rel="tag"&gt;webinar&lt;/a&gt; that touched upon the product. It offers out of the box integration through:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Integration software hosted at the Bridgewerx site&lt;/li&gt;&lt;li&gt;Appliance acting as the hardware&lt;/li&gt;&lt;/ul&gt;The first step is to design the integration at the Bridgewerx site. The integration software is a &lt;a href="http://www.macromedia.com" rel="tag"&gt;Macromedia &lt;/a&gt;based web application and is available for a test run at the &lt;a href="http://www.bridgewerx.com/products/testdrive.htm" rel="tag"&gt;Bridgewerx test drive section&lt;/a&gt;. The output of the design task is a file that has to be configured and deployed on the appliance.&lt;br /&gt;&lt;br /&gt;After designing the integration at the Bridgewerx site, the &lt;a href="http://technorati.com/tag/endpoint" rel="tag"&gt;endpoints&lt;/a&gt; (source and target) have to be configured and the integration can then be deployed on the appliance. For each environment e.g. Test, Production, a separate appliance would be required.&lt;br /&gt;&lt;br /&gt;The Bridgewerx appliance is a Dell Wintel server running Windows 2003 Server, &lt;a href="http://technorati.com/tag/biztalk" rel="tag"&gt;BizTalk&lt;/a&gt; and SQL Server 2000. The complete specs are available at the &lt;a href="http://www.bridgewerx.com/products/specifications.htm" rel="tag"&gt;Bridgewerx&lt;/a&gt; site. The choice of a Microsoft based solution instead of an Open Source approach has been a little intriguing to me. But then, this could be due to the fact that most of my experience is with IBM and Java based &lt;a href="http://technorati.com/tag/middleware" rel="tag"&gt;middleware&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the &lt;a href="http://www.ebizq.net/webinars/6483.html"&gt;webinar&lt;/a&gt;, a solution using the Bridgewerx appliance was explained. The scenario was integration of &lt;a href="http://www.salesforce.com/" rel="tag"&gt;Salesforce.com&lt;/a&gt; with an internal billing application of Bridgewerx's client.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.datapower.com" rel="tag"&gt;DataPower&lt;/a&gt; is another appliances vendor which has a similar product - &lt;a href="http://www.datapower.com/products/xi50.html"&gt;XI50&lt;/a&gt;. I could not get much details on its specifications, so will not be able to compare it with Bridgewerx's product.&lt;br /&gt;&lt;br /&gt;Bridgewerx is clearly aiming at the cost-conscious SMB market with an extremely competitive pricing strategy. With IBM acquiring DataPower, it would be interesting to see how the competition in this market unfolds.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113605640997047700?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113605640997047700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113605640997047700'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/12/now-integration-appliance.html' title='Now an Integration Appliance!'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113492468049827997</id><published>2005-12-18T22:03:00.000+05:30</published><updated>2005-12-30T01:30:47.933+05:30</updated><title type='text'>Are ICCs really successful?</title><content type='html'>Amidst widespread hype about the success of &lt;a href="http://www.integrationconsortium.org/page.php?page_id=34&amp;parentId=7"&gt;Integration Competency Centers (ICC)&lt;/a&gt;, I have been hearing rumours of the &lt;a href="http://technorati.com/tag/EAI" rel="tag"&gt;ICC&lt;/a&gt; proving to be costly in at least two of the clients with whom I was/am associated with. Aside from cost (inspite of offshoring), the other reason that is spoken against the ICC is inflexibility in terms of accepting and executing requirements. This reason in most cases is true and could be explained as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Choice of Integration Tool &lt;/span&gt;&lt;br /&gt;These days the EAI tools predominantly focus on realtime transactions and process integration. Many organizations think that they are ready for realtime process integration while a deeper insight into their functioning show that they are not. This is because most of their business processes are designed to be batch oriented and changing them would have a huge impact with adverse effects. Most of the EAI requirements center around data integration levels and only require the tool to move data across systems. Thus the EAI tool in most cases, is not fully effective.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ERP Solution Centers and Process Integration&lt;/span&gt;&lt;br /&gt;The next problem is that when an EAI tool, whose general definition is to do data integration tries to get into ERP space for process integration, it is definitely frowned upon. The ERP solution centers that manage business processes as a core functionality see this as an invasion into their space and friction is bound to develop.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scarcity of Skilled EAI Resources  &lt;/span&gt;&lt;br /&gt;The problem with getting EAI skilled analysts and developers is bigger than ever before with more and more companies waking up to EAI. A fallout of this is that resources act high-handedly, dictating terms to prospective employers and demanding exorbitant salaries. And surprisingly, most of them are folks with just an year or so on &lt;span style="font-weight: bold;"&gt;a single EAI tool&lt;/span&gt;. More often than not, they fair poorly on the job as they are more of "&lt;span style="font-style: italic;"&gt;button pushers&lt;/span&gt;" or "&lt;span style="font-style: italic;"&gt;machine operators&lt;/span&gt;" with hardly any knowledge of EAI concepts and paradigms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So, where does that leave us? &lt;/span&gt;&lt;br /&gt;It may so happen that there are no concentrated competency centers doing integration anymore. Folks on a project could just double up as EAI developers as per the project requirement. This would serve to alleviate the resourcing problem and a more informed decision on the integration tool could be made as the project resources would be the ones closest to the functional requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113492468049827997?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113492468049827997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113492468049827997'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/12/are-iccs-really-successful.html' title='Are ICCs really successful?'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113406560588528711</id><published>2005-12-08T23:36:00.000+05:30</published><updated>2005-12-08T23:43:25.900+05:30</updated><title type='text'>IASA President visits this blog!</title><content type='html'>I was delighted to find &lt;a href="http://www.iasahome.org/"&gt;IASA&lt;/a&gt; president &lt;a href="http://www.iasahome.org/iasaweb/appmanager/home/home?_nfpb=true&amp;portlet_47_4_actionOverride=%2Fportlets%2Fpersonlist%2FselectDetail&amp;amp;_windowLabel=portlet_47_4&amp;portlet_47_4id=329510"&gt;Paul Preiss's&lt;/a&gt; comments on &lt;a href="http://dan8sh.blogspot.com/2005/10/iasa.html"&gt;this post&lt;/a&gt;.  It is encouraging when people read a blog and leave comments, the joy is doubled when they happen to be dignitaries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113406560588528711?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dan8sh.blogspot.com/2005/10/iasa.html' title='IASA President visits this blog!'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113406560588528711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113406560588528711'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/12/iasa-president-visits-this-blog.html' title='IASA President visits this blog!'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113380662244521463</id><published>2005-12-05T23:38:00.000+05:30</published><updated>2005-12-05T23:47:02.660+05:30</updated><title type='text'>Efficient XML Interchange - EXI</title><content type='html'>In almost all of the EAI projects that I've worked with, I have noticed one problem related to performance - the growth of message size when wrapped in XML. This is of concern especially when the data being transferred has no semantic meaning, binary data, database records being synchronized and similar examples come to mind. People have resorted to actions such as removing the XML wrapping, using EDI internally(!), switching to FTP for data transfer and even upgrading hardware servers (due to stubborn EAI evangelists with substantial clout) to overcome this. The affected parties can now take heart from the fact that the &lt;a href="http://www.w3.org/"&gt;W3C &lt;/a&gt;has setup a working group called &lt;a href="http://www.w3.org/XML/EXI"&gt;EXI &lt;/a&gt;to develop a format that improves the performance while transferring data in XML. (news through &lt;a href="http://weblog.infoworld.com/realworldsoa/archives/2005/11/new_binary_xml.html"&gt;David Linthicum's Real World SOA blog&lt;/a&gt;). Of specific interest to me is the following point in the &lt;a href="http://www.w3.org/2005/09/exi-charter-final.html"&gt;charter&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Fulfill the design goals of XML with the following exceptions:&lt;/span&gt;&lt;br /&gt;&lt;ol style="font-style: italic;"&gt;   &lt;li&gt;The interchange format must be compatible with the XML Information Set instead of being “compatible with SGML” (XML goal 3);&lt;/li&gt;   &lt;li&gt;For performance reasons, the format is not required to be “human–legible and reasonably clear” (XML goal 6); ..."&lt;br /&gt;  &lt;/li&gt; &lt;/ol&gt; Point 1 related to XML goal 3 will hopefully shed off some baggage that the present XML Info set is being burdened with. Point 2 should be the differentiator for this format and deal the killer blow. Not sure how this point will be taken care though, with entities probably?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113380662244521463?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.w3.org/XML/EXI' title='Efficient XML Interchange - EXI'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113380662244521463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113380662244521463'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/12/efficient-xml-interchange-exi.html' title='Efficient XML Interchange - EXI'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113315393693254402</id><published>2005-11-28T10:20:00.000+05:30</published><updated>2005-11-28T10:28:56.946+05:30</updated><title type='text'>SAP Internet Sales (R/3) Overview</title><content type='html'>I am presently involved in an integration with the relatively new SAP Internet Sales product. Here is an overview on it.&lt;br /&gt;&lt;br /&gt;SAP Internet Sales (R/3) is part of the &lt;a href="http://www.sap.com/solutions/business-suite/crm/index.epx"&gt;mySAP CRM suite&lt;/a&gt; based on the Self Service pattern. It is an Order Management and CRM System that allows customers to browse products, configure and place orders.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Architecture overview&lt;/span&gt;&lt;br /&gt;Internally, SAP Internet Sales uses Material Management, Customer Master, Catalog Management, Order Management and Contract Management modules. It is based on an MVC architecture on top of the SAP J2EE engine. Layers are present that map to the Model, View and Control as follows:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Presentation/View: Interaction and Presentation Layer&lt;/li&gt;   &lt;li&gt;Model: Business Objects Layer&lt;/li&gt;   &lt;li&gt;Control: Business Logic Services Layer&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt; The communication with the model happens through a Java Connector. An Index Server to optimize search/browse of products and a Pricing &amp;amp; Configurator module are built in.&lt;br /&gt;&lt;br /&gt;Other features in SAP Internet Sales are:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Orders are saved in real time in R/3 with no delay or intermediate storage&lt;/li&gt;   &lt;li&gt;Web access user accounts are created for customers existing in SAP R/3. The usual process of users registering through the web for accounts in R/3 is also possible.&lt;/li&gt;   &lt;li&gt;Material Master module is the foundation of the catalog&lt;/li&gt;   &lt;li&gt;Product catalog uses the material data, prices, multimedia objects and text descriptions to build the catalog&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113315393693254402?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sap.com/solutions/business-suite/crm/internetsales/index.epx' title='SAP Internet Sales (R/3) Overview'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113315393693254402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113315393693254402'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/11/sap-internet-sales-r3-overview.html' title='SAP Internet Sales (R/3) Overview'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113256281771045096</id><published>2005-11-21T13:56:00.000+05:30</published><updated>2005-11-21T14:16:57.733+05:30</updated><title type='text'>Estimating Development Effort in EAI - II</title><content type='html'>Following &lt;a href="http://vivek.sanchivi.com/blog/?p=13"&gt;Vivek&lt;/a&gt; and &lt;a href="http://controlledagility.typepad.com/weblog/2005/10/finding_the_gen.html"&gt;Controlled Agility's&lt;/a&gt; thoughts on my post on &lt;a href="http://dan8sh.blogspot.com/2005/08/estimating-interface-development.html"&gt;Estimation in EAI projects&lt;/a&gt;, I learnt Function Point (FP) estimation and realized that the thoughts on my earlier post do not hold true for estimation during all phases. FP is the technique to use when estimating at an earlier phase, say costing or discovery, as there are very few details available. Work Breakdown Structure (WBS), on the other hand,  is best suited for estimation in the development phase, when all the details are available, the development tool has been finalized and resources with expertise in the tool are also available.&lt;br /&gt;&lt;br /&gt;I had plans to rewrite my earlier post with FP as the base, but will not do so now because Controlled Agility covers it in more depth in &lt;a href="http://controlledagility.typepad.com/weblog/2005/10/function_point_.html"&gt;this post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113256281771045096?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113256281771045096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113256281771045096'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/11/estimating-development-effort-in-eai.html' title='Estimating Development Effort in EAI - II'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113177983692857682</id><published>2005-11-12T12:24:00.000+05:30</published><updated>2005-11-12T12:47:16.940+05:30</updated><title type='text'>IBM, make up your mind!</title><content type='html'>&lt;span style="font-size:100%;"&gt;I was deciding an integration architecture for a prospective client and suggested the use of IBM Interchange Server (ICS) for an A2A requirement. Another colleague who was documenting the approach mentioned that ICS was not sold independently now and offered as part of WebSphere Integration Server and showed the following links as evidence - &lt;a href="http://www-306.ibm.com/software/integration/wbiserver/"&gt;http://www-306.ibm.com/software/integration/wbiserver/&lt;/a&gt; and &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a title="http://www-306.ibm.com/software/integration/wbiserver/faq-43.html" href="http://www-306.ibm.com/software/integration/wbiserver/faq-43.html"&gt;&lt;span title="http://www-306.ibm.com/software/integration/wbiserver/faq-43.html"&gt;http://www-306.ibm.com/software/integration/wbiserver/faq-43.html&lt;/span&gt;&lt;/a&gt;&lt;span title="http://www-306.ibm.com/software/integration/wbiserver/faq-43.html"&gt;. So, we decided to follow the nomenclature and used the name WebSphere Integration Server in our architecture.&lt;br /&gt;&lt;br /&gt;When we checked the price of the products with IBM, their representative mentioned that ICS was no longer part of WebSphere Integration Server and was part of another product called WebSphere Server Foundation, so we went ahead and updated the product name. After a short while another IBM representative spoke with us to clarify a few technical queries and mentioned that ICS was part of WebSphere Integration Server and not Server Foundation!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When the final architecture was reviewed, a colleague presented an IBM announcement mail in which it was mentioned that WebSphere Integration Server was being sunset and replaced with ICS independently! At this point, we were at our wit's end. As of the time of this post, I am still not sure whether ICS exists as an independent or as part of WebSphere Integration Server or WebSphere Server Foundation. IBM may make great products but their naming and packaging leaves a lot to be desired.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113177983692857682?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113177983692857682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113177983692857682'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/11/ibm-make-up-your-mind.html' title='IBM, make up your mind!'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-113052054177322588</id><published>2005-10-28T22:48:00.000+05:30</published><updated>2005-10-28T22:59:01.816+05:30</updated><title type='text'>Point Solutions</title><content type='html'>I was looking at understanding what a Point Solution meant and came across this &lt;a href="http://avc.blogs.com/a_vc/2005/10/point_solutions.html"&gt;post&lt;/a&gt; by Fred Wilson, a VC. From his post, I understood that a Point Solution was aimed at addressing a specific problem rather than acting as an end to end solution. &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; is a classic example of a point solution providing search capabilities. Though it provides other services, it is not integrated like &lt;a href="http://www.yahoo.com"&gt;Yahoo!&lt;/a&gt; is. To elaborate further, though &lt;a href="http://www.Blogger.com"&gt;Blogger&lt;/a&gt; is part of Google, the registration for using Blogger is independent of the registration required to use GMail, whereas Yahoo! is a portal, offering services customized for each user.&lt;br /&gt;&lt;br /&gt;While many people like the concept of a portal as an end to end solution, there are others that would only like to take only how much they can chew. As Fred notes in his post, web sites with simple independent services such as &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt; that offer bookmark management are point solutions that are very popular.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-113052054177322588?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113052054177322588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/113052054177322588'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/10/point-solutions.html' title='Point Solutions'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112981730311899370</id><published>2005-10-20T19:40:00.000+05:30</published><updated>2005-10-20T19:38:23.126+05:30</updated><title type='text'>IASA</title><content type='html'>I stumbled across the website of &lt;a href="http://www.iasahome.org/"&gt;IASA &lt;/a&gt;- International Association of Software Architects. One of their primary tasks is standardizing the role of a Software Architect and they are compiling a taxonomy to that effect. Initially, I did not think much about it but when I read that &lt;a href="http://en.wikipedia.org/wiki/Grady_Booch"&gt;Grady Booch&lt;/a&gt; was on their board of advisors, I went ahead and registered. Their website is in beta and registration is a pain, I had to enter the confirmation code several times before getting myself successfully registered. But it is still a good idea to register yourself as there seem to be a quite a few things planned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112981730311899370?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.iasahome.org' title='IASA'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112981730311899370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112981730311899370'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/10/iasa.html' title='IASA'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112936443208955946</id><published>2005-10-15T13:49:00.000+05:30</published><updated>2005-10-15T13:50:32.096+05:30</updated><title type='text'>Integration Choices: Interactive vs. Non-Interactive</title><content type='html'>A colleague of mine had a question on when a user interface (UI) would need to be provided to invoke a business service vs. using a database trigger to do the same. According to me,&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;When the business pattern is Self Service i.e. the user wants to query the status of an order or place a claim (interactive), a UI would be most appropriate. In other words, whenever there is an interaction between a user and a system/application.&lt;/li&gt;   &lt;li&gt;When the business pattern is Application Integration i.e. synchronization between multiple databases or legacy systems or batch driven updates (non-interactive), a database trigger could be chosen. In simpler terms, whenever there is interaction among applications/systems rather than users and applications.&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112936443208955946?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112936443208955946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112936443208955946'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/10/integration-choices-interactive-vs-non.html' title='Integration Choices: Interactive vs. Non-Interactive'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112919134078844055</id><published>2005-10-13T13:28:00.000+05:30</published><updated>2005-10-13T13:45:40.836+05:30</updated><title type='text'>SOA - Can we see some real projects please?</title><content type='html'>It is been over 4 months since my &lt;a href="http://dan8sh.blogspot.com/2005/06/ibms-soa-seminar-construal.html"&gt;first brush&lt;/a&gt; with SOA. I am now beginning to wonder if there are any real SOA projects being implemented at all. By real SOA projects, I do not mean pilots or proof of concepts (POC) or projects that have been existing pre-SOA and rebranded SOA compliant with a few Web Services thrown in. Rather I am looking at projects that have been started from scratch with SOA as the base. Unfortunately, I have not seen any real world implementations of SOA and have begun to doubt if there will ever be a SOA project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112919134078844055?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112919134078844055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112919134078844055'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/10/soa-can-we-see-some-real-projects.html' title='SOA - Can we see some real projects please?'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112697729537942342</id><published>2005-09-17T22:39:00.000+05:30</published><updated>2005-09-17T22:44:55.386+05:30</updated><title type='text'>Virtualization</title><content type='html'>I have been involved in the setup of one of the servers and was doing some research on Virtualization. Virtualization is the process of abstracting hardware details from the software that runs on top of it. &lt;a href="http://www.VMWare.com"&gt;VMWare&lt;/a&gt; is one of the popular software used for virtualization, IBM too has  software that does the same thing. Two operating systems could be made to run on top of a virtual layer created by VMWare running on the server, which would make the OS believe that there are two servers available.&lt;br /&gt;&lt;br /&gt;One of the common uses of hardware virtualization are for sharing a server between two environments. I am not sure if it helps in reducing product licenses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112697729537942342?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112697729537942342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112697729537942342'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/09/virtualization.html' title='Virtualization'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112522764293243498</id><published>2005-08-28T16:50:00.000+05:30</published><updated>2005-10-19T13:02:26.443+05:30</updated><title type='text'>Estimating Interface Development Effort in EAI Projects</title><content type='html'>Recently, I had been assigned the task of reviewing and improving the effort estimation in developing interfaces in EAI projects. I had tried this in the past but with little success.&lt;br /&gt;&lt;br /&gt;To understand the problems in estimating EAI projects, we would need to understand how EAI projects are implemented. The following two approaches are largely followed in the development of EAI projects:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Directly using Off the Shelf EAI products&lt;/li&gt;   &lt;li&gt;Building and using frameworks on top of EAI products &lt;/li&gt; &lt;/ul&gt; When developing directly using EAI products, the problems are that each product comes with its own unique set of components to define an interface. For instance, an interface in &lt;a href="http://www-306.ibm.com/software/integration/wbiserver/ics/"&gt;IBM's WBI InterChange Server&lt;/a&gt; would largely be built using&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Connectors&lt;/li&gt;   &lt;li&gt;Business Objects&lt;/li&gt;   &lt;li&gt;Maps&lt;/li&gt;   &lt;li&gt;Collaborations&lt;/li&gt; &lt;/ul&gt; where as in a project that uses &lt;a href="http://www.ascential.com/products/ds_tx.html"&gt;Mercator &lt;/a&gt;(now WebSphere DataStage TX) and &lt;a href="http://www.ibm.com/software/integration/wmq/v60/"&gt;IBM WebSphere MQ&lt;/a&gt;, the interface would be composed of&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Adapters&lt;/li&gt;   &lt;li&gt;Type Trees&lt;/li&gt;   &lt;li&gt;Maps&lt;/li&gt; &lt;/ul&gt; We could roughly equate Adapters with Connectors, Business Objects with Type Trees and Maps with Maps at an architecture level. Collaborations, though are absent in Mercator. However, at an implementation level, the differences are too much to be left unconsidered. For instance, Business Objects are totally based on XML while Type Trees are not. Maps in ICS allow for extensive custom code to be written while in Mercator, only limited custom code can be written using the in-built scripting language. The absence of a component (Collaboration) also makes a great deal of difference. These are scenarios using only two of the many products available in the market. When we consider all available EAI products it becomes uncomprehensible.&lt;br /&gt;&lt;br /&gt;The framework approach involves building a layer over the EAI products in order to add commonly required features and reduce development effort. The aforementioned problem applies to this situation too, as there is no standard way of defining an interface leading to frameworks that are specific to EAI products.&lt;br /&gt;&lt;br /&gt;So, in order to arrive at a standard way of estimating EAI interface efforts, the product vendors need to define interfaces in a standard way. They should decide and agree that an interface would consist of standard components, for example, Adapters, Message Sets, Maps and Message Flows that would in turn be built of standard units, e.g rules, parameters etc The competion among the vendors would then be on providing the best components and the best server. Till then, interfaces would remain kludges and estimating their development time, unreliable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112522764293243498?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112522764293243498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112522764293243498'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/08/estimating-interface-development.html' title='Estimating Interface Development Effort in EAI Projects'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112369965808777985</id><published>2005-08-11T00:18:00.000+05:30</published><updated>2005-08-11T00:21:20.783+05:30</updated><title type='text'>Software Architect Bootcamp Book Notes</title><content type='html'>I was browsing through the book &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0130274070/104-1566827-3442353?v=glance"&gt;Software Architect Bootcamp&lt;/a&gt; by Malveau and Mowbray and noted down a few interesting points.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rule of Three&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;A single design occurrence is an event&lt;/li&gt;   &lt;li&gt;Two design occurrences is a coincidence&lt;/li&gt;   &lt;li&gt;Three design occurrences is a pattern&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Classic Reference Model for Consulting Intervention &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;What is the problem?&lt;/li&gt;   &lt;li&gt;What are others doing to contribute to the problem? &lt;/li&gt;   &lt;li&gt;What are you doing to contribute to the problem?&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Components Vs. Objects - Principles of Components&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Encapsulation&lt;/li&gt;   &lt;li&gt;Polymorphism&lt;/li&gt;   &lt;li&gt;Late binding (composition during design time)&lt;/li&gt;   &lt;li&gt;Safety (e.g. in Java, memory safety is guaranteed through Garbage Collection)&lt;/li&gt;   &lt;li&gt;No inheritance - delegation (invocation) is used instead&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112369965808777985?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112369965808777985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112369965808777985'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/08/software-architect-bootcamp-book-notes.html' title='Software Architect Bootcamp Book Notes'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112300356516303013</id><published>2005-08-02T22:35:00.000+05:30</published><updated>2005-08-02T22:56:05.193+05:30</updated><title type='text'>Publish Subscribe with Ack</title><content type='html'>In a past project, we had implemented a "new EAI pattern" - &lt;a href="http://www.eaipatterns.com/PublishSubscribeChannel.html"&gt;Publish Subscribe&lt;/a&gt; with acknowledgement. How this was different from the regular Publish Subscribe was that all the subscribers would acknowledge the receipt of the message to the publisher, adding another layer to "guaranteed" delivery - a cross between &lt;a href="http://www.eaipatterns.com/RequestReply.html"&gt;Request Reply&lt;/a&gt; and Publish Subscribe patterns. The usage scenario was, while sending master data from a Source of Record to all subscribing systems, the receipt of the data was to be ensured as it was functionally critical.&lt;br /&gt;&lt;br /&gt;I am not too convinced that this is indeed a new pattern as publishers in the &lt;a href="http://www.eaipatterns.com/PublishSubscribeChannel.html"&gt;Publish Subscribe&lt;/a&gt; pattern, need not be aware of the subscribers. But in this case they would have to be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112300356516303013?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112300356516303013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112300356516303013'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/08/publish-subscribe-with-ack.html' title='Publish Subscribe with Ack'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112170658245545264</id><published>2005-07-18T22:34:00.000+05:30</published><updated>2005-07-18T22:39:42.460+05:30</updated><title type='text'>Short talk on Canonical Messaging</title><content type='html'>I gave a short talk on Canonical Messaging to colleagues I work with. It went well and I felt good to be back in front of an audience after a gap. The contents of the talk where derived largely from the white paper that I wrote a long time ago. The white paper is available at the link mentioned in this post's title.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112170658245545264?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.wipro.com/eai' title='Short talk on Canonical Messaging'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112170658245545264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112170658245545264'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/07/short-talk-on-canonical-messaging.html' title='Short talk on Canonical Messaging'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-112127527180294882</id><published>2005-07-13T22:40:00.000+05:30</published><updated>2005-07-13T22:51:11.806+05:30</updated><title type='text'>Facade to the rescue</title><content type='html'>Whenever I have been at a loss while explaining on Service enabling of existing applications (bringing them into the SOA fold) , I have always hidden myself behind the Facade pattern - all details are abstracted from the invoking application and only the service to be invoked is exposed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-112127527180294882?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112127527180294882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/112127527180294882'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/07/facade-to-rescue.html' title='Facade to the rescue'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111981441080078647</id><published>2005-06-27T00:45:00.000+05:30</published><updated>2006-01-03T22:08:15.336+05:30</updated><title type='text'>BPEL in a nutshell</title><content type='html'>BPEL (Business Process Execution Language) is a language that can be used to model business process flows. &lt;span style="font-weight: bold;"&gt;BPELScript &lt;/span&gt;is an XML schema based script that is used to write or generate process flow steps (&lt;span style="font-weight: bold;"&gt;activities&lt;/span&gt;). A runtime interpretor aka &lt;span style="font-weight: bold;"&gt;BPEL Engine&lt;/span&gt; executes the BPEL scripts. A &lt;span style="font-weight: bold;"&gt;Partner Link&lt;/span&gt; contains the context or role of the BPEL script and the application(s) interactions. Partner Links are present as tags in the BPEL script. Client and Service Provider (Server) are a few roles that can be defined using a Partner Link.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anatomy of a BPEL Script&lt;/span&gt;&lt;br /&gt;A BPEL script, in general, consists of:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;A root tag named Process&lt;/li&gt;   &lt;li&gt;Required WSDL or other schema imports&lt;/li&gt;   &lt;li&gt;Partner Links to establish the role of this BPEL script (process) and the interacting applications&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Variable definitions&lt;/li&gt;   &lt;li&gt;Fault Handlers and Event Handlers&lt;/li&gt;   &lt;li&gt;A sequence containing any of the activities defined below. &lt;/li&gt; &lt;/ol&gt; &lt;span style="font-weight: bold;"&gt;Activities&lt;/span&gt;&lt;br /&gt;Process modeling in BPEL is done using activities and there are four main types of activities in BPEL.&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Communication: These activities are for receiving input messages or text from other applications or invoking methods in other applications to get input.&lt;/li&gt;   &lt;li&gt;Control: Control activities are the control structures in BPEL. Switch, Case, Otherwise, While, Flow and Wait are the activities available.&lt;/li&gt;   &lt;li&gt;Fault: Fault activities are used to handle errors and exceptions. Throw, Catch, CatchAll, Terminate and Compensate are the activities available.&lt;/li&gt;   &lt;li&gt;Other: Other activities are available for assigning, copying or transforming variables and returning their values&lt;/li&gt; &lt;/ol&gt; &lt;s&gt;In order to better understand the capabilities of BPEL, I hope to model a process using the different Partner Links and activities available in BPEL. I will do a post on the outcome of that activity here.&lt;/s&gt; Lack of time led to the Cape Clear license getting expired, so no more BPEL :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111981441080078647?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111981441080078647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111981441080078647'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/bpel-in-nutshell.html' title='BPEL in a nutshell'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111954642298579164</id><published>2005-06-23T22:30:00.000+05:30</published><updated>2005-06-26T02:06:52.530+05:30</updated><title type='text'>SOA - So what's new?</title><content type='html'>I was talking to a colleague on SOA, ESB and other related stuff that I've blogged here. He gave me a patient hearing and asked, "so what's new?" He said that all this SOA stuff was already being done in the EAI space for a long time now, even before the term SOA was coined. "An adapter is a service, right?", he asked and I said yes and went back to square one - asking myself, so what is an SOA? More importantly, what is a "service"?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Update]&lt;/span&gt;&lt;br /&gt;After posting on my state of mind above, I went ahead Googling for SOA definitions and reasons, hoping to find better meaning and purpose for its existence. I found John Reynolds' post &lt;a href="http://weblogs.java.net/blog/johnreynolds/archive/2005/01/the_soa_elevato.html"&gt;"The SOA Elevator Speech"&lt;/a&gt; very satisfying. The perspective on SOA is that while normal integration focusses on the technical aspects, SOA does that at a business level - all services are described at a business level rather than a technical level (to paraphrase John: processing an order is a service in a SOA while updating a record in a database is not).&lt;br /&gt;&lt;br /&gt;I hope that I am now better prepared to take on that colleague of mine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111954642298579164?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111954642298579164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111954642298579164'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/soa-so-whats-new.html' title='SOA - So what&apos;s new?'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111903567467014442</id><published>2005-06-18T00:34:00.000+05:30</published><updated>2005-06-23T22:26:30.150+05:30</updated><title type='text'>Routing in Cape Clear 6</title><content type='html'>According to Gartner, an ESB should provide the following features:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Transportation &lt;/li&gt;   &lt;li&gt;Routing&lt;/li&gt;   &lt;li&gt;Transformation&lt;/li&gt;   &lt;li&gt;Web Services&lt;/li&gt; &lt;/ol&gt; Let us examine the Routing features in Cape Clear 6. Routing in Cape Clear 6 can be setup in the Cape Clear Manager by adding "Routes". Routes are made up of "destination endpoints" that could either be HTTP/HTTPS URLs or JMS (JBoss/IBM MQ) destinations. Complex routing (similar to having a hub/router) can be setup as a composition of multiple routes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Content based routing&lt;/span&gt; is accomplished using a XPath or a regular expression match. The messages are searched for the expression and routed to the web service subscribing to that expression. The expressions are set at the "Route" level.&lt;br /&gt;&lt;br /&gt;The source for an integration is always a Web Service where as the destinations could be HTTP URLs or JMS destinations (topic or a queue) endpoint, as mentioned previously.&lt;br /&gt;&lt;br /&gt;Cape Clear 6 provides a service for transformation to/from multiple formats including Excel, Flat files, HTTP Post, Custom Java and XML. XSLT is used to develop the mappings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111903567467014442?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111903567467014442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111903567467014442'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/routing-in-cape-clear-6.html' title='Routing in Cape Clear 6'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111885371040252528</id><published>2005-06-15T21:57:00.000+05:30</published><updated>2005-06-15T22:11:50.753+05:30</updated><title type='text'>Buy vs. Build Strategies</title><content type='html'>I have always been in favour of the "Buy" approach for integration projects rather than "Build" considering the many advantages that it brings. Ronan Bradley, CEO of &lt;a href="http://www.polarlake.com"&gt;Polar Lake&lt;/a&gt; has written a good blog entry at the &lt;a href="http://www.integrationconsortium.org/icblog/?sectionid=7"&gt;Integration Consortium Soapbox&lt;/a&gt;. Do take a look at it, it makes interesting reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111885371040252528?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.integrationconsortium.org/icblog/?sectionid=7' title='Buy vs. Build Strategies'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111885371040252528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111885371040252528'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/buy-vs-build-strategies.html' title='Buy vs. Build Strategies'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111851950377034264</id><published>2005-06-12T01:08:00.000+05:30</published><updated>2005-06-12T01:21:43.773+05:30</updated><title type='text'>Hello Cape Clear 6!</title><content type='html'>I was playing around with Cape Clear 6, an Enterprise Service Bus (ESB), to understand web services better and to get to know the concepts of an ESB. My first impression was that it was remarkably easy to understand and use. Though I only went through the Hello World tutorial, I thought the concepts of &lt;span style="font-weight: bold;"&gt;Design&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Develop&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Deploy&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Test &lt;/span&gt;were mapped clearly to the product GUI. Following are the points that I learnt from the Hello World tutorial on building web services. The corresponding phases in the Web Services Development cycle are mentioned within brackets in bold.&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Generate a WSDL &lt;span style="font-weight: bold;"&gt;(Design)&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Add operations in the WSDL for accepting request and sending a response &lt;span style="font-weight: bold;"&gt;(Design)&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Generate Java server code &lt;span style="font-weight: bold;"&gt;(Develop)&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Edit the server code to add business logic corresponding to step 2 &lt;span style="font-weight: bold;"&gt;(Develop)&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Rebuild the server jar &lt;span style="font-weight: bold;"&gt;(Develop)&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Deploy the web service &lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(includes packaging the server jar file into a WSAR)&lt;/span&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;(Deploy)&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Generate and deploy a JSP web client for testing the web service  &lt;span style="font-weight: bold;"&gt;(Deploy)&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Test the web service through the JSP web client &lt;span style="font-weight: bold;"&gt;(Test)&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; The next task is to actually build a BPEL based Orchestration Service and use Cape Clear 6 as an ESB. BPEL - Business Process Execution Language based on WSDL, would probably replace Java in steps 3 and 4 mentioned above. An XML based language that can actually be executed, should be fun!&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111851950377034264?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.capeclear.com' title='Hello Cape Clear 6!'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111851950377034264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111851950377034264'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/hello-cape-clear-6.html' title='Hello Cape Clear 6!'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111833963590597770</id><published>2005-06-09T23:21:00.000+05:30</published><updated>2005-06-09T23:37:07.316+05:30</updated><title type='text'>IBM's SOA seminar - A Construal</title><content type='html'>I had attended a seminar by IBM on Service Oriented Architecture (SOA) sometime last month and thought that I should share my comprehension on the points that I thought were interesting:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;IBM mentioned that SOA was more suitable for migrating existing architectures rather than building new applications from scratch&lt;/li&gt;   &lt;li&gt;Web Services Gateway can be used for routing; as an interface between a web services client and a legacy application that was being web enabled. Enterprise Service Bus (ESB) can be used as a broker and it appears to be a successor to the broker architecture.&lt;/li&gt;   &lt;li&gt;An overview of BPEL4WS (Business Process Execution Language for Web Services) was provided. It is a language for business process modeling similar to collaborations in IBM WBI Interchange Server.&lt;/li&gt;   &lt;li&gt;The site &lt;a href="http://www.ws-i.org/"&gt;http://www.ws-i.org&lt;/a&gt; details the Web Services interoperability standards.&lt;/li&gt;   &lt;li&gt;For transporting large volume of data, JMS queues could be used instead of HTTP for reliable delivery &lt;/li&gt;   &lt;li&gt;Security aspects related to Web Services were touched upon and it was mentioned that standards present for HTTPS would possibly be adopted for Web Services&lt;/li&gt;   &lt;li&gt;New tags such as &lt;wsse:security&gt; would be present in the SOAP header to indicate if the SOAP envelope was signed&lt;/wsse:security&gt;&lt;/li&gt;   &lt;li&gt;SOA Design Patterns and Anti-Patterns were discussed. Following are the details:&lt;/li&gt; &lt;/ol&gt; &lt;span style="font-weight: bold;"&gt;Patterns&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Unified Logical View: Facade pattern - presents one service to the external world and routes the request internally to the appropriate subsystem&lt;/li&gt;   &lt;li&gt;Adapters for legacy code - This is similar to the EAI adapters. Web services are exposed as adapters.&lt;/li&gt;   &lt;li&gt;Composable components (BPEL) - Using BPEL, each process could be modeled as a task&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Replaceable components - Develop components that are implementation independent&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anti-Patterns&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;SOAP over HTTP or XML should not be used within layers of an application&lt;/li&gt;   &lt;li&gt;It should be used only when exposing a layer of the application to other applications&lt;/li&gt; &lt;/ol&gt;I would like to add a general disclaimer that the above points are according to my understanding, it is possible that I might have misinterpreted some of the points (but it is highly unlikely :)).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111833963590597770?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111833963590597770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111833963590597770'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/ibms-soa-seminar-construal.html' title='IBM&apos;s SOA seminar - A Construal'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111799886506106409</id><published>2005-06-06T00:35:00.000+05:30</published><updated>2006-03-09T17:37:35.440+05:30</updated><title type='text'>MQ 6.0 Open Beta Available</title><content type='html'>Looks like the IBM WebSphere MQ Open beta v6.0 has been available for a while now. I am excited to learn that there would be integrated support for web services, which probably means that there would be some intelligence built into the product to understand SOAP requests.  Another feature that caught my eye was that the new administrative GUI for the product is built on the Eclipse platform.  &lt;strike&gt;I will hopefully download the product soon and try these new features out.  Stay tuned for a review.&lt;/strike&gt; &lt;br /&gt;&lt;br /&gt;Update: Laziness and other higher priority tasks have made this activity a non-starter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111799886506106409?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www-306.ibm.com/software/integration/wmq/v60/beta/' title='MQ 6.0 Open Beta Available'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111799886506106409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111799886506106409'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/mq-60-open-beta-available.html' title='MQ 6.0 Open Beta Available'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-13327496.post-111782178146706504</id><published>2005-06-03T23:16:00.000+05:30</published><updated>2005-06-03T23:33:01.470+05:30</updated><title type='text'>Integration Architect? Who's that?</title><content type='html'>I've searched the web a good deal to find out an Integration Architect's role and responsibilities, and found quite a few definitions.  But most of them seem to be specific to a requirement, so I thought I should create one that is more generic. &lt;span style="font-weight: bold;"&gt;According to me, an Integration Architect would be the one who defines the architecture for integrating applications (using a tool or a framework) and creates a methodology for implementing "Integrations" or "Interfaces" between applications using the defined architecture. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;He/she would typically go through the standard development lifecycle from inception to delivery. The involvement from the architect's perspective would be heavy during inception, light in the middle and moderate towards the end. Tasks the architect would perform in the large middle period would be guiding the implementation team and towards the end would largely be validating the solution against the requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13327496-111782178146706504?l=dan8sh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111782178146706504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13327496/posts/default/111782178146706504'/><link rel='alternate' type='text/html' href='http://dan8sh.blogspot.com/2005/06/integration-architect-whos-that.html' title='Integration Architect? Who&apos;s that?'/><author><name>Danesh</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
