SOA and the domain model

Frans Bouma touches the architectural topic of object-message mapping (or what Martin Fowler calls Data Transfer Object).

Do we need an domain model when working in a SOA (a.k.a. the moving target of today) environment and hence a way to map SOA's message oriented nature onto the object oriented nature of the domain model? I think it's a matter of context, complexity, personal architectural liking and who was there first, namely the chicken(SOA) or the egg(domain model)?

Context:

  • What's a service?
  • How do you envision your services?
  • Who will be the consumer of your services and to what end/purpose will they be consumed/used for?

Complexity:

  • How complex will the logic behind your service to be?
  • Exactly how coarse-grained are they (your services) going to be?
  • Are you going to reuse the logic inside your service (e.g. in another service)?
  • Are you going to reuse that logic in a non-SOA environment?
  • Will a domain model allow you to better understand and maintain your logic?
  • What's the added value of having a domain model behind your service?

Personal Architectural Liking:

  • How did you develop services before the SOA hype?
  • Is a service an orchestration of cooperating domain objects or an orchestration of other services and messages, to you?

 

 

Published 07 March 2004 11:14 PM by yreynhout
Filed under:

Comments

# Darrell said on 07 March, 2004 08:41 PM
The most popular way to develop services pre-SOA hype is flat files. How many programs would export data to a flat file for another program to import? I have seen so many I can't reasonably guess.
# TrackBack said on 12 March, 2004 04:30 AM
Vote: Manager Model, Domain Model, or Both?
# Art said on 17 March, 2008 06:05 PM

Don't you have to define schemas when your web services use complex types?  Isn't that a form of domain modeling?

Having well defined services without a well defined domain is like trying to write a use case without a well defined vocabulary.  At some point, someone's going to be disapointed that their interpretation of a widget isn't the same as the other guy's.

Leave a Comment

(required) 
(required) 
(optional)
(required)