EZDroid (Apache Felix for Android)

EZDroid – Apache Felix on Android

Running EZDroid – an implementation of the Apache Felix OSGI framework on Android, or any other Linux-based mobile operating system, creates a more competitive, secure and flexible approach to mobile computing. Instead of running mobile applications directly on top of the Android virtual machine (Dalvik), applications run within the boundaries of the  OSGi framework. Using Android and OSGi combines a number of significant advantages outlined below.

Mobile Requirements

Pushing products to mobile devices presents specific challenges when compared with straightforward desktop and web-oriented applications. The high adoption rate of cheap and powerful mobile devices and the ever growing availability and bandwidth of public networks however, is creating a need to integrate these devices to support modern organisations and deploy complex applications. Achieving this brings a number of challenges however:

  • Heterogeneous target market

    It is crucial to be able to push applications and application components to as many devicetypes as possible, without risking “lock in” to one specific technology and/or vendor. With the initial release in 2007 of the Android platform and the foundation of the OHA (Open Handset Alliance) a platform now exists, to which almost 50 leading suppliers have committed themselves to openness, a shared vision for the future and concrete plans to make the vision a reality.

  • Dynamic service offering

    Offering services requires a service-oriented architecture, which is adaptive, componentized and loosely coupled. Such an architectural approach enables the integration of functionality as interoperable dynamic services that can exist “on the fly”. Dependencies, transparency, dynamic updates, versioning are only a few of the basic problems engineers face when developing service-oriented solutions. The key reason that OSGi technology is gaining wide adoption is that it provides a mature and robust component system that solves all of the intrinsic problems associated with developing complex service-oriented systems. It has proven to be successful in a surprising number of disparate environments e.g. IDEs, application servers, application frameworks, industrial automation, residential gateways and phones.

  • Managed secure and timely deployment

    An important part of any service offering is the ability to push applications and application components to devices in a managed, secure and timely fashion. The lifecycle of an application contrasts hugely with the lifetime of the device that it runs on; whereas hardware may remain in service for several years, software life-cycles may be measured in minutes or even seconds. A component’s life cycle can be as long as its version with which it has been tagged but it can also be as short as the function it is executing.
    In the mobile market it is important to install correctly configured components in a device’s memory on an “as and when required” basis. Provisioning in combination with the EZDroid marketplace enables organizations to define their own deployment strategy. It provides a framework to easily deploy applications and application components to Android powered phones in a flexible, controlled, secure and timely manner.

Architecture

The EZDroid initiative was triggered by the realization that the Android platform as well as other, Linux-based offerings could revolutionize how individuals and organizations use 3G mobile devices. The objective is to provide open provisioning services for software and content which have been validated as being safe – insofar as they will not interfere in the normal running of an Android device.

By providing an open gateway organisations can create their own specialized and dedicated secure markets for content and applications without being entangled into proprietary owned technologies and services.

An EZDroid powered solution recognises the following components:

EZdroid overview

Android Device

EZDroid – the OSGi Felix runtime, adapted for an Android mobile environment is ported onto the Android runtime (the Dalvik VM), to enable a more flexible deployment model. With the OSGi Felix container available on Android it is now possible to deploy any OSGi bundle of java components to the mobile target device, making all of the standard, powerful features of OSGi available. One of the major advantages achieved through conformance with the OSGi standard is that existing and new components that can run within a standard OSGi environment will run unchanged on any of the many Android powered mobile devices.

EZDroid Server

Apache ACE, originally developed by Luminis, is used to support flexible application life cycles. The provisioning service is used for flexible deployment and communicates with the management agent on the mobile device to enable e.g. dependencies, just in time installation, monitoring and server-relays.
The EZDroid server uses Metadata describing all bundles and their dependencies – allowing the provision of mobile clients more intelligently with bundles stored in the bundle repository. Bundles can contain Java classes, JAR files or any other type of data resource including e.g. configuration data, license files, data or content. These can be securely provided, to a specific device on a just-in-time basis.

Additional, more advanced extensions to the Apache ACE are also available from Luminis including license management, device management and integrated software management. It is noteworthy that the server software consists of Open Source components, available free of charge from the Apache Foundation to ensure that there is no risk of becoming locked in to a proprietary platform controlled by a third party.

Summary of Advantages

EZDroid offers an attractive alternative for creating standard Java applications for Android devices. Clear advantages include:

  • Interoperability through the (re)use of standard Java components specifically built for OSGi, which brings shorter development cycles and a quicker time to market.
  • The ability to port and leverage existing Java developments, making software better tested and more robust.
  • Dynamic, secure, just-in-time component deployment, meaning you can get new software out to your clients directly.
  • The use of Open Source Apache ACE as the server technology to create a powerful and secure, privately owned and managed marketplace of mobile application components.