log in | consulting | tools | whitepapers | blog
White Paper #10

A comparison of DCI and SOA, in Java (Version 2).
Author(s): Dr Ant Kutschera
Description: DCI is a paradigm used in computer software to program systems of communicating objects. Its goals are to make code more readable by promoting system behaviour to first class status by avoiding the code fragmentation of this behaviour as typically seen in an object oriented solution. This allows the rapidly changing system behaviour code to be developed and maintained independently of the slower evolving domain model (data classes). This allows programmers to reason directly about system-level state and behaviour rather than having to create a map between their mental model, and that of the user, which leads to more easily maintainable code1. In DCI, the data model is used for just that, namely data structure. The behaviour is not partitioned along data class boundaries; rather it is self containing and as such has boundaries more natural to behaviour rather than data. In DCI, objects can dynamically take on roles determined by the context. A role is partly the system behaviour which relates to a particular use case or algorithm, but is also a way of viewing a particular object within such a use case. These things make DCI very powerful, and make DCI a paradigm in itself, comparable to object oriented programming in its time, or service oriented programming. The author has architected, designed programmed and maintained Service Oriented Architecture (SOA) solutions for nearly a decade and sees parallels between DCI and SOA. These parallels are discussed here. The second version was made available on the 20th September 2011. Minor changes were made on the opinion of whether a modified SOA implementation was useful or not.
Available since: 31 Oct 2010 Download: A comparison of DCI and SOA, in Java_004.pdf

Copyright © 2005-2021 maxant | policy | contact us