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?

8 comments:

Román said...

Hi, I'm very interested in OSGi technology for development on mobile devices. You have commented that you know that there are portability to Nokia S60 which I assume will be CLDC, You might indicate me where or whom I can learn.

Thank you very much and a greeting.

Jo Ritter said...

Take a read through my posting Public Resources which contains a list of all available Mobile OSGi ports.

The S60 port you get from Nokia by sending an email to nokia.ercp-at-noki.com. It is not CLDC but CDC based and it has to since OSGi requires that environment.

Etan Rosensky said...

This is insanity, just like OMA, sprint thinks they are actually accomplishing something by grouping together 10 standards and making an official announcement. This does little to solve the fragmentation problem, just as http and tcp are standards used by most apps and they do little to solve the fragmentation problem. Unfortunately, the mobile OS wars have not played out and they will not for 10 years. Then, when sun or microsoft come out on top, we can have a discussion. You can tout all you want, and try to make your stock price improve, but we in the real world of mobile dev see through this very clearly.

chumsley sealion said...

You will need ubiquitous ports and wide acceptance from os makers. Until them, it goes in the bucket of competing standards.

Jo Ritter said...

@ Etan Rosensky:

From your aggressive language I conclude that fragmentation really bothers you! Thanks for supporting my point that way.

You did not read my blog carefully. It says in the very first sentence that OSGi intends to ... reduce fragementation ..., especially the bad side of it. Despite all benefits of OSGi, I do not claim that it solves the entire mobile fragmentation problem.

Cell Phone Jammer said...

Nice article!! Thanks for sharing on blogger. It would be great if it will solve the problem of the

Thanks !!

Anonymous said...

Rather interesting blog you've got here. Thanx for it. I like such topics and anything connected to this matter. I definitely want to read a bit more on that blog soon.

Sincerely yours

Dan said...

I find it interesting to revisit this article 5 years later after all the new developments and events that have happened with OS - and in particular Nokia - who has always been my favorite cell phone provider.