Apple has recently announced the iPhone OS 3.0 Software. As for any of their public statements, once again Apple is extremely proud of its own achievements. The new OS version is said to come with 100 new features and an incredible set of 1,000 new APIs. Indeed, version 3.0 seems to mark a major milestone in the iPhone evolution and I am sure they really did a great job.
What’s the connect to OSGi, though? The iPhone 3G device was launched in June 2008. The new OS 3.0 is expected to be launched around mid 2009 - that's 1 year period at least. Apple claims that ...With the new SDK, members of the iPhone Developer Program can build applications that do even more... I'm sure they are not exaggerating on this. However, why would developers had to wait 1 full year (!) to get more APIs? Why to have them wait 12 long month to leverage more of the extremely capable and beautiful platform that they had right from the beginning? That's one year of delayed innovation, one year of untapped opportunities, one year of competitors to catch up, isn't it? You think a year is not that long? I claim it is! Recap what has happened meanwhile: Android phones entered the market, Palm Pre has been announced (and if speculations are right will also hit the US market before iPhone OS 3.0 is out), Nokia has launched its touch OS (S60 5.0), etc. etc.
Mobile OSGi is setting out to solve the *API innovation cycle problem*. In OSGi, new APIs can be loaded at any time, by anyone (who has the right permissions). Developers don't need to wait for X years for the manufacturer to complete the next static image version - they just pull the APIs they need and deploy them along with the apps. Internet firms can wrap their services into APIs and have them be used by 3rd party developers to create the next gen mobile apps for them. New business models (like the one Apple is to ship with 3.0: in-app sales) can emerge way quicker than before etc. etc. For sure, there's always more creative brain power outside the manufacturers engineering team, why not leverage that, why not to unfold the true creativity of the worlds developer community?
It’s sad enough that the phone hardware platform got to have a static lifecycle. But the APIs don’t need to be static, really!
Thursday, April 2, 2009
Thursday, March 26, 2009
Mobile OSGi on Android
Soon after Android was launched most of the OSGi framework developers got ambitious to port their implementations onto this platform. The world now has a number of "hey, see, OSGi runs on Android - isn't that cool?" type of demos. In my opinion noone really needs a plain OSGi framework on Android, the value add is very low.
Little thought has been spent on what OSGi on Android is actually good for, what's the value add that OSGi brings to the platform. We have spent quite some time to analyse the platform and came to the conclusion that it is not a pure OSGi port but a proper OSGi integration that enables value adding use cases. I have summarized a couple of our thoughts, find them here:
To recap the highlights of what OSGi can do for you on Android:
Here're some screenshots on how the Widget support looks like. Widgets can be plain Opera Widgets (they comply to the w3c widget spec) or what we call RMA Widgets which are widgets that use OSGi as a local web server to access device functionality.
We'll continue to work out the value proposition so as an implementation that does all that.
Comments?
Little thought has been spent on what OSGi on Android is actually good for, what's the value add that OSGi brings to the platform. We have spent quite some time to analyse the platform and came to the conclusion that it is not a pure OSGi port but a proper OSGi integration that enables value adding use cases. I have summarized a couple of our thoughts, find them here:
OSGi on Android - Value Proposition
View more presentations from j.ritter.
To recap the highlights of what OSGi can do for you on Android:
- Support for Widgets (local web applications)
- Support for enabling web apps to access phone features and custom services implemented in OSGi
- Support for OSGi Bundles and Deployment Packages
- Support for OSGi Applications that use the Android UI (coming soon)
- Support for Remote Management (push/pull deployment of Android apps and OSGi content; remote configuration; remote monitoring and logging; etc.)
- Support for eventing between OSGi and Android
Here're some screenshots on how the Widget support looks like. Widgets can be plain Opera Widgets (they comply to the w3c widget spec) or what we call RMA Widgets which are widgets that use OSGi as a local web server to access device functionality.

We'll continue to work out the value proposition so as an implementation that does all that.
Comments?
Friday, February 20, 2009
EclipseCon 2009

I'm extremely pleased to have been given the chance to talk about Mobile OSGi on this years EclipseCon in Santa Clara. Find the abtract here. Hope many of you will join the talk. Let us catch up!
Monday, December 29, 2008
Sprint Titan 1.0 released - Mobile OSGi goes Mainstream
Sprint has released the 1.0 version of Sprint Titan™ - a first class Mobile OSGi implementation for Windows Mobile 6.x Standard and Professional devices. Officially the following devices are supported, however, the stack essentially runs on any Win Mobile phone:
Official support for a selection of Windows Mobile Standard (these are typically the ones with the mini Querty keyboard and no touch screen like the Samsung ACE (i325)) is said to be announced shortly as well. Moreover, Sprint Titan is said to be integrated on Sprint’s mainstream Feature Phones.
In addition to the production stack which installs only on devices operated in the Sprint network (Sprint branded phones as well as non-Sprint branded phones provisioned by Sprint), Sprint offers 90 days trial versions of the stack which install on any Win Mobile 6 device. I have tried with a HP iPaq 614c and it works great! In my opinion, with these trial stracks Sprint offers a great service to all OSGi enthusiasts around the world who can pick up the stack and get started.
Compared to what Sprint released in December last year, the new stacks now support Location API on the CDC side, contain a bunch of bug fixes and have been performance improved. Functionality wise, there is still work to be done (full web widget and service remoting support, additional JSR support on CDC (like 135), OSGi Bundle App Model support, etc.). However, the new releases are a major improvement over the old versions and should be fun to use!
The new release package also consists of a new version of Sprint’s Eclipse IDE plugins (now Eclipse 3.4 is supported, several bug fixes were applied) as well as an 80+ page developer guide that helps developers get up speed. A set of application demos (binaries, source code and documentation) will come out shortly as well.
It’ll be very interesting to watch what the creative people around the world will start doing with this beautiful and powerful platform!
- HTC Touch
- HTC Touch Pro
- HTC Touch Diamond
- HTC Mogul
Official support for a selection of Windows Mobile Standard (these are typically the ones with the mini Querty keyboard and no touch screen like the Samsung ACE (i325)) is said to be announced shortly as well. Moreover, Sprint Titan is said to be integrated on Sprint’s mainstream Feature Phones.
In addition to the production stack which installs only on devices operated in the Sprint network (Sprint branded phones as well as non-Sprint branded phones provisioned by Sprint), Sprint offers 90 days trial versions of the stack which install on any Win Mobile 6 device. I have tried with a HP iPaq 614c and it works great! In my opinion, with these trial stracks Sprint offers a great service to all OSGi enthusiasts around the world who can pick up the stack and get started.
Compared to what Sprint released in December last year, the new stacks now support Location API on the CDC side, contain a bunch of bug fixes and have been performance improved. Functionality wise, there is still work to be done (full web widget and service remoting support, additional JSR support on CDC (like 135), OSGi Bundle App Model support, etc.). However, the new releases are a major improvement over the old versions and should be fun to use!
The new release package also consists of a new version of Sprint’s Eclipse IDE plugins (now Eclipse 3.4 is supported, several bug fixes were applied) as well as an 80+ page developer guide that helps developers get up speed. A set of application demos (binaries, source code and documentation) will come out shortly as well.
It’ll be very interesting to watch what the creative people around the world will start doing with this beautiful and powerful platform!
Wednesday, October 1, 2008
Why Mobile OSGi reduces bad fragmentation
One of Mobile OSGi’s claims is to reduce the platform fragmentation problem the market increasingly suffers under. Why is that so?
In my opinion, there are two types of fragmentation, "good" fragmentation and "bad" fragmentation. It is natural and desirable that a market with 2 billion subscribers develops a large blend of different needs and preferences. The mobile market must and will continue to serve demand for a diverse range of mobile devices and application. This is "good" fragmentation, the market needs that. Btw, that very reason provides a serious challenge to open platform initiative like LiMo, Android or SymbianFoundation. On the one hand, they attempt to standardize a platform which essentially means to define a common set of functionality which is supposed to be equal on any device. On the other hand they must leave enough room for differentiation and diversification. Finding the right balance is not trivial.
Anyway, “bad” fragmentation is what app developers suffers under every day. The market is faced by heavy fragmentation resulting from
- variety of operating systems (Symbian, various Linux, Android, iPhone, WinMobile,..)
- variety of application execution environments (Java, native, WebApps, Flash,…)
- variety of form factors
Multiply the number of OSes by app execution environments by form factors by number of available versions of all of these components and you’ll understand we’re in hell! If you need wide platform support for your apps, you end up developing them multiple times for the various operating systems and/or execution environments.The form factor and hardware dependent aspect of the fragmentation problem cannot be removed (i.e. different screen sizes, different hardware support options like GPS, NFC, etc.). However, there is lots of room for improvement when it comes to the API layers applications make use of. Certainly, the market does NOT need 15 different mobile Linux platforms with incompatible application APIs. Incompatibilities in Java APIs, i.e. resulting from different implementations or spec misinterpretations, obviously make life harder than it should be. Neither will it be particularly helpful for app developers that very soon there'll be dozens of different Widget runtimes out there...
So, how does Mobile OSGi fit in? In my opinion, Mobile OSGi adds a layer exactly at the right spot: above the OS and around the execution environment. In other words, it encapsulates the many different operating system APIs and thus reduces fragmentation. However, it does not constrain the need for differentiation because it does not urge developers to use one particular app model nor a specific UI. Mobile OSGi adds an incredibly powerful & OS agnostic cross-platform execution runtime for your app's business logic, data and network layers. Mobile Enterprise applications, which typically have lots of code under the hoods of the UI, benefit in particular from OSGi's state-of-the-art component and service architecture (which btw has proved to work incredibly well in many other verticals and I'm convinced it'll conquer market share in mobile as well). Why else would companies like IBM or Sprint build their entire enterprise product portfolio upon Mobile OSGi?
Mobile OSGi can run on any platform that supports CDC Java. I am aware of ports for Nokia S60, Win Mobile, Linux, Android and Brew and more are certainly to come.
To keep a long story short: Mobile OSGi certainly reduces “bad” fragmentation but not at the cost of constraining “good” fragmentation. I am not aware of any other technology on the market that has a similar cross-platform proposition. Are you?
In my opinion, there are two types of fragmentation, "good" fragmentation and "bad" fragmentation. It is natural and desirable that a market with 2 billion subscribers develops a large blend of different needs and preferences. The mobile market must and will continue to serve demand for a diverse range of mobile devices and application. This is "good" fragmentation, the market needs that. Btw, that very reason provides a serious challenge to open platform initiative like LiMo, Android or SymbianFoundation. On the one hand, they attempt to standardize a platform which essentially means to define a common set of functionality which is supposed to be equal on any device. On the other hand they must leave enough room for differentiation and diversification. Finding the right balance is not trivial.
Anyway, “bad” fragmentation is what app developers suffers under every day. The market is faced by heavy fragmentation resulting from
- variety of operating systems (Symbian, various Linux, Android, iPhone, WinMobile,..)
- variety of application execution environments (Java, native, WebApps, Flash,…)
- variety of form factors
Multiply the number of OSes by app execution environments by form factors by number of available versions of all of these components and you’ll understand we’re in hell! If you need wide platform support for your apps, you end up developing them multiple times for the various operating systems and/or execution environments.The form factor and hardware dependent aspect of the fragmentation problem cannot be removed (i.e. different screen sizes, different hardware support options like GPS, NFC, etc.). However, there is lots of room for improvement when it comes to the API layers applications make use of. Certainly, the market does NOT need 15 different mobile Linux platforms with incompatible application APIs. Incompatibilities in Java APIs, i.e. resulting from different implementations or spec misinterpretations, obviously make life harder than it should be. Neither will it be particularly helpful for app developers that very soon there'll be dozens of different Widget runtimes out there...
So, how does Mobile OSGi fit in? In my opinion, Mobile OSGi adds a layer exactly at the right spot: above the OS and around the execution environment. In other words, it encapsulates the many different operating system APIs and thus reduces fragmentation. However, it does not constrain the need for differentiation because it does not urge developers to use one particular app model nor a specific UI. Mobile OSGi adds an incredibly powerful & OS agnostic cross-platform execution runtime for your app's business logic, data and network layers. Mobile Enterprise applications, which typically have lots of code under the hoods of the UI, benefit in particular from OSGi's state-of-the-art component and service architecture (which btw has proved to work incredibly well in many other verticals and I'm convinced it'll conquer market share in mobile as well). Why else would companies like IBM or Sprint build their entire enterprise product portfolio upon Mobile OSGi?
Mobile OSGi can run on any platform that supports CDC Java. I am aware of ports for Nokia S60, Win Mobile, Linux, Android and Brew and more are certainly to come.
To keep a long story short: Mobile OSGi certainly reduces “bad” fragmentation but not at the cost of constraining “good” fragmentation. I am not aware of any other technology on the market that has a similar cross-platform proposition. Are you?
Monday, June 30, 2008
Public Resources about Mobile OSGi
Interested in Mobile OSGi? This collection of public links and resources might help you getting around the net and finding the best resources.
Mobile OSGi Stacks
If you want to start playing around with Mobile OSGi, here is were you find the stacks. There two types of stack you will come across:
For Win Mobile:
Presentations, Tutorials, Articles
General Presentations covering Mobile OSGi aspects:
Tools
Blogs
I have come across Mobile OSGi related postings in the following blogs (but obviously they all deal with other interesting topics as well):
Do you know any other good resources? Please let me know!
Jo Ritter
Mobile OSGi Stacks
If you want to start playing around with Mobile OSGi, here is were you find the stacks. There two types of stack you will come across:
- Integrated Mobile OSGi stack that includes all of the below mentioned pieces
(a) OSGi framework plus Mobile services (and in some cases eRCP), ideally it is compliant to the OSGi Mobile Specification (aka JSR 232)
(b) platform integration code (this is the part that ties OSGi nicely into the underlying OS. This integration is required for seamless user experiences during download, installation, launching of apps and also for other reasons like security etc)
(c) CDC/FP VM
These type of stacks are off-the-shelf kind of solutions due to their ready to install nature. - Java-only Mobile OSGi stack which is typically only (a) from the list above. This type of stack requires manual integration of a VM, porting on the target device, etc. Thus, I call this type has more the flavour of a SDK.
For Win Mobile:
- Download a ready to use and well integrated stack (type (1) stack coming with eval license) from Sprint Developer Site (delivered as an installable cab file). It contains a J9 CDC/FP VM, all sorts of services, eRCP and MIDP support and is highly optimized.
- A Java only type of stack with full JSR 232 compliance, called mBedded Server Mobile Extension, you can get from ProSyst
- A basic eRCP stack for WinMobile 2003, 5 and 6 you can obtain from the Eclipse eRCP Project site (Java-only type of stack, not JSR 232 compliant, not optimized for embedded use)
- A commercial product based on Mobile OSGi is the IBM Lotus Expeditor that comes with a blend of added value enterprise services
- You may also want to contact
mobileosgi#at#prosyst.comfor more information
- A well integrated & ready to use stack (type 1, including eRCP support) is available from Nokia. Write an email to
nokia.eRCP#at#nokia.com and ask for it. - You may also want to contact
mobileosgi#at#prosyst.com for more information
- The richest OSGi port (type 2) for Android is probably the one from ProSyst which you can pick up for free from here. Although it contains lot's of OSGi services, it is not fully JSR 232 compliant (yet). I also recommend to read this blog.
- The guys from Luminis created the first OSGi port for Android which is based on the Apache Felix project. Find information here.
- The Eclipse Equinox OSGi framework has been ported as well (by BJ Hargrave from IBM), not sure if that is available anywhere, though.
- The first Mobile OSGi port for the Brew platform is currently under construction, more information you can obtain from
.
- You show me and I owe you a beer! Nonetheless, investigations are going on...
Presentations, Tutorials, Articles
General Presentations covering Mobile OSGi aspects:
- Nokia's developer presentation at EclipseCon 2008
- Sprint's Titan Introduction presentation
- Sprint's developer tutorials
- Jon Bostrom's presentation on Sprint Titan and Mobile Rich Internet Applications (he named them Rich MobileNet Applications)
- My presentation about Mobile OSGi's value prop for mobile enterprise developers (from OSGi Community Event 2008)
- Various eRCP related documents
- Basic OSGi developer guides from ProSyst (refer to Getting Started menu)
- Gabor's blog about how to write eRCP apps for the Sprint Titan platform
- Jon Bostrom's article Next Mobile Java based on CDC/OSGi Technology for Universal Middleware
Tools
- Most complete Mobile OSGi toolset based on the Eclipse IDE can be obtained from Sprint. It contains all sorts of tools for developing eRCP apps, debugging, profiling, creating DPs, on-target deployment and execution, remote console, etc.
- Mobile OSGi specific tools are provided by ProSyst. A free version of the mToolkit is available as here.
- Obviously, the Eclipse Project in general is a great place to look for advanced tools.
- Sun also offers a toolset for the Sprint Titan platform here.
Blogs
I have come across Mobile OSGi related postings in the following blogs (but obviously they all deal with other interesting topics as well):
- Gábor Pécsy's Blog
- ProSyst's Blog
- Ove Nordstroem's Blog
- Gorkem Ercan's Blog
- David Beers' article on mobile OSGi, here
- David Beers' Blog
- OSGi Blog
Do you know any other good resources? Please let me know!
Jo Ritter
Tuesday, June 24, 2008
What Mobile OSGi has to offer to mobile enterprise developers!
It is evident that the market for mobile enterprise solutions grows rapidly. A lot less obvious are the technological trends on which mobile enterprise solutions are going to be built upon. Mobile OSGi technology (i.e. JSR 232, Eclipse eRCP, Sprint Titan) is one of the platforms that enters the market and thus competition against other platform concepts such as MIDP, native applications, Google Android, etc. What is it that mobile OSGi technology has to offer?
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:

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:
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?
Tell me!
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?
Tell me!
Subscribe to:
Posts (Atom)
