Eclipse Summit Europe 2008, Part 2
Posted by Mike Haller
on Thursday, November 20. 2008
at 21:18
in Eclipse
Eclipse Summit Europe 2008, Part 2The day (Thursday, 20.11.2008) began with the keynote of David Wood from Symbian. He talked about why mobile software must go open source and how they're going to approach it or already doing it. Some time in the future, they're going to move on to the SFL and EPL licenses with their 40 million lines of code. He sees the claims of the open source community to be for example "faster time to market", "more eyeballs looking on the code" and lower barriers of collaboration. They seem to focus on the lower barriers. He gave a short overview of some licensing models, including weak and strong copyleft. Interesting was the part about the "Six laws of fragmentation", where one solution is clear leadership for the coding together with a powerful platform, which is therefore unlikely to be forked. As forks would be fragmentation. He sees Java as one sort of "intermediate layer" to hide OS diversity from an application.
The title of the next talk was very provocative and I fell for it. Yes, Ed Merks got me on this one: The Unbearable Stupidity of Modeling. Of course, what's stupid is fashion modeling, the girls walking around in clothes. Still, software modeling is a great thing and he reminded us of why so many people are ranting against modelling because of complex tools, a flat learning curve (it takes too long to learn) and so on. for all these arguments he found nice answers to show the real problem. For example the use of "metameta" terminology: people who dislike it should just not use it. Metametaing doesn't seem to be a concept for people to feel comfortable about it. Thereas the term "model of a model" seems to be more friendly, although it's still the same. His slides showed how beautiful eCore is and why it's really a bad idea to code stuff which a monkey can do, for example coding getters/setters manually. Of course, this is just the starting point. A generated model or a reflective model brings so much advantages over doing it manually that it seems to be plain stupid to not do it. One of the things I was surprised is that EMFcode is actually faster than hand-written code (at least, most of the hand-written code i've seen so far). He even showed an example where EMF is faster than plain code in finding an object in a collection. The plain Java version was O(n) and the EMF one was O(1), as EMF can use the parent/child relations to check for parent relations, whereas in the plain code you would have to iterate through the whole list of children to find whether the object to be found is contained in the list. I think Ed agreed to the statement that XMI sucks. He said it sucks transitively because XML sucks. He ended his talk with a statement where he suggested to offshore not the developers but the managers, so the developers here can work uninterrupted. That got some laughter.
As the talks usually don't have real breaks in between, I came late to the one about "Integration for Apache Maven", which is a similar tool like m2eclipse. It integrates Maven into Eclipse and was called Q4E before they moved under the Eclipse umbrella. There's going to be a release with Galileo in June 2009 and they've some nice features - even the "deploy" goal is supported.
A more interesting talk was about the Open Financial Market Platform project. Lead by the companies WeigleWilczek and Covariance, they talked about how they moved from their old synchronous JEE/EJB/RMI architecture to a modern one with OSGI, Spring, true hotdeployment and asynchronous communication. I was really excited about some of the business stuff in the application. For example they support foreign exchange with spots, forwards and swaps and so on. I heard these phrases for some time as my collegue Kai was working on a FX application as well (i really had to laugh when I saw some example XML which had elements like 'BuySellIndicator' in it). The OFMP project has input adapters for various financial data providers like EBS, Bloomberg, Reuters and Sungard. On the other hand, they seem to have or plan output gateways for credit risk management platforms. Interestingly, they're currently using Apache iBatis SqlMaps and want to move on to EclipseLink for the persistence layer. Some random notes I took while the presentation: Eclipse RCP and data binding, AspectJ and BIRT, STP workflow with JMS, Eclipse API Tooling is handy, RCML (Rich Client Markup Language), Riena as replacement for Spring, Reuters protocol is proprietary and needs to be reverse-engineered, New contribution to OFMP will include credit risk topic, FPML data structures, async comm using Apache Camel.
Somehow overcrowded was the talk by Thomas Schindl from bestsolution about Eclipse RCP+EMF+Databinding. He shows EMFObservables, ObserveDelayed, IContextService, IFocusService and also reached out all the way down to persistence with CDO. He even discussed and showed how to do security on the client side to disable commands and handlers based on expressions and datasource providers. He had two handy tips for RCP developers: first, don't use FocusOut event for databinding. It's awful to hammer out too many events but what's more a concern is that some other platforms like MacOS don't loose focus in a text field when a button is pushed. So, you could end up with a user clicking a Save button although the text field he has changed was not yet synchronized due to the lack of a FocusOut event. Secondly, he always uses a new keyboard binding configuration and not the Eclipse default one for RCP applications. Of course, these were not the only tips, but they are the only ones I wrote down. Hard to write stuff down if you don't get a seat in such a well-visited talk.
Swordfish brings the SOA runtime world to Eclipse. Oliver from Sopera held a talk about the Eclipse Swordfish project, which is a runtime container for services. They got policies, service registry, message interceptors and a bunch of standards like SCA, JBIand OSGI and they use Apache ServiceMix 4 under the hood. They don't provide any tooling support, as this is the job of other projects. They support rerouting using interceptors/bundles and policy-driven message processing. Release 1.0 is planned for December 2008 and they want to be in Galileo in June 2009.
Did you ever get OutOfMemoryErrors in your applications? (Yes, it's a rhetorical question, i'm sure you did) The Eclipse Memory Analyzer Tool comes to the rescue. It's such a great tool and the two speakers did a nice job of showing how amazing it is to work with in very limited time. Andrew Johnson (IBM) and Elena Nayashkova (SAP) showed how they can make use the IBM JVM heap dumps (other format than Sun's hprof and must be converted prior to importing it to MAT). Elena told us about the history of MAT and they needed a tool to analyze large multi-gigabyte heapdumps and be able to reopen them fast. That's the reason for all the indices which are created when a dump is opened for the first time. So MAT supports large heap dumps with millions of objects and is able to quickly traverse and query the information in there. The "Leak Hunter" feature is the first step when analyzing heap dumps and the "Leak Suspects" immediately show the most probable part of the application which leaks memory. The Top Components Report can be exported to HTML. At the point where they showed that 5 Million ArrayLists - which are empty! - take up 760MB of memory, i was really surprised. Another neat feature seems to be the duplicate finder. It shows all the object instances which have equal content, but take up memory multiple times. This is not only true for Strings. There's a lot in MAT to experiment with. Currently in beta is the support for Eclipse/OSGI Bundles. They wanted to give back something to the Eclipse Community and looked around for what they could implement in MAT to help plugin developers. So they came up with a "Bundle Explorer". I suggested to the developers to try to calculate the retained size per bundle and also show it in the Bundle Explorer. Will have to try that out some time later.
The last talk was about Eclipse Artus (eMercury), a design tool for components used in the automotive industry. The domain problem was to design components which consist of thousands of C sources and header files. In 2004, they started with plain RCP and GEF. Now, in 2008, they're going to use GMF. For the problem domain they knocked out component models like CORBA, OSGI and AADL. It's yet unclear to me why they have "special" needs, but they said they do and thus they need their own component model. They ended up with something called "BlueArX". There, they add XML markup to decscribe interfaces and metadata (import/export, dependencies). They can visualize components, dependencies, imports and exports. They've got a Signal Flow diagram viewer. The talk was held by Christof Hammel from Robert Bosch and Markus Kopf from itemis.
Whew, that's it. A lot of talks, a lot of information and I really need some time to dig into all the stuff I've seen. Some guys out of the talks had intersting pointers to technology I want to evaluate, which includes an object database and some AJAX tooling.
On the way home, my TomTom GPS navigation system was kind of confused and replayed the Welcome-Screen-Movie every minute or so. Heck, I was so pissed that I called the hotline right away. "Seems to be a software bug, please update your firmware" was the answer I got after spending half an hour in the waiting queue of the call center and still having to go 150 kilometers with that really annoying situation. (yeah, i know i could have switched it off, but i'm really a very bad navigator. don't trust myself to find my parked car
