IBM Introduces Coded Enterprise Software Patterns
- By John K. Waters
- May 10, 2005
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
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
- Message Facade, which is used when a client wants to invoke an otherwise
synchronous remote service asynchronously. It is implemented as a message-driven
- 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 http://www-128.ibm.com/developerworks/ibm/library/i-odoebp8/.
John K. Waters is a freelance writer based in Silicon Valley. He can be reached
at [email protected].