IBM Introduces Coded Enterprise Software Patterns

IBM released the first software development patterns represented in code and integrated with tools for automating enterprise application development. Available on IBM's developerWorks Web site, the four new IBM Enterprise Patterns work with IBM's Rational Software Architect tool.

A software pattern is the description of a solution to a recurring development problem. Collections of interrelated patterns are called pattern languages, which, though not formal languages, provide a vocabulary for talking about a particular problem. As a literary form, patterns require developers to implement code according to the pattern guidelines. By creating a repository of coded patterns accessed through the RSA tool, IBM is making it possible to bypass this slow process and drive patterns more directly into development.

"This is about enabling developers to import a pattern into a tool, create a UML diagram, automatically generate code and get a leg up on implementing common things that happen when you create enterprise applications," says Angel Diaz, director of on-demand software development in IBM's Software Group.

The IBM Enterprise Patterns can be imported and installed into the RSA tool. Users launch the RAS Asset Explorer and connect to the Rational XDE Repository. The URL is accessible only through the RAS Asset Explorer, and not from a Web browser.

The four new Enterprise Patterns include:

  • Session Facade, which encapsulates access to a set of remote business services and business objects, such as entity beans. This pattern provides a default create-retrieve-update-delete and retrieve-all implementation to coordinate interactions between the entity beans and invoking clients.
  • Business Delegate, which decouples a client from a business service. Business service characteristics related to remoteness and technology choices are hidden from the client, and the client view to the business service is a plain old Java object.
  • Message Facade, which is used when a client wants to invoke an otherwise synchronous remote service asynchronously. It is implemented as a message-driven bean.
  • Data Access Object, which provides an API for maintaining enterprise data held in a persistence store. This pattern is frequently used when an application does not use Enterprise JavaBeans components, or the persistent store can't be supported by container-managed persistence entity beans.

All of the patterns leverage Service Data Objects for data transfer. The SDO spec provides a model that unifies data programming across data-source types and enables applications, tools and frameworks to more easily query, view, bind, update and introspect data.

The use of patterns has met with some resistance from old-school coders, says Grant Larsen, model driven development strategist for IBM Rational. Patterns fall between what he calls the “innovative, flexible, sort of artsy part of software development” and corporate demands for processes that are manageable and maintainable.

“A pattern still permits creativity,” Larsen says. “It’s applied to a model that you create, and you’re innovating the solution, but as you build out that model, there are some good, sound, well-known software engineering design principles that should be there to support things like scalability.”

The RSA Enterprise Patterns are free and available for download at

About the Author

John K. Waters is a freelance writer based in Silicon Valley. He can be reached at [email protected].