Download my Presentation
The OSGi Alliance accepted my proposal to talk about this very topic on the OSGi Community Event in Berlin. Please find my slide deck HERE.
This topic is worth a full day but I had to squeeze it into a 40 minutes talk. Now I get even braver and try to sum it up in a couple of paragraphs only. Let’s start with how Mobile is positioned in comparison with the many other technologies in the field. In my opinion, Mobile OSGi has characteristics of all of these platform elements:
- Operation System: OSGi comes with a number of infrastructural features that are usually associated to the OS level. Example: the EventAmin (API to subscribe to or publish events) or the PermissionAdmin (API to dynamically specify security policies).
Other technologies on this level: Symbian (S60, UIQ, FOMA), Linux (LiMo, LiPs, Qtopia, Access), Win Mobile, RIM, Apple iPhone, Google Android, etc.
- Application Execution Environment: On top of OSGi you can run a variety of different application types like MIDlets, eRCP applications, Web Widgets, Xlets, etc. Application model support can be plugged in even after the phone has shipped.
Other technologies on this level: MIDP 2, Qualcom Brew, Eclipse eRCP, Adobe FlashLite, Nokia Web Runtime, Yahoo Go!, Plain old Browser Model, Coming: MIDP 3, Sun JavaFX, Android, iPhone Apps, etc.
- Remote Access: Due to OSGi’s component based architecture and it’s service concept, remote manageability comes out of the box. The entire runtime is represented in an OMA-DM compliant management tree and enables almost all use cases required for mobile device management.
Other technologies on this level: OMA-CP, OMA-DM, SCOMO, FUMO, OMA-DS / Sync-ML, WAP-Push, etc.
- Application: OSGi itself is much more of a container and not an application by itself. However, in some cases it might have a bit like an „application“ flavour since it could be (but should not be) installed as an application into the native OS (the way better approach is to integrate it with the OS, though).
Now, if OSGi is all that does that mean it competes against all these other technologies? NO, IT DOES NOT. OSGi is a complementary and not competitive technology.
What it does, though, is to abstract some of the other elements and thus creates an almost unique value proposition: it can run on almost all platforms which are out there (and capable of hosting a CDC like VM) while providing a homogeneous execution environment for a multitude of apps.
The other key features of Mobile OSGi I want to highlight:
- Component & Service model – ready for middleware
In OSGi you structure your apps in components and you share information (or APIs) between components by means of services (or package level sharing). It’s like a SOA infrastructure in the VM. Main benefit: the system encourage the use of middleware. Write you headless middleware as services and have them be used by all your mobile apps. Or use 3rd party middleware instead and focus on your domain specific application aspects.
- Security model, dynamic policy model
OSGi contains a dynamic policy infrastructure allowing trusted code to adopt the device policy. By means of this concept, carriers can create tailored device policies for enterprises customer to whom the standard policy does not fit.
- Remote manageability out of the box
Mobile Device Management is inherently integrated into OSGi. Plus, the remote management capabilities can easily be extended by plugging your custom functionality into the device management tree.
Obviously, I am a bit biased about Mobile OSGi (hey, it’s my bread and butter) and I have to admit that even Mobile OSGi does not solve all your problems (don’t ask me about Java UIs…). Nonetheless, what other contemporary technology provides a larger set features that are available cross-platform?