[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[News.eclipse.technology.mddi] Re: ModelBus White Paper

Hi Ed,



> I think it is slightly confusing to describe the MDA Scenario as 
> 'programmed'.
> 'Configured' would be more accurate. I would hope that the required 
> execution
> sequence would be automatically deduced from appropriately declared tool
> interfaces, the available input models and the required output models. 
> This
> deduction might result in a program (command script/makefile/QVT 
> transformation/
> XSLT/Java program/interpreted XML) behind the scenes, but when MDDi is 
> working properly
> the user should not need to know what or how intermediate models were 
> produced.
>
> MDDi should therefore be configured declaratively and just work. When it 
> doesn't,
> then MDDi should provide helpful graphical browsers to view dependencies 
> so that
> inappropriate/missing services can be resolved.



The idea behind was to explain how hard it is to develop an MDA scenario 
when tools are very heterogeneous.

ModelBus offers a homogeneous vision of the tools. They appear as modeling 
services providers.

ModelBus has then the charge of managing the communication between consumers 
and providers.





> I would recommend pursuing a 'make' analogy. Where in make, we could write
> a .x to .y rule and not know when or why it was invoked, with MDDi we 
> should be
> able to register a 'UML-with-use-cases' to 'UML-without-use-cases' service
> and again not know when or why it was used.


I like the analogy with 'make'. For me ModelBus is useful then for writing 
rules that are executed by heterogeneous tools.



> It may be confusing to present just a ModelBus white paper for the MDDi 
> project.
> I agree that ModelBus should not provide repositories in the conventional 
> sense,
> since they can be treated as Modeling Services. But there are some 
> services that
> are so fundamental that they must form part of MDDi. MDDi probably needs 
> the
> same repositories that have evolved for OMELET. Realising each service as 
> an
> extensible plug-in would be very much in accord with Eclipse philosophy.
Yes, what about trying to identify mandatory services and then define them 
as modeling service?



 > The model registry maintains known models (user data, defined 
meta-models,
> transformation programs), so that a requirement for the UML 1.4 meta-model
> can be resolved, possibly by requesting some Proprietary repository to 
> provide it
> after conversion to a suitable representation. This almost duplicates the 
> EMF
> packaged models extension point.

Ok, this will be the 'model registry' mandatory modeling service.



> The executor registry maintains a registry of transformation executors 
> with
> respect to the meta-model of the programming language they execute. ANT, 
> Java,
> XSLTC, Saxon, ATL, Tefkat, all have execution capability. The registry 
> maps
> from program meta-model type to executor adaptor.

Yes, and this will be the 'executor registry' mandatory modeling service.

But can you explain what do you mean by 'the meta-model of the programming 
language ther execute'?

Do you mean the meta-model of the transformation language or the meta-model 
of the language of the engine?



> So, given a requirement to transform a 'UML-with-use-cases' model to a
> 'UML-without-use-cases' model, the model registry can be 'searched' for
> appropriate direct transformations or indirect sequences of 
> transformations.
> Each of these has an associated programming language that can be used to
> select the appropriate executor, or possibly to invoke additional 
> conversions
> so that e.g. a QVT 2.3 transformation program can be executed by a
> QVT 1.4 executor or compiled to run on a C++ executor.
Ok now, I think I can understand.

But do you think that one transformation will really have several associated 
programming languages?





> The namespace registry maintains an indirection so that I can choose 
> whether
> to use the UML 1.4 meta-model resolved in the Rational Rose Namespace or 
> in the
> Objecteering namespace. This indirection also provides a hook for the 
> future. A
> meta-model has both a structural definition now and a semantic definition 
> in the future.
> Once defined, the semantic definitions will allow e.g. UML 1.4 to be 
> transformed
> to UML 2.0 with integrity. I suspect that these semantic definitions have 
> much
> in common with some of the UML profile standardisation efforts.
Yes, very interesting. But when do you think we will have semantic 
definitions for meta-models?



> The representation format registry maintains known model representation 
> physical
> formats such as File, Stream, XML, JMI, DOM, EMF, ... In practice this 
> registry
> is never used as a registry in OMELET, since any given conversion knows 
> that it is
> from XMI encoded DOM to Stream, and uses the generic Java adaptor classes
> for DOM and Stream directly.
The goal of ModelBus is to make those conversions transparent.





> A transient representation cache (a model content in OMELET) is useful for 
> each model
> transfer through the bus. The content is typed by its meta-model, and has 
> as many
> representations as the one writer and many readers may require. As each 
> reader
> requests another format, another representation is cached as an 
> appropriate
> conversion generates the content in the additional representation format.
Ok good. We should look at it.



Thank you again



Xavier Blanc