Business Ecology Initiative & Service-Oriented Solution

Michael Poulin

A Domain Service-Oriented Modelling or Where SOA Meets with DDD, Part 4

user-pic
Vote 0 Votes

Another important aspect of DDD is the domain logic discovery and analysis that leads to domain decomposition and re-composition for technical implementation. I am afraid that if you ask DDD professionals about where they get the knowledge of the domain service, entities and domain logic, the majority would refer to the business operational teams, their manages and leads as well as to the business analysts. Sometimes, the IT tries to discover or reconstruct domain logic from the visible business actions and creates 'domain entities' and 'domain services' based on those discoveries. This may and in many cases does lead to the dangerous mistakes in the domain understanding; this is where the service-oriented approach and DOSOM© can help the most.

The service-oriented business model decomposition starts from the top, from the enterprise/LOB business model, quite above the daily operation activities of business operational teams. With proper decomposition, it can become simply evident that several business operational teams perform activities that are not in-line with current business goals and objectives of the company. Why is this happening, it's another question and story. Nevertheless, the discovered "business process" and 'domain services' may reflect business capabilities of the past or even appear as the operations carried out just for the team convenience. If IT understands such vulnerabilities, it can extend its areas of business analysis and eventually find the solution that not only address the real business needs/processes but also simplify the business operations, i.e. some outdated business operations may be retired. The DDD combined with SO vision is a very perspective approach to making IT a partner, not a servant of the Business.

At the QCon-2009 in London, Eric Evans announced a few more DDD constructs that he had found very useful in DDD for the last 5 years passed since his fundamental book was published [1]. These constructs are Domain Events and Domain Aggregates. If the former is self-explanatory, the latter is about compositions of the 'domain entities' in the consistently set boundaries; the compositions that act as conceptually single units. Let us look at these constructs from SO-DDD perspective.

Eric Evans explained that he sees the Domain Events much wider than possible events in the boundaries of a predefined "business process"; those events are known up-front. His and my interpretation of the Domain Events is that we are talking about business events happening in the business domain, expectedly or not but that were unknown at the moment of the modeling. That is, a Domain Event is a prepared container for handling real life business events. Such Domain Events may become triggers for creation of Domain Aggregates in accordance to the business rules.

The Domain Aggregates, in turn, appears as a construct that has its own business task, input data and functions/commands/operations, outcomes - results or Real World Effect, and concrete content comprised participating 'domain entities' and 'domain services'. Can a Domain Aggregate encapsulate an implementation of a "business process"? We do not know and do not care whilst the Domain Aggregate provides for the task resolution and a Domain Aggregate consumer does not need to know and to interact with individual participants of the Domain Aggregate.

The Domain Aggregate construct allows for comprehensive mapping between SOA business services and domain-driven model. In other words, I see a Domain Aggregate as a domain SOA service because

1. Domain Aggregate provides for concrete business function and participating 'domain entities' and 'domain services' are invisible or unrecognisable to the consumers
2. Business operates with functions, not with objects, and Domain Aggregate is much more realistic business model than an individual 'domain entities' and 'domain services', which, sometimes, also can successfully model business reality but it is a rare case
3. Domain Aggregate may contain just one 'domain entities' or 'domain services' and this conclusion unifies aforementioned comprehensive mapping

Extending this aggregation concept further into the SO sphere, we are getting a domain SOA aggregate service comprised a set of domain SOA services, that is, we can have an aggregation of SOA services based on the sets of Domain Aggregates.

When we touch the Domain Event from SOA perspective, we re-open a 'bearded' discussion whether events and EDA is a part of SOA, may be a part of SOA, or exists totally independently. To my knowledge the consensus in this discussion was not reached. If we take SOA as 'dead SOA in IT' that was about the use of Web Services for system integration, probably, we can conclude that SOA situates separately from EDA. Since I 'worship' SOA as a concept of architecture and even enterprise organisation, I certainly consider EDA as one of very powerful realisations of the service orientation model.

I think that EDA perfectly fits into the SO architecture, i.e. Domain Events are not strangers for SOA. The Domain Service-Oriented Modelling has to consider business events as the originators of the invocation of service compositions (aggregates) as well as the triggers for creation of new service compositions or even individual services (Domain Aggregates), on-the fly or off-line.

(to be continued)

References:
1. Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley, 2003

No TrackBacks

TrackBack URL: http://www.ebizq.net/MT4/mt-tb.cgi/15404

Leave a comment

Business and Technology ideas, concepts, methodologies and solutions leading to Service-Oriented Enterprise - the primary instrument for obtaining business objectives in fast changing environment

Michael Poulin

Michael Poulin is an enterprise-level solution architect working in the financial industry in the UK and USA.

He specializes in bridging between Business needs and Technology capabilities with orientation on business and technical efficiency, scalability, robustness and manageability. He writes about service orientation, application security and use of modern technologies for solving business problems. Michael contributes to OASIS SOA standards as an Independent Member; he is listed in International WHO's WHO of Information Technology (Historical Society) for 2001. View more

Subscribe

 Subscribe in a reader

Recently Commented On

Categories

Tag Cloud

'Navigating the SOA Standards Landscape, abstraction, active service, ADM, adopt changes, aggregate service, AIA, analysis, API, application, Application Integration Architecture, Architect, architect, architectural mission, architecture, Architecture, architercture, B-SOA, BAWG, BEI, Best Practice, bottom-up, BPEL, BPM, Busienss, busienss case, Business, business, Business Architect, Business architecture, business architecture, Business Architecture, Business Architecture Working Group, business concerns, business data, Business Ecology, business efficiency, business model, business operational model, business organisation, Business Platform Division, business process, Business Process Designer, Business Requirements, business risk, business service, Business service, Business SOA, business value, business view, business-centric, Business-IT problem, capability, CBDI, CBM, choreography, Cloud, Cloud Computing, COBA, collaboration, Collaboration, collaboreation, commodity, component, composition, concept, Conciliator, consumer, COSMIC, cost, cost estimate, cost of ounership, cost of ownership, crisis, CRUD, culture, Cutter Consortium, data ownership, data service, data store, DDD, decision logic, decomposition, demand, design, Design Pattern, development, domain, Domain, Domain Aggregate, Domain Events, Domain Service-Oriented Modelling, DOSOM, DOSOSM, driver, Dynamic Process Edition, EA, EDA, efficiency, end-to-end, Enterprise, Enterprise Architect, Enterprise Architectural Framework, enterprise architecture, Enterprise Architecture, ERP, ESB, event, Event, execution context, Execution Context, expertise, failure, feature, Flexibilit, flexibility, FPA, FSM, Full Functional Points, Functional Points, functionality model, future, Gartner, Governance, governance, granularity, harmonization, Healthcare, IBM, identiy credential, IEEE 1471, IFPUG, implementation, intangible value, Integration-Oriented Architecture, intent, interface, interface orientation, IOA, IT, IT Architect, IT Operation Support, IT organisation, IT without the IT Department, ITIL, Ladder to SOE, leasable Cloud, lease, Loose coupling, Lost in Translation, Management, Manifesto, market, MDA, Michrosoft, Mike Rosen, model, Model-Driven Approach, modelling, Navigating the SOA Standards Landscape Around Architecture, navigation, OASIS, OASIS SOA RA, OASIS SOA RAF, OASIS SOA Reference Architecture Foundation, OASIS SOA RM, ODBC, OMG, ONA, OO, Open Group, Oracle, orchestration, organizational change, participant, pattern, policy, principle, principle of separation of concerns, principles, priority, Private Cloud, Process, process, process-oriented, process-orineted, process-service, project, Provisioning, Pub/Sub, Public Cloud Busienss Requirements, QCon, RA, Real World Effect, Real World SOA, Referemce Architecture, Reference Architecture, Reference Architecture Foundation for SOA, Reference Model, Registry, rent, rentable Cloud, Repository, reuse, RIA, risk, RM, ROI, RPC, rules engine, RWE, SCA, scalability, security, service, Service, Service Autonomy, Service Composability, Service Contract, service contract, service description, Service Description, Service Discoverability, Service Execution Context, Service Orientation, service orientation, Service Oriented Enterprise, Service Relative Autonomy, Service Reusability, Service Separation of Concerns, Service State Management, Service Statelessness, service-oriented, service-oriented eco-system, service-oriented enterprise, Service-Oriented Enterprise, service-oriented environment, ServiceContract, seven properties that differentiate emergent architecture from the traditional approach to EA, situational, sizing, SLA, SO, SO environment, SO Principles, SOA, SOA Manifesto, SOA standard, SOA-RAF, SoaML, SOBA, social networking, SOE, SOEA, solution SOA, SOMA, Spring, standard, study, Summit, supply, T-SOA, tangible value, Technical Architect, Technical Architects, Technical Architecture, technical capabilities, Technology, technology, The Open Group, TOGAF, TOGAF 9.0, top-down, UI, UI Mediator, use, Value Chain, Value Network, Value Networks, view, view model, viewpoint, vision, VPEC-T, Web, Web Service, Web Services, WebSphere, WSDL, ZapFlash,

Monthly Archives

Blogs

ADVERTISEMENT