Business Ecology Initiative & Service-Oriented Solution

Michael Poulin

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

user-pic
Vote 0 Votes

DOSOM© Concerns

Service-oriented approach to domain design and DDD look at some things differently though they share the final design goal. DOSOM© concerns are about these differences. We will discuss just a few concerns:

• Service
• Domain
• Context
• Security
• Flexibility
and I count on the colleagues to refine and extend the list of SOA-DDD conciliation points.

Before examining each of mentioned concerns, I would like to outline that SOA Governance can help in governing some concerns to the resolutions. For example, Governance may have strict policies defining the scope and boarders of DOSOM©, Reference Architecture, and low-level domain-driven design. The policies can allow an organisation having several DOSOM© even for the same domain. Assume, in a financial Fund Management organisation, we can have a set of SO domain models for Operations with Funds including so-called Fund Deal. This includes a sphere of knowledge, influence, and activities related to selling and buying Funds. Separately, we can have a another set of models for the Debit Card Payment process used in ensemble with models for Operations with Funds.


Domain Analysis and Services

For the purpose of this discussion, let me interpret 'service' as an end-to-end consumer-centric composition (aggregation) of automated and semi-automated executables operating based on the service-oriented principles and used for resolving business or technical tasks. Being in line with OASIS SOA RM, service is not an additional interface put on the top of SW components or applications, or a shell-proxy for them. A SOA service encapsulates components and applications in the form of the service's body and service's resources. SOA Business Service is a business-oriented executable that specifies the domain it works within.

For a service, the functionality model goes first while the design details and refines it. However, some authors suggest starting from a pure DDD approach in bottom-up modeling, then creating domain objects (POJOs or stateless Beans), and then exposing them as services. The real world works exactly opposite: business defines the business service and splits its implementation between business operations and technical tools. When the time comes to the development of these tools, the model of the business service reflects the business requirements (business features, functions, processes) and constraints technical solutions. The developers can use POJO/POCO, EJB, DCOM, or whatever, stateless or stateful - this depends on the business task. If we have some SW components or legacy systems already and some of them can provide required business functionality, we have to spend a fair amount of time and efforts to proof that existing SW components can work as services preserving SO principles. For example, if a procedure on a mainframe can perform very complex calculation for milliseconds, this does not mean it is suitable for the service already because it may expose its internal conditions on the consumers, serve only one consumer at a time, depend on operational support that cannot keep up with reasonable SLA, and so on.

We have to be very accurate with low-level design of the service implementation, especially when dealing with Dependency Injection (DI), Aspect Oriented Programming (AOP), and integration with resources - legacy applications and persistent storages. Here is a danger of creating unacceptable coupling between domain objects, service operations or services themselves. Different domain components may end-up with sharing data resources as well as domain objects (due to the OO principle of inheritance), which frequently represents the points of conflicts of interests in the future. Doing injections, developers do not always aware of the permitted and restricted dependencies defined in the business service model. Thus, development technique has to be under strict controls of SO framework to avoid coupling by implementation.

(to be continued)


1. Boris Lublinsky, Is There a Symbiosis Between SOA and DDD? InfoQ

Thumbnail image for Speaking_Qcon_London_03.jpg

No TrackBacks

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

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