This wiki has undergone a migration to Confluence found Here
PIIM
A PIIM is a Platform Independent Implementation Model, a kind of PIM.
Need for a PIIM
- Rene: Looking at the experiences of v3 developers, who all say that MDA is necessary for proper v3 implementation, I'd personally suggest that it's probably time that HL7 created (and publishes) an UML (enriched with OCL) specification of its static model artefacts as well as the data types. Having UML allows implementers to use tons of standard tools; and it helps them to avoid the schema-based implementation pitfall. (Note: this doesn't mean that MIF goes away, but just that there's an official transform with published UML files).
- Grahame: Lloyd and I have spoken about producing a PIM type model like Rene proposes (it is UML - with as few stereotypes and property strings as we can get away with. Vanilla UML as much as possible..) We know what's involved, it just needs tooling done - but it won't happen unless people start asking for it - and there's also a resources stion I don't think it can entirely be done for r1, but it can entirely be done for r2 If we want MDA, then we should not do serializationss at all, and just do PIIMs.
- Lloyd: My understanding (from past conversations) is that a PIIM is just an RMIM with the magic exposed. So InfrastructureRoot stuff gets exposed, mandatory gets turned into the nullFlavor being exposed or not permitted, binding to concrete datatypes, dropping CMETs and replacing with direct model references. Whole thing expressed as UML. If the requirements were written up, it should be doable as a simple transform. Grahame: There's devils in the details, particularly in the graphics side of things and UML consistency.
Creating a PIIM
I don't know how you apply pressure. I'd start by clarifying why you say "implementers want this done" when the only people I've heard speak about it is you and I
Discussion on serlaization
- Grahame: I think part of the idea of a PIIM is that it puts us out of the serialisation business. Here's the model, you need to agree on serialisation out of some
box somewhere. Only for a few things - CDA type things - does HL7 have an opinion.
- Lloyd: need to provide at least one workable serialization implementers can use as a default or a recommendation of a standardized third-party one..I'm not saying we prevent the use of others. If the model is fully defined, and we have clear rules about what needs to be expressed in a wire form to be "safe", no reason we can't open it up to anyone who wants to play, though I'd encourage limiting the number of "officially endorsed" versions to a small number to minimize needless profusion and implementer grief.
- Grahame: Well, see, there you go. the tension between allowing anything or just picking one of a few is exactly the tension between vendors and programs I talk about here: [1] (bottom half)