3 ms·
If you're looking for a gentle and free introduction to COM and a few other component and object models, you could do worse than my thesis from 2009 (licensed u
by davidpolberger 7y ago
If you're looking for a gentle and free introduction to COM and a few other component and object models, you could do worse than my thesis from 2009 (licensed under a Creative Commons license):
http://www.polberger.se/components/read/ http://www.polberger.se/components/read/
When Ericsson's cell phone business split into Ericsson Mobile Platforms (EMP) and Sony Ericsson (SEMC) back in 2001, they created an object model named Ericsson Component Model (ECM/OPA), which was heavily inspired by COM. The intent was to create an API separating the lower-level Ericsson software from the user-facing software developed by Sony Ericsson.
Sony Ericsson then expanded upon ECM, calling it ECM Extended (or ECMX, though the technology was universally known as "IDL" internally). ECMX was supposed to enable their aging software stack to be modularized by providing an object model for code written in C.
For the future, though, they wanted to switch to writing application code in Java. Back in these feature phone days, Java games were written to Sun Microsystems's MIDlet specification. Sony Ericsson expanded upon that specification and created the SEMClet specification for their internally-developed applications. By writing software in Java and not C, Sony Ericsson not only wanted to use a modern, garbage-collected language, they also wanted to break free of their monolith. All native code was linked together statically as this monolith, and this process could take hours. MIDlets and by extension SEMClets could be installed dynamically, significantly streamlining development.
ECMX was the technology used to enable SEMClets to communicate with native code. If you're familiar with Mozilla and XPCOM, this may all sound very familiar -- and you'd be right.
All this was back in 2005, when I did my thesis work as part of Sony Ericsson's software architecture group. As part of that work, I had to figure out what COM was, what it really meant for COM to be a binary standard (and how that differed from the approach taken by CORBA) and how all that fit together with the Java component model OSGi, .NET assemblies and ECM/ECMX. I felt that I had to have a handle on all that history in order to write my thesis.
None of this is very fashionable today, but I still think that there's a lot we can learn from this era.