<?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-8525798267469101022</id><updated>2011-11-27T16:34:41.528-08:00</updated><title type='text'>Technical Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>N</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>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-5681789863678449709</id><published>2009-09-15T14:06:00.000-07:00</published><updated>2009-09-15T14:10:10.938-07:00</updated><title type='text'>SOA Benefits</title><content type='html'>SOA Definition&lt;br /&gt;&lt;div align="justify"&gt;Service Oriented architecture (SOA) provides the effective way of realising reusable, interoperable services. It defines set of principles and guidelines for effective implementation of services. The key difference between traditional programming and SOA is reusability of the business logic. SOA implemented effectively helps in bringing down the Total cost of ownership (TCO).&lt;/div&gt;&lt;br /&gt;SOA Benefits&lt;br /&gt;Following are few of the SOA advantages&lt;br /&gt;1) Reusable services 2) Effective governance 3) Interoperability of disparate technologies through adherence to standards 4) Support for BPM 5) Aligning technology with business requirements 6) Adaptable to business changes 7) Lower TCO through reduced development life cycle and integration costs due to reusable services and standards based integration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-5681789863678449709?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/5681789863678449709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=5681789863678449709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/5681789863678449709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/5681789863678449709'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2009/09/soa-benefits.html' title='SOA Benefits'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-5401726484599166981</id><published>2009-08-09T16:19:00.000-07:00</published><updated>2009-09-15T14:10:42.502-07:00</updated><title type='text'>Difference between SCA and JBI</title><content type='html'>Java Business Integration (JBI) acts as a container (similiar to J2EE container which binds jsps, servlets, EJBs together) providing the deployment environment for service engines (BPEL SE, Java EE etc) and the binding components (SOAP,FTP etc) and facilitates in integrating them together. The interactions between service engines and binding components happens via Normalised message router (NMR) which plays a mediator role.&lt;br /&gt;&lt;br /&gt;Service component architecture (SCA) specification helps in building and binding the components together using service oriented approach. SCA enables in writing platform independent components which can be invoked by disparate technologies seamlessly. Key here is that there is no requirement for a coordinator to bind different components together as the components themselves have the capability to communicate seamlessly in platform independent manner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-5401726484599166981?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/5401726484599166981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=5401726484599166981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/5401726484599166981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/5401726484599166981'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2009/08/difference-between-sca-and-jbi.html' title='Difference between SCA and JBI'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-2624851844749107882</id><published>2009-08-06T19:29:00.000-07:00</published><updated>2009-08-09T16:17:02.715-07:00</updated><title type='text'>Difference between ESB and Hub &amp; Spoke</title><content type='html'>&lt;p&gt;What is an ESB and how is it different from other Integration patterns like point to point and hub and spoke model?. In recent months this is the question most frequently posed to me by people who are about to start a project involving an ESB or who attended sessions on ESB's but still not sure about what exactly is it.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Let me start by first giving the definition of an ESB. ESB is a decentralised middleware infrstructure which facilitates seamless integration with disparate technologies and fostering reusability.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now lets talk about other two popular design patterns, Point to Point design pattern establishes tight coupling between source and target systems by directly talking to target API. As the systems are tightly coupled there won't be any question of reusability.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;In the Hub and Spoke pattern source and target systems are integrated through a centralised Hub. This centralised hub controls the flow of information between disparate technologies. But the main pitfall here is the centralised nature of the Hub itself. If there is any glitch with the Hub, communication between disparate technologies comes to stand still. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now the difference between ESB and the other two design patterns is Decentralisation and Reusability. These are the two key factors which makes ESB different from other integartion design patterns. In ESB, along with ESB the services that makes an ESB are themselves reusable and they are decentralised which makes it efficient than other design patterns . Since the services in ESB are decentralised it becomes easy for supporting features like clustering,failover where as in hub and spoke model it is a big challenge to support the same. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-2624851844749107882?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/2624851844749107882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=2624851844749107882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/2624851844749107882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/2624851844749107882'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2009/08/difference-between-esb-and-hub-and.html' title='Difference between ESB and Hub &amp; Spoke'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-3774034502665580188</id><published>2009-04-05T03:12:00.000-07:00</published><updated>2009-04-05T03:49:28.497-07:00</updated><title type='text'>DOZER Framework and JCAPS512</title><content type='html'>Given the multilayered nature of the applications following SOA architectural approach,it becomes imperative that the message model being used in one layer is not bleeded in to other layers so that the layers are loose coupled.If we want to acheive the reusability of the business logic effectively,let the mapping functionality between different message models be segregated from the business logic and be handled by a mapping framework.&lt;br /&gt;&lt;br /&gt;Advantages of using a mapping framework&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Helps in providing more emphasis on business logic rather than focussing on the mapping intricasies by bifurcating the mapping functionality from the business logic.&lt;/li&gt;&lt;li&gt;Ease to maintain.&lt;/li&gt;&lt;li&gt;Ease to map.&lt;/li&gt;&lt;li&gt;Mapping between various data structures,Deep mapping,Mapping based on the indexes.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Lets take an example to showcase the usage of the mapping framework in JCAPS512 environment&lt;/p&gt;&lt;p&gt;Objective:Service(implemented using a JCD) needs to invoke another service by passing an object(java object,lets call it as a target object).The target object needs to be populated with the values passed on from source system which is unmarshalled in to an OTD being used in the JCD metioned above.The response from the target service is mapped to an output OTD in the source service(JCD) and send to an appropriate destination.&lt;/p&gt;&lt;p&gt;This can be implemented in the following way&lt;/p&gt;&lt;p&gt;1)Populate the input OTD with the message from the source system.&lt;/p&gt;&lt;p&gt;2)Using DOZER framework map the fields from the input OTD to that of the target object expected by the target service.&lt;/p&gt;&lt;p&gt;3)Map the output from the target service to the output OTD using DOZER framework.&lt;/p&gt;&lt;p&gt;Make the following code singleton&lt;/p&gt;&lt;p&gt;MapperIF mapper = new DozerBeanMapper(); &lt;/p&gt;&lt;p&gt;DestinationObject destObject = (DestinationObject)mapper.map(otdObject,DestinationObject.class);&lt;/p&gt;&lt;p&gt;//set or get the values using the destObject object&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Sample mapping file for mapping between source and target fields&lt;/p&gt;&lt;p&gt;&lt;mapping&gt;&lt;/p&gt;&lt;p&gt;&lt;class-a&gt;/&lt;class-a&gt;package.sourceOTDClassName&lt;/CLASS-A&gt;&lt;/p&gt;&lt;p&gt;&lt;class-b&gt;package.DestinationClassName&lt;/CLASS-B&gt;&lt;/p&gt;&lt;p&gt;&lt;field&gt;&lt;/p&gt;&lt;p&gt;&lt;a&gt;SourceFieldName&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;DestinationFieldName&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/field&gt;&lt;/p&gt;&lt;p&gt;&lt;/mapping&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-3774034502665580188?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/3774034502665580188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=3774034502665580188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/3774034502665580188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/3774034502665580188'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2009/04/dozer-framework-and-jcaps512.html' title='DOZER Framework and JCAPS512'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-8047903457459724199</id><published>2009-04-05T02:57:00.000-07:00</published><updated>2009-04-05T03:07:47.018-07:00</updated><title type='text'>External Jars in JCAPS512 Environment</title><content type='html'>Loading external jars in to JCAPS512 environment can be done in couple of ways.&lt;br /&gt;1)Import the jar directly in to the JCD(The jar should be imported in to the project where this JCD is used or have access).&lt;br /&gt;2)Place the jars in JCAPS\eDesigner\usr\lib\ext folder(If jars are placed in the above mentioned folder,to get the JCD recognize the methods exposed by the jar we have to type the entire package strcuture for the first time).&lt;br /&gt;&lt;br /&gt;For runtime configuration&lt;br /&gt;If the jars are not included as part of JCD,then for runtime loading of external jars,they have to be placed in JCAPS\logicalhost\is\lib folder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-8047903457459724199?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/8047903457459724199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=8047903457459724199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/8047903457459724199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/8047903457459724199'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2009/04/external-jars-in-jcaps512-environment.html' title='External Jars in JCAPS512 Environment'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-1761013276239608669</id><published>2009-01-22T02:49:00.000-08:00</published><updated>2009-04-05T02:57:35.189-07:00</updated><title type='text'>HPROF In JCAPS512</title><content type='html'>Introduction:&lt;br /&gt;HPROF is a profiling agent which interacts with JVMPI and collects profiling information in to a file or socket. The profiling information collected can be either in ASCII or binary format. HPROF can produce profiling information related to CPU, heap usage, threads in the stack trace, depth of the trace etc. The profiling information so collected can be viewed by using agent like HAT etc.&lt;br /&gt;&lt;br /&gt;Configuration in Application server Admin console:&lt;br /&gt;&lt;br /&gt;In order to run the profiler, an argument needs to be passed to the jvm by specifying various options for which the profiling information needs to be captured.&lt;br /&gt;&lt;br /&gt;To find out the various hprof options, run the following command in the command prompt with the path set to your directory where jdk is installed.&lt;br /&gt;&lt;br /&gt;java -Xrunhprof:help.&lt;br /&gt;&lt;br /&gt;Once a decision has been arrived on the options for which the profiling information is required, perform the following steps to configure and run HPROF profiler.&lt;br /&gt;&lt;br /&gt;Login to asadmin (ex: - &lt;a href="http://localhost:18000/asadmin"&gt;http://localhost:18000/asadmin&lt;/a&gt;).&lt;br /&gt;Click on the JVM Settings tab and select the profiler option.&lt;br /&gt;Give the profiler name as hprof and enable the profiler option. Leave the classpath and native library path as blank.&lt;br /&gt;Click on the Add JVM option and enter the args.ex: - (-Xrunhprof: depth=3,file=c:\temp\log.txt,thread=y,heap=all).&lt;br /&gt;&lt;br /&gt;Advantages:&lt;br /&gt;&lt;br /&gt;· Helps in analyzing performance related issues.&lt;br /&gt;· Helps in understanding bottlenecks.&lt;br /&gt;· Helps in analyzing memory leak issues.&lt;br /&gt;Note: Configuring HPROF in the App server will be an overhead as far as the performance is considered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-1761013276239608669?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/1761013276239608669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=1761013276239608669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/1761013276239608669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/1761013276239608669'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2009/01/hprof-in-jcaps512.html' title='HPROF In JCAPS512'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-8135159115591876040</id><published>2007-06-22T01:44:00.000-07:00</published><updated>2007-06-22T01:50:44.364-07:00</updated><title type='text'>Service Identification,Modelling &amp;Realization In SOA</title><content type='html'>&lt;strong&gt;Service Identification&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Service represents a key business functionality which is reusable in nature.Service identification plays an important role in SOA projects as the services identified should be of right granularity,reusable etc which other wise will lead to proliferation of services making it complex to maintain and worse is that the services won’t be of reusable nature.&lt;br /&gt;&lt;br /&gt;Key factor which drives the identification of services is business process model.Once the business process are identified,modeled and the business functionality is understood then the service identification step starts.&lt;br /&gt;&lt;br /&gt;Approach followed for service identification should be a combination of top-down and bottom-up approaches.Following this approach will make sure that none of the services remain unearthed and will produce services which are of right granularity.&lt;br /&gt;&lt;br /&gt;Top-down,business driven approach results in coarse garined services.In the bottom-up approach the legacy business functionality is analysed to come up with the services.The services so obtained are fine grained in nature.&lt;br /&gt;&lt;br /&gt;Meet-in-the-middle approach is a combination of top-down and bottom-up approaches. Composing the fine grained services in to coarse grained services is a critical challenge which can be overcome by using the meet-in-the-middle approach. Meet-in-the-middle approach helps to unearth the services which are not found in either top-down or bottom-up approaches.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Five steps towards service identification&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;  Identify the business process&lt;br /&gt;  Decompose the business process in to sub processes,smaller sub processes&lt;br /&gt;  Model the business processes&lt;br /&gt;  Identify the services&lt;br /&gt;  Define the services&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service Modelling&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Service modeling provides abstract details about the services under consideration.Service model helps in understanding how the services are defined at the logical level which inturn will help in designing and developing the services.&lt;br /&gt;&lt;br /&gt; Various steps involved in service modeling can be categorized in to&lt;br /&gt;&lt;br /&gt;   Requirements&lt;br /&gt;  Approach&lt;br /&gt;  Model the service&lt;br /&gt;  Test the model&lt;br /&gt;  Refine the model&lt;br /&gt;  Transformation to design&lt;br /&gt;&lt;br /&gt;I will be providing a high level view of what the above steps means&lt;br /&gt;&lt;br /&gt;Understanding the requirements plays an important role in service modeling.This includes understanding the data requirements,data types of the messages,operations,KPI’s,policies,contract information between the consumers and the providers,binding information etc.&lt;br /&gt;&lt;br /&gt;Approach for service modeling should be meet-in-the-middle approach which is a combination of top-down and bottom-up approaches. Meet-in-the-middle approach consists of goal-service modeling which ties services to goals and sub-goals, key performance indicators, and metrics.Service modeling starts with a high level model which is more conceptual in nature which is later transformed in to a low level physical model.Once the model is ready test it and identify the improvements.Refine the model as may be required based on the requirements.&lt;br /&gt;&lt;br /&gt;Service model which is obtained as a result of service modelling can be transformed to a service interface(ex:- WSDL).WSDL so obtained can be manually or automatically(using service modeling tools) used to generate the desing,code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service Realisation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Web services technology is the common way of realizing services.Various standards used for implementing web services technology are SOAP,HTTP,JMS,XML,XSD,WSDL etc. As described in my another blog “Service Development Methodologies in SOA” legacy business functionality can be accessed via adaptors which expose the legacy business functionality as a web service.New services can be custom built using technologies like J2EE etc or using out-of-box functionality provided by some of the vendors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-8135159115591876040?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/8135159115591876040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=8135159115591876040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/8135159115591876040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/8135159115591876040'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2007/06/service-identificationmodelling-in-soa.html' title='Service Identification,Modelling &amp;Realization In SOA'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-2264169113664389323</id><published>2007-06-18T00:26:00.000-07:00</published><updated>2009-09-14T18:13:56.922-07:00</updated><title type='text'>Testing Approach In SOA</title><content type='html'>&lt;div align="justify"&gt;1)Testing methodologies&lt;br /&gt;2)Pitfall’s&lt;br /&gt;3)Key factors to success&lt;br /&gt;4)Selecting an appropriate testing tool&lt;br /&gt;&lt;br /&gt;Difference between traditional projects and SOA projects is that SOA projects involves integration between various distributed systems.This distributed nature of SOA projects throws challenge for testing as the requirements for each individual system and the entire application as a whole needs to be understood properly and the coordination between the various testing teams needs to be managed.Traditional testing methodologies can be applied with agile nature keeping in view of the iterative nature of SOA projects.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Testing methodologies:&lt;br /&gt;&lt;/strong&gt;Since SOA projects follow iterative approach,the effective way of testing SOA projects is to start with unit testing to uncover the errors in the individual components once the construction phase is over.Follow with Integration and functional testing.In the integration testing phase all the applications are integrated to perform end-to-end data flow and functional testing is carried out for validating the business functionality.In the UAT phase business users will test the application to verify whether the application meets the requirements. Another critical testing phase is Regression testing which plays an important role as even a small piece of code change can effect the entire application.This phased nature of testing provides full validation of the entire applications.&lt;br /&gt;&lt;br /&gt;Following are the normally followed testing methodologies in SOA projects:&lt;br /&gt;Unit testing,Component testing,Integration testing,User Acceptance testing.&lt;br /&gt;Non functional testing like connectivity testing,performance testing,security testing etc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pitfall’s:&lt;br /&gt;&lt;/strong&gt;One of the key factors for failure of SOA projects is the non agile nature of the testing approach.Another key factor is incomplete understanding of the integration system requirements.&lt;br /&gt;&lt;br /&gt;Few pitfall’s&lt;br /&gt;Test approach is not agile.&lt;br /&gt;No focus on integration testing.&lt;br /&gt;Non availability of the systems.&lt;br /&gt;No proper understanding of the business process.&lt;br /&gt;No proper understanding of the entire application as individual testing teams focus only on their respective applications participating in integration.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Key factors to success:&lt;/strong&gt;&lt;br /&gt;· Create a test plan which should accommodate agile testing.&lt;br /&gt;· Create a test strategy with integration testing in focus.&lt;br /&gt;· Understanding the Business process and the services and the associated meta data. &lt;/div&gt;&lt;div align="justify"&gt;· Defect tracking system which helps in tracking all the defects during various testing phases.&lt;br /&gt;· Availability of master data,systems.&lt;br /&gt;· Automating testing process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tools:&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;Selecting an appropriate tool which suits the overall testing requirements of an organization plays an important role in effective testing of SOA projects.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;Some of the tools vailable in the market for SOA testing projects are:&lt;br /&gt;· iTKO:LISA&lt;br /&gt;· Mindreef:ebizq&lt;br /&gt;· Empirix Inc: e-Test Suite&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-2264169113664389323?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/2264169113664389323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=2264169113664389323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/2264169113664389323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/2264169113664389323'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2007/06/testing-approach-in-soa.html' title='Testing Approach In SOA'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-6794936633846795627</id><published>2007-06-14T04:13:00.000-07:00</published><updated>2007-07-05T04:53:49.394-07:00</updated><title type='text'>Business Process Modelling Approach</title><content type='html'>&lt;div align="justify"&gt;Approach for business process modeling comprises the following:&lt;br /&gt;&lt;br /&gt;• Gather BP requirements&lt;br /&gt;• Effective Business Process Modeling&lt;br /&gt;• Transforming Models into Designs&lt;br /&gt;• Standardisation&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1) Gather BP requirements&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Requirements gathering approach should ensure consistency and thoroughness in capturing relevant information so that the business requirements that are captured in the model are clearly understood.&lt;br /&gt;&lt;br /&gt;BP requirements gathering comprises the following:&lt;br /&gt;&lt;br /&gt;• Conduct workshops with analyst,BP owners,business users,domain experts to get all of the information required to build the BP model.&lt;br /&gt;• Identify the business process&lt;br /&gt;• Analyse existing process models to create new process models by modifying existing models rather than recreating it from scratch&lt;br /&gt;• Decompose the business process in to sub process,services&lt;br /&gt;• Identify the business transaction information needs&lt;br /&gt;• Identify policies,KPI’s.&lt;br /&gt;• Identify roles,tasks,sequence information,resources,data etc.&lt;br /&gt;• Identify management reporting needs&lt;br /&gt;• Identify decision support needs&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2) Effective Business Process Modeling&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The task of modeling a process consists of defining the details of a business process flow and modeling all the data, resources, and other elements that the flow uses. A business process is composed of process steps that are normally connected through control flows, and these control flows connect activities with decision nodes. A decision node holds the business rules (transition conditions) that are evaluated to decide what path in the process should be followed.&lt;br /&gt;&lt;br /&gt;Effective BP modeling comprises the following:&lt;br /&gt;• Undersatnding &amp; Capturing Relevant Activity Details &lt;/div&gt;• Gathering associated data&lt;br /&gt;• Creating Business Process Specification&lt;br /&gt;• Model Business Process&lt;br /&gt;• Simulate the model&lt;br /&gt;• Analyze the model for key factors such as KPI's,policies and other metrics&lt;br /&gt;• Identifying Improvement Opportunities&lt;br /&gt;&lt;div align="justify"&gt;• Refine the model&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3) Transforming Models into Designs&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Business Process, which are to be supported by a system, need to be analysed further to identify system-level operations. System model from the business process model can be created by transforming activities to their corresponding artefacts. The system model consists of use cases etc, which is a higher-level view of the technology model artefacts.&lt;br /&gt;&lt;br /&gt;The first-cut mapping is to create Use Cases for each BP to be automated. This can be achieved either by manual mapping of the BP’s to Use Cases or automatic generation of the system models from the business process models using standard BPEL compliant tools. The use cases thus obtained are used to generate the technology models which are used for design purpose.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4) Standardisation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Following the standards and patterns helps in providing the base for the very much needed interoperability,Maintainability etc. &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;Following are the few of the standards used in BP modelling&lt;br /&gt;Ex:-BPEL,WS-BPEL,BPMN,UML etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-6794936633846795627?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/6794936633846795627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=6794936633846795627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/6794936633846795627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/6794936633846795627'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2007/06/business-process-modelling-approach.html' title='Business Process Modelling Approach'/><author><name>N</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8525798267469101022.post-8073286218695806050</id><published>2007-05-23T05:33:00.000-07:00</published><updated>2007-07-03T01:27:34.707-07:00</updated><title type='text'>Service Development Methodologies In SOA</title><content type='html'>&lt;div align="justify"&gt;Broadly service development methodologies are categorized in to two types.&lt;br /&gt;1)Wrapping legacy functionality&lt;br /&gt;2)Green field development&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wrapping legacy functionality:&lt;br /&gt;&lt;/strong&gt;To meet the changing business requirements,the existing business functional&amp;shy;ity in the legacy systems(ex:-Mainframes) needs to be re-used as far as possible.One of the approaches to implement this is to wrapp Legacy business functionality as service and expose to service consumers.Legacy business functionality can be exposed as service through the use of adaptors which will enable to connect to the legacy applications and access the business functionality through native API’s.EAI tools comes with application specific adaptors which can be used to access the business functionality and uses webservice adaptors to expose these functionalities as services.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Green field development:&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;In the green field development methodology services are developed from scratch.Service consumer,Service provider &amp; Service Mediator forms the core part of service development.A service requires an interface(ex:-WSDL) through which it can be exposed to the service consumers.A service interface contains the operations,method signature, binding information etc.Service requests from a service consumer to a service provider happens through a service mediator.Service mediator(ex:-ESB) could be used to receive,transform&amp;amp;route messages from service consumers to service providers.Service provider implements the service and publishes the corresponding WSDL to a registry(ex:-UDDI).Service consumer make a look up in the registry and searches for a particular service and invokes the service through a service mediator. Communication between various participants can be acheived by using various communication protocols ex:-soap/http,soap/https,soap/jms etc.There are many traditional EAI tools in the market which provides out-of-box functionality to build services and technologies like J2EE,.NET to build new custom services.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8525798267469101022-8073286218695806050?l=soalink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soalink.blogspot.com/feeds/8073286218695806050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8525798267469101022&amp;postID=8073286218695806050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/8073286218695806050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8525798267469101022/posts/default/8073286218695806050'/><link rel='alternate' type='text/html' href='http://soalink.blogspot.com/2007/05/service-development-methodologies.html' title='Service Development Methodologies In SOA'/><author><name>N</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><thr:total>0</thr:total></entry></feed>
