Domain Driven Design and Service Oriented Architecture
From Giews
From a software engineering perspective the following movements in the java world are interesting for this design decision: (1) Domain Driven Design (DDD) and (2) Service Oriented Architecture (SOA). DDD follows more the rules of OO design, where SOA is breaking the application in more fysical parts in order to be prepared for another context than initially fore-seen.
However new ideas in addition to DDD like IOC and AOP are giving the same flexibility but only at development time. Full blown SOA gives runtime flexibility. For GWS3 the following options can be considered:
* DDD, AOP and DI at javapolis * DDD website * SOA
- Domain driven design
- The domain model is the center of the application. All are dependent upon the domain model while it is by itself not dependent on anything.
- Service Oriented
- Everything is a service. The application has an anemic domain model because the domain is fragmented over the services. Domain concepts of the usecases are not explicit. See also Erik's article on this: SOA
- Hybrid
- The domain is still the center of the application but is smaller. The domain is partially moved to services.
Decision Hybrid with a strong focus on the Domain Driven Design concept.
Argumentation Following YAGNI, only parts outside the core application are positioned as a service. However still to be decided, metadata and geographical functions can for example be positioned as services.

