Wednesday, December 3, 2008

On EclipseCon Idol...

The submission deadline for EclipseCon 2009 has come and gone, and now the program committee has the unpleasant duty of selecting from among the many excellent submissions. But, like all good reality shows, you, the "viewer", get to provide input on what you think should be selected. Don't let your favorite submissions "get sent home"! Providing feedback will not only make the program committee's job easier, but will help ensure that the talks YOU want to see make it onto the program.

I've submitted several proposals this year (see below), and I'd like your feedback. Please follow the link to the EclipseCon submission system to post any comments you may have.


Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web. However, it is possible to design any enterprise software system in accordance with the REST architectural style without using the HTTP protocol and without interacting with the World Wide Web. Systems that follow the principles of REST often referred to as RESTful. Proponents of REST argue that the Web enjoyed the scalability and growth that it has had as a direct result of a few key design principles. Among these principles are the notions that application state and functionality are divided into resources and that every resource is uniquely addressable using a universal syntax for use in hypermedia links. Another key principle of REST is that all resources share a uniform interface for the transfer of state between client and resource, consisting of a constrained set of content types and a constrained set of well-defined operations.

The Eclipse Modeling Framework (EMF) provides a Java runtime framework and tools for generative application development and fine-grained data integration based on simple models. Models can be specified directly using EMF's metamodel, Ecore, or imported from other forms, including UML and XML Schema. Given a model specification, EMF can generate a corresponding set of Java interfaces and implementation classes that can easily be mixed with hand-written code for maximum flexibility. When deployed, applications developed with EMF benefit from a powerful and extensible runtime, which, among other features, includes a persistence mechanism which has always supported the principles of REST – perhaps even before the term "REST" became popular.

This tutorial will provide an introduction to EMF, including alternatives for specifying a model, EMF's code generation tools, and key runtime framework concepts. As a practical usage of this knowledge, the presenters will show how EMF can be used to build RESTful applications, exploring some best practices for working with resources and other features of the framework.


The Model Development Tools (MDT) project focuses on big "M" modeling within the Modeling project; its purpose is twofold: 1) to provide an implementation of industry standard metamodels and 2) to provide exemplary tools for developing models based on those metamodels. Since its launch in September of 2006, MDT has undergone two major releases and is now working towards its third release as part of the 2009 Galileo Simultaneous Release. This short talk will provide an overview of the new features and components/projects in MDT and give an update on the status of its Galileo release.


In order to enable the much needed agility demanded by today’s marketplace, business functions and associated processes must be supported by semantically accurate and reusable information, i.e. data and its associated metadata. A data model is an abstract model that describes how data is represented and accessed. Data modeling is the process of creating a data model instance by applying a data model theory, typically to solve some business enterprise requirement.

Data model instances can be categorized into various levels or perspectives, including contextual data models which identify entity classes, conceptual data models which define the meaning of things in the organization, logical data models which describe the logical representation of properties without regard to particular data manipulation technology, physical data models which describe the physical means by which data are stored, data definitions which represent the coding language of the schema on the specific development platform, and data instantiations which hold the values of the properties applied to the data in a schema.In this short talk, we’ll take a look at examples of each of these kinds of data models and explore how they are supported by projects/components at Eclipse.


There is a long standing rift between software modelers and data modelers. You say class, I say entity; you say property, I say attribute; you say association, I say relationship; etc.. This long talk will take a candid look at the differences (and similarities) between UML and E/R modeling, and offer insight into what is being, or could be, done at Eclipse and elsewhere to reconcile the two. You might be surprised to learn that the divide between software modelers and data modelers isn't as great as you thought.


Last year, two symposia were held jointly by Eclipse and the OMG to focus on the synergies between open source and open specifications and to discuss how the joint future of Eclipse and the OMG can be shaped. By all accounts, both were quite successful. So, now what? Well, a lot of really useful feedback was shared, but not much has changed since then. The bottom line is that the status quo will no longer suffice. Design by committee and vendor politics won't get anyone anywhere. Neither will closedness and opaqueness. This long talk will review the feedback from the first two symposia and will compare and contrast the Eclipse and OMG ecosystems to identify concrete measures that can be taken to improve the state of affairs.

Tuesday, December 2, 2008

On Rage...

No, I'm not talking about anger (although, not unlike Ian, I do sometimes feel the need to rant)... I'm talking about CodeRage III, CodeGear's annual virtual developer conference (hosted by Embarcadero Technolgies). It's happening right now. All week. And it's free. Details can be found on the session schedule page. Which sessions have you attended? Which ones do you plan to attend? Did I mention that it's free? ;)

In case you're interested, Ed Merks and I will be delivering Eclipse-related sessions at CodeRage III on Wednesday. My session, entitled "Towards Data Model Interchange and Traceability", is from 5:45 pm to 6:45 pm PST. I know, it's late for those of us on the East coast... but hey, this is a global conference! Ed will be giving his infamous stupid modeling talk ("The Unbearable Stupidity of Modeling") right after mine, from 7:00 pm to 8:00 pm PST. Hope to "see" you there! Rage on!

Monday, December 1, 2008

On December 3...

It's been especially difficult for me to keep my head above water these days. So much is going on, at times it's hard to decide what to focus on and when. Eclipse Summit Europe was already two weeks ago now, the Ottawa DemoCamp was last Thursday, submissions for EclipseCon 2009 were due on Friday, CodeRage III is this week, and there's an OMG Technical Meeting next week. I'll try to blog about each of these if/when I find a spare moment...

And that's just conferences. In terms of my "day job", this is a big week for modeling and design solutions at Embarcadero. Three of my products, ER/Studio, ER/Studio Enterprise Portal, and EA/Studio are all releasing new versions on Wednesday. I've blogged before about how lucky I am to be part of such a great team, but this time around the challenges we persevered were so numerous it was almost laughable. My partner in crime, Jason Tiret, will be hosting a webinar on Wednesday to talk about what's new in database modeling at Embarcadero. You ought to check it out!

Sunday, November 16, 2008

On Ludwigsburg...

Wow, it's hard to believe that the last time I blogged was nearly two weeks ago. Where has the time gone? Seeing as I wrote my last blog entry from my hotel room in Reston, Virginia on the eve of EclipseWorld 2008, is seems rather fitting that I write this, my next blog entry, from my hotel room in Ludwigsburg, Germany, on the eve of Eclipse Summit Europe 2008. As a colleague of mine, who shall remain nameless, might say, "I'm so filled with joy for Eclipse Summit Europe that I cannot contain it!".

Like Ed, it looks as though I may need to clone myself in order to participate in everything I want to here at ESE. I haven't decided yet which talks I'll attend, but I suppose I had better do that soon, before things get really busy. At this point I know I'll be participating in the Eclipse Members' meeting tomorrow (Monday) and the Modeling Symposium on Tuesday.

On Wednesday, I'll be delivering two short talks. The first, entitled "Data Models at Eclipse", will provide an overview of the different kinds, or levels, of data models and explore how they are supported by projects/components at Eclipse. The second, "What's New in MDT?", will provide an overview of the Model Development Tools project and, in particular, some of its noteworthy recent additions. If you're going to be at the Summit, I hope to see you there. Of course, if you can't be there for whatever reason, you can always view the slides from the submission page(s)...

Monday, October 27, 2008

On Separation Anxiety...

You gotta keep 'em separated. Or so says conventional wisdom (and the song). One of the homework items for this week's UML Roadmap working group meeting was to propose a solution to the 'separation of concerns' problem in UML. I would argue that this, like many other problems with UML, is actually a symptom of more fundamental issues with the way specifications are defined/developed at the OMG, and that we ought to address these issues before it’s too late (if it isn’t already).

The bottom line is that the status quo will no longer suffice. Design by committee and vendor politics won't get us anywhere. Neither will closedness and opaqueness. In his webinar on ecosystem development the week before last, Mike suggested that ecosystems could be evaluated on the basis of five key concepts (see below). In order for the ecosystem of specifications (languages) that exists at the OMG to survive, I'd say its health in these areas needs to be measured and improved.

Co-evolved innovation. There's certainly a lot of innovation happening at the OMG, and by a lot of players. But sometimes I wonder how relevant the innovation is (in the absence of reference implementations) and how coordinated the activities are (sometimes chairing a task force seems a lot more like cat-herding than coordinated evolution).

Alignment of Vision. The OMG has a vision - MDA (Model Driven Architecture). But how aligned are the various OMG specifications with this vision? How long will the industry wait for it to be realized?

Degree of openness. The OMG is an open organization, in the sense that its reason for being is to produce open specifications. But its processes are less open than other organizations like Eclipse, and that has garnered it some negative press. To borrow from Bjorn's analogy, I think the OMG would benefit from being an openness bear that's "just right".

Degree of modularity. I think this is at the heart of the 'separation of concerns' problem. Languages like UML and its relatives are in fact designed to be modular - they're structured as sets of packages, or "capabilities" and then merged into various compliance levels... but something went wrong along the way, because subsets of these languages aren't as reusable as they were originally intended to be.

A network of niches. A set of vertices without edges is not a graph - it's just a set of vertices. I think many of the niches (UML, BPMN, IMM) are falling into place at the OMG; now, we just need to connect the dots.

Mike also talked about the importance of an open, extensible platform as the basis for a successful ecosystem. I think that's what's missing in the OMG ecosystem. Yes, it has MOF, but that's not a platform on its own; MOF is to the OMG as OSGi is to Eclipse. The OMG needs a platform (a working version of what the InfrastructureLibrary in UML was intended to be) upon which MOF-based languages can be built.

So, here's what I think should be done to solve the 'separation of concerns' problem in UML. Direct the renewed interest and energy in "fixing" UML toward defining a platform of shared concepts upon which UML (and other specifications like BPMN and IMM) can be based. Implement (yes, implement!) a proof a concept that demonstrates the benefits of refactoring UML based on this platform using mechanisms from the emerging Diagram Definition and Semantic MOF specifications, and extrapolate to infer how the same benefits could be reaped by other specifications like BPMN and IMM. Then, and only then, submit responses to the RFPs for Diagram Definition, Semantic MOF (MOF 3.0?), and UML 3.0.

Some say that making changes like this will only serve to disrupt the industry, to scare away the vendors and users once and for all ("they waited forever for UML 2.0; if we propose UML 3.0, we'll lose them for good!"). That's just FUD, if you ask me and, well, desparate times call for desparate measures. The way to avoid this disruption is to make the changes in a more open and transparent way than before, for example, in a project at Eclipse. Of course, we'd try to maintain backward compatibility if at all possible or, at the very least, provide an explicit migration path for existing tools. But let the (proven) technology speak for itself. If we build it, they will come. The time is now.

Friday, October 24, 2008

On Where I'll Be Next Week...

EclipseWorld 2008, of course! It's shaping up to be a great conference, and three of my colleagues and I have the distinct honor of being on the "expert faculty". We'll be delivering technical classes on a variety of topics important to application developers and database professionals. Our presentations will explore concepts such as software archeology, delve into architectural styles such as REST, and provide how-to guidance for database development, data modeling, and application factories in Java.

Scott Walz, senior director of product management, will deliver a class entitled "Classic Database Development Mistakes Made by Java Developers — and Five Ways to Overcome Them" on Wednesday at 3:15 pm. In this session, Scott will outline the five most common databas development mistakes made by Java developers and offer specific direction on how to overcome them.

Ravi Kumar, principal architect, will deliver a class entitled "How to Implement Application Factories in Java" on Thursday at 8:45 am. In this session, Ravi will utilize real-world examples to demonstrate how to build an end-to-end Web application with core capabilities, from database table all the way to presentation.

Michael Rozlog, JBuilder evangelist and co-author of “Mastering JBuilder", will deliver a class entitled "I’ve Just Inherited 1,000,000 Lines of Java Code — NOW WHAT?" on Thursday at 10:30 am. In this session, Michael will help developers understand the concepts behind software archeology and the tools used to support it, as well as explain how to apply the techniques of static and dynamic analysis in the real world. This session has been selected as one of the nine hottest classes at EclipseWorld.

I will be delivering a class entitled "Data Models for Java Applications" on Thursday at 8:45 am and another entitled "RESTful EMF" at 10:30 am. In the first session, I'll be reviewing the various types of data models and exploring how they are supported by projects at Eclipse. In the second session, I'll be providing an overview of Representational State Transfer (REST) and discussing how Java programs can be developed in accordance with the REST architecture style using the Eclipse Modeling Framework (EMF).

In addition to the two technical classes on Thursday, I'll also be doing a Model Development Tools (MDT) project demo between 8:45 and 9:00 pm at the Eclipse Foundation party on Wednesday. I'll be giving a sneak preview of some of the technology soon to be contributed to Eclipse as part of the newly created Papyrus component and will also offer insights into more new subprojects on the horizon.

Where will you be next week? If your answer is the same as mine, I hope to see you there!

Friday, October 17, 2008

On Beginnings and Ends...

So far, it seems that Microsoft's participation at the OMG is more like the end of the beginning than the beginning of the end. Pariticipants in the UML Roadmap working group met on Tuesday to discuss everybody's top three problems/concerns with UML, and there seems to be a concensus that most of the issues fall under a general theme of separation of concerns. More homework has been issued for the next call (to take place in two weeks); this time, the  assignment is to provide feedback on a proposal to develop an integration architecture that would support a family of related languages (wasn't that what MDA was supposed to be?) and to make alternative proposals for addressing the "Separation of Concerns" problem in UML. Any ideas?

Speaking of beginnings and ends, there have been some bitter-sweet changes in the MDT project recently. Termination reviews for the EODM and OCL Tools components were "successful" as of last Wednesday (since nobody from the community requested a formal review), and so both have been archived. The OCL Tools component was actually never completely provisioned, so all that remains of it is a page in Eclipsepedia. EODM, on the other hand, was a more or less functional component for several years, but unfortunately it no longer had a community of developers to maintain it (despite a small but interested user community). The Eclipsepedia page for EODM also remains, and its newsgroup and mailing list have been archived, as have its downloads. Luckily, a proposal for a new ODM implementation at Eclipse is in the works; stay tuned for details.

On a positive note, there have been a couple of new beginnings in MDT. The Papyrus component has now been successfully created, and provisioning is nearly complete. The initial project team (one of the largest and most diverse that I've seen at Eclipse) has plans to provide a code contribution sometime in November; for more details, see the newsgroup or mailing list. Also, the proposal for a new Metamodel Specification Tools (MST) subproject in MDT has finally been declared. If you're interested, please join in the newgroup discussion or drop me a line!