ESF System Architecture

ESF System Architecture

 

ESF represents a collection of cohesive software components ported to a variety of hardware platforms, providing the customer with a complete and functioning product with associated application development tools.

 

ESF_How_it_works_1z.png

 

Hardware Platform

Bootloader/BIOS

Operating System

Java Virtual Machine (JVM), JNI

OSGi Application Framework

Foundation Bundles

Vertical Market Bundles

Application Business Logic, Customer Bundles

Common Tools

 

Hardware Platform

Eurotech provides a number of robust hardware platforms that run ESF, including ReliaGATE and DuraCOR.  The higher-level ESF components are designed to be supported across platforms, independent of board-level differences in the hardware platform.  Low-level hardware drivers and components are provided as part of the platform-specific software core of ESF.

 

Bootloader/BIOS

Bootloader and/or BIOS for each hardware platform is ported and validated by Eurotech as part of the platform-specific software core.  The Bootloader/BIOS provides startup of the operating system.

 

Operating System

Various operating systems are ported to Eurotech hardware platforms and validated.  Operating systems include Wind River Linux and a custom Yocto-based Linux.

 

Java Virtual Machine (JVM), JNI

The core technology of Everyware™ Software Framework is the Java Virtual Machine (JVM).  Java runs in a virtual machine runtime environment and thus runs across all operating systems.  This allows for reuse of code between systems and applications for “write once, run anywhere” capability.  The Java Native Interface (JNI) provides the hooks for native ‘C’ code interfaces where custom hardware or performance is required.  ESF currently uses the Oracle Java SE Embedded Virtual Machine.

 

OSGi Application Framework

OSGi originally stood for Open Services Gateway initiative and was designed as a services gateway for set-top boxes.  In the 10 years of its existence, it has become broadly adopted by industry as a whole and is now just referred to as “OSGi”.  OSGi is an Application Framework that provides the environment for running many different application components; installing, starting, stopping, updating, and uninstalling applications dynamically. 

ESF runs on two different OSGi implementations.  These include an open source implementation called Equinox from the Eclipse Foundation, as well as Hitachi’s SuperJ Engine Framework.  For more information on OSGi and these implementations, see

http://www.osgi.org

http://en.wikipedia.org/wiki/OSGi

http://www.eclipse.org/home/categories/index.php?category=equinox

http://www.hitachi-solutions.com/superj/sp/sjf/.

 

Foundation Bundles

The ESF Foundation Bundles provide the core functionality for getting started with application development using documented APIs.  This includes

 

·         Hardware Virtualization (Most applications don’t care what hardware they are running on.  Components are written to operate independent of hardware platform.)

·         Device Configuration Management

·         System Logger (Real-time system logging of debug and runtime information)

·         Management of Network Devices (Ethernet, Wi-Fi, Cellular, and Bluetooth)

·         IP Networking (DHCP server/client, DNS proxy, Firewall, and Time synchronization)

 

Vertical Market Bundles

As project requirements expand beyond the basic Foundation set of bundles, Eurotech offers targeted vertical market bundles that can provide additional functions and features according to the requirements of the customer.  These include a growing set of APIs that are ready to use or to customize for customer applications:

 

·         GPS – Location tracking, mobile asset management

·         Passenger/People Counter

·         Industrial Protocol (SCADA) Communication (e.g. Modbus)

·         MQTT – Publish/subscribe broker technology

·         Eurotech Everyware™ Cloud – Cloud-based asset and data management infrastructure

 

Application Business Logic, Customer Bundles

ESF is written around standard Java interface APIs that can be easily incorporated into a customer’s business application logic.  Many standard implementations are available to use as-is, or customers may choose to re-implement an API according to their unique requirements.  They may also choose to add custom sets of bundles that run in addition to Eurotech’s growing set of functional bundles.

 

However, customer application development does not require the use of ESF.  ESF can provide a complete framework and components that can be used for customer development, or it can run in conjunction with completely different applications written in any programming language.

 

Common Tools

The Eclipse Integrated Development Environment (IDE) is the dominant application environment in the industry today.  The Eclipse IDE provides ESF with all of the tooling required to develop, test, debug, and package application bundles and to deploy these bundles to the ESF environment on Eurotech’s target platforms.  Eclipse provides a rich set of capabilities for writing applications in Java, C, Javascript/AJAX, and many others.

 

For more information, see http://www.eclipse.org/