Difference between revisions of "WISE-PaaS 2.0 EI-Agent"

From ESS-WIKI
Jump to: navigation, search
(Add Architecture)
Line 5: Line 5:
 
*Standardization - The communication protocol is based on the [http://mqtt.org/ MQTT protocol] to communicate and exchange data with WISE-PaaS/RMM Server. The IoT sensor data report format is following the [http://www.ipso-alliance.org/ IPSO Spec.] in [http://www.json.org/ JSON format].
 
*Standardization - The communication protocol is based on the [http://mqtt.org/ MQTT protocol] to communicate and exchange data with WISE-PaaS/RMM Server. The IoT sensor data report format is following the [http://www.ipso-alliance.org/ IPSO Spec.] in [http://www.json.org/ JSON format].
 
*Portability - Whole framework is written in C language and follow the [https://en.wikipedia.org/wiki/ANSI_C ANSI C Standard], that C compilers are available for most systems and are often the first compiler provided for a new system.
 
*Portability - Whole framework is written in C language and follow the [https://en.wikipedia.org/wiki/ANSI_C ANSI C Standard], that C compilers are available for most systems and are often the first compiler provided for a new system.
*Scalability - The WISE Agent Framework is functional partitioning into discrete scalable, reusable modules, and plug & playable.
+
*Scalability - The WISE Agent Framework is functional partitioning into discrete scalable, reusable modules, and plug & playable. 
  
  
  
For scalability, Advantech implements several '''Software Modules''' to access sensor data or control target device, we called '''Plugins '''(or Handlers we called before).
+
== Architecture ==
 
 
Each plugin can be designed to handle specific jobs, such as:
 
 
 
*'''Sensor Plugin''': the plugin access sensor data through '''Sensor driver''' or '''3rd party library''', or
 
*'''Remote Control Plugin''':  the plugin execute remote command on target device.
 
 
 
Based on those Plugins, Advantech also defined a set of APIs, called '''Plugin (Handler) APIs''', to support custom plugins implementation.
 
  
User can implement their own Handler with these Plugin (Handler) APIs to access their sensor data or control their devices and plugged by WISE Agent to communicate with RMM Server.
+
The EI-Agent Framework is extracted from [[WISE-Agent|WISEAgent Framework]] for severial purpose:
  
 +
*Lightweight: Extract and implement common handshake protocol to communicate with WISE-PaaS 2.0 Server.
 +
*Various Communication Protocol: Extract the Communication Part as a WISEConnector Module. In WISEConnector we can implement various portocol, such as: MQTT, AMPQ, Web Socket, HTTP, to support different communication protocol.
  
 
+
[[File:EI-Agent.png]]
== Architecture ==
 
  
 
== [[EI-Agent_Command_Format|EI-Agent Handshake Protocol]] ==
 
== [[EI-Agent_Command_Format|EI-Agent Handshake Protocol]] ==

Revision as of 04:39, 17 May 2017

EI-Agent – a software development framework to communicate between device and IoT/EI-PaaS Server.

Advantech provides a software development framework to communicate and exchange information between a device and IoT/EI-PaaS Server, called a EI-Agent framework.
The EI-Agent framework provides a rich set of user-friendly, intelligent and integrated interfaces, which speeds development, enhances security and makes agent application easier and simpler to communicate with IoT/EI-PaaS Server.
The framework has three benefits:

  • Standardization - The communication protocol is based on the MQTT protocol to communicate and exchange data with WISE-PaaS/RMM Server. The IoT sensor data report format is following the IPSO Spec. in JSON format.
  • Portability - Whole framework is written in C language and follow the ANSI C Standard, that C compilers are available for most systems and are often the first compiler provided for a new system.
  • Scalability - The WISE Agent Framework is functional partitioning into discrete scalable, reusable modules, and plug & playable. 


Architecture

The EI-Agent Framework is extracted from WISEAgent Framework for severial purpose:

  • Lightweight: Extract and implement common handshake protocol to communicate with WISE-PaaS 2.0 Server.
  • Various Communication Protocol: Extract the Communication Part as a WISEConnector Module. In WISEConnector we can implement various portocol, such as: MQTT, AMPQ, Web Socket, HTTP, to support different communication protocol.

EI-Agent.png

EI-Agent Handshake Protocol

Denfine the MQTT publish/subscribe topics and payload data JSON format.

EI-Agent Sample Client

  • Sample Client - Simple client application example.


EI-Agent Sample Handler

  • ModbusSample - only support Modbus-TCP and Modbus-RTU.

ModbusSample is one of handlers in EI-Agent framework and is used to collect devices’ data based on Modbus TCP or RTU protocol.
The library used in ModbusSample is libmodbus, which is a 3rd party free library to send/receive data according to the Modbus protocol.
This library is written in C and supports RTU (serial) and TCP (Ethernet) communication. The license of libmodbus is LGPL v2.1v.

Source Code