microej product line overview · 2016-06-24 · microej product line overview 4.0 jun-16 public...

40
MicroEJ ® Product Line Overview Copyright IS2T S.A. 2016 Reference: TLT-0752-MICROEJ-PRODUCT-OVERVIEW Product Version: 4.0 Document Revision: Jun-16 Classification: PUBLIC

Upload: others

Post on 22-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MicroEJ®

Product Line Overview

Copyright IS2T S.A. 2016

Reference: TLT-0752-MICROEJ-PRODUCT-OVERVIEW

Product Version: 4.0

Document Revision: Jun-16

Classification: PUBLIC

Page 2: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 2/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Confidentiality & Intellectual Property

All rights reserved. Information, technical data and tutorials contained in this document are

proprietary under copyright Law of Industrial Smart Software Technology (IS2T S.A.) operating

under the brand name MicroEJ®. Without written permission from IS2T S.A., copying or

sending parts of the document or the entire document by any means to third parties is not

permitted. Granted authorizations for using parts of the document or the entire document do

not mean IS2T S.A. gives public full access rights.

The information contained herein is not warranted to be error-free.

IS2T® and MicroEJ® and all relative logos are trademarks or registered trademarks of IS2T

S.A. in France and other Countries.

Java™ is Sun Microsystems’ trademark for a technology for developing application software

and deploying it in cross-platform, networked environments. When it is used in this site without

adding the “™” symbol, it includes implementations of the technology by companies other than

Sun. Java™, all Java-based marks and all related logos are trademarks or registered

trademarks of Sun Microsystems Inc., in the United States and other Countries.

Other trademarks are proprietary of their respective owners.

Page 3: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 3/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Contents

1 MicroEJ® Product Line ....................................................................................... 6

2 Development Workflows .................................................................................... 7

3 MicroEJ SDK ....................................................................................................... 8

3.1 MicroEJ SDK components ....................................................................................... 8

3.2 MicroEJ OS ............................................................................................................. 8

3.3 MicroEJ OS Core ................................................................................................... 10

3.3.1 Secure Multi-Application Engine ..................................................................... 10

3.3.2 RTOS Integration ............................................................................................ 10

3.3.3 Memory Management ..................................................................................... 11

3.3.4 CPU & Power Management ............................................................................ 11

3.3.5 External Resources Loading ........................................................................... 11

3.3.6 Java-to-C Language Interface ........................................................................ 11

3.3.7 Utilities & Test ................................................................................................. 12

3.3.8 Components Management .............................................................................. 13

3.4 MicroEJ OS Libraries ............................................................................................. 14

3.4.1 IO ................................................................................................................... 14

3.4.2 NUM* .............................................................................................................. 14

3.4.3 FILE & DATA .................................................................................................. 15

3.4.4 COMM ............................................................................................................ 15

3.4.5 NET & SEC .................................................................................................... 15

3.4.6 IoT .................................................................................................................. 16

3.4.7 GUI ................................................................................................................. 16

3.4.8 STORE ........................................................................................................... 17

3.5 MicroEJ Workbench ............................................................................................... 18

3.5.1 MicroEJ SDK Toolset ...................................................................................... 18

3.5.2 MicroEJ Workbench IDE ................................................................................. 18

3.5.3 MicroEJ Application Designer ......................................................................... 18

3.5.4 MicroEJ Simulator .......................................................................................... 19

3.5.5 MicroEJ OS Builder ........................................................................................ 20

3.5.6 MicroEJ Virtual Device Builder ........................................................................ 20

4 MicroEJ Firmware ............................................................................................. 21

4.1 Firmware architecture ............................................................................................ 21

4.2 Firmware build flow ................................................................................................ 22

5 MicroEJ Studio .................................................................................................. 23

6 MicroEJ Store .................................................................................................... 24

6.1 Store cloud-based services .................................................................................... 24

6.2 Store deployment .................................................................................................. 25

6.3 User accounts ........................................................................................................ 25

6.4 App publishing ....................................................................................................... 26

6.5 App downloading ................................................................................................... 26

6.6 Server architecture ................................................................................................ 27

6.6.1 Server backend and frontend .......................................................................... 27

Page 4: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 4/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

6.6.2 Server components......................................................................................... 27

6.7 Security ................................................................................................................. 28

7 MicroEJ Virtual Device ..................................................................................... 29

8 OS API Specifications ...................................................................................... 30

8.1 Foundation libraries ............................................................................................... 31

8.2 Add-on libraries ..................................................................................................... 33

9 Resources ......................................................................................................... 34

10 System Requirements ...................................................................................... 36

10.1 Target hardware .................................................................................................... 36

10.1.1 Supported architectures .................................................................................. 36

10.1.2 Supported platforms ....................................................................................... 36

10.1.3 Supported BSP, RTOS, toolchains and libraries ............................................. 36

10.2 Development host .................................................................................................. 37

10.3 Cloud server .......................................................................................................... 37

11 Products Packaging ......................................................................................... 38

12 Products Licensing .......................................................................................... 39

12.1 MicroEJ Studio ...................................................................................................... 39

12.2 MicroEJ SDK ......................................................................................................... 39

12.3 MicroEJ Store ........................................................................................................ 40

Figures

Figure 1: Single-app development flow .................................................................................. 7

Figure 2: Multi-app development flow .................................................................................... 7

Figure 3: MicroEJ SDK components ...................................................................................... 8

Figure 4: MicroEJ OS components in multi-app mode ........................................................... 9

Figure 5: MicroEJ OS components in single-app mode .......................................................... 9

Figure 6: "Green thread" implementation of MicroEJ ............................................................ 10

Figure 7: MicroEJ Java-to-C interfaces ................................................................................ 11

Figure 8: "Shielded Plug" mechanism .................................................................................. 12

Figure 9: MicroEJ OS sandboxing environment ................................................................... 13

Figure 10: MicroEJ app execution on simulator .................................................................... 19

Figure 11: MicroEJ firmware architecture ............................................................................. 21

Figure 12: MicroEJ firmware build flow ................................................................................ 22

Figure 13: MicroEJ Studio and Virtual Device components .................................................. 23

Figure 14: MicroEJ app publication and download from MicroEJ Store ................................ 24

Figure 15: Public and private cloud deployment of MicroEJ Store ........................................ 25

Figure 16: MicroEJ Store server components ...................................................................... 27

Figure 17: MicroEJ Virtual Device architecture ..................................................................... 29

Figure 18: MicroEJ SDK Resources Map ............................................................................. 34

Figure 19: MicroEJ Studio Resources Map .......................................................................... 35

Page 5: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 5/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Tables

Table 1: Standalone and Sandboxed apps on MicroEJ OS configurations ............................. 7

Table 2: MicroEJ OS API specifications ............................................................................... 30

Table 3: MicroEJ foundation libraries ................................................................................... 31

Table 4: MicroEJ add-on libraries......................................................................................... 33

Table 5: Platform configurations supported off-the-shelf ...................................................... 36

Table 6: MicroEJ SDK and MicroEJ Studio constituents ...................................................... 38

Table 7: MicroEJ SDK licensing ........................................................................................... 39

Table 8: MicroEJ Store licensing .......................................................................................... 40

Page 6: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 6/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

1 MICROEJ® PRODUCT LINE The MicroEJ product line offers profitable IoT solutions to OEMs, application developers and service

providers for:

- Device software development at lower cost and effort

- Application development and deployment for generating extra revenue streams with services

and data

MicroEJ solutions enable delivery of user experience and business models similar to mobile Internet

(smartphones and tablets) for embedded devices with strong cost constraints and strict resource

limitations (processor performance, RAM and flash memory footprint, low-power).

MicroEJ solutions also combine the techniques, methods and tools that drove the PC and mobile Internet

software industry, with the complex technical foundations of embedded systems (fragmented processor

architectures and diverse hardware-dependent software).

MicroEJ OS is a scalable operating system for resource-constrained embedded, IoT and wearable

devices. It is optimized for the wide range of IoT hardware architectures and enables device

manufacturers to deliver differentiating firmware using MicroEJ Workbench tools. MicroEJ

Workbench and MicroEJ OS are delivered as part of the MicroEJ SDK.

MicroEJ Studio allows application developers to write applications and publish them to a MicroEJ

Store from which they can be downloaded by owners/users of MicroEJ-ready devices (i.e., devices

running MicroEJ OS).

With MicroEJ solutions, OEMs use proven methods that cut software development time and cost. They

create software that delivers incredible user experience and adjusts to the needs of Internet business.

Page 7: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 7/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

2 DEVELOPMENT WORKFLOWS Developers can adopt a simple development flow to build a single standalone C/C++/Java application

linked to the MicroEJ OS using the MicroEJ SDK as shown in Figure 1.

Figure 1: Single-app development flow

However, developers who want to offer the ability to download apps from an online MicroEJ Store need

to adopt a multi-app development workflow, outlined in Figure 2. In this flow, the MicroEJ OS needs

to be configured to enable the multi-app mode (called “Wadapps”, also referred to as sandboxing) and

MicroEJ applications need to be written against specific rules and APIs. A Java program written for a

single-app MicroEJ OS may not run in multi-app mode.

The single-app/multi-app choice has to be made by device developers at the beginning of the project.

MicroEJ apps published to a MicroEJ Store can be developed using the free MicroEJ Studio.

Figure 2: Multi-app development flow

An application statically linked to MicroEJ OS is called a resident application. An application

dynamically linked to MicroEJ OS is called a downloaded application. An application running on multi-

app MicroEJ OS configuration is called a sandboxed app.

Standalone MicroEJ App Sandboxed MicroEJ App

Single-app MicroEJ OS Resident N/A

Multi-app MicroEJ OS N/A Resident and/or downloaded

Table 1: Standalone and Sandboxed apps on MicroEJ OS configurations

In all cases, developers have to build a platform for their target hardware (they can also build it for their

simulated hardware) upon which applications can be developed and integrated. A platform includes the

board support package (BSP), MicroEJ OS Core and Libraries.

MicroEJ SDK

• Platform development

• App development

Standalone Application

MicroEJ OS+ Libraries

+ BSPPla

tfo

rm

ExecutableBinary

ProgramAp

p

MonolithicMicroEJ

Firmware

MonolithicMicroEJ

Firmware

Link

MicroEJ Studio

• App development

MicroEJ SDK

• Firmware development

MicroEJ OS+ Libraries

+ BSPPla

tfo

rm

App App App

MicroEJFirmware

MicroEJFirmware

App App

App App App

Sandboxed App binaries(built for a specific firmware)

Deployment to

Infrastructure

Program

DynamicLoad & Install

Resident App

MicroEJFirmware

Link

MicroEJ Store

Page 8: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

3 MICROEJ SDK

3.1 MicroEJ SDK components

MicroEJ SDK provides a scalable OS and tools built on Eclipse to develop software for embedded,

IoT, and wearable devices. MicroEJ Workbench allows firmware developers to integrate, configure,

and build an embedded MicroEJ OS to run mixed Java and C/C++ software applications on their device.

Figure 3: MicroEJ SDK components

MicroEJ Workbench runs on the device software developer’s host and includes various tools.

MicroEJ OS runs on the embedded target, i.e., the IoT “thing” or embedded device. The OS provides

a hardware-independent Core layer built upon a hardware-dependent board support package (BSP). The

OS also provides a rich set of Libraries with a high-level Java API upon which applications can be

built. Resident applications are built in the firmware that is flashed to devices, as opposed to applications

that can be downloaded from a MicroEJ Store and dynamically run. Any legacy C or C++ code also can

be linked to the MicroEJ OS if needed.

3.2 MicroEJ OS MicroEJ Operating System (OS) is a scalable OS for resource-constrained devices running on 32-bit

embedded microcontrollers (MCU) or microprocessors (MPU). MicroEJ OS allows devices to run

multiple and mixed Java and C/C++ software applications.

MicroEJ OS is delivered as part of the MicroEJ SDK.

MicroEJ OS is optimized for low power, footprint and performance. The OS engine is very compact

(from 30 KB ROM footprint, 1.5 KB RAM) and OS services can be built to match hardware capabilities

and software needs.

MicroEJ OS provides a fully configurable set of services through scalable components as shown in

Figure 4.

Page 9: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 9/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Figure 4: MicroEJ OS components in multi-app mode

MicroEJ OS can also be configured for simpler single-app execution mode as described in Figure 5.

Figure 5: MicroEJ OS components in single-app mode

For full details of the MicroEJ API specifications and packages included in each library category, please

refer to the section: OS API Specifications.

Page 10: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 10/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

3.3 MicroEJ OS Core

3.3.1 Secure Multi-Application Engine

MicroEJ OS Core provides a secure engine that can run multiple applications but can also be

configured for running a single standalone application.

It is based on an optimized and compact Java virtual machine running its own compact hardware-

independent code, so applications can be binary portable across the variety of embedded processor

architectures and do not depend on a particular C/C++ compiler. The MicroEJ virtual machine is

optimized for performance and for footprint: from 30 KB of ROM/flash. The MicroEJ virtual machine

performs runtime checks and exception handling well-known by Java developers for easy application

robustness and debug.

3.3.2 RTOS Integration

The MicroEJ OS Core can run on “bare metal” hardware or on top of any underlying real-time operating

system (RTOS) such as FreeRTOS, Micrium µC/OS, Express Logic ThreadX, SEGGER embOS, and

others.

Java threads are managed by the MicroEJ virtual machine predictive scheduler – which itself is a thread

of the underlying RTOS in cases where MicroEJ OS runs on an RTOS, as illustrated in Figure 6. This

implementation of Java threads running in one native RTOS thread is referred to as “green thread.”

Figure 6: "Green thread" implementation of MicroEJ

RTOS

Native tasks (C/ASM)

1x native task(Java language)

GUI hardwareLCD, buttons, …

Applicative hardwareSensors, actuators, …

Java

th

read

s Shielded Plug (SP)

Simple Native Interface (SNI)

SPSNI

SPSNI

Page 11: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 11/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

3.3.3 Memory Management

MicroEJ Core OS provides a smart RAM optimizer (known as “garbage collector” or gc) for the

management of Java objects so there are no memory leaks or rogue pointers, and no memory

fragmentation.

MicroEJ OS also uses a shared C-Java heap for immortal objects (fixed address, untouched by gc) that

allow zero copy buffers and are compatible with DMA systems.

MicroEJ OS manages static persistent objects in flash called immutable objects.

3.3.4 CPU & Power Management

MicroEJ OS controls the CPU allocation per application to ensure quality of service. It manages app

permissions to access system resources in order to enforce security policies.

MicroEJ OS can run on top of a small kernel (RTOS) in a native kernel task. When MicroEJ OS has

nothing to do, the kernel just goes into its idle mode and the device can use the deepest low-power mode.

Basic events can wake up the system (e.g., touch, RTC timer, timer, RTOS tick) and the kernel can

decide to give the CPU back to MicroEJ OS task. MicroEJ OS reference implementations are mostly

based on DMA operations rather than CPU operations (so CPU can enter sleep modes or do something

else).

3.3.5 External Resources Loading

MicroEJ OS provides Java applications access to read-only data resources. These resources are

identified by a path as in a filesystem. The external resource loader can access the resources stored

outside the CPU address space range (storage media such as SD card, serial NOR flash, EEPROM).

3.3.6 Java-to-C Language Interface

SNI™

MicroEJ OS core provides an efficient Java-to-C native interface called “Simple Native Interface”

(SNI™) so integration of legacy C/C++ code to MicroEJ OS or applications is optimal as shown in

Figure 7.

Figure 7: MicroEJ Java-to-C interfaces

SNI enables calling a C function from a Java program. SNI calling is straightforward: it is based on a

defined naming convention. Allowed arguments are base types (int, float, double, char). Java and C

T

I

M

E

Immortals

Javaheap

Cheap

Java methods

C functions

Call C

Return to JavaT

I

M

E

Immortals

Java methods

C functions

Javaheap

Cheap

Page 12: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 12/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

programs also can share arrays of base types as immortals (living in a separate heap at a fixed address,

untouched by the gc). The size of the immortal space is specified by designers. SNI allows the use of

immortal arrays of a base type as parameters. This permits the sharing of buffers between Java and C

code, allowing a zero copy strategy between the two worlds. The immortals heap also allows DMA to

share Java data with hardware peripherals.

Shielded Plug®

The “Shielded Plug®” is another way for Java and C programs to communicate using a publish/subscribe

protocol, as shown in Figure 8. Shielded Plug allows spatial and temporal decoupling of programs and

is ideal to add Java tasks on top of a legacy C program. Shielded Plug provides a full segregation of the

processes (producers versus consumers), which can be written in either C or Java language. A small

database shared between the two worlds (i.e., the Shielded Plug data buffers) allows developers to be

notified when the content of a buffer changes or is re-initialized. Testing the presence of data in data

buffers and mechanisms for serialization and de-serialization of objects/structs is also supported. A

typical use of Shielded Plug is related to graphical user interface (GUI) integration within legacy

application logic. Both application logic and the whole GUI communicate only by exchanging data

through Shielded Plug.

Figure 8: "Shielded Plug" mechanism

3.3.7 Utilities & Test

Additional utilities, logger, and localization features are available to ease application development.

National Language Support (NLS) provides a small but efficient API to handle multi-language

applications that rely on unicode strings and fonts. Checkhelper provides means to write unit tests.

Combined with the test suite engine, it allows validation of any developments. The test-suite engine

produces JUnit compatible reports and can be integrated into a continuous integration (CI) system.

A harness allows hardware-in-the-loop (HIL) testing. When the code is run on the simulator instead of

the real hardware, the microcontroller is replaced by the developer's workstation. All native calls are

executed thanks to the HIL protocol. “Mocks” implement native methods in Java™ Standard Edition

(Java™ SE) and HIL protocol is able to execute them.

Performance traces can be obtained for graphics (frame-per-second or FPS), CPU load (%), memory

consumption (total memory, free memory) and threads (name, stack trace, state). These libraries are

available in Java and C language to self-monitor the application and the system.

Field_1

Field_2

Field_n

User A

User B

Producer A

Producer B

events

Sub

scribe

rsPu

blis

her

s

Page 13: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 13/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

3.3.8 Components Management

The MicroEJ OS Core can be configured in single-app or multi-app mode called “Wadapps.” In multi-

app mode, the MicroEJ OS Core provides a “sandboxing” environment that isolates apps from each

other, as shown in Figure 9. The sandboxing technique isolates the execution contexts of binary apps

so apps can be killed without hampering the entire system.

Figure 9: MicroEJ OS sandboxing environment

When building the MicroEJ OS in multi-app mode, the OS designer defines the set of OS APIs and

resources made available to apps, so apps cannot access critical system functions – whether for footprint,

security, business, or intellectual property protection reasons. Apps can’t access directly to code, objects,

or threads of another app, and can’t call native code. Apps use a specific “shared interface” mechanism

to exchange information between themselves. When apps are built, MicroEJ SDK tools ensure that apps

don’t have other dependencies than the APIs exposed by the OS instance for which they are built. Apps

are fully managed in binary format and can be dynamically installed, started, stopped, uninstalled.

The shared interface mechanism allows multiple apps to communicate directly through standard Java

interface APIs. Shared interfaces allow apps to be safely “hot-stopped” (stopped while the system is

running) even if other apps are currently using services that the stopped apps expose.

Each time an app’s object is being accessed by another app, the MicroEJ OS Core engine automatically

manages proxy references to the original object, so that there is never a direct reference between objects

owned by multiple apps.

HARDWARE

BSP/DRIVERS + RTOS

NativeThread 1

MicroEJ ThreadNative

Thread 2Native

Thread n

MicroEJ CoreMemory Mgmt

Components Management

Resource Mgmt

Java Thread Scheduler

MicroEJ Libraries

App1

App2

App3

App4

App5

Appn

Downloaded

AppIsolation

Layer

Resident

Page 14: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 14/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Shared interfaces provide the following advantages:

- Solving the well-known “stale references” issue on component-based systems

- By using pure Java interface and OO design (API vs. implementation, loose coupling), the same

application code can be integrated as a monolithic standalone application or split into multiple

sandboxed applications. (This becomes an integration choice.)

Apps can communicate through shared interfaces using built-in APIs:

- General purpose services available through the Wadapps framework shared registry

- Dynamically extending the device capabilities by adding new peripherals to the ECOM

Peripheral Manager

Developers also can offer APIs for their own apps to share with other apps.

3.4 MicroEJ OS Libraries *Note: items available upon request

3.4.1 IO

The IO library allows access to hardware I/Os and controls (like GPIO, DAC, ADC, PWM*…) through

the native hardware abstraction layer (HAL) with a high-level generic Java API.

It also allows acquisition of raw sensor data and control actuators through a Sensor* API for:

- Acceleration

- Temperature

- Magnetic field

- Humidity

- Proximity

- Step

- Rotation

- Pressure

- Light

- Gyro

- Gravity

- Heartbeat

It allows monitoring of device movement such as tilt, shake, rotation, or swing from direct user input or

from the physical environment*.

3.4.2 NUM*

The NUM library allows processing of digital data/signal, prototype and test mathematical algorithms.

It is based on a unified API, small and self-contained.

It is ideal for numerical computing and provides operations such as:

- Numerical functions (linear algebra)

o Matrix and vector computation (e.g., Eigen decomposition)

Float Matrix, Double Matrix: 32-bit and 64-bit real matrices

Complex Float Matrix, Complex Double Matrix: 32-bit and 64-bit real complex

matrices

- Scientific functions (e.g., exponential and trigonometry computation)

Page 15: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 15/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

- Polynomial computation (e.g., factorization: LU, LUP)

- Signal processing (e.g., FFT)

- Ranges

3.4.3 FILE & DATA

The FILE & DATA library allows management of persistent data and of hardware storage, and supports

standard data formats.

It provides persistent data formats such as:

- XML

- JSON

It supports file system on:

- Flash

- RAM

- SD Card

- USB Host Mass Storage

3.4.4 COMM

The COMM library allows connection to any type of network, and the writing of portable code across

stacks.

It provides wired connectivity for:

- Ethernet

- USB Host

- Serial (UART, USB Serial, Bluetooth Serial, I2C*, SPI*)

- CAN*

- Modbus*

- Fieldbus*

It also provides wireless connectivity for:

- 2G/3G/4G

- Wi-Fi

- Bluetooth*, BLE*

- Z-Wave*

- WM-Bus*

- NFC*

- ZigBee*

3.4.5 NET & SEC

The NET & SEC library allows support of network protocols and the writing of portable code across

stacks. It allows connection to Cloud infrastructure and performs secure communications.

It provides support for Internet protocols:

- UDP-TCP/IP

- IPv6*, Multicast*

- 6LoWPAN*

Page 16: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 16/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

- HTTP and HTTPS client

- HTTP and REST server

- REST client

- SNTP client

- Websocket*

- protobuf*

It provides support for security protocols:

- SSL/TLS client and server

- SAML*

- DTLS*

- Cryptographic keys and certificates storage (KeyStore)

- Cryptographic operations*

3.4.6 IoT

The IoT library allows support of standard IoT middleware and frameworks:

It provides support for middleware and frameworks such as:

- MQTT

- CoAP*

- DDS (Data Distribution Services: publish/subscribe middleware)*

- XMPP*

- AMQP*

- LWM2M*

- AllJoyn*

- Thread*

3.4.7 GUI

The GUI library provides scalable 2D graphics and touch for various displays and configurations. It

allows portable apps for consistent user experience across all devices.

It includes:

- Micro Widget Toolkit (MWT): universal widget-based framework

- Embedded Java User Interface (MicroUI™): graphics base library

It provides support for:

- MicroUI

o Drawings

Rich 2D graphics

Raster decoding & processing

Anti-aliasing, transparency, clipping

8-bit alpha channel layer management for graphical interfaces with

transparency

Support of full range of available displays (64×32, 128×128, QVGA, WVGA,

WQVGA, SVGA, WSVGA, HD, XGA, WXGA)

Color depth: from 1-bit to 24-bit (+ 8-bit alpha)*

All pixel aspect ratios

Internationalization: NLS (native language support)

Page 17: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 17/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

o Images

Any image format taken as input at application deployment stage

PNG, JPG* decoding at runtime, or other suitable formats

Dynamic deformation

Flying images for pointers

o Fonts

Any image format as input + TTF and OTF

1, 2,4, 8-bit anti-aliasing

Latin / Arabic / Asian, scalable

o Event management

Event source abstraction: touch, pointer, keyboard, keypad, command

(buttons), state (switches)

o LEDs

- MWT & Widgets

o Dynamic layouts

Grid, list, border, flow, scroll, split, custom

o Button, image, label, progress, radio, slider, text, toggle, spinner…

o Styling

Dynamic look and feel change (similar to CSS)

Fonts, images, colors, drawings

o Flows

Page navigation management, transition effects

- Media compatibility

o Video stream

- Motions

o Provides a timestamp to create a specific motion (linear, bounce, elastic, easings)

- Gestures

o Touch and multi-touch

3.4.8 STORE

The STORE library allows creation of an ecosystem through the application store server infrastructure.

It allows management of apps and resources for enhanced security.

It provides a complete app lifecycle management framework leveraging the MicroEJ Core OS

Components Management.

It allows creation of future-proof products by expanding them with new apps/services in the field. The

application store server infrastructure allows industrialization of app creation and management of open

or closed ecosystems.

It provides a robust and safe execution environment with:

- Secure data transmission

- Reuse of already-existing infrastructure

- Support of multiple protocols

- Dynamic download of apps

- Heterogeneous infrastructure: one app is compatible with multiple versions of firmware and

hardware

- Cloud framework connectors

Page 18: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 18/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

3.5 MicroEJ Workbench

*Note: items available upon request

3.5.1 MicroEJ SDK Toolset

MicroEJ Workbench is the full set of tools built on Eclipse for device software development.

MicroEJ Workbench provides tools to build the custom MicroEJ OS and firmware that can be flashed

to devices.

MicroEJ Workbench is delivered as part of the MicroEJ SDK as shown in Figure 3.

MicroEJ OS runs on the embedded target, i.e., the IoT “thing” or embedded device.

MicroEJ Workbench runs on the device software developer’s host PC. It provides an integrated

development environment (IDE) built on Eclipse for Java, C and C++ programming. The OS Builder

allows creation of a custom OS that fits the hardware capabilities and delivers the required software

services. The Application Designer allows creation of resident applications in Java language, with the

potential for a touch and graphical user interface (GUI) with the GUI Designer tool. The MicroEJ OS

and resident applications can run on the host Simulator that simulates the target hardware and its

inputs/outputs. To allow third-party developers to write applications for their devices, device

manufacturers can use the Virtual Device Builder to create a specification of their real device (called

a “virtual device”) and publish it to a MicroEJ Store.

3.5.2 MicroEJ Workbench IDE

The MicroEJ Workbench IDE allows editing of Java and C/C++ code, project management, and the

launch of executables and tools. It provides integration to any target C/C++ toolchain such as ARM Keil

MDK, IAR Embedded Workbench, or Eclipse CDT/GNU GCC. It also provides specific test and

optimization tools:

- Code Coverage Analyzer: creates a report from code coverage files generated by the simulator

- Test Suite Engine: executes automatically a set of unit tests on hardware or on the simulator

and creates a JUnit report and an HTML report

- Stack Trace Inspector: replaces symbols from embedded stack trace by method names and

line numbers

- Memory Map Inspector: displays the actual amount of memory required by an application,

both flash and RAM usage, along with resources such as images, fonts, etc.

- Heap Inspector: displays information of heap dumps, which can be generated at simulation

stage. This tool allows analysis of each live instance contained in the Java heap at any specific

time.

3.5.3 MicroEJ Application Designer

The MicroEJ Application Designer allows development of MicroEJ applications and includes specific

tools:

- Java compiler and tools

o Classpath Dependencies Analyzer*: lists the dependencies (classes and methods) for

a given Java library or application (jar)

o MicroEJ C Header Generator: generates C headers file (.h) and implementation

skeletons of Java native methods (useful when using SNI)

- Java debugger

Page 19: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 19/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

- MicroEJ GUI Designer

o Image Generator: converts image files (png, jpg, bmp, gif) into platform-specific

format. The number of bits per pixels (bpp) can be customized.

o Font Designer: used to build and edit MicroUI fonts. It stores fonts in a platform-

independent format. Characters can be imported from desktop system fonts or from

images. Both monospaced and proportional fonts are supported, as well as anti-aliased

fonts.

o Font Generator: converts MicroEJ fonts into a platform-specific format, customizes

anti-aliasing level and selects the available characters.

3.5.4 MicroEJ Simulator

The MicroEJ Simulator allows rapid prototyping before hardware is available. The same binary

application code can run on both the simulator and the real hardware as shown in Figure 10.

A simulated platform (packaged as a virtual device for publishing to the MicroEJ Store) can be built

with the Front Panel Simulator Designer tool for mimicking the hardware’s user interface (buttons,

LCD display, LEDs, etc.). It can use resources from the host PC for network, USB, file system, serial…

Peripheral extensions (called “mocks”) can be created: software mocks connected to the simulation

engine; hardware mocks connected to the PC workstation (for HIL testing).

Figure 10: MicroEJ app execution on simulator

Available mocks include:

- Hardware:

o CAN*

o HAL (ADC, DAC, GPIO), through the use of the HAL server app companion

o Multi-touch*

o Network

o FS

o SSL

o Serial

- Software:

o PWM*

o Front Panel (Display, Touch, Button, LED)

Virtual Device Firmware

BSP Mock

Simulator

HW MOCKS

MicroEJLibraries

BSPMicroEJ Core

HARDWARE

BINARY APP

Page 20: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 20/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

3.5.5 MicroEJ OS Builder

The MicroEJ OS Builder allows configuration of MicroEJ OS Core and Libraries and includes specific

tools:

- Platform Builder: tool to build and configure a MicroEJ platform. It allows developers to select

services offered by MicroEJ OS.

- Java Linker (SOAR®): MicroEJ SDK assumes that the final linker from the toolchain uses the

ELF format for input files. Because the Java compiler generates unlinked binary code, MicroEJ

SDK includes a generic smart linker, brand named SOAR, which links the binary Java code and

produces an ELF file that can be linked with any other ELF file produced by any other tool.

3.5.6 MicroEJ Virtual Device Builder

The MicroEJ Virtual Device Builder allows packaging of a virtual device including the resident

applications, MicroEJ OS and “mocks” with specific tools:

- Front Panel Simulator Designer: allows the creation of a simulated view of the control panel

(“front panel”) of a target device. A set of standard widgets is supplied, which the user can lay

out on the panel, using images that exactly replicate the final hardware. The completed panel is

exported to a virtual device and replaces the real front panel when the application is executed

on the simulator.

Page 21: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 21/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

4 MICROEJ FIRMWARE

4.1 Firmware architecture

MicroEJ firmware is a binary software program that can be programmed into the flash memory of a

device. A MicroEJ firmware includes an instance of a MicroEJ OS linked to underlying native libraries

and BSP + RTOS, with Java libraries and application code (C and Java).

Figure 11 gives a detailed view of the architecture of a MicroEJ firmware.

Figure 11: MicroEJ firmware architecture

Java layers, including MicroEJ OS Core and Libraries, whether foundation libraries (relying on C

native libraries) or add-on libraries (100% pure Java code), sit on top of native layers consisting of

native libraries, the BSP + RTOS + C runtime.

For each hardware board, MicroEJ OS has to be ported to the provided native layers by writing specific

code (an adaptation layer) that implements MicroEJ OS low-level (LL) APIs – usually in C or C++ –

on the chosen native stacks.

LL APIs define the small set of C functions required to port MicroEJ OS to any hardware. Basically, a

timer is required to implement the MicroEJ Core engine thread policy, which also handles an idle mode

to minimize CPU activity when the OS is sleeping.

Page 22: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 22/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

4.2 Firmware build flow

The firmware build flow is depicted in Figure 12.

Figure 12: MicroEJ firmware build flow

MicroEJ SDK provides specific “architectures” for a combination of instruction set architectures (ISA)

and C compiler (e.g., ARM Cortex-M4 with ARM Keil “ARMCC”).

The OS Builder tool includes two main tools and involves two separate stages:

- Building a “platform” with the Platform Builder: the OS designer writes the MicroEJ OS LL

adaptation layer for the chosen BSP, RTOS, native libraries and C compiler. OS designers can

start with provided platform reference implementations available for supported evaluation

boards and customize the source code. Then the Platform Builder tool links the selected

architecture to the provided native code based on specific OS configuration options and

positioning instructions.

- Building a “firmware” with the SOAR: the firmware developer writes Java application code

and provides add-on Java libraries that are linked to the provided platform with specific

dimensioning instructions to produce a firmware.

MicroEJ Platform

MicroEJ OS Architecture (OS Core + Foundation libraries)

C Compiler ABITarget ISA

C/C++ CodeBSP drivers

Legacy C code

BSP

Platform Configuration

Java Application + Libs

(.o)

MicroEJ Platform Builder

(.class)

MicroEJ SOAR + LINKER

MicroEJ Platform

Application + Libs

BSP

Dimensioning(Java heap, stacks,

thread)

Mic

roEJ

Firm

war

e

C Compiler

(.c,.cpp)

Java Compiler

(.java, .list, resources)

(.a)

(.a)(.platform)

(.xml, .launch)

Page 23: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 23/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

5 MICROEJ STUDIO MicroEJ Studio provides tools built on Eclipse to develop software applications for MicroEJ-multi-

app-ready devices. MicroEJ Studio allows application developers to write Java applications, run them

on a virtual (simulated) or real device, and publish them to a MicroEJ Store.

Figure 13: MicroEJ Studio and Virtual Device components

MicroEJ Studio runs on the application developer’s host. It provides an integrated development

environment (IDE) built on Eclipse for Java programming. The Virtual Device Loader allows loading

of a virtual device specification downloaded from an instance of MicroEJ Store. The Application

Designer allows creation of applications in Java language – with the potential for a touch and graphical

user interface (GUI) with the GUI Designer tool – that will be built for the loaded virtual device.

The virtual device includes similar custom MicroEJ OS Core, Libraries and resident applications to the

real device. Developers can run their applications on the Virtual Device Simulator or directly on the

real device (through a MicroEJ Store, or using a local deployment option). The Simulator runs a mockup

board support package (BSP Mock) that mimics the hardware functionality. When building an

application, MicroEJ Studio ensures that it does not depend on an API that is either not available on the

device or provided by a third-party application. This enables simple application lifecycle management:

install, start, stop, and uninstall.

Page 24: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 24/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

6 MICROEJ STORE

6.1 Store cloud-based services

MicroEJ Store provides cloud-based services to deploy software applications to MicroEJ-ready

devices. MicroEJ Store allows OEMs to manage users, publish devices, distribute and monetize

applications.

Applications are developed with MicroEJ Studio and run on the MicroEJ OS.

Figure 14: MicroEJ app publication and download from MicroEJ Store

MicroEJ Store allows device manufacturers and OEMs to create an ecosystem around their products to

serve their customers (device users), application developers, and service providers. As part of this

ecosystem, users of MicroEJ-ready devices can extend the functionality of their devices and potentially

subscribe to cloud-based services through applications, just as with smartphones and tablets. OEMs can

choose to run a closed ecosystem and make sure apps are published only by their own developers or

they can choose to run an open ecosystem and moderate the publication of apps developed by third-

parties outside of their organization.

Manufacturers are able to publish specifications of their MicroEJ-enabled devices called Virtual

Devices (VD) on their MicroEJ Store. Virtual devices specify precisely the capabilities and set of API

offered by the built-in MicroEJ OS in order to guide developers of applications for those devices. VDs

also provide simulation capabilities to ease application development, debug and test.

Page 25: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 25/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

End-users will be able to download applications for their MicroEJ-ready devices from the Store. They

will be able to install apps, either through the MicroEJ store app (also called “browser”) embedded in

their devices or through a mobile application on their smartphone (in the future, if the device does not

have a proper GUI).

Specific MicroEJ applications, called agents, can be delivered to enable access to cloud platforms and

services for device management, data collection and analytics or other purposes.

Application developers will be able to develop and test applications for the published virtual devices on

the Store with MicroEJ Studio, a free Java integrated development environment (IDE) built on Eclipse.

6.2 Store deployment MicroEJ Store is a turnkey solution, customizable, secure and robust, that can be deployed on the public

cloud (e.g., store.microej.com) or on a private cloud (e.g., store.MyBrand.com). A store can be operated

either under the MicroEJ brand or under an OEM brand in white label (e.g., MyBrand.microej.com) so

OEMs can offer the service without having to invest in creating the technology and infrastructure

themselves.

The MicroEJ Store server exposes REST APIs so that additional services and customized clients can be

created. A deployed instance of a MicroEJ Store can be accessed from a PC by the provided web client

example implementation (referred to as WebUI), or by any other client from a smartphone/tablet

(*mobile client: not available yet) or from an embedded board (MicroEJ OS client: example app

available) using similar REST API calls as shown in Figure 15.

Figure 15: Public and private cloud deployment of MicroEJ Store

6.3 User accounts User need to create accounts to access services offered by an application store.

There are four types of user accounts:

- Administrator: has administration and moderation privileges on the store

- End-user: can browse and download public virtual devices and apps, and can register its own

devices

- App developer: end-user rights and can publish apps

- Manufacturer: app developer rights and can publish virtual devices

End-users can register their devices on their application store account. When a device is registered, it’s

“paired” to a user account. Each MicroEJ-ready device (real “physical” device) is identified by a unique

Mobile client*

Web client

MicroEJ OS

client

MicroEJ Server

REST API

HOSTED

store.microej.com

Mobile client*

Web client

MicroEJ OS

client

MicroEJ Server

REST API

WHITE LABEL

MyBrand.microej.com

Customized with MyBrand names, logo, etc.

My Server

REST API

CUSTOM

store.MyBrand.com

Your customization

My Client

Your own development

MicroEJ Server

REST API

Page 26: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 26/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

ID to identify it. End-users can view the list of devices they registered, browse apps compatible with

their devices, rename their devices, and unregister (“unpair”) their devices.

User login and device pairing use OAuth 2.0 authentication technology.

End-users can:

- Browse a manufacturer's portfolio of products

- Browse a portfolio of applications

- Do account management

- Manage their own devices

- Install applications on devices

- Uninstall applications

Application developers can also:

- Browse virtual devices

- Download virtual devices

- Request private app publication for test-only

- Publish apps

Manufacturers can also:

- Publish virtual devices

- Publish firmware

- If in Moderator role, moderate applications

Administrators can:

- Host application server distribution into their own infrastructure

- Deploy new services to adapt the server to load peaks

- Track in real-time service quality and performance

- Analyze traffic, logs, failures, usage, etc.

- Do backup / restore

- Manage users / apps

6.4 App publishing

In development phase, app developers can use an offline app publishing mode or direct push mode

called “local deploy” to bypass the store and push their app directly to a locally-connected device. In

testing phase, app developers can use an online private app publishing mode or private push mode to

publish their app in their private area on an application store (other users of the store can’t see it).

When developers are ready to publish their app, they use the online public app publishing mode or

public push mode to put their app in moderation stage. Apps go through a validation of their technical

compatibility with targeted devices, to make sure apps use APIs available on devices they want to run

on. Then it’s up to an application store owner to define its own acceptance criteria and make the app

available for download.

6.5 App downloading

MicroEJ-ready devices need to establish direct and secure communication with an online MicroEJ Store.

This requires enabling SSL/TLS-based security and secure storage of certificates and keys on board.

Page 27: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 27/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

MicroEJ provides an example embedded app to access a store, browse available apps, and manage apps.

Developers can write their own store browser and app manager app (an app that manages other apps,

for installing, uninstalling, starting and stopping those apps).

6.6 Server architecture

6.6.1 Server backend and frontend

The MicroEJ Store provides a server backend delivering the services and offering standard REST APIs

to access those services. It also include an example frontend implementation available as a web user

interface (UI) that uses the REST APIs and offer an easy way for user to interact with the server through

a standard web browser. This web UI can be customized by MicroEJ, or any other specific frontend

using those APIs can be developed upon needs.

6.6.2 Server components

The MicroEJ Store is built on cloud technologies that allow modular and secure deployment as well as

scalability of up to million connections. Each orange box in Figure 16 represents a Docker container.

Figure 16: MicroEJ Store server components

A MicroEJ Store server includes:

- A firewall to protect services from attackers

- A load balancer to balance the load over multiple instances of the same service

- Authentication authority to guarantee user’s and board’s identities

- Business APIs offering a set of standard web service interfaces

- A web client example implementation (WebUI) to manage user account, browse apps, devices,

etc.

- A mail transfer agent (MTA) that routes and delivers electronic mail

- A data base for storing information

- A build server to build applications and check firmware compliance

Page 28: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 28/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

6.7 Security

Security is at the heart of all MicroEJ solutions at all levels: device software, communications, store

server, and third-party cloud services.

- At the device level:

o Secure app execution through sandboxing and download from trusted server only

o Apps identification with signed certificates

o Hardware and firmware identification with unique IDs

o Secure data collection and storage through encryption

- At the communications level:

o Secure communications with SSL/TLS and HTTPS

- At store server level:

o Secure hardware, firmware and user authentication and pairing with unique IDs and

through the OAuth protocol

o App binary verification for a target firmware

- At third-party cloud platform levels:

o Secure data transmission and exploitation through encryption and anonymization

Page 29: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 29/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

7 MICROEJ VIRTUAL DEVICE A MicroEJ Virtual Device (VD) is a software artifact that allows developers to write and test apps for

a specific device on their host workstation, without the real hardware.

A MicroEJ VD includes:

- A set of APIs to define a set of interfaces for app developers, extracted from device

specifications

- A set of resident apps to provide apps with default system services

- A simulated app engine specific to a given device with extended “mocks” to simulate physical

hardware peripherals on a PC

- A secure connection to a MicroEJ Store for app publishing

Figure 17 outlines the technical architecture of a virtual device (in comparison to the MicroEJ firmware

architecture).

Figure 17: MicroEJ Virtual Device architecture

A VD involves a simulator which is the port of MicroEJ OS Core and Libraries to a PC workstation, on

Windows or Linux.

Page 30: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 30/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

8 OS API SPECIFICATIONS Block Features API

CORE Secure Multi-Application Engine: Virtual Processor/Java Virtual Machine Memory Management: Smart RAM Optimizer CPU & Power Management Components Management: Static/Dynamic Loader, Sandboxing, OSGi Languages: Multi-Languages Interface (SNI, Shielded Plug) Utilities, Logger, Localization - Test: Test Suite Harness

java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security, java.util.concurrent ej.bon ej.power ej.kf, ej.components, org.osgi ej.sni, ej.sp java.util.logging, org.apache.logging.log4j, org.slf4j, android.util, ej.nls, com.is2t.testsuite.support, org.junit

IO Sensors, Actuators GPIO, DAC/ADC, PWM

android.hardware, ej.com.io ej.hal.gpio

NUM Numerical Computing, Linear Algebra, Signal Processing, Ranges

ej.numeric, ej.numeric.linear, ej.numeric.signal, ej.numeric.range

FILE & DATA

Persistent Data, XML, JSON File System (USB MS, SD Card, external flash)

ej.bon, org.kxml2, org.xmlpull.mxp, org.json.me java.io, ej.wadapps.storage

COMM Wired: Ethernet, USB, Serial (UART, USB Serial, Bluetooth Serial, I2C, SPI), CAN, USB Host Wireless: 2G/3G/4G, Wi-Fi, Bluetooth, BLE, Z-Wave, WM-Bus, NFC, ZigBee

java.net, ej.ecom, ej.com.comm, ej.ecom.io, ej.ecom.can, javax.usb java.net, ej.ecom.bluetooth, android.bluetooth, android.bluetooth.le, ej.driver.zwave, ej.ecom.wmbus

NET & SEC

Internet Protocols/Cloud: UDP-TCP/IP, IPv6, 6LoWPAN, HTTP/HTTPS Client, HTTP & REST Server, REST Client, SNTP Client, Netlink Sockets, Websocket, protobuf Security: SSL/TLS client & server, Certificates/KeyStore, Crypto, DTLS, SAML

java.net, javax.net.ssl, com.is2t.server, ej.rest, android.net, com.is2t.netlink, ej.websocket, com.google.protobuf javax.net.ssl, java.security, java.security.cert, javax.crypto, org.eclipse.californium.scandium, org.opensaml

IOT Middleware: MQTT, CoAP, DDS, AllJoyn, XMPP, AMQP, Thread

org.eclipse.paho.client.mqttv3, org.eclipse.californium.core, ej.dds, org.alljoyn

GUI MicroUI: Drawings, Images, Fonts, Event Manager MWT: Dynamic Layouts Widgets, Transitions (Flows), Composite Layouts, Styling Motions, Gestures

ej.microui ej.mwt ej.widget, ej.color, ej.transition, ej.composite, ej.style ej.motion, ej.gesture

STORE App Launcher, Lifecycle Manager, App Browser Client

ej.wadapps, ej.wadapps.admin, ej.wadapps.client

Table 2: MicroEJ OS API specifications

Note: packages in orange are available upon request.

MicroEJ OS specifications are detailed at:

http://www.microej.com/resources/microej-os-api-specifications/

Page 31: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 31/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

8.1 Foundation libraries *Note: items available upon request

EDC

java.io

java.lang

java.lang.annotation

java.lang.ref

java.lang.reflect

java.util

java.security

BON ej.bon

ECOM ej.ecom

ECOM-COMM ej.ecom.comm

SNI ej.sni

SP ej.sp

NLS ej.nls

FS java.io

NET java.net

SSL/TLS client javax.net.ssl

MicroUI ej.microui

MWT ej.mwt

KF ej.kf

Store/Wadapps ej.wadapps

Resource Manager ej.lang

Num* ej.numeric

HAL GPIO/ADC/DAC ej.hal.gpio

Table 3: MicroEJ foundation libraries

- EDC (Embedded Device Configuration) and BON (“Beyond EDC”) libraries form the base for

embedded Java applications. They provide a deterministic initialization phase of the application.

- ECOM (Embedded COMmunications) provides an abstract communication stream support and a

peripheral manager.

- ECOM-COMM provides support for serial (e.g., UART, USB CDC) communication.

- SNI (Simple Native Interface) implementation allows the seamless connection of the Java and C

worlds.

Page 32: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 32/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

- SP (Shielded Plug) provides a robust publish-subscribe protocol to exchange data between

loosely-coupled components, which may be from the Java or C world.

- NLS (National Language Support) allows handling of multi-language applications that rely on

unicode strings and fonts.

- FS (File System) provides standard file system API.

- NET provides standard UDP/IP and TCP/IP networking API.

- SSL provides an SSL/TLS client.

- MicroUI provides 2D graphics library.

- MWT (Micro Widget Toolkit) provides a GUI widget framework.

- KF (Kernel & Features) provides the runtime support for managing multiple sandboxed

applications.

- Store/Wadapps is the multi-application sandboxing framework and the client library used to connect

a device to an online MicroEJ Store.

- HAL (Hardware Abstraction Layer) provides the API for accessing microcontroller-specific

peripherals (GPIO/ADC/DAC).

Page 33: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 33/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

8.2 Add-on libraries *Note: items available upon request

Widgets

ej.widget

ej.style

ej.transition

ej.color

Eclasspath java.util

java.util.concurrent

Storage ej.wadapps.storage

REST client ej.rest

Check Helper ej.checkhelper

MQTT org.eclipse.paho.client.mqttv3

Components ej.components

Logging java.util.logging

CoAP* org.eclipse.californium.core

XML org.kxml2

org.xmlpull.mxp

JSON org.json.me

HTTP and REST server com.is2t.server

DTLS* org.eclipse.californium.scandium

Websocket* ej.websocket

protobuf* com.google.protobuf

HTTPS client javax.net.ssl

HTTP client java.net

SNTP client android.net

Connectivity Manager android.net

Table 4: MicroEJ add-on libraries

- Eclasspath is a group of add-on libraries that allows Java source code written for MicroEJ OS to be

compatible with OpenJDK API.

- Storage allows persistent data storage that does not necessitate, but can be implemented on, a file

system.

- Components is a simple component framework for Service-Oriented Architecture (SOA)

developments with loose coupling of API and implementation in order to design modular

applications.

Page 34: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 34/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

9 RESOURCES In order to get started with MicroEJ Studio or MicroEJ SDK, please go to: http://www.microej.com/get-

started/.

Additional developer resources are available on the MicroEJ Developer Resources site at

http://developer.microej.com/:

- MicroEJ Studio download

- MicroEJ SDK evaluation download

- Example MicroEJ firmware images

- MicroEJ architectures for evaluation (limited)

- Product documentation: overviews, user guides

- MicroEJ OS API reference guide: foundation and add-on libraries

- Examples and demonstrations

- Application notes

Figure 18: MicroEJ SDK Resources Map

Page 35: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 35/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Figure 19: MicroEJ Studio Resources Map

Downloadable artifacts related to some resources are available from the online MicroEJ Central

Repository at http://repository.microej.com/:

- Platforms for evaluation

- Platform reference implementations for evaluation

- Add-on libraries

Source code for some resources is available from the MicroEJ Git Repository at

https://github.com/MicroEJ/.

The public MicroEJ Store (where any developer can browse and push apps) is available at

http://community.microej.com/ and also provides:

- MicroEJ virtual devices

- MicroEJ apps

The private MicroEJ Store (with selected apps only) is available at http://store.microej.com/.

Page 36: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 36/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

10 SYSTEM REQUIREMENTS

10.1 Target hardware

MicroEJ OS requires 32-bit processor architectures with no Memory Management Unit (MMU) –

typically a microcontroller unit (MCU) – and a minimum of 16 KB of RAM and 64 KB of flash for the

simplest configurations.

10.1.1 Supported architectures

For a list of architectures supported by MicroEJ OS, please go to:

http://www.microej.com/resources/supported-architectures/

Engineering services are available for supporting any other architecture.

10.1.2 Supported platforms

For a list of platforms supported by MicroEJ OS, please go to:

http://www.microej.com/resources/supported-platforms/

Engineering services are available for supporting any other platform.

10.1.3 Supported BSP, RTOS, toolchains and libraries

MicroEJ OS relies on native software and tools for providing the foundations for the OS Core and

Foundation Libraries as shown in Figure 11.

MicroEJ can potentially run on any combinations of any BSP, RTOS (or bare metal), toolchain and

libraries. However, the provided platform reference implementations come with a predefined set of pre-

integrated and validated foundation elements as listed in the previous section:

Architecture Platform Toolchain BSP RTOS Libraries

ARM Cortex-M7 STMicroelectronics STM32F746G-DISCO

ARM Keil MDK STM32Cube FreeRTOS

lwIP

FatFS

wolfSSL

ARM Cortex-M4 STMicroelectronics STM32F429I-EVAL

ARM Keil MDK STM32Cube FreeRTOS

lwIP

FatFS

wolfSSL

ARM Cortex-M4 NXP Kinetis TWR-K65F180M

GCC Kinetis SDK FreeRTOS

lwIP

FatFS

wolfSSL

ARM Cortex-M4 Renesas Synergy DK-S7G2

GCC SSP Express Logic ThreadX

NetX

FileX

wolfSSL

Table 5: Platform configurations supported off-the-shelf

Engineering services are available for supporting new of different combinations of BSP, RTOS,

toolchain and libraries.

Page 37: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 37/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

Here’s below a sample list of RTOS and libraries that can be considered:

- RTOS: Micrium µC/OS-II and µC/OS-III, SEGGER embOS, Green Hills Software, Wind

River, SYSGO, Linux…

- Libraries: Micrium µC/TCP-IP, µC/FS…

10.2 Development host

MicroEJ SDK and MicroEJ Studio:

Intel x64 PC with minimum:

o Dual-core Core i5 processor

o 4GB RAM

o 4GB Disk for MicroEJ SDK

o 1GB Disk for MicroEJ Studio

Operating Systems:

o Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista or Windows XP

SP3

o Linux distributions (tested on Ubuntu 12.04 and Ubuntu 14.04)

o Mac OS X (tested on version 10.10 Yosemite and 10.11 El Capitan)

10.3 Cloud server

MicroEJ Store – when deployed on your server:

Intel x64 server running Linux Debian OS Jessie version with virtualization software:

o qemu-kvm

o Xen

o VirtualBox

Virtual machine requirements for running MicroEJ Store:

o 4GB RAM

o 80GB Disk

Page 38: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 38/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

11 PRODUCTS PACKAGING

MicroEJ SDK

MicroEJ Studio MicroEJ Virtual

Device MicroEJ OS MicroEJ Workbench

Core

Libraries

IO

NUM

FILE & DATA

COMM

NET& SEC

IoT

GUI

STORE

Development Tools

IDE

Application Designer

GUI Designer

Simulator

OS Builder

Virtual Device Builder

Virtual Device Loader

Table 6: MicroEJ SDK and MicroEJ Studio constituents

For more details on product packaging, go to:

http://www.microej.com/resources/packaging/

Page 39: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 39/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

12 PRODUCTS LICENSING For more details on product licensing, go to:

http://www.microej.com/resources/microej-licensing/

12.1 MicroEJ Studio MicroEJ Studio is free and can be used under the terms of its end-user license agreement.

12.2 MicroEJ SDK

MicroEJ SDK evaluation is free. Commercial use involves a fee for tools and production runtime

defined in dedicated end-user and production license agreements.

Note: special rates apply for universities/research and startups.

TRIAL LICENSE SUBSCRIPTION LICENSE PERPETUAL LICENSE

Validity 1 month Annual Perpetual

MicroEJ OS (Core & Libraries)

MicroEJ Workbench (IDE & Tools)

Maintenance - Included First year included

Helpdesk Included Included Included

Enterprise technical support - Optional First year included

Premium technical support - Optional Optional

Access to runtime license -

PRICING TOOLS LICENSE

FREE Per seat, per year Per seat, upfront + 20% yearly maintenance

PRICING RUNTIME LICENSE

- On volume shipments First 1,000 units free

On volume shipments

Table 7: MicroEJ SDK licensing

Page 40: MicroEJ Product Line Overview · 2016-06-24 · MICROEJ PRODUCT LINE OVERVIEW 4.0 JUN-16 PUBLIC 8/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE 3 MICROEJ

MICROEJ PRODUCT LINE OVERVIEW

4.0 JUN-16 PUBLIC 40/40 IS2T S.A. - 11, RUE DU CHEMIN ROUGE - 44373 NANTES CEDEX 3 - FRANCE

12.3 MicroEJ Store MicroEJ Store can be hosted either on MicroEJ servers and domains, or on specific servers and domains.

Note: special rates apply for universities/research and startups.

PUBLIC CLOUD

store.microej.com

WHITE LABEL

X.microej.com

PRIVATE CLOUD

store.X.com

TECHNOLOGY TRANSFER

store.X.com

Subscription validity Annual Annual Annual Perpetual

Hosting MicroEJ domain MicroEJ domain Specific server & domain

Specific server & domain

Branding MicroEJ Custom MicroEJ customizes existing frontend (web client) for your brand

Custom Develop your own frontend using REST APIs

Custom Full source code (except proprietary tools in backend build server)

Publication of virtual devices

Limited Under same brand

Limited Under same brand

Unlimited Under your brand

Unlimited Under your brand

Fleet size Number of devices registered with the Store

Limited Limited Limited Unlimited

Publication of apps Monetization Moderation

Under MicroEJ T&C Under MicroEJ T&C Under your own T&C Under your own T&C

Maintenance Included Included Included First year included

User support Administration

Included Included - -

Developer technical support Customization/Dev

- - Included First year included

PRICING FREE for MicroEJ SDK licensees

Per brand, per year Per domain, per year Per company, upfront + yearly maintenance

Table 8: MicroEJ Store licensing