UI development

Basics

UI connection
  • To interact with EVA ICS node, use HMI service, which provides HTTP (JSON RPC) API

  • Real-time events can be taken either from a HMI service web socket from a pub/sub server and Replication service connected to it.

Web applications

There is no standard of JavaScript-interface framework for EVA ICS HMI web applications. Integrators can choose any UI-framework available or use pure vanilla-JS.

Data of a web application can have two parts: public and private.

Structured data parts can be transformed or language-translated on-the-flow. See Serving structured data for more details.

Server Templates can be used to transform other data, such as HTML pages, on the server side.

Note

It is highly recommended to use EVA JS Framework, a JavaScript framework, which is used to quickly develop EVA ICS HMI web applications and handles authentication, interaction, events and other communication tasks.

If EVA JS Framework is used, switch API version to V4:

$eva.api_version = 4;

Authentication

The model

UI model
  • An application gets a session token using login HTTP RPC method.

  • The token can be used to call HTTP RPC methods and to subscribe to HMI web socket to receive real-time events.

  • The token can be switched to read-only mode for security purposes at any time.

  • After the session is over, login HTTP RPC method must be called to end the session and destroy the authentication token.

Note

It is highly recommended to use both pull (HTTP RPC item.state) and push (web sockets) stategies to handle events. Received events can be compared using ieid field, more recent events always have larger IEIDs.

Handling file uploads

See HMI file uploads.