Thursday, February 21, 2008

Sprint Nextel goes live with Mobile OSGi!

This week’s news from Sprint Nextel marks a cornerstone of OSGi adoption: Sprint has released its first developer version of the Titan platform, an OSGi based next generation mobile Java stack. Titan was announced on the last Application Developer Program (ADP) Conference and is now made available for download at developer.sprint.com. This is very exciting news for a number of technical, business related and strategic reasons!


First of all, let’s take a look at what the Titan SDK contains:

1. A self-contained Java runtime stack for Win Mobile 6 PDA phones. It is a dual stack system consisting of these components:

(Source: Titan documentation)

The stack comes as a cab file, the package format for Win Mobile applications.

Architecture. The architecture is entirely transparent to developers and end users. Plain old MIDlets are executed in the CLDC VM runtime whereas eRCP applications and OSGi bundles run in the CDC/OSGi VM process. The OSGi stack runs in background mode and handles installation, uninstallation and launching of all applications and components. For this reason Titan contains a set of AMS related components which tie into the OSGi runtime.

Supported Standards. Despite its new architecture, Titan is build upon industry standards. It supports:

Application models. The current version of Titan supports POMs (plain old MIDlets), OSGi bundles and Deployment Packages (DPs) as well as eRCP applications. Other application and package formats may be added in future, a widget based web application model being one of those. I would have loved to see support for OAMs (OSGi Aware MIDlets, i.e. MIDlets that are allowed to access CDC APIs and thus make use of all the beauty of OSGi) but that’s not the case currently. Titan comes with LCDUI and eSWT UI toolkits.

Manageability. One of Titan’s core concepts it manageability. The runtime can be managed from a developer host (using an IP based management protocol) as well as remotely via the OMA-DM protocol. For this reason it contains a full OMA-DM and DL client implementation.

Developer Support. The Titan stack runs on target devices as well as in the Win Mobile emulator that you can download from Microsoft. Moreover, the stack can be launched in normal runtime mode, in debug mode or in profiling mode (requires the tooling add-on, see below).

2. An installation package Titan device tools: This package contains the client side interfaces for the Eclipse based Titan Tooling plugins (debug and profiling libs for the VM, local console app for the OSGi runtime, an agent that communicates with Eclipse, etc.)

3. A set of Titan Tools Eclipse plugins. All the good stuff developers need: VM launcher, DP Editor, OSGi remote management plugin for deployment, installation and launching of apps and bundles and a Java profiler.

4. Demos and documents. Sprint provides a set of videos on how to use the various tools as well as a good documentation on Titan (you need to install the Eclipse plugins to get the docs. Install them and open Help-Help Contents-Titan Developer’s Guide in Eclipse).

I have to admit that I am pretty excited about what they provide and it gives me a hard time to not make this blog a sales pitch for Sprint. Here’s why I believe that Titan is a great step for mobile computing.


What’s in for developers?

Titan offers a lot of enhanced features for mobile application development. The modularity and service registry concepts of OSGi open the door for component based designs, allow code sharing, provide sophisticated solutions for version and security management and offer remote control out of the box – just to mention a few of the many benefits.

Secondly, Sprint offers several application models from which developers can chose. Legacy MIDlet applications are still supported but if you need more than just that you can write bundles, eRCP apps, widgets and perhaps other models which Sprint might add in future. Apparently, the choice of picking the right model has now been taken from the device OEM or operator and been given to those who know best what they need: the developers. However, in contrast to other more or less proprietary platforms like Android, almost all public APIs are based on industry standards and thus secure your investments.

The tooling package provided by Sprint will ease the first steps, although there is still a lot that could and should be added over time (i.e. GUI builder á la NetBeans).


What’s in for Enterprises?

There are at least three reasons why I think enterprises should get involved with Titan:

The market place of mobile platforms is right in the middle of a massive fragmentation process. In terms of open application platforms, until today the choice was more or less limited to MIDP2, Nokia S60, UIQ, Win Mobile and Brew. Tomorrow, a colorful bunch of additional platforms will penetrate the market of smart phones: Android, several Linux platforms like LiMo, Qtopia, MLI, perhaps MIDP3, Maemo, iPhone SDK, JavaFX Mobile, etc. etc. Once ported to all Sprint phones – which I assume is Sprint’s strategy – Titan will provide a homogeneous cross-platform runtime and thus eliminates the fragmentation issue of the underlying layers. This is a huge benefit for enterprises that face the burden of supporting different phone platforms.

Secondly, the introduction of OSGi/eRCP/eSWT is a powerful set of capabilities. For enterprise developers this technology is of particular interest. eSWT offers a large blend of UI widgets that enable development of rich apps. eRCP is a subset of the Eclipse RCP technology (the „e“ in eRCP stands for „embedded“), which seeks a lot of attention from visual desktop application developers (find a list of known RCP apps here). The Eclipse IDE itself, which is based on RCP, is the best example of what you can do with it. Frankly, Titan leverages desktop development know-how and technology to mobile handsets.

The third reason is Titan’s remote management capabilities. The key use cases are: Remote deployment of new apps, updates and upgrades, remote removal of deprecated apps, remote monitoring and remote configuration of your platform and your apps.


What’s in for Sprint?

Hopefully a positive impact on its share price! ;-) The fragmentation problem described in the enterprise context above is equally challenging for Sprint as a network operator. Sprint has built up a large and lucrative application and content ecosystem. Today, most (if not all) of those apps are MIDP2 based. What will happen after MIDP2, though? What can MIDP2 or Brew provide to enterprise developers? Presumingly, Titan is a strategy to offer innovation and yet to satisfy legacy support.

Looking at Titan from a non-technical angle, it appears to me as another episode of the war for share in added value services. Since margins are falling for both mobile hardware and telephony services, device OEMs started to go downstream and battle against operators for service revenue (and so do players which have no traditional roots in the mobile market, i.e. Google, Yahoo!, etc.). Titan – a container technology that is supposed to secure and extend Sprint’s ecosystem business – could be one element of Sprint’s competitive positioning.


What are the downsides?

Well, I guess it is just fair to mention that, alike any other new technology, Titan implies some challenges as well.

The current version of the downloadable Titan runtime works for Win Mobile 6 PDA only. The readme says that it is tested on the Sprint HTC Mogul device only but I know that it works on other devices, i.e. the HTC Touch, as well. Anyway, market penetration requires additional platform support which Sprint already announced in this presentation.

Footage of Titan is probably not an attribute people will get particularly excited about. ROM footprint is around 17.2 MB (incl. everything; size of the OSGi framework is just a couple of 100k) and RAM around 11 MB (stack only, no apps started). Considering the rapid increase of handset memory size and processing power, I don’t think the Titan footprint is really a serious obstacle.


After all, Titan is good news to all of us OSGi enthusiasts. Let’s hope that it’ll gain rapid market acceptance!


Notice: Sun has created a Sprint Titan stack as well and released that right after the last Sprint ADP Conference in December 07. Similar to the package described above, Sun's solution comes with tooling integration and documentation. Definitely worth reading!

Stay tuned...

- Jo

10 comments:

Anonymous said...

Good news. Hopefully this will strengthen the community interest and the enterprise story around OSGi for the mobile space.

lukewpatterson said...

Thanks for the great blog.

Those interested in developing for Titan should be aware of these issues:

"Eclipse plugin does not work" at http://developer.sprint.com/show_thread.do?forumId=368&searchBy2=MSG_PARENT_ID&searchValue2=-1&searchBy3=MSGFORUM_FORUMID&searchValue3=368&ps=10&pn=1&threadid=26201&sortDirection=0&sortCol=MSG_AUDIT_CREATE_DT

and

"Titan Runtime license has expired" at http://developer.sprint.com/show_thread.do?forumId=368&searchBy2=MSG_PARENT_ID&searchValue2=-1&searchBy3=MSGFORUM_FORUMID&searchValue3=368&ps=10&pn=1&threadid=26220&sortDirection=0&sortCol=MSG_AUDIT_CREATE_DT


Best Regards,
Luke

Jo Ritter said...
This comment has been removed by the author.
Jo Ritter said...

@Luke: Thanks for you comment. I truely regret that you ran into these unnecessary problems and I wonder what first impression you got from Titan.

The good news is that Sprint and Sprint's partners have been spending a great deal of work into Titan in the last few month. A new release (containing lots of improvements) will be coming out in a few weeks timeframe (we just missed the deadline of the expiring time bomb). Meanwhile, a new timebomb for the old release will be posted on the Sprint ADP Titan site very soon. Please stay tuned.

As far as Eclipse 3.4 compliancy is concerned, technically this is not too big of a deal for the tooling vendors to fix. Hope Sprint will release a new version of the Eclipse plugins very soon.

August 22, 2008 5:28 PM

lukewpatterson said...

@Jo:

Thanks for the reply.

Despite the rough edges, I'm still interested in Titan because the strategies and technologies involved seem promising.

I just hope that Sprint fully understands what it takes to nurture a sustainable ecosystem. The small things do matter. An incoming developer should be able to see something in an emulator within 15 minutes of hearing about Titan. The flash video tutorials shouldn't be buried in zip files. The forum should be monitored by Titan developers. Build tool plugins should be developed and promoted.



Best Regards,

Luke

David Beers said...

Jo, do you have (or have you heard) any updates about Titan? Like you, I'm very keen to see expanding support for OSGi on mobile devices and Titan seemed at the time of its announcement to be a promising development in that direction. Now, two months have passed since you mentioned we could expect a new release "in a few weeks." I know how these things are, but do keep us informed on this as you get any new information.

Jo Ritter said...

David,

good to see that there still is interest in the community. Indeed, not many Titan news surfaced in the last months.

I am not entitled to reveal Sprint's entire product plans but I can assert you that Titan is still alive (more than ever). In fact, Sprint and Sprint's partners have continued to invest heavily into Titan and will go public with a number of related announcements by the end of this year. Everybody interested in Titan might want to join the Sprint Wireless Data Conference on Dec 10th to 12th in Miami - a lot of good stuff happening there.

For Win Mobile, the post-load stack has been reworked & improved and will be published shortly (yes, I know I said that before, appologies, but for good reasons the Titan team decided to apply a couple of additional late time tweaks). Shouldn't come later than Dec.

The roadmap for pre-integrated Titan devices (Win mobile and others) I am not allowed to reveal.

Bottom line: Community, stay tuned!

- Jo

Anonymous said...

I have been trying to follow the same tutorial you have posted but always encounter this error "Exception trying to establish connection via IAgent." while connecting Treo 800w (Windows Mobile 6 with Sprint Titan Runtime, Device Tools installed) from Eclipse 3.3 using Active Sync..

Can you help me out??

Danail Nachev said...

It seems this guy have the same problem like you:

https://developer.sprint.com/show_thread.do?forumId=368&searchBy2=MSG_PARENT_ID&searchValue2=-1&searchBy3=MSGFORUM_FORUMID&searchValue3=368&ps=10&pn=1&threadid=26407&sortDirection=0&sortCol=MSG_AUDIT_CREATE_DT

Android app developer said...

I like your blog application.This is one of the pleasurable post.Nice to read about your post.