<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7907778724738449118</atom:id><lastBuildDate>Fri, 11 Jul 2008 02:09:16 +0000</lastBuildDate><title>srinip</title><description /><link>http://srinip2007.blogspot.com/</link><managingEditor>noreply@blogger.com (srinip)</managingEditor><generator>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/blogspot/srinip" type="application/rss+xml" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-4046957682221062522</guid><pubDate>Fri, 04 Jul 2008 22:08:00 +0000</pubDate><atom:updated>2008-07-04T15:11:10.003-07:00</atom:updated><title>Domain Driven Design and Development In Practice - Article</title><description>Domain Driven Design (DDD) is about mapping business domain concepts into  software artifacts. Most of the writings and articles on this topic have been  based on Eric Evans' book "Domain Driven Design", covering the domain modeling  and design aspects mainly from a conceptual and design stand-point.&lt;br /&gt;&lt;br /&gt;I recently wrote an &lt;a href="http://www.infoq.com/articles/ddd-in-practice"&gt;article&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;Infoq&lt;/a&gt; to cover the domain modeling and design from a practical stand-point  on how one would go about taking a domain model and actually implementing it. It looks at the guidelines, best practices frameworks and tools that technical leads and architects can use in the implementation effort.</description><link>http://srinip2007.blogspot.com/2008/07/domain-driven-design-and-development-in.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-1011627590730393947</guid><pubDate>Sat, 31 May 2008 05:27:00 +0000</pubDate><atom:updated>2008-05-30T20:26:42.389-07:00</atom:updated><title>Scrum &amp; Football  Analogy</title><description>By now, we have all heard about &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;Agile&lt;/a&gt; software development methodology and its different flavors such as &lt;a href="http://www.controlchaos.com/"&gt;SCRUM&lt;/a&gt;, &lt;a href="http://www.extremeprogramming.org/"&gt;XP&lt;/a&gt;, &lt;a href="http://www.dsdm.org/"&gt;DSDM&lt;/a&gt; etc etc.&lt;br /&gt;&lt;br /&gt;I have been part of development teams using SCRUM methodology for last year and a half and I am learning more about agile concepts in every project using these techniques. The more I think about a project that is managed using SCRUM, I can't help but think about how similar this approach is to the way a &lt;a href="http://en.wikipedia.org/wiki/American_football"&gt;football&lt;/a&gt; (American Football, not Soccer) game is played. Let me explain, here are the different aspects of both Scrum and Football that are very similar in nature.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The "&lt;a href="http://en.wikipedia.org/wiki/First_down"&gt;First Down&lt;/a&gt;" in a football game is same as a "&lt;a href="http://c2.com/cgi/wiki?ScrumSprint"&gt;Sprint&lt;/a&gt;" in a Scrum project, Sprint = First Down.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;In other words, End of Sprint = First down (10 yards is the objective for every down in football; End of Sprint/Iteration is the objective in Scrum)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;End of Project (which usually consists of several Sprints) = Touchdown&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;How about the various meetings held in a typical SCRUM project? How do they relate to football terms?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Kickoff Meeting = Game Kickoff&lt;/li&gt;&lt;li&gt;Daily stand-ups = Huddle&lt;/li&gt;&lt;li&gt;Start of Iteration/Product Backlog = Line Of Scrimmage&lt;/li&gt;&lt;li&gt;Iteration Planning Meetings (IPM) - Pre-game meeting&lt;/li&gt;&lt;li&gt;Retrospective = Post Game Conference&lt;/li&gt;&lt;/ul&gt;Let's look at the SCRUM team member roles and how they are similar to a football team member roles.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Scrum Master = Head Coach&lt;/li&gt;&lt;li&gt;Technical Lead = Running back&lt;/li&gt;&lt;li&gt;Architect = Quarter back&lt;/li&gt;&lt;/ul&gt;Some of the other roles and artifacts that I haven't yet found a match are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Stakeholders&lt;/li&gt;&lt;li&gt;Developers&lt;/li&gt;&lt;li&gt;QA Testers = Referees?&lt;/li&gt;&lt;li&gt;Burn-down chart&lt;/li&gt;&lt;/ul&gt;</description><link>http://srinip2007.blogspot.com/2007/11/scrum-football-analogy.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-6292967701510890095</guid><pubDate>Mon, 26 May 2008 19:03:00 +0000</pubDate><atom:updated>2008-05-26T12:08:40.231-07:00</atom:updated><title>ActiveMQ 5.1 Supports JMS Destination Monitoring and MSMQ Bridge</title><description>Apache &lt;a href="http://activemq.apache.org/"&gt;ActiveMQ&lt;/a&gt; &lt;a href="http://activemq.apache.org/activemq-510-release.html"&gt;Version 5.1&lt;/a&gt; release is out. It has some interesting new features for destination monitoring (via JMX), priority message ordering and a Microsoft Message Queue (&lt;a href="http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx"&gt;MSMQ&lt;/a&gt;) to ActiveMQ Bridge with the new msmq transport component. Check out this &lt;a href="http://www.infoq.com/news/2008/05/activemq-5.1-release"&gt;news item&lt;/a&gt; on &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; about all the features supported by AMQ 5.1 release.</description><link>http://srinip2007.blogspot.com/2008/05/activemq-51-supports-jms-destination.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-6297028519411617009</guid><pubDate>Fri, 16 May 2008 01:21:00 +0000</pubDate><atom:updated>2008-05-15T18:24:32.805-07:00</atom:updated><title>Building Spring-Seam Hybrid Components For Web Applications</title><description>&lt;a href="http://www.springframework.org"&gt;Spring&lt;/a&gt; and &lt;a href="http://www.seamframework.org"&gt;JBoss Seam&lt;/a&gt; frameworks provide different set of features for developing enterprise web applications. Is it possible to use these two frameworks together in web applications? This topic was the main focus of a recent article and a java community forum discussion on how the strengths of each of these frameworks can be used together.&lt;br /&gt;&lt;br /&gt;I posted a &lt;a href="http://www.infoq.com/news/2008/05/spring-seam-hybrid"&gt;news item&lt;/a&gt; on this topic on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;. I am big fan of Spring and I have been using it for past 3 years. But I haven't used Seam framework yet. Any one using these frameworks together in their applications? If so, how did find integration? Are Spring and Seam complementary to each other?</description><link>http://srinip2007.blogspot.com/2008/05/building-spring-seam-hybrid-components.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-7339307088249743774</guid><pubDate>Wed, 14 May 2008 02:04:00 +0000</pubDate><atom:updated>2008-05-13T19:12:11.691-07:00</atom:updated><title>Java EE 6 and EJB 3.1 look very much like Spring, Hibernate and Quartz</title><description>&lt;a href="http://jcp.org/en/jsr/detail?id=316"&gt;Java EE 6&lt;/a&gt; (expected to be out late 2008 or early 2009) includes several interesting new features. &lt;a href="http://jcp.org/en/jsr/detail?id=318"&gt;EJB 3.1&lt;/a&gt; specification will be released as part of JEE6 release.&lt;br /&gt;&lt;br /&gt;Java EE 6 Features:&lt;br /&gt;&lt;br /&gt;JEE6 will have, what it calls, Profiles offering different flavors of JEE services. Profile A is a lightweight version (Servlet, JSP etc), Profile B will include Profile A + EJB 3.1 Lite, JTA, JPA, JSF, and WebBeans, and Profile C is the "full platform" with Profile B features + JMS, JAX-WS etc.&lt;br /&gt;&lt;br /&gt;EJB 3.1:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Optional Local business interfaces (where we can develop Local EJB components using only a bean class; not sure how this is different from what's in EJB 3.0)&lt;/li&gt;&lt;li&gt;EJB components in the web tier (package/deploy EJB components in a WAR w/o an ejb-jar)&lt;/li&gt;&lt;li&gt;Singleton Beans (one instance per application per JVM)&lt;/li&gt;&lt;li&gt;TimerService API&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For more on EJB 3.1 features, check out this &lt;a href="http://blogs.sun.com/kensaks/resource/EJB31-JavaPolis2007-saks.pdf"&gt;presentation&lt;/a&gt; by Kenneth Saks.&lt;br /&gt;&lt;br /&gt;More and more I read about JEE6 and EJB3.1, they look very much like &lt;a href="http://www.springframework.org"&gt;Spring&lt;/a&gt; and &lt;a href="http://www.hibernate.org"&gt;Hibernate&lt;/a&gt;. JEE expert groups finally gets it; what java developers really need from middleware framework instead of what the application server vendors want to offer. It's good to see that they are finally offering a modular server component model (so the customers can pick which Profile is the right fit to deploy their apps), Dependency Injection of objects other than EntityManager, and other features. &lt;a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/weblogic&amp;amp;WT.ac=topnav_products_weblogic"&gt;WebLogic&lt;/a&gt; 10.3 and &lt;a href="http://www-306.ibm.com/software/webservers/appserv/wasproductline/"&gt;WebSphere&lt;/a&gt; are moving towards the same modular server architecture model approach.&lt;br /&gt;&lt;br /&gt;I wonder what will Java EE 7 spec include, may be they will support Aspects and AOP as part of Java SE/EE specification (which Spring already does with AspectJ).</description><link>http://srinip2007.blogspot.com/2008/05/java-ee-6-and-ejb-31-look-very-much.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-3215348307493503599</guid><pubDate>Wed, 14 May 2008 01:54:00 +0000</pubDate><atom:updated>2008-05-13T19:02:54.386-07:00</atom:updated><title>JUnit 4.4 - Hamcrest Asserts</title><description>I had to upgrade the &lt;a href="http://www.junit.org"&gt;JUnit&lt;/a&gt; version I have been using to version 4.4 in a recent project to get &lt;a href="http://www.springframework.org"&gt;Spring&lt;/a&gt;/JUnit integration working with new testing features available in &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/index.html"&gt;Spring 2.5 release&lt;/a&gt; (which make it easy to get a reference to any Spring bean w/o having to specifically load Spring application context). JUnit 4.4 also comes with &lt;a href="http://code.google.com/p/hamcrest/"&gt;Hamcrest&lt;/a&gt; testing framework which has several additional assert statements than what are there in plain JUnit.&lt;br /&gt;&lt;br /&gt;I started using some of these new assert statements which are very BDD'ish in nature and make the test methods more readable on what we are asserting. We no longer have to struggle with the limited number of assert's that are available in JUnit.&lt;br /&gt;&lt;br /&gt;Here is a good &lt;a href="http://www.wakaleo.com/news/39-news/129-talk-on-junit-44-for-the-wellington-jug"&gt;presentation&lt;/a&gt; that talks about the new features in JUnit 4.4 (additional assets, timeout, datapoints etc.)</description><link>http://srinip2007.blogspot.com/2008/05/junit-44-hamcrest-asserts.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-3500230612500187589</guid><pubDate>Wed, 07 May 2008 18:59:00 +0000</pubDate><atom:updated>2008-05-07T12:07:54.258-07:00</atom:updated><title>JavaOne 2008 kickoff</title><description>&lt;a href="http://java.sun.com/javaone/sf/index.jsp"&gt;JavaOne 2008&lt;/a&gt; kicked off Tuesday and the &lt;a href="http://java.sun.com/javaone/sf/2008/articles/javaonewelcome.jsp"&gt;general session&lt;/a&gt; by Sun was all JavaFX related (may be they should have called the conference JavaFXOne instead of JavaOne :).&lt;br /&gt;&lt;br /&gt;I attended couple of SCA presentations, one by Jos and Tjis on using &lt;a href="https://www35.cplan.com/sb191/session_details.jsp?isid=295870&amp;amp;ilocation_id=191-1&amp;amp;ilanguage=english"&gt;SCA and JBI&lt;/a&gt; together in enterprise applications and  another &lt;a href="https://www28.cplan.com/cc191/session_details.jsp?isid=295850&amp;amp;ilocation_id=191-1&amp;amp;ilanguage=english"&gt;presentation&lt;/a&gt; by Mike Edwards. Mike talked about the benefits of SCA, design, implementation, tools used for writing and deploying SCA components and services.&lt;br /&gt;&lt;br /&gt;I posted a &lt;a href="http://www.infoq.com/news/2008/05/sca-jbi-together"&gt;news item&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; with a summary of these presentations.</description><link>http://srinip2007.blogspot.com/2008/05/javaone-2008-kickoff.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-8580942264891965333</guid><pubDate>Sun, 04 May 2008 19:09:00 +0000</pubDate><atom:updated>2008-05-04T12:31:50.835-07:00</atom:updated><title>Getting ready for JavaOne 2008 conference</title><description>I will be attending &lt;a href="http://java.sun.com/javaone/sf/index.jsp"&gt;JavaOne 2008&lt;/a&gt; conference in San Francisco next week. I was there back in &lt;a href="http://java.sun.com/javaone/sf/2006/index.jsp"&gt;2006&lt;/a&gt;, it was a great experience to expand IT professional network and also learn about all new and advanced technologies and frameworks in Java EE/ME/SE, SOA, Web 2.0 categories. JavaOne organizers have also posted  a &lt;a href="http://java.sun.com/developer/technicalArticles/javaone2008/preview/index.html"&gt;Conference Preview&lt;/a&gt; page on their site with details of session tracks and categories which is informative.&lt;br /&gt;&lt;br /&gt;I will try to attend more sessions in &lt;a href="https://www28.cplan.com/cc191/sessions_catalog.jsp?ilc=191-1&amp;amp;ilg=english&amp;amp;isort=&amp;amp;isort_type=&amp;amp;is=yes&amp;amp;icriteria1=26861&amp;amp;icriteria2=+&amp;amp;icriteria9=&amp;amp;icriteria8=&amp;amp;icriteria3="&gt;SOA &amp;amp; Enterprise Integration&lt;/a&gt; track this year to see what all is happening in this area especially in the areas of SCA, ESB, and SOA Security. I am looking forward to conference.&lt;br /&gt;&lt;br /&gt;Here is my tentative schedule:&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;table border="0" cellpadding="3" cellspacing="0" width="650"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;br /&gt;                 &lt;b&gt;&lt;span style="color:red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;             &lt;/td&gt;           &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;                      &lt;table border="1" cellpadding="3" cellspacing="0" width="650"&gt;&lt;tbody&gt;&lt;tr align="center" bgcolor="#bbbbbb"&gt;              &lt;td width="10%"&gt; Time &lt;/td&gt;                              &lt;td&gt; Session ID/Title &lt;/td&gt;             &lt;td width="10%"&gt;Speaker/Company &lt;/td&gt;         &lt;/tr&gt;      &lt;tr bg style="color:#999999;"&gt;&lt;td colspan="3" align="left" valign="top"&gt;&lt;span style="color:white;"&gt;&lt;b&gt;Tuesday  , May       06&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;8:30 AM - 10:30 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Sun General Session Java + YOU  &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;10:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6887&lt;br /&gt;Service-Oriented Architecture and Java™ Technology: Level-Setting Standards, Architecture, and Code&lt;/td&gt;&lt;td align="left" valign="top"&gt;Steve Jones; Duane Nickull&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:30 AM - 8:00 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Tuesday Pavilion Hours: 11:30 a.m. - 8:00 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:50 AM - 12:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Lunch Served from 11:50 a.m. to 2:00 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;12:10 PM - 1:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-4871&lt;br /&gt;SOA and 35 Million Transactions per Day: Mission Impossible?&lt;/td&gt;&lt;td align="left" valign="top"&gt;Matthias Schorer&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;1:30 PM - 3:00 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Sun General Session Java-Centricity: Leveraging Java Technology at the hub of your Digital Life  &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;3:20 PM - 4:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5870&lt;br /&gt;The Best of Both Worlds with Java™ Business Integration and Service Component Architecture&lt;/td&gt;&lt;td align="left" valign="top"&gt;Jos Dirksen; Tijs Rademakers&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;4:20 PM - 4:40 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;4:40 PM - 5:40 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6297&lt;br /&gt;Migrating Intel IT to an Enterprise Service Bus-Based Service-Oriented Architecture&lt;/td&gt;&lt;td align="left" valign="top"&gt;David Johnston; CJ Newburn; Kumar Shiv&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;5:40 PM - 6:00 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;6:00 PM - 7:00 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5850&lt;br /&gt;SCA: Flexible and Agile Comp!  osition  of Distributed Service-Oriented Architecture Applications&lt;/td&gt;&lt;td align="left" valign="top"&gt;Mike Edwards&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;7:00 PM - 7:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Evening Break&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;7:30 PM - 8:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-5150&lt;br /&gt;Event-Driven Service-Oriented Architecture on the Java™ Platform with OSGi and Spring&lt;/td&gt;&lt;td align="left" valign="top"&gt;Balamurali Kothandaraman; Takyiu Liu&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;8:30 PM - 9:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-5613&lt;br /&gt;Jersey: RESTful Web Services Made Easy &lt;/td&gt;&lt;td align="left" valign="top"&gt;Jakub Podlesak; Paul Sandoz&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;9:30 PM - 10:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-5205&lt;br /&gt;All About the Sun Certified Enterprise Architect (SCEA) Exam&lt;/td&gt;&lt;td align="left" valign="top"&gt;Mark Cade; Humphrey Sheil&lt;/td&gt;&lt;/tr&gt;&lt;tr bg style="color:#999999;"&gt;&lt;td colspan="3" align="left" valign="top"&gt;&lt;span style="color:white;"&gt;&lt;b&gt;W!  ednesday , May       07&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;8:30 AM - 9:15 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Oracle General Session Enterprise Application Platform  &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;9:30 AM - 10:30 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5250&lt;br /&gt;Asynchronous Ajax for Revolutionary Web Applications  &lt;/td&gt;&lt;td align="left" valign="top"&gt;Jean-François Arcand; Ted Goddard&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;10:30 AM - 10:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;10:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5918&lt;br /&gt;Open-Source Service-Oriented Architecture with Service Component Architecture and Apache Tuscany&lt;/td&gt;&lt;td align="left" valign="top"&gt;Mario Antollini; Jean-Sebastien Delfino&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:30 AM - 4:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Wednesday Pavilion Hours: 11:30 a.m. - 4:30 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Lunch Served from 11:50 a.m. to 2:00 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;1:30 PM - 2:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6029&lt;br /&gt;It’s All About the SOA: RESTful Service-Oriented Architecture at Overstock.com&lt;/td&gt;&lt;td align="left" valign="top"&gt;Sean Landis; Ian Robertson&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;2:30 PM - 2:50 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;2:50 PM - 3:50 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5318&lt;br /&gt;Dealing with Asynchronicity in Java™ Technology-Based Web Services&lt;/td&gt;&lt;td align="left" valign="top"&gt;Gerard Davison; Manoj Kumar&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;3:50 PM - 4:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;4:10 PM - 5:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5616&lt;br /&gt;JSR 303: From a World of Constraints to Constrain the World&lt;/td&gt;&lt;td align="left" valign="top"&gt;Emmanuel Bernard&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;5:10 PM - 6:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Evening Break&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;5:30 PM - 6:15 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; AMD General Session The Role of the Microprocessor in the Evolution of Java Technology &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;6:30 PM - 7:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-5501&lt;br /&gt;Java™ Champions BOF: The Latest Buzz, Highlights, and Panel Discussion&lt;/td&gt;&lt;td align="left" valign="top"&gt;Calvin Austin; Harshad Oak; Manfred Riem&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;7:30 PM - 8:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-6211&lt;br /&gt;Transactions and Java™ Business Integration (JBI): More Than Java Message Service (JMS)&lt;/td&gt;&lt;td align="left" valign="top"&gt;Frank Kieviet; Murali Pottlapelli&lt;/td&gt;&lt;/tr&gt;&lt;tr bg style="color:#999999;"&gt;&lt;td colspan="3" align="left" valign="top"&gt;&lt;span style="color:white;"&gt;&lt;b&gt;Thursday , May       08&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;8:30 AM - 9:15 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Intel General Session Innovations through Software  &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;9:30 AM - 10:30 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6339&lt;br /&gt;Top 10 Patterns for Scaling Out Java™ Technology-Based Applications &lt;/td&gt;&lt;td align="left" valign="top"&gt;Cameron Purdy&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;10:30 AM - 10:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;10:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6421&lt;br /&gt;Mylyn: Code at the Speed of Thought&lt;/td&gt;&lt;td align="left" valign="top"&gt;Mik Kersten&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:30 AM - 4:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Thurdsay Pavilion Hours: 11:30 a.m. - 4:30 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Lunch Served from 11:50 a.m. to 2:00 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;1:30 PM - 2:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-5706&lt;br /&gt;Service Component Architecture (SCA) and Java™ Platform, Enterprise Edition (Java EE Platform): Integration Inside&lt;/td&gt;&lt;td align="left" valign="top"&gt;Ron Barack; Peter Peshev&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;2:30 PM - 2:50 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;2:50 PM - 4:50 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; LAB-5500&lt;br /&gt;Dynamic Service Composition with OpenESB: Compose a &lt;span class="nfakPe"&gt;JavaOne&lt;/span&gt;&amp;amp;#8480 Conference Survey/Poll Application, Analyze Live Data, and Generate Real-Time Poll Reports&lt;/td&gt;&lt;td align="left" valign="top"&gt;Tuhin Kumar; Rupesh Ramachandran&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;3:50 PM - 4:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;5:10 PM - 6:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Evening Break&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;5:30 PM - 6:15 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Motorola General Session Dial in, Drive Deep: Using Motorola's Platforms to Reach Consumer and Enterprise Markets  &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;6:30 PM - 7:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-5846&lt;br /&gt;Developing Service-Oriented Architecture Applications with OSGi&lt;/td&gt;&lt;td align="left" valign="top"&gt;Keith Babo ; Kevin Conner; Mark Little&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;8:30 PM - 9:20 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; BOF-5495&lt;br /&gt;Untangling the Asynchronous Web&lt;/td&gt;&lt;td align="left" valign="top"&gt;Tim Kimmet; Sangjin Lee&lt;/td&gt;&lt;/tr&gt;&lt;tr bg style="color:#999999;"&gt;&lt;td colspan="3" align="left" valign="top"&gt;&lt;span style="color:white;"&gt;&lt;b&gt;Friday   , May       09&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;8:30 AM - 10:30 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Sun General Session Extreme Innovation &lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;10:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6048&lt;br /&gt;Complex Event Processing at Orbitz&lt;/td&gt;&lt;td align="left" valign="top"&gt;Doug Barth; Matthew O'Keefe&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:50 AM - 12:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;11:50 AM - 11:50 AM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Lunch Served from 11:50 a.m. to 2:00 p.m.&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;1:10 PM - 1:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;1:30 PM - 2:30 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6050&lt;br /&gt;Comparing JRuby and Groovy &lt;/td&gt;&lt;td align="left" valign="top"&gt;Neal Ford&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;2:30 PM - 2:50 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#dedede"&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;3:50 PM - 4:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; Break between sessions&lt;/td&gt;&lt;td align="left" valign="top"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;4:10 PM - 5:10 PM&lt;/td&gt;&lt;td align="left" valign="top" width="50%"&gt; TS-6169&lt;br /&gt;Spring Framework 2.5: New and Notable&lt;/td&gt;&lt;td align="left" valign="top"&gt;Rod Johnson&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description><link>http://srinip2007.blogspot.com/2008/05/getting-ready-for-javaone-2008.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-5149976815981374709</guid><pubDate>Sat, 22 Dec 2007 21:22:00 +0000</pubDate><atom:updated>2007-12-22T13:30:21.156-08:00</atom:updated><title>Agile Software Testing With Spring Framework</title><description>&lt;a href="http://www.springframework.org"&gt;Spring Framework&lt;/a&gt; has a great support for typical integration testing requirements of enterprise java applications.&lt;br /&gt;&lt;br /&gt;We used this &lt;a href="http://static.springframework.org/spring/docs/2.0.x/reference/testing.html"&gt;testing framework&lt;/a&gt; in a JEE project last year when I worked as the architect in the project. Using Spring Testing helped us a lot in not having to code the "mundane" tasks when using Spring, such as loading Spring Application Context, DI, Transaction Management in the test methods, JDBC helper methods to mention some.&lt;br /&gt;&lt;br /&gt;I wrote an article (&lt;a href="http://www.infoq.com/articles/testing-in-spring"&gt;Software Testing With Spring Framework&lt;/a&gt;) on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; about this support with a sample loan processing application.&lt;br /&gt;&lt;br /&gt;With Spring getting more and more popular every day, are there any others who have used the test classes provided by Spring? If so, what has your experience been?</description><link>http://srinip2007.blogspot.com/2007/12/agile-software-testing-with-spring.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-1486819734061210962</guid><pubDate>Thu, 29 Nov 2007 06:14:00 +0000</pubDate><atom:updated>2007-11-28T22:16:57.571-08:00</atom:updated><title>SpringSource's Adrian Colyer Details Spring in Production</title><description>Adrian Colyer from &lt;a href="http://www.springsource.com"&gt;SpringSource&lt;/a&gt; (formerly called Interface21) hosted a webinar on "Spring In Production" topic three weeks ago. The presentation covered the topics on Spring Runtime Kernel architecture, how Spring supports enterprise services like transactions, data access, security, and messaging, and how to tune a Spring-powered application. A white paper on this presentation is now available for download from their website.&lt;br /&gt;&lt;br /&gt;Read more on this &lt;a href="http://www.infoq.com/news/2007/11/spring-production"&gt;post &lt;/a&gt;on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;.</description><link>http://srinip2007.blogspot.com/2007/11/springsources-adrian-colyer-details.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-6971864225016271211</guid><pubDate>Sat, 24 Nov 2007 04:18:00 +0000</pubDate><atom:updated>2007-11-23T20:40:04.609-08:00</atom:updated><title>Spring is like BASF</title><description>I am a big fan on &lt;a href="http://www.springframework.org"&gt;Spring Framework&lt;/a&gt; and I have been using it in various projects I have been the architect on for past few years. Its &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html"&gt;IOC&lt;/a&gt; container is just the beginning. &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/aop.html"&gt;AOP support&lt;/a&gt; and Template framework for &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/jdbc.html#jdbc-JdbcTemplate"&gt;JDBC&lt;/a&gt;, &lt;a href="http://static.springframework.org/spring-ldap/docs/1.2.0/reference/#simple-ldap-template"&gt;LDAP&lt;/a&gt;, &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/jms.html#jms-jmstemplate"&gt;JMS&lt;/a&gt;, &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/cci.html#cci-using-template"&gt;JCA&lt;/a&gt;, JNDI, &lt;a href="http://acegisecurity.org/"&gt;Security&lt;/a&gt;, &lt;a href="http://www.springframework.org/osgi"&gt;OSGI&lt;/a&gt;, and even &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/testing.html#integration-testing"&gt;Integration Testing&lt;/a&gt; support makes Spring a powerfuly integration middleware framework no matter what other open source or commercial frameworks you are using in the technology stack of your application.&lt;br /&gt;&lt;br /&gt;I always joke with my colleagues and friends that Spring is like &lt;a href="http://www.basf.com/corporate/index.html"&gt;BASF&lt;/a&gt; whose motto is "&lt;span style="font-style: italic;"&gt;We don't make a lot of products you buy; we make a lot of products you buy better&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Same is the case with Spring Framework, it doesn't try to be everything to everybody. But the seamless integration of the framework into any other framework whether it's &lt;a href="http://www.hibernate.org"&gt;Hibernate&lt;/a&gt;, JPA, JMX , or dynamic scripting languages makes Spring's unofficial motto as "&lt;span style="font-style: italic;"&gt;We don't make lot of the frameworks you use in your enterprise applications; we make lot of the frameworks you use in your enterprise applications way better!&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;And the vision and roadmap &lt;a href="http://www.springsource.com"&gt;SpringSource&lt;/a&gt; team is moving forward with in regards to Spring Framework is a proof that Spring is here to stay and it will dictate how Java EE middleware architecture will evolve in next few years.</description><link>http://srinip2007.blogspot.com/2007/11/spring-is-like-basf.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-6798981374544415988</guid><pubDate>Mon, 19 Nov 2007 04:27:00 +0000</pubDate><atom:updated>2007-11-20T22:53:11.750-08:00</atom:updated><title>Service Oriented Objects</title><description>One of my colleagues at work pointed me to the article by Bill Venners (&lt;a href="http://www.artima.com"&gt;Artima&lt;/a&gt;) on "&lt;a href="http://www.artima.com/interfacedesign/ServiceOriented.html"&gt;Service oriented Objects&lt;/a&gt;". It's an interesting read.&lt;br /&gt;&lt;br /&gt;Bill takes the statement Booch made on the objects that the "objects have state, behavior, and identity" and goes on to contrast different types of objects based on their state, behavior, and identity characteristics. I am copying a snippet from Bill's post below.&lt;br /&gt;&lt;br /&gt;"Although in theory every object has state, behavior, and identity, in practice different object designs use state, behavior, and identity differently. Granted, most object designs I have encountered have had both interesting state and interesting behavior, as predicted by Booch's statement. I call this most common kind of object Service-Oriented. I have often encountered objects, however, that have little or no interesting behavior. These objects, which I call Messengers, are composed primarily of state. On the other hand, I have on occasion encountered objects that have little or no interesting state. These objects, dubbed Flyweights by the Design Patterns book, are composed primarily of behavior. Lastly, some objects are immutable, which means that once their state is established at the beginning of their lifetimes, the state never changes. Although every object does indeed have a unique identity, immutable objects are differentiated more often by value than by identity."&lt;br /&gt;&lt;br /&gt;This article changed the way I have been thinking about Objects (mainly from the state and behavior aspects; not from the identity viewpoint).&lt;br /&gt;&lt;br /&gt;I look forward to more articles from Bill on this topic.</description><link>http://srinip2007.blogspot.com/2007/11/service-oriented-objects.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-7749143205608225853</guid><pubDate>Mon, 19 Nov 2007 04:17:00 +0000</pubDate><atom:updated>2007-11-23T16:24:17.637-08:00</atom:updated><title>Architecting For Performance And Scalability - Panel Discussion @ QCon</title><description>At QCon two week ago, I attended a &lt;a href="http://qcon.infoq.com/sanfrancisco/presentation/Panel+Discussion%3A+Architecting+for+Performance+%26+Scalability"&gt;panel discussion&lt;/a&gt; on topic "Architecting For Performance And Scalability" moderated by Floyd Marinescu. The panelists, in the order that they made the starting comments, were Cameron Purdy (&lt;a href="http://www.oracle.com/"&gt;Oracle&lt;/a&gt;), Ari Zilka (&lt;a href="http://www.terracotta.com/"&gt;Terracotta&lt;/a&gt;), Randy Shoup (&lt;a href="http://www.ebay.com/"&gt;eBay&lt;/a&gt;), Peter Nickolov (&lt;a href="http://www.3tera.com/"&gt;3Tera&lt;/a&gt;), Brian Zimmer (&lt;a href="http://www.orbitz.com/"&gt;Orbitz&lt;/a&gt;), and Nati Shalom (&lt;a href="http://www.gigaspaces.com/"&gt;GigaSpaces&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Here are some notes I took during panel discussion:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Starting Comments:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cameron:&lt;br /&gt;We have to architect the systems to run on many servers right from the design phase.&lt;br /&gt;&lt;br /&gt;Ari:&lt;br /&gt;There are two types of applications:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    load balanced&lt;/li&gt;&lt;li&gt;    partitioned&lt;/li&gt;&lt;/ul&gt;   These are contrasted based on scalability v. availability comparison.&lt;br /&gt;&lt;br /&gt;Load Balanced: These apps have the high availability but they are hard to scale.&lt;br /&gt; &lt;br /&gt;Partitioned: These applications are based on "divide and conquer" philosophy (examples: Google's &lt;a href="http://labs.google.com/papers/mapreduce.html"&gt;MapReduce&lt;/a&gt; and Lucene's &lt;a href="http://lucene.apache.org/hadoop/"&gt;Hadoop&lt;/a&gt;). They are scalable but it's hard to make them highly available.&lt;br /&gt;&lt;br /&gt;Randy:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We have to make tradeoffs with manageability and cost.&lt;/li&gt;&lt;li&gt;No system is 100% in all the above mentioned areas.&lt;/li&gt;&lt;li&gt;At eBay, the resource tier is partitioned.&lt;/li&gt;&lt;li&gt;They use 100 different logical databases.&lt;/li&gt;&lt;li&gt;Application data is split among these partitioned databases.&lt;/li&gt;&lt;li&gt;Application server knows which split or slice to go to get the data.&lt;/li&gt;&lt;li&gt;And all this is abstracted from the client.&lt;/li&gt;&lt;/ul&gt;Brian:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They have 4 tiers in the Orbitz application.&lt;/li&gt;&lt;li&gt;Architecture should be based on the fact that the application will evolve in an "organic growth" fashion.&lt;/li&gt;&lt;/ul&gt;Peter:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We should first get a system productized only then scalability makes sense.&lt;/li&gt;&lt;li&gt;Enterprise Applications should be scalable in the following 3 areas:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Application - code side (examples: MapReduce, AMP apps)&lt;/li&gt;&lt;li&gt;Infrastructure (grid/utility computing)&lt;/li&gt;&lt;li&gt;Architecture - backups, failover&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Nati:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Stateful applications are scalable linearly.&lt;/li&gt;&lt;li&gt;He talked about 2 types of scalability:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Data&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Operational&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;One option for the scalability is to move database off to a separate layer&lt;/li&gt;&lt;li&gt;Nati talked about end-to-end scalability v. performance. He said the scalability shouldn't be an after-thought in the software development process. We should include it right from the design and development stages.&lt;/li&gt;&lt;li&gt;We can't solve the scalability at a silo level.&lt;/li&gt;&lt;li&gt;Items to consider to communicate and collaborate with the development teams in the company are:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Framework&lt;/li&gt;&lt;li&gt;Guidelines&lt;/li&gt;&lt;li&gt;Make scalability a common knowledge&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;The panelists then talked about Green Computing where data center space and data center power could become the problems. And Virtualization also helps in this area.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Questions from audience:&lt;/span&gt;&lt;br /&gt;Q. RIA and AJAX based applications are more chatty - how do they affect the scalability?&lt;br /&gt;If you can't split it, you can't scale it. There are two partition types at eBay: functional and horizontal. All the partitions are seen as a single logical transaction to the client. The architecture transition should be from one largest database to several service level databases. It is often much easier way to design this way than to use transaction in everything.&lt;br /&gt;&lt;br /&gt;Other challenge is "State" (metadata around the conversation).&lt;br /&gt;&lt;br /&gt;Ari talked about Open source Flash technology with the example of RedFive where they are pushing the streams thru Terracotta. He talked about static stream ala YouTube and real-time stream ala Webex. Change the way you think and look at the end-goal.&lt;br /&gt;&lt;br /&gt;Q. How should the scalability be managed in non-AJAX applications which are more chatty?&lt;br /&gt;Non-AJAX applications are very different than what it is in AJAX applications when it comes to the interaction with the server in terms of number of requests. We also have to deal with keep-alive issues in this scenario.&lt;br /&gt;&lt;br /&gt;The panelists recommended that we make conscious decisions when it comes to scalability. One example is to measure the response time for a really simple server (aka null &amp;amp; void servlet) and  see how close to zero seconds the response time for this servlet is. Also, good separation of concerns is very important.&lt;br /&gt;&lt;br /&gt;Nati talked about SLA based computing and SPOF in a partitioned environment. He mentioned&lt;br /&gt;master worker pattern (using spaces) and scatter gather pattern which decompose the task at hand and recompose after the task has been completely executed.&lt;br /&gt;&lt;br /&gt;Ari explained the difference between a Hub &amp;amp; Spoke v. peer to peer architecture. He said we should analyze and understand the consumption patterns of the data and ask questions like "must you share everything everywhere?"&lt;br /&gt;&lt;br /&gt;He said in partitioned applications: p-2-p and hub-spoke architectures are the same.</description><link>http://srinip2007.blogspot.com/2007/11/architecting-for-performance-and.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-4622078231529087735</guid><pubDate>Mon, 19 Nov 2007 01:23:00 +0000</pubDate><atom:updated>2007-11-18T19:52:34.096-08:00</atom:updated><title>QCon - Trends in Agile Development by Kent Beck</title><description>I attended the keynote presentation by Kent Beck (&lt;a href="http://www.agitar.com/"&gt;Agitar&lt;/a&gt; Fellow) on "Trends in Agile Development" topic. This was the first session in &lt;a href="http://qcon.infoq.com/sanfrancisco/conference/"&gt;QCon 2007&lt;/a&gt; to officially kick-off the conference (there were tutorials on &lt;a href="http://qcon.infoq.com/sanfrancisco/schedule/monday.jsp"&gt;Monday&lt;/a&gt; and &lt;a href="http://qcon.infoq.com/sanfrancisco/schedule/tuesday.jsp"&gt;Tuesday&lt;/a&gt; but the actual conference started on &lt;a href="http://qcon.infoq.com/sanfrancisco/schedule/wednesday.jsp"&gt;Wednesday&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Kent started his &lt;a href="http://qcon.infoq.com/sanfrancisco/presentation/Trends+in+Agile+Development"&gt;presentation&lt;/a&gt; talking about the business trends in the current agile software development environment.&lt;br /&gt;&lt;br /&gt;He listed the following 4 factors that are influencing these business trends in agile development.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Accountability&lt;/li&gt;&lt;li&gt;Responsibility&lt;/li&gt;&lt;li&gt;Transparency&lt;/li&gt;&lt;li&gt;Relationship&lt;/li&gt;&lt;/ul&gt;He said "Transparency is power" and keeping secrets in a software development project is a position of weakness. He also said the trend towards transparency continues.&lt;br /&gt;&lt;br /&gt;Kent said that "off-shoring" is not a quest for lowering costs, but to find reliable off-shore business and technical partners and mentioned about the quality of projects implemented abroad.&lt;br /&gt;&lt;br /&gt;Talking about software defects, he jokingly said that the bugs are "little things that crawl into code while we are asleep".&lt;br /&gt;&lt;br /&gt;He also said that social evolution and new generation of business professionals are impacting the way we develop and manage the agile projects.&lt;br /&gt;&lt;br /&gt;Kent compared how the sales people work, based on quotas v. sales and he said it should be the same for software development (IT) professionals as well where our performance is dependent on what we deliver with quality (sales) than what we commit to deliver (quotas).&lt;br /&gt;&lt;br /&gt;The reliability of software is as important as the reliability of the software development process followed to develoop that software.&lt;br /&gt;&lt;br /&gt;Speaking of the the users of agile methodologies, Kent said Agile methodologies are being used in large and small companies as well as large and small project teams.&lt;br /&gt;&lt;br /&gt;He talked about two types of skills that are essential to excel in an agile development environment: Social and Technical Skills. He said social skills are more important than technical skills and suggested that every one should learn and improve the listening skills.&lt;br /&gt;&lt;br /&gt;He also talked about "Appreciative attitude" and "Emotional Intelligence" as the important ingredients in a successful agaile development team.&lt;br /&gt;&lt;br /&gt;Talking about Integrity, Kent gave an example of committing to new features in a project when the features already committed to deliver aren't even completed yet. For example, we shouldn't do things like promising additional features when the current commitments are not done, saying "I am not done but I will give you more later".&lt;br /&gt;&lt;br /&gt;In Technical Skills category, he listed the following three items:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Incremental Design&lt;/li&gt;&lt;li&gt;Automated Testing&lt;/li&gt;&lt;li&gt;Self Education&lt;/li&gt;&lt;/ul&gt;Kent mentioned that his new book "&lt;a href="http://www.amazon.com/Implementation-Patterns-Kent-Beck/dp/0321413091"&gt;Implementation Patterns&lt;/a&gt;" is out (Read this book's &lt;a href="http://www.infoq.com/articles/implementations-patterns-br"&gt;review&lt;/a&gt; on InfoQ).&lt;br /&gt;&lt;br /&gt;He suggested that we take a minute at the end of the daily stand-up meetings and appreciate on one good thing we did as a team. We should ask the following questions to stay successful in agile projects:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What does your team do well and what you can do to do more of it?&lt;/li&gt;&lt;li&gt;How could you use agile techniques to enhance your strengths?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Responding to a question from the audience, he said the geographic distribution has nothing or little to do with agility. Agility is an attitude and it can be learned and adapted in both co-located and geographically distributed project teams.&lt;br /&gt;&lt;br /&gt;Kent also said we need to augment XP with Domain Driven Design (DDD) techniques and follow the usability practices at the same time. For small scale designs, we should use         Domain Specific Language (DSL) based architectures.&lt;br /&gt;&lt;br /&gt;He concluded the presentation by saying that designing or coding directly shouldn't be the question but what's more important is to ask questions like "what are our principles?" and "what business problems are we trying to solve in the project".&lt;br /&gt;&lt;br /&gt;Kent listed some good resources on Agile methodologies and XP based software development:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Article on Getting Started with XP (www.threeriversinstitute.org)&lt;/li&gt;&lt;li&gt;Dale Emery’s &lt;a href="http://www.dhemery.com/"&gt;web site&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.yahoo.com/group/extremeprogramming"&gt;XP Mailing lists&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Agitar dashboards&lt;/li&gt;&lt;li&gt;Test-Driven Development: By Example&lt;/li&gt;&lt;li&gt;Extreme Programming Explained, 2nd Edition&lt;/li&gt;&lt;li&gt;Implementation Patterns&lt;/li&gt;&lt;/ul&gt;</description><link>http://srinip2007.blogspot.com/2007/11/qcon-trends-in-agile-development-by.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-6087919743391246067</guid><pubDate>Fri, 16 Nov 2007 06:12:00 +0000</pubDate><atom:updated>2007-11-15T22:58:22.662-08:00</atom:updated><title>What I Liked About QCon 2007</title><description>Like I mentioned in the previous &lt;a href="http://srinip2007.blogspot.com/2007/11/i-was-at-qcon-conference-in-san.html"&gt;blog entry&lt;/a&gt;, I attended QCon 2007 last week. There are several things about this conference that I liked more than the other conferences I attended in the recent past including &lt;a href="http://java.sun.com/javaone/sf/2007/index.jsp"&gt;JavaOne&lt;/a&gt;. I thought I would list what I liked about QCon conference here.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All the tracks were excellent covering the latest and real world practical business and technology areas such as Architecture Quality (&lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=63"&gt;Part 1&lt;/a&gt; and &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=76"&gt;Part 2&lt;/a&gt;), Architecting for &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=80"&gt;Performance and Scalability&lt;/a&gt;,  &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=69"&gt;SOA&lt;/a&gt; (REST to be specific), &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=65"&gt;Agile&lt;/a&gt; Software Development, &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=66"&gt;Client Technologies&lt;/a&gt;, &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=71"&gt;Emerging Technologies&lt;/a&gt;, &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=73"&gt;Application Security&lt;/a&gt;,  and &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=68"&gt;.NET&lt;/a&gt;. They were as diverse as they were of quality. The other tracks on &lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=67"&gt;Ruby&lt;/a&gt; and "&lt;a href="http://qcon.infoq.com/sanfrancisco/tracks/show_track.jsp?trackOID=70"&gt;Architectures&lt;/a&gt; You Always wondered about" gave me a good introduction to the new and popular scripting language and learn the real-world experiences of the architects who have designed and have been managing the large scale websites respectively.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Having the presenters from end-user companies like &lt;a href="http://www.ebay.com/"&gt;eBay&lt;/a&gt;, &lt;a href="http://www.yahoo.com/"&gt;Yahoo&lt;/a&gt;, &lt;a href="http://www.orbitz.com/"&gt;Orbitz&lt;/a&gt;, and &lt;a href="http://www.linkedin.com/"&gt;LinkedIn&lt;/a&gt; gave the attendees a great perspective on the new trends in technology/design solutions these architects have come up with to tackle the scalability and latency architectural challenges in their projects. It was refreshing to hear they emphasize the "simplicity" in the design and architecture of the web applications instead of using heavy-weight technologies such as EJB, XA transactions etc.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Speaker-To-Attendee ratio was higher compared to other major conferences, which really helped the attendees to interact with the speakers and panel members more closely than at the other conferences. I think this is what makes it worth to pay for and attend the IT/Java conferences rather than just sit there and stare at the slides for an hour, then go to the next presentation and do the same thing all over again.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The 30-minute break between each session (instead of 15 minute break that other conferences have between sessions) made a big difference too. This gave the attendees a chance to talk to the presenter(s) of the session they just attended with any follow-up questions, catch up with other attendees on if and how they are using the technologies or frameworks that were just presented, get a cup of coffee, and still have time to decide which session to attend next.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Technical Panels were very thought provoking. The first panel discussion I attended was on &lt;a href="http://qcon.infoq.com/sanfrancisco/presentation/Panel+Discussion%3A+Architecting+for+Performance+%26+Scalability"&gt;Architecting for Scalability and Performance&lt;/a&gt; on Wednesday morning. The panel was well represented by architects from both the vendor and the end-user companies. This made the discussions unbiased, no self-promotion, and more interesting and informative to the attendees.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;BOF on &lt;a href="http://www.gigaspaces.com/"&gt;GigaSpaces&lt;/a&gt; on Thursday evening was great. I attended this BOF one hosted by Owen Taylor from GigaSpaces.  Owen is a great teacher and he spent extra time helping us get the demo application running using GigaSpaces API. I am really thrilled to learn more about this technology. I read some articles about Space Based Architecture (SBA) before the conference, but this was my first time listening and learning more about it from the architects and developers who have founded this technology.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href="http://qcon.infoq.com/sanfrancisco/presentation/Keynote+%2F+Panel"&gt;Keynote Panel&lt;/a&gt; (and the last presentation of the conference) on Friday evening was innovative and interesting. This was hosted by none other than &lt;a href="http://www.martinfowler.com/"&gt;Martin Fowler&lt;/a&gt;. The panelists were the hosts of the technical tracks in the conference. It was interesting because this panel discussion was kind of to summarize the whole conference in about an hour and at the same time talk about what's coming in the Java/.NET/Agile/SOA areas.&lt;/li&gt;&lt;/ul&gt;Floyd and &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; team (along with &lt;a href="http://jaoo.dk/conference/"&gt;JAOO&lt;/a&gt; group) did a great job in coordinating the conference which was a great experience to be part of. I look forward to attending the next QCon conference.</description><link>http://srinip2007.blogspot.com/2007/11/what-i-liked-about-qcon-2007.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-5711777037675958980</guid><pubDate>Wed, 14 Nov 2007 04:13:00 +0000</pubDate><atom:updated>2007-11-18T20:26:21.389-08:00</atom:updated><title>QCon 2007 in San Francisco</title><description>I was at the &lt;a href="http://qcon.infoq.com/"&gt;QCon&lt;/a&gt; conference in San Francisco last week. It was a great experience to be there. I learned a lot not only from the presentation speakers and panelists but also from the attendees who came from different countries (England, Syria, Australia to name a few) and companies. Thanks to Floyd and the &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; team, the conference was a great success. I met Eric Evans (&lt;a href="http://www.domaindrivendesign.org/"&gt;Domain Driven Design&lt;/a&gt;), Nati Shalom and Owen Taylor (from &lt;a href="http://www.gigaspaces.com/"&gt;GigaSpaces&lt;/a&gt;), Ari Zilka and Jonas Boner (&lt;a href="http://www.terracotta.org/"&gt;Terracotta&lt;/a&gt;), Dan Pritchett and Randy Shoup (&lt;a href="http://www.ebay.com/"&gt;eBay&lt;/a&gt;), Brian Zimmer (&lt;a href="http://www.orbitz.com/"&gt;Orbitz&lt;/a&gt;) to name a few distinguished presenters at the conference. I will be posting more about the sessions I attended during the conference in next few days.</description><link>http://srinip2007.blogspot.com/2007/11/i-was-at-qcon-conference-in-san.html</link><author>noreply@blogger.com (srinip)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-3235676453088933570</guid><pubDate>Wed, 18 Jul 2007 02:15:00 +0000</pubDate><atom:updated>2007-07-17T19:15:44.547-07:00</atom:updated><title>First message on the blog</title><description>I just joined this blog site.</description><link>http://srinip2007.blogspot.com/2007/07/first-message-on-blog.html</link><author>noreply@blogger.com (srinip)</author></item></channel></rss>
