JavaOne 2008 - Composite Application Design Patterns
May 9, 2008 Java No CommentsThe session “Composite Application Design Patterns” was presented by Jurgen Opgenorth and Patrick Zimmer of SAP AG.
This session was excellent. Opgenorth and Zimmer discussed common problems that occur when designing composite (i.e. SOA-based) applications, and their solutions. They defined a pattern by explaining the problem, providing the solution, and listing the consequences of that solution. The slides will be beneficial for this session, and will be posted when they become available. I will list the patterns, but not go into any detail on how they were solved.
- Global Data Types: Web services are auto-generated from existing code, data types are arbitrarily defined making it hard to maintain consistency in data mapping.
- Compensation Service: Enterprise services are stateless and atomic. Transactional rollbacks are impossible.
- Check Service: Related to the compensation service. There is no way to determine whether a service completed successfully before continuing.
- Service Adaptation: Services are business driven, not consumer driven and may be too complex for th user interface. The data they contain may need trimmed, filtered, sorted, or flattened before it’s usable.
- Back-End Abstraction Layer: Certain pieces of a service may be used in many other services a change in that piece causes many services to be affected.
- Object Work List: A User needs the ability to do searches with criteria outside of the normal built-in searches.
- Wizard UI: A series of sequential steps executed in one “go”.
- Delayed Write Operation: A persistence of data cannot occur until some other step completes. Writing first may cause the data to be in an inconsistent state.
- Externalized Rules: Business rules change more frequently and are used in many processes.
