|
|
Bridging of
Distributed and Component-Based Systems |
A new class of smart devices is emerging that
combines the efficiency of ROM-based C/C++ code with the
flexibility of an embedded Java virtual machine. The
firmware in these devices is usually burned into ROM,
and therefore difficult to update or modify after
product shipment. However, after product shipment, there
is often a need to introduce a new feature not foreseen
in the development phase. The new feature may be a
customization of an existing feature (such as a custom
logo on the front-panel of the device), or may be a new
capability that extends the features of the device (such
as adding secure authentication to the login procedure
at the device, in order to access the user’s email
account).
The Java virtual machine creates a safe sandbox in
which these augmented fea-tures are added; however,
extending, invoking and replacing ROM features requires
bi-directional communication between Java and the
underlying firmware.
We have developed a middleware bridging framework
called JeCOM that enables bidirectional invocation and
feature replacement between Java and embedded firmware.
In our specific environment, the C/C++ firmware is
written to an object model known as eCOM (based on the
Microsoft COM model) and thus our solution also
addresses Java/COM interoperability in the embedded
environment.
The Java/COM bridge that is implemented as a new
protocol in a Java-based Object Request Broker. This new
protocol provides significant ease-of-use advantages
over Java Native Interface, performance comparable to
distributed object systems, while requiring no change to
existing firmware implementation and infrastructure. The
problem of bridging Java and C/C++ is not new. However,
bridging these languages in the embedded domain and
addressing object discovery, lifecycle management, and
memory management within the ORB protocol for
bidirectional communication is new.
|
|
|