Hi Apache Isis Users,
I am about to start my first Isis project, just a small demo project to
show a potential client.
A subject that I find quite interesting is the usefulness of a Conceptual
Model in the development process. Having read the 'Domain Driven Design
using Naked Objects' book by Dan I am aware that a Model Driven
Architecture (MDA) approach is not really a good fit for Naked Objects.
("Bah and humbug!" are the words used with regard to OMG's MDA PIM and PSM
approach I read, and agree with).
I agree, but at the same time I am very attracted to the idea of a
conceptual or semantic data-model as a part of a system. That such a graph
diagram of 'things' and relationships between them, can be an effective way
of defining the 'ubiquitous language' of DDD.
The way I see this working is for Java classes to be generated from the
model which then form the model layer of the Isis application. Then
behavioural aspects get superimposed on that data-model layer by adding
subclasses of the generated model classes.
I think that this is kind of the compromise modelling approach in the
Eclipse Modeling Foundation, and also in another tool that I quite like
called Kleen,used what its inventor calls "Asset-Oriented Modeling" (which
is just the idea that both entities and relationships are 'assets' and need
not be differentiated explicity in the conceptual model).
In part this approach is motivated by the desire to make Isis a part of a
bigger system, such as where I provide direct access to the persistence
layer via a query interface generated from the conceptual model. It seems
that Isis can provide nicely for 'canned' queries but no more.
In summary, I see Conceptual Modeling and DDD as both being very focused on
language and meaning (semantics) and with a good potential for
cross-fertilisation. So, I am just wondering if anyone has been down this
path at all?
Just maybe, in my scenario, Isis might not prove a great advantage as I'm
so data focused. All I will need is a data-model, and a few
stored-procedures in my database (I've mentioned an interest in XQuery for
this). But I'd like to think that its not a 'one or the other' thing, that
both worlds, Object-Oriented and Data-Driven approaches are complimentary
(and maybe united by a Conceptual (Language) Model).
Thanks for any insights you can give.
Steve Cameron