<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Technology Spotlight</title>
	<atom:link href="http://www.tekspotlight.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tekspotlight.com</link>
	<description>Innovating Solution for Everyone</description>
	<pubDate>Tue, 17 Nov 2009 20:18:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Axis2 username/password Authentication</title>
		<link>http://www.tekspotlight.com/2009/11/17/axis2-usernamepassword-authentication/</link>
		<comments>http://www.tekspotlight.com/2009/11/17/axis2-usernamepassword-authentication/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 20:18:28 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Service-oriented architecture (SOA)]]></category>

		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/?p=141</guid>
		<description><![CDATA[I was calling the username/password authentication enabled web service from axis2 client. To pass the username and password to request header I was looking for solution and found many ways to pass username and password to header like rampart, OMElement using java code:
Below is some code snippet that shows how to pass username and password [...]]]></description>
			<content:encoded><![CDATA[<p>I was calling the username/password authentication enabled web service from axis2 client. To pass the username and password to request header I was looking for solution and found many ways to pass username and password to header like rampart, OMElement using java code:</p>
<p>Below is some code snippet that shows how to pass username and password to service call:<br />
<span id="more-141"></span><br />
import org.apache.axiom.om.OMElement;<br />
import org.apache.axiom.om.OMNamespace;<br />
import org.apache.axiom.soap.impl.dom.SOAPHeaderBlockImpl;<br />
import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;<br />
import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderBlockImpl;<br />
import org.apache.axis2.AxisFault;<br />
import org.apache.axis2.client.ServiceClient;<br />
import org.apache.axis2.databinding.types.NonNegativeInteger;<br />
import org.apache.axis2.databinding.types.PositiveInteger;</p>
<p>ServiceClient client = stub._getServiceClient();<br />
SOAP11Factory factory = new SOAP11Factory();<br />
OMNamespace SecurityElementNamespace = factory.createOMNamespace(&#8221;http://schemas.xmlsoap.org/ws/2002/04/secext&#8221;, &#8220;wwlm&#8221;);</p>
<p>OMElement usernameTokenEl = factory.createOMElement(&#8221;UsernameToken&#8221;, SecurityElementNamespace);<br />
OMElement usernameEl = factory.createOMElement(&#8221;Username&#8221;, SecurityElementNamespace);<br />
OMElement passwordEl = factory.createOMElement(&#8221;Password&#8221;, SecurityElementNamespace);<br />
usernameEl.setText(&#8221;username&#8221;);<br />
passwordEl.setText(&#8221;password&#8221;);<br />
usernameTokenEl.addChild(usernameEl);<br />
usernameTokenEl.addChild(passwordEl);</p>
<p>SOAPHeaderBlockImpl block = new SOAP11HeaderBlockImpl(&#8221;Security&#8221;, SecurityElementNamespace, factory);<br />
block.addChild(usernameTokenEl);</p>
<p>client.addHeader(block);</p>
<p>I will try to post other way to pass username/password to web service.</p>
<p>Thanks,<br />
~Kumar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2009/11/17/axis2-usernamepassword-authentication/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JAAS Authentication for Web-Application with Jboss and enable SingleSignOn</title>
		<link>http://www.tekspotlight.com/2009/02/15/jaas-authentication-for-web-application-with-jboss-and-enable-singlesignon/</link>
		<comments>http://www.tekspotlight.com/2009/02/15/jaas-authentication-for-web-application-with-jboss-and-enable-singlesignon/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 14:09:05 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Jboss]]></category>

		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/2009/02/15/jaas-authentication-for-web-application-with-jboss-and-enable-singlesignon/</guid>
		<description><![CDATA[A few days ago I was proposed to develop a POC for JAAS Authentication for Web-Application with jobs. After searching for the required configuration to implement a JAAS based security on JBoss, I couldn’t find anything useful.
It took a while for me to find all the required setting and run my project under JAAS technology [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I was proposed to develop a POC for JAAS Authentication for Web-Application with jobs. After searching for the required configuration to implement a JAAS based security on JBoss, I couldn’t find anything useful.</p>
<p>It took a while for me to find all the required setting and run my project under JAAS technology on the Jboss application server, so I decided to share my knowledge and document it, hope to be useful for somebody.</p>
<p>This document will help you to configure Jaas Authentication for Web-Application on Jboss Application Server as well as will help you in enabling SingleSignOn.</p>
<p>Below are the steps to configure jaas Authentication for Web-application on jboss:</p>
<p><strong>Step-1:</strong> <strong>Define a new application policy in login-config.xml</strong> (C:\Software\jboss-4.2.3.GA\server\default\conf\login-config.xml)</p>
<p>To define an application policy, you need to modify login-config.xml to add the application policy: Below is the example policy.</p>
<p><em>&lt;application-policy name = &#8220;web-console&#8221;&gt;</em></p>
<p><em>&lt;authentication&gt;</em></p>
<p><em>&lt;login-module code=&#8221;org.jboss.security.auth.spi.UsersRolesLoginModule&#8221;</em></p>
<p><em>flag = &#8220;required&#8221;&gt;</em></p>
<p><em>&lt;module-option name=&#8221;usersProperties&#8221;&gt;props/web-console-users.properties&lt;/module-option&gt;</em></p>
<p><em>&lt;module-option name=&#8221;rolesProperties&#8221;&gt;props/web-console-roles.properties&lt;/module-option&gt;</em></p>
<p><em>&lt;/login-module&gt;</em></p>
<p><em>&lt;/authentication&gt;</em></p>
<p><em>&lt;/application-policy&gt;</em></p>
<p><span id="more-133"></span></p>
<p>Add web-console-user.properties file in props folder (C:\Software\jboss-4.2.3.GA\server\default\conf\props) containing user and password information. Below is the example content in this file:</p>
<p>admin=admin</p>
<p>kumar=kumar</p>
<p>Add web-console-roles.properties file in props folder (C:\Software\jboss-4.2.3.GA\server\default\conf\props) containing user and role information. Below is the example content in this file:</p>
<p>admin=Administrator,user</p>
<p>kumar=user</p>
<p><strong>Step-2: Create Security Domain</strong></p>
<p>To define a security domain, you need to create a file named jboss‐web.xml in the</p>
<p>WEB‐INF directory of your web application.</p>
<p>Example of jboss‐web.xml:</p>
<p><em>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</em></p>
<p><em>&lt;jboss-web&gt;</em></p>
<p><em>&lt;security-domain&gt;java:/jaas/web-console&lt;/security-domain&gt;</em></p>
<p><em>&lt;context-root&gt;/jaasTest&lt;/context-root&gt;</em></p>
<p><em>&lt;/jboss-web&gt;</em></p>
<p><em>web-console</em> in the above example is the name of the defined application policy in the first</p>
<p>step.</p>
<p><strong>Step-3: Secure the Application</strong></p>
<p>In this step we secure the web application. For this we need to modify the web.xml file in the WEB‐INF directory.</p>
<p>These are changes need to apply to the web.xml file:</p>
<ol>
<li><strong>Authentication</strong>: We should tell JBoss to authenticate users before allowing them to enter the application. This is done by adding &lt;login‐config&gt; element to the web.xml.</li>
</ol>
<p><em>&lt;login-config&gt;</em></p>
<p><em>&lt;auth-method&gt;FORM&lt;/auth-method&gt;</em></p>
<p><em>&lt;realm-name&gt;web-console&lt;/realm-name&gt;</em></p>
<p><em>&lt;form-login-config&gt;</em></p>
<p><em>&lt;form-login-page&gt;/login.jsp&lt;/form-login-page&gt;</em></p>
<p><em>&lt;form-error-page&gt;/login.jsp?error=yes&lt;/form-error-page&gt;</em></p>
<p><em>&lt;/form-login-config&gt;</em></p>
<p><em>&lt;/login-config&gt;</em></p>
<p>In this example we tell JBoss that we need a form‐based authentication (redirects users to our own login form). login.jsp is the designed login page and if the authentication fails, users are redirected to loginfail.jsp.</p>
<ol>
<li><strong>Create Login Page</strong>: Login page is a very simple JSP page with a form where the action of the form is set to j_security_check and a text box, j_username for username and apassword box, j_password for Password. For Example</li>
</ol>
<p>&lt;form method=&#8221;POST&#8221; action=&#8221;j_security_check&#8221;&gt;</p>
<p>Login: &lt;input type=&#8221;text&#8221; name=&#8221;j_username&#8221;&gt;&lt;br/&gt;</p>
<p>Passwort: &lt;input type=&#8221;password&#8221; name=&#8221;j_password&#8221;&gt;&lt;br/&gt;</p>
<p>&lt;input type=&#8221;submit&#8221; value=&#8221;Login&#8221;/&gt;</p>
<p>&lt;/form&gt;</p>
<ol>
<li><strong>Secure Web Resources: </strong>Now we define our secured resources and required roles to access them. This is done by adding &lt;security‐constraint&gt; element to web.xml</li>
</ol>
<p>&lt;security-constraint&gt;</p>
<p>&lt;web-resource-collection&gt;</p>
<p>&lt;web-resource-name&gt;CSF&lt;/web-resource-name&gt;</p>
<p>&lt;url-pattern&gt;/*&lt;/url-pattern&gt;</p>
<p>&lt;/web-resource-collection&gt;</p>
<p>&lt;auth-constraint&gt;</p>
<p>&lt;role-name&gt;Administrator&lt;/role-name&gt;</p>
<p>&lt;role-name&gt;user&lt;/role-name&gt;</p>
<p>&lt;/auth-constraint&gt;</p>
<p>&lt;/security-constraint&gt;</p>
<p>In this example we are securing the entire pages of web-application.</p>
<p><strong><span style="text-decoration: underline;">Enable SingleSignOn on Jboss</span></strong></p>
<p>SingleSignOn will help you in sharing user credential of one authenticated application to other applications that are deployed on same jboss server.</p>
<p>To enable SingleSignOn on jboss uncomment the following valve from server.xml (C:\Software\jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\server.xml)</p>
<p>&lt;Valve className=&#8221;org.apache.catalina.authenticator.SingleSignOn&#8221; /&gt;</p>
<p>Thanks,</p>
<p>~Kumar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2009/02/15/jaas-authentication-for-web-application-with-jboss-and-enable-singlesignon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Single Sign On (SSO) using JBoss and SAML</title>
		<link>http://www.tekspotlight.com/2008/12/29/single-sign-on-sso-using-jboss-and-saml/</link>
		<comments>http://www.tekspotlight.com/2008/12/29/single-sign-on-sso-using-jboss-and-saml/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 17:43:50 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Jboss]]></category>

		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/2008/12/29/single-sign-on-sso-using-jboss-and-saml/</guid>
		<description><![CDATA[
In this article I am going explain SSO and how to setup SSO in JBoss.
Single Sign On (SSO) is a specialized form of user authentication that enables a user to be authenticated once, and gain access to resources on multiple systems/web applications during that session.
The JBoss SSO framework is combination of three components:
1. Federation Server
2. [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>In this article I am going explain SSO and how to setup SSO in JBoss.</p>
<p>Single Sign On (SSO) is a specialized form of user authentication that enables a user to be authenticated once, and gain access to resources on multiple systems/web applications during that session.</p>
<p>The JBoss SSO framework is combination of three components:</p>
<p>1. Federation Server</p>
<p>2. Token Marshalling Framework</p>
<p>3. Identity Connector Framework</p>
<p>Following are the steps to setup JBoss SSO:</p>
<p><b>Step-1: Installation</b></p>
<p>Download JBoss from here : <a href="http://www.jboss.org/jbossas/downloads/">Download</a></p>
<p>Unzip/Untar the distribution on your machine e.g.: C:/jboss</p>
<p>Download JBoss Federated SSO from here : <a href="http://labs.jboss.com/portal/jbosssso/downloads">Download</a></p>
<p>Unzip/Untar the distribution on your machine egg C:/Jboss Federated SSO</p>
<p>Copy the jboss-sso.sar and jboss-federation-server.ear file from the C:/Jboss Federated SSO /components/jboss_federation_server*/bin directory to the deploy directory of your JBoss Application Server</p>
<p> <span id="more-132"></span>
<p><b></b></p>
<p><b>Step2 - Configure the Identity Management Framework</b></p>
<p>Edit the file <strong>jboss-sso.sar/conf/sso.cfg.xml </strong><strong>to set the Login provider like LDAP, Custom Login Provider or DemoLoginProvider bundled in </strong><i>jboss-identity-management.jar. </i></p>
<p><i>E.g.:</i></p>
<p>&lt;identity-management&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;login&gt;</p>
<p>&lt;provider id=&quot;si:jboss-sso:ldap:login&quot; class=&quot;org.jboss.security.idm.ldap.LDAPIdentityProvider&quot;&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;connectionURL&quot;&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; jdbc:ldap://localhost:389/dc=jboss,dc=com?SEARCH_SCOPE:=subTreeScope&amp;secure:=false&amp;concat_atts:=true&amp;size_limit:=10000000</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;username&quot;&gt;cn=Admin,dc=jboss,dc=com&lt;/property&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;password&quot;&gt;jbossrocks&lt;/property&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;identityOu&quot;&gt;jbosssso&lt;/property&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;roleOu&quot;&gt;role&lt;/property&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/provider&gt;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/login&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p>
<p>&#160;&#160;&#160;&#160; &lt;/identity-management&gt;</p>
<p><b>Or </b></p>
<p>&lt;login&gt;</p>
<p>&lt;provider id=&quot;si:jboss-sso:demo:login&quot; class=&quot;org.jboss.security.idm.demo.DemoLoginProvider&quot;/&gt;</p>
<p>&lt;/login&gt;</p>
<p><b>Note:</b> you can see or add users in <i>users_en.properties file bundled in </i><i>jboss-identity-management.jar.</i></p>
<p><b>Step3 - Configure the Federated SSO Trust Server</b></p>
<p><strong>Edit the file jboss-sso.sar/conf/sso.cfg.xml</strong><strong> to set the SSO trust server</strong></p>
<pre><code>&lt;sso-processor&gt;</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </code><code>&lt;processor class=&quot;org.jboss.security.saml.JBossSingleSignOn&quot;&gt;</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;trustServer&quot;&gt;</code><code><a href="http://node1.testsso.org:8080/federate/trust%3c/property%3e">http://node1.testsso.org:8080/federate/trust&lt;/property&gt;</a></code><code></code></pre>
<pre><code>&#160;&#160;&#160; </code><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </code><code>&lt;/processor&gt;</code><code></code></pre>
<pre><code>&lt;/sso-processor&gt;</code></pre>
<p><b>Step4 - Configure your web application to activate Federated SSO</b></p>
<p>Step 4.1: Add the following context.xml under WEB-INF folder of your WAR file:</p>
<pre><code>&lt;?xml version=&quot;1.0&quot;?&gt;</code></pre>
<pre><code>&#160;&#160;&#160; &lt;Context&gt;</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logoutURL - URL for performing logout/signout function in your application</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; --&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; &lt;Valve className=&quot;org.jboss.security.valve.PlainSSOAutoLogout&quot; </code></pre>
<pre><code>&#160;&#160;&#160;&#160; logoutURL=&quot;{logoutURL of your application}&quot;&gt;&lt;/Valve&gt;</code></pre>
<pre><code>&#160;&#160;&#160;&#160; </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; assertingParty - this is the partnerId of this application as a part of a federation of multiple partner sites</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; --&gt;</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; &lt;Valve className=&quot;org.jboss.security.valve.PlainSSOTokenManager&quot; </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; assertingParty=&quot;{uniqueId to identify this web application in the federation}&quot;&gt;&lt;/Valve&gt;</code></pre>
<pre><code>&#160;&#160; </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- </code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; tomcat built-in AuthenticationTypes: FORM,BASIC,DIGEST,CLIENT-CERT</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; --&gt;</code></pre>
<pre><code>&#160;&#160;&#160;&#160;&#160;&#160; &lt;Valve className=&quot;org.jboss.security.valve.PlainSSOAutoLogin&quot;&gt;&lt;/Valve&gt;</code></pre>
<pre><code>&#160;&#160; &lt;/Context&gt;</code><code></code></pre>
<pre><code>&#160;</code></pre>
<p>Step 4.2: When the authentication usecase is executed within your web application via the login screen or some other mechanism, part of executing that process, when the login is successful, send a notification of this event to the SSO Engine using the following API call:</p>
<pre><code>org.jboss.security.saml.SSOManager. processManualLoginNotification(HttpServletRequest request,String user)</code></pre>
<p>Step 4.3 : When the SSOEngine performs an automatic login in response to a trusted SSOToken, it will send the following notification on your LoginProvider:</p>
<pre><code>processSSOLoginNotification(LoginContext)</code></pre>
<p>&#160; Here, you can handle any web application environment necessary to setup an authenticated user session</p>
<p><b>Step5 – Run and test your application</b></p>
<p>· <b>Note: </b>On Windows add the following entries to your hosts file to simulate applications running on different web domains\ (On Vista hosts file is lying under C:\Windows\System32\drivers\etc folder)</p>
<p>o 127.0.0.1&#160;&#160;&#160;&#160;&#160;&#160;&#160; node1.testsso.com</p>
<p>o 127.0.1.1&#160;&#160;&#160;&#160;&#160;&#160;&#160; node1.testsso.org</p>
<ul>
<li>Deploy your web application in the &#8216;deploy&#8217; directory of the &#8216;default&#8217; configuration\ </li>
</ul>
<p>run -c default -b node1.testsso.com\ </p>
<ul>
<li>Now create an exact same copy of &#8216;default&#8217; configuration and name it &#8216;default2&#8242;\ </li>
</ul>
<p>run -c default2 -b node1.testsso.org </p>
<p>For more details please refer to link <a href="http://www.jboss.org/community/docs/DOC-12304">http://www.jboss.org/community/docs/DOC-12304</a></p>
<p>Thanks,</p>
<p>~Kumar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2008/12/29/single-sign-on-sso-using-jboss-and-saml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spotlight on Next Big Thing: Cloud Computing</title>
		<link>http://www.tekspotlight.com/2008/10/11/next-big-thing-cloud/</link>
		<comments>http://www.tekspotlight.com/2008/10/11/next-big-thing-cloud/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 15:59:15 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Cloud computing]]></category>

		<category><![CDATA[Service-oriented architecture (SOA)]]></category>

		<category><![CDATA[Cloud Compu]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/?p=120</guid>
		<description><![CDATA[I have been following cloud computing for quite some time. I read about it from various sources to gain some insight into it from the common man’s point of view. Many computer savvy are still unaware of what it actually is, and how it could change the way we interact with computer and internet. Finally [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;">I have been following cloud computing for quite some time. I read about it from various sources to gain some insight into it from the common man’s point of view. Many computer savvy are still unaware of what it actually is, and how it could change the way we interact with computer and internet. Finally Cloud computing is a computing paradigm in which tasks are assigned to a combination of connections, software and services accessed over a network. The network of servers and connections is collectively known as &#8220;the cloud&#8221;. Or we can say cloud computer is internet-based computing device.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;">Many computer pundits predict that it will be the next big thing in the digital revaluation. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"><strong>Applications in the cloud:</strong><strong><span style="font-weight: normal;"> </span></strong>this is what almost everyone has already used in the form of gmail, yahoo mail, the rest of google apps, the various search engines, wikipedia, etc <strong></strong></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"><strong> </strong></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"><strong>Platforms in the cloud: </strong>this is the newest innovation where an application platform is offered to developers in the cloud. Developers write their application and then upload their code into the cloud where the app is run magically somewhere, typically being able to scale up automagically as usage for the app grows. Example: Mosso, Google App Engine, etc</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"><strong><span style="font-weight: normal;"> </span></strong></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; font-family: Verdana;"><span style="font-size: small;"><strong>Infrastructure in the cloud: </strong>this is the most general offering that Amazon has pioneered and where RightScale offers its management platform. Developers and system administrators obtain general compute, storage, queueing, and other resources and run their applications with the fewest limitations. This is the most powerful type of cloud in that virtually any application and any configuration that is fit for the internet can be mapped to this type of service. </span></p>
<p><span style="font-size: small;"><br style="font-family: Verdana;" /></span></p>
<div><span style="font-size: small;">Amazon provides EC2 services. Ec2 is a web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon <span class="caps">EC2</span> reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon <span class="caps">EC2</span> changes the economics of computing by allowing you to pay only for capacity that you actually use. The services are billed on a pay-as-you-go usage basis.</span></div>
<p><span style="font-size: small;"> </p>
<p></span></p>
<p style="font-family: Verdana;"><span style="font-size: small;">Here i am providing some other useful hints for developers who considering the EC2 service:</span> <span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;">1. &#8220;Before spending too much time configuring and customizing an AMI, find one that suits your needs from the start so you won&#8217;t have to redo any work later on down the road. Check out the <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=101">list of public AMIs</a> in Amazon’s resource center for something that is more suitable for your needs&#8221;</span><span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;">2. &#8220;When packaging up your own image using the ‘ec2-bundle-vol’ command, make sure you specify a clean folder using the &#8216;–d&#8217; flag otherwise bundling the same image twice will result in an error due to the conflicting sets of temporary files.&#8221;</span><span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;">3. &#8220;When working with your image, note that the main drive/partition (where the system files are) has a very limited capacity (10 GB in our case). So when dealing with large files/directories use ‘/mnt’ as it has over 100 GB.</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;"><br />
</span></p>
<p style="font-family: Verdana;"><span style="font-size: small;">4. &#8220;If a machine is terminated, all your data will be lost except for what was backed up from the last time you ran an &#8216;ec2-bundle-vol&#8217;&#8221; </span></p>
<p><span style="font-size: x-small;"><span style="font-size: small;"><br />
<span style="font-family: Verdana;">If you have any query/suggestion please feel free to write a comment on this blog.</span><br style="font-family: Verdana;" /><br style="font-family: Verdana;" /><span style="font-family: Verdana;">Thanks,</span><br style="font-family: Verdana;" /><span style="font-family: Verdana;">~Kumar</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2008/10/11/next-big-thing-cloud/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Technical Spotlight on SOA (Service Oriented Architecture)</title>
		<link>http://www.tekspotlight.com/2008/09/27/soa/</link>
		<comments>http://www.tekspotlight.com/2008/09/27/soa/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 02:19:20 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Service-oriented architecture (SOA)]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/?p=86</guid>
		<description><![CDATA[Well now a day all big organizations/executives have been talking about SAO as a buzzword (For one thing, it’s three word) and SOA enabled Architecture. Here I am sharing my learning and experience from SOA…
SOA (Service Oriented Architecture) is an application development methodology that leverages lightweight, well-designed “Services” (The means by which the needs of [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Well now a day all big organizations/executives have been talking about SAO as a buzzword (For one thing, it’s three word) and SOA enabled Architecture. Here I am sharing my learning and experience from SOA…</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">SOA (Service Oriented Architecture)</span></strong><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> is an application development methodology that leverages lightweight, well-designed “<strong style="mso-bidi-font-weight: normal;">Services</strong>” (<em style="mso-bidi-font-style: normal;">The means by which the needs of a consumer are brought together with capabilities of a provider</em>). In other words:<span style="mso-spacerun: yes;">  </span>SOA is a style of building distributed systems that enables business integration using <strong style="mso-bidi-font-weight: normal;">services</strong> as building blocks or It is a thought process and methodology of decoupling IT assets – Software and hardware – from business processes. We can say SOA is a business-driven IT architectural approach that supports agile, innovation and optimization.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Building blocks of SOA: </span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo3;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Business level Services</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo3;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Infrastructure level services</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo3;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Services Management</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo3;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Security</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l4 level1 lfo3;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Services Directory</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Earlier SOA used DCOM or ORB based on CORBA specifications and recent SOA stresses on <strong style="mso-bidi-font-weight: normal;">web services </strong>using standard description (WSDL), discovery (UDDI) and messaging (SOAP). Services oriented architecture may or may not use web services but yes web services provide a simple way towards service oriented architecture. </span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 10pt 0.75in; mso-add-space: auto;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 3;">                             </span><span style="mso-spacerun: yes;">     </span>Service-oriented architecture</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; text-align: center;" align="center"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; text-align: center;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><a href="http://www.tekspotlight.com/wp-content/uploads/2008/09/soa.jpg"><img class="size-medium wp-image-87 aligncenter" title="soa" src="http://www.tekspotlight.com/wp-content/uploads/2008/09/soa-300x170.jpg" alt="" width="300" height="170" /></a></span></strong></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Services</span></strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> is a unit of work done by service provider to achieve desired business for a service consumer</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">S<strong style="mso-bidi-font-weight: normal;">ervice provider </strong>is the individual or organizations who create the service and publish that in service directory (Registry)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Service Directory</span></strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> is a well-known directory of available services. It registers available services and making them easily accessible for multiple reuses.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Now what should be the <strong style="mso-bidi-font-weight: normal;">characteristics of a “Service”</strong> and which <strong style="mso-bidi-font-weight: normal;">characteristics that define the “service”</strong>? Service should have Syntax, Semantics, QoS and Business Traceability. Below are the lists of characteristics of a “Service”:</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Well defined interface</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Modular</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Stateless</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Connectionless</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Coarse grained</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Location transparent</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Here is the list of design <strong style="mso-bidi-font-weight: normal;">principles that drive SOA</strong>:</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l1 level1 lfo1;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">1.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Modularity</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l1 level1 lfo1;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">2.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Encapsulation</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l1 level1 lfo1;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">3.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Loose coupling</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l1 level1 lfo1;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">4.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Separation of Concerns</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l1 level1 lfo1;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">5.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Compos ability</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in; mso-list: l1 level1 lfo1;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">6.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Single Implementation</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Loose coupling</span></strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"> <em style="mso-bidi-font-style: normal;">is a type of coupling that describes how multiple computer systems, even those using incompatible technologies, can be joined together for transactions, regardless of hardware, software and other functional components</em>. Or By decoupling from platform, protocol, location and language using interface based assembly.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">SOA resolves four important dependencies that are:</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Platform Dependence</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Location Dependence</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Implementation Dependence</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Information Format Dependence</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Benefits of SOA:</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Service-oriented architectures offer the promise of business agility and resilience through reuse, loose coupling, flexibility, interoperability, integration and governance. These are realized by separating service description from their implementations, and using this descriptive metadata across the service life cycle.</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Increased business responsibilities and agility</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Ability to transcend organizational boundaries</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Reduces product development cycle times</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in; mso-list: l3 level1 lfo2;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Exposes commodities in business processes</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">SOA Governance</span></strong><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">: Governance is the overarching accountability framework that supports an organization’s strategies and objectives by encouraging desired behaviors that add value and which provides control mechanism to ensure compliance. </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">”Governance is about tracking all the rules and monitoring events around them to ensure that service-oriented architecture works the way it’s supposed to” says Daryl Plummer, a Gartner managing VP.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">We should <strong style="mso-bidi-font-weight: normal;">address following technical issues while designing SOA</strong>:</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">1.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Interoperability</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">2.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Loose Coupling</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">3.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Location transparency</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">4.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Modular issues</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">5.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Reuse focus</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">6.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Integration issues</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">7.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Granularity</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">8.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Application assembly to model business process</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">9.</span><span style="font: 7pt &quot;Times New Roman&quot;;">      </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Intra company solutions using existing components</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo4;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-list: Ignore;"><span style="font-size: small;">10.</span><span style="font: 7pt &quot;Times New Roman&quot;;">  </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">External integration solutions using web-services</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt 0.25in;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Service Modeling Techniques:</span></span></strong></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l2 level1 lfo5;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Top down approach</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l2 level1 lfo5;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Bottoms up approach</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in; text-indent: -0.25in; mso-add-space: auto; mso-list: l2 level1 lfo5;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Middle-out approach<strong style="mso-bidi-font-weight: normal;"></strong></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">I will keep writing about SOA and other learning and experience. You can write you valuable comment over it.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">Thanks,</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><span style="font-size: small;">~Kumar</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2008/09/27/soa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Aspect Oriented Programming (AOP) and Spring</title>
		<link>http://www.tekspotlight.com/2008/09/18/aop/</link>
		<comments>http://www.tekspotlight.com/2008/09/18/aop/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 04:09:15 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/?p=63</guid>
		<description><![CDATA[AOP is all about adding aspects to your code. So what are aspects? The code that we apply on Cross Cutting Concerns. Then what is Cross Cutting Concerns? Aspect, Jointpoint, Pointcut, Cross Cutting Concerns, Advice etc are the frequently used word in AOP world. AOP decomposes a system into concerns, instead of objects.
 

Aspect: It’s like [...]]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">AOP is all about adding aspects to your code. So what are aspects? The code that we apply on Cross Cutting Concerns. Then what is Cross Cutting Concerns? Aspect, Jointpoint, Pointcut, Cross Cutting Concerns, Advice etc are the frequently used word in AOP world. AOP decomposes a system into concerns, instead of objects.</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"> </p>
<p class="western" style="margin: auto 0in 0pt; text-align: center;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><a href="http://www.tekspotlight.com/wp-content/uploads/2008/09/aop-example.jpg"><img class="size-medium wp-image-84 aligncenter" title="aop-example" src="http://www.tekspotlight.com/wp-content/uploads/2008/09/aop-example-300x251.jpg" alt="" width="300" height="251" /></a></span></strong></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Aspect</span></strong><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">: It’s like a general feature you want to apply globally to your application like logging, exception handling, transaction management, performance management etc. It is also called Cross Cutting Concerns.</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Advice:</span></strong><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> It is a piece of code/logic for implementing your advice.</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Joinpoint</span></span></strong><strong><span style="font-size: 9pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">:</span></strong><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;"> A single location in the program where an advice is applied like method invocation, constructor invocation etc.</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Pointcut</span></span></strong><span style="font-size: 9pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-weight: bold;">: </span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">A pointcut is set of Joinpoint where an advice is applied. In Spring set of method invocation is called Pointcut. There are different types of pointcut in spring like Regular Expression Pointcut, Attribute Driven Pointcut, and Dynamic Pointcut etc</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Targets/Target Objects:</span></strong><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> The objects you want to apply an aspect or set of aspects. </span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">As per me advice is very similar to Decorator. You can implement an advice by implementing org.aopalliance.intercept.MethodIntercept interface of spring. The MethodInterceptor interface is actually a child of the org.aopalliance.intercept.Interceptor interface, which is a child of another interface org.aopalliance.aop.Advice. In spring we generally use method interceptor. That is designed for method-invocation style advice. The MethodIntercept is really simple</span></span></p>
<p class="western" style="margin: 0in 0in 0pt;"><strong><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> </span></strong></p>
<p class="western" style="margin: auto 0in 0pt;"><strong><span style="font-size: 11pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 10.0pt;">public</span></strong><span style="font-size: 11pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 10.0pt;"> <strong>interface</strong> MethodInterceptor <strong>extends</strong> Interceptor {</span></p>
<p class="western" style="margin: 0in 0in 0pt;"><span style="font-size: 11pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 10.0pt;"><span style="mso-tab-count: 1;">            </span>Object invoke(MethodInvocation invocation) <strong>throws</strong> Throwable;</span></p>
<p class="western" style="margin: 0in 0in 0pt;"><span style="font-size: 11pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 10.0pt;">}</span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Basically, when you write an advice for intercepting a method, you have to implement one method - the invoke method, and you are given a MethodInvocation object to work with. The MethodInvocation object tells us a bunch of stuff about the method that we&#8217;re intercepting, and also gives a hook to tell the method to go ahead and run.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';">public class LoginInterceptor implements MethodInterceptor {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-spacerun: yes;">           </span>public Object invoke(MethodInvocation methodInvocation) throws Throwable {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 1;">               </span>Log logger = LogFactory.getLog(methodInvocation.getClass());</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 1;">               </span>long startTime = System.currentTimeMillis();</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 1;">               </span>try {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>Object[] args = methodInvocation.getArguments();</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>if (logger.isDebugEnabled()) {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 1;">               </span><span style="mso-spacerun: yes;">      </span><span style="mso-tab-count: 1;">         </span><span style="mso-spacerun: yes;">      </span>logger.debug(&#8221;Beginning method: &#8221; + </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 4;">                                                             </span>methodInvocation.getMethod().getDeclaringClass() + &#8220;::&#8221; + </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 4;">                                                             </span>methodInvocation.getMethod().getName());</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">    </span>if (null != args) {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">   </span><span style="mso-tab-count: 1;">            </span><span style="mso-spacerun: yes;"> </span>logger.debug(&#8221; with arguments: &#8221; + args.toString());</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">    </span>} else {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">   </span><span style="mso-tab-count: 1;">            </span>logger.debug(&#8221; with no arguments&#8221;);</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">    </span>}</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">     </span>logger.debug(System.getProperty(&#8221;line.separator&#8221;));</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>} else if (logger.isInfoEnabled()) {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">         </span>logger.info(&#8221;Beginning method: &#8221; + methodInvocation.getMethod().getDeclaringClass() </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 3;">                                              </span>+ &#8220;::&#8221; + methodInvocation.getMethod().getName());</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span><span style="mso-spacerun: yes;">       </span>logger.info(System.getProperty(&#8221;line.separator&#8221;));</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>}</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 1;">               </span><span style="mso-spacerun: yes;">                </span><span style="mso-tab-count: 1;">               </span>Object retVal = methodInvocation.proceed();</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>return retVal;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-spacerun: yes;">                      </span>} finally {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>if (logger.isInfoEnabled()) {</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>logger.info(&#8221;Ending method: &#8221; +<span style="mso-spacerun: yes;">  </span>methodInvocation.getMethod().getDeclaringClass() + &#8220;::&#8221; + </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>methodInvocation.getMethod().getName());</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>logger.info(&#8221;Method invocation time: &#8221; + (System.currentTimeMillis() - startTime) + &#8221; </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>msecs.&#8221;);</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-tab-count: 2;">                               </span>logger.info(System.getProperty(&#8221;line.separator&#8221;));</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-spacerun: yes;">                     </span><span style="mso-spacerun: yes;">              </span>} </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-spacerun: yes;">                    </span>}</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"><span style="mso-spacerun: yes;">           </span>}</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';">}</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 12pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';">XML configuration for above interceptor is given below:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 12pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;">&lt;bean id=&#8221;studentServiceTarget&#8221; class=&#8221;com.example.StudentServiceImpl&#8221;/&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;">&lt;bean id=&#8221;myLogger&#8221; class=&#8221;com.example.LoginInterceptor&#8221;/&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">    </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;">&lt;bean id=&#8221;studentService&#8221; </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">    </span>class=&#8221;org.springframework.aop.framework.ProxyFactoryBean&#8221;&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">    </span>&lt;property name=&#8221;proxyInterfaces&#8221;&gt;&lt;value&gt;com.example.StudentService&lt;/value&gt;&lt;/property&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">    </span>&lt;property name=&#8221;target&#8221;&gt;&lt;ref local=&#8221;studentServiceTarget&#8221;/&gt;&lt;/property&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">    </span>&lt;property name=&#8221;interceptorNames&#8221;&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">        </span>&lt;list&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">            </span>&lt;value&gt;myAdvisorLogger&lt;/value&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">         </span>&lt;/list&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;"><span style="mso-spacerun: yes;">    </span>&lt;/property&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt;">&lt;/bean&gt;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: 18pt;"><span style="font-size: 12pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Spring has multiple alternatives to the basic MethodInterceptor , however, (which is referred to in the Spring documentation as an &#8216;around&#8217; advice) so that if you want to do more specific things, you can with less complication - these extensions come in the form of Spring-specific extensions to the Advice interface (siblings to the MethodInterceptor interface), and they include: </span></span></p>
<p class="western" style="margin: 5pt 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font-family: &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">org.springframework.aop.MethodBeforeAdvice - Implementations of this interface have to implement this before method: </span></span></p>
<p class="western" style="margin: auto 0in 0pt; text-indent: 0.5in;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 12.0pt;">void before(Method method, Object[] args, Object target) throws Throwable;</span></p>
<p class="western" style="margin: 5pt 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font-family: &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">org.springframework.aop.AfterReturningAdvice - This interface&#8217;s method will be called on the return from the invocation of a method. Implementation of this interface have to implement this afterReturning method: </span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="mso-tab-count: 1;"><span style="font-size: small;">            </span></span></span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 12.0pt;">void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable;</span></p>
<p class="western" style="margin: 5pt 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font-family: &quot;Times New Roman&quot;;">         </span></span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">org.springframework.aop.ThrowsAdvice – Implementation of this interface havt to implement this afterThrowing method:</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="mso-tab-count: 1;"><span style="font-size: small;">            </span></span></span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 12.0pt;">void afterThrowing([Method], [args], [target], [some type of throwable] subclass)</span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;"> </span></span><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Below are hierarchy of Advice class:</span></span></p>
<p class="western" style="margin: auto 0in 0pt;"> </p>
<p class="western" style="margin: auto 0in 0pt; text-align: center;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;"><a href="http://www.tekspotlight.com/wp-content/uploads/2008/09/advice-hierarchy.jpg"><img class="size-medium wp-image-65 aligncenter" title="advice-hierarchy" src="http://www.tekspotlight.com/wp-content/uploads/2008/09/advice-hierarchy-300x184.jpg" alt="" width="300" height="184" /></a></span></span></p>
<p class="western" style="margin: auto 0in 0pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">In above article I have given only basic information about AOP.<span style="mso-spacerun: yes;">  </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 12pt; line-height: 18pt;"><span style="font-size: 9.5pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 12pt; line-height: 18pt;"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 9.5pt;"><span style="font-size: small;">Reference Material:</span></span></p>
<p class="western" style="margin: 5pt 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">·</span><span style="font-family: &quot;Times New Roman&quot;;">         </span></span></span><a href="http://static.springframework.org/spring/docs/1.2.x/reference/aop.html"><span style="color: #0070c0; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; text-decoration: none; text-underline: none;"><span style="font-size: small;">http://static.springframework.org/spring/docs/1.2.x/reference/aop.html</span></span></a><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">.</span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 12pt 0.5in; text-indent: -0.25in; line-height: 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="font-size: 14pt; font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-size: 11.0pt;"><span style="mso-list: Ignore;">·<span style="font-family: &quot;Times New Roman&quot;;">        </span></span></span><a href="http://www.amazon.com/Spring-Action-Craig-Walls/dp/1933988134"><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><span style="font-size: small;">Spring in Action</span></span></a><span style="font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 9.5pt;"><span style="font-size: small;"> </span></span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 9.5pt;">by </span><span style="font-size: 12pt; mso-bidi-font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Craig Walls, Ryan Breidenbach</span></span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-bidi-font-size: 9.5pt;">: this is the best book I have read on Spring (and yes I read this entire book).</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2008/09/18/aop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Inversion of Control (IOC)/ Dependency Injection (DI) / Spring</title>
		<link>http://www.tekspotlight.com/2008/09/14/ioc/</link>
		<comments>http://www.tekspotlight.com/2008/09/14/ioc/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 16:18:13 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/?p=56</guid>
		<description><![CDATA[The basic concept of the Inversion of Control pattern (dependency injection) is that programmers  don’t  need to create your objects but describe how they should be created. Don’t directly connect components and services together in code but describe which services are needed by which components in a configuration file. A container (in the case of [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">The basic concept of the Inversion of Control pattern (dependency injection) is that programmers<span style="mso-spacerun: yes">  </span>don’t<span style="mso-spacerun: yes">  </span>need to create your objects but describe how they should be created. Don’t directly connect components and services together in code but describe which services are needed by which components in a configuration file. A container (in the case of the Spring framework, the IOC container) is responsible for all this. In a IOC scenario, the container creates all the objects, connects them together by setting the necessary properties, and determines when methods will be invoked. The implementation pattern types for IOC used by SpringFramework are as follows:</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span style="font-size: 9.5pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-language: AR-SA;">Ø</span><span style="font-size: 9.5pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: Wingdings; mso-bidi-language: AR-SA;">  </span><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">Dependencies can be assigned through JavaBeans properties (setter methods). </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span style="font-size: 12pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-language: AR-SA;">Ø</span><span style="font-size: 12pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: Wingdings; mso-bidi-language: AR-SA;">  </span><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">Dependencies are provided as constructor parameters and are not exposed as JavaBeans Setter propertiSes</span><span style="font-size: 12pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">. </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in; LINE-HEIGHT: normal; TEXT-ALIGN: center; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">       </span><a href="http://www.tekspotlight.com/wp-content/uploads/2008/09/ioc.jpg"><span style="font-size: 12pt; color: #0000ff; font-family: 'Times New Roman','serif'; text-decoration: none; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA; mso-no-proof: yes; text-underline: none;"> </span></a><a href="http://www.tekspotlight.com/wp-content/uploads/2008/09/ioc.jpg"><img class="size-medium wp-image-57 aligncenter" title="Spring IOC Container" src="http://www.tekspotlight.com/wp-content/uploads/2008/09/ioc-300x224.jpg" alt="" width="300" height="224" /></a></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in; LINE-HEIGHT: normal; TEXT-ALIGN: center; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">Spring IOC Container</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 12pt; LINE-HEIGHT: 18pt"><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">Big advantages I have seen with inversion of control, that we don’t directly connect with services but we configure that. Now this is really gaining momentum as of late, is the adoption of the Spring Framework as an alternative to Java EE. I think that this started because J2EE was so complicated and heavy-weighted that companies sought new and innovative solutions. Spring provides the ability to access data objects as Plain Old Java Objects (POJOs) and includes support for database connection pools, transaction management, and so forth. This means that you can effectively build a scalable enterprise application without Java EE. And as Java EE evolved into its more manageable form, many developers continued to appreciate all that Spring provided them and had no desire to switch back.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 12pt; LINE-HEIGHT: 18pt"><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">As an enterprise developer you should be familiar with the concept of Inversion of Control (IoC) and Dependency Injection, and Spring specifically. Whether you decide to embrace Java EE and EJB 3.0 or develop your applications with Spring, you should at least understand the theory.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 12pt; LINE-HEIGHT: 18pt"><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">Book Recommendations:</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in; LINE-HEIGHT: 18pt; tab-stops: list .5in"><span style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: AR-SA; mso-bidi-font-size: 11.0pt;">·</span><span style="font-size: 10pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: Symbol; mso-bidi-language: AR-SA; mso-bidi-font-size: 11.0pt;">              </span><span style="font-size: 12pt; font-family: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;"><a href="http://www.amazon.com/Spring-Action-Craig-Walls/dp/1933988134"><span style="font-size: 9.5pt; color: #0000ff; font-family: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt;">Spring in Action</span></a></span><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;"> by </span><span style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-language: AR-SA; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><span style="font-family: Calibri;">Craig Walls, Ryan Breidenbach</span></span><span style="font-size: 9.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-language: AR-SA;">: this is the best book I have read on Spring (and yes I read this entire book).</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2008/09/14/ioc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First Post</title>
		<link>http://www.tekspotlight.com/2008/09/09/firstpos/</link>
		<comments>http://www.tekspotlight.com/2008/09/09/firstpos/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 02:15:58 +0000</pubDate>
		<dc:creator>Kumar Sudhanshu</dc:creator>
		
		<category><![CDATA[Cloud computing]]></category>

		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Service-oriented architecture (SOA)]]></category>

		<category><![CDATA[Spring]]></category>

		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.tekspotlight.com/?p=1</guid>
		<description><![CDATA[What a feeling damn excited about finally getting down to pen my first blog……Doesn’t take much to excite this enthu cutlet, I guess : )
Was wondering why a simple thing like starting off a blog could get me so pumped up and a little bit of soul searching…..It’s been planned long time back… but due [...]]]></description>
			<content:encoded><![CDATA[<p>What a feeling damn excited about finally getting down to pen my first blog……Doesn’t take much to excite this enthu cutlet, I guess : )</p>
<p>Was wondering why a simple thing like starting off a blog could get me so pumped up and a little bit of soul searching…..It’s been planned long time back… but due to time constraint and work enthu didn’t… one day my friend Nishat Saini told why don’t you start bogging…and same day I started…rolling the ball (blog articles) to share the experience that I had with various <strong>open source products/technologies, architecture, and design. In my blog I will also target latest technologies (related to Java/J2ee) like Web-Services, Service-Oriented Architecture (SOA), Cloud Computing, Spring, Hibernate etc… </strong>for beginners as well as ….</p>
<p>As when I run into problems I refer to my companion GOOGLE which seems to friend for almost every IT guy. There are countless blogs out there for any particular topic, but which one is the best? Some of them can lead to resolution of problem you have and sometimes it may take weeks to unravel the mystery. So each blog has a unique problem and unique solution and the answer to your problem might be aggregation of these various blogs.</p>
<p>I will try to put sample programs, pictures and diagrams to explain my thoughts about technologies. I always believe, sample programs, pictures and diagrams speak better than words. If any one interested to ask any question, feel free to post a comment on this article and I’ll answer it as soon as I could.</p>
<p>Thanks,<br />
~Kumar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tekspotlight.com/2008/09/09/firstpos/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
