<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7907778724738449118</id><updated>2012-01-27T23:55:54.993-08:00</updated><category term='ProjectWorld 2009'/><category term='AOP'/><category term='Book Review'/><category term='Aspects'/><category term='Domain Driven Design'/><category term='QConSF 2008 Conference'/><category term='OSGi'/><category term='Java EE'/><category term='Spring Framework'/><category term='NFJS'/><category term='NFJS Magazine'/><category term='Modeling'/><category term='ITARC 2009'/><category term='ITARC 2010'/><category term='SATURN 2010'/><category term='Security'/><category term='Agile Architect'/><category term='Presentations'/><category term='JavaOne'/><category term='Spring Portfolio'/><category term='Detroit JUG'/><category term='ITARC'/><category term='Conferences'/><category term='AOM'/><category term='STS'/><category term='CodeMash 2009'/><category term='Modularity'/><category term='QCon'/><category term='Java EE 6'/><category term='ITARC Denver 2010'/><category term='SATURN'/><category term='JavaOne 2010'/><category term='ITARC Austin'/><category term='SpringSource'/><category term='Architecture Enforcement'/><title type='text'>srinip</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6537818097134432824</id><published>2011-10-10T19:15:00.000-07:00</published><updated>2011-10-10T20:40:16.158-07:00</updated><title type='text'>My Session at Upcoming ProjectWorld 2011 Conference</title><content type='html'>I will be speaking at &lt;a href="http://www.projectworld.com/"&gt;ProjectWorld 2011 Conference&lt;/a&gt; next month in Orlando in November. The title of my session is:&lt;br /&gt;&lt;br /&gt;Establishing Enterprise Security and Risk Management Program in an Agile Software Development Organization&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Session Summary Details:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this session, I will discuss the details of a security program we established to build security risk aspects into all phases of Agile Development process. As part of this new program, we defined an agile, iterative, and repeatable security architecture process that includes touch-points with development process at all levels of the agile projects (Feature, Sprint, Release, Project and Product levels).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Key Takeaways:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How the Enterprise Security and Risk Management Program works and its touch-points with other processes in the organization such as Product Lifecycle, Software Development Lifecycle (SDLC).&lt;/li&gt;&lt;li&gt;Several Process Flow Diagrams to help learn and use the product risk management program elements and process activity details.&lt;/li&gt;&lt;li&gt;Templates for assessing Product Risk Profile, Security Risk Assessment, Security Review and Sign-off.&lt;/li&gt;&lt;li&gt;Agile Security Architecture Assessment Excel spreadsheet template that the attendees can use in their own projects right away.&lt;/li&gt;&lt;/ul&gt;The conference event also includes other sessions like Agile Summit, Advanced PMO Summit, and back by popular demand is the YOUR SPACE 2011.&lt;br /&gt;&lt;br /&gt;Twitter Hashtag: #PWWCBA&lt;br /&gt;&lt;br /&gt;If you are interested attending this excellent project leadership conference event, you can do so at the &lt;a href="https://www.iirusa.com/projectworld-info/registration.xml?step=start"&gt;registration page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Contact me for the speaker discount to save on the registration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6537818097134432824?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6537818097134432824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6537818097134432824' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6537818097134432824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6537818097134432824'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2011/10/my-session-at-upcoming-projectworld.html' title='My Session at Upcoming ProjectWorld 2011 Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6973867507467456780</id><published>2011-10-10T19:09:00.000-07:00</published><updated>2011-10-10T19:15:29.651-07:00</updated><title type='text'>JavaOne 2011 Conference Last Week</title><content type='html'>I attended and spoke at &lt;a href="http://www.oracle.com/javaone/index.html"&gt;JavaOne 2011 Conference&lt;/a&gt; last week. This is my second time attending JavaOne as a speaker. My &lt;a href="https://oracleus.wingateweb.com/scheduler/eventcatalog/eventCatalogJavaOne.do"&gt;session&lt;/a&gt; was on "Securing Enterprise Java Applications on GlassFish and OpenMQ Servers".&lt;br /&gt;&lt;br /&gt;This year's JavaOne theme was to "Move Java Forward". There were lot of interesting announcements made in Java ME, SE, and EE Platforms with JEE future road map with more focus on the support for Cloud Computing and Multi-tenant Applications.&lt;br /&gt;&lt;br /&gt;I &lt;a href="http://www.infoq.com/news/2011/10/javaone-strategy-keynote"&gt;wrote&lt;/a&gt; about the strategy keynote given at the conference on Tuesday.&lt;br /&gt;&lt;br /&gt;I am looking forward to next year's conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6973867507467456780?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6973867507467456780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6973867507467456780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6973867507467456780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6973867507467456780'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2011/10/javaone-2011-conference-last-week.html' title='JavaOne 2011 Conference Last Week'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6147486400689426728</id><published>2011-08-30T19:49:00.000-07:00</published><updated>2011-08-30T19:55:13.879-07:00</updated><title type='text'>AppSec USA 2011 Conference - My talk on Messaging Security</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-VDY78-LPS9s/Tl2iProPc1I/AAAAAAAAAM0/ASoZNhr7mk8/s1600/appsecusa-promo.gif"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 250px; height: 200px;" src="http://1.bp.blogspot.com/-VDY78-LPS9s/Tl2iProPc1I/AAAAAAAAAM0/ASoZNhr7mk8/s320/appsecusa-promo.gif" alt="" id="BLOGGER_PHOTO_ID_5646847898085716818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I will be speaking at &lt;a href="http://www.appsecusa.org/"&gt;AppSec USA 2011 Conference&lt;/a&gt; next month in Minneapolis. The title of my session is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.appsecusa.org/talks.html#omq"&gt;Messaging Security using GlassFish 3.1 and Open Message Queue&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;GlassFish application server version 3.1 and Open Message Queue container offer excellent messaging security features. My talk will include discussion on how to enable and configure security for various components in the messaging architecture. This includes Authentication and Authorization for controlling access to the message broker components as well as how to implement message level security using encryption techniques.&lt;br /&gt;&lt;br /&gt;I will also discuss the monitoring aspect and how we can use JMX API to monitor and manage various messaging resources such as the Broker, Services, Connections, Destinations, Producers, Consumers and Messages. I will demonstrate all the security features using a sample Java EE application running on GlassFish 3.1 and Open MQ.&lt;br /&gt;&lt;br /&gt;They also have a &lt;a href="http://www.appsecusa.org/strengthen.html"&gt;Charity 5K/10K Run&lt;/a&gt; being organized as part of the conference events which I will most probably participate.&lt;br /&gt;&lt;br /&gt;If you are interested in attending, here is the link to register for the conference:&lt;br /&gt;http://www.appsecusa.org/attend.html&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6147486400689426728?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6147486400689426728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6147486400689426728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6147486400689426728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6147486400689426728'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2011/08/appsec-usa-2011-conference-my-talk-on.html' title='AppSec USA 2011 Conference - My talk on Messaging Security'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-VDY78-LPS9s/Tl2iProPc1I/AAAAAAAAAM0/ASoZNhr7mk8/s72-c/appsecusa-promo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-2481299189193589929</id><published>2011-08-28T13:19:00.000-07:00</published><updated>2011-08-28T13:29:38.516-07:00</updated><title type='text'>NoSQL Now 2011 Conference in San Jose Last Week</title><content type='html'>I attended the &lt;a href="http://nosql2011.wilshireconferences.com/"&gt;NoSQL Now 2011 Conference&lt;/a&gt; in San Jose last week. It was a great experience to meet others who are currently working on or exploring the option of using a NoSQL database in their organizations.&lt;br /&gt;&lt;br /&gt;Conference site (&lt;a href="http://www.sanjose.org/plan-a-meeting-event/venues/convention-center"&gt;San Jose Convention Center&lt;/a&gt;) was a great location. The conference session snapshot on computer monitors to show what all sessions are scheduled at a specific time was very helpful. I could look at all the session summaries at the same time and decide which one to attend. The conference mobile app (&lt;a href="http://guidebookapp.com/"&gt;Guidebook&lt;/a&gt;) was also very helpful in checking the conference session schedule, details and slide deck from anywhere at the conference. Attendees getting access to the presentations before hand is a great idea.&lt;br /&gt;&lt;br /&gt;I gave a &lt;a href="http://nosql2011.wilshireconferences.com/sessionPop.cfm?confid=64&amp;amp;proposalid=4021"&gt;talk on NoSQL Security&lt;/a&gt; topic and it was a good discussion and well received by the attendees. NoSQL databases like &lt;a href="http://www.mongodb.org/"&gt;MongoDB&lt;/a&gt;, &lt;a href="http://cassandra.apache.org/"&gt;Cassandra&lt;/a&gt;, and &lt;a href="http://neo4j.org/"&gt;Neo4J&lt;/a&gt; (which are the NoSQL databases I covered in my session) have decent application security support (authentication, authorization, encryption) but there is still room for improvement in this area. For example, record/entry level data encryption, role based access control (RBAC) can be better than what's there right now.&lt;br /&gt;&lt;br /&gt;Overall, NoSQL Now was a great learning event and an excellent forum to meet and network others who are working in the same space. Thanks to Tony, Nerrisa and his team from &lt;a href="http://www.wilshireconferences.com/"&gt;Wilshire Conferences&lt;/a&gt; group and Dan McCreary for organizing the conference. Can't wait for the next year's conference.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-2481299189193589929?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/2481299189193589929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=2481299189193589929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/2481299189193589929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/2481299189193589929'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2011/08/nosql-now-2011-conference-in-san-jose.html' title='NoSQL Now 2011 Conference in San Jose Last Week'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-3435831563068930885</id><published>2011-08-16T16:08:00.001-07:00</published><updated>2011-08-16T16:16:27.528-07:00</updated><title type='text'>NoSQL Now 2011 Conference - My Session: Security Considerations in NoSQL Data Access</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-VnQfYnw9skI/Tkr6Jr-1zdI/AAAAAAAAAMU/onO9W3ooxt4/s1600/EventButton_Speaking.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 208px; height: 104px;" src="http://4.bp.blogspot.com/-VnQfYnw9skI/Tkr6Jr-1zdI/AAAAAAAAAMU/onO9W3ooxt4/s320/EventButton_Speaking.jpg" alt="" id="BLOGGER_PHOTO_ID_5641596527567031762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I will be speaking at &lt;a href="http://nosql2011.wilshireconferences.com/"&gt;NoSQL Now 2011 Conference&lt;/a&gt; next week. My title of my &lt;a href="http://nosql2011.wilshireconferences.com/sessionPop.cfm?confid=64&amp;amp;proposalid=4021"&gt;session&lt;/a&gt; is:&lt;br /&gt;&lt;br /&gt;Security Considerations in NoSQL Data Access&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The NoSQL DB's have been getting lot of attention lately and there hasn't been much discussion on the security of the applications accessing these non relational databases.&lt;br /&gt;&lt;br /&gt;The main focus of my talk will be to give an overview of the current state of security support by the leading NoSQL DB vendors like MongoDB, Neo4J, Cassandra, and CouchDB. I will also discuss the emerging trends, tools and techniques, and best practices in the NoSQL Data Security space.&lt;br /&gt;&lt;br /&gt;It's great to see an entire conference focusing on one of the emerging trends in software application development area such as the NoSQL Databases.&lt;br /&gt;&lt;br /&gt;If you are interested in attending the conference, you can &lt;a href="http://nosql2011.wilshireconferences.com/reg.cfm"&gt;register&lt;/a&gt; for it at the following link:&lt;br /&gt;&lt;br /&gt;http://nosql2011.wilshireconferences.com/reg.cfm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-3435831563068930885?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/3435831563068930885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=3435831563068930885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3435831563068930885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3435831563068930885'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2011/08/nosql-now-2011-conference-my-session.html' title='NoSQL Now 2011 Conference - My Session: Security Considerations in NoSQL Data Access'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-VnQfYnw9skI/Tkr6Jr-1zdI/AAAAAAAAAMU/onO9W3ooxt4/s72-c/EventButton_Speaking.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4951870141150779120</id><published>2011-02-28T22:17:00.000-08:00</published><updated>2011-02-28T22:19:51.524-08:00</updated><title type='text'>Training Class on Enterprise Java Application Development using Spring and Hibernate</title><content type='html'>I am organizing a free training class in the Austin area on "Enterprise Java Development Using Spring and Hibernate Frameworks". If you live in the area and are interested in attending this class, here is the registration link:&lt;br /&gt;&lt;br /&gt;http://enterprise-java-spring.eventbrite.com/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Training Class Details:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="vevent"&gt;&lt;span class="description"&gt;&lt;strong&gt;Title:&lt;/strong&gt;&lt;br /&gt;Training: Enterprise Java Application Development using Spring and Hibernate&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Session Format:&lt;/strong&gt; Tutorial&lt;br /&gt;&lt;strong&gt;Date:&lt;/strong&gt; March 12, 2011 (Saturday)&lt;br /&gt;&lt;strong&gt;Time:&lt;/strong&gt; 9 AM to 1 PM&lt;br /&gt;&lt;strong&gt;Duration:&lt;/strong&gt; 4 hours&lt;br /&gt;&lt;strong&gt;Target Audience:&lt;/strong&gt; Java/Java EE Developers and Solution Architects&lt;br /&gt;&lt;strong&gt;Session Type:&lt;/strong&gt; Introductory (&lt;em&gt;Note:&lt;/em&gt;  If you are already familiar with Spring and Hibernate frameworks, feel  free to skip this class and sign-up for the next session where I will  cover the advanced topics in Spring.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Location:&lt;/strong&gt; IASA Global Headquarters&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Address:&lt;/strong&gt;&lt;br /&gt;11044 Research Blvd.&lt;br /&gt;Suite B-400&lt;br /&gt;Austin, TX 78759&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Abstract:&lt;/strong&gt;&lt;br /&gt;Since  its first release back in 2004, Spring Framework has become a popular  choice for developing enterprise applications. At the core, Spring  supports Dependency Injection (DI), Aspect-oriented Programming (AOP),  and enterprise service abstraction. After a brief overview of design  concepts like DI and AOP, this tutorial focuses on the last part -  enterprise service abstraction that helps the Java developers to  integrate their applications with many widely used technologies.&lt;br /&gt;&lt;br /&gt;In  this tutorial, we will build a web application based on the widely used  application architecture layers (Database, Data Access, Domain,  Service, Controller, and Presentation), add persistence (using JPA and  Hibernate 3) in the DA layer and transaction management (using Spring  Transaction Management) in the Service layer. We will add the  application security (authentication &amp;amp; role based authorization) to  the application using Spring Security.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tutorial Outline&lt;/strong&gt; (with estimated coverage time in minutes):&lt;br /&gt;- Introduction (15)&lt;br /&gt;- Example Web Application Setup Details (15)&lt;br /&gt;- Spring Lightweight Container Architecture, including Inversion of Control (IoC) (15)&lt;br /&gt;- Pragmatic AOP (15)&lt;br /&gt;- Agile, domain-driven design techniques with Spring (15)&lt;br /&gt;- Unit testing in isolation (15)&lt;br /&gt;- System integration testing support (15)&lt;br /&gt;- Persistence (using JDBC and JPA/Hibernate options) (30)&lt;br /&gt;- Declarative transaction management (30)&lt;br /&gt;- Validation (15)&lt;br /&gt;- Spring Security (Authentication &amp;amp; Authorization) (15)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Key Takeaways:&lt;/strong&gt;&lt;br /&gt;You will leave with the practical knowledge of using Spring and Hibernate in developing enterprise Java web applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pre-Requisites:&lt;/strong&gt;&lt;br /&gt;- Working knowledge of Java/JavaEE technologies&lt;br /&gt;- Familiarity with development tools like Eclipse IDE, Maven, and JUnit.&lt;br /&gt;- Bring your laptops to this tutorial as it will be a hands-on workshop and come ready to code.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4951870141150779120?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4951870141150779120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4951870141150779120' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4951870141150779120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4951870141150779120'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2011/02/training-class-on-enterprise-java.html' title='Training Class on Enterprise Java Application Development using Spring and Hibernate'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7825268931678887644</id><published>2010-09-21T10:21:00.000-07:00</published><updated>2010-09-21T10:28:25.744-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaOne 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaOne'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE 6'/><title type='text'>JavaOne 2010 Presentation: Application Security Enhancements in Java EE 6</title><content type='html'>I spoke at &lt;a href="http://www.oracle.com/us/javaonedevelop/index.html"&gt;JavaOne 2010&lt;/a&gt; conference yesterday on the topic of Application Security Enhancements in Java EE 6.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technetwork/java/javaee/tech/index.html"&gt;Java EE 6&lt;/a&gt;, released earlier this year, includes several significant enhancements especially in the areas of annotation based authentication and authorization in the web tier. So, if you are developing lightweight web applications where you don't want to use EJB components for the application security requirements, you now have a choice of implementing the authentication (declaratively or programmatically) and authorization aspects in the Controller classes (Servlets).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Session abstract:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Java EE 6 includes some interesting security enhancements in the areas of Web container security as well as authentication and authorization aspects in Web application development. This session will give an overview of these new security features and discuss the details of how to use them, with help of a sample Java application, in real-world enterprise Java applications. The discussion will include how developers can take advantage of programmatic and declarative (@ServletSecurity, @DeclareRoles) security features. It will also include a discussion on Java EE security technologies such as Java Authentication Service Provider Interface for Containers (JSR 196) and Java Authorization Contract for Containers (JSR 115).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I did couple of demo's on how to use the new security features. This is my first time attending JavaOne conference as a speaker and it's been a great experience so far.&lt;br /&gt;&lt;br /&gt;I also &lt;a href="http://www.infoq.com/news/2010/07/javaee6-security"&gt;wrote&lt;/a&gt; on &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; website about the new security features provided by Java EE 6 release.&lt;br /&gt;&lt;br /&gt;If you have been using other security frameworks like &lt;a href="http://static.springsource.org/spring-security/site/index.html"&gt;Spring Security&lt;/a&gt;, Java EE 6 is definitely you should look at. While there are some differences in what Spring Security 3 framework offers in terms of role based access, EL based authorization etc, the new web-tier security features in Java EE 6 make it easier to implement the security aspects without coupling the security logic with application or business logic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7825268931678887644?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7825268931678887644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7825268931678887644' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7825268931678887644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7825268931678887644'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2010/09/javaone-2010-presentation-application.html' title='JavaOne 2010 Presentation: Application Security Enhancements in Java EE 6'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-5873361460809485002</id><published>2010-04-18T19:56:00.000-07:00</published><updated>2010-04-18T20:29:30.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SATURN 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='SATURN'/><title type='text'>SATURN 2010 Conference</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sei.cmu.edu/saturn/2010/"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 156px; height: 43px;" src="http://1.bp.blogspot.com/_XQM_82SlH58/S8vNIdcqZuI/AAAAAAAAAIw/sLugoiboJAc/s320/conference_logo.gif" alt="" id="BLOGGER_PHOTO_ID_5461684518344353506" border="0" /&gt;&lt;/a&gt;I will be speaking at the upcoming SATURN 2010 &lt;a href="http://www.sei.cmu.edu/saturn/2010/"&gt;conference&lt;/a&gt; next month. My &lt;a href="http://www.sei.cmu.edu/saturn/2010/abstracts.cfm#43"&gt;presentation&lt;/a&gt; title is "&lt;strong style="font-weight: normal;"&gt;Agile Architect - Integrating Enterprise  Architecture into Agile and Lean Software Development&lt;/strong&gt;". I will discuss an agile architecture framework on how to integrate the architecture concerns into the Agile Software Development environments.&lt;br /&gt;&lt;br /&gt;The discussion includes various organizational, team structure, and process changes we implemented to make Enterprise Architecture (EA) efforts an integral part of the   software development and management processes. Some of these changes  include "Architecture and Security Assessment" and "SOA  Assessment" in those projects that  have the architecture significance  and potential for creating reusable  Components and Services.&lt;br /&gt;&lt;br /&gt;The other techniques we implemented to make  architecture and design  aspects blend with the Development, Unit Testing  and Continuous  Integration (CI) steps in the Agile Software Development  Lifecycle  (SDLC) are &lt;a href="http://www.domaindrivendesign.org/"&gt;Domain-Driven Design&lt;/a&gt;  (DDD), Model Driven Software Development  (MDSD), and Automated Policy   Enforcement. I will talk about these techniques in detail in the presentation.&lt;br /&gt;&lt;br /&gt;SATURN is a great conference to attend. I attended the &lt;a href="http://www.sei.cmu.edu/saturn/2009/"&gt;last year's conference&lt;/a&gt; which  had speakers like John Zachman and Rebecca Wirfs-Brock give keynote  presentations. There were several real-world project based presentations  which is one of the things I look for in any conference. There were also very interesting BOF sessions on topics like Architecture Validation.&lt;br /&gt;&lt;br /&gt;If you are currently working or looking to learn architecture skills to get into the Architecture area, checkout the SATURN 2010 conference and if you are interested &lt;a href="http://www.sei.cmu.edu/saturn/2010/register.cfm"&gt;register&lt;/a&gt; for the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-5873361460809485002?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/5873361460809485002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=5873361460809485002' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5873361460809485002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5873361460809485002'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2010/04/saturn-2010-conference.html' title='SATURN 2010 Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XQM_82SlH58/S8vNIdcqZuI/AAAAAAAAAIw/sLugoiboJAc/s72-c/conference_logo.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1907178584567889058</id><published>2010-04-12T19:10:00.000-07:00</published><updated>2010-04-19T21:15:00.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ITARC Denver 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Architect'/><title type='text'>ITARC Denver 2010 Conference</title><content type='html'>I will be speaking at the upcoming &lt;a href="http://www.iasahome.org/web/itarc/2010/denver"&gt;ITARC conference&lt;/a&gt; in Denver. The title of my presentation is "Agile Architect:  Integrating  Enterprise Architecture into Agile and Lean Software Development".&lt;br /&gt;&lt;br /&gt;In the presentation, I will discuss the details of an Agile Architecture framework we introduced in our  projects to make Enterprise Architecture efforts an integral part of the  software development and management processes. The discussion includes  the changes we had to make in terms of Teams, Process, and Tools &amp;amp;  Technologies. I will talk about the process changes we made to include  new steps like Architecture and SOA Assessments in those projects that  have the architecture significance and potential for creating reusable  Components and Services.&lt;br /&gt;&lt;br /&gt;I will also discuss other techniques to make  architecture and design aspects blend with the Development, Unit Testing  and Continuous Integration (CI) steps in the Agile Software Development  Lifecycle (SDLC). These techniques include &lt;a href="http://www.domaindrivendesign.org/"&gt;Domain-Driven Design&lt;/a&gt; (DDD), Model Driven Software Development  (MDSD), and Automated Policy  Enforcement.&lt;br /&gt;&lt;br /&gt;If you are currently working on or looking to learn the architecture skills to get into Architecture space, check it out the speaker &lt;a href="http://www.iasahome.org/web/itarc/236"&gt;line-up&lt;/a&gt; and if you are interested in attending, &lt;a href="http://www.iasahome.org/web/itarc/denver2010/reg"&gt;register&lt;/a&gt; for the conference.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1907178584567889058?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1907178584567889058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1907178584567889058' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1907178584567889058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1907178584567889058'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2010/04/itarc-denver-2010-conference.html' title='ITARC Denver 2010 Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4115582928863920061</id><published>2010-04-11T20:10:00.000-07:00</published><updated>2010-04-22T18:37:22.565-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Modularity'/><category scheme='http://www.blogger.com/atom/ns#' term='Book Review'/><title type='text'>OSGI In Action Book</title><content type='html'>Java language provides the modularity when designing and coding applications using the Object Oriented Design and Programming concepts. But it doesn't provide a mechanism to take the Java code designed and developed using modular concepts (OOP) to deploy in a modular fashion. This is where &lt;a href="http://www.osgi.org/Main/HomePage"&gt;OSGi technology&lt;/a&gt; comes into picture. You can organize the Java classes using the packaging structure and the scope of the classes to control the visibility of a class to other classes, but when it comes to deploying the applications, you have to package them in a monolithic WAR file or an EAR file which don't provide too much flexibility in controlling what classes and libraries (JAR files) that you want to bundle in the application archive files. This limitation has led to the JEE container vendors come up with proprietary implementations of addressing the modularity aspect (e.g. You can deploy an EAR file as a common library, instead of an application, in &lt;a href="http://www.oracle.com/technology/products/weblogic/index.html"&gt;WebLogic&lt;/a&gt; server).&lt;br /&gt;&lt;br /&gt;This is the main focus of the book&lt;a href="http://www.manning.com/hall/"&gt; OSGi in Action&lt;/a&gt; by authors Richard S. Hall, Karl Pauls, Stuart McCulloch, and David Savage. It's a good addition to OSGi resources and for the Java developers who are currently using or considering using OSGi technology in their applications.&lt;br /&gt;&lt;br /&gt;The book starts with the discussion on what is modularity, Java's modularity limitations related to classpath and limited modular deployment support in Java model and explains how OSGi technology addresses these limitations.&lt;br /&gt;&lt;br /&gt;The authors talk about the two parts of OSGi Platform:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OSGi framework (this is the run-time environment that provides OSGi functionality) and&lt;/li&gt;&lt;li&gt;OSGi standard services framework (which defines the reusable APIs for tasks such as Logging and Preferences).&lt;/li&gt;&lt;/ul&gt;They also discuss the three layers of OSGi specification:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Module Layer:&lt;/span&gt; This layer covers the packaging and sharing the code. It defines the OSGi module concept, called a Bundle, which is a JAR file with extra meta-data.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Lifecycle Layer:&lt;/span&gt; This layer provides the run-time module management and access to the underlying OSGi framework. It defines the bundle lifecycle operations like install, update, start, stop, and uninstall.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Service Layer:&lt;/span&gt; This layer covers the interaction and communication among modules, specifically the components contained in them.&lt;/li&gt;&lt;/ul&gt;The authors discuss the Bundles concept in OSGi, how to define them with metadata and the benefits of modularizing the program. These benefits include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Logical boundary enforcement&lt;/li&gt;&lt;li&gt;Reuse improvement&lt;/li&gt;&lt;li&gt;Configuration verification&lt;/li&gt;&lt;li&gt;Version verification&lt;/li&gt;&lt;li&gt;Configuration flexibility&lt;/li&gt;&lt;/ul&gt;The event model support in OSGi is also covered.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;OSGi Event Model&lt;/span&gt;&lt;br /&gt;The OSGi framework supports two types of events:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;BundleEvents (these events report any changes in the lifecycle of bundles) and &lt;/li&gt;&lt;li&gt;FrameworkEvents (these events report the changes in the framework).&lt;/li&gt;&lt;/ul&gt;The authors also talk about the OSGi design patterns such as Listener  and Whiteboard and some OSGi anti-patterns in the areas of updating a  bundle. Best practices in managing the versioning of packages and  bundles, how to run multiple versions in the same JVM with the example  of a Preferences service.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;The discussion in the book includes a sample Java application (paint  program). The application build and package examples use &lt;a href="http://ant.apache.org/"&gt;Ant&lt;/a&gt; as the  build tool. It would have been nice if they used &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt; tool which is  what I use at work for building and packaging the Java applications.&lt;br /&gt;&lt;br /&gt;There is also discussion on how to test the OSGi applications using mock  objects approach when calling the OSGi APIs and container testing to  discover any potential class loading or visibility issues. The OSGi test  tools listed are OPS4J's &lt;a href="http://wiki.ops4j.org/display/paxexam/Pax+Exam"&gt;Pax-Exam&lt;/a&gt;, &lt;a href="http://www.springsource.org/osgi"&gt;Spring DM&lt;/a&gt;'s test support, and  Dynamic Java's &lt;a href="http://www.dynamicjava.org/projects/da-testing"&gt;DA-Testing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Topics like debugging Java applications and embedding the OSGi framework  in applications are also covered. Security, another important aspect in  enterprise application deployment, is also covered in detail.&lt;br /&gt;&lt;br /&gt;To put OSGi in perspective, the authors also talk about how OSGI relates to other technologies like Java Enterprise Edition, Jini, NetBeans Platform, Java Management Extensions, Lightweight containers (PicoContainer, Spring, and Apache Avalon), Java Business Integration (JBI), JSR's 277 (module system for Java) and 294 (Improved Modularity Support in the Java Programming Language), Service Component Architecture (SCA) and .NET technology.&lt;br /&gt;&lt;br /&gt;Overall, this book is an excellent resource for Java developers of all levels of expertise in OSGi technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4115582928863920061?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4115582928863920061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4115582928863920061' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4115582928863920061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4115582928863920061'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2010/04/osgi-in-action-book.html' title='OSGI In Action Book'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4042175764106941390</id><published>2010-02-01T21:41:00.000-08:00</published><updated>2010-02-01T21:46:37.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ITARC Austin'/><category scheme='http://www.blogger.com/atom/ns#' term='ITARC'/><category scheme='http://www.blogger.com/atom/ns#' term='ITARC 2010'/><title type='text'>ITARC Austin 2010 Conference</title><content type='html'>I will be speaking at the upcoming IT Architect Conference (&lt;a href="http://www.iasahome.org/web/itarc/austin"&gt;ITARC&lt;/a&gt;) in Austin this week. My presentation sessions details are as follows:&lt;br /&gt;&lt;br /&gt;Fundamentals Track:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Integrating Enterprise Architecture into Agile and Lean Software Development Environments&lt;/li&gt;&lt;li&gt;Security Architecture Policy Enforcement and EA Governance Using AspectJ and SpringAOP Techniques&lt;/li&gt;&lt;/ul&gt;It's a conference worth attending with a great line-up of speakers and sessions and the registration price is very affordable.&lt;br /&gt;&lt;br /&gt;There are two keynote presentations.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Keynote: Gaining Operational Excellence and Agility Through Enterprise Architecture, Presented by Roy Hunter, Senior Director, Enterprise Architecture at Oracle&lt;/li&gt;&lt;li&gt;Afternoon Keynote:  IT Complexity Crisis; Danger and Opportunity, Roger Sessions CTO, Object Watch&lt;/li&gt;&lt;/ul&gt;Check out the &lt;a href="http://www.iasahome.org/web/itarc/austin/2010/agenda"&gt;conference agenda&lt;/a&gt; for more details on other sessions. I am looking forward to the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4042175764106941390?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4042175764106941390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4042175764106941390' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4042175764106941390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4042175764106941390'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2010/02/itarc-austin-2010-conference.html' title='ITARC Austin 2010 Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8782373794873128684</id><published>2010-01-29T19:41:00.000-08:00</published><updated>2010-01-29T19:46:49.383-08:00</updated><title type='text'>Austin Marathon 2010</title><content type='html'>I will be participating in the half-marathon event at the upcoming &lt;a href="http://www.youraustinmarathon.com/"&gt;Austin Marathon&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have also signed-up for volunteering at the Expo Packet Pick-Up on the day before the race. I did the same for the &lt;a href="http://decker.austinrunners.org/"&gt;Decker Challenge&lt;/a&gt; Marathon relay last month and it was lot of fun.&lt;br /&gt;&lt;br /&gt;I am participating in the marathon as part of a group called Run For India (RFI) &lt;a href="http://www.runforindia.org/runners/list/austin"&gt;Austin Chapter&lt;/a&gt; which is part of A.I.D (Association for India Development), a charity organization. If you like to donate to this group, please use this &lt;a href="http://www.runforindia.org/runners/srinipenchikala"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am looking forward to the marathon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8782373794873128684?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8782373794873128684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8782373794873128684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8782373794873128684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8782373794873128684'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2010/01/austin-marathon-2010.html' title='Austin Marathon 2010'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1267644497953962414</id><published>2009-12-12T15:34:00.000-08:00</published><updated>2009-12-12T15:38:06.893-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE 6'/><title type='text'>Java EE 6 Features: Dependency Injection, Bean Validation and EJB Enhancements</title><content type='html'>Java EE 6 was released on Thursday this week. I &lt;a href="http://www.infoq.com/news/2009/12/javaee6-release"&gt;wrote&lt;/a&gt; about it on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; website. The latest release is major in terms of breadth and depth of the new features included in the release.&lt;br /&gt;&lt;br /&gt;Some of the main features in JEE6 include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dependency Injection&lt;/li&gt;&lt;li&gt;Bean Validation&lt;/li&gt;&lt;li&gt;EJB Enhancements&lt;/li&gt;&lt;li&gt;Servlet, JSF, and JSP Enhancements&lt;/li&gt;&lt;li&gt;JAX-RS API&lt;/li&gt;&lt;/ul&gt;Check out more details on the new release &lt;a href="http://www.infoq.com/news/2009/12/javaee6-release"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1267644497953962414?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1267644497953962414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1267644497953962414' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1267644497953962414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1267644497953962414'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/12/java-ee-6-features-dependency-injection.html' title='Java EE 6 Features: Dependency Injection, Bean Validation and EJB Enhancements'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7068408305485931076</id><published>2009-09-06T13:35:00.000-07:00</published><updated>2009-09-06T14:15:18.606-07:00</updated><title type='text'>Menlo Tour - How Agile Software Development is Done at Menlo</title><content type='html'>Last month, I visited a software consulting company called &lt;a href="http://www.menloinnovations.com/"&gt;Menlo Innovations&lt;/a&gt; located in &lt;a href="http://www.annarbor.org/"&gt;Ann Arbor&lt;/a&gt;, Michigan. Menlo has been using &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;Agile methodologies&lt;/a&gt; in their Software Development processes for last eight years. Menlo hosts the &lt;a href="http://www.menloinnovations.com/registration/MenloTour.htm"&gt;tours&lt;/a&gt; every month at their company office to show the visitors how they do agile software development.&lt;br /&gt;&lt;br /&gt;James Goebel was our host at the meeting. It was a very good experience to see a team of teams doing the agile software development and how they have perfected an unique development process that works for them to be successful in their software development projects.&lt;br /&gt;&lt;br /&gt;They use several eXtreme Programming (&lt;a href="http://www.extremeprogramming.org/"&gt;XP&lt;/a&gt;) development and testing techniques.&lt;br /&gt;&lt;br /&gt;Here are some high-level details of their agile process:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Iteration Length = 1 week&lt;/li&gt;&lt;li&gt;High-Tech Anthropologists (&lt;a href="http://www.menloinnovations.com/method/anthropology.htm"&gt;HTA&lt;/a&gt;'s) write the user stories working with the client and the project team. They write the stories through the eyes of the customers. User designs are also done by HTA's.&lt;/li&gt;&lt;li&gt;They use big white papers, charts, and tasks with color coded statuses to make the project progress visible to every one in the team w/o having to dig into several different project management software tools.&lt;/li&gt;&lt;li&gt;Their projects range from 1-day to 4-years in length and all different business domains in nature.&lt;/li&gt;&lt;li&gt;The Daily stand-up meeting is at 10 am every morning and every one in the building (all project teams, HTA's, QA team, clients, vendors if they happen to be in the office at that time) attend the meeting.&lt;/li&gt;&lt;li&gt;They review the story cards every day to monitor the progress and identify any roadblocks to complete their tasks. They follow the strict rule of, if there is no card on the board for a specific task, the project team must not work on that task. So, "No Card, No Work, No Money".&lt;/li&gt;&lt;li&gt;Their revenue model is based on the royalty and partnership based (on some projects) so they take the quality, customer satisfaction, and long-term health of their software products very seriously.&lt;/li&gt;&lt;li&gt;If a pair has to stop a particular task because of some dependencies or roadblocks, they put a red dot on that task indicating that the work has been stopped on that task, and start the work on a new task (with yellow dot on it showing that it's in progress).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Fail Fast:&lt;/span&gt;&lt;br /&gt;They believe in the concept of make small mistakes faster and often. James gave us an example of how they managed a previous project in an iterative manner to successfully deliver what the customer needed out of the project. It was a small project with 1-day deadline. The first time they worked on the project, they worked on for the whole day and didn't finish it on time. Then they worked on the same project again in 1-day with great success, the only difference is this time they followed a eight 1-hour iterations rather than one 8-hr iteration. And on the second day, after 2 hours into the project, they found where they got stuck the previous time, and made the necessary adjustment (following the "&lt;a href="http://www.c2.com/cgi/wiki?InspectAndAdapt"&gt;Inspect and Adapt&lt;/a&gt;" philosophy we hear in the context of the Agile project management)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Color coded status tracking:&lt;/span&gt;&lt;br /&gt;They use a color coding system to track the status of project tasks.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Red = Task Stopped&lt;/li&gt;&lt;li&gt;Yellow = In Progress&lt;/li&gt;&lt;li&gt;Green = Completed&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Projects don't move, people do:&lt;/span&gt;&lt;br /&gt;They have dedicated areas (basically a corner of one big office room) for each project where the project tasks, information reports and charts are displayed on the wall. Since the project status reports and other artifacts in a specific area, it's the team members who move to the project area when they need to work on a project, rather than the other way around.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pair Programming:&lt;/span&gt;&lt;br /&gt;Change the partners every week so the pairs don't get used to each other's poor development practices (for example, not writing unit tests).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Driven Development:&lt;/span&gt;&lt;br /&gt;They religiously follow Test Driven Design/Development (&lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;TDD&lt;/a&gt;) philosophy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Build is Broken - Uncommit Your Code:&lt;/span&gt;&lt;br /&gt;If someone's code caused a unit test or the whole application build to fail after code check-in, the team has to either fix the build errors in a reasonable time or "Uncommit" the new code so the build will succeed and the other developers can move forward with testing their features on the Integration server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Time Estimates:&lt;/span&gt;&lt;br /&gt;Every one in the project team estimate all the tasks and the project lead uses the most common estimates (by taking away the lowest and highest time estimates). The time estimates range from 2 hours to 1 week (i.e. 2, 4, 8, 16, and 32 hours). If a task is estimated to be higher than 32 hours (e.g. 64 hours), those features have to be split into smaller tasks so they can fit in a single iteration.&lt;br /&gt;&lt;br /&gt;They also use different sizes of the paper for tasks with different estimates, so they know how many tasks can fit in an iteration. For example, they use 8.5 x 11 paper size as the 32 hours. And the team can only have use one 8.5 x 11 sheet to fit the tasks for one iteration, meaning they can put one 32-hour tasks, or two 16-hour tasks, or one 16-hour and two 8-hour tasks, you get the point. This approach sounds very interesting and it works great if you think about it.&lt;br /&gt;&lt;br /&gt;Every thing (estimations, development, unit testing, show &amp;amp; tell, and the delivery of CD) happens every week.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Show and Tell: For Customer, By Customer:&lt;/span&gt;&lt;br /&gt;At the end of each iteration the project team creates two CD's of the working software and gives one CD to the QA team and another to the client. The QA team's job is to verify the health of the overall software package, not just test each feature in isolation.&lt;br /&gt;&lt;br /&gt;And when it's the time to demonstrate the software created in an iteration, the team works with the client to install the software on the client's PC and let the customer show (demonstrate) the software product to the team.&lt;br /&gt;&lt;br /&gt;They don't really use any software tools for the project management purposes. Other than Microsoft Excel to keep track of the time spent on tasks and the project, every thing else is done on a piece of paper. It was amazing to see how they are able to be agile without really using a tool for writing user stories and other tasks. This is the proof that the agile development teams should focus on the results and not the tools.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other Observations:&lt;/span&gt;&lt;br /&gt;Their software development process is created around the social constructs of the team. For the new prospective team members, they look for the ability to learn and team player skills.&lt;br /&gt;&lt;br /&gt;James said that we should ask the following question to ensure that what we are working is going to add value to our company goals:&lt;br /&gt;&lt;br /&gt;"How does your job impact the bottom line of your company?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusions:&lt;/span&gt;&lt;br /&gt;They have been following the mantra: "Continue doing what works &amp;amp; Stop doing what doesn't work".&lt;br /&gt;&lt;br /&gt;If I have to pick two things that Menlo teams seem to be following, they would be: "Team Collaboration" and "Collective Discipline".&lt;br /&gt;&lt;br /&gt;James was an excellent host of the tour and he is also a great speaker. I learned a lot about how Agile Development Process works @ Menlo and apply some of the ideas in my projects.&lt;br /&gt;&lt;br /&gt;Like said, it was a very good learning experience for me to be part of the tour and I encourage every one who lives in the southeast Michigan area to sign-up for the next &lt;a href="http://www.menloinnovations.com/registration/MenloTour.htm"&gt;tour&lt;/a&gt; which is actually the coming Wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7068408305485931076?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7068408305485931076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7068408305485931076' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7068408305485931076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7068408305485931076'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/09/menlo-tour-how-agile-software.html' title='Menlo Tour - How Agile Software Development is Done at Menlo'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-2119309461649942210</id><published>2009-09-05T21:24:00.000-07:00</published><updated>2009-09-05T21:25:43.669-07:00</updated><title type='text'>Role of Code Generation in Java Application Development</title><content type='html'>I recently wrote an article on InfoQ about the role of code generation in Java application development. There have been different tool vendors (Spring Roo, Skyway Builder Community Edition, and Blu Age's M2Spring) announcing Code Generation tools in the recent months, so I thought I would write a tool round-up type of article summarizing these tools.&lt;br /&gt;&lt;br /&gt;Check out this Q&amp;amp;A article on InfoQ:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2009/09/codegen-java-development" target="_blank"&gt;http://www.infoq.com/news/&lt;wbr&gt;2009/09/codegen-java-&lt;wbr&gt;development&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-2119309461649942210?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/2119309461649942210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=2119309461649942210' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/2119309461649942210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/2119309461649942210'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/09/i-recently-wrote-article-on-infoq-about.html' title='Role of Code Generation in Java Application Development'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7228670180405570980</id><published>2009-08-02T15:02:00.000-07:00</published><updated>2009-08-02T15:19:54.967-07:00</updated><title type='text'>JEE Web Development Framework Requirements Revisited</title><content type='html'>There is an excellent blog &lt;a href="http://www.ilyasterin.com/blog/2009/07/choosing-a-web-development-frameworktoolkit.html"&gt;post&lt;/a&gt; on choosing a web development framework/toolkit by &lt;a href="http://www.ilyasterin.com/"&gt;Ilya Sterin&lt;/a&gt;. It captures very well most of the web app framework requirements and limitations we all face on a daily basis in our projects.&lt;br /&gt;&lt;br /&gt;As mentioned in the write-up, most of the J2EE developers think, at one time or the other, about what features they really need from a web application framework and why there is no single framework that supports all those features.&lt;br /&gt;&lt;br /&gt;If I have to pick top 5 features I look for in an ideal web application framework, they would be:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Isolation from the domain layer so presentation and domain layers can evolve independently w/o (adversely) impacting each other.&lt;/li&gt;&lt;li&gt;Simple and Easy Data binding between the Domain, Controller, and Presentation layers, so the developers don't have to write unnecessary and useless boiler plate code to convert the same data from a DO -&gt; DTO -&gt; Struts Action Form -&gt; JSP/HMTL field to just select some data from a back-end data store anddisplay it on a web page.&lt;/li&gt;&lt;li&gt;Support for data validation that works in all the layers w/o any additional coding.&lt;/li&gt;&lt;li&gt;Support for AJAX functionality.&lt;/li&gt;&lt;li&gt;Controller class methods can be exposed as &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;RESTful&lt;/a&gt; Web Services w/o lot of extra coding or configuration.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The presentation layer classes should also be unit testable w/o having to deploy the web application into a container.&lt;br /&gt;&lt;br /&gt;Ilya talks about the persistence concern as well. Unless the web application in question is a simple data driven application that can use a solution like &lt;a href="http://rubyonrails.org/"&gt;RoR&lt;/a&gt; or &lt;a href="http://grails.org/"&gt;Grails&lt;/a&gt;, I am not sure if persistence is really a concern from the web application side. In an ideal architecture, presentation layer should never access the persistence layer directly. It should always go thru the domain layer for the retrieval and modification of the data stored in the back-end data store. So, if the domain model and its boundaries are well defined and implemented, I don't worry too much about the persistence concern when I look for a web application framework.&lt;br /&gt;&lt;br /&gt;I have been using Spring MVC in the recent projects. It supports all the items listed above except for the &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;AJAX&lt;/a&gt; support. But I read that &lt;a href="http://www.springsource.org/webflow"&gt;Spring WebFlow&lt;/a&gt; framework (which includes Spring JavaScript and integration with &lt;a href="http://www.dojotoolkit.org/"&gt;Dojo&lt;/a&gt;) has AJAX support, so that's good news for the developers who are using Spring.&lt;br /&gt;&lt;br /&gt;I am also eagerly waiting to start using &lt;a href="http://blog.springsource.com/2009/03/03/building-spring-3/"&gt;Spring 3&lt;/a&gt; framework which makes it even easier to expose controller class methods as REST web services and also has &lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ch07.html"&gt;Expression Language&lt;/a&gt; (EL) support which is another nice feature to have when working in the MVC part of an enterprise application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7228670180405570980?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7228670180405570980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7228670180405570980' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7228670180405570980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7228670180405570980'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/08/jee-web-development-framework.html' title='JEE Web Development Framework Requirements Revisited'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-464146945511674952</id><published>2009-07-05T15:26:00.000-07:00</published><updated>2009-07-05T15:34:22.746-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFJS Magazine'/><category scheme='http://www.blogger.com/atom/ns#' term='Architecture Enforcement'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><title type='text'>Architecture Enforcement and Governance Using Aspect-Oriented Programming</title><content type='html'>I wrote an article in this month's &lt;a href="http://www.nofluffjuststuff.com/magazine_subscribe.jsp"&gt;NFJS magazine&lt;/a&gt; (June 2009 &lt;a href="http://www.nofluffjuststuff.com/magazine_subscribe.jsp?id=4"&gt;issue&lt;/a&gt;) on Architecture Enforcement and Governance Using Aspect-Oriented Programming.&lt;br /&gt;&lt;br /&gt;The objective of this article is to give an overview of Reference Architecture (RA) and its significance in Enterprise Architecture space and how Aspects and &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;Aspect-oriented Programming&lt;/a&gt; (AOP) can help  enforce RA and manage Architecture Governance model.&lt;br /&gt;&lt;br /&gt;I also discussed in the article, a sample Java application that uses several architecture rules to enforce good architectural and design practices such as Layered Architecture, Separation of Concerns, &lt;a href="http://domaindrivendesign.org/"&gt;Domain-Driven Design&lt;/a&gt; etc.&lt;br /&gt;&lt;br /&gt;The other articles published in the new issue are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducing Drools 5 by Brian Sam-Bodden&lt;/li&gt;&lt;li&gt;Implementing "Web-2.0 Style" Popularity Filters by David Bock and Karen Gillison&lt;/li&gt;&lt;li&gt;Scala as Concise Java by Venkat Subramaniam&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If you haven't attended &lt;a href="http://www.nofluffjuststuff.com/home.jsp"&gt;NFJS software symposium&lt;/a&gt; or read the magazine before, check them out. The conference sessions are very practical oriented and just like the title says the focus is on the architecture, design, and development techniques that you can take back to your company and start using them right away in your projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-464146945511674952?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/464146945511674952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=464146945511674952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/464146945511674952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/464146945511674952'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/07/architecture-enforcement-and-governance.html' title='Architecture Enforcement and Governance Using Aspect-Oriented Programming'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1174518246018009394</id><published>2009-07-04T19:35:00.000-07:00</published><updated>2009-07-04T19:36:46.225-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STS'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringSource'/><title type='text'>SpringSource Tool Suite (STS) is a free tool now</title><content type='html'>SpringSource has recently released their SpringSource Tool Suite (STS) IDE tool as a free version. If you are currently working on or planning on introducing Spring Framework in your projects, this is a very good development tool to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STS Project Main Page:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.springsource.com/products/sts" target="_blank"&gt;http://www.springsource.com/&lt;wbr&gt;products/sts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wrote a mini-article on InfoQ about the recent RC1 release of STS. Here is the link:&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2009/07/springsource-tool-suite" target="_blank"&gt;http://www.infoq.com/news/&lt;wbr&gt;2009/07/springsource-tool-&lt;wbr&gt;suite&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let me know if you have any feedback when you use this tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1174518246018009394?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1174518246018009394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1174518246018009394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1174518246018009394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1174518246018009394'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/07/springsource-tool-suite-sts-is-free.html' title='SpringSource Tool Suite (STS) is a free tool now'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6221175946535614891</id><published>2009-05-31T22:00:00.000-07:00</published><updated>2009-06-04T20:49:02.197-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ProjectWorld 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Conferences'/><title type='text'>I will be speaking at ProjectWorld 2009 Conference</title><content type='html'>I will be speaking at upcoming &lt;a href="http://www.iirusa.com/projectworld-info/event-home.xml"&gt;ProjectWorld 2009&lt;/a&gt; conference in June (06/24-06/26) in Baltimore. My presentation topic is &lt;a href="http://www.iirusa.com/projectworldjune/day-two.xml"&gt;Agile Application Architecture Trends&lt;/a&gt;. The presentation is part of the "IT Innovation and Trends" track which is new for this conference.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XQM_82SlH58/SeLJqtJO31I/AAAAAAAAAGc/sjW5NKjaBLY/s1600-h/PWLP_header.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 50px;" src="http://1.bp.blogspot.com/_XQM_82SlH58/SeLJqtJO31I/AAAAAAAAAGc/sjW5NKjaBLY/s320/PWLP_header.jpg" alt="" id="BLOGGER_PHOTO_ID_5324039445015355218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here is the session abstract of my presentation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Architecture Trends - Where We Have Been, Where We Are Going&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;The presentation will include the discussion on emerging design techniques like Domain Driven Design (DDD), Custom Annotations, Dependency Injection (DI), Aspect-Oriented Programming (AOP), OSGi and Dynamic Languages. I will discuss some use cases where these techniques add value to the architecture and where they will be just an overkill. With upcoming releases of Spring 3.0, EJB 3.1, JPA 2.0 and Java EE 6, Java developer, not the product vendor, has once again become the core part of Software Development Process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I want to focus on the emerging software architecture trends and how agile philosophy can drive architectural and design decisions in software development projects.&lt;br /&gt;&lt;br /&gt;Some of the architecture trends I will be focusing in my presentation are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cloud Computing&lt;/li&gt;&lt;li&gt;Architecture Models (J2EE v. POJO)&lt;/li&gt;&lt;li&gt;Domain-Driven Design&lt;/li&gt;&lt;li&gt;Spring Portfolio&lt;/li&gt;&lt;li&gt;Model-Driven Development&lt;/li&gt;&lt;li&gt;OSGi&lt;/li&gt;&lt;li&gt;Innovations in the Database Layer&lt;/li&gt;&lt;li&gt;Software Product Lines&lt;/li&gt;&lt;/ul&gt;This will be my first trip to Washington DC/Baltimore area. I am looking forward to attending the conference which has excellent &lt;a href="http://www.iirusa.com/projectworldjune/at-a-glance.xml"&gt;sessions&lt;/a&gt; and &lt;a href="http://www.iirusa.com/projectworldjune/speakers.xml"&gt;speaker&lt;/a&gt; line-up.&lt;br /&gt;&lt;br /&gt;There is a 20% speaker discount off the conference standard rate for any one who registers on my behalf. Contact me if any one is interested in taking the advantage of the discount.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6221175946535614891?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6221175946535614891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6221175946535614891' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6221175946535614891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6221175946535614891'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/04/i-will-be-speaking-at-projectworld-2009.html' title='I will be speaking at ProjectWorld 2009 Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XQM_82SlH58/SeLJqtJO31I/AAAAAAAAAGc/sjW5NKjaBLY/s72-c/PWLP_header.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8453612693755081674</id><published>2009-05-19T20:00:00.000-07:00</published><updated>2009-05-19T20:08:14.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QCon'/><category scheme='http://www.blogger.com/atom/ns#' term='QConSF 2008 Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='AOM'/><category scheme='http://www.blogger.com/atom/ns#' term='Modeling'/><title type='text'>Adaptive Object Modeling - QCon Interview with Joseph Yoder</title><content type='html'>I did a video interview with &lt;a href="http://www.refactory.com/people/joe.html"&gt;Joseph Yoder&lt;/a&gt; on an innovative architecture concept called "&lt;a href="http://www.adaptiveobjectmodel.com/"&gt;Adaptive Object Modeling&lt;/a&gt;" at &lt;a href="http://qcon.infoq.com/"&gt;QCon&lt;/a&gt; San Francisco &lt;a href="http://qconsf.com/sf2008/conference/"&gt;conference&lt;/a&gt; last November. This interview is now live on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; website.&lt;br /&gt;&lt;br /&gt;The highlights from Joe's interview include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is &lt;a href="http://www.adaptiveobjectmodel.com/"&gt;Adaptive Object Modeling&lt;/a&gt; (AOM)&lt;/li&gt;&lt;li&gt;How it differs from a traditional object model.&lt;/li&gt;&lt;li&gt;Application domains where AOM can be used.&lt;/li&gt;&lt;li&gt;Role of UML in adaptive object modeling efforts.&lt;/li&gt;&lt;li&gt;Architecture and design validation of the adaptive object models.&lt;/li&gt;&lt;/ul&gt;Check out the video &lt;a href="http://www.infoq.com/news/2009/05/Adaptive-Model-Joseph-Yoder"&gt;interview&lt;/a&gt; on InfoQ site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8453612693755081674?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8453612693755081674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8453612693755081674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8453612693755081674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8453612693755081674'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/05/adaptive-object-modeling-qcon-interview.html' title='Adaptive Object Modeling - QCon Interview with Joseph Yoder'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8471825285710875204</id><published>2009-05-17T18:01:00.000-07:00</published><updated>2009-05-17T18:03:09.577-07:00</updated><title type='text'>InfoQ is offering online training classes on Cloud Computing, SOA and Agile Design topics</title><content type='html'>InfoQ web site is offering virtual training classes on topics like Cloud Computing, SOA and Agile Design hosted by reputed speakers like John Davies, Jim Webber, and Rebecca Wirfs-Brock.&lt;br /&gt;&lt;br /&gt;These classes are not free (each class is currently priced @ $65 for one-hour "Briefing Session" and $135 for a half-day "Training Session"). The first training session is next Wednesday (May 27).&lt;br /&gt;&lt;br /&gt;This is a good opportunity for software developers and architects who want to learn new technologies by attending a live training class and at the same time not spend a fortune that they would otherwise spend in attending technology conferences in person.&lt;br /&gt;&lt;br /&gt;For more details on the new virtual training program, check out this link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2009/05/virtual-training" target="_blank"&gt;http://www.infoq.com/news/&lt;wbr&gt;2009/05/virtual-training&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If any of you attend these classes, let me know what you think about the quality and if the price is worth the class. Also, if any one has other topics they would like to see online training classes, e-mail me with the topic names. I will pass along the feedback and suggestions to the training program organizers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8471825285710875204?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8471825285710875204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8471825285710875204' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8471825285710875204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8471825285710875204'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/05/infoq-is-offering-online-training.html' title='InfoQ is offering online training classes on Cloud Computing, SOA and Agile Design topics'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-521388821269315249</id><published>2009-05-17T16:51:00.001-07:00</published><updated>2009-05-17T17:23:18.536-07:00</updated><title type='text'>Architecture Enforcement Presentation at SEI Architecture (SATURN) 2009 Conference</title><content type='html'>I attended the SEI Architecture Technology User Network (SATURN) 2009 &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/"&gt;Conference&lt;/a&gt; in Pittsburgh last week.&lt;br /&gt;&lt;br /&gt;I gave a presentation at the conference on the topic &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/abstracts.html#ArchGovRulesEnforce"&gt;Architecture Enforcement and Governance Using Aspects&lt;/a&gt;. I discussed an architecture enforcement framework I created to "inject" architecture rules and design policies into the application code as part of the Continuous Integration (CI) process using &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;Aspects&lt;/a&gt; to enforce quality of the code.&lt;br /&gt;&lt;br /&gt;This framework uses tools like &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;, &lt;a href="http://www.eclipse.org/ajdt/"&gt;AJDT&lt;/a&gt; and &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt; to integrate policy enforcement into the agile development process to detect architecture deviations early and often and validates that the design and code are in compliance with the Reference Architecture (RA).&lt;br /&gt;&lt;br /&gt;The response from the attendees was pretty good. There were questions on how to take the architecture enforcement back to the design documents like Class and Sequence Diagrams (UML) as well.&lt;br /&gt;&lt;br /&gt;Overall, SATURN conference experience was excellent. This was my first time attending it. It was a good opportunity to learn more about the techniques and best practices in the areas of architecture evaluation, validation, and assessment.&lt;br /&gt;&lt;br /&gt;Some of the highlights from the conference are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Keynote presentation by &lt;a href="http://www.zachmaninternational.com/index.php/home-article/14"&gt;John Zachman&lt;/a&gt; on "&lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/abstracts.html#zachman"&gt;Architecture Is Architecture&lt;/a&gt;"&lt;/li&gt;&lt;li&gt;&lt;a href="http://wirfs-brock.com/"&gt;Rebecca Wirfs-Brock&lt;/a&gt;'s keynote presentation on "&lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/abstracts.html#wirfs_brock"&gt;Lessons Learned from Architecture Reviews&lt;/a&gt;"&lt;/li&gt;&lt;li&gt;Tutorial on "Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing" by &lt;a href="http://frontweb.vuse.vanderbilt.edu/vuse_web/directory/facultybio.asp?FacultyID=23088"&gt;Doug Schmidt&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Tutorial: Integrating Architecture-Centric Methods into Object-Oriented Analysis and Design by &lt;a href="http://www.personal.psu.edu/rxs69/"&gt;Raghvinder Sangwan&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Birds-Of-A-Feather (BoF) session on Architecture Competence facilitated by &lt;a href="http://www.sei.cmu.edu/staff/jklein/"&gt;John Klein&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;For more details on the events from the conference, check out this conference &lt;a href="http://saturnnetwork.wordpress.com/"&gt;blog&lt;/a&gt; site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-521388821269315249?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/521388821269315249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=521388821269315249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/521388821269315249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/521388821269315249'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/05/architecture-enforcement-presentation.html' title='Architecture Enforcement Presentation at SEI Architecture (SATURN) 2009 Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4803417540016302651</id><published>2009-04-12T21:00:00.000-07:00</published><updated>2009-04-12T22:19:03.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFJS'/><title type='text'>NFJS, The Magazine</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XQM_82SlH58/SeLK1KSPXKI/AAAAAAAAAGs/3nXuAq0uyaU/s1600-h/NFJSMagazine.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 125px; height: 162px;" src="http://4.bp.blogspot.com/_XQM_82SlH58/SeLK1KSPXKI/AAAAAAAAAGs/3nXuAq0uyaU/s320/NFJSMagazine.png" alt="" id="BLOGGER_PHOTO_ID_5324040724148083874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I recently attended New England Software Symposium in Boston. I spoke on Architecture Enforcement and Domain-Driven Development topics at the conference.&lt;br /&gt;&lt;br /&gt;On the flight back to Detroit, I read the inaugural issue of &lt;a href="http://www.nofluffjuststuff.com/magazine_subscribe.jsp"&gt;NFJS magazine&lt;/a&gt; which is very interesting. It was full of technical information just like the &lt;a href="http://www.nofluffjuststuff.com/"&gt;NFJS conference&lt;/a&gt;, no fluff and a lot of technical stuff.&lt;br /&gt;&lt;br /&gt;This issue has the following technical articles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Case For Continuous Integration by Jared Richardson (author of &lt;a href="http://www.lulu.com/content/5925115"&gt;Career 2.0&lt;/a&gt; book)&lt;/li&gt;&lt;li&gt;So you want to be Agile? by Venkat Subramaniam&lt;/li&gt;&lt;li&gt;Introduction to Functional Languages by Ken Sipe&lt;/li&gt;&lt;li&gt;Message Driven POJOs - Messaging Made Easy by Mark Richards&lt;/li&gt;&lt;/ul&gt;All are excellent articles and very informative with sample code explaining the concepts.&lt;br /&gt;&lt;br /&gt;With the new magazine, Jay Zimmerman, Andrew Glover (Editor of the magazine) and NFJS team have done an excellent contribution to Java and Agile development communities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4803417540016302651?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4803417540016302651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4803417540016302651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4803417540016302651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4803417540016302651'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/03/nfjs-magazine.html' title='NFJS, The Magazine'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XQM_82SlH58/SeLK1KSPXKI/AAAAAAAAAGs/3nXuAq0uyaU/s72-c/NFJSMagazine.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8811950036246529660</id><published>2009-04-05T16:43:00.000-07:00</published><updated>2009-04-10T21:06:04.702-07:00</updated><title type='text'>SATURN 2009 Conference Presentation</title><content type='html'>I will be speaking at the upcoming &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/index.html"&gt;SATURN 2009&lt;/a&gt; conference organized by Sofware Engineering Institute (&lt;a href="http://www.sei.cmu.edu/"&gt;SEI&lt;/a&gt;) of Carnegie Mellon University (&lt;a href="http://www.cmu.edu/index.shtml"&gt;CMU&lt;/a&gt;). The conference starts on 4th and ends on 7th of May.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009"&gt;&lt;img src="http://www.sei.cmu.edu/architecture/saturn/2009/images/SATURN_speaker_badge.png" title="SATURN 2009 Speaker" alt="SATURN 2009 Speaker" width="120" border="0" height="240" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a statement from their website that describes the main theme behind this year's conference:&lt;br /&gt;&lt;blockquote&gt;SATURN 2009 is expanding to cover architecture ranging from enterprise to system and software architectures. To reflect this expansion, the theme of the SATURN 2009 Conference is “architecture at all scales.”'&lt;/blockquote&gt;My presentation will be on &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/program.html#may7"&gt;Architecture Governance and Enforcement using Aspects&lt;/a&gt; which is based on my recent work on using Aspect-Oriented Programming (AOP) techniques to enforce the architecture and design policies in J2EE applications.&lt;br /&gt;&lt;br /&gt;I have done the same presentation at &lt;a href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;ITARC Conference&lt;/a&gt; in Atlanta back in February and again at &lt;a href="http://www.nofluffjuststuff.com/conference/boston/2009/03/schedule.html"&gt;New England Software Symposium&lt;/a&gt; in Boston last month. The response and feedback from the attendees was excellent. Architecture Policy Enforcement is definitely a very promising application of Aspects and AOP in enterprise software applications.&lt;br /&gt;&lt;br /&gt;I am looking forward to speaking at SATURN conference and meeting other architects from different backgrounds and experiences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8811950036246529660?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8811950036246529660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8811950036246529660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8811950036246529660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8811950036246529660'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/04/i-will-be-speaking-at-upcoming-saturn.html' title='SATURN 2009 Conference Presentation'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8421488459217765422</id><published>2009-03-29T18:34:00.001-07:00</published><updated>2009-04-06T05:06:36.633-07:00</updated><title type='text'>New England Software Symposium Presentations</title><content type='html'>I recently spoke at &lt;a href="http://www.nofluffjuststuff.com/conference/boston/2009/03/schedule.html"&gt;New England Software Symposium&lt;/a&gt; in Boston. The conference was excellent, my talks were very well received. It was a great opportunity to network with other speakers and share my ideas with the attendees.&lt;br /&gt;&lt;br /&gt;At the conference, I gave 3 presentations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.nofluffjuststuff.com/show_session_view.jsp?presentationId=13767&amp;amp;showId=196"&gt;Architecture Rules Enforcement using Aspects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nofluffjuststuff.com/show_session_view.jsp?presentationId=13766&amp;amp;showId=196"&gt;Domain Driven Design &amp;amp; Development with Spring Portfolio&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nofluffjuststuff.com/show_session_view.jsp?presentationId=13218&amp;amp;showId=196"&gt;Application Architecture Trends - Where We Have Been, Where We Are Going&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The sessions on "Architecture Enforcement using Aspects" and "Domain Driven Development" drew bigger crowds than I anticipated. The attendees asked good questions and expressed interest in the architecture enforcement framework I discussed and demonstrated in the presentation. I am still getting e-mails from the attendees with follow-up discussion on the talks. I also got couple of suggestions on improving the presentation. I am updating the presentations to focus on the parts that were more interesting to the audience.&lt;br /&gt;&lt;br /&gt;I want to thank every one who attended my sessions and gave valuable feedback and comments on the presentation topics.&lt;br /&gt;&lt;br /&gt;This was my first trip to the city of Boston. It's an excellent city. I enjoyed my short stay and looking forward to visiting there again in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8421488459217765422?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8421488459217765422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8421488459217765422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8421488459217765422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8421488459217765422'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/03/new-england-software-symposium.html' title='New England Software Symposium Presentations'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1662010311952170752</id><published>2009-03-29T15:40:00.000-07:00</published><updated>2009-03-29T15:44:34.102-07:00</updated><title type='text'>Interview and Book Excerpt: Jaroslav Tulach's Practical API Design</title><content type='html'>Jaroslav Tulach's latest book &lt;a href="http://www.apress.com/book/view/9781430209737"&gt;Practical API Design&lt;/a&gt; covers the topic of API design of software projects. Jaroslav discusses the importance of API design in the modern software applications, what are the different factors that make a good API, and how to go about implementing API frameworks. He brings his experience as the architect for &lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt; IDE project to the writing of this book. In the book, Jaroslav talks about several real-world examples of how to (and more importantly how not to) use Java API based on his experiences working on NetBeans project.&lt;br /&gt;&lt;br /&gt;I published an &lt;a href="http://www.infoq.com/news/2009/03/tulach-practical-api-design"&gt;interview&lt;/a&gt; with Jaroslav on &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; on various design and architecture topics. Check it out.&lt;br /&gt;&lt;br /&gt;Jaroslav also maintains an excellent &lt;a href="http://wiki.apidesign.org/"&gt;wiki&lt;/a&gt; site where he writes about his book and other API design topics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1662010311952170752?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1662010311952170752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1662010311952170752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1662010311952170752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1662010311952170752'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/03/interview-and-book-excerpt-jaroslav.html' title='Interview and Book Excerpt: Jaroslav Tulach&apos;s Practical API Design'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4543855780213973348</id><published>2009-03-01T13:04:00.000-08:00</published><updated>2009-03-08T12:34:20.473-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architecture Enforcement'/><category scheme='http://www.blogger.com/atom/ns#' term='ITARC 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Aspects'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><title type='text'>Architecture Enforcement and Governance Using Aspects - ITARC Conference Presentation</title><content type='html'>I was at IT Architect Confrence (&lt;a href="http://www.iasahome.org/web/itarc/2009/Atlanta"&gt;ITARC&lt;/a&gt;) 2009 in Atlanta last week. The conference was a great event. It offered a great opportunity to talk to other architects (of all specializations, Information, Solutions, Data, and Enterprise) about their architecture experience and frameworks and technologies they are currently using in their projects.&lt;br /&gt;&lt;br /&gt;Here are some of the highlights of the conference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It was a non-vendor driven event organized by &lt;a href="http://www.iasahome.org/web/home/home"&gt;IASA&lt;/a&gt; (a non-profit organization focused on the Architecture profession). Paul Preiss and his team at IASA are helping the architecture community through education, consulting, and conference events such as ITARC.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Conference main focus was on Architecture and Architecture only, so there were no different tracks on Java, Ruby, SOA, and Agile topics to attract as many people to attend the conference as possible.&lt;/li&gt;&lt;li&gt;It was also more than just one kind of Architecture conference. The key-notes, technical sessions and round-table discussions included other architecture specializations like Data, Information, Infrastructure, and Enterprise Architecture which helped the attendees to put these specializations in perspective and see architecture as a whole solution for the enterprise business and IT needs.&lt;/li&gt;&lt;li&gt;There was a dedicated &lt;a href="http://www.iasahome.org/web/itarc/116#Yourcareer"&gt;Architecture Career Mentoring&lt;/a&gt; track which I thought is an innovative idea and real help to the architecture professionals who are looking for some guidance from the experienced architects. Architecture is an art, not a science, so the advice from a senior architect is of a great value to the new architects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And finally the &lt;a href="http://www.stevenlist.com/openspace.html"&gt;Open Spaces&lt;/a&gt; track, hosted by Steven "Doc" List included two 1-hour open spaces sessions. This was a conference in itself and very informative; I learned a lot of new "open spaces patterns" in attending this event. I will be blogging more about those patterns in the future blog entries.&lt;/li&gt;&lt;/ul&gt;At the conference, I gave a &lt;a href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;presentation&lt;/a&gt; on "Architecture Enforcement using Aspects" topic. The presentation was very well received. There were both JEE and .NET IT professionals in the room and there was good interest on the topic of using Aspects and &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt; to enforce the architecture and design policies.&lt;br /&gt;&lt;br /&gt;I have uploaded to SlideShare web site. If you want to check out the presentation slides, here is the &lt;a href="http://www.slideshare.net/srinip/architecture-enforcement-aspects-itarc2009-1117942"&gt;link&lt;/a&gt;. Let me know if you have any suggestions and feedback for improvement of the presentation.&lt;br /&gt;&lt;br /&gt;This presentation has also been accepted for the upcoming No Fluff Just Stuff (NFJS) New England Software Symposium. Check out the symposium &lt;a href="http://www.nofluffjuststuff.com/conference/boston/2009/03/schedule.html"&gt;schedule&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Let me know if any of you will be attending the NFJS symposium.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4543855780213973348?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4543855780213973348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4543855780213973348' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4543855780213973348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4543855780213973348'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/03/architecture-enforcement-and-governance.html' title='Architecture Enforcement and Governance Using Aspects - ITARC Conference Presentation'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7217872852197421140</id><published>2009-03-01T13:02:00.000-08:00</published><updated>2009-03-01T18:18:52.018-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring Portfolio'/><category scheme='http://www.blogger.com/atom/ns#' term='Domain Driven Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Conferences'/><title type='text'>Domain Driven Design and Development with Spring Portfolio</title><content type='html'>I gave a presentation at Ann Arbor Java User Group (&lt;a href="http://www.aajug.org/"&gt;AAJUG&lt;/a&gt;) last Tuesday on "Domain Driven Design and Development with Spring Portfolio". The presentation went very well with great discussion and feedback from the attendees.&lt;br /&gt;&lt;br /&gt;David at AAJUG has been leading the user group meetings, speakers, and presentation. AAJUG has been an active Java user group for last several years. I want to thank David and the group members for the opportunity to speak at JUG meeting.&lt;br /&gt;&lt;br /&gt;In the presentation, I focused on the &lt;a href="http://www.domaindrivendesign.org/"&gt;Domain-Driven Design&lt;/a&gt; (DDD) implementation aspects using &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt; projects like Spring IoC, Spring AOP and &lt;a href="http://static.springframework.org/spring-security/site/index.html"&gt;Spring Security&lt;/a&gt;. I also talked about enforcing architecture rules in DDD applications. I briefly talked about the role of code generation in a DDD application which included a quick demo using tools like Eclipse &lt;a href="http://www.eclipse.org/modeling/emf/"&gt;EMF&lt;/a&gt; and &lt;a href="http://www.openarchitectureware.org/"&gt;openArchitectureWare&lt;/a&gt; (oAW).&lt;br /&gt;&lt;br /&gt;Here are some of the items I talked about:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Domain Driven Design &amp;amp; Development&lt;/li&gt;&lt;li&gt;Spring Portfolio&lt;/li&gt;&lt;li&gt;Dependency Injection (DI)&lt;/li&gt;&lt;li&gt;Aspect-Oriented Programming (AOP)&lt;/li&gt;&lt;li&gt;Role of Custom Annotations in DDD&lt;/li&gt;&lt;li&gt;Spring Security&lt;/li&gt;&lt;li&gt;Architecture Enforcement (Demo)&lt;/li&gt;&lt;li&gt;Code Generation (Demo)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I have uploaded to &lt;a href="http://www.slideshare.net/"&gt;SlideShare&lt;/a&gt; web site. You can view the presentation &lt;a href="http://www.slideshare.net/srinip/domain-driven-design-development-spring-portfolio"&gt;slides&lt;/a&gt; on the site. Let me know if you have any suggestions or feedback for improvement of the presentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7217872852197421140?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7217872852197421140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7217872852197421140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7217872852197421140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7217872852197421140'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/03/domain-driven-design-and-development.html' title='Domain Driven Design and Development with Spring Portfolio'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4153913888981423508</id><published>2009-02-06T20:52:00.000-08:00</published><updated>2009-02-07T19:47:41.921-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='ITARC 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Conferences'/><title type='text'>I will be speaking at ITARC Architect Conference</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 138px;" src="http://4.bp.blogspot.com/_XQM_82SlH58/SY0VyJ3YqrI/AAAAAAAAAFM/LaO_1zM1CFY/s320/itarc-conference.png" alt="" id="BLOGGER_PHOTO_ID_5299916287870806706" border="0" /&gt;&lt;/a&gt;I will be speaking at the upcoming IT Architect Regional Conference in Atlanta later this month. My presentation is in the &lt;a href="http://www.iasahome.org/web/itarc/116#Enterprise"&gt;Enterprise Architecture&lt;/a&gt; track of the conference schedule.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Topic:&lt;/span&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;Architecture Enforcement and Governance Using Aspects and SonarJ&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abstract:&lt;/span&gt;&lt;br /&gt;In this presentation, I will talk about the significance of enforcing the architecture rules and standards and how to actually enforce them in software development projects. Architecture governance ensures that the Implementation (Code) does match the Requirements (Reference Architecture). It can help with clear and cycle free dependency structures as well as improve testability and reusability of code.&lt;br /&gt;&lt;br /&gt;Enforcing Reference Architecture guidelines promotes consistency and modularity in the System. It also helps in detecting structural complexity and preventing it earlier in the software development process. As a result, the application code is modifiable, portable, and testable.&lt;br /&gt;&lt;br /&gt;Most of the presentation will focus on using Aspects and &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt; techniques to define architecture rules and use them for policy-enforcement in Java applications. I will briefly discuss how tools like SonarJ and Structure 101 can help the architects integrate architecture analysis and management earlier in the development process.&lt;br /&gt;&lt;br /&gt;The session will include several demo's of how to enforce the architecture rules using frameworks like &lt;a href="http://www.eclipse.org/aspectj/"&gt;AspectJ&lt;/a&gt; and &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/aop.html"&gt;SpringAOP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Check out more details of the ITARC &lt;a href="http://www.iasahome.org/web/itarc/2009/atlanta"&gt;conference&lt;/a&gt;, event &lt;a href="http://www.iasahome.org/web/itarc/115"&gt;schedule&lt;/a&gt; and my &lt;a href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;presentation&lt;/a&gt;. Let me know if you live in Atlanta area and if you are going to be attending the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4153913888981423508?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4153913888981423508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4153913888981423508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4153913888981423508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4153913888981423508'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/02/i-will-be-speaking-at-itarc-architect.html' title='I will be speaking at ITARC Architect Conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XQM_82SlH58/SY0VyJ3YqrI/AAAAAAAAAFM/LaO_1zM1CFY/s72-c/itarc-conference.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7476632501897387736</id><published>2009-02-06T20:03:00.000-08:00</published><updated>2009-02-06T20:12:19.980-08:00</updated><title type='text'>Greg Young on Domain-Driven Design</title><content type='html'>At QCon San Francisco 2008 &lt;a href="http://qconsf.com/sf2008/conference/"&gt;conference&lt;/a&gt; last year, I interviewed Greg Young on &lt;a href="http://www.domaindrivendesign.org"&gt;Domain-Driven Design&lt;/a&gt; (DDD) topic. His team has been using DDD concepts in their projects. In the interview, Greg discussed how to manage domain state transitions in a DDD project using two different design models, one for reading data from data store and the other for write-only command operations. He also talked about Command Query Separation (CQS) design concept to keep design cleaner and easier to test and maintain and the best practices that developers can use when working on DDD projects.&lt;br /&gt;&lt;br /&gt;Check out the &lt;a href="http://www.infoq.com/news/2009/01/greg-young-ddd"&gt;interview&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7476632501897387736?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7476632501897387736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7476632501897387736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7476632501897387736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7476632501897387736'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/02/greg-young-on-domain-driven-design.html' title='Greg Young on Domain-Driven Design'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1677730088862001642</id><published>2009-02-01T20:19:00.000-08:00</published><updated>2009-02-01T20:58:02.167-08:00</updated><title type='text'>JavaRebel - nice tool to help with J2EE App hot-deployments</title><content type='html'>Recently, I got a license of &lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;JavaRebel&lt;/a&gt; software created by &lt;a href="http://www.zeroturnaround.com/"&gt;ZeroTurnaround&lt;/a&gt; development group. This tool uses a custom Java &lt;a href="http://en.wikipedia.org/wiki/JAR_hell#Class_loading_process"&gt;classloader&lt;/a&gt; to hot-deploy the code changes made in a single Java class in the web applications to override the servlet container (&lt;a href="http://www.jboss.org/"&gt;JBoss&lt;/a&gt; or &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;) default WAR deploy behavior (which redeploys the whole web application context).&lt;br /&gt;&lt;br /&gt;This tool helps the Java developers be more productive with the time they can save because of the less time required to load the class changes into JVM without having to deploy the whole web application every time a change is made in a single class.&lt;br /&gt;&lt;br /&gt;Using the tool is pretty straight-forward. You will have to start the container (whether it's JBoss, Tomcat or any other J2EE container) using the "&lt;a href="http://java.sun.com/javase/6/docs/api/java/lang/instrument/package-summary.html"&gt;-javaagent&lt;/a&gt;" option and specify the folder(s) where JavaRebel should look for Java class changes in the web applications deployed in the container.&lt;br /&gt;&lt;br /&gt;But, remember that even though JavaRebel helps boost the productivity with faster deployments of web application contexts, you should still design your applications to be more unit-testing friendly and be able to test most of the code in the application using the unit testing frameworks like &lt;a href="http://www.junit.org/"&gt;JUnit4&lt;/a&gt; or &lt;a href="http://testng.org/doc/index.html"&gt;TestNG&lt;/a&gt;, outside the container. You should depend on the container only for those infrastructure concerns (like in-container Database Connection Pool, JTA Transactions, JMS Message Queues and Topics) that need the application to be deployed inside the container. Even in most of these cases, you can use the embedded &lt;a href="http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html"&gt;broker&lt;/a&gt; version of &lt;a href="http://activemq.apache.org/"&gt;ActiveMQ&lt;/a&gt; container to unit test the JMS resources outside the container.&lt;br /&gt;&lt;br /&gt;If you are using JBoss or Tomcat or other application server and you are maintaining a legacy J2EE application that's not easy to unit test and requires the application to be deployed in the container for even simple code changes, you should check out JavaRebel tool. Similar to tools like &lt;a href="http://www.jetbrains.com/idea/"&gt;IntelliJ IDEA&lt;/a&gt;, it is worth the price. The benefits it offers far out-weigh the cost.&lt;br /&gt;&lt;br /&gt;I hope &lt;a href="http://www.springsource.com/"&gt;SpringSource&lt;/a&gt; or &lt;a href="http://www.jboss.com/"&gt;JBoss&lt;/a&gt; will soon acquire ZeroTurnaround to integrate JavaRebel into Tomcat or JBoss containers respectively. JavaRebel is such an useful tool it only makes sense to see it integrated with these popular J2EE containers and not as a separate product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1677730088862001642?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1677730088862001642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1677730088862001642' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1677730088862001642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1677730088862001642'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/02/javarebel-nice-tool-to-help-with-j2ee.html' title='JavaRebel - nice tool to help with J2EE App hot-deployments'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4815260819935280046</id><published>2009-01-23T21:03:00.000-08:00</published><updated>2009-01-23T21:20:39.928-08:00</updated><title type='text'>Spring 3.0 and Beyond - Interview with Rod Johnson</title><content type='html'>During QCon San Francisco 2009 &lt;a href="http://qconsf.com/sf2008/conference/"&gt;conference&lt;/a&gt;, I interviewed &lt;a href="http://www.springframework.org/"&gt;SpringFramework&lt;/a&gt; founder &lt;a href="http://blog.springsource.com/author/rodj/"&gt;Rod Johnson&lt;/a&gt; about various topics including:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.0.M1/javadoc-api/"&gt;Spring 3.0&lt;/a&gt; Features&lt;/li&gt;&lt;li&gt;REST Support&lt;/li&gt;&lt;li&gt;Java EE6/EJB 3.1 integration in Spring&lt;/li&gt;&lt;li&gt;SpringSource license model&lt;/li&gt;&lt;li&gt;Future &lt;a href="http://www.domaindrivendesign.org/"&gt;Domain Driven Design&lt;/a&gt; Support&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.g2one.com/"&gt;G2One&lt;/a&gt; acquisition&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springsource.org/spring-integration"&gt;Spring Integration&lt;/a&gt;/Spring &lt;a href="http://www.springsource.org/webflow"&gt;Web Flow&lt;/a&gt;/Spring &lt;a href="http://static.springsource.org/spring-batch/"&gt;Batch&lt;/a&gt; Frameworks&lt;/li&gt;&lt;li&gt;Cloud Computing&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springsource.org/dmserver"&gt;SpringSource DM Server&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.osoa.org/display/Main/Service+Component+Architecture+Home"&gt;SCA&lt;/a&gt; Support in Spring&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The &lt;a href="http://www.infoq.com/interviews/Spring-3.0-Rod-Johnson"&gt;interview&lt;/a&gt; is now available on &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt;. Check it out and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4815260819935280046?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4815260819935280046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4815260819935280046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4815260819935280046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4815260819935280046'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/01/spring-30-and-beyond-interview-with-rod.html' title='Spring 3.0 and Beyond - Interview with Rod Johnson'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8629285005738094648</id><published>2009-01-19T20:13:00.001-08:00</published><updated>2009-01-19T20:19:19.064-08:00</updated><title type='text'>Top 100 Best Software Engineering Books - Good List</title><content type='html'>&lt;a href="http://knol.google.com/k/jurgen-appelo/jurgen-appelo/z7e4mx2g6lir/1"&gt;Jurgen Appelo&lt;/a&gt; recently posted a &lt;a href="http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/z7e4mx2g6lir/3"&gt;list&lt;/a&gt; of Top 100 Best Software Engineering Books. I am not sure if I agree with the author on all the ratings of books in the list, but most of my favorites are in top 30. I am just not happy that Eric Evans' book "&lt;a href="http://www.domaindrivendesign.org/books/index.html#DDD"&gt;Domain Driven Design&lt;/a&gt;" (which is my top 10 book) is 89 on the list :)&lt;br /&gt;&lt;br /&gt;Check out the list. Top 100 Best Software Engineering Books, Ever:&lt;br /&gt;http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/&lt;br /&gt;&lt;br /&gt;How does this compare to your own list of favorite books?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8629285005738094648?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8629285005738094648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8629285005738094648' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8629285005738094648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8629285005738094648'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/01/top-100-best-software-engineering-books.html' title='Top 100 Best Software Engineering Books - Good List'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-812076389074176223</id><published>2009-01-19T14:49:00.000-08:00</published><updated>2009-01-19T14:57:43.322-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodeMash 2009'/><title type='text'>CodeMash 2009 Conference - Venkat's Keynote Presentation</title><content type='html'>I attended a keynote presentation by &lt;a href="http://www.agiledeveloper.com/blog/"&gt;Venkat Subamaniam&lt;/a&gt; at the recent &lt;a href="http://www.codemash.org"&gt;CodeMash 2009 &lt;/a&gt;conference. He talked about the facts and fallacies of every day software development and what developers &amp;amp; project managers should watch out for to ensure the success of the projects. It was an excellent presentation, Venkat touched on several agile development and project management techniques such as dynamic languages, off-shoring, innovation-before-standardization, and &lt;a href="http://en.wikipedia.org/wiki/Unit_testing"&gt;unit testing&lt;/a&gt;. He has a unique way of explaining every day problems that we, the programmers, run into in our projects and never even realize that we are in the midst of a problem.&lt;br /&gt;&lt;br /&gt;The keynote session drew great response from the audience because of the practical nature of the fallacies mentioned by the speaker. I have published a &lt;a href="http://www.infoq.com/news/2009/01/venkat-codemash-keynote"&gt;news item&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; summarizing Venkat's keynote presentation. Check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-812076389074176223?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/812076389074176223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=812076389074176223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/812076389074176223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/812076389074176223'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2009/01/codemash-2009-conference-venkats.html' title='CodeMash 2009 Conference - Venkat&apos;s Keynote Presentation'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-5955728873878307050</id><published>2008-12-28T11:39:00.000-08:00</published><updated>2008-12-28T17:18:49.852-08:00</updated><title type='text'>CodeMash 2009 Conference Next Month</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XQM_82SlH58/SVglLoyGK8I/AAAAAAAAAEs/MIp1BSzOyPk/s1600-h/attendee1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 206px; height: 132px;" src="http://3.bp.blogspot.com/_XQM_82SlH58/SVglLoyGK8I/AAAAAAAAAEs/MIp1BSzOyPk/s320/attendee1.png" alt="" id="BLOGGER_PHOTO_ID_5285015044575603650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I will be attending &lt;a href="http://www.codemash.org/"&gt;CodeMash 2009&lt;/a&gt; Conference next month on January 7, 8 and 9. On the first day of the conference, there will be &lt;a href="http://www.codemash.org/PreCompiler.aspx"&gt;PreCompiler sessions&lt;/a&gt; with Code Jam sessions and workshops.  The main conference schedule and &lt;a href="http://www.codemash.org/SessionList.aspx"&gt;sessions&lt;/a&gt; look very interesting. One thing I noticed about the conference sessions and the speakers is that this is one of those no fluff conferences where the speakers and attendees are IT geeks who have practical knowledge and experience of the topics they are presenting on, which should result in a rewarding experience to the attendees.&lt;br /&gt;&lt;br /&gt;Some of the sessions I am planning on attending are listed below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Day 1:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Value Stream Mapping Workshop (Host: Mary Poppendieck)&lt;/li&gt;&lt;li&gt;Kanban 101 (David Laribee)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Day 2:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Programming in Scala (Speaker: Venkat Subramaniam)&lt;/li&gt;&lt;li&gt;RIAs with Java, Spring, Hibernate, BlazeDS, and Flex (Speaker: James Ward)&lt;/li&gt;&lt;li&gt;Dynamic Languages and the JVM (Speaker: Nathaniel Schutta)&lt;/li&gt;&lt;li&gt;Thrashing (Speaker: Mary Poppendieck)&lt;/li&gt;&lt;li&gt;Functional Concepts for OOP Developers (Speaker: Bryan Weber)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Day 3:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Grease, a Parallel Systems Architecture (Speaker: Edward Vielmetti)&lt;/li&gt;&lt;li&gt;Language Oriented DDD (Speaker: David Laribee)&lt;/li&gt;&lt;li&gt;Executable Documentation with easyb (Speaker: Andrew Glover)&lt;/li&gt;&lt;/ul&gt;All-in-all, I am looking forward to meeting other passionate Java, .NET, Python and Ruby developers there and network with regional user group leaders.&lt;br /&gt;&lt;br /&gt;If anyone is attending the conference, let me know. We can get together for a cup of coffee or brew.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-5955728873878307050?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/5955728873878307050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=5955728873878307050' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5955728873878307050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5955728873878307050'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/12/codemash-2009-conference-next-month.html' title='CodeMash 2009 Conference Next Month'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XQM_82SlH58/SVglLoyGK8I/AAAAAAAAAEs/MIp1BSzOyPk/s72-c/attendee1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-738950235693695321</id><published>2008-12-21T03:49:00.000-08:00</published><updated>2008-12-21T21:16:50.877-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Detroit JUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><title type='text'>Application Architecture Trends presentation at Detroit Java User Group meeting</title><content type='html'>I recently gave a &lt;a href="http://sites.google.com/site/detroitjug/Meeting-Announcements/december17thmeeting-applicationarchitectures-wherewehavebeenwherewearegoing"&gt;presentation&lt;/a&gt; on Application Architecture Trends at &lt;a href="http://sites.google.com/site/detroitjug/"&gt;Detroit Java User Group&lt;/a&gt; meeting on Wednesday evening. The presentation title is "Application Architectures - Where We Have Been, Where We Are Going". The turnout was pretty good (about 20 people) and the presentation went very well. There were lot of great questions and discussion on the items I talked about in the presentation like &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt;, Custom Annotations and &lt;a href="http://www.osgi.org/Main/HomePage"&gt;OSGi&lt;/a&gt;. Here is a list of the new technology trends I covered in the presentation:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dependency Injection (includes a demo on a Data Access Object using Spring DI to inject the JEE resources like Data Source, Entity Manager, and Transaction Manager)&lt;/li&gt;&lt;li&gt;Aspect Oriented Programming (includes 2 demos, one on Architecture Rules Enforcement using AspectJ &amp;amp; AJDT and another on Profiling using Spring AOP)&lt;/li&gt;&lt;li&gt;Annotations&lt;/li&gt;&lt;li&gt;    Custom Annotations (includes a demo on a Custom Annotation for Object Caching using Spring AOP and EHCache)&lt;/li&gt;&lt;li&gt;Spring Portfolio&lt;/li&gt;&lt;li&gt;    Spring Core&lt;/li&gt;&lt;li&gt;    Spring AOP&lt;/li&gt;&lt;li&gt;    Spring Security&lt;/li&gt;&lt;li&gt;    Spring MVC/ Spring WebFlow&lt;/li&gt;&lt;li&gt;Persistence&lt;/li&gt;&lt;li&gt;    JDBC v. Hibernate v. JPA&lt;/li&gt;&lt;li&gt;Transaction Management&lt;/li&gt;&lt;li&gt;    Spring JTA&lt;/li&gt;&lt;li&gt;Web Services, Async Messaging &amp;amp; ESB's&lt;/li&gt;&lt;li&gt;Java As a Platform&lt;/li&gt;&lt;li&gt;    Dynamic Languages (Groovy, JRuby, Scala)&lt;/li&gt;&lt;li&gt;    Domain Specific Languages (DSL's)&lt;/li&gt;&lt;li&gt;        Internal DSLs&lt;/li&gt;&lt;li&gt;        External DSLs&lt;/li&gt;&lt;li&gt;Deployment&lt;/li&gt;&lt;li&gt;    OSGi&lt;/li&gt;&lt;li&gt;Distributed Computing&lt;/li&gt;&lt;li&gt;    Concurrent Programming (support in JDK)&lt;/li&gt;&lt;li&gt;    Cloud Computing&lt;/li&gt;&lt;li&gt;    Virtualization&lt;/li&gt;&lt;li&gt;Database Layer&lt;/li&gt;&lt;li&gt;    Distributed Data Storage Frameworks&lt;/li&gt;&lt;li&gt;Other Trends&lt;/li&gt;&lt;li&gt;    Web 2.0&lt;/li&gt;&lt;li&gt;    RIA/RCP Applications&lt;/li&gt;&lt;li&gt;    Conversational Web / Batch Frameworks&lt;/li&gt;&lt;li&gt;What's next for J2EE?&lt;/li&gt;&lt;li&gt;    Java EE 6 (JSR-316)&lt;/li&gt;&lt;li&gt;        - Profiles&lt;/li&gt;&lt;li&gt;    JPA 2.0 (JSR-317)&lt;/li&gt;&lt;li&gt;        - Criteria Expression Support&lt;/li&gt;&lt;li&gt;    EJB 3.1 (JSR-318)&lt;/li&gt;&lt;li&gt;        - Deploy EJB's in WAR files (no need for EAR files any more)&lt;/li&gt;&lt;li&gt;    Spring 3.0&lt;/li&gt;&lt;li&gt;        - REST Support&lt;/li&gt;&lt;li&gt;        - Support for EJB 3.1&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The presentation slides are available &lt;a href="http://www.slideshare.net/srinip/application-architecture-trends-presentation/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://independentindetroit.blogspot.com/"&gt;Erik&lt;/a&gt; has &lt;a href="http://independentindetroit.blogspot.com/2008/12/i-love-jugs.html"&gt;blogged&lt;/a&gt; about this meeting and my presentation.&lt;br /&gt;&lt;br /&gt;This presentation is also accepted for the upcoming No Fluff Just Stuff (NFJS) &lt;a href="http://www.nofluffjuststuff.com/home.jsp"&gt;Symposium&lt;/a&gt; in &lt;a href="http://www.nofluffjuststuff.com/conference/milwaukee/2009/02/index.html"&gt;Milwaukee&lt;/a&gt; in February (Feb 27 to March 1; checkout out the full &lt;a href="http://www.nofluffjuststuff.com/conference/milwaukee/2009/02/schedule.html"&gt;conference schedule&lt;/a&gt; which has great speakers talking on very interesting topics).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-738950235693695321?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/738950235693695321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=738950235693695321' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/738950235693695321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/738950235693695321'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/12/application-architecture-trends.html' title='Application Architecture Trends presentation at Detroit Java User Group meeting'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-3988780769345517592</id><published>2008-11-27T18:02:00.000-08:00</published><updated>2008-11-27T18:20:00.913-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QConSF 2008 Conference'/><title type='text'>QCon San Francisco 2008 Conference - Tutorials</title><content type='html'>I attended &lt;a href="http://qconsf.com/sf2008/"&gt;QCon&lt;/a&gt; San Francisco conference last week. The conference &lt;a href="http://qconsf.com/sf2008/schedule/wednesday.jsp"&gt;schedule&lt;/a&gt; included &lt;a href="http://qconsf.com/sf2008/tutorials/"&gt;tutorial sessions&lt;/a&gt; before the main conference. There were several tutorials on topics like:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://qconsf.com/sf2008/presentation/Building+Modular+Applications+with+the+SpringSource+Application+Platform"&gt;SpringSource dm Server&lt;/a&gt; by &lt;a href="http://qconsf.com/sf2008/speaker/Rob+Harrop"&gt;Rob Harrop&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Domain Specific Languages by &lt;a class="textlink" href="http://qconsf.com/sf2008/speaker/Neal+Ford"&gt;Neal Ford&lt;/a&gt;, &lt;a class="textlink" href="http://qconsf.com/sf2008/speaker/Martin+Fowler"&gt;Martin Fowler&lt;/a&gt; &amp;amp; &lt;a class="textlink" href="http://qconsf.com/sf2008/speaker/Rebecca+Parsons"&gt;Rebecca Parsons&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Scala (Bill Venners)&lt;/li&gt;&lt;li&gt;Erlang (Francesco Cesarini)&lt;/li&gt;&lt;li&gt;JRuby and JRuby on Rails (Ola Bini &amp;amp; Nick Sieger), and &lt;/li&gt;&lt;li&gt;Agile Management (David Anderson). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I attended Certified Scrum Master (&lt;a href="http://qconsf.com/sf2008/presentation/Certified+Scrum+Master"&gt;CSM&lt;/a&gt;) hosted by &lt;a href="http://qconsf.com/sf2008/speaker/Martine+Devos"&gt;Martine Devos&lt;/a&gt; from &lt;a href="http://www.objectmentor.com/index.html"&gt;Object Mentor&lt;/a&gt; Project Management team. Martine is an excellent CSM Trainer. The tutorial class was very educational and informative for people who are in technical management to be come Agile Project Managers. The class was interactive that allowed students to discuss with each other and rest of the group in serveral real-world project management scenarios.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Some of my favorite parts of the class are: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Scrum From Hell &lt;/li&gt;&lt;li&gt;Estimation Quiz&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Martine is a great instructor. I recommend her class for any one who wants to learn how to be an Agile Project Manager.&lt;/p&gt;&lt;p&gt;On day 2 of the conference, I attended an ad hoc presentation by &lt;a href="http://st-www.cs.uiuc.edu/users/johnson/index.html"&gt;Ralph Johnson&lt;/a&gt; (one of GOF &lt;a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612"&gt;Design Patterns&lt;/a&gt; authros) on Parallel Computing Design Patterns.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-3988780769345517592?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/3988780769345517592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=3988780769345517592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3988780769345517592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3988780769345517592'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/11/qcon-san-francisco-2008-conference.html' title='QCon San Francisco 2008 Conference - Tutorials'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-2054771035898841908</id><published>2008-11-07T17:32:00.000-08:00</published><updated>2008-11-07T18:51:26.369-08:00</updated><title type='text'>QCon 2008 conference</title><content type='html'>The second QCon San Francisco (&lt;a href="http://qconsf.com/sf2008/"&gt;QCon SF 2008&lt;/a&gt;) conference is fast approaching us. The conference is held at &lt;a href="http://www.westinsf.com/"&gt;Westin SF Market Street&lt;/a&gt; from November 19 - 21.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XQM_82SlH58/SRT9yQhNn0I/AAAAAAAAAEI/AxGDKEGJXDg/s1600-h/QConConferenceLogo.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 114px;" src="http://1.bp.blogspot.com/_XQM_82SlH58/SRT9yQhNn0I/AAAAAAAAAEI/AxGDKEGJXDg/s320/QConConferenceLogo.gif" alt="" id="BLOGGER_PHOTO_ID_5266112904172511042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://qconsf.com/sf2008/schedule/wednesday.jsp"&gt;schedule&lt;/a&gt; includes &lt;a href="http://qconsf.com/sf2008/tracks/"&gt;tracks&lt;/a&gt; on Domain Driven Design (DDD), Domain Specific Languages (DSLs), Service Oriented Architecture (SOA), REST Web Services, Design and Architecture (with several case-studies presentations), Emerging Technologies, and Agile Methodologies.&lt;br /&gt;&lt;br /&gt;I was at the conference &lt;a href="http://qconsf.com/sf2007/conference/"&gt;last year&lt;/a&gt;. It was a great experience.  I am looking forward this year's conference. With several interesting sessions, most of them conflicting with each other, it will be tough to pick which session to attend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-2054771035898841908?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/2054771035898841908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=2054771035898841908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/2054771035898841908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/2054771035898841908'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/11/qcon-2008-conference.html' title='QCon 2008 conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XQM_82SlH58/SRT9yQhNn0I/AAAAAAAAAEI/AxGDKEGJXDg/s72-c/QConConferenceLogo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4046957682221062522</id><published>2008-07-04T15:08:00.000-07:00</published><updated>2008-07-04T15:11:10.003-07:00</updated><title type='text'>Domain Driven Design and Development In Practice - Article</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4046957682221062522?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4046957682221062522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4046957682221062522' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4046957682221062522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4046957682221062522'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/07/domain-driven-design-and-development-in.html' title='Domain Driven Design and Development In Practice - Article'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1011627590730393947</id><published>2008-05-30T22:27:00.000-07:00</published><updated>2008-05-30T20:26:42.389-07:00</updated><title type='text'>Scrum &amp; Football  Analogy</title><content type='html'>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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1011627590730393947?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1011627590730393947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1011627590730393947' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1011627590730393947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1011627590730393947'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/scrum-football-analogy.html' title='Scrum &amp; Football  Analogy'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6292967701510890095</id><published>2008-05-26T12:03:00.000-07:00</published><updated>2008-05-26T12:08:40.231-07:00</updated><title type='text'>ActiveMQ 5.1 Supports JMS Destination Monitoring and MSMQ Bridge</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6292967701510890095?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6292967701510890095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6292967701510890095' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6292967701510890095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6292967701510890095'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/05/activemq-51-supports-jms-destination.html' title='ActiveMQ 5.1 Supports JMS Destination Monitoring and MSMQ Bridge'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6297028519411617009</id><published>2008-05-15T18:21:00.000-07:00</published><updated>2008-05-15T18:24:32.805-07:00</updated><title type='text'>Building Spring-Seam Hybrid Components For Web Applications</title><content type='html'>&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?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6297028519411617009?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6297028519411617009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6297028519411617009' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6297028519411617009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6297028519411617009'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/05/building-spring-seam-hybrid-components.html' title='Building Spring-Seam Hybrid Components For Web Applications'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7339307088249743774</id><published>2008-05-13T19:04:00.000-07:00</published><updated>2008-05-13T19:12:11.691-07:00</updated><title type='text'>Java EE 6 and EJB 3.1 look very much like Spring, Hibernate and Quartz</title><content type='html'>&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).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7339307088249743774?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7339307088249743774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7339307088249743774' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7339307088249743774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7339307088249743774'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/05/java-ee-6-and-ejb-31-look-very-much.html' title='Java EE 6 and EJB 3.1 look very much like Spring, Hibernate and Quartz'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-3215348307493503599</id><published>2008-05-13T18:54:00.000-07:00</published><updated>2008-05-13T19:02:54.386-07:00</updated><title type='text'>JUnit 4.4 - Hamcrest Asserts</title><content type='html'>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.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-3215348307493503599?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/3215348307493503599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=3215348307493503599' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3215348307493503599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3215348307493503599'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/05/junit-44-hamcrest-asserts.html' title='JUnit 4.4 - Hamcrest Asserts'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-3500230612500187589</id><published>2008-05-07T11:59:00.000-07:00</published><updated>2008-05-07T12:07:54.258-07:00</updated><title type='text'>JavaOne 2008 kickoff</title><content type='html'>&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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-3500230612500187589?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/3500230612500187589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=3500230612500187589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3500230612500187589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3500230612500187589'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/05/javaone-2008-kickoff.html' title='JavaOne 2008 kickoff'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-8580942264891965333</id><published>2008-05-04T12:09:00.000-07:00</published><updated>2008-05-04T12:31:50.835-07:00</updated><title type='text'>Getting ready for JavaOne 2008 conference</title><content type='html'>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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8580942264891965333?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/8580942264891965333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=8580942264891965333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8580942264891965333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/8580942264891965333'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2008/05/getting-ready-for-javaone-2008.html' title='Getting ready for JavaOne 2008 conference'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-5149976815981374709</id><published>2007-12-22T13:22:00.000-08:00</published><updated>2007-12-22T13:30:21.156-08:00</updated><title type='text'>Agile Software Testing With Spring Framework</title><content type='html'>&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?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-5149976815981374709?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/5149976815981374709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=5149976815981374709' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5149976815981374709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5149976815981374709'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/12/agile-software-testing-with-spring.html' title='Agile Software Testing With Spring Framework'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-1486819734061210962</id><published>2007-11-28T22:14:00.000-08:00</published><updated>2007-11-28T22:16:57.571-08:00</updated><title type='text'>SpringSource's Adrian Colyer Details Spring in Production</title><content type='html'>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;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1486819734061210962?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/1486819734061210962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=1486819734061210962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1486819734061210962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/1486819734061210962'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/springsources-adrian-colyer-details.html' title='SpringSource&apos;s Adrian Colyer Details Spring in Production'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6971864225016271211</id><published>2007-11-23T20:18:00.001-08:00</published><updated>2007-11-23T20:40:04.609-08:00</updated><title type='text'>Spring is like BASF</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6971864225016271211?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6971864225016271211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6971864225016271211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6971864225016271211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6971864225016271211'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/spring-is-like-basf.html' title='Spring is like BASF'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6798981374544415988</id><published>2007-11-18T20:27:00.001-08:00</published><updated>2007-11-20T22:53:11.750-08:00</updated><title type='text'>Service Oriented Objects</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6798981374544415988?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6798981374544415988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6798981374544415988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6798981374544415988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6798981374544415988'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/service-oriented-objects.html' title='Service Oriented Objects'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-7749143205608225853</id><published>2007-11-18T20:17:00.000-08:00</published><updated>2007-11-23T16:24:17.637-08:00</updated><title type='text'>Architecting For Performance And Scalability - Panel Discussion @ QCon</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7749143205608225853?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/7749143205608225853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=7749143205608225853' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7749143205608225853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/7749143205608225853'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/architecting-for-performance-and.html' title='Architecting For Performance And Scalability - Panel Discussion @ QCon'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-4622078231529087735</id><published>2007-11-18T17:23:00.000-08:00</published><updated>2007-11-18T19:52:34.096-08:00</updated><title type='text'>QCon - Trends in Agile Development by Kent Beck</title><content type='html'>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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4622078231529087735?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/4622078231529087735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=4622078231529087735' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4622078231529087735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/4622078231529087735'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/qcon-trends-in-agile-development-by.html' title='QCon - Trends in Agile Development by Kent Beck'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-6087919743391246067</id><published>2007-11-15T22:12:00.000-08:00</published><updated>2007-11-15T22:58:22.662-08:00</updated><title type='text'>What I Liked About QCon 2007</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6087919743391246067?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/6087919743391246067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=6087919743391246067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6087919743391246067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/6087919743391246067'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/what-i-liked-about-qcon-2007.html' title='What I Liked About QCon 2007'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-5711777037675958980</id><published>2007-11-13T20:13:00.001-08:00</published><updated>2007-11-18T20:26:21.389-08:00</updated><title type='text'>QCon 2007 in San Francisco</title><content type='html'>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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-5711777037675958980?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/5711777037675958980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=5711777037675958980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5711777037675958980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/5711777037675958980'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/11/i-was-at-qcon-conference-in-san.html' title='QCon 2007 in San Francisco'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7907778724738449118.post-3235676453088933570</id><published>2007-07-17T19:15:00.001-07:00</published><updated>2007-07-17T19:15:44.547-07:00</updated><title type='text'>First message on the blog</title><content type='html'>I just joined this blog site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-3235676453088933570?l=srinip2007.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://srinip2007.blogspot.com/feeds/3235676453088933570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7907778724738449118&amp;postID=3235676453088933570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3235676453088933570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7907778724738449118/posts/default/3235676453088933570'/><link rel='alternate' type='text/html' href='http://srinip2007.blogspot.com/2007/07/first-message-on-blog.html' title='First message on the blog'/><author><name>srinip</name><uri>http://www.blogger.com/profile/16680759359634092081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
