Friday, November 28, 2008

Modeling Pilgrimage to France

Paris by the light of day on Sunday did not disappoint. It is by far the most magnificent city I've ever seen. The beautiful sights are simply endless and grand entrances are the norm.


Imagine living here!


I was surprised to see snow in Paris on Sunday, but by afternoon it had turned to rain and I was on my way to Nantes with Stéphane Lacrampe as my host and guide. That night I stayed at his house, which is conveniently located very close to the railway station. It's currently being renovated and will be very nice when it's complete. He even has a funky courtyard-style back yard full of fruit trees!

On Monday morning we headed for the Obeo office on Stéphane's motor scooter. That was fun! Of course no pilgrimage to France is complete without a trip to a cathedral, so we stopped by the Cathedral of Nantes. Coincidentally, two weeks ago I finished reading the book "Pillars of the Earth" that Karsten Thoms bought for me on my previous trip to Lünen---a most excellent book---so I have developed a special appreciation for the architecture of a cathedral. It simply boggles the mind that such structures could be built without all the modern technology we have available today.


It's a real testament to the persistence of human nature and the creativity of the human mind to see such wondrous things. I've always had a particular fondness of colorful glass.


I suppose its hubris to compare the things we collectively create at Eclipse to such marvels, but if you consider the staggering complexity and number of people involved, it's not completely unreasonable.

Visiting Obeo was much like visiting itemis last month; so many happy friendly people excited to be working together on cool technology. Here they are all gathered for coffee and pastries in a new office space that they're currently setting up. Do you recognize any faces?



I spent much of the day with Jonathan Musset and Cédric Brun learning about what they're doing in open source as well as about some of their Acceleo technology; Cédric gave me that box of chocolates he promised long ago! Obeo has very cool traceability support in their products that I'd love to see for EMF's generator. E.g., you would be able to click on a structural feature and it would show you all the Java things generated from that feature. They've also have been doing some really cool work on a model for describing forms. I encouraged them to write a project proposal so we can reach out to all the interested parties; that conversation is now well underway.

Like the itemis founders, the Obeo founders are refreshingly open minded and forward thinking. They were recently featured in this French paper:


We talked quite a bit too about how to promote modeling in France and how to get the French modeling community more integrated with the modeling community abroad. The German community has been a little more well-integrated I think. Language barriers are an unfortunate fact of life.

On Monday night I stayed at Etienne Juliot's house. It was very sociable. I tried to read a picture book for his daughter, but we seemed to disagree on the words. She would insist, for example, that an apple is really a pomme and was not impressed by the fact that I seemed to be making up new words on the fly. She was too cute.

We had to get up at 4:30 so we could catch the 5:30 train to Paris; yet another sleep deprived night. I was warned that a rush hour ride on the Paris Metro would be an "experience" and it certainly was. How many French people can you cram into a subway car? MD Day was held at that the Arche de la Défense which was totally spectacular. Check out this view of the Arc de Triomphe from under La Grande Arche.


Look what you can do with a little zoom and a lot of mega pixels.


The turnout at MD Day was very large, approximately 260 people I believe. That's Stéphane in the front left.


All the talks, except mine, were in French so I just hung out all day to chat with people. Jean Bezivin was there chatting with Patric Albert of ILOG, one of IBM's most recent acquisitions, so we discussed a bit of the interesting things ILOG is considering doing in open source at Eclipse. I also ran into Olivier Moises again, so we had more time to chat about Wazaabi and how it relates to the Presentation Modeling Framework proposal that's currently under discussion. He introduced me to Cédric Vidal of ProxiAD who has been working on a simple style-sheet approach to transforming models in his spare time; that immediately made me think about how useful what he's doing would be for e4. I encouraged him to get involved.


Meanwhile, Etienne was manning the Obeo booth where he demonstrated their technology to a steady stream of visitors.


One of the highlights for me was when Steve Sfartz introduced me to Jean-Marc Prieur who spent almost an hour providing a personalized demonstration of Microsoft graphical DSL tools in action.


It was very interesting to see this technology in action and it was extremely nice that I had the time to ask many detailed technical questions. The graphical DSL technology is based on a CMOF-like meta model; Jean-Marc explained that he considers it far simpler than MOF. I say it's CMOF-like because associations are first class objects and, at least by default, association classes (or link classes) are generated much like what I blogged about for modeling associations with Ecore. In addition to the domain meta model, there is also a model for describing the desired graphical editing support and of course the two are mapped to bind the domain onto the desired graphical editor. It's also possible to specify the desired XML serialization; though I'm not sure XMI is supported. Their UML technology is built on this stack. All in all, it's very much like GMF though with significantly more end-user polish.

We also talked about Oslo, Microsoft's more recent textual DSL effort. While the graphical DSL effort is primarily focused on code generation, graphical editing, and XML serialization, the textual DSL project has a different domain meta model, i.e., MSchema, and is primarily focused on runtimes, reflection, and textual serialization. You can compare the graphical DSL project to generated EMF augmented by GMF; as far as I understand it, the domain meta model exists only at development time, not at runtime, so there is no MOF-like reflection support. You can compare the textual DSL technology to Xtext (i.e., MGrammar), Ecore (i.e., MSchema), and EObject (i.e., MGraph). So while at Eclipse we provide Ecore as the common standards-based meta model (i.e., OMG EMOF) to support both graphical and textual DSLs and hence provide model-based reflection for all domain models, at Microsoft there are two different technologies to cover these two aspects.

My stupid modeling talk at the end of the day was very well received. People even cheered when I described XML as a poor excuse for human readable syntax that was designed primarily with machine- not human-readability in mind and that has so much appeal largely because lazy developers can avoid writing lexers and parsers. The message that UML is not equal to modeling was also well received. It's of course particularly gratifying to be preaching to the converted! It was a very long day so I was happy to head back to the hotel. When I checked my email, Dave informed me that the EMF book is finally done! It will be in warehouses on Dec 24th, so order your copy now before they all sell out!!

The next day, I had time for a little more sight seeing. Who would have thought we'd find a Canadian pub in Paris?


The Notre-Dame Cathedral was magnificent.


There were a great many amazing fountains.


Occasionally the old and the new stood together in sharp contrast.

Larry and I had a great dinner with a bottle of very fine French wine to end our day and our trip. In the morning it was time to head for home, where there was 10 cm of snow to greet us. Oh well, the girls certainly gave us a warm welcome home, even if the weather didn't.

Saturday, November 22, 2008

Eclipse Summit Europe: Afterwards

I was too tired on Friday to blog about the things I did. Chris, Ian, Larry, and I attended the Ludswigburg demo camp, which was very interesting, well attended by nice people, and well hosted. Sampling many different kinds of vodka really wears a guy out!

Today Larry and I headed for Paris where I'm staying at Saint Paul Le Marais. It's really pretty here!


And they have really big doors!!




We'll have more time for sightseeing tomorrow before I head out to Nantes Sunday night.

Friday, November 21, 2008

Eclipse Summit Europe 2008: The Automotive Working Group Meeting Afterwards

I held off publishing this blog about the automotive working group meeting that was held after Eclipse Summit Europe so that discussions could continue quietly in the background. However, given that Ralph let the cat out of the bag, I thought folks might be interested in what happened at that first meeting back in November...

My day started with breakfast with Mike, Ian, Doug, and Ralph. Then we headed by train to the Bosch site where the meeting was hosted. There was quite a large turn-out for the group, 22 in all.


Mike presented first, reviewing the history that led to the creation of the Eclipse Foundation as an independent entity.


According to Evans Data, there are 4 million developers using Eclipse daily, and 6 million if you include the vendor based products built on Eclipse. In Eclipse 1.0, Eclipse was primary just a Java IDE. For 2.0, it evolved to become a generalized tools integration platform. For 3.0, with Rich Client Platform, it evolved to come a desktop application integration platform. Today, Eclipse and Microsoft are the two dominant tools platforms.

A key to the Eclipse platforms success is the uniform component model that puts all contributions on an equal footing and make it easier to add little things or big things to the application. Open APIs and a commercially friendly licenses help to lower the barrier to entry. Eclipse has established proven best-practice processes around these ideas and these can be reused by industry vertical working groups to get a jump start on getting up and running. The maturity of an organization's policy around open source tends to progress from deny, use, contribute, champion, and finally value co-creation.

Doug Gaff presented on CDT, DSDP, and the lessons learned about working collaboratively in open source.


CDT has evolved to become an extremely high quality popular C/C++ IDE. It's used for things like embedded, linux, and high performance computing. DSDP is a container project for embedded and mobile technology. There are now more than 40 committers from 11 companies. There is support for debugging of embedded devices which features things like memory rendering. as well as target management that includes a remote systems explorer and a framework for managing communication with the targets. Real-time software components, Tools for Mobile Linux, Native Application Builder, Mobile Tools for Java and a proposal for FireFly, a Mobile Web Devleopment Kit targeting iPhone and other devices, rounds off the slate. Much of this technology is very likely to be applicable in the automotive industry.


Then it was my turn to do the 20 minute modeling dog and pony show; check out the conformance to Ralph's dress code!


Next Ralph presented some background about TOPCASED, a French consortium focused on building world-class open source modeling technology.


Two mistakes they admit to making: they focused too narrowly only on the aerospace industry,
and they focused too narrowly only in France. Both limited adoption. Of course many of these people are now committers at Eclipse on projects like Ecore Tools and Papyrus.

After a coffee break we had a round table introduction and some initial position discussions. Stefan Ferber of Bosch, drove home the point that it's very important to manage diverse groups of people who are often split geographically across different countries. The tool expenses are growing out of hand and that's primarily caused by inefficiencies in the system and with shrinking budgets are no longer affordable. Something needs to be done to make the tool vendors more efficient and Bosch is highly motivated to forge a new path.

Ulrich Schopf also of Bosch talked about some of the efficiencies they've focused on in the past,
e.g., the unification of the tool chain around gas and diesel engines.

Ramy Asselin of General Motors was able to attend following an AUTOSAR meeting.


He's currently working on a master's degree. Their goal is to arrive at a single tool set and processes based on open data where both the tools and data evolve over time. They definitely intend to leverage AUTOSAR. The software in vehicles is growing in complexity faster than is the capacity growing to accommodate that.


They need to improve sharing and integration and need to manage better the impact of design changes.

Thomas Hermes of IAV talked about the tools they need being too expensive, full of features they don't need, but for which they pay, and yet missing specific features they really do need. They'd prefer to see more componentized tools into which they could contribute the things they need. They don't care about tools, only about the results they get from those tools.

Hans Kugler helps other people improve the way they manage the software process. The improvements needed by the car industry is needed across the whole ecosystem; improvements within individual organizations won't suffice for the kinds of problems we are seeing. He definitely encourages the development of a common platform as a drive toward huge cost savings measure as well as something to foster more innovation.

Axel Schultze of IAV talked about how everywhere they go they run into customers with customized processes. It's very inefficient for them to have so little commonality of tool reuse across their customer base. Lack of tools around the system architecture of a car it painful as well. He mentioned their involvement in AUTOSAR which he sees as a good start, but perhaps not sufficient. License costs have become prohibitive because as much as 15% of a developer's cost is attributed to the cost of the tools.

Nest Wolfgang Neuhaus of itemis talked about his interests in this space. Itemis is heavily involved in providing help to develop domain specific languages in the embedded space. He asserts that an open tool platform will inevitably exist, so it's primarily a question of what form will it take, and who will get involved to drive the direction. Itemis recognized this inevitable end result as evidenced by they fact that it has open sourcing all its tools and technologies.

Martin Thomas of Bosch mentioned the gas and diesel tool chain unification as an example of the kind of cost savings that are needed. He considers Artop too closed in its current form. AUTOSAR is very important and he wants to see an open source project around this. The current effort is far too closed and will not produce the type of open ecosystem that's needed. He repeated my think big but start small, which I'd earlier termed as start small but aim high.

Markus Utz of Bosch reiterated some of the themes about how the current cost structure is stifling innovation. He too wants to work together with others.

Martin Richter of IAV talked again about the plethora of OEM development environments. It's just too painful and wasteful.

Peter Horn of Intel talked about why they are doing tools. Primarily they want to ensure that there is a good tool set available for people to exploit Intel's chips and hence improve the uptake.
They have good compilers, for example, that typically have 20% performance improvements over gcc. Faster code makes their chips seem faster. They want there to be a full tool chain that best exploits the silicon and are interested in the automotive industry's specific requirements.

Joerg Zimmer of BMW is interest in seeing a solid tool chain. Lutz Rothhardt also of BMW talked about how to manage all the different controllers in a vehicle. Their mirror, for example, has 5 or 6 inputs to decide whether to heat the mirror. It's gotten to be too complex to manage the dependencies between all the components for the purposes of change impact analysis. Even gathering the data within their organization is far too complex. The costs of a mistake in a shipped vehicle is extremely high. They want to see vendors competing so they don't become complacent but rather continue to focus on quality and innovation to maintain their position.

Michael Rudorfer of ARTOP talked about their development efforts around AUTOSAR.


They see a need for a common AUTOSAR model upon which to build tools to foster better interoperability. AUTOSAR's license restricts disclosure of the specification to members only, which effectively blocks the ability to turn it into an open source project. So they're trying to be open, but can only be open within the membership. The theme here is much like that I described earlier, i.e., building a common model and then encouraging tool vendors to compete in providing the best tools around that model, and to add specialized complimentary add-ons to any tool. They are currently working to build an EMF-based model, which was the topic of some conversations I had yesterday that ESE.

Minoru Okada of Dendso talked about his role in process development which is made more difficult by the lack of a coherent tool chain. It's often far too difficult to chain tools properly. He pointed out that the Japanese automotive software industry is many years behind and is simply not familiar with Eclipse.

Martin Beckel is from Continental, which was big in things like tires, but they've grown by acquisition and have ended up with a diverse set of tools; this type of diversity is not the good kind! They need to unify this. Exchanging software components is way too big a task, so they badly need something to integrate easily the various software components they reply upon. They're also involved in TOPCASED and Artop, so they're well aware of the benefits of collaboration. Even when there are good commercial tools, those often don't integrate with Eclipse nor with each other.

Nils Nilson of Johnson Controls repeated the concern about islands of tools; there really need to be bridges. Collectively there are a huge number of people with good ideas so doing work collectively will be a huge improvement.

Ralph summarized some of the issues and then Mike talked about some steps we could take to build an ecosystem on a well defined platform.


The first step might be to define an Eclipse package that assembles some of the key pieces of Eclipse that are expected to be of ubiquitous use, e.g., CDT, parts of DSDP, and EMF. This would establish a straw man base line. It would certainly start sending the right signals; tool vendors and the AUTOSAR folks are likely to take note. This starts to create an ecosystem with empty niches just waiting to be filled. Surprising players will turn up and do surprising things; that's what innovation is all about. It's important to define a roadmap, spell out the requirements wishlist, and sketch a viable business and governance model around all this.

Thursday, November 20, 2008

Eclipse Summit Europe 2008: Day Two

The day started with David Wood talking about the Symbian decision to become open source.


Fragmentation caused by too many mobile operating systems dilutes the industry's effort while open source helps to create a more successful, cohesive, productive community. Stability and quality of the base, agility in responding to changing needs, and a growing base of skilled developers are key aspects to a platform's success. Open source lowers barriers to entry, but it's not a panacea because integration and cohesion are always a challenge, and fragmentation is always a risk and in fact open source makes that risk more likely. A copyleft license like Eclipse Public License helps avoid that, though it's not always possible to consume the changes external parties make to the base. A very large number of companies have signed up to participate in this system. Good luck Symbian!

After that is was time for my stupid modeling talk. By the way, did you notice that in Ian's blog, all the people talked about modeling, even Doug Gaff? Resistance is futile. As I tried to bring up my screen on the projector, my computer decided to go to lala land so I had to power down and reboot. There's nothing quite like an untimely technical failure (like there's ever a timely one!) to get a guy off to a great start. Oh well, I think it went very well, judging by the comments I got afterward.

After the meeting I had a chat with Axel Rittershaus of Skyway Software.


He really liked my talk and we speculated about the various reasons why there are so very many misconceptions around modeling. Skyway uses EMF to help build their tools and models and those in turn are helping their end-users generate web applications. There's meta in action for you!

After that I chatted with Cameron Bateman of Oracle.


I've chatted with him a few times on IRC's #eclipse-modeling, so it was especially nice to get to meet him in person. We chatted about how best to sync up a model and a DOM and about rendering something that's better than the ugly properties view we have right now. It's great working with enthusiastic people with a can-do attitude.

I was chatting with so many people, I missed the Ecore Tools talk and the Tom Schindl's talk. That made me really sad, especially when everyone told me they were both really good. Darned ESE is too short so there's not enough time to do everything. I also spent time with Stefan Eberle chatting about the AUTOSAR implementation he's working on. I should have taken more pictures; yet more brain failure. Then I missed Rich's Amalgamation talk. Double darn. I'm going to have to cut some of those conversations short next year, because before I knew it, the summit was over after short wrap-up at 5:00.

For dinner I went out with some of the board members and some of the folks considering the possibility of starting an automotive working group. We meet with them tomorrow early, and I still don't have my slides ready. I'd best get to it!

Wednesday, November 19, 2008

Dave Thomas' keynote focused on the history and future of embedded devices though much of what he explained was around the fact that what we do at Eclipse generally sucks.


In particular, Java sucks, frameworks suck, modeling sucks big time, and hence Eclipse as a whole is a complex disaster. Those sound like fighting words! He expressed dismay that EMF made modeling marginally successful otherwise modeling would have just died off long ago. I almost felt kind of guilty, until he got to the part about Domain Specific Languages being a solution to all this complexity. Hey, isn't that what modeling will help develop? I noticed that his misconceptions will be fully addressed by my talk tomorrow.

After that I attended Tonny Madsen's talk about implementing screen flows in RCP applications; he's from The RCP Company.


He explained some of the problems related to flow control in wizards and described the simpler screen flow approach he's advocating. He showed some of his cool tools for designing flows.

Benoit Langlois of Thales talked about SolFa, i.e., a solution factory for integrating components in the software generation processes.


A factory component is a unit of generation with a clear objective and a well defined contract based on view points. They are orchestrated into an overall assembled plan. It needs to bridge the gap between the flexible control desired by the users and the technical precision needed by the provider of the services. His case study example showed how SolFa can be used to orchestrate the EMF's generation process. It's interesting how SolFa makes EMF's rigid generation process more flexible by making it easily configurable as part of an overall generation plan. Much of what we have hard-coded in Java in our generator adapters can instead be orchestrated by what's effectively a SolFA DSL for that. Very cool stuff!


Next Quentin Glineur described how ATL can be used to transform EMF models in a declarative way.


It can directly operate on an instance to modify it, i.e., to implement transformations such as refactoring. Constraints can be applied to ensure that a transformation produces results that conform to expectations. Its declarative mapping design supports bidirectional transformation;
preconditions and post-conditions govern the applicability of the patterns. In the future, they'd like to align with portions of QVT core.

Peter Friese, Jan Koehnlien, and Sven Efftinge talked about Xtext, which supports the devlopment of textual Domain Specific Languages.


I love this stuff and of course it's ironic that sucky modeling technology is exactly what you need to produce DSLs, the very thing Dave Thomas asserts to be one of the important technologies for the future of the embedded space. With an augmented EBNF grammar you can define your syntax and specify the abstract modeling onto which it maps. I think this technology will have a big impact!

I had lunch with Xavier from Soyatec and Benoit of Thales to talk about starting the SolFa project at Eclipse. Woo hoo, another cool project.


I also chatted with Steve Sfartz of Microsoft to discuss how we might start a dialog with folks working at Microsoft who clearly share common interests. He already sent me a note. Woo hoo!

My good buddy Kenn Hussey of Embarcadero presented on data models.


The data model design process covers the whole abstract range of issues from contextual, conceptual, and logical to physical, definition, and instance. He talked about Information Management Model (or something like that) to help unify things like UML, Entity Relationship Diagrams, Relational models, XML Schema, and LDAP.


After that, my other good buddy, and recent new father, Cedric Brun of Obeo, presented the EMFT Compare framework.


It's fully integration with on Eclipse's team APIs, and of course is based on comparing models structurally rather than based on comparing their serialized representations. The compare editor displays the side-by-side structural views of the model, i.e., the same as the view used in the EMF editor's outline for that model. They even have an EMF Diff model that captures the differences between the two models in the form of a serialized model. They're currently prototyping support for comparing semantic instances but displaying a graphical representation of them. It's really cool!

After that yet another good buddy---no, I wasn't on the program committee picking all my buddies---Eike Stepper presented on CDO.


He drew attention to the fact that the CDO team has committed 175 bugzillas since Ganymede as an example of how active the development is. I speculated out loud that maybe it was really buggy before; it makes you wonder how I treat people who aren't my buddies doesn't it? He showed some of the cool new things in the latest version, like structured resources organized into folders, save points to support partial rollback, passive updates to disable updates to the session based on external changes, change subscriptions for producing regular EMF notifications for changes in the remote instance, and even a query framework. He's really has been busy! He finished very quickly, but there were a heck of a lot of questions! I prompted him with a question about the fact that CDO allows objects to be garbage collected since objects do not directly contain references to one another. Eike explained that this allows CDO to scale to resources that are bigger than 4G in size, for example. That was the best question and answer session ever!

After that I talked to Hajo about writing up a project proposal for the cool stuff he demoed yesterday. Woo hoo, this is going well! On my way down to the the MTL presentation I bumped into Dave Thomas and asked him what's the difference between a model and a DSL? He said they are the same thing. Excellent, that's the right answer! He said he'll be around tomorrow, so it will be cool to see what he thinks after my talk.

The good buddies never end, because Sandro Boehm was next to present JCRM.


The goal is the foster synergy between the modeling community and the JCR community. The JCR community doesn't have good tools support and the modeling community can help produce those. The modeling community benefits by virtue of having a JCR-backed data store for EMF objects. This will help provide multi-user capabilities as well as fine-grained object-level versioning. JCR is quite a nice match for EMF's type system. EMF's reflective or dynamic delegation generator patterns allow Sandro to map all data access onto the repository and easily supports locking and versioning.

This was followed by the board meeting. Those on-site at ESE congregated in a little room.



I'd tell you all about what we talked about, but then I'd have to kill you. Or they'd kill me. You'll just have to wait for the public minutes.

Finally it was time for the reception. Lynn encouraged folks like Larry to worship her as a goddess.


Janet, Chris, and Doug enjoyed their beers, although I don't think Doug approves of idol worship.


Later I there was even a pretty young woman who couldn't keep here hands off me. Despite the smile, I felt violated. I hope her husband reads this blog.


I spent quite a bit of time chatting with Maximillian Koegel and Jonas Helming about their research work relating to change management and project management.


That was a really fun night. As is so often the case, chatting with people is more than 1/2 the fun.

Tuesday, November 18, 2008

Eclipse Summit Europe 2008: The Symposiums

There was really good turnout for the modeling symposium.


Well over forty people attended.


Markus Voelter started the symposium with a brief outline of the agenda and a description of how the "open space" discussion would be structured in the afternoon.


Lars Schneider of Siemens presented his position paper on model quality assurance based on his research work.


He defines qualitative metrics for assessing model quality, which he terms as smells. The idea is to detect problematic patterns, i.e., bad smells, and then to use refactoring to eliminate such patterns. He described how his refactoring tool can be used to apply basic refactoring transformations and he also showed how the his graphical tool is used to design transformations.

Sandro Boehme of inovex presented a description of how EMF's EStore is used to provide support for Java soft references, a good solution for dealing with models that are too big to fit within memory.


Recall that soft references will be garbage collected when the JVM runs low on memory. By generating an EObject implementation based on the generator's reflective delegation pattern, it's possible to delegate all data access onto an InternalEObject.EStore. The store itself delegates to a map that manages the soft references under the covers. He uses this approach to implement EMFT's JCRM so it can access and traverse models larger than can fit in available memory.

Dimitrios Kolovos of York University described how GMT's Epsilon can be used to navigator heterogeneous models.


It's often the case that we need to establish links between different types of models. He described an example problem of applying probability information to an activity diagram for simulation purposes. In this scenario, it's desirable to be able to treat such information as if were just properties directly on the model. To solve this problem, the Epsilon runtime queries the available models to determine which ones know something about a specific property being associated with some type object, i.e, which ones define bridges.

Hajo Eichler of ikv++ talked about executable models.


He described some existing approaches, which as he said, are interesting, but not EMF based, and hence don't directly solve the problem. He defines operational semantics by extending Ecore and has founded it on a well-defined formalism. There is a graphical editor for specifying the dynamic behavior. He showed the debugger directly working with specified behavior. Effectively this approach allows him them very quickly specify the full semantics of a complex domain specific language.

Moritz Eysholdt of itemis described his work on meta model evolution.


He described a simple example of a document with an author-name attribute evolving to become a model with an author object to carry that name attribute. The problem is of course what happens to existing instance serialized according to the old model? If one can record the changes made to the model, that information can be used to determine how the corresponding instances need to be transformed. It's also possible to simply compare the original and final versions. In general, one needs to collect information about how the original model was changed. That information is encoded as an Epatch which groups the changes in a meaningful so that corresponding changes can be interpreted in a meaningful way against the instances.

Markus Herrmannsdoerfer described coupled evolution of meta models and models.


He gave us choice of pretty slides or a demo, so naturally the audience wanted a demo. He showed how his tool records all the changes being made to his sample model. These changes can be grouped and then annotated with instructions for how to migrate the instances. He also has refactoring transformations that can be applied and have built-in meaning in terms of migrating the corresponding instances of the model. You can learn more at his website.

Miguel Garcia presented on techniques to extend languages in the style supported by LINQ
with a focus on how to apply the same types of ideas in Java.


Annotated Ecore models can be used to specify details for how best to query instances in an SQL-like way.

Jabier Martinez of European Software Institute talked about some of the challenges faced in model drive software development, i.e., versioning and transformation, particularly those that scale to very large instances.


These are the problems they are exploring and building tools to solve.

Peter Friese and Heiko Behrens of itemis talked about Xtext, a framework for developing textual DSLs.


The idea is to support syntax that's more human readable than XML. Certainly managing and working with textual source artifacts has a long history of support. The text of course represents deep structure but all structure is implied by the text so only the source files need to be version controlled. It's difficult to work in deep meaningful ways with just source though, so an alternative is to represent the deep structure in a repository, but that implies it's necessary to resurrect the textual form when the users needs to view it, which might be lossy in terms of formatting details. A third approach is to combine these two, i.e., create an index of the deep structure from the source and maintain both.

Jos Warmer of Orinda talked about an alternative approach to large models.


Current solutions include repositories and file storage. Their solution is simply to avoid having large models. They focus on a collection of small independent DSLs along with collections of small instances. So models are composed of a number of model units and scaling happens by virtue of scaling the number of units, not growing the unit size. References across units are soft references, e.g., reference by name. Of course this implies that you'll need an index, like CrossX, to understand the soft references in order to reason about the deep structure implied by them. Effectively this is like compiling your source models into a compact representation of the deep structure.

After the presentations Markus observed that the community is maturing as evidenced by the more sophisticated topics of the interesting presentations we just saw. He then proceeded to gather topics to focus the afternoon break-out discussions.

One was focused on modeling verses programming. Kenn said "programming is modeling but modeling is not necessarily programming." The implication is that programming involves a significant focus on behavior not just structure. What is the purpose of a model generally? Typically they are defined as a target for some program to manipulate, but Kenn claims that sometimes models are just meant to communicate information. Pretty pictures, oh no!

It was asked, why don't we focus modeling more around things we've done with languages like Java, i.e., much what like Jos talked about earlier. In other words, lots of small source files and indexing them. It's key to be able to answer queries about inverse references. A focus on use cases driven by real user needs is important to achieving the same type of comfortable experience that JDT provides. Two main parts of the issue is how to compute the closure for what's to be indexed and to identify which specific things are important enough to be indexed. So we all agree we need an indexing mechanism and a query language to exploit it. Sven will propose a project that focuses on indexing.

We digresses a little at that point about the need uniquely identify every object. A URI should suffice for that. Part of the contentious issue was readable names verses arbitrary fragments that might not be human readable, e.g., a UUID. Even the issue of how the resource is serialized becomes important to understanding the issue, i.e., does the reference to some object include that full URI or is it perhaps just name based, just like a name-based Java reference. It's a bit confusing that we mix up how a resources reference each other verses how, in general, we can reference any object.

We discussed scaling via lazy loading and importantly the ability to unload things so that the heap doesn't steadily grow. It's even important to partially load objects, i.e., proxies aren't enough because sometimes specific features can be hard to compute so you'd like to defer that computation. It's important that EMF allows integration with any persistent representation
so that XML, databases, object-based stores, or repositories can be used. Often the persistent representation has an impact on what type of query mechanisms are supported.

It was also asked if scaling be transparent to the programming model or if we should expect to write our models and algorithms differently to scale better. It seems generally important to think about scalability at design time; it doesn't generally come for free. We concluded that we need good information about examples and best practices based on experience; after all, EMF's EStore API can solve many of these problems. Kenn will start a wiki about best practices.

We the crashed the e4 symposium where an excellent modeling discussion was already underway. It was interesting to hear some of the arguments against modeling because they fit in so well with my classification of all the reasons modeling is stupid.

After that we had a quick summary of the breakout sessions. It was a long and tiring symposium, but very enjoyable.

Later in the evening, the members of the Architecture Council had a nice dinner after which I decided I had enough blog fodder to choke an army, so I'd needed to get it out of my system. Tomorrow promises to be full of interesting talks followed by a great reception. Stay tuned...

Eclipse Summit Europe 2008: The Members Meeting

After a good night's sleep, Monday was the start of beautiful sunny day. We did some sightseeing in town to begin the day.


In the afternoon, I attended the members meeting. There are now roughly 190 members, 22 of which are strategic members, and there are 932 committers from 75 organizations. These days we get roughly 1,000,000 package download requests per month. We are expecting about 400 ESE attendees and there are roughly 35 sponsors.

Mike talked about the initiative to create industry working groups as a way to drive the growth of the foundation and to diversify its membership. Eclipse has good infrastructure and processes, including a sound intellectual property process, to help facilitate collaboration. The working groups can leverage existing projects, feed back their requirements to those projects, and even initiate projects to address any gaps. Our first example is the Mobile Industry Working Group led by Motorola and Nokia which will focus on creating a Model Application Development Kit.

There were questions about licensing issues for these working groups, i.e, will they be stuck with EPL? Mike pointed out that 3 projects are already dual licensed, e.g., EclipseLink is also licensed under BSD so that it be consumed by GPL and be part of the JPA reference implementation. He also indicated that there are efforts underway at the board to make it possible for something like CDT's Wascana distro to be hosted at Eclipse.

Karsten Schmidt talked about the SAP Eclipse story.


SAP decided to support Java in 2000. They chose Borland's JBuilder as their IDE but they needed better access to source than was provided by JBuilder in order to build their own specific extensions, so they evaluated Eclipse and NetBeans. They also needed a model abstraction layer. By 2003 they had a version of NewWeaver based on J2EE 1.3 with Selena as their modeling layer. At that time, Borland acquired TogetherSoft and Modeling Infrastructure (MOIN) based on MOF 1.4 was started as a research project. They decided not to use EMF because they needed something that worked on the server side; how odd given that EMF has always worked there. By 2006, they became the first major vendor certified for JEE 5. By 2007 they first signed the Eclipse committer Agreement and supported a committer on WTP. They also donated their memory analyzer project to Eclipse and they now have a BPMN modeler based on MOIN.

Some challenges they faced included their conservative policies that kept them from participating; without participation they could not have real influence. Things like the EMF/MOIN split are an unfortunate consequence of that lack of direct involvement. Karsten expressed regret that they were not able to get directly involved with EMF many years ago; I was certainly very hopeful after last year's "Big Models" meeting that we'd be able to work more closely together. Unfortunately decisions made at the executive levels don't always match the wishes or expectations of those of us in the trenches. Karsten is still hopeful that perhaps it's possible to better align EMF and MOIN in the future. They also expect to fully align their current component structure onto a uniform OSGi base, and they plan to focus on the Equinox implementation for that, because the benchmarks for Equinox generally give it the lead and therefore make it the best choice. The fact that it's hosted at Eclipse makes it easier for them to participate in its evolution. It's a brave and bold new future for SAP and Eclipse.

Jeff McAffer presented an overview of the runtime project's vision of the future.


The trend these days, as Karsen just demonstrated, is that people are more and more willing to consume from open source. One problem this surfaces is how to combine those components to build solutions. Many things are possible, including the ability to install a thin Equinox WAR into which you embed your OSGi bundles. The Utopian vision is to be able to use the same component model and deploy it anywhere. We already have all major JEE vendors building on OSGi, although they don't surface that as a component model for their users. A consistent, flexible, configurable component model that allows you to integrate a diversity of components is key.

Next Jochen Krause presented on the motivation behind the e4 effort and the progress it's made.


It needs to be easier to build plugins including doing so in other languages like Javascript. Richer more flexible support for styling is an important goal, along with a service-based application model able to target the web. He wanted to reassure the community that we will remain committed to the 3.x stream for five years or more, and that we plan that 3.x plugins will continue to work in a compatibility mode in e4. We will strive to provide more uniform APIs that avoid singletons and are more finely structured as small components. Even the resource model needs to be more flexible and we need to exploit patterns like Dependency Injection. We expect that the entire workbench will be formally modeled. Overall, the goal is to create a simpler and more powerful application model. An interesting approach that has been prototyped is cross compiling SWT to Flex. He also showed Boris' sample e4 application running normally and running as a brower application; pretty impressive! Of course of invited folks to get involved!

Chris Brockman presented on some of the problems that need to be solved in the business world.


The integration of disparate sources of information across the enterprise is key issue to many. The same information can be interpreted in different ways and often separate sources of information need to be related as if they originated from a uniform semantic source. The SMILA approach is focused on this. The idea is to create a shared architecture standard. Just a single company like Volkswagen might have 500 applications running just in Germany, so even just maintaining connectors for these applications is a significant cost. It's easier for application based on Eclipse because providers can be more easily encouraged to provide integration directly. Important players like SAP have gotten involved. He also drew attention to Eclipse's IP process, which, although can seem onerous, is something that's key to using open source in a way that's enterprise friendly. Ultimately it has extreme value for corporate consumers.

To help bring in the schedule, Ian Skerret gave a very rapid overview of the Mobile Working Group Mike talked about earlier.


It's a great example of the foundation's successful new approach for attracting new types of members.

Martin Oberhuber presented an overview of the Architecture Council, what it is, and what it's doing.


There is a representative for each PMC, a representative for each strategic member, as well as members appointed based on merit. The AC council facilitates mentorship and all new projects must have at least two mentors from the AC. It fields community requests via bugzilla; did you know you could do that? It interacts directly with the EMO. And it acts as a channel for raising high level issues to the board. An example of how an issue was addressed was the change to make the committers mailing list be moderated so it can remain open without becoming a frustrating source of SPAM. The AC can help offload work for the foundation staff by fielding questions directly; we have a lot of experience to share. In general, its overview of the community helps it act as a filter when it comes to issues reaching the EMO and the board. Martin has done an outstanding job making the AC active and effective.

Our beloved Bjorn, acting as Rich, talked very briefly about the activities of the Planning Council,
which has recently set itself up as the body to drive the release train for the Galileo release.


He talked about the impact of the tragedy of the commons, i.e., how everyone might want something but no one is wiling to help make it come about, with the hope others will do it for them. See how he's going to crush those who don't pony up? They don't call him knuckles for nothing. We fully expect that Galileo will release on time and on schedule just as every previous release.

Maxim Groouchevoi introduced instinctools, a new Eclipse member based in Belarus.


He talked about the DITA technology developed by his company. The idea is to provide single-source support for the documentation process and to support the full documentation life cycle.

Finally Ralph talked about the growth of Eclipse in Europe. There he is explaining how he's carving up the European pie.


All this talking and listening is hungry work so a group of us stormed a local restaurant in search of a cozy table for 22.


It was a long hard day, but even the walk back was pretty.


I was looking forward to the symposiums!

Eclipse Summit Europe 2008: The Day Before

Our flight to Frankfurt was scheduled to leave at 6:10 and we got to the airport at 4:10. After waiting for 45 minutes in line, we got the last 2 seats on the plane because it was way over booked. The plane left 1/2 hour late but arrived 20 minutes early. How do they do that? In the airport in Frankfurt I finally bought a SIM card for the Nokia phone I won at EclipseCon, so now I have a German phone number. We used it to call Ralph so he could pick us up at the train station in Zwingenberg. We promptly headed for Schloss Auerbach, which was shrouded in fog.


Dave, Lynn, Susan, Ralph, Larry (taking the picture), and I spent a bit of time in the cafe. Dave has to leave, so when Susan took him to the train, Lynn, Ralph, Larry, and I hiked down from the mountain.


Ralph showed us the way back on the trail map; it didn't look so far on the map!


After a long refreshing trek, we finally got back to civilization.


Larry and I had to hold Lynn up.

Ralph and Lynn were simply exhausted so we had to recaffeinate ourselves.


After dinner we sped down the highway headed for Ludswigburg. No speed limits; what an interesting idea!

Saturday, November 15, 2008

No Longer Blue

As Ralph blogged yesterday, if you're feeling blue, it's high time to register against recession at Eclipse Summit Europe. Of course I stopped feeling blue a while back, and today I'm eagerly packing my bags. So though my German Ram is feeling proudly and happily blue, I'm feeling excited to be headed for Ludswigburg Germany followed by Paris France.


I'll be doing some sightseeing tomorrow with Ralph and Lynn Gayowski, one of the goddesses of organization at the foundation. I'll be packing Larry along for this trip too. We even bought a second camera so that neither of us need be without. Like Eclipse's software and processes, they keep making those darned things better! My new camera, a Canon SD990 is 14.7 mega pixels, allowing for yet more post-shutter reprocessing to achieve that simulated professional look. I'm sure that castle we're planning to see tomorrow will be more photogenic than my tank.


There are few things more disturbing than listening to yourself talk; try it sometime. I was reminded of that in my DZone interview with James Sugrue that was published yesterday. I didn't realize that I say "yeah" and "sort of" quite so much. I'm really going to have to improve my diction. I also spent time on a podcast for my "stupid modeling" talk, so if you're going to miss my talk at ESE or MD Day, you'll get a chance to hear it later. It's clear that there's nothing like having a bright light shine on you to bring out surprising details.


Speaking of which, I also seem to have developed a bit of a bad attitude this week when it comes to the planning around Galileo. I've had a recurrence of that feeling of "rules, too many rules" that I blogged about a while back. It's as if two parts of me are in mortal conflict. One part says, be helpful, do all the nice things that people want you to do to help the community be cohesive. The other part says, hey, they don't just want me to do it, they require me to do it. Unfortunately I have a hard time with being coerced, so the second part is sounding loud and shrill. I have a deep seated need to to have control, i.e., that I get to make all the choices about how best to spend my time and about what's best for my project. While I'm more than willing to give a little, or even a lot, I don't like it when people seem to want to take more than I choose to give. If, for example, I were to go out to weed the garden, and as I went out, I was told I should specifically weed that patch over there, I'd probably weed a different patch or decide that today was not the day for weeding after all. I wonder how many other people suffer from this type of shortcoming?

Thursday, November 6, 2008

Models are Everywhere

It's officially Indian summer with temperatures reaching almost 20C around here and that puts me in a really good mood to reflect on models; one of my favorite pastimes. Everywhere I look, I see models. For example, I watched some videos about Oslo, Microsoft's foray into the modeling space, and, out in the yard, I even have a model of the moon wrapped around the earth which I photographed "eclipsing" the sun.


Microsoft's modeling effort is particularly encouraging because they appear to be focused on exactly the same types of things we're doing at Eclipse. Specifically Xtext is very much like their grammar language and they have a simplified Ecore-like schema language as well. It is interesting that this language is based on structural subtyping rather than inheritance. That sure brings back memories of Acer; what's old is new. I think Eclipse has at least one big advantage: its large, well-established, diverse community of participants who are collectively driving the technology. Microsoft mostly has spectators watching their sparkly show.


When I look in the Eclipse employment postings, I see models there too, e.g., a posting for an "EMF Business Modeler" position. Looking in the e4 mailing list, I see lots of talk about models, e.g., a thread on declarative UIs. That reminds me, don't forget to register on the new e4-dev list if you want to continue to follow all the latest developments. I strikes me that there are an awful lot of modeling zealots in this crowd. I would never be like that. Then again, I've been accused of having a distorted view of reality. To them I say: who decides what's reality and what's a distorted view?


It goes without saying that at Eclipse Summit Europe there will be modeling everywhere; I'll take that opportunity to point out why modeling apparently sucks. After a week of excitement in Ludswigburg, I'm off to Paris for MD Day where I'll get yet another chance to explain why modeling apparently sucks. Guess what the "M" stands for? There's even a plethora of modeling content at the NYC Eclipse Banking Day. I love these trips because they give me a chance to interact face-to-face with all kinds of interesting people doing all kinds of interesting things; my home office is a bit isolated, thought the flowers are pretty, even in November.


One place where I don't see nearly enough models yet is in the EclipseCon 2009 submissions. I wonder what would be cool for a mainstage modeling presentation? Ideas anyone? In any case, the deadline is very rapidly approaching so you'd be best not to wait until the last minute. Whatever you do, do not let this opportunity dry up and blow away!


Naturally the modeling package is now very easy to find on the downloads page, thanks to Nathan's creative talent; 87,000+ modeling packages downloaded since the 3.4.1 release. I've even spotted a new Modeling category page, brought to us again by Nathan's creativity; we need to help get the content pimped up. And finally, way out on the horizon, there's even a MODELS'09 conference! A guy or gal could grow dizzy just looking around!