A major goal of our first Go-ForIt project was to document what we learned and share it with our partners. We built an errand service using WebSphere Application Server with DB2, and featuring servlets, JavaServer Pages (JSP) technology, and Enterprise JavaBeans (EJB) components. We used VisualAge for Java and WebSphere Studio as development tools. Our experience helped us write several articles and produce valuable course material that is taught at IBM's Solution Partnership Centers worldwide. However, the application itself was very narrowly focused, because we built it to handle the Web-based interactions of Go-ForIt.com's users. In the real world, it's not sufficient to just have a Web application; the application must be integrated with other applications and with the applications of suppliers and vendors.
Our new project will address the requirements our partners now face -- transforming and integrating business processes within and beyond the enterprise. To achieve the transformation, we'll:
- Use WebSphere middleware for integration
- Leverage information with DB2
- Capitalize on knowledge management with Lotus
- Maintain and secure our heterogeneous platforms with Tivoli.
As our partners integrate disparate systems and scale existing systems, they're finding Linux to be a good alternative to some scalability approaches and the associated costs. Therefore, this project (which we're calling Go-ForIt Version 2: The quest continues) will expand onto the Linux platform. Many of our partners are using, or are planning to use, Web services as a vehicle for integration, so we will also focus on Web services enablement of the Go-ForIt application.
Development and deployment environment
The base development environment will be WebSphere Studio Application Developer Version 4.0, with a planned migration to Version 5.0 in early 2003. The team will use the common code repository CVS, the popular open-source version control system. We will host the CVS repository on an IBM xSeries server running Red Hat Linux 7.3. Because of the number of products that will be integrated into Go-ForIt Version 2, it will be necessary to have a more complicated test and production environment, and more formal processes to govern builds and deployment. Wherever possible, builds and deployment will be done using Ant, the popular open source Java alternative to Make.
The architecture will reflect what we're hearing from our customers and business partners who are tackling more and more complex integration problems. The original architecture for Go-ForIt is shown in Figure 1.
Figure 1. Go-ForIt architecture

In this new project we'll try to take on more complex integration issues involving the four major tiers of IBM's middleware portfolio, which are:
- WebSphere
- Will be used for online transactions and messaging.
- Lotus
- Will be used for advanced collaboration.
- DB2
- Will be used for data management.
- Tivoli
- Will be used for integrated enterprise management.
We'll also focus on: using Web services, support of more client devices, and B2B integration. The new architecture will eventually look like Figure 2.
Figure 2. Revised Go-ForIt architecture

We will use the IBM Patterns for e-business extensively as a guide as we move to the new architecture. IBM's Patterns for e-business are a group of reusable assets that can help speed the process of developing Web-based applications. The patterns are centered around common business requirements such as customer self-service, collaboration, information aggregation, extending the enterprise (B2B), integration, and portals. (See Resources for a link.
Although skill building, maintenance, and projects like Go-ForIt are a very necessary part of a consultant's job, they serve the purpose of preparing the team for their consulting engagements -- the main focus of their work. Just as it isn't acceptable for firefighters to refuse a three-alarm fire because they're doing maintenance on the fire house, when a dragonslayer is deployed, he or she must travel. And travel we do. At different times throughout the year, consultants are likely to be spread across the globe in different time zones. This mandated that we make some local adjustments to our eXtreme programming (XP) efforts. The XP requirement of pair programming was cumbersome to a traveling team, so this requirement is being relaxed. However, those not "geographically challenged" are still encouraged to pair program whenever possible.
The second adaptation required some trial and error. Because our team members were working on the project part time, we had the choice of relatively long iterations (to give people enough "inbound" time to complete their tasks), or limiting the scope of work slated for a single iteration. We found that the latter approach worked better for several reasons. Consultants generally knew about the short-term demands on their time, so they could more accurately allocate time for work on the project. With longer iterations, we found that consultants would tend to either overcommit or undercommit themselves because of the relative flux in the schedules as they looked beyond three or four weeks. The shorter iterations also let the project move forward steadily (albeit in very small steps), and we never had the impression, as we plodded along, that the the project was bogged down and going nowhere.
Since the first project began, there has been a lot of work in the developer community to define design patterns that are specific to J2EE applications. In Version 2, we plan to go beyond our original Model-View-Controller (MVC) architecture and embrace more of the J2EE patterns, adapting them to our environment. We will also use proven frameworks such as Struts and Tiles, which reinforce these patterns, and more importantly, are being used extensively by our customers in their applications.
We'll also change our basic paradigm. Instead of looking at Go-ForIt as a standalone application, we'll look at it as one participant in a larger electronic marketplace. To accomplish this, we'll be making extensive use of Web services and other strategies for integrating different applications in one enterprise and across several enterprises.
Our first Go-ForIt project was very successful in meeting our goals of skill development, and as a source for technical information. Some 19 articles were published, and variations of the application have been used as educational materials in courses for developers in different industries at IBM's Solution Partnership Centers and at Mentored Workshops with various customers.
Over the upcoming weeks and months, we'll continue to document our experiences with Go-ForIt and share them with you. We are particularly excited about the opportunity to take this to the next level, into the realm of integration. We're also excited about working with cutting edge technologies like Web services. So sit back and enjoy the ride. As always, we look forward to hearing from you, whether it's to share war stories or to give us your feedback.
Watch for our next installment of the Go-ForIt chronicles. To see the other articles in our tale of dragonslaying, go to our overview.
- Participate in the discussion forum.
- Read the articles from the first
Go-ForIt series.
- Learn how the dragonslayers used Struts and Tiles to reinforce J2EE patterns in these tutorials: "Strutting your stuff with WebSphere Studio Application Developer, Part 1" (developerWorks, October 2002) and "Strutting your stuff with WebSphere Studio Application Developer, Part 2" (developerWorks, November 2002).
- Explore IBM Patterns for e-Business.
- Read more about J2EE design patterns on Sun's site.
- Read more about Struts, the open-source framework for Web application development.
- Read more about CVS,
the open-source version control management system.

David Carew is an e-business Architect for IBM Developer Relations Technical Consulting in Austin, Texas, providing education, enablement, and consulting to IBM business partners. He joined IBM in 1988 and has held a variety of positions in development, from writing the code to control industrial robots to writing device drivers for AIX Wide Area Network devices. Somewhere along the way he learned Java, picked up an MBA from the University of Texas at Austin, and started consulting for Developer Relations. David is a Sun Certified Java Programmer, Certified Java Developer, and Certified Architect for Java Technology. You can reach him at carew@us.ibm.com.

Willy Farrell works for IBM Developer Relations Technical Consulting, providing education, enablement, and consulting to IBM business partners. He has been programming computers for a living since 1981, began using Java in 1996, and joined IBM in 1998. Willy holds the following technical certifications, among others: Java 2 Programmer, WebSphere Application Server Enterprise Developer, WebSphere Studio Application Developer Solution Developer, MQSeries Solutions Expert, and IBM e-business Solution Technologist. You can contact Willy at willyf@us.ibm.com.

Fred Gutierrez has the awesome privilege of providing overall direction to a team of consultants that venture forth and slay the dragons that haunt the e-business applications of IBM's business partners. He joined IBM in 1987 while attending Georgia State University. The team he worked on developed online education that was prepackaged with AS/400 systems (iSeries, for those who aren't as old as Fred). After graduating from GSU with a degree in accountancy, IBM sent Fred to Boca Raton to develop courses and Redbooks on OS/2 application development. In 1994 good fortune smiled upon him and he was transferred to the live music capital of the world (Austin, Texas) to continue the same work. Fred joined the e-business Architecture and Integration team in 1997 as a consultant and continues to dabble in technology just enough to be able to have short conversations with the members of his team. Get this -- prior to joining IBM, Fred was a Highway Patrolman with the Texas Department of Public Safety. You can reach him at fredgz@us.ibm.com.
