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:
  1. 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.
  2. 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.com for more information
For Nokia S60 3.1:
  • 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
For Android:
  • 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.
For Brew:
  • The first Mobile OSGi port for the Brew platform is currently under construction, more information you can obtain from .
OSGi for Apple iPhone:
  • 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:
  • 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.
The market uptake is not what I would call significant yet, but there is good progress underway. As pointed out in other posts, Sprint launches their Titan platform with is Mobile OSGi build into mainstream handsets - the first pre-integrated mass deployment of OSGi. Also IBM bets on OSGi and has built their mobile enterprise product, called Lotus Expeditor (a universal managed client for SOA), on OSGi/eRCP. Furthermore there are lots of development enterprise projects for OSGi/eRCP going on which I cannot disclose at this time. Nokia has build a Mobile OSGi/eRCP stack as well, find an interesting presentation about it here.

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!