Applying the Spring frameworks for Model-Driven Architecture
This presentation will address Capgemini's reference Java architecture and UML2 modelling guidelines in an MDA scenario. The architecture consists of various Spring technologies and a Hibernate persistence layer. Only business logic, system interfaces and specific features are hand-written, everything else is generated from UML.
The architecture is currently applied in various projects in the financial and product sectors. Especially Spring's declarative nature and clear separation of concerns have shown to align naturally with model-driven development.
The session will start with an overview on MDA methodologies, including best practices and pitfalls. Our modelling guidelines on screens, workflows and data will then be bound to the J2EE architecture, which consists of Hibernate / Spring MVC / Spring Webflow / jBPM layers, assisted by Spring IoC and Spring AOP across the board.
The various Spring frameworks in the target architecture facilitate greatly in dealing with the challenges of combining hand-written and generated source code (the "Generation Gap" software pattern). Specific J2EE / Spring technologies that are applied in the reference architecture include:
• Applying Spring IoC to "inject" hand-written business logic into a generated skeleton without many inter-dependencies, at run-time
• Leveraging the three-step validation of Spring MVC data binding (PropertyEditor / Setter exceptions / object validator): which of these to apply, and when?
• The struggle between expectations of data binding frameworks (Hibernate, Spring) and "correct" object-oriented lifecycle management
• Implementing the Optimistic Offline Lock pattern using Spring Webflow, Hibernate transactions and Spring AOP's transaction management.
Speaker