MODELS 2014: A Personal Review

Yes, I know, MODELS was in September and such a late review is kind of awkward. However, I was quite busy in the last couple of weeks. So the review had to wait.

First of all. Models was great and the extended summer (from an almost Scandinavian perspective)  was also very motivating. I should remind myself to go to the south of Europe every September.

The workshops, I attended, were also very interesting and enlightening. In the reviews to my doctoral symposium paper were very motivating, especially because the term “relevant for research and industry” was in there without a negating in it. The meeting itself was also fascinating (thanks to Benoit Baudry and the reviewers).

I also attended an workshop on deep modeling which provided some good insight into different approaches in that field and where they differ. In the end we had quite an active discussion on what to do with the workshop and with this emerging field as such. In short you could say that the different approaches are diverse and therefore comparing them on term of quality is complicated. Especially because the vocabulary is not unified. Therefore, one result of the discussion was the creation of a glossary for common terms to be able to come up with a method to compare the approaches. And someone coined the NoUML as a summarizing term for all deep modeling approaches as they are to UML as NoSQL is to SQL. Even though it was a funny remark, especially knowing that Models started as an UML conference, I think the term is good enough to cover all of the presented approaches and even allows to come up with a total different modeling concept without leaving the field immediately.

On Monday, I visited a tutorial on language modeling principles. As I am very interested in that field, I wanted to know if I can meet some interesting people there (which I did). While most of the tutorial was not completely new to me, Ralf Lämmel presented it in an interesting way which also provided some deeper understandings of the different parts and views of the principles. I was especially intrigued by his definition of mega models. I still do not like the name, as I find it – personally – not very descriptive. However, his definition was concise and expressive.

Here it is: A mega model is model which specifies the relationship of different models to each other. A model is that context could be a model, a meta-model or a transformation. And a relationship between two models could be conforms to, (as in my VAO paper this year) an aspect base model relationship or many more.

Subsequently, we used the notion of mega models to formalize the big picture of our iObserve approach which we integrated in one of our recent publications (which will hopefully be accepted).

So all in all Valencia was quite thrilling and productive. So I look forward to go to Ottawa next year. And maybe we are able to publish my generator composition approach at ICMT 2015 which would be a great development.

Instrumentation Record Language – Release 1.0

The Instrumentation Record Language (IRL) has been developed since 2013 as a central element of Kieker and an approach for model-driven instrumentation. Both required a declarative and compact model to specify record structures for monitoring.

In Kieker more and more languages are supported through specific language modules which communicate with the Kieker core over data bridges, like Kieker4COM or the Kieker Data Bride (KDB). To ensure compatibility records must have the same structure and use the same serialization across all languages. Furthermore, other tooling can use the record declaration to generate code for other purposes.

For the model-driven instrumentation, it is important to be able to express monitoring data structures as a model, be able to support the data structure model at program code level, and be able to relate both structures to each other.

The IRL, as a language, provides such abstract data model notation. Its tooling comprises Eclipse editors and generators to produce data structures and serialization code for C, Perl, and Java. And additional generators can be added to support other languages. The IRL wiki provides information on hot to write new generators and how to integrate them in the editors. In addition the Eclipse tooling for the IRL includes an export of IRL declaration to EMF models.

For users which do not intend to use Eclipse and therefore cannot or wish not to install Eclipse just to be able to generate code based on the IRL, we provide a command line compiler supporting the same features as the generators in Eclipse.

The language itself can best be categorized as a class and template based object-oriented language which supports a flat data model, meaning records cannot use other record types as data types for their own structure. As data types only primitive types: boolean, byte, char, double, float, int, long, short, and string are allowed. Furthermore, the language supports two experimental features which are not realized in the generators. First, all types can be used in arrays which can have a fixed or flexible size. And second, foreign meta-models can be imported. This feature will allow to access and serialize the state of a monitored software system.

Resources

Download