<?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:blogger='http://schemas.google.com/blogger/2008' 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-7640939399522823673</id><updated>2026-08-11T03:55:33.217-07:00</updated><category term="SOA"/><category term="Exception Handling"/><category term="Framework"/><category term="Governance"/><title type='text'>Ram&#39;s Technology Blog</title><subtitle type='html'>Tutorials &amp;amp; ideas about SOA and Java programming ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-8332994069708464176</id><published>2012-05-17T20:48:00.001-07:00</published><updated>2012-05-17T21:01:56.651-07:00</updated><title type='text'>SOLID Design Principles</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Single Responsibility Principle –&lt;/b&gt; A class should be developed such a way that it should not change for more than one reason in other words a class should have one and only one reason to change. &lt;br /&gt;&lt;br /&gt;SRP (Single Responsibility Principle) focuses on one thing one responsibility.  All the methods of a class which follows the SRP principle should relate to a single purpose.   It is very easy to identify the violations of SRP in a class, that class is too big and complicated with doing too many things which are unrelated.&lt;br /&gt;&lt;br /&gt;The easiest way to fix this is to split the class based on the functionality.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;/div&gt;
&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Open &amp;amp; Close Principle –&lt;/b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;   A class should be open for extension, but closed for modifications.  We can use traditional object oriented methodologies like inheritance and composition for this. Following are the two ways to achieve OCP for classes &lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Making all member variables private so that other parts of the code access those using getter and setter methods. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Second point is to avoid typecasting the classes at runtime. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Advantage of following OCP is developer can easily change the code by without breaking the existing behavior.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Liskov Substitution Principle – &lt;/b&gt;Liskov Substitution Principle explains about the behavioral subtyping which is more powerful than typical subtyping of functions. LSP tells us that derived class is substitutable for its parent class. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In simple terms we can say Liskov Substitution Principle is a contract between the base and derived classes, if base is satisfied with the contract so that derived class must satisfy with the contact. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Interface Segregation Principle –&lt;/b&gt; ISP tells about keeping the interfaces minimal and cohesive which can be maintainable. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Problem with huge interfaces is you are forcing the classes to implement all the methods which was a burden to the developer. To fix the ISP violations break down the interfaces by applying Single Responsibility Principle which makes fine grained interfaces.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;&quot;&gt;&lt;/span&gt;

&lt;br /&gt;
&lt;br style=&quot;font-family: Verdana,sans-serif;&quot; /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Dependency Inversion Principle –&lt;/b&gt; DIP is very straight forward it says whenever a class is using other classes it should depend on the corresponding interfaces not on direct classes. Dependency Inversion Principle allows the classes to be isolated which makes low impact when we change the design.

&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/8332994069708464176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/05/solid-design-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/8332994069708464176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/8332994069708464176'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/05/solid-design-principles.html' title='SOLID Design Principles'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-5402307098684509656</id><published>2012-02-16T08:45:00.001-08:00</published><updated>2012-02-16T10:02:21.045-08:00</updated><title type='text'>EJB 3.1 Rocks!</title><content type='html'>I got an opportunity to explore EJB 3.1 API after a long time. In that juncture i couldn&#39;t resist my self to post some of the features of EJB 3.1 API.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Singleton capability&lt;/span&gt; - Singleton feature of EJB3.1 allows one session bean instance per JVM. This feature allows concurrent access and it is totally thread safe.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh-1TQuGRaX2Yrg0qBt2FvEbgXxL8XclZCzkiEMeMBtVlnbX1uXg_Nbg3NATLwZZ2-muNOCb_H34hv1XBDjOIfeBUdgYDJsu9KMyjSlwaJGNstQyQ5mNI7PB21ixiWCSSYf_f8KfeBeks/s1600/1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 159px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh-1TQuGRaX2Yrg0qBt2FvEbgXxL8XclZCzkiEMeMBtVlnbX1uXg_Nbg3NATLwZZ2-muNOCb_H34hv1XBDjOIfeBUdgYDJsu9KMyjSlwaJGNstQyQ5mNI7PB21ixiWCSSYf_f8KfeBeks/s400/1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709788981337843426&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;We can access the Singleton bean similarly how we access the stateless session bean as follows.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7JuNIK7-YW1r3dHIuRTNhtIRq2RqW3YJWquUqlz9juI4axLCzooEq96YfHk72N8IIdX25YAbDbu1QuQ_EDoH2H-c7RLgL052_STNb151RXS_nO0es0T9p1dGB6_ALpp1KoS_l1BLUB7w/s1600/2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 110px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7JuNIK7-YW1r3dHIuRTNhtIRq2RqW3YJWquUqlz9juI4axLCzooEq96YfHk72N8IIdX25YAbDbu1QuQ_EDoH2H-c7RLgL052_STNb151RXS_nO0es0T9p1dGB6_ALpp1KoS_l1BLUB7w/s400/2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709789103860747794&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7JuNIK7-YW1r3dHIuRTNhtIRq2RqW3YJWquUqlz9juI4axLCzooEq96YfHk72N8IIdX25YAbDbu1QuQ_EDoH2H-c7RLgL052_STNb151RXS_nO0es0T9p1dGB6_ALpp1KoS_l1BLUB7w/s1600/2.png&quot;&gt; &lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;No-interface view&lt;/span&gt; - Before EJB3.1 it is necessary to have an interface for creating a bean, but EJB3.1 api allows us to create beans without an interface which eases developers life.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Asynchronous&lt;/span&gt; - Another nice feature of this API,  which allows us to invoke session beans asynchronously&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Mvy181GC0VRCxHUD1QPr1ZPj7JKfTOiN3u8KkvH5Ne0ljhGlsq3o8Pa2D0XC0PVnCyCA-MXV5jdlJBY6VK5sc5jAN5QwBuPB2a0FwrO1Qa7jLvMSDgxiC98eoGhEGwZG3RldMfvAwW8/s1600/3.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 111px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Mvy181GC0VRCxHUD1QPr1ZPj7JKfTOiN3u8KkvH5Ne0ljhGlsq3o8Pa2D0XC0PVnCyCA-MXV5jdlJBY6VK5sc5jAN5QwBuPB2a0FwrO1Qa7jLvMSDgxiC98eoGhEGwZG3RldMfvAwW8/s400/3.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709792414693398402&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;There are more features added to EJB 3.1 API.</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/5402307098684509656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/02/ejb-31-rocks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/5402307098684509656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/5402307098684509656'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/02/ejb-31-rocks.html' title='EJB 3.1 Rocks!'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh-1TQuGRaX2Yrg0qBt2FvEbgXxL8XclZCzkiEMeMBtVlnbX1uXg_Nbg3NATLwZZ2-muNOCb_H34hv1XBDjOIfeBUdgYDJsu9KMyjSlwaJGNstQyQ5mNI7PB21ixiWCSSYf_f8KfeBeks/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-3558184267985364376</id><published>2012-02-14T22:06:00.001-08:00</published><updated>2012-02-15T00:05:42.627-08:00</updated><title type='text'>Spring Data Binding</title><content type='html'>Data Binding happens in spring mvc when it submits a command object from a form.  Command objects of any type used to transport data between presentation and controller layers.&lt;br /&gt;&lt;br /&gt;When ever data transfers across these layers the core servlet (or servlet api) treats these parameters as string instead of objects of specific type.&lt;br /&gt;&lt;br /&gt;Spring data binding enables the user to set the property values on a command object which are entered from a form.&lt;br /&gt;&lt;br /&gt;DataBinder uses PropertyEditor (PropertyEditors basically part of Sun JavaBean API) for converting the object to string type and vice versa.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH07sWhCsLv5YWigqth2u3f1CuAa-PXh2weCfRZ1NX-2LQmR4BZLGHEXsX0BiG-_t8c20C0UdZilHCThDLGt2okl2IS3GrE76bLKoFmXm9YYUQOTIz5pl7tVjuy5adIoxYDGPODCDrLo4/s1600/2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 180px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH07sWhCsLv5YWigqth2u3f1CuAa-PXh2weCfRZ1NX-2LQmR4BZLGHEXsX0BiG-_t8c20C0UdZilHCThDLGt2okl2IS3GrE76bLKoFmXm9YYUQOTIz5pl7tVjuy5adIoxYDGPODCDrLo4/s400/2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709268943465968706&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;It is a better practice to explicitly register the PropertyEditor in initBinder() method for a particular controller class.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguL3VmKeDpbGY_gcCxKa_OtIOLVMC2BgLIMcW2rYVhNJ187vcKLEVQbtlJCT85I76Ur7rOHaWtQvg_vi1DnSdcdR7rgOaxO4ujdqMutxOpRun9OJUqY8i1A76EGrybMMvsDmkwrjceCec/s1600/1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 54px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguL3VmKeDpbGY_gcCxKa_OtIOLVMC2BgLIMcW2rYVhNJ187vcKLEVQbtlJCT85I76Ur7rOHaWtQvg_vi1DnSdcdR7rgOaxO4ujdqMutxOpRun9OJUqY8i1A76EGrybMMvsDmkwrjceCec/s400/1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709265613127354626&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/3558184267985364376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/02/spring-data-binding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/3558184267985364376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/3558184267985364376'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/02/spring-data-binding.html' title='Spring Data Binding'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH07sWhCsLv5YWigqth2u3f1CuAa-PXh2weCfRZ1NX-2LQmR4BZLGHEXsX0BiG-_t8c20C0UdZilHCThDLGt2okl2IS3GrE76bLKoFmXm9YYUQOTIz5pl7tVjuy5adIoxYDGPODCDrLo4/s72-c/2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-7636318138737079614</id><published>2012-02-14T18:39:00.001-08:00</published><updated>2012-02-14T20:07:51.175-08:00</updated><title type='text'>Vaadin integration with spring framework</title><content type='html'>Vaadin is a new generation framework mainly used to develop web applications.  I can say Vaadin is a pure java framework where developers can use minimal or no html &amp;amp;  javascript code to build web applications.&lt;br /&gt;&lt;br /&gt;Add the following dependencies in pom.xml file to import all the vaadin and spring related library files into your vaadin project.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71lFllvYzVep1itDPZWxWxtjhXKluCXl1wbezjAF1USGNZLgMY2-OTbEsp6_fzlK6qOoL1-26aMG-ig39YwSY77_SK2B2iIfMA8k-f8ClkD-LUHKG29Nh3Lf4dgWQbCTbyoDTBRrQ1WM/s1600/fig.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 353px; height: 338px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71lFllvYzVep1itDPZWxWxtjhXKluCXl1wbezjAF1USGNZLgMY2-OTbEsp6_fzlK6qOoL1-26aMG-ig39YwSY77_SK2B2iIfMA8k-f8ClkD-LUHKG29Nh3Lf4dgWQbCTbyoDTBRrQ1WM/s400/fig.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709207929537068162&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;The main intention to use &#39;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Spr&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;ing&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;ApplicationSevlet&lt;/span&gt;&#39; in web.xml is to integrate Spring and Vaadin frameworks. The basic purpose of this servlet is to load all the vaadin related classes.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvDRtYHPZwbJHFEUAZ_clE2U1LOddUT7KlZvwKbjWznVUCNfTaTsvMyk2hWmHhkLmpsc6pw9BqL1zFh1B2obYVoDXYVPu4_3013RT_SzpqlKPsX31BLKP2Xbsqbn_I1oSb-PTkeLdA9gI/s1600/fig1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvDRtYHPZwbJHFEUAZ_clE2U1LOddUT7KlZvwKbjWznVUCNfTaTsvMyk2hWmHhkLmpsc6pw9BqL1zFh1B2obYVoDXYVPu4_3013RT_SzpqlKPsX31BLKP2Xbsqbn_I1oSb-PTkeLdA9gI/s400/fig1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5709208043931233586&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Spring context listener used to load the spring bean configuration files.&lt;br /&gt;&lt;br /&gt;Follow &lt;a href=&quot;https://vaadin.com/&quot;&gt;https://vaadin.com&lt;/a&gt; to find more information on Vaadin framework.</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/7636318138737079614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/02/vaadin-integration-with-spring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/7636318138737079614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/7636318138737079614'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/02/vaadin-integration-with-spring.html' title='Vaadin integration with spring framework'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71lFllvYzVep1itDPZWxWxtjhXKluCXl1wbezjAF1USGNZLgMY2-OTbEsp6_fzlK6qOoL1-26aMG-ig39YwSY77_SK2B2iIfMA8k-f8ClkD-LUHKG29Nh3Lf4dgWQbCTbyoDTBRrQ1WM/s72-c/fig.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-170288309878989847</id><published>2012-01-31T20:46:00.001-08:00</published><updated>2012-01-31T21:40:24.364-08:00</updated><title type='text'>Spring 3.1 Cache Abstraction</title><content type='html'>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-family:arial;&quot; &gt;Declarative Annotation based caching&lt;/span&gt;&lt;br style=&quot;font-family: arial;&quot;&gt;&lt;/span&gt;&lt;ul  style=&quot;font-family:arial;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-weight:bold;font-size:85%;&quot; &gt;@&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Cacheable&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;- This is the new  &amp;amp; important annotation that allows methods to cache the fetched data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;For each time when the method is triggered cache will check for the specific data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Spring 3.1 caching strategy allows users to cache data based on certain conditions also called as &#39;Conditional caching&#39;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img style=&quot;width: 498px; height: 56px;&quot; src=&quot;data:image/png;base64,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&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;ul  style=&quot;font-family:arial;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;@&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;CacheEvict&lt;/span&gt; &lt;/span&gt;annotation is very much useful to clear the unused data from the cache buffer.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Finally spring annotations cannot enable themselves automatically we have to enable it &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;explicitly&lt;/span&gt;,  similarly for caching also we have to enable the caching annotations by providing&lt;span style=&quot;font-weight: bold;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;the following&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;cache:annotation-driven&gt; &lt;/cache:annotation-driven&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;cache:annotation-driven&gt; &lt;/cache:annotation-driven&gt;&lt;/span&gt;tag &lt;span style=&quot;font-weight: bold;&quot;&gt; &lt;/span&gt;in our configuration file.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img style=&quot;width: 516px; height: 149px;&quot; src=&quot;data:image/png;base64,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&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/170288309878989847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/01/spring-31-cache-abstraction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/170288309878989847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/170288309878989847'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/01/spring-31-cache-abstraction.html' title='Spring 3.1 Cache Abstraction'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-4613091760147872338</id><published>2012-01-22T04:14:00.000-08:00</published><updated>2012-01-22T05:55:44.998-08:00</updated><title type='text'>Spring AOP</title><content type='html'>Aspect Oriented Programming (AOP) allows developers to think programming structure in another way. Here in my post i don&#39;t want to tell you what is the theory behind AOP, just i want to show you how easy to create aspects using spring framework.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/FrEktaTn5h0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope this demo helped you to understand how easy to create aspects using Spring AOP.</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/4613091760147872338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/01/spring-aop-advantages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/4613091760147872338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/4613091760147872338'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/01/spring-aop-advantages.html' title='Spring AOP'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/FrEktaTn5h0/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-1395015236102945886</id><published>2012-01-20T22:14:00.001-08:00</published><updated>2012-01-22T05:21:13.234-08:00</updated><title type='text'>Why i like Spring Roo!</title><content type='html'>&lt;span style=&quot;font-weight: bold; font-family: arial;&quot;&gt;Spring&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-family: arial;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: arial;font-family:arial;&quot; &gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Roo&lt;/span&gt;  - Next generation java application generator, possible for high quality and productivity of enterprise java applications.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-IN&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val=&quot;Cambria Math&quot;&gt;    &lt;m:brkbin val=&quot;before&quot;&gt;    &lt;m:brkbinsub val=&quot;--&quot;&gt;    &lt;m:smallfrac val=&quot;off&quot;&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val=&quot;0&quot;&gt;    &lt;m:rmargin val=&quot;0&quot;&gt;    &lt;m:defjc val=&quot;centerGroup&quot;&gt;    &lt;m:wrapindent val=&quot;1440&quot;&gt;    &lt;m:intlim val=&quot;subSup&quot;&gt;    &lt;m:narylim val=&quot;undOvr&quot;&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; defunhidewhenused=&quot;true&quot; defsemihidden=&quot;true&quot; defqformat=&quot;false&quot; defpriority=&quot;99&quot; latentstylecount=&quot;267&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;0&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Normal&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;heading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;35&quot; qformat=&quot;true&quot; name=&quot;caption&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;10&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; name=&quot;Default Paragraph Font&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;11&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtitle&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;22&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Strong&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;20&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;59&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Table Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Placeholder Text&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;No Spacing&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Revision&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;34&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;List Paragraph&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;29&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;30&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;19&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;21&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;31&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;32&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;33&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Book Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;37&quot; name=&quot;Bibliography&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; qformat=&quot;true&quot; name=&quot;TOC Heading&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:&quot;Table Normal&quot;;  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:&quot;&quot;;  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:&quot;Times New Roman&quot;;  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:&quot;Times New Roman&quot;;  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p style=&quot;font-family: arial;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;;&quot;&gt;From Roo 1.0 the contributions of Spring Source increased very significantly so that it supported lot of technologies.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;The major advantage i found in Spring Roo 1.2.1 is cloud deployment. You can easily deploy your web application into cloud foundry.  It is so easy to deploy into cloud  - install cloud foundry add -on, logging in into cloud and then upload your web application that&#39;s it!.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src=&quot;http://www.youtube.com/embed/ZQWrSjQ9DtY&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; width=&quot;540&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/1395015236102945886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2012/01/roo-next-generation-java-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/1395015236102945886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/1395015236102945886'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2012/01/roo-next-generation-java-application.html' title='Why i like Spring Roo!'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/ZQWrSjQ9DtY/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-1716069674113625599</id><published>2009-11-17T19:35:00.000-08:00</published><updated>2009-11-17T21:29:35.371-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Exception Handling"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><title type='text'>Exception Handling</title><content type='html'>Service Oriented Architecture classified exceptions into two ways System Faults and Business Faults.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;System Faults&lt;/span&gt;&lt;br /&gt;System Faults are thrown when a runtime error occurs at system or infrastructure level. Unreachable services at runtime are one of the occurrences of the runtime error.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Business Faults&lt;/span&gt;&lt;br /&gt;Business Faults are generally thrown when a conditional exception occurred while processing the business logic of a particular service.  These exceptions are generally raised due to the business rule violations, passing invalid data to the services etc.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Exception handling in BPEL services&lt;/span&gt;&lt;br /&gt;BPEL supports two levels of exception handlers with respect to the scope&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Scope level&lt;/li&gt;&lt;li&gt;Process level&lt;/li&gt;&lt;/ul&gt;BPEL having a list of runtime exceptions as per the specifications.  Following are the default fault handlers available in BPEL specifications.&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAdIvbEQ79mQWrgW3KH_h4aOjJwm4r4u7oq7DY6DkzTpyHo1xZGLlGB9Tfdn3x0KHfVBr2V08XqWdLIrF6SJMStBLCuB1UlyvsAgJO66cpXnHz_5KC5Fh5lsNc5d1usDNhv7yVzybCjpY/s1600/1.bmp&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 143px; height: 109px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAdIvbEQ79mQWrgW3KH_h4aOjJwm4r4u7oq7DY6DkzTpyHo1xZGLlGB9Tfdn3x0KHfVBr2V08XqWdLIrF6SJMStBLCuB1UlyvsAgJO66cpXnHz_5KC5Fh5lsNc5d1usDNhv7yVzybCjpY/s400/1.bmp&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405309948929406258&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;BPEL&#39;s default Compensation handler&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZI2vgs-C9Y3THb4ipOgIL2LLZd-BX3GH3yyVOdX7w-pBHARX3BHF0d9SqzG_zVWjcQ5riTPwh8O9QSk1y544EgnT40j5YpXgDLtoU64c5aNnTsJuk7rTk-hwZ3_naqvQHMWUOha9dJ4E/s1600/2.bmp&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 183px; height: 70px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZI2vgs-C9Y3THb4ipOgIL2LLZd-BX3GH3yyVOdX7w-pBHARX3BHF0d9SqzG_zVWjcQ5riTPwh8O9QSk1y544EgnT40j5YpXgDLtoU64c5aNnTsJuk7rTk-hwZ3_naqvQHMWUOha9dJ4E/s400/2.bmp&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405310257587050034&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Default Termination handler&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUYw1767BCmpf1w8rCVumwSMESKEURji9k5rtXxw5Hq2jAMVy-aclHyqwvCPzPnXD_K33OjJK271BWOWjvV4OnQJgRBhyTZx_sWGG9qWpGMrQnaCg3HsM1k3oGG1QvLI11-HW55fVw_lQ/s1600/3.bmp&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 160px; height: 55px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUYw1767BCmpf1w8rCVumwSMESKEURji9k5rtXxw5Hq2jAMVy-aclHyqwvCPzPnXD_K33OjJK271BWOWjvV4OnQJgRBhyTZx_sWGG9qWpGMrQnaCg3HsM1k3oGG1QvLI11-HW55fVw_lQ/s400/3.bmp&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405310417763064386&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Exception handling in mediator components&lt;/span&gt;&lt;br /&gt;Mediator components support runtime exceptions and they are categorized into groups -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All Exceptions&lt;/li&gt;&lt;li&gt;Data-related exceptions&lt;/li&gt;&lt;li&gt;Database or infrastructure exceptions&lt;/li&gt;&lt;li&gt;Recoverable/Retry-able errors&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/1716069674113625599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2009/11/exception-handling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/1716069674113625599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/1716069674113625599'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2009/11/exception-handling.html' title='Exception Handling'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAdIvbEQ79mQWrgW3KH_h4aOjJwm4r4u7oq7DY6DkzTpyHo1xZGLlGB9Tfdn3x0KHfVBr2V08XqWdLIrF6SJMStBLCuB1UlyvsAgJO66cpXnHz_5KC5Fh5lsNc5d1usDNhv7yVzybCjpY/s72-c/1.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-7534097239523343207</id><published>2009-11-01T23:17:00.000-08:00</published><updated>2009-11-02T01:35:02.829-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Governance"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><title type='text'>SOA Governance Model Framework</title><content type='html'>For any successful SOA project Governance is mandatory.  In General governance is the process of making appropriate decisions on behalf of the stakeholders.&lt;br /&gt;&lt;br /&gt;What is SOA Governance refers to -&#39;&lt;span style=&quot;font-style:italic;&quot;&gt;SOA Governance&lt;/span&gt;&#39; manages the organization processes and policies to execute SOA smoothly. In addition, SOA governance also establishes  behavioral rules and guidelines for the stakeholders who are participating in the SOA. Normally, these policies cover the organizations business, security, technology and compliance operating within the SOA sphere.&lt;br /&gt;&lt;br /&gt;While designing the SOA Governance, Governance Model Framework helps us to identify the critical SOA concerns and also determine how best to establish governance for those concerns. Find the useful entities/artifacts of the SOA Governance Model Framework -&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW5KBRSRXRQlLKLmf_9w8yn3MJ_L3BffL6BFN3JIzKeyXvnAkWBeWkZmRmCwiCCR3Kl0ZtUJZkQ9fdzXgHvvn49jY84yN_gMnKe7y6qJbdan8ZKsdoHKdJPwsxYcmNHGB_enpINpkDCCo/s1600-h/sfm.bmp&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 131px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW5KBRSRXRQlLKLmf_9w8yn3MJ_L3BffL6BFN3JIzKeyXvnAkWBeWkZmRmCwiCCR3Kl0ZtUJZkQ9fdzXgHvvn49jY84yN_gMnKe7y6qJbdan8ZKsdoHKdJPwsxYcmNHGB_enpINpkDCCo/s400/sfm.bmp&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399435681504138770&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/7534097239523343207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2009/11/soa-governance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/7534097239523343207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/7534097239523343207'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2009/11/soa-governance.html' title='SOA Governance Model Framework'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW5KBRSRXRQlLKLmf_9w8yn3MJ_L3BffL6BFN3JIzKeyXvnAkWBeWkZmRmCwiCCR3Kl0ZtUJZkQ9fdzXgHvvn49jY84yN_gMnKe7y6qJbdan8ZKsdoHKdJPwsxYcmNHGB_enpINpkDCCo/s72-c/sfm.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-104243972481033566</id><published>2009-10-21T19:57:00.001-07:00</published><updated>2009-10-22T00:48:33.607-07:00</updated><title type='text'>SOA Lifecycle</title><content type='html'>We can find a gap or an improper alignment between IT and business processes in traditional software development an approach which leads to huge gap. Analysis says due to this gap business-critical software services are not able to react quickly and efficiently to the business changes.&lt;br /&gt;&lt;br /&gt;Service oriented architecture reduces this semantic gap through a new development model which align the business process services with software development. Let’s look into SOA Lifecyle and the relevant technology we use. Basically SOA Lifecycle divided into four phases:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ63JzCta0vukmeGDbxfATLnuZiNrDj8g48kDWrq5l2jjqJW7wvrz6kZgOLjz1m58r4l4zA3JRVyUlkPUlLIVDEX-3b8SWhjhSFG6uonxEgyWthYARgWjRPeClf9QcEicn4qCI_Rw-9RU/s1600-h/SOA+Lifecycle.bmp&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 258px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ63JzCta0vukmeGDbxfATLnuZiNrDj8g48kDWrq5l2jjqJW7wvrz6kZgOLjz1m58r4l4zA3JRVyUlkPUlLIVDEX-3b8SWhjhSFG6uonxEgyWthYARgWjRPeClf9QcEicn4qCI_Rw-9RU/s320/SOA+Lifecycle.bmp&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5395318331378948002&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Process Modeling - &lt;/span&gt;&lt;br /&gt;Process Modeling is a critical phase where process analysts work with respective process managers to analyze and get the requirements. In this phase process analysts spent most of their time to define the Key Performance Indicators (KPI), Business Policies and Business rules. &lt;br /&gt;&lt;br /&gt;We use Business Process Modeling notation (BPMN) to design business process models.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Process Implementation - &lt;/span&gt;&lt;br /&gt;In this phase programmers implement basic services for the business processes and integrate them with the help of analysts. We use Business Process Execution Language(BPEL) to develop the business process. It is very important to preserve the SOA essence factors like &#39;Reusable Services&#39;, &#39;Loose Coupling&#39;,&#39;Integration of Services&#39; etc.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Process Execution &amp; Control- &lt;/span&gt;&lt;br /&gt;In Process Execution and Control phase, we will execute the developed processes. When execution of process happens they will interact with various external services.&lt;br /&gt;&lt;br /&gt;Process Control also important part in this phase where process managers involve in checking whether processes are executing properly and efficiently.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Process Monitoring and Optimization - &lt;/span&gt;&lt;br /&gt;Monitoring and Optimization phase is also an important phase where process owners monitor the key performance indicators. Generally we go for Business Activity Monitor (BAM) in this phase to monitor the important parameters and KPI&#39;s.&lt;br /&gt;&lt;br /&gt;If any service need to raise its optimization level, again the process or that particular service send back to the starting phase i.e. modeling to identify and improve its efficiency levels. All the processes follow similar phases which we discussed above and this happens iteratively without impacting the business.</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/104243972481033566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2009/10/soa-lifecycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/104243972481033566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/104243972481033566'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2009/10/soa-lifecycle.html' title='SOA Lifecycle'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ63JzCta0vukmeGDbxfATLnuZiNrDj8g48kDWrq5l2jjqJW7wvrz6kZgOLjz1m58r4l4zA3JRVyUlkPUlLIVDEX-3b8SWhjhSFG6uonxEgyWthYARgWjRPeClf9QcEicn4qCI_Rw-9RU/s72-c/SOA+Lifecycle.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-7397257415688205130</id><published>2009-10-16T00:37:00.000-07:00</published><updated>2009-10-21T22:12:29.053-07:00</updated><title type='text'>Creating Simple Oracle BPEL Process</title><content type='html'>This article shows how to create, deploy and test a simple BPEL process on Oracle SOA suite 10g using JDeveloper.&lt;br /&gt;&lt;br /&gt;1.  Right click on the Applications on Application Navigation and enter the Application name in this case &#39;&lt;span style=&quot;font-weight:bold;&quot;&gt;MyFirstBPELApplication&lt;/span&gt;&#39;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgt7gGucEyXFwsOn7GYcbqQIzClPeffF_Y0gN_eFPSgAQqkDwv_S3b0eooNRDEC8USv_ogstrFbWA5If56TrDgi4tbhYkEn81mh9JudP0YljY2cY6WTPJxjoS4XF_e_uGxE7cbmZ5C8sg/s1600-h/1.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 294px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgt7gGucEyXFwsOn7GYcbqQIzClPeffF_Y0gN_eFPSgAQqkDwv_S3b0eooNRDEC8USv_ogstrFbWA5If56TrDgi4tbhYkEn81mh9JudP0YljY2cY6WTPJxjoS4XF_e_uGxE7cbmZ5C8sg/s320/1.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394159938668209506&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2.  In Step 2 right click on the MyFirstBPELApplication and create a new Project. Enter the project name using proper naming conventions.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtsBknrjj7JjlRVfz9r5NeV1I-Pdz876S9iUIUWkGRWWXQq5xu6f_M7mgbBvMOhymjO-tbCep_8Z2DBhTpxWSCHUO3bcKqlXIHoU5HwLV9UbVqnu9trPhVHHPe6bZkoSV7-r6IXUOldjo/s1600-h/2.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 126px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtsBknrjj7JjlRVfz9r5NeV1I-Pdz876S9iUIUWkGRWWXQq5xu6f_M7mgbBvMOhymjO-tbCep_8Z2DBhTpxWSCHUO3bcKqlXIHoU5HwLV9UbVqnu9trPhVHHPe6bZkoSV7-r6IXUOldjo/s320/2.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394161009582986274&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3.  Once your project is ready, now create a BPEL project through BPEL Project Creation Wizard and name it as &#39;&lt;span style=&quot;font-weight:bold;&quot;&gt;AddBPELProcess&lt;/span&gt;&#39;.&lt;br /&gt; &lt;br /&gt;Select the Asynchronous BPEL Process in the template select box.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU-ZRLt3A5CkiLwPJaNttY0lOHh8CR8ncLrWfuZNruW1KIpYDC4eWtwNdXTVDOe7BiFA-ZaDI5_hA79ccVJrW9oNTFuInp2sV-n1SywwJnAi00eMQihBawoKBOHfrO-wnMCilpT5W9JM0/s1600-h/4.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU-ZRLt3A5CkiLwPJaNttY0lOHh8CR8ncLrWfuZNruW1KIpYDC4eWtwNdXTVDOe7BiFA-ZaDI5_hA79ccVJrW9oNTFuInp2sV-n1SywwJnAi00eMQihBawoKBOHfrO-wnMCilpT5W9JM0/s320/4.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394167425964854882&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4.  Now our BPEL Service is ready, in our business logic we will add a variable with a constant value. Drag and drop the Assign activity onto the design area.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWkKfkFWTysAbMNr2lwjMi2h9JddM8SgXZj7pbn5rq8F0X6hzN75ptIgVEhXJnKkNdwvDWbr7ZqDouBm_SvzJvQ3IWbV59oA062wLzVzVFf6WYWgtfvDW_tXbnv7oipHdlXzrTQXmX-k/s1600-h/5.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 266px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWkKfkFWTysAbMNr2lwjMi2h9JddM8SgXZj7pbn5rq8F0X6hzN75ptIgVEhXJnKkNdwvDWbr7ZqDouBm_SvzJvQ3IWbV59oA062wLzVzVFf6WYWgtfvDW_tXbnv7oipHdlXzrTQXmX-k/s320/5.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394169051555626978&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.  Double click on the Assign activity to configure our add operation. Select the Copy Operation option in Create select box to incorporate our business logic.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyG-lhttJsRWCzJD1Fjg017t84ji0Onx2iFUfQ6fkR6yg8Wy9dZr5dIEjOCuqaU10VmGGui6Sltq6NHIW3txGPGQomJZCwI7OpqFEABKQpD52D2PD_WJhasHJD1tM7CUJXu8m3okslobs/s1600-h/6.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 249px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyG-lhttJsRWCzJD1Fjg017t84ji0Onx2iFUfQ6fkR6yg8Wy9dZr5dIEjOCuqaU10VmGGui6Sltq6NHIW3txGPGQomJZCwI7OpqFEABKQpD52D2PD_WJhasHJD1tM7CUJXu8m3okslobs/s320/6.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394170786374975858&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6. Now in operation wizard choose Expression as a Type at input variable side.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgICG0t6ZE7CH00gTueGuMaMJ76qxI_DQwAnvwDfiFTsCGE-oi6nElWFw4NLcFoI9QosLE-iyaWlYv9UeAfm-THUk8UAetY0b5QQ6YuuYbIPKpAggjs-esDVcE3jT_5qdUewThkFCgOOuc/s1600-h/8.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 251px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgICG0t6ZE7CH00gTueGuMaMJ76qxI_DQwAnvwDfiFTsCGE-oi6nElWFw4NLcFoI9QosLE-iyaWlYv9UeAfm-THUk8UAetY0b5QQ6YuuYbIPKpAggjs-esDVcE3jT_5qdUewThkFCgOOuc/s320/8.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394172979781396514&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. For our simplicity JDeveloper provided wide range of functions, now select Mathematical Functions option so that we can use the add operation in our process. In our bpel process we add a constant value (120) with the input value, so pass the constant value and input variable to the add function.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin_uZKsjxFBk4XA1I-W-8HPy2VWEF3Bczgx6zQ1BrGhDFVjRt2kgtm7OXLXW6CQr9K_XHAA00W4XFuUUlI43vJ5tWNTyuuxVhSaUGfO-EpT0avB6S4PjFdA60TUr_hcsk_-fBH2ldpWgY/s1600-h/11.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 256px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin_uZKsjxFBk4XA1I-W-8HPy2VWEF3Bczgx6zQ1BrGhDFVjRt2kgtm7OXLXW6CQr9K_XHAA00W4XFuUUlI43vJ5tWNTyuuxVhSaUGfO-EpT0avB6S4PjFdA60TUr_hcsk_-fBH2ldpWgY/s320/11.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394175690349410722&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8. Once you done with the business logic now assign the output to the output variable and click on OK.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPNl_r_355WedTHiIkYsue34gUt5Gh5elrFCQlNY7ahGCAPyJ7ph2IzK5S1WQf4qIiPvqgJVGxPr_hskq-f3hJQHpFH_ZThhhTxvPFJcONKFHmNMjfWjwHl5HkmqVUihS9ziYJqG8cMjI/s1600-h/12.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 250px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPNl_r_355WedTHiIkYsue34gUt5Gh5elrFCQlNY7ahGCAPyJ7ph2IzK5S1WQf4qIiPvqgJVGxPr_hskq-f3hJQHpFH_ZThhhTxvPFJcONKFHmNMjfWjwHl5HkmqVUihS9ziYJqG8cMjI/s320/12.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394176397136630018&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9.  Your BPEL process is ready to deploy on the Oracle SOA Suite 10g. Make sure that your server is running and you are able to see the server instance under the ServerConnection.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi__Dy3R4suFkRKhNN6F4U6ExqYERhKhvWPqqmFBgDl2vDbN8smZViucVYWctYJjBSVKgj8XQFw2IbXdbRaWD12dtOYsXB2rwwfgHf6aENJABVs-e11uyHRDfxei2woGvGt5HfFi6JVIZ8/s1600-h/14.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi__Dy3R4suFkRKhNN6F4U6ExqYERhKhvWPqqmFBgDl2vDbN8smZViucVYWctYJjBSVKgj8XQFw2IbXdbRaWD12dtOYsXB2rwwfgHf6aENJABVs-e11uyHRDfxei2woGvGt5HfFi6JVIZ8/s320/14.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394177578254203202&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10.  If every thing is OK then you are able to see successful Build on the Ant console.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXZI7yv_o8oLo1NBUVWeFnpKnK-sBjbcFBXfX_TBTr84B4llAW78wVonRm4oizebCr45_z7Iv1qGkjdPiO829KEzghO4nuRvqtmpKB6fjplUWHF7MCEHr1D7yF_eDSPpGeMotNsDBLxSQ/s1600-h/15.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 152px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXZI7yv_o8oLo1NBUVWeFnpKnK-sBjbcFBXfX_TBTr84B4llAW78wVonRm4oizebCr45_z7Iv1qGkjdPiO829KEzghO4nuRvqtmpKB6fjplUWHF7MCEHr1D7yF_eDSPpGeMotNsDBLxSQ/s320/15.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394178119538814162&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;11.  Now lets test our BPEL process in the Oracle BPEL Process Manager. Open the BPM and login using default login authentication. Find our BPEL instance under BPEL Process tab here it is AddBPELProcess.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcC77EvBV-HYtOpr1V_Z_LjQ4ik-xTgHCEi1c23cKz6MKYh5f7x6JRwLmRydOvYzdCGP1E5AFu3MKnV54DRRb7qWWHMtLmgq6nFqvk47YyNuP4wYWXbqfoYe4pbU3PnLCgR5oIeXUTDvE/s1600-h/17.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 107px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcC77EvBV-HYtOpr1V_Z_LjQ4ik-xTgHCEi1c23cKz6MKYh5f7x6JRwLmRydOvYzdCGP1E5AFu3MKnV54DRRb7qWWHMtLmgq6nFqvk47YyNuP4wYWXbqfoYe4pbU3PnLCgR5oIeXUTDvE/s320/17.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394179133744533730&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;12.  Click on the AddBPELProcess instance to initiate the testing process. Pass the input value in the text box here it is 120 and click on the Post XML Message button.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGtUMMEwHWlNE2kVty_Ga0a346wVqq54Jv-U1tUS1WgHsdsFsHnefcGVk5JP05bj8OVNhfvNGENAiCqwPyHXGtY8Z4L5DKgfzeJ1B1VFCbb5CK86KkK3QWeTl9gE9ZzHesMhAwiIipJ9g/s1600-h/18.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 171px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGtUMMEwHWlNE2kVty_Ga0a346wVqq54Jv-U1tUS1WgHsdsFsHnefcGVk5JP05bj8OVNhfvNGENAiCqwPyHXGtY8Z4L5DKgfzeJ1B1VFCbb5CK86KkK3QWeTl9gE9ZzHesMhAwiIipJ9g/s320/18.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394180423392451842&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;13.  Finally, lets check for the result under flow tab which shows the visual representation of the bpel process. Double click on the assign activity to check the output variable value.  &lt;br /&gt;&lt;br /&gt;See, it is 240 (120 (Constant) + 120 (input value))that means our first bpel process worked well!!!.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizimzg3KWuovn8mh1NzBnSP9kHybAJzsPxYCyRBLkt0Uz7OZWM7Iuqf6KaI_xOwMRmyUwOjh001yENNG0IN1OAaT1NXjSCQb9134vXfiKQkFFtW_u2ZmxMlG7uygpxRT3_U3_OFvn6ht4/s1600-h/19.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 151px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizimzg3KWuovn8mh1NzBnSP9kHybAJzsPxYCyRBLkt0Uz7OZWM7Iuqf6KaI_xOwMRmyUwOjh001yENNG0IN1OAaT1NXjSCQb9134vXfiKQkFFtW_u2ZmxMlG7uygpxRT3_U3_OFvn6ht4/s320/19.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394187913478356050&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope, this article useful for the developers who just started learning Oracle SOA Suite. Do not hesitate to reach me for any queries on this workout.</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/7397257415688205130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2009/10/creating-simple-orcle-bpel-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/7397257415688205130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/7397257415688205130'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2009/10/creating-simple-orcle-bpel-process.html' title='Creating Simple Oracle BPEL Process'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgt7gGucEyXFwsOn7GYcbqQIzClPeffF_Y0gN_eFPSgAQqkDwv_S3b0eooNRDEC8USv_ogstrFbWA5If56TrDgi4tbhYkEn81mh9JudP0YljY2cY6WTPJxjoS4XF_e_uGxE7cbmZ5C8sg/s72-c/1.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7640939399522823673.post-4983169135815996207</id><published>2009-10-14T20:54:00.001-07:00</published><updated>2009-10-18T20:24:44.602-07:00</updated><title type='text'>What, Where and Why</title><content type='html'>&lt;span style=&quot;font-weight:bold;&quot;&gt;What&lt;/span&gt; -  &lt;br /&gt;   Lets start with &#39;What is SOA?&#39; -  Service Oriented Architecture is an architectural approach to develop ad-hoc services and connect them to form an information management system.  SOA allows us to create distributed services and exposes themselves to other services with an predefined service contract.&lt;br /&gt;&lt;br /&gt;   So what is a Service here - Yes, A service is an independent software component having business logic and expose itself through self-describing interface.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Where &lt;/span&gt;- &lt;br /&gt;   Why we bother about SOA, because of its decoupling nature. As we know if any system coupled tightly with the services it is very difficult to modify without disturbing the other services.&lt;br /&gt;  &lt;br /&gt;   The cost of maintenance raises as the count of services increasing in tightly coupled distributed system. In the maintenance cost perspective SOA gives you the feasibility to minimize the cost factor.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Why &lt;/span&gt;- &lt;br /&gt;   So where we can use this SOA? basically most of the SOA projects are integration based projects where we can use the loose coupling concept to integrate the services.  &lt;br /&gt;&lt;br /&gt;   SOA perfectly fits in the area where we reuse and composite the services to create new business processes. When a business extending, modifying its services or switching to other service providers or consumers SOA is the best option.</content><link rel='replies' type='application/atom+xml' href='http://buildingsoa.blogspot.com/feeds/4983169135815996207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://buildingsoa.blogspot.com/2009/10/what-where-and-why.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/4983169135815996207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7640939399522823673/posts/default/4983169135815996207'/><link rel='alternate' type='text/html' href='http://buildingsoa.blogspot.com/2009/10/what-where-and-why.html' title='What, Where and Why'/><author><name>K GANGADHARA RAMARAJU</name><uri>http://www.blogger.com/profile/12122592943828644981</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>