IBM announced on Monday what appears to be the Java equivalent of Microsofts Software Factories vision.
IBM has announced a set of new enterprise patterns to help make developers more productive and promote the reuse of code and other assets, said Angel Diaz, director of On Demand Software Development for the IBM Software Group.
The new patterns are integrated with tools to automate the development of enterprise applications, Diaz said.
Moreover, the initial patterns are generic patterns, but IBM also plans to deliver patterns that simplify development in specific vertical segments, said Grant Larsen, a model-driven development strategist for IBM Rational.
Larsen said the new IBM enterprise patterns are represented in software code and integrated with the companys IBM Rational Software Architect.
The new IBM patterns are: the Business Delegate, which allows developers to easily connect to business services in the system; the Session Facade, which improves the systems ability to respond to business changes by hiding system details; the Data Access Object, which allows systems to integrate with many sources of data and information; and the Message Facade, which enables the system and users to continue while business service requests are processed in the background, IBM officials said.
“For a long time weve been working with our customers to try to codify the things they do often,” Diaz said. “So we made these patterns, and we made them marketable so people can use these patterns and also take these assets to do patterns of their own.”
Carl Zetie, an analyst with Forrester Inc., said, “Using patterns to kick-start designs or code is proving more pragmatic than code generation, and consequently is garnering increasing attention and adoption.”
Meanwhile, Larsen said the IBM strategy is similar to Microsoft Corp.s .Net-based vision of Software Factories in that with the IBM enterprise patterns, “we find a way to knit many patterns together to form a pattern solution using something we call recipes… The patterns can participate and do participate in larger solutions.”
This language is very familiar to what Microsoft architect Jack Greenfield told eWEEK.com.
Greenfield described a Software Factory as a product line that configures extensible development tools like Visual Studio Enterprise with “packaged content like domain-specific languages [DSLs], patterns, frameworks and guidance, based on recipes” for building specific kinds of applications.
Next Page: Expanding on a vertical push.
Expanding on a Vertical
Push”>
That is perhaps not so ironic, in that Greenfield used to work for Rational prior to its acquisition by IBM in 2003.
However, Larsen said the IBM enterprise patterns are targeted only at the Java space, although he noted that “Rational tooling still works in the .Net space; were not announcing anything for the .Net space today.”
Diaz added: “This framework does not preclude anyone from writing a .Net pattern.”
Meanwhile, though, Larsen expanded on the vertical push.
“A natural follow-on is to focus on verticals…to get domain specific patterns for certain verticals,” Larsen said, mentioning retail, manufacturing and telecommunications.
“Weve found that our architects find it valuable to take these patterns solutions as templates,” Larsen said. “Then they can pull out ingredients and put in something else. So substitution and modification is key. And we can integrate the patterns with process guidance and treat these recipes as reusable assets,” he said. “The recipe plays the role of knitting all this together for a particular domain.”
Diaz said IBMs goal is to provide a consistent framework for development while also simplifying the development process.
“The key thing is we want to do this on a consistent framework and a consistent set of tools,” Diaz said. “We want to be able to deliver an entire solution.”
Another example of the similarity between the IBM pattern strategy and Microsofts Software Factories comes from a MSDN (Microsoft Developer Network) overview that reads: “Software Factories provide a faster, less expensive and more reliable approach to application development by significantly increasing the level of automation in application development, applying the time tested pattern of using visual languages to enable rapid assembly and configuration of framework based components.
“Software Factories go beyond models as documentation, using highly tuned Domain Specific Languages (DSLs) and the Extensible Markup Language (XML) as source artifacts, to capture life cycle metadata, and to support high fidelity model transformation, code generation and other forms of automation.”