Premium Content

New Signal Chain Resources from Texas Instruments:

Hands-On Eval Of Eurotech's Helios Edge Controller

Date Posted: July 13, 2010 12:00 AM
Author: William Wong

Everyware

Now for a look at the Everyware framework (Fig. 4). I won't be getting into a detailed review of Everyware or OSGi. Both can get very complex depending upon the OSGi bundles employed by an application. A good place to get more information is Eurotech's Everware whitepaper. Also check out the OSGi Alliance's website

In a nutshell, the OSGi framework is written in Java. It provides a way to load OSGi bundles that contain Java class definitions. A loaded bundle can be utilized by an application that can be another OSGi bundle. Everyware starts with a stock OSGi framework and bundles. It adds Eurotech bundles. Some provide generic services for system management. Others provide access to device specific hardware. For example, there are a set of bundles for the Helios that provides access to the Ethernet network support, storage, etc. The interfaces for these are generic so the same network access can be utilized by an application even if it is running on another Eurotech device. 

Bundles can be dynamically loaded and unloaded. They can be downloaded via a network connection. OSGi and Everyware can run on a wide range of hardware from embedded devices like Helios to servers. The Eclipse IDE (integrated development environment) is also based on OSGi. By the way, the latest incarnation of Eclipse is called Helios. As you might have guessed, OSGi can be used to develop desktop and server applications as well. In fact, Eclipse is based on he Rich Client Platform (RCP) that can be used by developers as well (see Eclipse: An Application Framework?).

I used Eclipse as the development platform to check out Everyware although any Java-based development system is likely to support OSGi development. Likewise, Everyware is designed to support OSGi bundles but it and OSGi have access to native drivers and applications using the Java JNI support. 

Eurotech goes a good job of providing documentation, support and training. I didn't check out their training classes but I have had a chance to interview their tech staff and the documentation was more than sufficient to get an Eclipse user with Java experience (me) up and running in an afternoon. Part 2 of the documentation covers getting Eclipse up and running including downloading of the RCP support. 

The easiest thing to do was to start with an RCP application to run on the PC and then develop a matching application to run on the Helios. The two could communicate using the network. The RCP application is straight forward because Eclipse has the support for OSGi built-in. The initial test for the Helios was the supplied Hello World logging program that followed the same process. The next application for the Helios blinked the LEDs. The Eurotech documentation walked me through all but the latter. Finally delving into more of the specific bundles provided by Eurotech took a little more time simply because of the details. 

Eurotech even includes a Best Practices guide. OSGi is designed to be portable and provide portability to applications. The guide highlights issues like naming conventions, error handling and logging. 

One piece I didn't have was the latest Internet-based management support that Eurotech has released. This addresses the management of distributed systems on a much wider scale than I tested. If you have hundreds of systems then this support is worth investigating. It is all built on OSGi so the local bundles essentially communicate with a server. The services include logging, data management and update support. 

The one thing that I found that I think is key to the success of Everyware is that most of the facilities were ones I took advantage of. I did not have to write them from scratch. This is very similar to using other large frameworks like Microsoft's .NET. A developer only needs to include needed modules, or in Everyware's case bundles, and the framework takes care of the details.  

Updating a bundle on the remote system was already a feature available to me. As noted, it can even be done dynamically. I would have had plenty of time to work on application-specific details had I a more interesting application to run on the Helios.

So how does Everyware fit with respect to embedded developers? Well, there is a range of issues from real time support to programming in Java. I won't get into a lengthy discussion here but check out my coverage of Atego's PERC for a discussion of real time Java issues. I also did a Q&A with Atego about this topic as well. I know that the bulk of embedded developers are still using C but Java is not that hard to learn. The benefits are significant especially when you realize the amount of support that you can take advantage of with Everyware. It is also significantly more portable than C or C++. 

So, in closing, I would rate Eurotech's Helios and Everyware very high. If you plan on deploy large numbers of devices then this approach can get you there without having major programming issues. You also wind up with a more portable solution that makes migration in almost any direction much easier. By the way, Helios is a rather hefty OSGi platform. OSGi can run on very compact, single chip micros as well. Ok, not 8-bit Microchip PICs but it will work on may 32-bit microcontrollers. 

More Information

Video interview with Eurotech about Everyware

Atom | Edge Controller | Eurotech | Everyware | Helios | Intel | Java | Linux | microcontrollers | OSGi | Windows | Windows CE | Windows Embedded Standard
Part Inventory
Go
powered by:
 

 
You must log on before posting a comment.

Are you a new visitor? Register Here
    There are no comments to display. Be the first one!