It’s really amazing how often software developers “reinvent the wheel”. Even CodeFutures is guilty of it sometimes – we’ve just ripped out our inhouse XML parser and replaced it with a standardized component – JDOM.
It requires a determined effort to identify and then stick to a common set of components. And it will require an even more determined effort to use them in a cohesive way – which is where Java Software Factories are useful by providing a context and methodology.
The building blocks for most Java Sofware Factories already exist.
There are many great specifications, standards, and products that have gained widespread acceptance already:
Core J2EE Design Patterns
Security – Liberty Alliance, SAML
Diagnosticsa and logging – log4j, JMX, and SNMP
Property Management – JNDI
Persistence – DAOs, JDBC, JDO, EJB CMP
Presentation – JSPs, Struts (perhaps JSF later?)
Integration – MOM and SOAP
XSLT - Xalan
At a another level, there’s a wide range of technologies that can and must be leveraged for the Java Software Factories – operating systems, relational databases, and much more.
An organization can standardize on which components it uses within its organization when constructing factories.
Standardization on specific components may sound obvious – but how many organizations do it?