<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/blogspot/GHpm" /><description>Built on J2EE and SOA using opensource</description><language>en</language><managingEditor>noreply@blogger.com (Vishal Sharma)</managingEditor><lastBuildDate>Thu, 26 Aug 2010 02:59:30 PDT</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" type="application/rss+xml" href="http://feeds.feedburner.com/blogspot/GHpm" /><feedburner:info uri="blogspot/ghpm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>blogspot/GHpm</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Links for 2010-08-17 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/P2vWjPOVaR0/vashistvishal</link><pubDate>Wed, 18 Aug 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2010-08-17</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://colleges.usnews.rankingsandreviews.com/best-colleges/national-universities-rankings"&gt;National Universities Rankings - Best College - Education - US News&lt;/a&gt;&lt;br/&gt;
U.S. News &amp;amp; World Report ranks the best colleges each year. Search over 1,400 schools and find the right college for you.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/P2vWjPOVaR0" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2010-08-17</feedburner:origLink></item><item><title>Links for 2010-08-16 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/0BmeV9rmiIA/vashistvishal</link><pubDate>Tue, 17 Aug 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2010-08-16</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.marcbowles.com/courses/adv_dip/module4/module4/m4three2.htm"&gt;4.3.2 Inventory policy under conditions of uncertainty&lt;/a&gt;&lt;br/&gt;
Put a description of the page here&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/0BmeV9rmiIA" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2010-08-16</feedburner:origLink></item><item><title>Links for 2009-12-01 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/-UxsmFmKNM0/vashistvishal</link><pubDate>Wed, 02 Dec 2009 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2009-12-01</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://aws.typepad.com/aws/2009/11/ibm-tivoli-now-available-on-amazon-ec2.html"&gt;Amazon Web Services Blog: IBM Tivoli Now Available on Amazon EC2&lt;/a&gt;&lt;br/&gt;
Adoption of the AWS Cloud by mainstream ISVs is underway as you read this. There are numerous posts about IBM’s work to bring their product line into the AWS environment, and today’s is no exception. IBM Tivoli monitoring is now...&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/-UxsmFmKNM0" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2009-12-01</feedburner:origLink></item><item><title>Links for 2009-02-10 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/ajhTmEQ9z-Y/vashistvishal</link><pubDate>Wed, 11 Feb 2009 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2009-02-10</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.guardian.co.uk/technology/gamesblog/2009/feb/10/gameculture-apple"&gt;How to become an iPhone developer in eight easy steps | Technology | guardian.co.uk&lt;/a&gt;&lt;br/&gt;
How to become an iPhone developer in eight easy steps&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/ajhTmEQ9z-Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2009-02-10</feedburner:origLink></item><item><title>Links for 2009-02-08 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/tY1GdOolZvY/vashistvishal</link><pubDate>Mon, 09 Feb 2009 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2009-02-08</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://neilbartlett.name/blog/osgibook/"&gt;Neil&amp;rsquo;s point-free blog &amp;raquo; Book - OSGi in Practice&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/tY1GdOolZvY" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2009-02-08</feedburner:origLink></item><item><title>Links for 2009-02-05 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/sMxEMbPTz2w/vashistvishal</link><pubDate>Fri, 06 Feb 2009 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2009-02-05</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cnet.com.au/mobilephones/phones/0,239025953,339294783,00.htm"&gt;Optus plans: iPhone vs. Android - Mobile Phones&lt;/a&gt;&lt;br/&gt;
Optus is asking its customers to choose between two of the most popular handsets of 2008, the iPhone 3G and the Android-powered HTC Dream, we take a look at the pricing.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/sMxEMbPTz2w" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2009-02-05</feedburner:origLink></item><item><title>Links for 2009-02-01 [del.icio.us]</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/T8yo3lD7dW0/vashistvishal</link><pubDate>Mon, 02 Feb 2009 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/vashistvishal#2009-02-01</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://turing.une.edu.au/~comp292/Lectures/HEADER_KM_2004_LEC_NOTES/"&gt;Knowledge Management Systems Lecture Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/T8yo3lD7dW0" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/vashistvishal#2009-02-01</feedburner:origLink></item><item><title>A SOA Prototype in 15 minutes with Apache Tuscany</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/DQTc1t8zBw8/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 03:58:00 PDT</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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-5917822462640714839?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/d7Ft1Ritu1fNVLzAeJ5LaAeFZVc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d7Ft1Ritu1fNVLzAeJ5LaAeFZVc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/d7Ft1Ritu1fNVLzAeJ5LaAeFZVc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d7Ft1Ritu1fNVLzAeJ5LaAeFZVc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=wZSrHQYE"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=6L6AZB5R"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=5etyOAuz"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=XduGjj3x"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=XduGjj3x" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=u2aEBSTh"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=u2aEBSTh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=qDRJ0d4y"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=sp8OWjHR"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=5S6qXJo1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=5S6qXJo1" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/DQTc1t8zBw8" 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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/w3GF_514N3Q/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>Sun, 04 May 2008 22:58:00 PDT</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://3.bp.blogspot.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://3.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-8182223590017110875?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ajG4B265JM9H4hN6DsnBO110zXw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ajG4B265JM9H4hN6DsnBO110zXw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ajG4B265JM9H4hN6DsnBO110zXw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ajG4B265JM9H4hN6DsnBO110zXw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ystykyFu"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=RyqIgYdV"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=SeiXUDXA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=stQ4IOUl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=stQ4IOUl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=HfHolmK8"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=HfHolmK8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=9aFPLQt3"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kyt069Ad"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nzShQRaC"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=nzShQRaC" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/w3GF_514N3Q" 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://3.bp.blogspot.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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/Kt86n3CJgoM/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 04:59:00 PST</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://3.bp.blogspot.com/_b6Hez4oFqv0/R5H328EQBZI/AAAAAAAAAvk/FSXVXqHiT70/s1600-h/security.jpe"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-2323741857505466472?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sl1ckKCkE8Xa8pfbi8aFzHV7Cok/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sl1ckKCkE8Xa8pfbi8aFzHV7Cok/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sl1ckKCkE8Xa8pfbi8aFzHV7Cok/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sl1ckKCkE8Xa8pfbi8aFzHV7Cok/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nfvvlSW4"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=cWmp1AVT"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=lKzusu6e"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=R8Ixl6TU"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=R8Ixl6TU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=o6NvKQiU"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=o6NvKQiU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=2kAkzMhl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=4reUgzz1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Bq1hmOhS"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Bq1hmOhS" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/Kt86n3CJgoM" 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://3.bp.blogspot.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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/es2RkijAeEo/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>Tue, 25 Dec 2007 23:52:00 PST</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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-7627865599455736980?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vEgD1q0BaXlkftj6_Z0KiuKI4eU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vEgD1q0BaXlkftj6_Z0KiuKI4eU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vEgD1q0BaXlkftj6_Z0KiuKI4eU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vEgD1q0BaXlkftj6_Z0KiuKI4eU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=HY1D81Yf"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=uf8PrqYn"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Q6mDNx3j"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=iIjTguYr"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=iIjTguYr" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=iBcPXXvU"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=iBcPXXvU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=8h5WIC0d"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=TTKlc5EV"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=YGOrGtes"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=YGOrGtes" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/es2RkijAeEo" 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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/kDpW8iDER2c/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 18:14:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-8663244086899853162</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.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://4.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-8663244086899853162?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/scCqP7rtufLUEpbJGQLCF4zvaAk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/scCqP7rtufLUEpbJGQLCF4zvaAk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/scCqP7rtufLUEpbJGQLCF4zvaAk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/scCqP7rtufLUEpbJGQLCF4zvaAk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=SPZljfQa"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=fwnCwNkD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=rks7Gewg"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=io4XgGiu"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=io4XgGiu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=SuQ1ixN6"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=SuQ1ixN6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=wvmIiCys"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=tWtm51OJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=wz043q0W"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=wz043q0W" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/kDpW8iDER2c" 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://4.bp.blogspot.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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/2BUFRYBv2t4/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 05:00:00 PST</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://1.bp.blogspot.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://1.bp.blogspot.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://2.bp.blogspot.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://2.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-1169915120401881177?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/19ptAAAr24F7cKCBqedjDACKHBM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/19ptAAAr24F7cKCBqedjDACKHBM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/19ptAAAr24F7cKCBqedjDACKHBM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/19ptAAAr24F7cKCBqedjDACKHBM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=J8gShXcH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=b1DLd2bA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=lYKnA9Fi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=TfjoeGdP"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=TfjoeGdP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Npjfs2D5"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Npjfs2D5" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=FbqCKCBF"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nDnXY2Cw"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ZjCeSqym"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ZjCeSqym" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/2BUFRYBv2t4" 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://1.bp.blogspot.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><category domain="http://rss.financialcontent.com/stocksymbol">URL</category><category domain="http://rss.financialcontent.com/stocksymbol">TCP</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://feedproxy.google.com/~r/blogspot/GHpm/~3/2utCtwLi5CQ/blog-and-site-makeover-what-do-you.html</link><category>Feedback</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 26 Nov 2007 18:32:00 PST</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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-5285788376547904969?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f6skDycZ_sY502bKFu6YEBIglzI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f6skDycZ_sY502bKFu6YEBIglzI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f6skDycZ_sY502bKFu6YEBIglzI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f6skDycZ_sY502bKFu6YEBIglzI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=FEs2NIie"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=omNFI3md"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=j8uuVMwA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Dyiaa6nH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Dyiaa6nH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=gyFff2yV"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=gyFff2yV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=zuL3ZNl3"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=j1T480yL"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=1BaiecOA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=1BaiecOA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/2utCtwLi5CQ" 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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/zRuF9LpZ70A/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 04:01:00 PST</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://4.bp.blogspot.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://4.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-3950905744441806051?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O7X24bO6WzNgqvtgDlgiqeAq6Y0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O7X24bO6WzNgqvtgDlgiqeAq6Y0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O7X24bO6WzNgqvtgDlgiqeAq6Y0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O7X24bO6WzNgqvtgDlgiqeAq6Y0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=VJsdEPsb"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0bDa7vAj"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ZW9yuWdX"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=FwSgCFuq"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=FwSgCFuq" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=QNqRxSb2"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=QNqRxSb2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=YhZXkU0b"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=01UOdRc8"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=13xeHBTk"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=13xeHBTk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/zRuF9LpZ70A" 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://4.bp.blogspot.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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/5Nfmgi1hSZc/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 16:12:00 PDT</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://3.bp.blogspot.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://3.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-2829385417828215227?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qZBpimpDVZYwTVbaze1Lvx_lqE8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qZBpimpDVZYwTVbaze1Lvx_lqE8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qZBpimpDVZYwTVbaze1Lvx_lqE8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qZBpimpDVZYwTVbaze1Lvx_lqE8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=W2EKDSsS"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ERIonInL"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=zr02lHjU"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=iD7enCK1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=iD7enCK1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=QrYFX6EV"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=QrYFX6EV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=5GJFaix4"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=alVWAiAT"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Ql1kFZmX"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Ql1kFZmX" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/5Nfmgi1hSZc" 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://3.bp.blogspot.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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/4ICtbK_9AHc/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 03:29:00 PDT</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://1.bp.blogspot.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://1.bp.blogspot.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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-7097349829001228717?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yMJpnhLLC6I5aF5aBJWQv5jxcOU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yMJpnhLLC6I5aF5aBJWQv5jxcOU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yMJpnhLLC6I5aF5aBJWQv5jxcOU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yMJpnhLLC6I5aF5aBJWQv5jxcOU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=dnaZb3oC"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=UYCo5iwl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=3L0SxPda"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ogVz2QJ4"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ogVz2QJ4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=tXRmOY82"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=tXRmOY82" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=DtuctTIT"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=O9xeq1dM"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0lOFQ1QJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=0lOFQ1QJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/4ICtbK_9AHc" 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://1.bp.blogspot.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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/2Spkx5lrOzc/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 06:50:00 PDT</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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-37011109103338544?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4zYeSnu7QOZQOfl3UCrGJ3l5KVo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4zYeSnu7QOZQOfl3UCrGJ3l5KVo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4zYeSnu7QOZQOfl3UCrGJ3l5KVo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4zYeSnu7QOZQOfl3UCrGJ3l5KVo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=w8S5ny7I"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=6WFIEw6e"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=BPZ1dHOP"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=jNL383Vv"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=jNL383Vv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=WH7T6Hrm"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=WH7T6Hrm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=f5IciFos"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0kGRKwTf"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=y6FFAwmr"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=y6FFAwmr" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/2Spkx5lrOzc" 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><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://feedproxy.google.com/~r/blogspot/GHpm/~3/jccrakRvi_E/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 06:10:00 PDT</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 components.  It is best to deliver the “SOA legos” and ecosystem in an iterative manner.&lt;br /&gt;&lt;br /&gt;Tomorrow : Projects&lt;br /&gt;&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/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/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/java-what-is-difference-between-thread.html"&gt;Java - what is the difference between thread and interrupt&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-5948313744181822333?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yQ9p9qOtcTczwKbSWGD7lepWxHA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yQ9p9qOtcTczwKbSWGD7lepWxHA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yQ9p9qOtcTczwKbSWGD7lepWxHA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yQ9p9qOtcTczwKbSWGD7lepWxHA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=bwVuawEm"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=LlyxvLDL"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=zYg0cqy1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=cvDrlLoh"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=cvDrlLoh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=EAfwaFgN"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=EAfwaFgN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kdhyqxcY"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=LNH9UuiJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0XV7161Q"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=0XV7161Q" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/jccrakRvi_E" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-26T06:32:36.970-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">BAM</category><category domain="http://rss.financialcontent.com/stocksymbol">API</category><category domain="http://rss.financialcontent.com/stocksymbol">ESB</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/what-is-service-oriented-architecture_26.html</feedburner:origLink></item><item><title>What is Service Oriented Architecture or SOA -2</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/fp3eDHgGlXc/what-is-service-oriented-architecture.html</link><category>Technology</category><category>SOA</category><category>Platform</category><category>J2EE</category><category>Service</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Thu, 25 Oct 2007 05:38:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-8631891562316979660</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-orieneted-architecture.html"&gt;What is Service Oriented Architecture or  SOA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Effective Planning :&lt;br /&gt;&lt;/span&gt;As organizations begin to plan for their SOA journey, they must strike a balance between the technical and non-technical elements.  SOA requires the IT organizations and the business to operate in new and ever changing manners.  A framework is needed that addresses each of the above practices. The Service-Oriented Architecture Framework (SOAF) is comprised of jurisdictions, each with equal focus, which speak to the practices.  The jurisdictions are interrelated and interdependent.  The success of an enterprise SOA journey is dependent upon applying equal focus to each of the jurisdictions of concern.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business Approach&lt;/li&gt;&lt;li&gt;Business Value&lt;/li&gt;&lt;li&gt;Architecture&lt;/li&gt;&lt;li&gt;SOA Legos&lt;/li&gt;&lt;li&gt;Projects&lt;/li&gt;&lt;li&gt;Relationships and Outcome Management&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The explosion of these stream will begin by addressing three of these jurisdictions specifically business approach, business value, and architecture. &lt;br /&gt;&lt;br /&gt;One of the goals of SOA is to provide better alignment between business processes and the IT functions that delivery those processes.  This mapping enables process, and ultimately enterprise, improvement long term.  In order to perform this mapping one must 1) Examine current enterprise processes and identify the required support functionality, 2) Cultivate functionality from existing systems and assets, give birth to new functionality where required, and guarantee that all services provide clear service-level agreements (SLAs) and 3) Exploit the enterprise services by orchestrating services into processes, measure the alignment to the enterprise strategy, and recognize maturity opportunities.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Business Value :&lt;/span&gt;&lt;br /&gt;Providing the business case for an SOA journey is unlike defending traditional software projects.  This is due to the realization of SOA benefits on an enterprise-wide scale. SOA provides opportunities for increased value that are excessively higher than those of traditional software efforts.  This is accomplished through the optimization of business processes utilizing shared services.  Innovation through SOA is a key differentiator in building a business case.&lt;br /&gt;It is important to prioritize the development of services so that the SOA exhibits ROI from the start.  The “on-ramping” cost can largely be immersed into existing budgets.  The business case must account for these initial “on-ramping” costs yield benefits that accumulate and accelerate in the long term.&lt;br /&gt;Initial SOA investment impact can be reduced by methodically selecting the appropriate capabilities to spearhead the SOA journey.  Reuse of assets and capabilities will ensure lower on-ramp cost for new application.  The IT funding model will change over time due to increased ROI.  Traditional IT investment continues to increase as over time and as the number of capabilities increases, which is drastically different from the funding mode l for an SOA delivery mechanism.  As the level of SOA adoption penetrates the enterprise and the level of reuse increase the investment level will begin to stabilize and increased at a predictable rate.&lt;br /&gt;Architecture&lt;br /&gt;Enterprises typically providing funding for and construct IT based upon each line of business.  A Reference Architecture (RA) is essential for an enterprise SOA.  This is a long term vision of evolution, two to three years, for the enterprise.  An enterprise should spend time and effort in defining architectural guiding principles and policies.  The guidelines must NOT be an endpoint unto themselves.&lt;br /&gt;The RA must be service-centric, standards based and enterprise focused.  Traditionally IT is obtained or developed as a response to the requirements of a particular domain within the enterprise and deployed for utilization by that domain.  Shared capability approaches stemming from code or component reuse have failed due to the project-by-project focus of development efforts.  Many times functionality is replicated through project-by-project development approaches due to the fact that each project addresses a specific set of requirements.   A service-centric approach to delivery IT requires a shift in the development and deployment mindset.  Capabilities are designed, developed, and delivered once for reuse at all levels within the enterprise.  This leads to the SOA promises of reduced cost, fast time-to-market, and agility in order to respond to changing requirements.&lt;br /&gt;and share information.  There have been previous attempts to provide standards-based component models, for example Common Object Request Broker Architecture (IT projects are typically delivered through the most expedient approach that will satisfy stakeholder requirements.  This often leads to the proliferation of technologies throughout the enterprise.  This leads to serious integration issues when the technologies have to interoperateCORBA) and Distributed Component Object Model (DCOM).  These types of models experienced failure due to the implementation technology required and supporting standards stalling in development.  XML (Extensible Markup Language), Web Services, and UDDI (Universal Description, Discovery and Integration) are the foundation for a standards-based SOA for supporting re-use.  The technology for supporting this approach is readily available and truly platform agnostic.&lt;br /&gt;As mentioned earlier traditionally IT has been delivered on a project-by-project basis within the individual lines of business of an enterprise, the response of many enterprises to this approach has been to institute enterprise architecture organizations.  These organizations were focused on technology selection for the enterprise and were not authorized to enforce other recommendations.  An enterprise SOA requires that organizations of this type be provided with the authority required for full lifecycle management of the SOA, a standards-based mechanism for defining, deploying, monitoring, and managing functionality at the appropriate granularity and visibility levels.  The required provisioning ecosystem must be constructed from service-centric enterprise architecture (EA) which contains the appropriately enforced governance principles and policies.&lt;br /&gt;&lt;br /&gt;Tomorrow : Requirements for a SOA Strategy&lt;br /&gt;&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/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/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/java-what-is-difference-between-thread.html"&gt;Java - what is the difference between thread and interrupt&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;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;/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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-8631891562316979660?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pwwdYtdP2wzncFN363XmySS2IVs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pwwdYtdP2wzncFN363XmySS2IVs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pwwdYtdP2wzncFN363XmySS2IVs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pwwdYtdP2wzncFN363XmySS2IVs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=CDLxAQbE"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kEUJVzqG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=1prfVI9a"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ZosQVVw0"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ZosQVVw0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=L3Q15BpN"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=L3Q15BpN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ieb0iNKj"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=QM6ChILk"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=lUEG04aB"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=lUEG04aB" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/fp3eDHgGlXc" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-25T05:46:52.840-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">SOAF</category><category domain="http://rss.financialcontent.com/stocksymbol">EA</category><category domain="http://rss.financialcontent.com/stocksymbol">RA</category><category domain="http://rss.financialcontent.com/stocksymbol">DCOM</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/what-is-service-oriented-architecture.html</feedburner:origLink></item><item><title>What is Service Oriented Architecture or  SOA  -1</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/S3QagxbVgN8/what-is-service-orieneted-architecture.html</link><category>SOA</category><category>Service</category><category>Planning</category><category>Enterprise</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Wed, 24 Oct 2007 04:54:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-2272883413014547681</guid><description>&lt;span style="font-weight: bold;"&gt;Overview :&lt;/span&gt;&lt;br /&gt;Service-Oriented Architecture (SOA) enables organizations to realize business and technology advantages by combining business process innovation, effective governance, and a service-centric technology approach.&lt;br /&gt;SOA is a long term strategy that requires perpetual focus on transforming the IT (Information Technology) delivery mechanism, but it must also answer immediate business initiatives.  The promises of SOA can only be realized by maintaining a balance between long-term enterprise goals and immediate, short-term, business requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOA: A Mindshift&lt;/span&gt;&lt;br /&gt;In order to conquer the complex issues that IT faces in delivering solutions that provide success to the organization, a mind shift is required.  SOA offers a mechanism to facilitate that change for both developers and architects.  There are a few questions that organizations must consider:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What preparation is required for such a fundamental change?&lt;/li&gt;&lt;li&gt;What is required for such a migration?&lt;/li&gt;&lt;li&gt;How can an organization ensure that the migration is performed in the most cost-effective and impacts the organization the least?&lt;/li&gt;&lt;/ol&gt;SOA is more about a manner of thinking than about a technology.  It is a reformation of the infrastructure supporting IT delivery and is a &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b6Hez4oFqv0/Rx82nlJ6XzI/AAAAAAAAAlo/ywa2zTOHlwE/s1600-h/silo.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_b6Hez4oFqv0/Rx82nlJ6XzI/AAAAAAAAAlo/ywa2zTOHlwE/s400/silo.gif" alt="" id="BLOGGER_PHOTO_ID_5124874954587397938" border="0" /&gt;&lt;/a&gt;representation of the cultural and behavioral changes in how organizations employ technology and the internal organizations interrelate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOA Definition:&lt;/span&gt;&lt;br /&gt;The OASIS Reference Model for Service-Oriented Architecture (SOA RM) defines SOA as “a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.  It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.”&lt;br /&gt;By organizing around distributed capabilities rather than applications, SOA provides key benefits:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Improved business and IT productivity, agility and speed&lt;/li&gt;&lt;li&gt;Improved Time-To-Market schedules with increased alignment to the objectives of the organization&lt;/li&gt;&lt;li&gt;Improved respond to change and delivery of optimal experience&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Realizing SOA :&lt;/span&gt;&lt;br /&gt;Many organizations have a difficulty on deciding where to begin the SOA journey.  A prescription is needed to assist organizations in beginning an SOA journey.&lt;br /&gt;&lt;br /&gt;1. Strategically focused, tactically implemented: Begin the journey by identifying a core process that spans multiple business organizations and realize that process with simple, agnostic services.&lt;br /&gt;2. Top-down, bottom-up, middle-out analysis:  Identify the services required to support the process, identify functionality in existing systems that can be exposed as services.  The analysis must be goal driven and the goals most align with the strategic goals or the organization.&lt;br /&gt;3. Consider core services:  Identify any common, core, services and supporting functionality.&lt;br /&gt;4. Travel slowly:  Once an organization has successfully deployed initial projects, future technically challenging efforts can travel in parallel.&lt;br /&gt;5. Construct an Enterprise Catalog:   Once more and more projects are developed utilizing this new paradigm called SOA, begin to harvest and reuse services.  This will begin to reduce cost over time.&lt;br /&gt;6. Spotlight benefits:  Undertake projects and efforts in an iterative fashion based upon, partially, the expected return on investment and/or assets (ROI).&lt;br /&gt;&lt;br /&gt;Tomorrow : Effective Planning&lt;br /&gt;&lt;span style="font-size:85%;"&gt;NB : Image sourced from &lt;a href="http://dev2dev.bea.com/pub/a/2005/11/planning-for-soa.html"&gt;bea dev2dev site&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&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/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/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/java-what-is-difference-between-thread.html"&gt;Java - what is the difference between thread and interrupt&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-2272883413014547681?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XQmL4UJ2S4pTfyUuD3rQTjnkWAA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XQmL4UJ2S4pTfyUuD3rQTjnkWAA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XQmL4UJ2S4pTfyUuD3rQTjnkWAA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XQmL4UJ2S4pTfyUuD3rQTjnkWAA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=qPCxT3xV"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=94nHzE0a"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=HJy1qIwK"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=yN9TM1M3"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=yN9TM1M3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Z77YD7T1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Z77YD7T1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=KKXqkUfD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=x9YJ1EiD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=VDRXzlLi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=VDRXzlLi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/S3QagxbVgN8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-24T05:48:10.668-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_b6Hez4oFqv0/Rx82nlJ6XzI/AAAAAAAAAlo/ywa2zTOHlwE/s72-c/silo.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">SOA</category><category domain="http://rss.financialcontent.com/stocksymbol">ROI</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/what-is-service-orieneted-architecture.html</feedburner:origLink></item><item><title>Java J2EE Interview Questions - 6</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/26Wm14MAEfw/java-j2ee-interview-questions-6.html</link><category>Technology</category><category>Java</category><category>Interview</category><category>Jbc</category><category>J2EE</category><category>Questions</category><category>Database</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Tue, 16 Oct 2007 05:58:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-1378656481368093177</guid><description>Continuing our Java/J2EE/JEE  interview questions and answers series, today's questions are:&lt;br /&gt;&lt;br /&gt;Q How do you call a &lt;a type="amzn" search="Oracle" category="books"&gt;Stored Procedure&lt;/a&gt; from JDBC?&lt;br /&gt;&lt;br /&gt;The first step is to create a CallableStatement object. As with Statement and PreparedStatement objects, this is done with an open Connection object. A CallableStatement object contains a call to a stored procedure.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;CallableStatement cs =&lt;br /&gt;con.prepareCall("{call SHOW_SUPPLIERS}");&lt;br /&gt;ResultSet rs = cs.executeQuery();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Q Is the JDBC-ODBC Bridge multi-threaded? –&lt;br /&gt;&lt;br /&gt;No. The JDBC-ODBC Bridge does not support concurrent access from different threads. The JDBC-ODBC Bridge uses synchronized methods to serialize all of the calls that it makes to ODBC. Multi-threaded Java programs may use the Bridge, but they won’t get the advantages of multi-threading.&lt;br /&gt;&lt;br /&gt;Q Does the JDBC-ODBC Bridge support multiple concurrent open statements per connection?&lt;br /&gt;&lt;br /&gt;No. You can open only one Statement object per connection when you are using the JDBC-ODBC Bridge.&lt;br /&gt;&lt;br /&gt;Q. What is cold backup, hot backup, warm backup recovery?&lt;br /&gt;&lt;br /&gt;Cold backup - means all the files must be backed up at the same time, before the database is restarted.&lt;br /&gt;Hot backup called online backup and  is a backup taken of each tablespace while the database is running and is being accessed by the users.&lt;br /&gt;&lt;br /&gt;When we will Denormalize data?&lt;br /&gt;&lt;br /&gt;Data denormalization is reverse procedure, carried out purely for reasons of improving performance. It maybe efficient for a high-throughput system to replicate data for certain data.&lt;br /&gt;&lt;br /&gt;Q. What is the advantage of using PreparedStatement?&lt;br /&gt;&lt;br /&gt;If we are using PreparedStatement the execution time will be less. The PreparedStatement object contains not just an SQL statement, but the SQL statement that has been precompiled. This means that when the PreparedStatement is executed,the RDBMS can just run the PreparedStatement’s Sql statement without having to compile it first.&lt;br /&gt;&lt;br /&gt;Q What is a &lt;span style="font-weight: bold;"&gt;dirty read&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;Quite often in database processing, we come across the situation wherein one transaction can change a value, and a second transaction can read this value before the original change has been committed or rolled back. This is known as a dirty read scenario because there is always the possibility that the first transaction may rollback the change, resulting in the second transaction having read an invalid value. While you can easily command a database to disallow dirty reads, this usually degrades the performance of your application due to the increased locking overhead. Disallowing dirty reads also leads to decreased system concurrency.&lt;br /&gt;&lt;br /&gt;Q. What is Metadata and why should I use it?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Metadata is&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;data about data&lt;/span&gt;. This data is information about one of two things:&lt;br /&gt;Database information (java.sql.DatabaseMetaData), or Information about a specific ResultSet (java.sql.ResultSetMetaData). Use DatabaseMetaData to find information about your database, such as its capabilities and structure. Use ResultSetMetaData to find information about the results of an SQL query, such as size and types of columns&lt;br /&gt;&lt;br /&gt;Q. Different types of Transaction Isolation Levels?&lt;br /&gt;&lt;br /&gt;The isolation level describes the degree to which the data being updated is visible to other transactions. This is important when two transactions are trying to read the same row of a table. Imagine two transactions: A and B. Here three types of inconsistencies can occur:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dirty-read&lt;/span&gt;: A has changed a row, but has not committed the changes. B reads the uncommitted data but his view of the data may be wrong if A rolls back his changes and updates his own changes to the database.&lt;br /&gt;Non-repeatable read: B performs a read, but A modifies or deletes that data later. If B reads the same row again, he will get different data.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phantoms&lt;/span&gt;: A does a query on a set of rows to perform an operation. B modifies the table such that a query of A would have given a different result. The table may be inconsistent.&lt;br /&gt;&lt;br /&gt;TRANSACTION_READ_UNCOMMITTED : DIRTY READS, NON-REPEATABLE READ AND PHANTOMS CAN OCCUR.&lt;br /&gt;TRANSACTION_READ_COMMITTED : DIRTY READS ARE PREVENTED, NON-REPEATABLE READ AND PHANTOMS CAN OCCUR.&lt;br /&gt;TRANSACTION_REPEATABLE_READ : DIRTY READS , NON-REPEATABLE READ ARE PREVENTED AND PHANTOMS CAN OCCUR.&lt;br /&gt;TRANSACTION_SERIALIZABLE : DIRTY READS, NON-REPEATABLE READ AND PHANTOMS ARE PREVENTED.&lt;br /&gt;&lt;br /&gt;Q. What is two phase commit?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Two phase commit&lt;/span&gt; is an algorithm used to ensure the integrity of a committing transaction. In Phase 1, the transaction coordinator contacts potential participants in the transaction. The participants all agree to make the results of the transaction permanent but do not do so immediately. The participants log information to disk to ensure they can complete In phase 2 f all the participants agree to commit, the coordinator logs that agreement and the outcome is decided. The recording of this agreement in the log ends in Phase 2, the coordinator informs each participant of the decision, and they permanently update their resources.&lt;br /&gt;&lt;br /&gt;q. How do you handle your own transaction ?&lt;br /&gt;&lt;br /&gt;Connection Object has a method called setAutocommit(Boolean istrue) Default is true. Set the Parameter to false  and begin your transaction&lt;br /&gt;&lt;br /&gt;Q. What is the normal procedure followed by a java client to access the database?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The database connection is created in 3 steps:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Find a proper database URL&lt;br /&gt;Load the database driver&lt;br /&gt;Ask the Java DriverManager class to open a connection to your database&lt;br /&gt;In java these steps are carried out as shown below:&lt;br /&gt;&lt;br /&gt;Create a properly formatted JDBR URL for your database.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;A JDBC URL has the form&lt;br /&gt;jdbc:someSubProtocol://myDatabaseServer/theDatabaseName&lt;br /&gt;&lt;br /&gt;Class.forName(”my.database.driver”);&lt;br /&gt;&lt;br /&gt;Connection conn = DriverManager.getConnection(”a.JDBC.URL”, “databaseLogin”,”databasePassword”);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Q. What is a data source?&lt;br /&gt;&lt;br /&gt;A DataSource class brings another level of abstraction than directly using a connection object. Data source can be referenced by JNDI. Data Source may point to RDBMS, file System or others.&lt;br /&gt;&lt;br /&gt;Q. What are collection pools?&lt;br /&gt;&lt;br /&gt;A connection pool is a cache of database connections that is maintained in memory, so that the connections may be reused&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;/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/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/java-what-is-difference-between-thread.html"&gt;Java - what is the difference between thread and interrupt&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-1378656481368093177?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7mTEnQVZV37u1cfPxe_xSvQaocA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7mTEnQVZV37u1cfPxe_xSvQaocA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7mTEnQVZV37u1cfPxe_xSvQaocA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7mTEnQVZV37u1cfPxe_xSvQaocA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=sgFz6rl1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=QCy88aaN"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=XtSyW1Tt"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=9I9t99WA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=9I9t99WA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Ju2Ow3aQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Ju2Ow3aQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=NDHVw5cD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=sJHJqlBt"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=tfp34wdg"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=tfp34wdg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/26Wm14MAEfw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:44:35.714-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/java-j2ee-interview-questions-6.html</feedburner:origLink></item><item><title>Top 10 Projects at Sourceforge</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/j6I1-1hpIW8/top-10-projects-at-sourceforge.html</link><category>Technology</category><category>Development</category><category>OpenSource</category><category>Linux</category><category>Software</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 15 Oct 2007 05:03:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-3942514160010179521</guid><description>&lt;span style="font-weight: bold;"&gt;Background :&lt;/span&gt;&lt;a href="https://sourceforge.net/"&gt;SourceForge.net&lt;/a&gt; is a centralized location for software developers to control and manage open source software development, and acts as a &lt;a href="http://en.wikipedia.org/wiki/Source_code_repository" title="Source code repository"&gt;source code repository&lt;/a&gt;. SourceForge.net is operated by &lt;a href="http://en.wikipedia.org/wiki/Sourceforge%2C_Inc." title="Sourceforge, Inc."&gt;Sourceforge, Inc.&lt;/a&gt;  and runs a version of the &lt;a href="http://en.wikipedia.org/wiki/SourceForge" title="SourceForge"&gt;SourceForge&lt;/a&gt; software, &lt;a href="http://en.wikipedia.org/wiki/Fork_%28software_development%29" title="Fork (software development)"&gt;forked&lt;/a&gt; from the last open-source version available.&lt;br /&gt;&lt;p&gt;A large number of open source projects are hosted on the site (it had reached 155,585 projects and 1,658,777 registered users &lt;a href="http://en.wikipedia.org/wiki/As_of_2007" title="As of 2007"&gt;as of August 2007&lt;/a&gt;, although it does contain many dormant or single-user projects.&lt;/p&gt; &lt;p&gt;SourceForge.net has offered free access to hosting and tools for developers of &lt;a href="http://en.wikipedia.org/wiki/Free_software" title="Free software"&gt;free software&lt;/a&gt; / &lt;a href="http://en.wikipedia.org/wiki/Open_source_software" title="Open source software"&gt;open source software&lt;/a&gt; for several years, and has become well-known within such development communities for these services.&lt;/p&gt; &lt;p&gt;&lt;span style="font-weight: bold;"&gt;Competitors :&lt;/span&gt;&lt;br /&gt;SourceForge.net competes with other providers&lt;br /&gt;&lt;/p&gt;&lt;a href="http://en.wikipedia.org/wiki/BountySource" title="BountySource"&gt;BountySource&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/BerliOS" title="BerliOS"&gt;BerliOS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/CodePlex" title="CodePlex"&gt;CodePlex&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Google_Code" title="Google Code"&gt;Google Code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/GNU_Savannah" title="GNU Savannah"&gt;GNU Savannah&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RubyForge" title="RubyForge"&gt;RubyForge&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Tigris.org" title="Tigris.org"&gt;Tigris.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Top Projects :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are lots of great &lt;a type="amzn" search="Opensource" category="books"&gt;opensource&lt;/a&gt; project hosted which have revolutionized the total computing industry, especially collaborative software development. You will be surprised to know the top 10 projects at sourceforge.&lt;br /&gt;Following are the top 10 projects at sourceforge which demonstrates how some of the software applications are so popular:&lt;br /&gt;&lt;br /&gt;eMule  : is a filesharing client which is based on the eDonkey2000 network but offers more features than the standard client&lt;br /&gt;&lt;br /&gt;Azureus :                  Azureus is a powerful, full-featured, cross-platform bittorrent client.&lt;br /&gt;&lt;br /&gt;Ares Galaxy  : Filesharing-Bittorrent p2p client connected to TCP supernode/leaf network and UDP DHT network. Ares features a built-in directshow media player, a powerful library manager, shoutcast radio support and can be used to host p2p Chatrooms.&lt;br /&gt;&lt;br /&gt;BitTorrent :                  BitTorrent is a tool for distributed download.&lt;br /&gt;&lt;br /&gt;DC++ :                  Desktop video processing and capture application&lt;br /&gt;&lt;br /&gt;Shareaza   : Multi-network peer-to-peer ( p2p ) file-sharing client supporting Gnutella2, Gnutella, eDonkey2000 ( eMule ), HTTP, FTP and BitTorrent protocols. Using C++, MFC and ATL, for Windows.&lt;br /&gt;&lt;br /&gt;VirtualDub :                 Desktop video processing and capture application.&lt;br /&gt;&lt;br /&gt;GTK+ and The GIMP installers for Windows : Photo designing and editing software.&lt;br /&gt;&lt;br /&gt;CDex: CDex is a CD-Ripper, extracting digital audio data from an Audio CD. The application supports many Audio encoders, like MPEG (MP2,MP3), VQF, AAC encoders.&lt;br /&gt;&lt;br /&gt;7-Zip :  7-Zip is a file archiver with the high compression ratio. The program supports 7z, ZIP, CAB, RAR, ARJ, LZH, CHM, GZIP, BZIP2, Z, TAR, CPIO, RPM and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format.&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-3942514160010179521?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rFN7_9sXCpKRgU_wuAK4r2p9uTo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rFN7_9sXCpKRgU_wuAK4r2p9uTo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rFN7_9sXCpKRgU_wuAK4r2p9uTo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rFN7_9sXCpKRgU_wuAK4r2p9uTo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=jyMfrIIO"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=6nwpnpNl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=DG7PdNrm"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=WiBIc6LA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=WiBIc6LA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=pRloOuf0"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=pRloOuf0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=uvBleARC"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=JEhROqVx"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mloDWvN7"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=mloDWvN7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/j6I1-1hpIW8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-15T07:10:21.438-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/top-10-projects-at-sourceforge.html</feedburner:origLink></item><item><title>Secure Authentication in Web Based J2EE/JEE  Development</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/r7eUwGK8DUI/secure-authentication-in-web-based.html</link><category>Web</category><category>Application</category><category>Security</category><category>Java</category><category>Tips</category><category>J2EE</category><category>Http</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Thu, 11 Oct 2007 07:17:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-8926261370707312765</guid><description>Security is always a challenging exercise in enterprise applications. Securing Java or J2EE/JEE based applications can be done in various ways. As far as web applications are concerned there are four known authentication mechanisms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HTTP Basic Authentication :&lt;/span&gt;&lt;br /&gt;An authentication protocol defined within the HTTP protocol (and based on headers). It indicates the &lt;a type="amzn" search="Http" category="books"&gt;HTTP&lt;/a&gt; realm for which access is being negotiated and sends passwords with base64 encoding, which cab cracked easily, hence not very secure. For further details refer RFC2068.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HTTP Digest Authentication :&lt;/span&gt;&lt;br /&gt;Like HTTP Basic Authentication, but with the password transmitted in an encrypted form. It is more secure than Basic, but less then HTTPS Authentication which uses private keys. Yet it is not currently in widespread use.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_blank" href="http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Security5.html"&gt;&lt;br /&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_b6Hez4oFqv0/Rw488jz8NPI/AAAAAAAAAkw/HQ7vionlIT4/s400/security-sslBasedMutualAuthenticationWithCertificates.gif" alt="Seurity, Secure, Authentication, J2EE, Development, HTTP" id="BLOGGER_PHOTO_ID_5120096837469746418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HTTPS Authentication : &lt;/span&gt;&lt;br /&gt;It also known as SSL Mutual authentication. This security mechanism provides end user authentication using HTTPS (HTTP over SSL - Secure Socket Layer). It performs mutual (which means - client and server) certificate based authentication with a set of different cipher suites.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Form Based Authentication or Login :&lt;/span&gt; A standard HTML form (generated via Servlet/JSP, script or a static) for logging in. It can be associated with protection or user domains and is used to authenticate previously unauthenticated users. The major advantage of form based authentication is,  that the look and feel of the login screen can be controlled in comparison to the HTTP browser's built in mechanisms.&lt;br /&gt;&lt;br /&gt;According to J2EE Specifications,  Basic, HTTPS and Form based are mandatory requirement for any J2EE compliant application server (web container here). HTTP Digest Authentication is not a requirement, but web containers are encouraged to support it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt; Tomcat web container - is the reference implementation of the Java Servlet API and provides these discussed methods.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;NB : Image sourced from &lt;a href="http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Security5.html"&gt;Sun J2EE Tutorial - Security&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&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/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/09/how-agile-development-is-being.html"&gt;How  Agile development is being perceived&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/linux-networking-tutorial.html"&gt;Linux Networking Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/best-computer-books.html"&gt;Best Computer Book&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/java-what-is-difference-between-thread.html"&gt;Java - what is the difference between thread and interrupt&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/j2ee-interview-questions-5.html"&gt;J2EE Interview Questions - 5&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-8926261370707312765?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hwkZQw9oSXhhxevFDYQyMev557Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hwkZQw9oSXhhxevFDYQyMev557Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hwkZQw9oSXhhxevFDYQyMev557Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hwkZQw9oSXhhxevFDYQyMev557Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=WVlLosh7"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=gPyte2YI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=VM5B7Bj1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=PJdVVSLa"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=PJdVVSLa" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=C5FxyvOL"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=C5FxyvOL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=s7LFb9lB"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=hdux6PcX"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Y1ExH8vt"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Y1ExH8vt" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/r7eUwGK8DUI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:45:22.332-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_b6Hez4oFqv0/Rw488jz8NPI/AAAAAAAAAkw/HQ7vionlIT4/s72-c/security-sslBasedMutualAuthenticationWithCertificates.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/secure-authentication-in-web-based.html</feedburner:origLink></item><item><title>J2EE Interview Questions - 5</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/HXC0X035fIw/j2ee-interview-questions-5.html</link><category>EJB</category><category>JMS</category><category>Java</category><category>Interview</category><category>J2EE</category><category>Questions</category><category>Jboss</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Tue, 09 Oct 2007 06:00:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-3633263376013410161</guid><description>Continuing our Java/J2EE/JEE interview questions and answers series,  today's questions are:&lt;br /&gt;&lt;br /&gt;Q. Why an onMessage call in Message-driven bean is always a seperate transaction?&lt;br /&gt;A. EJB 2.0 specification says: "An onMessage call is always a separate transaction, because there is never a transaction in progress when the method is called." When a message arrives, it is passed to the Message Driven Bean through the onMessage() method, that is where the business logic goes.Since there is no guarantee when the method is called and when the message will be processed, is the container that is responsible of managing the environment, including transactions.&lt;br /&gt;&lt;br /&gt;Q. Why are ejbActivate() and ejbPassivate() included for stateless session bean even though they are never required as it is a non conversational bean?&lt;br /&gt;A. To have a consistent interface, so that there is no different interface that you need to implement for Stateful Session Bean and Stateless Session Bean.Both Stateless and Stateful Session Bean implement javax.ejb.SessionBean and this would not be possible if stateless session bean is to remove ejbActivate and ejbPassivate from the interface.&lt;br /&gt;Static variables in EJB should not be relied upon as they may break in clusters.Why?&lt;br /&gt;Static variables are only ok if they are final. If they are not final, they will break the cluster. What that means is that if you cluster your application server (spread it across several machines) each part of the cluster will run in its own JVM.&lt;br /&gt;Say a method on the EJB is invoked on cluster 1 (we will have two clusters - 1 and 2) that causes value of the static variable to be increased to 101. On the subsequent call to the same EJB from the same client, a cluster 2 may be invoked to handle the request. A value of the static variable in cluster 2 is still 100 because it was not increased yet and therefore your application ceases to be consistent. Therefore, static non-final variables are strongly discouraged in EJBs.&lt;br /&gt;&lt;br /&gt;Q. If I throw a custom ApplicationException from a business method in Entity bean which is participating in a transaction, would the transaction be rolled back by container?&lt;br /&gt;A. EJB Transaction is automatically rolled back only when a SystemException (or a subtype of it) is thrown. Your ApplicationExceptions can extend from javax.ejb.EJBException, which is a sub class of RuntimeException. When a EJBException is encountered the container rolls back the transaction. EJB Specification does not mention anything about Application exceptions being sub-classes of EJBException.You can tell the container to rollback the transaction, by using setRollBackOnly on SessionContext/EJBContext object as per type of bean you are using.&lt;br /&gt;&lt;br /&gt;Q. Does Stateful Session bean support instance pooling?&lt;br /&gt;A. Stateful Session Bean conceptually doesn't have instance pooling.&lt;br /&gt;&lt;br /&gt;Q. Can I map more than one table in a CMP?&lt;br /&gt;A. No, you cannot map more than one table to a single CMP Entity Bean. CMP has been, in fact, designed to map a single table.&lt;br /&gt;&lt;br /&gt;Q. Can a Session Bean be defined without ejbCreate() method?&lt;br /&gt;A. The ejbCreate() methods is part of the bean's lifecycle, so, the compiler will not return an error because there is no ejbCreate() method. However, the J2EE spec is explicit, the home interface of a Stateless Session Bean must have a single create() method with no arguments, while the session bean class must contain exactly one ejbCreate() method, also without arguments. Stateful Session Beans can have arguments (more than one create method)&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;/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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-3633263376013410161?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/65QKvwCZDW0wjuhd0WKiU04hzrk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/65QKvwCZDW0wjuhd0WKiU04hzrk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/65QKvwCZDW0wjuhd0WKiU04hzrk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/65QKvwCZDW0wjuhd0WKiU04hzrk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=E7Gw2eLd"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=8xmSCrI9"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=p10NslzI"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=X6wAf4rx"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=X6wAf4rx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=iPZMA5R3"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=iPZMA5R3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Un4aua4l"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=2Pgpojjl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=kbPoJwaG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=kbPoJwaG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/HXC0X035fIw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:44:35.715-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/j2ee-interview-questions-5.html</feedburner:origLink></item><item><title>Opensource Cache/Caching Solutions in Java</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/9SojceM0hXo/open-source-cachecaching-solutions-in.html</link><category>Technology</category><category>Java</category><category>OpenSource</category><category>J2EE</category><category>Caching</category><category>Jboss</category><category>Enterprise</category><category>Solutions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 08 Oct 2007 20:33:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-4729626652237869404</guid><description>&lt;span style="font-weight: bold;"&gt;Background:&lt;/span&gt;&lt;br /&gt;In &lt;a href="http://en.wikipedia.org/wiki/Computer_science" title="Computer science"&gt;computer science&lt;/a&gt;, a &lt;b&gt;cache&lt;/b&gt; &lt;span title="Pronunciation in IPA" class="IPA"&gt;&lt;/span&gt;is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data is expensive to fetch (due to slow &lt;a href="http://en.wikipedia.org/wiki/Access_time" title="Access time"&gt;access time&lt;/a&gt;) or to compute, relative to the cost of reading the cache. In other words, a cache is a temporary storage area where frequently accessed data can be stored for rapid access. Once the data is stored in the cache, future use can be made by accessing the cached copy rather than re-fetching or recomputing the original data, so that the average access time is lower. Cache, therefore, helps expedites data access otherwise the CPU would need to fetch from main memory. Cache have proven to be extremely effective in many areas of computing because access patterns in typical &lt;a href="http://en.wikipedia.org/wiki/Application_software" title="Application software"&gt;computer applications&lt;/a&gt; have &lt;a href="http://en.wikipedia.org/wiki/Locality_of_reference" title="Locality of reference"&gt;locality of reference&lt;/a&gt;. &lt;span class="link-external"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Purpose :&lt;/span&gt;&lt;br /&gt;The main purpose of the caching service is to improve server performance by managing static and non static data members. The performance gain is from reducing the number of trips to the database or other external sources of information, avoiding the cost of repeatedly recreating data (objects in java), sharing data between threads in a process and, when possible between processes, and efficient use of process resources.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Advantages: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In a multi-tiered (n-tier) application, data access is an expensive operation, compared to any other task. By keeping the frequently accessed data around and not releasing it after the first use, we can avoid the cost and time required for the reacquisition and release of the data. This results in greatly improved performance, since we won't be hitting the database every time we need the data.&lt;/li&gt;&lt;li&gt;Scalability is another reason of using. Since cached data is accessed across multiple tiers, sessions, components, caching can become a big part of a scalable application design.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Disadvantages:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Synchronization complexity: Depending on the kind of data, complexity increases, because consistency between the state of the cached data and the original data in the data source needs to be ensured. Otherwise, the cached data can get out of sync with the actual data, which will lead to data inaccuracies.&lt;/li&gt;&lt;li&gt;Durability: Changes to the cached data can be lost when the server crashes. This problem can be avoided if a synchronized cache is used. &lt;/li&gt;&lt;li&gt;Memory size: JVM memory size can get unacceptably huge if there is lot of unused data in the cache and the data is not released from memory at regular intervals.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opensource Caching solutions in Java:&lt;/span&gt;&lt;br /&gt;There are lots of caching solution in Java, free and non free. This is a list of opensource caching solutions available in Java/J2EE/JEE domain for software development or developing enterprise applications.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b6Hez4oFqv0/Rwsn9sO9zkI/AAAAAAAAAkI/zefo39vir80/s1600-h/caching.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_b6Hez4oFqv0/Rwsn9sO9zkI/AAAAAAAAAkI/zefo39vir80/s400/caching.jpg" alt="Java, Cache, Hibernate, Jboss, J2EE, Software, Caching, opensource" id="BLOGGER_PHOTO_ID_5119229342236134978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="link-external"&gt;&lt;a href="http://bamboo-dht.org/"&gt;Bamboo DHT&lt;/a&gt;&lt;/span&gt; - is a distributed hash table, or DHT, is a building block for peer-to-peer applications. At the most basic level, it allows a group of distributed hosts to collectively manage a mapping from keys to data values, without any fixed hierarchy, and with very little human assistance. This building block can then be used to ease the implementation of a diverse variety of peer-to-peer applications such as file sharing services, DNS replacements, web caches, etc.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/cache4j"&gt;cache4j&lt;/a&gt; - is a cache for Java objects with a simple API and fast implementation. It features in-memory caching, a design for a multi-threaded environment, both synchronized and blocking implementations, a choice of eviction algorithms (LFU, LRU, FIFO), and the choice of either hard or soft references for object storage.&lt;br /&gt;&lt;br /&gt;&lt;span class="link-external"&gt;&lt;a href="http://freepastry.rice.edu/"&gt;FreePastry&lt;/a&gt;&lt;/span&gt; - is a modular, open source implementation of the Pastry p2p routing and location substrate. Pastry is a generic, scalable and efficient substrate for peer-to-peer applications. Pastry nodes form a decentralized, self-organizing and fault-tolerant overlay network within the Internet. Pastry provides efficient request routing, deterministic object location, and load balancing in an application-independent manner. Furthermore, Pastry provides mechanisms that support and facilitate application-specific object replication, caching, and fault recovery. The proponents of Pastry work for Microsoft, however they've made an excellent choice sticking with Java.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/ehcache"&gt;EHCache&lt;/a&gt; - is a pure Java, in-process cache. It started as a replacement for JCS. EHCache is faster than JCS. It has following features: Fast,Simple, pluggable cache for Hibernate, small foot print, minimal dependencies, fully documented and production tested.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/java-caching-system"&gt;Java Caching System (JCS)&lt;/a&gt; - is a distributed caching system written in java for server-side java applications. It is intended to speed up dynamic web applications by providing a means to manage cached data of various dynamic natures. Like any caching system, the JCS is most useful for high read, low put applications. Dynamic content and reporting systems can benefit most. However, any site that repeatedly constructs pages, drop downs, or common search results form a database that is updated at intervals (rather than across categories continuously) can improve performance and scalability by implementing caching. Latency times drop sharply and bottlenecks move away from the database in an effectively cached system.&lt;br /&gt;It provides several important features, necessary for any Enterprise level caching system, features include Memory management, disk overflow, element grouping, quick nested categorical removal, data expiration, extensible framework, fully configurable run time parameters, remote synchronization, remote store recovery, non-blocking "zombie" pattern, optional lateral distribution of elements, remote server clustering and failover. These features provide a framework with no point of failure, allowing for full session failover including session data across up to 256 servers.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/jbosscache"&gt;JBoss Cache&lt;/a&gt; - is a product designed to cache frequently accessed Java objects in order to dramatically improve the performance of e-business applications. By eliminating unnecessary database access, JBoss Cache decreases network traffic and increases the scalability of applications. But JBoss Cache is much more than a simple cache. JBoss Cache provides fully transactional features as well as a highly configurable set of options to deal with concurrent data access in the most efficient manner possible for your application. In addition, it is a clustered cache that replicates contents to other cache instances running on separate JVMs, servers or even entire networks, making JBoss Cache a highly efficient library used by application server developers to implement clustering features.&lt;br /&gt;JBossCache consists of two modules&lt;br /&gt;TreeCache - a replicated transactional tree-structured cache .&lt;br /&gt;TreeCacheAop a subclass of TreeCache using AOP to dynamically replicate Plain Old Java Objects - POJO.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java-source.net/open-source/cache-solutions/jcache"&gt;JCache&lt;/a&gt; - is an effort to make an Open Source version of JSR-107 JCache. Since the JSR-107 hasn't released any specs for years, This version still builds on the original functional specification. It is implemented by some  geeks at ThoughtWorks.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/jofti"&gt;Jofti&lt;/a&gt; - is a simple to use, high-performance object indexing and searching solution for Objects in a Caching layer or storage structure that supports the Map interface. The framework supports EHCache, JBossCache and OSCache and provides for transparent addition, removal and updating of objects in its index as well as simple to use query capabilities for searching. Features include type aware searching, configurable object property indexing, indexing/searching by interfaces as well as support for Dynamic Proxies, primitive attributes, Collections and Arrays&lt;br /&gt;&lt;br /&gt;&lt;span class="link-external"&gt;&lt;a href="http://www.oceanstore.org/"&gt;OceanStore&lt;/a&gt;&lt;/span&gt; - is a global persistent data store designed to scale to billions of users. It provides a consistent, highly-available, and durable storage utility atop an infrastructure comprised of untrusted servers. OceanStore caches data promiscuously; any server may create a local replica of any data object. These local replicas provide faster access and robustness to network partitions. They also reduce network congestion by localizing access traffic. Pond, the OceanStore prototype, is currently available for download.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/open-terracotta"&gt;Open Terracotta&lt;/a&gt; - is Open Source Clustering for Java. Features: HTTP Session Replication, Distributed Cache, POJO Clustering, Application Coordination across cluster's JVM's (made using code injection, so you don't need to modify your code)&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/oscache"&gt;OSCache&lt;/a&gt; - is a caching solution that includes a JSP tag library and set of classes to perform fine grained dynamic caching of JSP content, servlet responses or arbitrary objects. It provides both in memory and persistent on disk caches, and can allow your site to have graceful error tolerance (eg if an error occurs like your db goes down, you can serve the cached content so people can still surf the site almost without knowing). Take a look at the great &lt;a href="http://www.opensymphony.com/oscache/wiki/Feature%20List.html"&gt;features&lt;/a&gt; of OSCache.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/shiftone"&gt;ShiftOne&lt;/a&gt; - is a Java Object Cache library that implements several strict object caching policies, as well as a light framework for configuring cache behavior. It's strict in the sense that each cache enforces two limits in a very strict and predictable way.&lt;a name="What does it mean that the caches are strict?"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/swarmcache"&gt;SwarmCache&lt;/a&gt; - is a simple but effective distributed cache. It uses IP multicast to efficiently communicate with any number of hosts on a LAN. It is specifically designed for use by clustered, database-driven web applications. Such applications typically have many more read operations than write operations, which allows SwarmCache to deliver the greatest performance gains. SwarmCache uses JavaGroups internally to manage the membership and communications of its distributed cache. Wrappers have been written that allow SwarmCache to be used with the &lt;a href="http://hibernate.org/"&gt;Hibernate&lt;/a&gt; and &lt;a href="http://www.jpox.org/"&gt;JPOX&lt;/a&gt; persistence engines.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java-source.net/open-source/cache-solutions/whirlycache"&gt;WhirlyCache&lt;/a&gt; -  is a fast, configurable in-memory object cache for Java. It can be used, for example, to speed up a website or an application by caching objects that would otherwise have to be created by querying a database or by another expensive procedure&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;NB: Image sourced from &lt;b&gt;&lt;a href="http://blogs.oracle.com/schan/newsItems/departments/monitoringSystemHealth/2007/09/21" target="_top"&gt;blogs.oracle.com/.&lt;wbr&gt;../2007/09/21&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;Other useful tips on Java, JEE/J2EE&lt;br /&gt;                         &lt;ul class="posts"&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/search/label/Questions"&gt;Java  J2EE Interview Question Collection&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/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.sharmavishal.com/2007/10/creating-dynamic-pdf-documents-in-java.html" rel="bookmark" title="Permanent Link to Creating PDF Documents Dynamically in J2EE, Java Applications"&gt;Creating PDF Documents Dynamically in J2EE, Java Applications&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://www.tusc.com.au/tutorial/html/index.html"&gt;Online Book on J2EE using JBoss and Eclipse&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-4729626652237869404?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D7fBeXorz5OIoK0A2f_l6l6iCzU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D7fBeXorz5OIoK0A2f_l6l6iCzU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D7fBeXorz5OIoK0A2f_l6l6iCzU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D7fBeXorz5OIoK0A2f_l6l6iCzU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mmqujOFG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=oKfT9uR6"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=6doae2uy"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=bBu7AR0h"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=bBu7AR0h" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=WHn7MK69"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=WHn7MK69" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=7NV31inh"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=yaK47acK"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=BAvNurjm"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=BAvNurjm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/9SojceM0hXo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-12-17T18:41:52.888-08:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_b6Hez4oFqv0/Rwsn9sO9zkI/AAAAAAAAAkI/zefo39vir80/s72-c/caching.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">JCS</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/open-source-cachecaching-solutions-in.html</feedburner:origLink></item><item><title>Serialization in Java/J2EE - Demystified</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/AFOgxr3U8jQ/serialization-in-javaj2ee-demystified.html</link><category>Serialization</category><category>Programming</category><category>Java</category><category>Interview</category><category>J2EE</category><category>Questions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 08 Oct 2007 03:20:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-6082837975786839349</guid><description>&lt;span style="font-weight: bold;"&gt;Serialization:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Serialization is the process of persisting the state of an object.&lt;br /&gt;In Java serializing an object involves encoding its state in a structured way within a byte array. Once an object is serialized, the byte array can be manipulated in various ways; it can be written to a file, sent over a network or RMI, or persisted within a database as a BLOB.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b6Hez4oFqv0/RwocfsO9zjI/AAAAAAAAAkA/EmNyQNT0VqI/s1600-h/Serialization.htm"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_b6Hez4oFqv0/RwocfsO9zjI/AAAAAAAAAkA/EmNyQNT0VqI/s400/Serialization.htm" alt="Java, Programming, J2EE, Framework, Development, Serialization" id="BLOGGER_PHOTO_ID_5118935257235443250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The serialization process encodes enough information about the object type within the byte stream, allowing the original object to be easily recreated upon deserialization, at a later point in time.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Serialization and Deserialization is same as marshaling and unmarshaling in C/C++.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Where to keep serialized object&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Serialization is a highly versatile mechanism it should be addressed by storing the state in relational or object databases. It does not have transaction management and concurrency control. Nor does it provide any typical database features like indexed access, caching and a query language.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Serializing static variables:  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Variables declared as static members are not considered part of the state of an object because they are shared by all instances of that class. &lt;span style="font-weight: bold;"&gt;Classes which need to preserve the value of static members during serialization should save and restore these values explicitly using private void readObject(ObjectInputStream) and private void writeObject(ObjectOutputStream).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Advantages and Disadvantages:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The advantages of serialization are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It is easy to use and can be customized. &lt;/li&gt;&lt;li&gt;The serialized stream can be encrypted, authenticated and compressed, supporting the needs of secure Java computing. &lt;/li&gt;&lt;li&gt;Serialized classes can support coherent versioning and are flexible enough to allow gradual evolution of your application's object schema. &lt;/li&gt;&lt;li&gt;Serialization can also be used as a mechanism for exchanging objects between Java and C++ libraries, using third party vendor libraries within C++. &lt;/li&gt;&lt;li&gt;Many vital technologies that rely upon serialization, including RMI, JavaBeans and EJB. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It should ideally not be used with large-sized objects, as it offers significant overhead. Large objects also significantly increase the memory requirements of your application since the object input/output streams cache live references to all objects written to or read from the stream until the stream is closed or reset. Consequently, the garbage collection of these objects can be inordinately delayed. &lt;/li&gt;&lt;li&gt;Serializable interface does not offer fine-grained control over object access - although you can somewhat circumvent this issue by implementing the complex Externalizable interface, instead. &lt;/li&gt;&lt;li&gt;Since serialization does not offer any transaction control mechanisms, it is not suitable for use within applications needing concurrent access without making use of additional APIs. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Criteria for a class to be Serializable:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Have access to a no-argument constructor in its first non-serializable superclass &lt;/li&gt;&lt;li&gt;Identify non-serializable data members using the &lt;span style="font-weight: bold;"&gt;transient keyword&lt;/span&gt; or explicitly mark data members as serializable using the &lt;span style="font-weight: bold;"&gt;serialPersistentFields&lt;/span&gt; member. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;My subclass implements Serializable but my superclass doesn't. Both subclass and superclass contain instance variables that need to be saved as part of the state of the subclass. Will serialization save the superclass fields for me?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you serialize an object, the serialization mechanism works by chaining up the inheritance hierarchy, saving the sate of each Serializable superclass in turn. When serialization reaches the first non-serializable superclass, the serialization stops.&lt;br /&gt;&lt;br /&gt;When deserializing, the state of this first non-serializable superclass is restored not from the stream, but by invoking that class' no-argument constructor. If the no-argument constructor is not adequate for your purposes, you must customize the serialization of your subclass with writeObject() and readObject() in order to write out and restore any information from the non-serializable superclass that you find necessary.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Externalizable instead of Serializable:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By implementing Externalizable yourself you can win performance at the cost of flexibility and extra code to maintain. If you implement Externalizable yourself you stream the data directly without the need for reflection which is used in the case of Serializable&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Read and write serialized objects to and from a database:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your RDBMS supports them, you can store serialized objects as BLOBs.&lt;br /&gt;These are JDBC 2.0 features, but take a look at java.sql.Blob, ResultSet and PreparedStatement for more information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Collections like Vector or a Hashtable:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Collections like Vector and Hashtable both implements Serializable and have been designed for serialization.&lt;br /&gt;One thing to keep in mind is to watch out for is, that in order to serialize a collection like Vector or Hashtable, you must also be able to serialize all of the objects contained in these collections. Otherwise, the collection would not be able to be completely restored. Your program will throw a NotSerializableException unless all objects stored in the Vector or Hashtable are also serializable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other way to save the state of an object of a class which   does not implement Serializable or Extenalizable&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Write the value of each and every instance variable into the persistent storage. If there are 50 variables, you will have to store each of them individually. If some of the variables are object references, you will have to follow each reference and save the state of that object as well. You can do that, but it would be a proprietary solution and each class that wanted to read your object would also have to know all about your proprietary format.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Role of serialization in RMI:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;RMI uses serialization as its basic and only mechanism for sending objects across a network.&lt;br /&gt;If an object implements java.rmi.Remote, then the object's stub is serialized and sent to the client. If the object implements java.io.Serializable, then the object itself is serialized and sent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Role of serialization in EJB:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A big part of EJB is that it is a framework for underlying RMI: remote method invocation. You're invoking methods remotely from one JVM space 'A' on objects which are in JVM space 'B' -- possibly running on another machine on the network.&lt;br /&gt;To make this happen, all arguments of each method call must have their current state plucked out of JVM 'A' memory, flattened into a byte stream which can be sent over a network connection, and then deserialized for reincarnation on the other end in JVM 'B' where the actual method call takes place.&lt;br /&gt;If the method has a return value, it is serialized up for streaming back to JVM 'A.' Thus the requirement that all EJB methods arguments and return values must be serializable. The easiest way to do this is to make sure all your classes implement java.io.Serializable.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;NB: Image is sourced from javaworld&lt;/span&gt;&lt;br /&gt;&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/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/09/how-to-startup-and-stop-application.html"&gt;How to startup and stop J2EE application server fr...&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;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/list-of-java-code-anlayser-tool.html"&gt;List of Java code anlayser tool&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/linux-networking-tutorial.html"&gt;Linux Networking Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/best-computer-books.html"&gt;Best Computer Book&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/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/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/java-what-is-difference-between-thread.html"&gt;Java - what is the difference between thread and interrupt&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-6082837975786839349?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qf_bsirioCVCPi-NgqrBs8m1nYQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qf_bsirioCVCPi-NgqrBs8m1nYQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qf_bsirioCVCPi-NgqrBs8m1nYQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qf_bsirioCVCPi-NgqrBs8m1nYQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=rGISu9K9"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mxL7E0D9"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=9sJsHuY1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Yl13AW7U"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=Yl13AW7U" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=wHpcUPgA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=wHpcUPgA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=JNZ9UG0p"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=EgUjKeTB"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=wFyLtKuk"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=wFyLtKuk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/AFOgxr3U8jQ" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-08T05:05:34.373-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_b6Hez4oFqv0/RwocfsO9zjI/AAAAAAAAAkA/EmNyQNT0VqI/s72-c/Serialization.htm" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/serialization-in-javaj2ee-demystified.html</feedburner:origLink></item><item><title>Java - what is the difference between thread and interrupts</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/ntWpAvcXqyA/java-what-is-difference-between-thread.html</link><category>Programming</category><category>Java</category><category>Interview</category><category>Thread</category><category>Questions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Mon, 08 Oct 2007 03:11:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-6414223239316441745</guid><description>A thread is a CPU's state of execution as it processes a set of instructions or a task.&lt;br /&gt;&lt;br /&gt;An interrupt is a condition that causes the CPU to store the state of its current thread of execution to begin a more important task or to begin or resume the next task in a list of tasks.&lt;br /&gt;An interrupt handler is the set of CPU instructions associated with any given interrupt (a PC has several types of interrupts).&lt;br /&gt;The confusing part is the fact that the thread of execution in an interrupt handler is often referred to as an interrupt.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In short, a thread is a task and an interrupt is a signal used to queue a more important task.&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-6414223239316441745?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4hTViP6KIRtE2Q-xKmrCniLaEMk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4hTViP6KIRtE2Q-xKmrCniLaEMk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4hTViP6KIRtE2Q-xKmrCniLaEMk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4hTViP6KIRtE2Q-xKmrCniLaEMk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ju76XxJb"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=YamkiCYj"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=wJv3rilc"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=L1SIy4zH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=L1SIy4zH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=OaxjU9Kt"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=OaxjU9Kt" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=k7RfTjyF"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=DqMBztqD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=dSbxjLM9"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=dSbxjLM9" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/ntWpAvcXqyA" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:42:46.655-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/java-what-is-difference-between-thread.html</feedburner:origLink></item><item><title>Spring Framework - J2EE Development without EJB</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/EUWFzSP6AKs/spring-framework-j2ee-development.html</link><category>Technology</category><category>EJB</category><category>Java</category><category>J2EE</category><category>Article</category><category>Framework</category><category>Spring</category><category>Enterprise</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Sat, 06 Oct 2007 07:07:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-7225859679523242960</guid><description>&lt;span style="font-weight: bold;"&gt;Background :&lt;/span&gt;&lt;br /&gt;Spring is an open-source application framework, introduced and developed in 2004. The main ideas were suggested by an experienced J2EE architect, Rod Johnson. He had earlier, written a book titled J2EE Development without using EJB and had introduced the concept of Light-weight container. Primarily, his argument is that while EJB has its merits, it is not always necessary and suitable in all applications.&lt;br /&gt;Just as Hibernate attacked CMP as primitive ORM technology, Spring attacked EJB as unduly complicated and not susceptible to unit-testing. Instead of EJB, Spring suggests that we make use of ordinary Java beans, with some slight modifications, to  get all the supposed advantages of EJB environment. Thus, Spring is posed as an alternative to EJB essentially. However, as a concession to the existing EJB investments, Spring is designed to operate with EJB if required.&lt;br /&gt;&lt;br /&gt;Much of the philosophy and approach of Spring framework, however, predates, the latest EJB-3. As we know now that EJB-3 has absorbed a number of new ideas suggested by Spring and some more, to answer the criticisms. Their is a debate going on in the Java community about Spring and EJB-3. Spring is not a Persistence technology but a framework which allows plug in of other such technologies. But EJB-3 is primarily focused on Persistence Technology and  has now incorporated Hibernate, the best ORM to date.Talks are going on to incorporate another equally nice ORM Technology known as JDO, which provides for Object Database also. Moreover, EJB-3 's Attribute-Oriented Meta tags, help in vastly reducing the size of XML lines. Some have complained that Spring is still too dependent on XML files.&lt;br /&gt;The main aim of Spring is to simplify the J2EE development and testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spring Under The Hood :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b6Hez4oFqv0/RwefP8O9zhI/AAAAAAAAAjY/asA1OGTpJLg/s1600-h/spring-overview.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_b6Hez4oFqv0/RwefP8O9zhI/AAAAAAAAAjY/asA1OGTpJLg/s400/spring-overview.gif" alt="Enterprise, Technlogy, Spring Framework, J2EE Development, Hibernate,without EJB" id="BLOGGER_PHOTO_ID_5118234597745610258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Spring is a great framework for development of Enterprise applications. It is a light-weight framework for the development of enterprise-ready applications. Spring can be used to configure declarative transaction management, remote access to your logic using RMI or web services, mailing facilities and various options in persisting your data to a database. It can be used in modular fashion, allows to use in parts and leave the other components which is not required by the application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Main Features of Spring Framework:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Transaction Management: Spring framework provides a generic abstraction layer for transaction management. This allowing the developer to add the pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues. Spring's transaction support is not tied to J2EE environments and it can be also used in container less environments.&lt;br /&gt;&lt;br /&gt;JDBC Exception Handling: The JDBC abstraction layer of the Spring offers a meaningful exception hierarchy, which simplifies the error handling strategy&lt;br /&gt;&lt;br /&gt;Integration with Hibernate, JDO, and iBATIS: Spring provides best Integration services with Hibernate, JDO and iBATIS.&lt;br /&gt;&lt;br /&gt;AOP Framework: Spring is one of the best AOP framework&lt;br /&gt;&lt;br /&gt;MVC Framework: Spring comes with MVC web application framework, built on core Spring functionality. This framework is highly configurable via strategy interfaces, and accommodates multiple view technologies like JSP, Velocity, Tiles, iText and POI.&lt;br /&gt;But other frameworks can be easily used instead of Spring MVC Framework..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spring Architecture :&lt;br /&gt;&lt;/span&gt;Spring is well-organized architecture consisting of various modules. Modules in the Spring framework are:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Spring Aspect Oriented Programming (AOP)&lt;/span&gt;&lt;br /&gt;AOP is used in Spring&lt;br /&gt;&lt;br /&gt;a) To provide declarative enterprise services, especially as a replacement for EJB declarative services. The most important such service is declarative transaction management, which builds on Spring's transaction abstraction.&lt;br /&gt;&lt;br /&gt;b) To allow users to implement custom aspects, complementing their use of OOP with AOP&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Spring ORM&lt;/span&gt;&lt;br /&gt;The ORM package is related to the database access. It provides integration layers for popular object-relational mapping APIs, including JDO, Hibernate and iBatis.&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Spring Context&lt;/span&gt;&lt;br /&gt;This package builds on the beans package to add support for message sources and for the Observer design pattern, and the ability for application objects to obtain resources using a consistent API.&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Spring Web&lt;/span&gt;&lt;br /&gt;The Web context module builds on top of the application context module, providing contexts for Web-based applications. As a result, the Spring framework supports integration with Jakarta Struts, JSF and webworks. The Web module also eases the tasks of handling multi part requests and binding request parameters to domain objects.&lt;br /&gt;&lt;br /&gt;5. &lt;span style="font-weight: bold;"&gt;Spring DAO&lt;/span&gt;&lt;br /&gt;The Spring's JDBC and DAO abstraction layer offers a meaningful exception hierarchy for managing the database connection, exception handling and error messages thrown by different database vendors. The exception hierarchy simplifies error handling and greatly reduces the amount of code that we need to write, such as opening and closing connections. This module also provide transaction management services for objects in a spring application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. &lt;span style="font-weight: bold;"&gt;Spring Web MVC&lt;/span&gt;&lt;br /&gt;The MVC framework is a full-featured MVC implementation for building Web applications. The MVC framework is highly configurable via strategy interfaces and accommodates numerous view technologies including JSP, Velocity, Tiles and the generation of PDF and Excel Files.&lt;br /&gt;&lt;br /&gt;7. &lt;span style="font-weight: bold;"&gt;Spring Core&lt;/span&gt;&lt;br /&gt;The Core package is the most import component of the Spring Framework.&lt;br /&gt;This component provides the Dependency Injection features. The BeanFactory provides a factory pattern which separates the dependencies like initialization, creation and access of the objects from your actual program logic.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;NB: Image sourced from Google Images&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Other useful tips on 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/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/09/how-to-startup-and-stop-application.html"&gt;How to startup and stop J2EE application server fr...&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;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/list-of-java-code-anlayser-tool.html"&gt;List of Java code anlayser tool&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/linux-networking-tutorial.html"&gt;Linux Networking Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/best-computer-books.html"&gt;Best Computer Book&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/j2ee-interview-questions-4.html"&gt;J2EE Interview Questions - 4&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-7225859679523242960?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eHQL1W_o4v23xfoc-25_YkE37mc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eHQL1W_o4v23xfoc-25_YkE37mc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eHQL1W_o4v23xfoc-25_YkE37mc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eHQL1W_o4v23xfoc-25_YkE37mc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Tl6N65YX"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=edloJQLS"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=moSgz3hd"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=mkeNcrL6"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=mkeNcrL6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=sXOf1RVV"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=sXOf1RVV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=bPrYqBJn"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=vdRnnlBy"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=nigy50eT"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=nigy50eT" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/EUWFzSP6AKs" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-06T19:44:27.059-07:00</atom:updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_b6Hez4oFqv0/RwefP8O9zhI/AAAAAAAAAjY/asA1OGTpJLg/s72-c/spring-overview.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">AOP</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/spring-framework-j2ee-development.html</feedburner:origLink></item><item><title>J2EE Interview Questions - 4</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/HO9_zorbAFs/j2ee-interview-questions-4.html</link><category>EJB</category><category>Java</category><category>Interview</category><category>Tips</category><category>J2EE</category><category>SOAP XML</category><category>Questions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Fri, 05 Oct 2007 07:13:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-6881337843627673137</guid><description>Continuing our Java/J2EE/JEE interview questions and answers series,  today's questions are:&lt;br /&gt;&lt;br /&gt;Q How EJB Invocation happens?&lt;br /&gt;&lt;br /&gt;Retrieve Home Object reference from Naming Service via JNDI. Return Home Object reference to the client. Create me a new EJB Object through Home Object interface. Create EJB Object from the Ejb Object. Return EJB Object reference to the client. Invoke business method using EJB Object reference. Delegate request to Bean (Enterprise Bean).&lt;br /&gt;&lt;br /&gt;Q Is it possible to share an HttpSession between a JSP and EJB? What happens when I change a value in the HttpSession from inside an EJB?&lt;br /&gt;&lt;br /&gt;You can pass the HttpSession as parameter to an EJB method, only if all objects in session are serializable.This has to be consider as passed-by-value, that means that it’s read-only in the EJB. If anything is altered from inside the EJB, it won’t be reflected back to the HttpSession of the Servlet Container.The pass-by-reference can be used between EJBs Remote Interfaces, as they are remote references. While it is possible to pass an HttpSession as a parameter to an EJB object, it is considered to be bad practice in terms of object-oriented design. This is because you are creating an unnecessary coupling between back-end objects (EJBs) and front-end objects (HttpSession). Create a higher-level of abstraction for your EJBs API. Rather than passing the whole, fat, HttpSession (which carries with it a bunch of http semantics), create a class that acts as a value object (or structure) that holds all the data you need to pass back and forth between front-end/back-end. Consider the case where your EJB needs to support a non HTTP-based client. This higher level of abstraction will be flexible enough to support it.&lt;br /&gt;&lt;br /&gt;Q The EJB container implements the EJBHome and EJBObject classes. For every request from a unique client, does the container create a separate instance of the generated EJBHome and EJBObject classes? -&lt;br /&gt;&lt;br /&gt;The EJB container maintains an instance pool. The container uses these instances for the EJB Home reference irrespective of the client request. While referring the EJB Object classes the container creates a separate instance for each client request. The instance pool maintenance is up to the implementation of the container. If the container provides one, it is available otherwise it is not mandatory for the provider to implement it. Having said that, yes most of the container providers implement the pooling functionality to increase the performance of the application server. The way it is implemented is, again, up to the implementer.&lt;br /&gt;&lt;br /&gt;Q Can the primary key in the entity bean be a Java primitive type such as int?&lt;br /&gt;A The primary key can’t be a primitive type. Use the primitive wrapper classes, instead. For example, you can use java.lang.Integer as the primary key class, but not int (it has to be a class, not a primitive).&lt;br /&gt;&lt;br /&gt;Q Can you control when passivation occurs?&lt;br /&gt;&lt;br /&gt;The developer, according to the specification, cannot directly control when passivation occurs. Although for Stateful Session Beans, the container cannot passivate an instance that is inside a transaction. So using transactions can be a a strategy to control passivation. The ejbPassivate() method is called during passivation, so the developer has control over what to do during this exercise and can implement the require optimized logic. Some EJB containers, such as BEA WebLogic, provide the ability to tune the container to minimize passivation calls. Taken from the WebLogic 6.0 DTD -”The passivation-strategy can be either “default” or “transaction”. With the default setting the container will attempt to keep a working set of beans in the cache. With the “transaction” setting, the container will passivate the bean after every transaction (or method call for a non-transactional invocation).&lt;br /&gt;&lt;br /&gt;Q What is the advantage of using Entity bean for database operations, over directly using JDBC API to do database operations? When would I use one over the other?&lt;br /&gt;&lt;br /&gt;A Entity Beans actually represents the data in a database. It is not that Entity Beans replaces JDBC API. There are two types of Entity Beans Container Managed and Bean Managed. In Container Managed Entity Bean - Whenever the instance of the bean is created the container automatically retrieves the data from the DB/Persistence storage and assigns to the object variables in bean for user to manipulate or use them. For this the developer needs to map the fields in the database to the variables in deployment descriptor files (which varies for each vendor). In the Bean Managed Entity Bean - The developer has to specifically make connection, retrieve values, assign them to the objects in the ejbLoad() which will be called by the container when it instantiates a bean object. Similarly in the ejbStore() the container saves the object values back the the persistence storage. ejbLoad() and ejbStore() are callback methods and can be only invoked by the container. Apart from this, when you use Entity beans you don't need to worry about database transaction handling, database connection pooling etc, which are taken care by the ejb container.&lt;br /&gt;&lt;br /&gt;Q What is EJB QL?&lt;br /&gt;EJB QL is a Query Language provided for navigation across a network of enterprise beans and dependent objects defined by means of container managed persistence. EJB QL is introduced in the EJB 2.0 specification. The EJB QL query language defines finder methods for entity beans with container managed persistence and is portable across containers and persistence managers. EJB QL is used for queries of two types of finder methods: Finder methods that are defined in the home interface of an entity bean and which return entity objects. Select methods, which are not exposed to the client, but which are used by the Bean Provider to select persistent values that are maintained by the Persistence Manager or to select entity objects that are related to the entity bean on which the query is defined.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Q Brief description about local interfaces?&lt;br /&gt;A EJB was originally designed around remote invocation using the Java Remote Method Invocation (RMI) mechanism, and later extended to support to standard CORBA transport for these calls using RMI/IIOP. This design allowed for maximum flexibility in developing applications without consideration for the deployment scenario, and was a strong feature in support of a goal of component reuse in J2EE. Many developers are using EJBs locally, that is, some or all of their EJB calls are between beans in a single container. With this feedback in mind, the EJB 2.0 expert group has created a local interface mechanism. The local interface may be defined for a bean during development, to allow streamlined calls to the bean if a caller is in the same container. This does not involve the overhead involved with RMI like marshaling etc. This facility will thus improve the performance of applications in which co-location is planned. Local interfaces also provide the foundation for container-managed relationships among entity beans with container-managed persistence.&lt;br /&gt;&lt;br /&gt;Q What are the special design care that must be taken when you work with local interfaces?&lt;br /&gt;A It is important to understand that the calling semantics of local interfaces are different from those of remote interfaces. For example, remote interfaces pass parameters using call-by-value semantics, while local interfaces use call-by-reference. This means that in order to use local interfaces safely, application developers need to carefully consider potential deployment scenarios up front, then decide which interfaces can be local and which remote, and finally, develop the application code with these choices in mind. While EJB 2.0 local interfaces are extremely useful in some situations, the long-term costs of these choices, especially when changing requirements and component reuse are taken into account, need to be factored into the design decision.&lt;br /&gt;&lt;br /&gt;Q What happens if remove() is never invoked on a session bean?&lt;br /&gt;&lt;br /&gt;In case of a stateless session bean it may not matter if we call or not as in both cases nothing is done. The number of beans in cache is managed by the container. In case of stateful session bean, the bean may be kept in cache till either the session times out, in which case the bean is removed or when there is a requirement for memory in which case the data is cached and the bean is sent to free pool.&lt;br /&gt;&lt;br /&gt;Previous Java J2EE 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;/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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-6881337843627673137?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5h61o833TTpHAPyk4Mer6pC7utQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5h61o833TTpHAPyk4Mer6pC7utQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5h61o833TTpHAPyk4Mer6pC7utQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5h61o833TTpHAPyk4Mer6pC7utQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=rjnxhgqP"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=XgldbzwD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=9UJZbIHW"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=7zoDkXSJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=7zoDkXSJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=0ULsNcyo"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=0ULsNcyo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=qpLgagTO"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=CxTZGZu7"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=4cnMlVRM"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=4cnMlVRM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/HO9_zorbAFs" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:45:22.334-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">RMI</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/j2ee-interview-questions-4.html</feedburner:origLink></item><item><title>Java Interview Questions -3</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/RrG-GIeXAKg/java-interview-questions-3.html</link><category>Java</category><category>Interview</category><category>Tips</category><category>J2EE</category><category>Eclipse</category><category>Questions</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Fri, 05 Oct 2007 06:19:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-4132788771597695154</guid><description>Continuing our Java/J2EE/JEE interview questions and answers series,  today's questions are:&lt;br /&gt;&lt;br /&gt;Q Can anonymous class have static members?&lt;br /&gt;&lt;br /&gt;With one exception, anonymous classes cannot contain static fields, methods, or classes. The only static things they can contain are static final constants.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Q When I create anonymous classes, what access modifier do they get?&lt;br /&gt;&lt;br /&gt;Anonymous classes get the default, unnamed access modifier. You cannot make them private, protected, public, or static.&lt;br /&gt;&lt;br /&gt;Q How do I create a constructor for an anonymous class?&lt;br /&gt;&lt;br /&gt;Anonymous classes don't have names, so you cannot create a constructor by just using the name of the class. What you can do instead is to use an instance initializer. Instance initializers look like methods with no names or return values:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ActionListener myActListen = new ActionListener {&lt;br /&gt;{&lt;br /&gt;  System.out.println("Instance Initializer");&lt;br /&gt;}&lt;br /&gt;public void actionPerformed(ActionEvent event) {&lt;br /&gt;  // ...&lt;br /&gt;}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Q When should I use a "private" constructor?&lt;br /&gt;&lt;br /&gt;The most common use that for private (and protected) constructors is&lt;br /&gt;in implementing singletons and some types of object factories. To do this, you use&lt;br /&gt;a static method to manage the creation of one (or more) instances of the class.&lt;br /&gt;&lt;br /&gt;Q How do I get a list of the files in a .zip file from Java?&lt;br /&gt;&lt;br /&gt;You can get a java.util.Enumeration of java.util.zip.ZipEntry objects by&lt;br /&gt;using the java.util.zip.ZipFile.entries() method.&lt;br /&gt;&lt;br /&gt;Q What is a JIT compiler?&lt;br /&gt;&lt;br /&gt;A Just-In-Time compiler is one way to implement the Java Virtual Machine. Rather than the typical, pure interpreter, a JIT compiler will, &lt;span style="font-weight: bold;"&gt;on demand&lt;/span&gt;, compile the platform independent Java byte codes into platform specific executable code, in real-time. &lt;span style="font-weight: bold;"&gt;For first time byte codes are compiled before being executed but for future passes cached version of compiled code is used . &lt;/span&gt;This tends to result in a performance increase of 10-100 times, depending upon the task at hand, over purely interpreted byte codes.&lt;br /&gt;&lt;br /&gt;Previous Java J2EE 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;/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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-4132788771597695154?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/16r1ms9g1fouCxnur2J45TO1JEk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/16r1ms9g1fouCxnur2J45TO1JEk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/16r1ms9g1fouCxnur2J45TO1JEk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/16r1ms9g1fouCxnur2J45TO1JEk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ADcu2SuG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=skdCJvlC"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=CCaLNIBa"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=JpHcWbw3"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=JpHcWbw3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=7x0Z9Smg"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=7x0Z9Smg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=yd68RMU4"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=tZMqcGxl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ew6TBUiZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ew6TBUiZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/RrG-GIeXAKg" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:44:35.717-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/java-interview-questions-3.html</feedburner:origLink></item><item><title>J2EE Tutorial on Webservices using JBoss</title><link>http://feedproxy.google.com/~r/blogspot/GHpm/~3/NZ_THjN3Glw/j2ee-tutorial-on-webservices-using.html</link><category>Webservices</category><category>EJB</category><category>Java</category><category>J2EE</category><category>Logging</category><category>Framework</category><category>Jboss</category><category>EJB3.0</category><category>Tutorial</category><category>SOAP</category><category>Debug</category><category>XML</category><category>Log4j</category><category>Apache Ant</category><author>noreply@blogger.com (Vishal Sharma)</author><pubDate>Wed, 03 Oct 2007 05:47:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7339683836891122721.post-5868618598584227780</guid><description>This J2EE tutorial covers building and porting JAX-RPC style Webservices to JAX-WS.&lt;br /&gt;&lt;br /&gt;Tools used for this tutorial exercise  are&lt;br /&gt;JBossWs 2.0.1GA  (Jboss's JAX-WS implementation)&lt;br /&gt;JBoss  4.2.1GA - (J2EE Application server)&lt;br /&gt;Eclispe IDE 3.2 &gt;=&lt;br /&gt;Apache Ant&lt;br /&gt;&lt;br /&gt;1.1 Background&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1.1.1 JAX-RPC&lt;/li&gt;&lt;li&gt;1.1.2 JAX-WS&lt;/li&gt;&lt;/ul&gt;1.2 Differences&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1.2.1.1 SOAP 1.2&lt;/li&gt;&lt;li&gt;1.2.1.3 WS-I's Basic Profiles&lt;/li&gt;&lt;li&gt;1.2.1.4 New Java features&lt;/li&gt;&lt;li&gt;1.2.1.5 The data mapping model&lt;/li&gt;&lt;li&gt;1.2.1.6 The interface mapping model&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;1.3 &lt;a target="_blank" href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-jax-ws-style.html"&gt;Porting Steps&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1.3.1 Naming conventions&lt;/li&gt;&lt;li&gt;1.3.2 Generate Stubs&lt;/li&gt;&lt;li&gt;1.3.3 Ant target to generate stubs&lt;/li&gt;&lt;li&gt;1.3.4 Test Webservices Client&lt;/li&gt;&lt;li&gt;1.3.5 Logging SOAP Packet&lt;/li&gt;&lt;li&gt;1.3.6  Instructions for setting up SOAP packet logging on client side&lt;/li&gt;&lt;li&gt;1.3.7 Test client snippet&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;1.4 &lt;a target="_blank" href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-integrating.html"&gt;Integrate With EJB 3.0&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1.4.1  Define a Remote Interface&lt;/li&gt;&lt;li&gt;1.4.2 Implement a Stateless Session Bean&lt;/li&gt;&lt;li&gt;1.4.3 Build Jar&lt;/li&gt;&lt;li&gt;1.4.4 Run an EJB Client&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;1.1 Background&lt;br /&gt;&lt;br /&gt;1.1.1 JAX-RPC&lt;br /&gt;&lt;br /&gt;JAX RPC style of webservices is built on JSR-101 specification.&lt;br /&gt;&lt;br /&gt;JBoss 4.0.4 server comes with JBossWs 1.0 series which has support for JAX-RPC and non JAX-WS style,  i:e; JSR-101 (JAX-RPC) and JSR-109 (non JAX-WS) style webservices respectively, rather than JSR-181  (JAX-WS) compliant. &lt;span style="font-style: italic;"&gt;Strictly speaking,&lt;/span&gt; &lt;span style="font-style: italic;"&gt;JbossWS 1.0&lt;/span&gt; is not a JAX-WS compliant as it is missing JSR-181 impelmentation.&lt;br /&gt;&lt;br /&gt;It only supports SOAP 1.1.&lt;br /&gt;&lt;br /&gt;1.1.2 JAX-WS&lt;br /&gt;&lt;br /&gt;JAX-WS style of web services is built on JSR-224 specification.&lt;br /&gt;It uses annotations (JSR-181) and new data binding stack JAXB. JbossWS 2.0 &gt;= series which&lt;br /&gt;is used in this porting exercise is JAX-WS compliant.&lt;br /&gt;&lt;br /&gt;In addition to being JAX-WS compliant, for backward compatibilty it has support for JAX-RPC(JSR-101) and JSR-109 compliant services used in JBoss 4.0.4.&lt;br /&gt;&lt;br /&gt;It supports SOAP 1.1 and SOAP 1.2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.2 Differences&lt;br /&gt;&lt;br /&gt;Their are quiet a few notable differences between JAX-WS and JAX-RPC. Notable ones to keep in mind while porting are in italics.&lt;br /&gt;&lt;br /&gt;1.2.1.1 SOAP 1.2&lt;br /&gt;&lt;br /&gt;JAX-RPC and JAX-WS support SOAP 1.1. JAX-WS also supports SOAP 1.2.&lt;br /&gt;&lt;br /&gt;1.2.1.2 XML/HTTP&lt;br /&gt;&lt;br /&gt;The WSDL 1.1 specification defined an HTTP binding, which is a means by which you can send XML messages over HTTP without SOAP. JAX-RPC ignored the HTTP binding. JAX-WS adds support for it.&lt;br /&gt;&lt;br /&gt;1.2.1.3 WS-I's Basic Profiles&lt;br /&gt;&lt;br /&gt;JAX-RPC supports WS-I's Basic Profile (BP) version 1.0. JAX-WS supports BP 1.1. (WS-I is the Web services interoperability organization.)&lt;br /&gt;&lt;br /&gt;1.2.1.4 New Java features&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-RPC maps to Java 1.4. JAX-WS maps to Java 5.0. JAX-WS relies on many of the features new in Java 5.0.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Java EE 5, the successor to J2EE 1.4, adds support for JAX-WS, but it also retains support for JAX-RPC, which could be confusing to today's Web services novices.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.2.1.5 The data mapping model&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-RPC has its own data mapping model, which covers about 90 percent of all schema types. Those that it does not cover are mapped to javax.xml.soap.SOAPElement.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-WS's data mapping model is JAXB. JAXB promises mappings for all XML schemas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.2.1.6 The interface mapping model&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-WS's basic interface mapping model is not extensively different from JAX-RPC's; however:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-WS's model makes use of new Java 5.0 features.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-WS's model introduces asynchronous functionality.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.2.1.7 The dynamic programming model&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-WS's dynamic client model is quite different from JAX-RPC's. Many of the changes acknowledge industry needs:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;It introduces message-oriented functionality.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;It introduces dynamic asynchronous functionality.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;    JAX-WS also adds a dynamic server model, which JAX-RPC does not have.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.2.1.7 MTOM (Message Transmission Optimization Mechanism)&lt;br /&gt;&lt;br /&gt;JAX-WS, via JAXB, adds support for MTOM, the new attachment specification. Microsoft never bought into the SOAP with Attachments specification; but it appears that everyone supports MTOM, so attachment interoperability should become a reality.&lt;br /&gt;&lt;br /&gt;1.2.1.8 The handler model&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;The handler model has changed quite a bit from JAX-RPC to JAX-WS.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JAX-RPC handlers rely on SAAJ 1.2. JAX-WS handlers rely on the new SAAJ 1.3 specification.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Part - 2 of tutorial is continued &lt;a target="_blank" href="http://entips.blogspot.com/2007/10/j2ee-tutorial-on-jax-ws-style.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other useful tips on 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/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-http-tunneling.html"&gt;What is HTTP tunneling&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/09/how-to-startup-and-stop-application.html"&gt;How to startup and stop J2EE application server fr...&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;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/list-of-java-code-anlayser-tool.html"&gt;List of Java code anlayser tool&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/linux-networking-tutorial.html"&gt;Linux Networking Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://entips.blogspot.com/2007/09/best-computer-books.html"&gt;Best Computer Book&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;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7339683836891122721-5868618598584227780?l=entips.sharmavishal.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DfFVq1fCcbfDUJW5Oq0JKvtXvrQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DfFVq1fCcbfDUJW5Oq0JKvtXvrQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DfFVq1fCcbfDUJW5Oq0JKvtXvrQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DfFVq1fCcbfDUJW5Oq0JKvtXvrQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=Pa7A7rRE"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=DeKiU4x8"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=UhctEtNc"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=o5wOYx66"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=o5wOYx66" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=ZcxI8LoG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=ZcxI8LoG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=JmRiVEVA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=GLvNF2vW"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogspot/GHpm?a=iY1jePAR"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogspot/GHpm?i=iY1jePAR" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/GHpm/~4/NZ_THjN3Glw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2007-10-28T06:46:25.617-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><category domain="http://rss.financialcontent.com/stocksymbol">BP</category><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://entips.sharmavishal.com/2007/10/j2ee-tutorial-on-webservices-using.html</feedburner:origLink></item></channel></rss>
