<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Enterprise Technology Tips &amp; Solution</title><link>http://entips.sharmavishal.com/</link><description>Built on J2EE and SOA using opensource</description><language>en</language><managingEditor>noreply@blogger.com (Vishal Sharma)</managingEditor><lastBuildDate>Mon, 13 Oct 2008 23:00:40 -0500</lastBuildDate><generator>Blogger</generator><atom:id xmlns:atom="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-7339683836891122721</atom:id><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">47</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/blogspot/GHpm" type="application/rss+xml" /><feedburner:emailServiceId>1183479</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item><title>Links for 2008-10-06 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/413468885/vashistvishal</link><pubDate>Tue, 07 Oct 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-10-06</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://doubleclix.wordpress.com/2008/10/04/clouds-ready-to-chuck-training-wheels-a-view-from-users-vendors-and-vcs/">Clouds ready to chuck training wheels ? A view from Users, Vendors and VCs &laquo; My missives</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/413468885" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://doubleclix.wordpress.com/2008/10/04/clouds-ready-to-chuck-training-wheels-a-view-from-users-vendors-and-vcs/"&gt;Clouds ready to chuck training wheels ? A view from Users, Vendors and VCs &amp;laquo; My missives&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-10-06</feedburner:origLink></item><item><title>Links for 2008-09-20 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/398667097/vashistvishal</link><pubDate>Sun, 21 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-09-20</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://www.cbsinteractive.com.au/">CBS Interactive - More of what you crave</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/398667097" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cbsinteractive.com.au/"&gt;CBS Interactive - More of what you crave&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-09-20</feedburner:origLink></item><item><title>Links for 2008-09-16 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/394873462/vashistvishal</link><pubDate>Wed, 17 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-09-16</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://www.mobclix.com/appstores/">Apple iPhone Analytics and Monetization</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/394873462" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.mobclix.com/appstores/"&gt;Apple iPhone Analytics and Monetization&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-09-16</feedburner:origLink></item><item><title>Links for 2008-09-14 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/392916388/vashistvishal</link><pubDate>Mon, 15 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-09-14</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://www.smartcompany.com.au/Premium-Articles/Top-Story/20080911-Meet-the-Smart50-2008.html?source=cmailer">Meet the Smart50, 2008 -</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/392916388" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.smartcompany.com.au/Premium-Articles/Top-Story/20080911-Meet-the-Smart50-2008.html?source=cmailer"&gt;Meet the Smart50, 2008 -&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-09-14</feedburner:origLink></item><item><title>Links for 2008-09-01 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/381068163/vashistvishal</link><pubDate>Tue, 02 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-09-01</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://mediaproducts.gartner.com/reprints/vmware/article2/article2.html">U.S. Data Centers: The Calm Before the Storm</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/381068163" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mediaproducts.gartner.com/reprints/vmware/article2/article2.html"&gt;U.S. Data Centers: The Calm Before the Storm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-09-01</feedburner:origLink></item><item><title>Links for 2008-08-28 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/377783210/vashistvishal</link><pubDate>Fri, 29 Aug 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-08-28</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://startups.sharmavishal.com/2008/08/my-perfect-dont-search-choose.html">My Perfect - Dont Search, Choose</a></li>
<li><a href="http://startups.sharmavishal.com/2008/08/sms-poll-mobile-text-message-voting.html">SMS Poll - Mobile Text Message Voting Application</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/377783210" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://startups.sharmavishal.com/2008/08/my-perfect-dont-search-choose.html"&gt;My Perfect - Dont Search, Choose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://startups.sharmavishal.com/2008/08/sms-poll-mobile-text-message-voting.html"&gt;SMS Poll - Mobile Text Message Voting Application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-08-28</feedburner:origLink></item><item><title>Links for 2008-08-25 [del.icio.us]</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/374904505/vashistvishal</link><pubDate>Tue, 26 Aug 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2008-08-25</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
<li><a href="http://startups.sharmavishal.com/2008/08/report-on-aussie-mobile-phone-lifestyle.html">Report on Aussie Mobile Phone Lifestyle Index - Games, True Tones, SMS, Maps, Music, MSN Messenger Most Popular</a></li>
<li><a href="http://www.forbes.com/2008/08/23/cio-virtualization-amd-tech-cio-cx_es_0825amd.html">Jitters Over Virtualization - Forbes.com</a></li>
</ul><img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/374904505" height="1" width="1"/>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://startups.sharmavishal.com/2008/08/report-on-aussie-mobile-phone-lifestyle.html"&gt;Report on Aussie Mobile Phone Lifestyle Index - Games, True Tones, SMS, Maps, Music, MSN Messenger Most Popular&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.forbes.com/2008/08/23/cio-virtualization-amd-tech-cio-cx_es_0825amd.html"&gt;Jitters Over Virtualization - Forbes.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2008-08-25</feedburner:origLink></item><item><title>A SOA Prototype in 15 minutes with Apache Tuscany</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/290111848/soa-prototype-in-15-minutes-with-apache.html</link><category>Trends</category><category>Technology</category><category>Tools</category><category>SOA</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Wed, 14 May 2008 05:58:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-5917822462640714839</guid><description>&lt;a href="http://entips.sharmavishal.com/search/label/SOA"&gt;SOA&lt;/a&gt; is getting lot of traction from CTO's and CIO's across the globe for its &lt;a href="http://www.google.com/search?hl=en&amp;amp;lr=&amp;amp;as_qdr=all&amp;amp;q=SOA+benefits&amp;amp;btnG=Search"&gt;obvious benefits&lt;/a&gt;. Not only that there's  an &lt;a title="SOA Maturity Model at Sonic" href="http://www.sonicsoftware.com/solutions/service_oriented_architecture/soa_maturity_model/index.ssp" target="_blank"&gt;attempt&lt;/a&gt; to define a maturity model for SOA on the lines of Carnegie-Mellon Software Engineering Institute's &lt;a title="Capability Maturity Model" href="http://www.sei.cmu.edu/cmmi/general/index.html" target="_blank"&gt;CMMI&lt;/a&gt;  model.  So the point I'm making here is that there are lot things happening in this space and the toolsets to achieve this business  vision, esp in open source space,  are not behind as well.  In a recent presentation at Java One Conference, in a presentation using Apache Tuscany 1.2 a small live prototype was developed and deployed in 15 minutes.&lt;br /&gt;I'm posting the excerpt here from the reported presentation via &lt;a href="http://soa-talk.blogs.techtarget.com/2008/05/08/javaone-report-apache-tuscany-can-soa-be-this-easy/"&gt;Michael Meehaan's blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Version 1.2 of Tuscany (which also leverages the Service Data Objects specification) has added distributed SCA domain management, an &lt;a href="http://www.eclipse.org/" target="_blank"&gt;Eclipse&lt;/a&gt; plug-in, &lt;a href="http://whatis.techtarget.com/definition/0,,sid9_gci1191741,00.html" target="_blank"&gt;Atom&lt;/a&gt; binding through &lt;a href="http://incubator.apache.org/abdera/" target="_blank"&gt;Apache Abdera project&lt;/a&gt;, improved &lt;a href="http://searchsoa.techtarget.com/sDefinition/0,,sid26_gci214555,00.html" target="_blank"&gt;JMS&lt;/a&gt; binding and an &lt;a href="http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci213461,00.html" target="_blank"&gt;OSGi&lt;/a&gt; runtime. Delfino used Tuscany for a demo of a fruit store which starts with an online catalog and shopping cart. For those functions he used carrot tags to name the components and declare their implementations, properties and bindings. The transport protocols could be switched just by changing a tag, Delfino chose Atompub and &lt;a href="http://json-rpc.org/" target="_blank"&gt;JSON-RPC&lt;/a&gt;. He noted that he was running the service a &lt;a href="http://java.sun.com/javase/" target="_blank"&gt;Java SE&lt;/a&gt; environment, saying “It doesn’t have to run in a big app server. … Basically you have an &lt;a href="http://searchwindevelopment.techtarget.com/sDefinition/0,,sid8_gci1107521,00.html" target="_blank"&gt;Ajax&lt;/a&gt; app designed as a set of SCA components.” He added the whole process takes about 15 minutes.&lt;/p&gt; &lt;p&gt;Then he showed how to add a new component class (vegetables in this case) and a database, the latter of which involved another Atompub feed. After that he added a third-party supplier to the service by inserting a single &lt;a href="http://searchwindevelopment.techtarget.com/sDefinition/0,,sid8_gci1107521,00.html" target="_blank"&gt;SOAP&lt;/a&gt; binding line. “You can point to a &lt;a href="http://searchsoa.techtarget.com/sDefinition/0,,sid26_gci521683,00.html" target="_blank"&gt;WSDL&lt;/a&gt; if you want or specify policies,” he said.&lt;/p&gt; &lt;p&gt;Finally he showed off some widget functionality Tuscany has added to the SCA process, allowing the service to communicate with HTML.&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt; More on this &lt;a href="http://soa-talk.blogs.techtarget.com/2008/05/08/javaone-report-apache-tuscany-can-soa-be-this-easy/"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Ors3uH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Ors3uH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=7qxy8H"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=7qxy8H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=zGqJkH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=zGqJkH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=NFI7Ph"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=NFI7Ph" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=LWLfmh"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=LWLfmh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=YbCkgH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=YbCkgH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=vBEUGH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=vBEUGH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=GX1E8h"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=GX1E8h" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/290111848" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2008-05-14T04:26:08.909-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2008%2F05%2Fsoa-prototype-in-15-minutes-with-apache.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2008/05/soa-prototype-in-15-minutes-with-apache.html</feedburner:origLink></item><item><title>Antipatterns in Software Architecture</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/283722842/antipatterns-in-software-architecture.html</link><category>Architecture</category><category>IT</category><category>Software</category><category>Enterprise</category><category>Solutions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 05 May 2008 00:58:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-8182223590017110875</guid><description>This is a &lt;a href="http://blog.sharmavishal.com/2008/05/software-architecture-antipatterns.html"&gt;repost&lt;/a&gt; from my &lt;a href="http://blog.sharmavishalc.com/"&gt;technology trends&lt;/a&gt; blog here&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_b6Hez4oFqv0/SB6hXW9x2_I/AAAAAAAABXM/xrYl9cvGS64/s1600-h/arch2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_b6Hez4oFqv0/SB6hXW9x2_I/AAAAAAAABXM/xrYl9cvGS64/s320/arch2.jpg" alt="" id="BLOGGER_PHOTO_ID_5196768442705894386" border="0" /&gt;&lt;/a&gt;I have been putting together solutions in IT enterprise space for quite a while now. Some of the frameworks used over the years, for example are&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/4%2B1" title="4+1"&gt;4+1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/TOGAF" title="TOGAF"&gt;TOGAF (Recently started looking at it)&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zachman_framework" title="Zachman framework"&gt;Zachman framework&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;While TOGAF is a really a promising and an Agile way of doing things, I need to get more handle on this though.&lt;br /&gt;One of the things, which amazes me while designing a solution or replying to an RFP, is heavy use of architectural and deign patterns. Using Patterns is not bad, but over the years i have found sometimes a simple solution become quit complex and bloated. I have burned my fingers in the past with this and have stared using some antipatterns approach as well. For those who are interested, I'm linking some of the architectural antipatterns here, I do refer them from time to time for my solutions.&lt;span class="fullpost"&gt;&lt;ul&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?ArchitectureAsRequirements"&gt;ArchitectureAsRequirements&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?ArchitectureByImplication"&gt;ArchitectureByImplication&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?AutogeneratedStovepipeAntiPattern"&gt;AutogeneratedStovepipeAntiPattern&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?CoverYourAssets"&gt;CoverYourAssets&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?DesignByCommittee"&gt;DesignByCommittee&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?DoerAndKnower"&gt;DoerAndKnower&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?ExceptionFunnel"&gt;ExceptionFunnel&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?FloatingPointCurrency"&gt;FloatingPointCurrency&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?FloatingPointFractions"&gt;FloatingPointFractions&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?IntellectualViolence"&gt;IntellectualViolence&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?ImplementationInheritance"&gt;ImplementationInheritance&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://c2.com/cgi/wiki?ReinventTheWheel"&gt;ReinventTheWheel&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://c2.com/cgi/wiki?RollYourOwnDatabase"&gt;RollYourOwnDatabase&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?SpaghettiCode"&gt;SpaghettiCode&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://c2.com/cgi/wiki?StovepipeSystem"&gt;StovepipeSystem&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?SumoMarriage"&gt;SumoMarriage&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?SwissArmyKnife"&gt;SwissArmyKnife&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?TheGrandOldDukeOfYork"&gt;TheGrandOldDukeOfYork&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?VendorLockIn"&gt;VendorLockIn&lt;/a&gt;  &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?WarmBodies"&gt;WarmBodies&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://c2.com/cgi/wiki?WolfTicket"&gt;WolfTicket&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;What do you guys do, any thoughts?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=i6iLIH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=i6iLIH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=IsevmH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=IsevmH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=b4MjNH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=b4MjNH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kaqLGh"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=kaqLGh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=KiuY1h"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=KiuY1h" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=qsER8H"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=qsER8H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=GyvhlH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=GyvhlH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=59oA6h"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=59oA6h" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/283722842" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2008-05-04T23:26:33.507-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_b6Hez4oFqv0/SB6hXW9x2_I/AAAAAAAABXM/xrYl9cvGS64/s72-c/arch2.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2008%2F05%2Fantipatterns-in-software-architecture.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2008/05/antipatterns-in-software-architecture.html</feedburner:origLink></item><item><title>Basic Network Computer Security  Interview  Questions</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/219722092/basic-network-computer-security.html</link><category>Web</category><category>Security</category><category>Interview</category><category>Questions</category><category>Networking</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Sat, 19 Jan 2008 06:59:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-2323741857505466472</guid><description>Continuing our interview question and answer series,  today's questions are based on network security.&lt;br /&gt;&lt;br /&gt;Q1 What is "private key"/"symmetric"/"secret key" cryptography?&lt;br /&gt;A1. A private key cryptography algorithm uses the same key for encryption and decryption. Since the key is the only data required to decrypt the ciphertext, it must be kept private/secret.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Encryption; &lt;/span&gt;creating cipher text from plain text with a specific encryption algorithm and an encryption key&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Decryption;&lt;/span&gt; recovering plain text from cipher text using a specific encryption algorithm and a decryption key&lt;br /&gt;&lt;br /&gt;Q2 What is "public key"/"asymmetric" cryptography? &lt;span class="fullpost"&gt;&lt;br /&gt;A2. A public key cryptography algorithm uses two different (but related) keys for encryption and decryption. The key used for decryption  is kept secret (Private) whereas the encryption key can be distributed openly (Public). Thus, anyone in possession of the public encryption key may encrypt and send a message to the holder of the private decryption key. However,&lt;br /&gt;only the holder of the private decryption key may decipher the message. Both keys must be created and used in conjunction, and are often referred to as a key pair.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_b6Hez4oFqv0/R5H328EQBZI/AAAAAAAAAvk/FSXVXqHiT70/s1600-h/security.jpe"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_b6Hez4oFqv0/R5H328EQBZI/AAAAAAAAAvk/FSXVXqHiT70/s400/security.jpe" alt="" id="basic computer network security computer" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Q3 What is hybrid cryptography?&lt;br /&gt;A3. A Combination of public and private key cryptography, where the exchange of an encrypted session key is done using public key cryptography. The following encrypted session is then pursued with private/symmetric key cryptography. The main reason is that private key cryptography is generally much quicker than public key cryptography.&lt;br /&gt;&lt;br /&gt;Q4 What is a Message Digest?&lt;br /&gt;A4. A Message Digest is a digitally created hash (fingerprint) created from a plain text block. All the information of the message is used to construct the Message Digest hash, but the message cannot be recovered from the hash. For this reason, Message Digests are also known as one way hash functions.&lt;br /&gt;The size of a Message Digest is always the same, independent of the size or content of the message from which it was created. Generally, the size of a Message Digest is fairly short ( 1024 bits). The ideal Message Digest algorithm would possibly alter 50% of the bits in the resulting hash if one bit was altered in the plain text message.&lt;br /&gt;&lt;br /&gt;Q5 What is a Digital Signature?&lt;br /&gt;A5. Digital Signatures are used to ensure the identity of a sender. In conjunction with Message Digests, Digital Signatures prevents someone from altering a message and falsely claiming you wrote the altered message. Digital Signatures are a byproduct of public key cryptography, as demonstrated below. (Believe me, it is simpler to describe the concept of a Digital Signature by taking an example)&lt;br /&gt;&lt;br /&gt;Q6 What is SSL?&lt;br /&gt;A6. SSL stands for Secure Socket Layer. It is a protocol developed by Netscape for encrypting information sent between processes over TCP/IP sockets. It sits between application software and the TCP/IP sockets. You'll find it frequently used between web browsers and web servers using the https URL prefix, providing encryption, integrity, authentication, and non-repudiation.&lt;br /&gt;&lt;br /&gt;Q7. How can I support HTTPS (SSL) in a servlet?&lt;br /&gt;A7. The servlet technology by design already supports https (SSL). However, the way this works is not through the servlet technology but through the Web Server. The web server controls whether information is done securely (https) versus non-securely (http).&lt;br /&gt;One way to force servlets to go down the https path is to define your web server to only allow secure connections when accessing servlets. In IIS this can be accomplished through the definition if ISAPI filters. The ISAPI filter can instruct the web server to route all requests that end with a pre-defined prefix to the servlet engine. The trick is to then define files, with the predefined extension, in the web servers directory. For example, if the servlet's name is MyServlet a file with the name MyServlet.xxx would be placed on the web server. All calls to this file would be routed to the servlet engine. And IIS would be used to force all calls to the MyServlet.xxx file to go through https. The JRun servlet engine has examples of how to do this documented on their web page.&lt;br /&gt;&lt;br /&gt;Other useful tips&lt;br /&gt;&lt;ul class="posts"&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/serialization-in-javaj2ee-demystified.html"&gt;Serialization in Java/J2EE - Demystified&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/10/open-source-cachecaching-solutions-in.html"&gt;Open Source Caching Solutions in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharmavishal.com/2007/01/top-10-2-all-time-technical-books-for.html"&gt;Top 12 Computer Books&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/spring-framework-j2ee-development.html"&gt;Spring Framework - J2EE Development without EJB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/how-agile-development-is-being.html"&gt;How  Agile development is being perceived&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=pGRZMI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=pGRZMI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=3BlJiI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=3BlJiI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mOawDI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=mOawDI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=6y6QTi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=6y6QTi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=FAQBdi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=FAQBdi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=uSwvPI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=uSwvPI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=lpDR4I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=lpDR4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=uVdr3i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=uVdr3i" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/219722092" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2008-01-19T22:25:23.680-08:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_b6Hez4oFqv0/R5H328EQBZI/AAAAAAAAAvk/FSXVXqHiT70/s72-c/security.jpe" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2008%2F01%2Fbasic-network-computer-security.html</feedburner:awareness><category domain="http://rss.financialcontent.com/stocksymbol">SSL</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2008/01/basic-network-computer-security.html</feedburner:origLink></item><item><title>Top 5 Technology Tips of 2007</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/206423689/top-5-technology-tips-of-2007.html</link><category>Top</category><category>Tips</category><category>Posts</category><category>2007</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Wed, 26 Dec 2007 01:52:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-7627865599455736980</guid><description>It's time for top 5 enterprise tech tips of the year. I have published &lt;a href="http://blog.sharmavishal.com/2007/12/top-5-posts-of-2007.html"&gt;top 5 posts of 2007&lt;/a&gt; on my &lt;a href="http://blog.sharmavishal.com/"&gt;main blog&lt;/a&gt;.  I was hoping to get few guest writers to write here, but only few have come forward as all of them seem to have a blog. Anyway  I will continue keep adding the enterprise tips and solutions here as I  come across  something worth  mentioning.  If anyone is interested in exploring how to join  here details can &lt;a href="http://entips.sharmavishal.com/2007/12/inviting-guest-bloggers.html"&gt;be found here&lt;/a&gt;. Now let's look at the top 5 enterprise tech tips of the year &lt;span class="fullpost"&gt;on this blog&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/09/top-10-popular-eclipse-plugin.html"&gt;Top 10 popular eclipse plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/10/opensource%20cachecaching-solutions-in.html"&gt;Open source caching solutions in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/search/label/SOA"&gt;Planning SOA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/10/serialization-in-javaj2ee-demystified.html"&gt;Serialization in Java/J2EE/JEE demystified&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/10/creating-dynamic-pdf-documents-in-java.html"&gt;Creating PDF Documents Dynamically in J2EE, Java Applications&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Other top posts which nearly missed out are :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/search/label/Questions"&gt;Java  J2EE Interview Question Collection&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/10/j2ee-tutorial-on-webservices-using.html"&gt;J2ee Tutorial on Webservices using Jboss&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vashistvishal/2137129561/" title="VS Consulting Group - Happy New year by Vishal Sharma, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2184/2137129561_6fbb1d3d5a_o.png" alt="Top 5 Technology Tips of 2007" height="217" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=1sEiGI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=1sEiGI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=QLFNuI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=QLFNuI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=VfYshI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=VfYshI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=9dgIXi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=9dgIXi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Ht6Aai"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Ht6Aai" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Wmr7VI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Wmr7VI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nubY4I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=nubY4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ptVA8i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ptVA8i" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/206423689" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-12-26T00:37:16.525-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F12%2Ftop-5-technology-tips-of-2007.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/12/top-5-technology-tips-of-2007.html</feedburner:origLink></item><item><title>Inviting Guest Bloggers</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/195860546/inviting-guest-bloggers.html</link><category>Guest</category><category>Writing</category><category>Blog</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Wed, 05 Dec 2007 20:14:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-8663244086899853162</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_b6Hez4oFqv0/R1dkIZulheI/AAAAAAAAArU/ZrkgHUBv0Mw/s1600-h/medium_blog-cartoon.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_b6Hez4oFqv0/R1dkIZulheI/AAAAAAAAArU/ZrkgHUBv0Mw/s200/medium_blog-cartoon.jpg" alt="Enterprise Technology Tips SOA Opensource J2EE" id="BLOGGER_PHOTO_ID_5140687595174725090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As many of you have noticed that I’m in the process of redesigning my blog and integrating it with my &lt;a href="http://www.sharmavishal.com/"&gt;consulting site&lt;/a&gt;, my frequency of posts is becoming less. As a way to move forward to keep ruuning this blog I have decided to invite few guest bloggers to join me and write on Enterprise Technology, opensource or topics related to these. This way we will get more different views and knowledge sharing.&lt;br /&gt;For those who are interested in joining me please contact me via &lt;a href="http://contact.sharmavishal.com/"&gt;contact&lt;/a&gt; page.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Zu185I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Zu185I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=riGIKI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=riGIKI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=oZ9REI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=oZ9REI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=LMMb7i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=LMMb7i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=DhOmIi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=DhOmIi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mcz6NI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=mcz6NI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=X1gv6I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=X1gv6I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Mw2cfi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Mw2cfi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/195860546" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-12-21T04:19:56.722-08:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_b6Hez4oFqv0/R1dkIZulheI/AAAAAAAAArU/ZrkgHUBv0Mw/s72-c/medium_blog-cartoon.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F12%2Finviting-guest-bloggers.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/12/inviting-guest-bloggers.html</feedburner:origLink></item><item><title>Java J2EE Interview Questions - 8</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/194944588/java-j2ee-interview-questions-8.html</link><category>Java</category><category>Interview</category><category>Tips</category><category>J2EE</category><category>Questions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Tue, 04 Dec 2007 07:00:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-1169915120401881177</guid><description>Continuing our Java/J2EE/JEE interview questions and answers series, today's questions are on &lt;span style="font-weight: bold;"&gt;Networking:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Q What is UDP and how does it work?&lt;br /&gt;A. UDP stands for User Datagram Protocol. UDP provides an unreliable packet delivery system built on top of the IP protocol. As with IP, each packet is an individual, and is handled separately. Because of this, the amount of data that can be sent in a UDP packet is limited to the amount that can be contained in a single IP packet. Thus, a UDP packet can contain at most 65507 bytes (this is the 65535-byte IP packet size minus the minimum IP header of 20 bytes and minus the 8-byte UDP header).&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_b6Hez4oFqv0/R1VZ10U-JBI/AAAAAAAAAq8/BUSPuTAdpoc/s1600-h/JavaPosse.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_b6Hez4oFqv0/R1VZ10U-JBI/AAAAAAAAAq8/BUSPuTAdpoc/s400/JavaPosse.jpg" alt="java, j2ee enterprise interview tips solutions " id="BLOGGER_PHOTO_ID_5140113330827830290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;UDP packets can arrive out of order or not at all. No packet has any knowledge of the preceding or following packet. The recipient does not acknowledge packets, so the sender does not know that the transmission was successful. UDP has no provisions for flow control--packets can be received faster than they can be used. We call this type of communication connectionless because the packets have no relationship to each other and because there is no state maintained.&lt;br /&gt;The destination IP address and port number are encapsulated in each UDP packet. These two numbers together uniquely identify the recipient and are used by the underlying operating system to deliver the packet to a specific process (application). Each UDP packet also contains the sender's IP address and port number.&lt;br /&gt;One way to think of UDP is by analogy to communications via a letter. You write the letter (this is the data you are sending); put the letter inside an envelope (the UDP packet); address the envelope (using an IP address and a port number); put your return address on the envelope (your local IP address and port number); and then you send the letter.&lt;br /&gt;Like a real letter, you have no way of knowing whether a UDP packet was received. If you send a second letter one day after the first, the second one may be received before the first. Or, the second one may never be received.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_b6Hez4oFqv0/R1VWdEU-JAI/AAAAAAAAAq0/WhBAJrZv4gQ/s1600-h/Star-topology.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_b6Hez4oFqv0/R1VWdEU-JAI/AAAAAAAAAq0/WhBAJrZv4gQ/s400/Star-topology.jpg" alt="java, j2ee enterprise interview tips soltions networking " id="BLOGGER_PHOTO_ID_5140109607091184642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Q What is a Datagram?&lt;br /&gt;A Datagram is another name for a UDP packet.&lt;br /&gt;Java provides two classes for explicitly dealing with datagrams, DatagramSocket and DatagramPacket. These are both found in the java.net package.&lt;br /&gt;&lt;br /&gt;Q Why use UDP if it is unreliable?&lt;br /&gt;A. Two main reasons: speed and overhead.&lt;br /&gt;&lt;br /&gt;UDP packets have almost no overhead--you simply send them then forget about them. And they are fast, because there is no acknowledgment required for each packet. Keep in mind that unreliable doesn't mean that packets can be lost or misdirected for no reason - it simply means that UDP provides no built-in checking and correction mechanism to gracefully deal with losses caused by network congestion or failure.&lt;br /&gt;UDP is appropriate for the many network services that do not require guaranteed delivery. An example of this is a network time service. Consider a time daemon that issues a UDP packet every second so computers on the LAN can synchronize their clocks. If a packet is lost, it's no big deal--the next one will be by in another second and will contain all necessary information to accomplish the task.&lt;br /&gt;Another common use of UDP is in networked, multi-user games, where a player's position is sent periodically. Again, if one position update is lost, the next one will contain all the required information.&lt;br /&gt;A broad class of applications is built on top of UDP using streaming protocols. With streaming protocols, receiving data in real-time is far more important than guaranteeing delivery. Examples of real-time streaming protocols are real audio and real video which respectively deliver real-time streaming audio and video over the Internet. The reason a streaming protocol is desired in these cases is because if an audio or video packet is lost, it is much better for the client to see this as noise or "drop-out" in the sound or picture rather than having a long pause while the client software stops the playback, requests the missing data from the server. That would result in a very choppy, bursty playback which most people find unacceptable, and which would place a heavy demand on the server.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Q. What is Multicast and how does it work?&lt;br /&gt;A. TCP and UDP are both unicast protocols; there is one sender and one receiver. Multicast packets are a special type of UDP packets. But while UDP packets have only one destination and only one receiver, multicast packets can have an arbitrary number of receivers.&lt;br /&gt;Multicast is quite distinct from broadcast; with broadcast packets, every host on the network receives the packet. With multicast, only those hosts that have registered an interest in receiving the packet get it.&lt;br /&gt;This is similar to the way an AWTEvent and its listeners behave in the Abstract Window Toolkit. In the same way that an AWTEvent is sent only to registered listeners, a multicast packet is sent only to members of the multicast group. AWT events, however, are unicast, and must be sent individually to each listener--if there are two listeners, two events are sent. With a MulticastSocket, only one is sent and it is received by many.&lt;br /&gt;As you might guess, MulticastSocket is a subclass of DatagramSocket which has the extended ability to join and leave multicast groups. A multicast group consists of both a multicast address and a port number. The only difference between UDP and multicast in this respect is that multicast groups are represented by special internet addresses in the range 224.0.0.1 to 239.255.255.255, inclusive. Just as there are well-known ports for network services, there are reserved, well-known multicast groups for multicast network services.&lt;br /&gt;When an application subscribes to a multicast group (host/port), it receives datagrams sent by other hosts to that group, as do all other members of the group. Multiple applications may subscribe to a multicast group and port concurrently, and they will all receive group datagrams.&lt;br /&gt;When an application sends a message to a multicast group, all subscribing recipients to that host and port receive the message (within the time-to-live range of the packet, see below). The application needn't be a member of the multicast group to send messages to it.&lt;br /&gt;&lt;br /&gt;Q What are RFCs and where can I find them?&lt;br /&gt;A RFC stands for "Request for Comment". The RFCs form an integral part of the Internet standards; standards are formed by first publishing a specification as an RFC.&lt;br /&gt;&lt;br /&gt;Q What is TCP and how does it work?&lt;br /&gt;A Internet Protocol, or IP, provides an unreliable packet delivery system--each packet is an individual, and is handled separately. Packets can arrive out of order or not at all. The recipient does not acknowledge them, so the sender does not know that the transmission was successful. There are no provisions for flow control--packets can be received faster than they can be used. And packet size is limited.&lt;br /&gt;Transmission Control Protocol (TCP) is a network protocol designed to address these problems. TCP uses IP, but adds a layer of control on top. TCP packets are lost occasionally, just like IP packets. The difference is that the TCP protocol takes care of requesting retransmits to ensure that all packets reach their destination, and tracks packet sequence numbers to be sure that they are delivered in the correct order. While IP packets are independent, with TCP we can use streams along with the standard Java file I/O mechanism.&lt;br /&gt;Think of TCP as establishing a connection between the two endpoints. Negotiation is performed to establish a "socket", and the socket remains open throughout the duration of the communications. The recipient acknowledges each packet, and packet retransmissions are performed by the protocol if packets are missed or arrive out of order. In this way TCP can allow an application to send as much data as it desires and not be subject to the IP packet size limit. TCP is responsible for breaking the data into packets, buffering the data, resending lost or out of order packets, acknowledging receipt, and controlling rate of data flow by telling the sender to speed up or slow down so that the application never receives more than it can handle.&lt;br /&gt;There are four distinct elements that make a TCP connection unique:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IP address of the server &lt;/li&gt;&lt;li&gt;IP address of the client &lt;/li&gt;&lt;li&gt;Port number of the server &lt;/li&gt;&lt;li&gt;Port number of the client &lt;/li&gt;&lt;/ul&gt;Each requested client socket is assigned a unique port number while the server port number is always the same. If any of these numbers is different, the socket is different. A server can thus listen to one and only one port, and talk to multiple clients at the same time.&lt;br /&gt;So a TCP connection is somewhat like a telephone connection; you need to know not only the phone number (IP address), but because the phone may be shared by many people at that location, you also need the name or extension of the user you want to talk to at the other end (port number). The analogy can be taken a little further. If you don't hear what the other person has said, a simple request ("What?") will prompt the other end to resend or repeat the phrase, and the connection remains open until someone hangs up.&lt;br /&gt;&lt;br /&gt;Q.  What's a MalformedURLException?&lt;br /&gt;A. When you try to create a new URL by calling its constructor, it will throw a MalformedURLException if the URL string is not parseable or contains an unsupported protocol.&lt;br /&gt;&lt;br /&gt;Q.  How can I get the real local host IP address in an applet?&lt;br /&gt;Applet security restrictions do not let you get this in an untrusted applet via InetAddress.getLocalHost().&lt;br /&gt;However, you can get this address by creating a Socket connection back to the web server from which you came and asking the Socket for the local address:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;URL url = getDocumentBase();&lt;br /&gt;String host = url.getHost();&lt;br /&gt;Socket socket = new Socket(host, 80);&lt;br /&gt;InetAddress addr = socket.getLocalAddress();&lt;br /&gt;String hostAddr = addr.getHostAddress();&lt;br /&gt;System.out.println("Addr: " + hostAddr);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Q. What is the difference between a URI and a URL?&lt;br /&gt;A. URLs are a subset of all URIs.&lt;br /&gt;The term "Uniform Resource Locator" (URL) refers to the subset of URI that identify resources via a representation of their primary access mechanism (e.g., their network "location"), rather than identifying the resource by name or by some other attribute(s) of that resource.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Previous Java, J2EE, JEE Interview Questions can be read here.&lt;br /&gt;&lt;ul class="posts"&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/popular-java-interview-questions-1.html"&gt;Popular Java Interview Questions  - 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/java-j2ee-interview-questions-2.html"&gt;Java J2EE Interview Questions - 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/java-interview-questions-3.html"&gt;Java Interview Questions -3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-interview-questions-4.html"&gt;J2EE Interview Questions - 4&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-interview-questions-5.html"&gt;J2EE Interview Questions - 5&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/java-j2ee-interview-questions-6.html"&gt;Java J2EE Interview Questions - 6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.sharmavishal.com/2007/10/java-j2ee-interview-questions-7.html" rel="bookmark" title="Permanent Link to Java J2EE Interview Questions - 7"&gt;Java J2EE Interview Questions - 7&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Other useful tips on Java, JEE/J2EE&lt;br /&gt;         &lt;ul class="posts"&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-orieneted-architecture.html"&gt;What is Service Oriented Architecture or  SOA  -1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture_26.html"&gt;What is Service Oriented Architecture or SOA -2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture_26.html"&gt;What is Service Oriented Architecture or SOA -3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/j2ee-server-side-debugging-in-eclispe.html"&gt;J2EE Server Side Debugging in Eclispe&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/serialization-in-javaj2ee-demystified.html"&gt;Serialization in Java/J2EE - Demystified&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/convert-javasqltimestamp-to.html"&gt;Convert java.sql.Timestamp to java.util.Date&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/what-is-difference-between-hashmap-and.html"&gt;What is the Difference between HashMap and HashTab...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/what-are-checked-and-unchecked.html"&gt;What are Checked and UnChecked Exceptions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/how-to-do-deep-clone-of-object.html"&gt;How to do a deep clone of an object&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/what-are-common-methods-used-for.html"&gt;What are the common methods used for session track...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/run-ejb-client-in-eclipse-with-jndi.html"&gt;Run EJB client in Eclipse with jndi properties as ...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-integrating.html"&gt;J2EE Tutorial on Integrating Webservices with EJB ...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-jax-ws-style.html"&gt;J2EE Tutorial on JAX WS Style Webservices using JB...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-webservices-using.html"&gt;J2EE Tutorial on Webservices using JBoss&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-orieneted-architecture.html"&gt;Spring Framework - J2EE Development without EJB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/open-source-cachecaching-solutions-in.html"&gt;Opensource Cache/Caching Solutions in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/secure-authentication-in-web-based.html"&gt;Secure Authentication in Web Based J2EE/JEE  Devel..&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=7qcZ6I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=7qcZ6I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=BwxXlI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=BwxXlI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=fb6kII"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=fb6kII" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=D2DKJi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=D2DKJi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=03nAJi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=03nAJi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=8KU0mI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=8KU0mI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=iu9PEI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=iu9PEI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=lYA93i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=lYA93i" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/194944588" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-12-04T05:46:58.982-08:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp0.blogger.com/_b6Hez4oFqv0/R1VZ10U-JBI/AAAAAAAAAq8/BUSPuTAdpoc/s72-c/JavaPosse.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F12%2Fjava-j2ee-interview-questions-8.html</feedburner:awareness><category domain="http://rss.financialcontent.com/stocksymbol">TCP</category><category domain="http://rss.financialcontent.com/stocksymbol">URL</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/12/java-j2ee-interview-questions-8.html</feedburner:origLink></item><item><title>Blog and site makeover - What do you think ?</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/191038656/blog-and-site-makeover-what-do-you.html</link><category>Feedback</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 26 Nov 2007 20:32:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-5285788376547904969</guid><description>I 'm in the process of setting up a new design and integration of this site with my &lt;a href="http://consulting.sharmavishal.com/"&gt;Consulting  website&lt;/a&gt; and  my &lt;a href="http://www.sharmavishal.com/"&gt;other blog&lt;/a&gt;.  It is in transition, so  some of the things might not work and if you are looking for something in particular please contact me via &lt;a href="http://contact.sharmavishal.com/"&gt;contact page&lt;/a&gt; .&lt;br /&gt;If you have any suggestions or feedback for the site and overall design please do provide your invaluable &lt;a href="http://contact.sharmavishal.com/"&gt;feedback&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=bRkVyI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=bRkVyI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nPzkFI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=nPzkFI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=t6NcLI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=t6NcLI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=zLMsbi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=zLMsbi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=BWMJCi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=BWMJCi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0wCMbI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=0wCMbI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=2CCXZI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=2CCXZI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kf0T3i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=kf0T3i" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/191038656" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-11-26T23:16:06.033-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F11%2Fblog-and-site-makeover-what-do-you.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/11/blog-and-site-makeover-what-do-you.html</feedburner:origLink></item><item><title>Enterprise Technology Tips Speedlinking</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/184137878/enterprise-technology-tips-speedlinking.html</link><category>Java</category><category>Link</category><category>J2EE</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Sat, 10 Nov 2007 06:01:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-3950905744441806051</guid><description>I have been busy with festivities at home, here are some interesting links to read.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_b6Hez4oFqv0/RzWcvvHK3sI/AAAAAAAAAnM/yElqkIRh6Bk/s1600-h/1945527501_c0611ad2a5_o.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_b6Hez4oFqv0/RzWcvvHK3sI/AAAAAAAAAnM/yElqkIRh6Bk/s200/1945527501_c0611ad2a5_o.jpg" alt="" id="Vishal Sharma, Diwali, Festival, Links, tips, Enterprise, technology" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://in.relation.to/Bloggers/WhatsNewInSeam2"&gt;What's new in &lt;/a&gt;&lt;a href="http://in.relation.to/Bloggers/WhatsNewInSeam2"&gt;Seam 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/linux/library/l-linux-synchronization.html?ca=drs-"&gt;Anatomy of Linux synchronization methods&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/webservices/library/ws-soa-mashups2/index.html?ca=drs-"&gt;Mashups -- The evolution of the SOA&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.infoworld.com/article/07/11/09/Open-source-Java-could-result-in-port-to-iPhone_1.html?source=rss&amp;amp;url=http://www.infoworld.com/article/07/11/09/Open-source-Java-could-result-in-port-to-iPhone_1.html"&gt;Open-source Java could result in port to iPhone&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.webreference.com/programming/basic_soa/index.html"&gt;Basic SOA Using REST&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=3SSpYI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=3SSpYI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=IKzMWI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=IKzMWI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=TCyhBI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=TCyhBI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Tg84bi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Tg84bi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kJje0i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=kJje0i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=QlnHuI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=QlnHuI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Mc11nI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Mc11nI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=SUyGCi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=SUyGCi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/184137878" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-11-10T04:21:56.167-08:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_b6Hez4oFqv0/RzWcvvHK3sI/AAAAAAAAAnM/yElqkIRh6Bk/s72-c/1945527501_c0611ad2a5_o.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F11%2Fenterprise-technology-tips-speedlinking.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/11/enterprise-technology-tips-speedlinking.html</feedburner:origLink></item><item><title>Creating PDF Documents Dynamically in J2EE, Java Applications</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/184137880/creating-dynamic-pdf-documents-in-java.html</link><category>PDF</category><category>Programming</category><category>Java</category><category>Tips</category><category>J2EE</category><category>Article</category><category>Enterprise</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Sat, 03 Nov 2007 18:12:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-2829385417828215227</guid><description>&lt;span style="font-weight: bold;"&gt;Background:&lt;/span&gt;&lt;br /&gt;In today's enterprise applications their is a big requirement for dynamic generation of PDF documents. These applications range from telecom companies generating phone bills, airlines producing e-tickets, banks generating customer statements for e-mail delivery to readers, book sellers selling books in pdf format.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is PDF:&lt;/span&gt;&lt;br /&gt;The Portable Document Format (PDF) is the file format created by Adobe Systems in 1993 for document exchange. PDF is used for representing two-dimensional documents in a device-independent and display resolution-independent fixed-layout document format. Each PDF file encapsulates a complete description of a 2-D document (and, with Acrobat 3-D, embedded 3-D documents) that includes the text, fonts, images, and 2-D vector graphics that compose the document.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why PDF: &lt;/span&gt;&lt;br /&gt;PDF is an open standard, unlike Microsoft Word, supported by all operating systems, ie; as long as you have an adobe reader you can read a pdf file on any system like Linux, Mac, Solaris, Windows. On virus front, it’s very hard that a PDF file will have some virus. It is is now being prepared for submission as an ISO standard.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_b6Hez4oFqv0/RywaUXX_GiI/AAAAAAAAAm0/H9sVCrn53J0/s1600-h/pdfImage.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_b6Hez4oFqv0/RywaUXX_GiI/AAAAAAAAAm0/H9sVCrn53J0/s200/pdfImage.jpg" alt="" id="Pdf, Documents, Java, Create, Dynamic, J2EE, Development, Microsoft Word, Convert" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dynamic PDF Generation in Enterprise Application Development :&lt;/span&gt;&lt;br /&gt;As mentioned above, in digital age everything is digitized so that end user can access it from anywhere, anytime.  As a result new enterprise applications are generating lot of data in pdf formant which can be used by end user.&lt;br /&gt;In Enterprise (Java or J2EE, JEE) application development generating pdf documents on the fly (dynamically)  has become a trivial thing, courtesy of lot of third party tools, APIs available. The list of these tools/API's is endless. In this article, we will use the iText Java library to generate PDF documents by merging GIF files. I'll go through an example to show how this is done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;iText&lt;/span&gt; :&lt;br /&gt;&lt;a href="http://www.lowagie.com/"&gt;iText&lt;/a&gt; is an open-source Java library that provides API to generate PDF files on the fly. It also  supports the generation of HTML, RTF, and XML documents, in addition to generating PDFs. It's available for free under a multiple license: MPL and LGPL.&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;&lt;a name="api"&gt;&lt;span class="atitle"&gt;iText API :&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;The com.lowagie.text.Document is the main class for PDF document generation. This is the first class to be instantiated. Once the document is created, we would require a writer to write into it. The com.lowagie.text.pdf.PdfWriter is a PDF writer.  Other classes which are often used:&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;&lt;b&gt;com.lowagie.text.Paragraph&lt;/b&gt; - represents an indented paragraph.&lt;/li&gt;&lt;li&gt;&lt;b&gt;com.lowagie.text.Chapter&lt;/b&gt; - represents a chapter in the PDF document. It is created using a &lt;code&gt;Paragraph&lt;/code&gt; as title and an &lt;code&gt;int&lt;/code&gt; as chapter number.&lt;/li&gt;&lt;li&gt;&lt;b&gt;com.lowagie.text.Font&lt;/b&gt; - contains all specifications of a font, such as family of font, size, style, and color. Various fonts are declared as static constants in this class.&lt;/li&gt;&lt;li&gt;&lt;b&gt;com.lowagie.text.List&lt;/b&gt; - represents a list, which, in turn, contains a number of &lt;code&gt;ListItems&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;com.lowagie.text.Table&lt;/b&gt; - represents a table that contains cells, ordered in a matrix.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Example of converting multiple GIF files into PDF :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pre-requisites :&lt;/span&gt;&lt;br /&gt;Download iText and include &lt;span style="font-weight: bold;"&gt;itext-version.jar&lt;/span&gt; into your application or yr classpath.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code Snippet :&lt;/span&gt;&lt;br /&gt;The following code snippet demonstrates how to convert an array (collection) of  gif files into a single pdf,&lt;br /&gt;{code}&lt;br /&gt;&lt;br /&gt;FileOutputStream fos = null;&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;&lt;br /&gt;fos = new FileOutputStream (&lt;br /&gt;  new File(pDestinationFolder + File.separator&lt;br /&gt;  + pTargetFileNamePrefix + ".pdf")&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;// Create a document which is the container for all the elements of a PDF document.&lt;br /&gt;Document doc = new Document();&lt;br /&gt;&lt;br /&gt;// Line -1&lt;br /&gt;PdfWriter writer = PdfWriter.getInstance(doc, fos);&lt;br /&gt;&lt;br /&gt;doc.open();&lt;br /&gt;&lt;br /&gt;for (File aFile : gifFiles)  {&lt;br /&gt;&lt;br /&gt;Image image = Image.getInstance(aFile.getAbsolutePath());&lt;br /&gt;&lt;br /&gt;// Line -2&lt;br /&gt;image.scaleToFit(doc.getPageSize().getWidth(), doc.getPageSize().getHeight());&lt;br /&gt;&lt;br /&gt;// Line -3&lt;br /&gt;image.setAlignment(Image.ALIGN_CENTER);&lt;br /&gt;doc.add(image);&lt;br /&gt;doc.newPage();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;doc.close();&lt;br /&gt;}&lt;br /&gt;catch (Exception ex) {&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;}&lt;br /&gt;finally {&lt;br /&gt;&lt;br /&gt;if (fos != null)  {&lt;br /&gt;try  {&lt;br /&gt;fos.close();&lt;br /&gt;}&lt;br /&gt;catch (Exception ex)  {&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;{code}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code Demystified :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Line - 1 is important to create an instance of &lt;span style="font-weight: bold;"&gt;PdfWriter&lt;/span&gt; that associates a document object with the output stream. For our code snippet, we choose com.lowagie.text.pdf.PdfWriter. Other writers are HtmlWriter, RtfWriter, XmlWriter, and several others for obvious reasons.&lt;/li&gt;&lt;li&gt;Line - 2 is very useful methods that will scale the current image to fit the width and height specified. Gif images can vary in sizes and this allows the method to scale down to the default size of the PDF page.&lt;/li&gt;&lt;li&gt;Line-3 is to align the image so that it is located at the center of the page.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Other opensource libraries for generating pdf documents are :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;FOP&lt;/li&gt;&lt;li&gt;Gnujpdf&lt;/li&gt;&lt;li&gt;JFreeReport&lt;/li&gt;&lt;li&gt;JPedal&lt;/li&gt;&lt;li&gt;jPod&lt;/li&gt;&lt;li&gt;PDF Box&lt;/li&gt;&lt;li&gt;PDFjet&lt;/li&gt;&lt;li&gt;PJX&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0hjtoI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=0hjtoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ng4goI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ng4goI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=jxw4uI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=jxw4uI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=dv1Agi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=dv1Agi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Z85KRi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Z85KRi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=COP47I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=COP47I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mrWeeI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=mrWeeI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=VvdKei"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=VvdKei" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/184137880" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-11-03T00:29:00.053-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_b6Hez4oFqv0/RywaUXX_GiI/AAAAAAAAAm0/H9sVCrn53J0/s72-c/pdfImage.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F10%2Fcreating-dynamic-pdf-documents-in-java.html</feedburner:awareness><category domain="http://rss.financialcontent.com/stocksymbol">PDF</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/creating-dynamic-pdf-documents-in-java.html</feedburner:origLink></item><item><title>Pilot Project for Service Oriented Architecture (SOA) - 4</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/184137881/pilot-project-for-service-oriented.html</link><category>Technology</category><category>SOA</category><category>Planning</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 29 Oct 2007 05:29:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-7097349829001228717</guid><description>&lt;span style="font-weight: bold;"&gt;Continuing in series of &lt;/span&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture_26.html"&gt;What is Service Oriented Architecture or SOA&lt;/a&gt;&lt;br /&gt;today I reflect upon a pilot project for SOA.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Projects :&lt;/span&gt;&lt;br /&gt;Upon establishing a SOA Reference Architecture (RA), enterprises need to begin to considering which services are need to provide functionality and ROI required by the enterprise, when and how they will be developed and deployed.  This is an example of an SOA Roadmap, strategy that is intended to guide an enterprise along the SOA journey by assisting in prioritizing the tasks of developing, reusing and producing services.&lt;br /&gt; Efforts must begin with an understanding of the existing projects, applications, and functionality that can be reused.  This process involves creating an application inventory and project catalog.  Functionality that is specific to and resides in applications or projects may be safely deemphasized.  It is important to capture relevant features such as:&lt;br /&gt;Current applications functionality, services and dependencies&lt;br /&gt;Level and capability of existing services&lt;br /&gt;Inter- and intra-dependencies of current applications, planned and in-progress projects, and any related development and maintenance issues&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Current common service usage&lt;/li&gt;&lt;li&gt;Application development metrics including budgets&lt;/li&gt;&lt;li&gt;Application development information, accessed and delivered&lt;/li&gt;&lt;li&gt;Application process and workflows&lt;/li&gt;&lt;li&gt;Business information; SLAs, QoS, and related non-functional &lt;/li&gt;&lt;li&gt;Project schedules and delivery milestones&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The product of this process analysis will provide a base understanding of the current enterprise capabilities and projects and will assist in identifying common functionality and initial service selection.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Relationships and Outcome Management :&lt;/span&gt;&lt;br /&gt; The most significant challenges with SOA are the cultural and sociological changes required.  The establishment of tighter coupling between IT divisions is essential in order to facilitate the focus on delivering overall business value rather than specific departmental value, shared services versus siloed applications. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_b6Hez4oFqv0/RyW4inX_GeI/AAAAAAAAAl4/BOl3fW3W7EM/s1600-h/SOAGovernance04.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_b6Hez4oFqv0/RyW4inX_GeI/AAAAAAAAAl4/BOl3fW3W7EM/s400/SOAGovernance04.jpg" alt="" id="BLOGGER_PHOTO_ID_5126706655655827938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; There seem to be two recurring fundamental themes associated with this aspect of SOA.  The first being, it is crucial to provide the necessary education to the organization not only in the technical aspects and concepts of SOA but also the cultural impacts of SOA.&lt;br /&gt; The second theme is that relationships and governance is about considering the adoption of SOA as a change to the entire organization rather than simply the latest technical trend.  By achieving and retaining sponsorship from senior executive will provide assistance for different divisions of the organization to inter operate with each other, and guarantee the appropriate level of authority to obtain compliance along with the evangelising of the SOA effort.&lt;br /&gt; &lt;br /&gt; Organizations construct relationships and governance is various manners which suit their maturity levels and the direction of their organization.  The most effective mechanism, for initial SOA implementations, is a centralized organization.  This is followed by a federated, distributed, governance model and ultimately followed by an autonomous hierarchical mechanism.  The governance organization must take a holistic view of organizational tenets, structure relationships, funding, process for operations and tools, standards, change management, and skills retention.   This organization will assist with deciding, institutionalizing, and enhancing the processes related to answering questions such as:&lt;br /&gt;&lt;br /&gt;Who defines and modifies the organization’s systems?&lt;br /&gt;What quality of service must be provided?&lt;br /&gt;Who is responsible for the payment of service development?&lt;br /&gt;Who is responsible for the payment of the service ecosystem?&lt;br /&gt;Who is allowed access to the services?&lt;br /&gt;How are services exposed to external consumers?&lt;br /&gt;How will success of the SOA be measured?&lt;br /&gt;How will the inter dependencies among services be managed?&lt;br /&gt;&lt;br /&gt;The relationship and governance phase will ensure that the maturity and business value delivered by the SOA effort can be measured as well as define the corrective action that must be taken if metrics are not being achieved.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Implementing a Pilot Project :&lt;/span&gt;  Once an organization has developed its SOA roadmap the time comes to begin executing against that roadmap, however many organizations struggle on how to get started implementing an SOA.  What is needed is a prescription that describes a mythology for selecting the appropriate project or application.  Many say that this pilot project should be one that addresses some “low hanging fruit” and has minimal impact and risk to the organization and not one that would have a &lt;span style="font-style: italic;"&gt;big bang&lt;/span&gt; effect on the organization.  One such prescription is defined in this section.&lt;br /&gt; Important Steps in a Successful Pilot Project in SOA&lt;br /&gt;&lt;br /&gt;Step 1:  Identify the Objectives for the SOA Pilot&lt;br /&gt; The valuable SOA ecosystem insight gained from an SOA pilot project will be extremely informative as an organization progresses to implementing an enterprise SOA.  The pilot project is an opportune time for experimentation and learning by trial and error.  The organization should clearly define and articulate the objectives for the pilot, which may include this such as:&lt;br /&gt;Consolidation of duplicate applications or functionality&lt;br /&gt;Development of a reusable service for usage by multiple departments&lt;br /&gt;Gathering lessons learned that can be leveraged in the progression along the SOA roadmap&lt;br /&gt;Gaining knowledge and understanding of the tasks involved in provisioning services into production as well as the daily operational management tasks required for an SOA.&lt;br /&gt;Demonstration of a successful SOA implementation in order to clearly showcase the benefits of reuse and consolidation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 2:  Construct a Cross-Organizational SOA Team&lt;br /&gt; In order for an SOA pilot, effort, to be successful there must be support and cooperation from across the organization.  A key step is to establish a cross-organizational team with representation from business development, operations, engineering, security, etc.  It is imperative that these stakeholders experience both the failures as well as the benefits by participating in the SOA team, even though they may not be involved with the pilot on a daily basis.  By conducting regular meetings and communications, territorial issues and other concerns will be exposed.&lt;br /&gt;&lt;br /&gt;Team members must be selected wisely considering their ability, and willingness, to participate in addition to their on-going responsibilities.  Time commitments for both meeting participation and reviews must be outlined and the team members need to be asked for commitment agreements in the beginning.   Another key element is a communication strategy, which needs to be established and shared that includes a manageable amount of updates and should be sent to each team member.  It is essential that the organization adhere to its schedule in order achieve credibility for the SOA pilot and obtain feedback, continued support, and participation.&lt;br /&gt; SOA migration involves a major shift in the development and provision of applications paradigm.  The most difficult challenge in migrating to SOA revolves around the cultural and sociological aspects of organizations because many organizations see SOA as a disruptive technology and view it as the demolition of traditional silo-based organization.  Selecting to appropriate demographics for the cross-organizational SOA team is probably the most crucial aspect of a pilot.&lt;br /&gt;&lt;br /&gt;Step 3:  Ascertain the Appropriate Pilot Project&lt;br /&gt; Selecting an appropriate SOA pilot is essential in order to dispel any misconceptions by those who may be skeptical of the SOA paradigm.  The SOA pilot must exhibit the benefits of SOA and demonstrate the potential without greatly impacting the organization.  A successful SOA pilot provides credibility and could result in wider SOA adoption and deployment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;There are many questions to consider when selecting an SOA pilot project some of which are:&lt;/span&gt;&lt;br /&gt;1. Develop new services or reuse existing?&lt;br /&gt;While developing new service may be simpler initially, the typical first step, by many organizations, is to wrap existing legacy systems with a Web service interface.  Wrapping legacy systems provides benefits that can be measured quickly.&lt;br /&gt;&lt;br /&gt;2. Should the pilot be of high or low visibility?&lt;br /&gt;Organizations struggle with the visibility of application to utilize in an SOA pilot and must weigh the benefits and risks of choosing a pilot that would possess a high level of visibility across the organization against those of a lower visibility pilot.&lt;br /&gt;&lt;br /&gt;Low visibility pilots&lt;br /&gt;Are not as critical to the organization if issues should arise&lt;br /&gt;Allow for triage without constant inspection&lt;br /&gt;&lt;br /&gt;High visibility pilots&lt;br /&gt;Organizational benefits are achieved sooner and across multiple departments&lt;br /&gt;Determine stakeholder requirements and if a visible success is warranted&lt;br /&gt;Come with various attitudes and associated political agendas&lt;br /&gt;&lt;br /&gt;3. What type of application should the pilot address?&lt;br /&gt;Portals are the typical SOA pilot applications selected.  Portals provide a provide users a single view based on data gathered from multiple sources.  Portals are often good selections because they provide a tangible results and a hands-on way of experiencing the benefits of SOA.  In direct contrast are back-end integration pilots, which can be valuable, such as data synchronization systems which make it difficult to experience the benefits of SOA.&lt;br /&gt;&lt;br /&gt;4. Who should the audience be for the pilot?&lt;br /&gt;The selecting the audience of a pilot offers many advantages and disadvantages when choosing between internal and external users.  If the audience is only internal to the organization users can be protected from any potential issues, however the expressed reactions may not be as valuable in furthering SOA adoption.  In direct contrast with this is an external facing pilot where the reaction could provide greater value to SOA adoption across the organization.&lt;br /&gt;&lt;br /&gt;5. What type of service should the pilot be?&lt;br /&gt;Along with selection appropriate type of application for the SOA pilot, for example user-facing applications like portals or back-end application like data synchronization, organizations must select the type of service the pilot should offer.  Two possible options are services that expose existing data for use by new consumers and transaction-based services that generate new information or initiate new business processes.&lt;br /&gt;Many organizations select query-based services to remove barriers to existing data assets and avoid transaction-based services due to their higher risk of issues that can lead to data loss.  Over time, these query-based services are extended with transactional operations, since most services require both.  As an example, a telecommunications self-service web site should be able to provide information related to things such as service requests and billing history as well as self-service provisioning (transactional operations).&lt;br /&gt;&lt;br /&gt;Step 4:  Measure Results&lt;br /&gt; The organization’s management staff often requires tangible proof of pilot success and ROI.  A technique is required in order to continuously capture data, especially is the pilot timeline in a significant in length, in order to possess accurate and readily available data at pilot completion.&lt;br /&gt; Measuring factors for SOA&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Business Agility :&lt;br /&gt;&lt;/span&gt;Organizations can compare the time required to modify or add a feature to a non-SOA application against performing the similar tasks to a service in order to determine its ability to respond to every changing environments and requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Shared Service Reuse :&lt;/span&gt; Determining the number of reuse instances of shared services can be an effective measurement of the ROI provided by an SOA.  Reusing shared services leads to cost avoidance or reduction of developing, maintaining, and operating services that are only useful for a specific purpose or organizational element.  For organizations to calculate ROI of shared services there are some additional fundamental metrics required:&lt;br /&gt;Cost to build/maintain/operate a shared service.  Cost of having a shared service&lt;br /&gt;Cost to build/maintain/operate pinpoint service.  If organizations have deployed an effective SOA ecosystem this should be similar to that of a shared service.&lt;br /&gt;Cost to reuse an existing service developed externally.  This cost is incurred by organizations when services, developed by someone else, are reused.  It is crucial that organizations control this metric in order for an SOA to succeed.  Reusing a service is in essence integration and an SOA must be structured to manage the costs of integration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Web Services Adoption :&lt;/span&gt;  The number of Web services can provide an indication of the breadth of adoption for the underpinning technology for SOA.  It can also be a negative indicator as well, the larger number of Web services would indicate that the reuse of services is low and that the SOA effort needs to be revising.&lt;br /&gt;&lt;br /&gt; Consumers of Shared Services&lt;br /&gt;The number of consumers reusing shared services can assist organizations in measuring the SOA adoption level and breadth.  This indicates the level of shift in the cultural, sociological, aspects of the organization.  While this metric may not be directly correlated to the business benefits for SOA, it is an important measurement nonetheless.&lt;br /&gt;Other useful tips on Java, JEE/J2EE&lt;br /&gt;     &lt;ul class="posts"&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/j2ee-server-side-debugging-in-eclispe.html"&gt;J2EE Server Side Debugging in Eclispe&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-orieneted-architecture.html"&gt;What is Service Oriented Architecture or  SOA  -1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture.html"&gt;What is Service Oriented Architecture or SOA -2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture_26.html"&gt;What is Service Oriented Architecture or SOA -3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/serialization-in-javaj2ee-demystified.html"&gt;Serialization in Java/J2EE - Demystified&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-integrating.html"&gt;J2EE Tutorial on Integrating Webservices with EJB ...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-jax-ws-style.html"&gt;J2EE Tutorial on JAX WS Style Webservices using JB...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-webservices-using.html"&gt;J2EE Tutorial on Webservices using JBoss&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/spring-framework-j2ee-development.html"&gt;Spring Framework - J2EE Development without EJB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/open-source-cachecaching-solutions-in.html"&gt;Opensource Cache/Caching Solutions in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/secure-authentication-in-web-based.html"&gt;Secure Authentication in Web Based J2EE/JEE  Devel...&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=G4GyQI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=G4GyQI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=sjsobI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=sjsobI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=OUAllI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=OUAllI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=RTtayi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=RTtayi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nopeWi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=nopeWi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=JqJ5kI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=JqJ5kI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=2C6pMI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=2C6pMI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=SwAsCi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=SwAsCi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/184137881" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-29T03:44:55.462-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp0.blogger.com/_b6Hez4oFqv0/RyW4inX_GeI/AAAAAAAAAl4/BOl3fW3W7EM/s72-c/SOAGovernance04.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F10%2Fpilot-project-for-service-oriented.html</feedburner:awareness><category domain="http://rss.financialcontent.com/stocksymbol">RA</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/pilot-project-for-service-oriented.html</feedburner:origLink></item><item><title>Java J2EE Interview Questions - 7</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/184137882/java-j2ee-interview-questions-7.html</link><category>Java</category><category>Interview</category><category>Tips</category><category>J2EE</category><category>Questions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Fri, 26 Oct 2007 08:50:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-37011109103338544</guid><description>Continuing our Java/J2EE/JEE  interview questions and answers series, today's questions are:&lt;br /&gt;&lt;br /&gt;Q Describe the principles of OOPS.&lt;br /&gt;A There are three main principals of oops which are called Polymorphism, Inheritance and Encapsulation. &lt;br /&gt;&lt;br /&gt;Q Explain the Encapsulation principle.&lt;br /&gt;A Encapsulation is a process of binding or wrapping the data and the codes that operates on the data into a single entity. This keeps the data safe from outside interface and misuse. One way to think about encapsulation is as a protective wrapper that prevents code and data from being arbitrarily accessed by other code defined outside the wrapper. &lt;br /&gt;&lt;br /&gt;Q Explain the Inheritance principle.&lt;br /&gt;A Inheritance is the process by which one object acquires the properties of another object. &lt;br /&gt;&lt;br /&gt;Q Explain the Polymorphism principle.&lt;br /&gt;A The meaning of Polymorphism is something like one name many forms. Polymorphism enables one entity to be used as general category for different types of actions. The specific action is determined by the exact nature of the situation. The concept of polymorphism can be explained as "one interface, multiple methods". &lt;br /&gt;&lt;br /&gt;Q Explain the different forms of Polymorphism.&lt;br /&gt;Answer: From a practical programming viewpoint, polymorphism exists in three distinct forms in Java:&lt;br /&gt;Method overloading&lt;br /&gt;Method overriding through inheritance&lt;br /&gt;Method overriding through the Java interface&lt;br /&gt;&lt;br /&gt;Q What are Access Specifiers available in Java?&lt;br /&gt;A Access specifiers are keywords that determines the type of access to the member of a class. These are:&lt;br /&gt;Public&lt;br /&gt;Protected&lt;br /&gt;Private&lt;br /&gt;Defaults&lt;br /&gt;&lt;br /&gt;Q Describe the wrapper classes in Java.&lt;br /&gt;A Wrapper class is wrapper around a primitive data type. An instance of a wrapper class contains, or wraps, a primitive value of the corresponding type.&lt;br /&gt;&lt;br /&gt;Q What's the difference between J2SDK 1.5 and J2SDK 5.0?&lt;br /&gt;A There's no difference, Sun Microsystems just re-branded this version.&lt;br /&gt;&lt;br /&gt;Q What would you use to compare two String variables - the operator == or the method equals()?&lt;br /&gt;A I'd use the method equals() to compare the values of the Strings and the == to check if two variables point at the same instance of a String object.&lt;br /&gt;&lt;br /&gt;Q Does it matter in what order catch statements for FileNotFoundException and IOExceptipon are written?&lt;br /&gt;A Yes, it does. The FileNoFoundException is inherited from the IOException. Exception's subclasses have to be caught first.&lt;br /&gt;&lt;br /&gt;Q Can an inner class declared inside of a method access local variables of this method?&lt;br /&gt;A It's possible if these variables are final.&lt;br /&gt;&lt;br /&gt;Q What can go wrong if you replace &amp;amp;&amp;amp; with &amp;amp; in the following code:&lt;br /&gt;String a=null; if (a!=null &amp;amp;&amp;amp; a.length()&gt;10) {...}&lt;br /&gt;A A single ampersand here would lead to a NullPointerException.&lt;br /&gt;&lt;br /&gt;Q What's the main difference between a Vector and an ArrayList&lt;br /&gt;A Java Vector class is internally synchronized and ArrayList is not.&lt;br /&gt;&lt;br /&gt;Q When should the method invokeLater()be used?&lt;br /&gt;A This method is used to ensure that Swing components are updated through the event-dispatching thread.&lt;br /&gt;&lt;br /&gt;Q How can a subclass call a method or a constructor defined in a superclass?&lt;br /&gt;A Use the following syntax: super.myMethod(); To call a constructor of the superclass, just write super(); in the first line of the subclass's constructor.&lt;br /&gt;&lt;br /&gt;Q You can create an abstract class that contains only abstract methods. On the other hand, you can create an interface that declares the same methods. So can you use abstract classes instead of interfaces?&lt;br /&gt;A Sometimes. But your class may be a descendent of another class and in this case the interface is your only option.&lt;br /&gt;&lt;br /&gt;Q What comes to mind when you hear about a young generation in Java?&lt;br /&gt;A Garbage collection.&lt;br /&gt;&lt;br /&gt;Q What comes to mind when someone mentions a shallow copy in Java?&lt;br /&gt;A Object cloning.&lt;br /&gt;&lt;br /&gt;Q If you're overriding the method equals() of an object, which other method you might also consider?&lt;br /&gt;A hashCode()&lt;br /&gt;&lt;br /&gt;Q You are planning to do an indexed search in a list of objects. Which of the two Java collections should you use:&lt;br /&gt;ArrayList or LinkedList?&lt;br /&gt;A ArrayList&lt;br /&gt;&lt;br /&gt;Q How would you make a copy of an entire Java object with its state?&lt;br /&gt;A Have this class implement Cloneable interface and call its method clone().&lt;br /&gt;&lt;br /&gt;Q How can you minimize the need of garbage collection and make the memory use more effective?&lt;br /&gt;A Use object pooling and weak object references.&lt;br /&gt;&lt;br /&gt;Previous Java, J2EE, JEE Interview Questions can be read here.&lt;br /&gt;&lt;ul class="posts"&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/popular-java-interview-questions-1.html"&gt;Popular Java Interview Questions  - 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/java-j2ee-interview-questions-2.html"&gt;Java J2EE Interview Questions - 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/java-interview-questions-3.html"&gt;Java Interview Questions -3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-interview-questions-4.html"&gt;J2EE Interview Questions - 4&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-interview-questions-5.html"&gt;J2EE Interview Questions - 5&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/java-j2ee-interview-questions-6.html"&gt;Java J2EE Interview Questions - 6&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Other useful tips on Java, JEE/J2EE&lt;br /&gt;                  &lt;ul class="posts"&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/j2ee-server-side-debugging-in-eclispe.html"&gt;J2EE Server Side Debugging in Eclispe&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/serialization-in-javaj2ee-demystified.html"&gt;Serialization in Java/J2EE - Demystified&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/convert-javasqltimestamp-to.html"&gt;Convert java.sql.Timestamp to java.util.Date&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/what-is-difference-between-hashmap-and.html"&gt;What is the Difference between HashMap and HashTab...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/what-are-checked-and-unchecked.html"&gt;What are Checked and UnChecked Exceptions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/how-to-do-deep-clone-of-object.html"&gt;How to do a deep clone of an object&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/what-are-common-methods-used-for.html"&gt;What are the common methods used for session track...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/run-ejb-client-in-eclipse-with-jndi.html"&gt;Run EJB client in Eclipse with jndi properties as ...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-integrating.html"&gt;J2EE Tutorial on Integrating Webservices with EJB ...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-jax-ws-style.html"&gt;J2EE Tutorial on JAX WS Style Webservices using JB...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-webservices-using.html"&gt;J2EE Tutorial on Webservices using JBoss&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-orieneted-architecture.html"&gt;Spring Framework - J2EE Development without EJB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-orieneted-architecture.html"&gt;What is Service Oriented Architecture or  SOA  -1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture_26.html"&gt;What is Service Oriented Architecture or SOA -2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture_26.html"&gt;What is Service Oriented Architecture or SOA -3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/open-source-cachecaching-solutions-in.html"&gt;Opensource Cache/Caching Solutions in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/10/secure-authentication-in-web-based.html"&gt;Secure Authentication in Web Based J2EE/JEE  Devel...&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0262313303390377";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "de7008";
google_color_text = "808080";
google_color_url = "808080";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=GnatAI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=GnatAI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=uoaMBI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=uoaMBI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=fcki4I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=fcki4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=sI4Esi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=sI4Esi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=TPuw1i"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=TPuw1i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=S6u3rI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=S6u3rI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=chXO8I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=chXO8I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=OCgzHi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=OCgzHi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/184137882" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:44:35.712-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogspot/GHpm&amp;itemurl=http%3A%2F%2Fentips.sharmavishal.com%2F2007%2F10%2Fjava-j2ee-interview-questions-7.html</feedburner:awareness><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/java-j2ee-interview-questions-7.html</feedburner:origLink></item><item><title>What is Service Oriented Architecture or SOA -3</title><link>http://feeds.feedburner.com/~r/blogspot/GHpm/~3/184137883/what-is-service-oriented-architecture_26.html</link><category>Technology</category><category>SOA</category><category>Enterprise</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Fri, 26 Oct 2007 08:10:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-5948313744181822333</guid><description>&lt;span style="font-weight: bold;"&gt;Continuing in series of &lt;/span&gt;&lt;a href="http://entips.blogspot.com/2007/10/what-is-service-oriented-architecture.html"&gt;What is Service Oriented Architecture or SOA&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Requirements for a SOA Strategy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to realize the benefits of SOA there needs to be a balance struck between the long-term enterprise goals and the short-term, immediate, business requirements.  Institutionalizing a series of operational, design, budgetary, operational, and provisioning practices in the initial stage of an SOA journey can assist in establishing and maintaining this balance.  The deployment of cultural changing disciples must be performed in an incremental and iterative manner.  This will allow for the required organizational learning curve.  An SOA roadmap provides an iterative and incremental mechanism to continuously describe an organization’s journey as they progress.  A path for the SOA journey has three critical characteristics:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scope:&lt;/span&gt;&lt;br /&gt;A SOA roadmap should be comprised of six distinct, but interrelated and interdependent, jurisdictions.  The fundamental success of an SOA effort is directly related to the successful execution in each of these jurisdictions.  An organization’s SOA roadmap should define and delineate the boundaries of the SOA effort as well as establishes a flexible timeline for achieving their SOA objectives.  The SOA objectives of an organization should be divided into phases that are manageable and that can be iteratively and incrementally realized.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Quality:&lt;/span&gt;&lt;br /&gt;A SOA roadmap will remain relevant for the life of the SOA effort by being iterative and incremental as well as through the application of a “Mature &amp;amp; Change” process at each major exit-point, milestone.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Maturity:&lt;br /&gt;&lt;/span&gt; A SOA roadmap is an “organic document” that is continuously describes organizational experiences and lessons learned.  As the SOA effort matures, along the SOA roadmap, it reaches higher levels of complexity and sophistication, but does so in a govern fashion.  An SOA roadmap is created by first assessing the current capabilities and disciplines of an organization and their applicability to SOA.&lt;br /&gt;&lt;br /&gt;Building a SOA Roadmap&lt;br /&gt; Creating a SOA roadmap involves four phases: Planning, As-Is Assessment, End goal, and Definition.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Planning&lt;/span&gt;&lt;br /&gt; A SOA effort is organized and defined in this phase.  The SOA stakeholders are incorporated into the process through various communication avenues and briefing, and a mutually agreed upon priorities and constraints are established.  The appropriate level of clear communication is essential in this phase due to the involvement of representation from across the organization.  The outcomes of this phase include:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A defined scope for the SOA&lt;/li&gt;&lt;li&gt;Establishment of boundaries and alignments with peer IT efforts&lt;/li&gt;&lt;li&gt;An illustrated business case to justify the SOA effort&lt;/li&gt;&lt;li&gt;Defined current and future business objective alignment&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;As-Is Assessment&lt;/span&gt;&lt;br /&gt; The establishment of metrics and measures of the current state of affairs is conducted in the assessment phase.  Current services and capabilities need to be identified as a potential “on-ramping” point for the SOA effort.  Pilot projects need to be identified as well in this phase.  By interviewing and questioning the SOA stakeholders an organization should examine the jurisdictions of concern.  The “as-is” state of each of the jurisdictions of concern needs to be analyzed, base-lined, and validated.  A mechanism needs to be devised to assemble the examination of the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Business Approach:  Business strategies and processes are examined beginning at the top level of the organization and working downward into each level and area of the organization.&lt;/li&gt;&lt;li&gt;Business Value:  Summary of current cost and budgetary structures and cases of value add to the organization.&lt;/li&gt;&lt;li&gt;Architecture:  Examination of “as-is” architecture, policies, and standards&lt;/li&gt;&lt;li&gt;SOA Legos:  Investigation of existing services, technical processes, tools, and technologies&lt;/li&gt;&lt;li&gt;Projects:  Examination of existing systems, and on-going and forecasted projects&lt;/li&gt;&lt;li&gt;Relationships and Outcome Management:   Investigation of current governance and organizational relationships, policies, and processes.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;End goal&lt;/span&gt;&lt;br /&gt; The end goal phase involves the determination and definition of the “to-be” state of the organization, as it related to the SOA effort, and ensuring that there is cross-organizational agreement.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Business Approach:  Relationship of the SOA end goal with business strategies and processes.  &lt;/li&gt;&lt;li&gt;Business Value:  Definition of metric and measurement requirements.&lt;/li&gt;&lt;li&gt;Architecture:  Organizational guiding tenets, requirements, reference architecture, policies, and standards.&lt;/li&gt;&lt;li&gt;SOA Legos:  Ecosystem requirements for supporting shared services and tool standardization.&lt;/li&gt;&lt;li&gt;Projects:  Alignment of SOA effort with projects and applications&lt;/li&gt;&lt;li&gt;Relationships and Outcome Management:   Relationship, governance, and compliance structures and policies.&lt;/li&gt;&lt;/ol&gt; &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definition&lt;/span&gt;&lt;br /&gt; Organizations begin defining an SOA roadmap in this phase.  As per the information findings from the previous phases, a complete gap analysis should be conducted for the organization’s SOA objectives and suitable timelines.  The immediate events will be well defined and detailed with future events being more in flux and fluid in order to incorporate the lessons learned during progression.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Business Approach:  Alignment of opportunities based on the value added to the business.  &lt;/li&gt;&lt;li&gt;Business Value:  Roadmap of future metrics, cost and budgetary structures, and benefits cases.&lt;/li&gt;&lt;li&gt;Architecture:  Roadmap for the immediate, medium-, and long-term reference architecture.&lt;/li&gt;&lt;li&gt;SOA Legos:  Prioritization of shared services strategy and standardized processes.&lt;/li&gt;&lt;li&gt;Projects:  Impacts to projects and applications.&lt;/li&gt;&lt;li&gt;Relationships and Outcome Management:   Projected relationship and governance structures, policies, and processes.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;An organization’s SOA roadmap must be treated as an “organic document” that continuously describes experiences and lessons learned of the organization.  As the SOA effort matures, along the SOA roadmap, it reaches higher levels of complexity and sophistication, but does so in a govern fashion.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOA Legos&lt;/span&gt;&lt;br /&gt;One of the most crucial elements contributing to the success of an SOA journey is the institutionalization of a culture, throughout the enterprise, which cultivates the notion, and expectation, of reuse.  The discrete, reusable services and architectural elements that can be combined to author composite applications and service ecosystem for the building blocks, like legos, of a SOA.  The “SOA legos” form the basis of a catalog of enterprise capabilities over time and each is added to this catalog as it is implemented.  The ROI of an enterprise is demonstrable and steadily increases as the number of capabilities in the catalog increases.  This is due to the amount of new code development and service ecosystem needs for future projects are reduced.  There are two categories of “SOA legos”:  software legos and organizational legos.  Software building blocks are such things as code, services, applications, data models, processes, and components.  Organizational building blocks as things such as best practices, lessons learned, standards, tools (development, deployment, and management).  By utilizing a collection of building blocks organizations can develop applications.  The building blocks form the enterprise infrastructure and should be developed incrementally and refined iteratively and build-up the enterprise’s target architectures.&lt;br /&gt;The ability to clearly define and implement a service at the proper level of granularity and with the appropriate level of coupling is essential to the success to the SOA journey.  The implementation process must be consistent and repeatable process.  At the center of any SOA is the notion of a service which is defined as “a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description”2.  A service can be illustrated by three components:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Interface:  Provides a means for interacting with a service, which is standards-based, by users in order to access the service functionality according to the service contract.&lt;/li&gt;&lt;li&gt;Contract:  Is an agreement by two or more parties which specifies the conditions of use of a service including the service purpose, functionality, and constraints on the real world effect of the service.&lt;/li&gt;&lt;li&gt;Implementation:  Is composed of the actual code, application interface, or other technology asset exposing functionality through a service.  Services are either exposed by creating new applications based upon services or from existing applications.&lt;/li&gt;&lt;/ol&gt;Exposing services can be accomplished either from existing applications or by developing new applications based on a service-centric paradigm.  One of the initial technical questions, and probably the most difficult to resolve, is which services to implement first?  When building the “SOA lego” baseline for the SOA journey, organizations typically begin with the simplest services at the core of the enterprise.  These services should be business-unit, line-of-business agnostic and gradually migrate to business-unit specific capabilities.  By following this type of progression will allow organizations to be comfortable with the process of constructing and reusing services without having to become mired in complexity.  Some of the initial services organizations build are typically services that perform infrastructure functionality such as logging, monitoring, auditing, and error handling.&lt;br /&gt;Services have both functional and non-functional characteristics.  The main functional service characteristics are its execution model, exchange model, and level of complexity.  A service’s execution model describes the manner in which a service is invoked and the communications exchanged: synchronous or asynchronous.  The exchange model of a service describes the method, direction, of message exchanges: unidirectional or bi-directional.  A service’s level of complexity refers to the granularity of a service.&lt;br /&gt;Service granularity is the level of abstraction of a service.  Services are either fine-grained or coarse grained.  A fine-grained service is one provides specific capability, for example as standards-based of invoking an application programming interface (API) or manipulating an enterprise data object.  Shared services that provide common business operations are also typically fine-grained services.  Coarse-grained services are those services that provide a mechanism for accessing high-level, complex business capabilities, such as employee on-ramping and mission planning.  Coarse-grained services are often long running and involve the coordination and collaboration of finer-grained service execution.&lt;br /&gt;The non-functional characteristics of services involve things such as volume requirements, quality of service (QoS), and execution length.  Portions of the service contract are comprised of these dynamics.&lt;br /&gt;Service characteristics and functionality permit the categorization of services in layers of a service-oriented architecture.  This categorization serves in the decision making regarding service utility and prioritization.&lt;br /&gt;The IT disciplines required to realize SOA should also be considered as “SOA legos”.  Such disciplines include a versioning strategy, service provisioning, testing, and verification and validation.  It is essential that adherence to IT disciplines be strictly applied and enforced.  One of the principal roles of SOA governance is to ensure the scope and enforcement of such standards.&lt;br /&gt;A SOA ecosystem will be required to deliver the “SOA legos”.  A common ecosystem component is a service registry.  A service registry provides a mechanism for service consumers to discover available services and for service providers to broadcast the existence of services.  One of the critical features of SOA is the ability to discover and reuse capabilities that conforms to a needed contract at the time it is needed.  Several other ecosystem components for developing and provisioning services exist and are considered “SOA legos”:&lt;br /&gt;SOA fabric or “Enterprise Service Bus (ESB)” which provide dynamic routing, mediation, and translation capabilities&lt;br /&gt;Identity management and Enterprise Security frameworks that provide a security infrastructure&lt;br /&gt;Configuration management for managing the deployable components and for configuration of hardware and services provisioning at runtime&lt;br /&gt;Business Activity Management (BAM) for measuring SOA performance against defined contracts and SLAs&lt;br /&gt;Portal technology for multi-user experience delivery&lt;br /&gt;There are several technologies and platforms available for providing the necessary ecosystem components.  The basis for SOA must be standards based which allows for a best-of-breed approach to acquiring the necessary 