Open Services Initiative: OSGi Links Devices And Clients

June 4, 2001
Embedded-system developers need to deliver robust end-to-end solutions between clients and devices, but this task can be hampered by the lack of standard interfaces between services. The Open Services Gateway Initiative (OSGi) is developing an open...

Embedded-system developers need to deliver robust end-to-end solutions between clients and devices, but this task can be hampered by the lack of standard interfaces between services. The Open Services Gateway Initiative (OSGi) is developing an open architecture that addresses services, management, and communication between clients and devices. The modular design allows vendors to provide interfaces to proprietary devices using arbitrary communication protocols. Because OSGi is application- and platform-independent, the specification can be part of a solution comprising anything from cell phones to networked refrigerators. OSGi gateways may also act as an intermediary between network- or Internet-based clients and proprietary devices.

OSGi is being supported by a vast array of vendors. The flexibility of the specification and future enhancements permit the incorporation of proprietary devices and network protocols into a larger solution that might include standard applications such as Web browsers. It works with a variety of networking technologies like Ethernet, Bluetooth, the Home, Audio and Video Interoperability (HAVi) standard, Home Phoneline Networking Alliance (HomePNA), HomeRF, IEEE 1394, LonWorks, Universal Serial Bus (USB), the Video Electronics Standards Association (VESA) home network, and powerline communication systems, including the Home Powerline Alliance (HomePlug). Further technologies can be added too. OSGi tries to be protocol- and standard-agnostic, and it supports device access architectures like Jini and Universal Plug and Play (UPnP).

The OSGi specifications are based on Java. Although it's possible to emulate some OSGi services and interfaces, most OSGi gateways incorporate a Java Virtual Machine (JVM) and the OSGi Framework Java classes in addition to Java-based OSGi-compatible services. Java was chosen so that third-party services could be deployed in a platform-independent environment.

The OSGi specification spells out a number of required services as well as some standard optional services. The standard services include:

  • Java environment defines required packages, classes
  • Services Framework required API for creating, running services
  • Device Access Manager required API for accessing devices
  • Log Service required API for logging service
  • HTTP Service optional API for Web server

On-demand, dynamically loaded services are provided by the Device Access Manager. The Log Service collects events and notifies listeners when they're logged. The HTTP server supports the Java Servlet 2.1 (or higher) specification. Because gateways may provide access to devices and services using other communication protocols, the Web server is an optional service. One is normally employed when the client is a Web browser. The next revision of the OSGi specification will also address the following service interfaces:

  • Client access API for publishing service information
  • Configuration data API for managing configuration information
  • Persistent data API for storing and accessing persistent data

The client-access interface may allow creation of general OSGi clients. The configuration-data interface will standardize a mechanism for querying and changing gateway and device attributes. Initially, configuration is done using custom interfaces. The persistent-data interface lets OSGi gateways and devices store information in a location-independent fashion. This is especially important for devices with limited nonvolatile memory since it will allow data to be stored on another device on the network. These interfaces are in the process of being approved.

The OSGi framework is designed to tie together third-party services. A bundle provides one or more services, and bundle execution occurs in a bundle context. The services are Java classes, and the bundle is a Java archive (JAR) file. Java interfaces supply access to bundle services, and a standard set of interfaces and services are part of the OSGi framework. Eventually, OSGi will encompass application downloading, service updates, and more sophisticated management.

OSGi implementations are starting to appear, like emWare's (www.emware.com) Gatewayfx. It combines emWare's OSGi package with IBM's (www.ibm.com) J9 JVM and the QNX RTOS (www.qnx.com) running on an IBM PowerPC platform. Gatewayfx also includes support for emWare's Embedded Micro Internetworking Technology (EMIT). The EMIT support is an example of how OSGi supports proprietary protocols.

See associated figure

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!