Friday, March 21, 2008

EclipseCon: Thursday

Today's keynote speaker was Cory Doctorow. He pointed out that predicting the future is based on extrapolating the present forward, and that it tends to overlook surprises. He believes we're evolving toward an information economy. Controlling information has a long history, starting with notions such as copyright law. Despite expectations to the contrary, off-shoring our manufacturing doesn't guarantee that developing nations will respect other arrangements like copyright and intellectual property laws. Part of the problem is that it's just too easy to copy things and its getting easier and easier. The best way to deal with this is just to out-compete those who might distribute the information being copied.

He believes that, in general, success at any firm is largely determined by collaboration, i.e., getting everyone on the same page. Execution relies on everyone driving momentum in the same direction. It's getting easier in the information age to drive collaboration, with Wikipedia being a case in point. The links we create in our webpages are in effect a collaboration effort that's become bread and butter for Google.

Many endeavors have a floor on their cost that's difficult to undercut. For example, an institution that makes movies for 100 million, you won't be geared to create a movie for 20 thousand dollars. If you can drive the cost of producing something down to commodity prices, you'll be in a position to respond quickly to changes in a dynamic economy. For example, the legal costs for enforcing copyrights and other laws for publishing are a major cost for many firms, yet if you tried to apply those to YouTube, you'd not be able to provide the service.

Strict liability laws implied that anyone participating in a chain of events that led to a copyright violation could be sued. But it just can't be applied to a blogger website in a reasonable way. So it was replaced on the internet by "notice and takedown." I.e., you must report a violation with the expectation that the information will be made unavailable as a result. This protection from liability is what has enabled blog hosting and things like YouTube, but some are beginning to argue that these kinds of things are a loophole in the copyright laws.

Some statistics show that the majority of the blogs produced are read by less than four people, which makes me kind of sad. This blog is really long and I bet less than four people will read it all. Some might argue this represents a failure of this form of media, but Cory argues it demonstrates that producing the information is so cheap that even at this scale, it's still an effective overall ecosystem; my time is pretty valuable to me, so I hope blogging this way is an effective way to spend it.

The key in the information economy is to find ways to lower the costs to levels far below anything that might ever have been anticipated. Some will argue that freedom of information is at odds with property rights. But this can be taken too far. Is every idea someone's property and hence no idea can be reused without permission? Does a photo of a building violate the property rights of the architect of it?

Enforcing external policy on a local computer in an effort to prevent property violations (copying) is an example of taking this too far. It gives rise to a mechanism that can be exploited for malicious purposes. It's like having a self destruct mechanism on a spaceship that could be subverted.

We need to keep the cost of collaborating on software low to ensure that open source remains an effective force. Open source helps to demonstrate that value is derived from sharing information rather than from hording it. He points out that limiting encryption to 50 bits was a very silly idea. It allowed criminal forces to subvert security.

His final point was that freedom on the internet is an extremely important principle and that we all have a responsibility to help preserve the freedoms we might take for granted today. They didn't just happen. People had to fight for getting them and continue to fight to preserve them.

During questions, he talked about the patent crisis. He argued that the US patent office is effectively abdicating its responsibility by granting patents for pretty much everything. Clearly his not a big fan of software patents. Venture capitalists like patents because they can often be traded and hence represent a form of currency. He argues that mostly it just helps to employ the lawyers. And worse yet, there are now trolls, who simply make threats of litigation to extort money from their victims. It's cheaper to just pay them than to hire a lawyer to deal with them, and thereby the victims, both small and large, fund the malicious behavior.

What should we do to prevent terrorism? He argues that all the information for how to make deadly poisons and bombs is available anyway. Security is not really sufficient. Assuming something is secure is just assuming no one is smarter than you. Something is only secure if you allow everyone to hack on it and thereby demonstrate security when no one succeeds in breaking it.

After the keynote, a day of OMG fun began. Just to be clear, OMG stands for Object Management Group, not Oh My God that's complicated. Kenn, acting as the chair, gave a little bit of background about open specifications and open source.

Eclipse has a long list of projects that implement OMG specifications. Such reference implementations can be shared to reduce costs and to ensure more rapid adoption. Part of the process for approving an OMG specification involves the existence of implementations that validate the integrity of the specification's design, so Eclipse definitely helps with that. However, there is insufficient overlap between the people implementing the specifications and those involved at the OMG with defining them. To improve the situation in general, we need to make both the specifications more consumable and the implementations more conforming.

Michael Soden of ikv came to talk about the fact that OMG specifications really do need Eclipse open source implementations.

His company is small and is located in Berlin and Yokahama. It provides model driven development solutions and services. Eclipse could really help guarantee compatibility by acting as a point of comparison against other implementations They have implementations of many of OMG's specifications. For them, open source implementations save them money and ensures higher quality because of wide reuse and testing. It helps guarantee interoperability by providing a consistent interpretation via a concrete realization that can be directly tested. Inconsistencies in the specification can be ironed out as part of realizing the implementation. Keeping up-to-date is crucial.

Some issues he listed at the end include: EReference/EAttribute verses Property; FeatureMaps are not accessible to other specifications; generics are specific to Ecore; MDT OCL doesn't support navigation to the eClass/getMetaClass; and a lack of four layers of meta (the meaning of which I never got a chance to ask about). Lots of issues with the QVT specification where highlighted, which is a relatively new specification. In the end, there was a question of how to align OMG's processes with Eclipse's processes. Joint participation, collaboration as part of finalization, joint reviews, and issue reporting to improve the feedback loop where suggested.

Next came Pete Rivett of Adaptive, a company focused on repository software, to discuss the challenges of CMOF.

He talked about the history of MOF's (Meta Object Facility) versions and it's relation to XMI (XML Metadata Interchange). He feels that the JCP's JMI process was perhaps a failed exercise. It's gradually evolved, as part of MOF2, to separate out different levels of concerns, e.g., EMOF (Essential MOF) verses CMOF (which stands for Complete MOF, not crappy MOF nor complex MOF). The issue of associations was raised again, as it was at the BoF the other day. Things provided by CMOF include associations, association generalization, property subsetting, property redefinition, derived unions, and package merge. A long list of OMG specifications are CMOF based so a lack of CMOF support is hampering these specifications. Mapping between CMOF and UML is relatively straightforward, but less so for mapping between EMOF and CMOF. A CMOF Java API would be useful, including support for generating and implementing the APIs. Support for more facilities needed by repositories are seen as important too. Better integration with constraint support. Long term things are like semantic MOF where objects can change class and have multiple classes will become important. (What the heck are objects with changing classes anyway? I didn't get a chance to ask.)

Next came David Sciamma of Anyware Technologies, a company specialized in open source and focused on model driven development.

Anyware is a member of the TOPCASED consortium, which aims to provide an open source critical systems development environment with support for meta modeling. Their primary need is something pragmatic and for that they need productive tools that let users work at a high level, i.e., tools for manipulating metamodels. They also want to support integration with other technologies. Ecore Tools provides an Ecore perspective that facilitates first class support for Ecore as the focus of interest . Navigation, searching, and analysis of references along with a type hierarchy view are important features. Better integration with the code generator is key as well, i.e, more transparent access to the GenModel.

Anyware provides an enhanced GMF editor with usability improvements for common tasks. They've also taken an interest in Emfatic, a human readable notation for Ecore, and have offered to help Miguel and Chris drive it forward. He gave a quick demo where he showed that two opposite references are rendered as a single line. I was like totally cool dude, who says Ecore doesn't have associations. Oops, did I say that out loud? Apparently I did. They've even added support for filtering so you don't have to show all references in a given diagram. All I could think was goodbye moldy old *.mdl files and hello integrated Eclipse graphical editing. Woo hoo!

Next came Ed Willink of Thales:

He believes that EMOF is somewhat poorly specified at the OMG. Even the namespace URI for it is obscure, and where the primitive types live seems left hanging. (It's no wonder that I can't really expect any tool to ever provide a meaningful EMOF serialization and it makes me wonder, where the heck is EMOF.emof and why didn't they notice that it's data types are AWOL?) Other glaring holes, like the fact that OCL extends EMOF but OCL's Real type is not defined anywhere stand out. Also, QVT provides non-normative Rose and Ecore models.

A specific issue he brought up is the fact that labeled non-navigable association ends are meaningless in EMOF and hence the information they specify (which is needed in QVT/OCL expressions) disappear. Ecore could accommodate this by annotating a EReference to specify the name of the non-existent opposite. (I think that's a good idea.) He believes that lack of extents seems is an issue. (I recall I deleted those when working on Ecore because no one used them nor could explain a purpose that wasn't already served by Resources.) He exploits the fact that Ecore can be serialized as EMOF XMI and that it can be read from it. In this way, Ecore acts as the Java realization for EMOF. To support a direct EMOF model, adapters are used to view each Ecore instance as its corresponding EMOF instance (which is is similar to how SDO is supported). His design supports kind of a dual serialization for the both forms of the model. He's looking forward to exploiting EMF's new content type support to simplified resource handling.

It was finally time for the first of the discussion periods. Kenn stated that there was a concesus at the modeling BoF about the need for a richer set of modeling concepts as provided in CMOF. I contradicted him since it seemed to me only a small number of people actually stated they commonly needed such concepts (but I suppose that subset of folks has a consensus among them). Then we discussed copyright issues around OMG specifications and their normative models. After all, a normative model is intellectual property and when you pump that through the generator, the result is still the property of the model's originator. So it would be good for the OMG to make it clear more that the models can be used freely. There was discussion about who can be involved in the specification and how to raise issues when you aren't a member or when you can't vote. The OMG process just isn't very open according to some. Issues of what tools folks can use to help work with the OMG's models is an issue.

We talked about at length, but I got kind of bored of it and tuned out thinking like jeesh dudes, just use a darned Eclipse tool the stone you're using now has worn out. I'd rather folks argue about which tool to use at your OMG meetings given that the best we can do at Eclipse is lead the horse to water. I know I should have been more open minded somehow, but I was getting kind of hungry because it was lunch time.

After lunch, James Bruck of IBM discussed his experience with working on UML2 and how issues discovered by folks implementing the specification are raised with the OMG.

Some short comings from a Java 5.0 support perspective are things like support for Java-style generics (which was added to Ecore in 2.3). UML's template mechanism is a poor match for Java-style generics. So UML adopted a profiling mechanism to allow such things to be specified. He discussed some specification problems. For example, ambiguity with ball and socket notation. There's also often ambiguity in wording that leaves things far too open to multiple interpretations and lack of motivation about the intent of a design makes these difficult to resolve. Also, sometimes derived attributes aren't marked as such. These issues can all be harvested from reference implementations that are based on a normative description and we could ensure that normative description determines the textual descriptions in the body of the specification. Another problem is that changes between versions causes confusion, especially when they are binary incompatible changes. There really ought to be better change tracking between versions, with a rationale for why it's been changed. Better tracking of issues perhaps similar to bugzilla would be great.

Dave Carlson presented his work on a UML profile for XML Schema.

He believes that profiling is generally an art and there is little documentation in the way of best practices. Schemas are often the normative description of his customer's data. Round trip mapping between UML2 and XML Schema is an important goal. (Though I had to wonder how UML multiple inheritance can be round tripped in an XML schema that supports only single inheritance.) Given there are default mappings, one can avoid applying a profile only when the mapping is different from the default so that can help reduce noise. Modularity between schemas needs to be reflected in the UML modules. He showed a demo of his tool in action. It all looked quite powerful. (But I could have asked questions for an hour and didn't have the opportunity. It seems to me that a fundamental problem with what I saw was that if you took his UML and mapped it to Ecore, serialized an instance of that Ecore, it wouldn't serialize anything like the schema the UML mapped to. So in a sense, it seems he's just using UML as a notation for expressing XML Schema, rather than as a model for specifying instances that conform to that schema. I know I'm missing part of the puzzle.)

Next, Raphael Faudou of Atos Origin talked about their use of UML, SysML, ADDL, and SAM.

Each was modeled with Ecore and the corresponding TOPCASED editors were mostly generated from those Ecore models. There is growing interest in SysML, but it remains to decide if it should be realized as a UML profile, a meta model inheriting from UML, or as a new autonomous meta model. It's clear the relationship between SysML and UML needs to be clarified.

Victor Sanchez of Open Canarias discussed their problems implementing QVTo.

He made it clear that he believes that a number of things are missing from the specification. There seem to be some mismatch even between model levels as well as some type inconsistencies. He described the architecture of their solution, which involves an Atomic Transformation Code layer over top of a Virtual Transformation Engine that in turn is propped up by EMF and Java. They're collaborating with Ed Willink on QVTr and QVTc. (I really need to learn more about QVT and what all these different relational, operational, and core aspects of them mean.)

Jonathan Musset of Obeo is working on QVTr and just recently on MTL (MOF to Text Language).

Obeo has eight committers and is involved in M2M, M2T, and EMFT compare as well as in STP SCA. Depending on whether you're generating model verses textual output makes a different in how your solution is expressed and hence there are specialized languages for each. MTL will be an interesting contribution to the M2T space where neither xPand nor JET are based on specifications. (So many people bashed EMF's old an rotten JET templates at EclipseCon. It's like they were conspiring.) Issues like working with models that are in the workspace verses those that are in the target or running platform are important resolve. (The topic of the BoF on Monday.) He points out that it's a challenge to feed back changes into the specifications. QVT and MTL need to have compatible libraries and currently don't. Inconsistency and ambiguities in the specifications are also a problem for these guys. Many examples were given.

Ed Willink was back to talk about getting Eclipse's OCL working with QVT.

He described the various interesting editors to support the textual notations for these languages as well as the support for integrating those with graphical and outline views. Integrating the various diagrams and views into a single editor is important. He reminds use that the mismatch between EMOF and Ecore hasn't helped him. He has fixed the QT.mdl to correct blatant errors. He's looked closely at Essential OCL and expressed appreciation for Christian Damus' help with resolving OCL issues.

We didn't have all that much time for discussion before I had to make concluding remarks.

There was some talk about needing some type of pathmap mechanism in EMF, which frustrated me a lot because pathmaps in UML are implemented by EMF's URI mapping support so the building blocks people need to do what they want to do already exist. (And please don't complain about documentation, just help write some after I help answer your questions!) As part of closing, I expressed my view that the OMG needs to be more focused on helping developers realize their specifications in concrete implementations. This will make their work more relevant.

We developers want to be implementing well-defined specifications that will support interchange and make it easier for our work to be adopted. I was a little frustrated that we really spent most of our time talking about issues that I recorded like a secretary without sufficient time for interesting discussions. I feel like we resolved very little, though it was an interesting meeting and we do have a lot better understanding of the issues as a result of the session.

I showed up late for the closing panel and as I sat down, Mike interrupted the proceedings to announce that "Ed Merks has entered the room." Jeesh, can't a guy sneak in late! I think they were into predictions for the future of the community at the time, and when they got to Rich, he predicted that by 2010, "Ed Merks will have posted his millionth newsgroup posting" and ironically I was doing a compulsive newsgroup check at the time. I multi-task a lot; no newsgroup question went unanswered during EclipseCon.

The final closing statistic for the closing panel, as you can see below was that I posted 54 photos (not counting this blog of course).

I hope some people have lived vicariously through the various blogs this week to get a sense of the excitement and atmosphere at EclipseCon. It's truly must-not-miss event that gets better every year. It might sound sappy, but it really is like a big family reunion in so many ways.

I tried to get Lynn to beat up Wassim, but I think his hulking size intimidated her so she put on a sweet face.

My flight left an hour late due to the "technical problems" that so frequently plague all our travels. But it gave me time to upload all the photos into the blog, while chatting with Pascal, so I could spend my flight fixing up all the wording in this posting to turn it into a literary work of art. I'm about to land in Vancouver to visit my mom, dad, brother, and sister for the long weekend. I'm flying back to Toronto on Monday.

I hope everyone else had as much fun as I did, I hope everyone has a safe flight home, I hope I will see you all again next year, and, if you didn't come this year, I hope to see you for the first time year, or at Eclipse Summit Europe, another great event which I now look forward to.

I want to thank all the people in the community for letting me feel like a top ambassador and all the commiters for letting me represent them at the board. It is and honor and a pleasure.


Tom said...

Ed, I feel sad that we hadn't have time to have a beer and a chat together but the E4 stuff took all my time. CU in Europse hopefully.

Kim Moir said...

Ed, thanks for all detailed blog postings and entertaining pictures. As one of the people minding the fort at home, I really appreciated it.

Anonymous said...

Ed - thanks for a great summary of the Eclispe/OMG workshop. Sorry I couldn't be there, but I'm looking forward to part 2 of the workshop in Ottaawa in June:

Andrew Watson
Techncial Director

Michael said...

Ed, I'm proud of being one of the less than 4 people to read your blog.

Virgil said...

Ed, I'm reading your blog as well... so there are at least 5 of us... which puts this blog above average. :)

The Beast said...

I guess that I make 6. :-)

Anonymous said...

Thats 7 now.