[ome-devel] model description driven code generation
josh.moore at gmx.de
josh.moore at gmx.de
Mon Jul 6 10:31:26 BST 2009
re-send & reply.
zag at crs4.it writes:
>
> > A few words of warning:
> >
> > 1) though the OME-Perl server was built with exactly this use in
> > mind, and OMERO was _originally_ built to include it, we've made
> > other design decisions since then. By doing this, you are breaking
> > API compatibility with the official clients, and will have to
> > package your own. Similarly, your clients will not be able to work
> > with the official server.
>
> Does this mean that adding a new model has side effects on the code
> generated for the others? If so, how?
By modifying the model, you are changing the on-wire binary
representation. It *might* be possible, if you are very careful, to
create a model that would work in with server/client hybrids. But I
don't think so. My experience is that model changes will break
communication. To understand why, imagine adding the type:
class MySuperAnalysis {
private long valueA;
private long valueB;
// etc.
}
and then the relation:
image.getMySuperAnalysis()
what is a client to do with all the bytes which make up
mySuperAnalysis as they come over the wire?
> > 2) in the mid-term, we will be trying to move the code generation to
> > no longer use the files under model/resources/mappings, and instead
> > to use the XSD definitions directly. If you begin to build
> > significant infrastructure based on this code generation, we may
> > should talk first.
>
> This is rather interesting, since what we will try to do is to put in
> some OpenEHR derived objects. We did write some time ago a ADL (the
> model description language used to describe OpenEHR 'models') to XSD
> converter: it was an ugly piece of code, but we did learn something and
> we can probably rewrite it better now. In the code generation, are you
> also considering the production of automatic object validators?
Yes, to some degree.
> > If the above isn't enough to scare you away and you'd still like more
> > information, ping me and I'll setup a wiki page on the trac.
> Please do setup the wiki page :-).
> --gianluigi
Will do.
~josh.
More information about the ome-devel
mailing list