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.

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!

Thursday, November 20, 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.