<?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-4048005136031199116</id><updated>2011-04-21T22:16:28.526-07:00</updated><title type='text'>Niro</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://neerosh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://neerosh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pradeep</name><uri>http://www.blogger.com/profile/00435742017991874571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_vuHVFSsKW28/Sm1ByO0hS7I/AAAAAAAAAi8/MC1RvrwbwCI/S220/DSC00597.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4048005136031199116.post-3156896188191633910</id><published>2009-03-31T23:13:00.000-07:00</published><updated>2009-04-01T01:39:25.043-07:00</updated><title type='text'>Map1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://maps.google.com/staticmap?center=40.714728,-73.998672&amp;amp;zoom=14&amp;amp;size=512x512&amp;amp;maptype=mobile%5C%20&amp;amp;markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc%5C%20&amp;amp;key=MAPS_API_KEY&amp;amp;sensor=false"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048005136031199116-3156896188191633910?l=neerosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neerosh.blogspot.com/feeds/3156896188191633910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4048005136031199116&amp;postID=3156896188191633910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default/3156896188191633910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default/3156896188191633910'/><link rel='alternate' type='text/html' href='http://neerosh.blogspot.com/2009/03/map1.html' title='Map1'/><author><name>Pradeep</name><uri>http://www.blogger.com/profile/00435742017991874571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_vuHVFSsKW28/Sm1ByO0hS7I/AAAAAAAAAi8/MC1RvrwbwCI/S220/DSC00597.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048005136031199116.post-5311922748986280888</id><published>2008-07-02T23:56:00.000-07:00</published><updated>2008-07-13T20:14:05.821-07:00</updated><title type='text'>Externalize Business Logic from Status/Transition handling of Business Entities</title><content type='html'>&lt;span style=";font-family:verdana;font-size:100%;"  lang="EN-GB" &gt;In any business domain, it is common to have a separate status life cycle for a domain entity. They are normally explained in a State Machine diagram which describes how a business entity responds to a business event. When it comes to implementation usually the status handling logic mixed up with the business logic code over Switch Statement style coding . Status life cycle handling for a domain entity within business logic would cause the application to be less manageable and more complex.&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  lang="EN-GB" &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt;Having a centralized mechanism of Status/Transition&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt; management would lead to a more flexible and manageable application. This will in turn allow the&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt; business domain expert and developers to easily manage state-transition of each domain entity with following potentials.&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Separate Business Logic from State-Transition handling logic&lt;/li&gt;&lt;li&gt;Simply Read/Write access to the State Machine via a State-Transition Matrix model.&lt;/li&gt;&lt;li&gt;Easy access of exception on undefined state-transitions.&lt;/li&gt;&lt;li&gt;Directed application to Event-Driven approach.&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  lang="EN-GB" &gt;The following diagram depicts the pattern how business service implementation is externalized the state transition handling.&lt;/span&gt;&lt;br /&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-family: verdana;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_vuHVFSsKW28/SGyFxdWJy2I/AAAAAAAAAZQ/DjoyKpNtr00/s1600-h/ss.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_vuHVFSsKW28/SGyFxdWJy2I/AAAAAAAAAZQ/DjoyKpNtr00/s320/ss.jpg" alt="" id="BLOGGER_PHOTO_ID_5218693152953191266" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;State Machine will basically provide the state/transition handling services (load/reset state machine, get next status, set new status) to the Business Service layer which have no any knowledge about the logic of maintaining statuses for its entities.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  class="MsoNormal" style="font-family:verdana;"&gt;  &lt;/p&gt;&lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-weight: bold;"&gt;State Machine Implementation &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="EN-GB"&gt;This idea is acquired from the mathematical modal called Deterministic Finite Automation on which Most of the commonly used compilers (Lexical Analyzer) are designed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p face="verdana" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in; text-align: justify; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;A state machine consists of &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in 2pt 0.5in; text-align: justify; text-indent: -0.25in; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;- &lt;/span&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;a set of states &lt;b&gt;&lt;i&gt;S&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in 2pt 0.5in; text-align: justify; text-indent: -0.25in; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;- &lt;/span&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;a set of transition &lt;b&gt;&lt;i&gt;T&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in 2pt 0.5in; text-align: justify; text-indent: -0.25in; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;- &lt;/span&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;a state &lt;b&gt;&lt;i&gt;s&lt;sub&gt;0&lt;/sub&gt;&lt;/i&gt;&lt;/b&gt; that is distinguished as the initial state&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in 2pt 0.5in; text-align: justify; text-indent: -0.25in; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;- &lt;/span&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;a set of states &lt;b&gt;&lt;i&gt;F&lt;/i&gt;&lt;/b&gt; distinguish as final states&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in 2pt 0.5in; text-align: justify; text-indent: -0.25in; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;- &lt;/span&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;and for each transition &lt;b&gt;t&lt;sub&gt;1&lt;/sub&gt;&lt;i&gt;,&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;b&gt;t&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt; leaving state &lt;b&gt;&lt;i&gt;s&lt;/i&gt;&lt;/b&gt; as &lt;b&gt;t&lt;sub&gt;1&lt;/sub&gt; ≠&lt;/b&gt; &lt;b&gt;t&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="styleheading2latintahoma"  style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="EN-GB"&gt;can easily be represented as a 2-dimentional matrix (2-dimentional array) in which one axis represents all possible state and the others for all possible transition, and returning resulting next state.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin: 2pt 0in; text-align: justify; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;The following figure illustrates a sample state machine that follows above properties;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 2pt 0in; text-align: justify; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 125%;" lang="EN-GB"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 2pt 0in; text-align: justify; line-height: 125%;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_vuHVFSsKW28/SGx-5pfewZI/AAAAAAAAAZI/ccvGwqsyJm8/s1600-h/tmp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_vuHVFSsKW28/SGx-5pfewZI/AAAAAAAAAZI/ccvGwqsyJm8/s320/tmp.jpg" alt="" id="BLOGGER_PHOTO_ID_5218685597071098258" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" face="verdana" style="margin: 2pt 0in; text-align: justify; line-height: 125%; font-family: verdana;"&gt;  &lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="styleheading2latintahoma"  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="" lang="EN-GB"&gt;Here, how it represents above state machine in a 2-dimentional array.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;int[][] stateMachine = new int[4][3];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;stateMachine [STATUS_INIT][event_create] = STATUS_NEW;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;stateMachine [STATUS_NEW][event_open] = STATUS_ACTIVE;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;stateMachine [STATUS_ACTIVE][event_close] = STATUS_CLOSE;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;stateMachine [STATUS_NEW][ event_close] = STATUS_CLOSE;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:verdana;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;Using above state machine model, status handling services for the business service layer can be easily implemented as following.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" face="verdana"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-family:courier new;"&gt;load()&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;begin&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;    //read from configuration or database and fill the stateMachine matrix&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" face="courier new"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p  class="MsoNormal" style="font-family:courier new;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;nextStatus(event:Int, currentStatus:Int) : Int&lt;br /&gt;begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:courier new;"&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;span style=""&gt; &lt;/span&gt;return &lt;/span&gt;&lt;span style="font-size:100%;"&gt;stateMachine[currentStatus][event];&lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="font-family: courier new;" class="MsoNormal" face="courier new"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="font-family: courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="EN-GB"&gt;end;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="EN-GB"&gt;I found this is simple way of expressing state machine for any business model and would lead to a centralized state management mechanism.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="EN-GB" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048005136031199116-5311922748986280888?l=neerosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neerosh.blogspot.com/feeds/5311922748986280888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4048005136031199116&amp;postID=5311922748986280888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default/5311922748986280888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default/5311922748986280888'/><link rel='alternate' type='text/html' href='http://neerosh.blogspot.com/2008/07/externalize-business-logic-from.html' title='Externalize Business Logic from Status/Transition handling of Business Entities'/><author><name>Pradeep</name><uri>http://www.blogger.com/profile/00435742017991874571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_vuHVFSsKW28/Sm1ByO0hS7I/AAAAAAAAAi8/MC1RvrwbwCI/S220/DSC00597.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_vuHVFSsKW28/SGyFxdWJy2I/AAAAAAAAAZQ/DjoyKpNtr00/s72-c/ss.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048005136031199116.post-4978216565780338708</id><published>2008-07-01T21:50:00.000-07:00</published><updated>2008-07-03T00:47:49.275-07:00</updated><title type='text'>State Management in Business Entities</title><content type='html'>see &lt;a href="http://neerosh.blogspot.com/2008/07/externalize-business-logic-from.html"&gt;http://neerosh.blogspot.com/2008/07/externalize-business-logic-from.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048005136031199116-4978216565780338708?l=neerosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neerosh.blogspot.com/feeds/4978216565780338708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4048005136031199116&amp;postID=4978216565780338708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default/4978216565780338708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048005136031199116/posts/default/4978216565780338708'/><link rel='alternate' type='text/html' href='http://neerosh.blogspot.com/2008/07/state-management-in-business-entities.html' title='State Management in Business Entities'/><author><name>Pradeep</name><uri>http://www.blogger.com/profile/00435742017991874571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_vuHVFSsKW28/Sm1ByO0hS7I/AAAAAAAAAi8/MC1RvrwbwCI/S220/DSC00597.JPG'/></author><thr:total>0</thr:total></entry></feed>
