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.
Java Virtual Machine (JVM), JNI
Application Business Logic, Customer Bundles
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 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.
Various operating systems are ported to Eurotech hardware platforms and validated. Operating systems include Wind River Linux and a custom Yocto-based Linux.
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 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://en.wikipedia.org/wiki/OSGi http://www.eclipse.org/home/categories/index.php?category=equinox |
Foundation BundlesThe 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)
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
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.
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/ |