Top Banner
1
35

Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Jun 27, 2018

Download

Documents

vuongkhuong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

1

Page 2: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Description of a typical M2M chain:

•An asset is a machine which needs to communicate over the net, without human

operator intervention.

•There can be one or many assets; one of them used as a network gateway.

•Communication generally happens over the air, to preserve mobility and/or simplify

logistics.

•A backend keeps asset info always available, presents them to 3rd party services and

front-end.

•Frontend can be custom, but doesn’t have to: we provide a sane and functional default,

which only requires a bit of config.

This chain requires many very different skills: hardware, antennas, embedded software,

wireless network, server, UI, IT; extremely few companies will have all these skills at

once, and assembling them from many subcontractors is no piece of cake either.

2

Page 3: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Typical asset: valuable, in a remote position, needs to report events about itself

(including failures) and/or it environmnent to the company owning it.

3

Page 4: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

We’re primarily a hardware company, we’ve plenty of HW options to offer: chips, PCB,

reference designs, PCCards, routers, programmable modems… from a few dozen $ to

many $100’s, depending on integration, volume, I/O, programmability, CPU…

4

Page 5: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

We also offer a standard front-end, which can be heavily personalized. Based on

widgets, role-based views. Fits most B2B needs: alerts reporting, large fleets

management, data consolidation, provisionning, billing…

5

Page 6: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Anotherr view composed of standard widgets.

6

Page 7: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Example of a custom front-end, targetting non-professional operators (public streetlights

maintenance).

7

Page 8: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

A home automation system front-end, handling home alarm, heating systems, etc.

8

Page 9: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Back to the global view. The backend here is quite simplified…

9

Page 10: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

…but that’s our business, not the customer’s:

He’s got a physical asset, a frontend (UI and/or REST API), and the latter faithfully

represents the former. The rest ought to remain black magic.

10

Page 11: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Conversely, the situation is often simpler on the embedded side:

only one custom logical asset,

which is physically hosted on the gateway device’s CPU.

11

Page 12: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Only one custom logical asset, which is physically hosted on the device CPU.

12

Page 13: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

13

Page 14: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

What’s useful from the non-developer customer’s PoV.

14

Page 15: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

What the developers see.

15

Page 16: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Basic architecture: two processes if possible, although we can run in a single one.

In any case, assets and agent only talk through a serialized RPC link. Keeps things

cleaner/clearer.

16

Page 17: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

One process per asset if possible, it avoids parasitic interactions, discourages avoidable

couplings, and makes it easier to pinpoint bugs.

17

Page 18: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Assets don’t have to run on the same CPU, the serialized RPC can go over physical links.

18

Page 19: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

19

Page 20: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

The thread control and communication API.

20

Page 21: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Some simple examples of thread API events and calls.

21

Page 22: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

On POSIX, need to justify why we didn’t reuse Copas, and why it wasn’t an instance of

the not-invented-here syndrome.

22

Page 23: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

23

Page 24: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Many serialized communication channels; this is the dual of easy inter-thread

communications: it enforces proper structuring at the scale where it matters. It also

open interesting capabilities.

24

Page 25: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

LTN12 really deserves more love than it gets. There are so many Lua libraries which

would be made more usable by being exposed as LTN12 filters, developers ought to

realize this.

25

Page 26: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

26

Page 27: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

There’s a continuum of options, from no development at all to completely developed

from scratch on independent hardware. An interesting sweet spot is Smart Automation,

only made possible because Lua makes code so flexible to write, use and move around.

27

Page 28: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

28

Page 29: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

A screenshot from the app definition pages of SmartAutomation (mapping Modbus

registers to sane variable names).

29

Page 30: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

A screenshot from the app definition pages of SmartAutomation (describing the

monitorin policy on a variable).

30

Page 31: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

Once the embedded application is deployed, it can be monitored through the usual

front-end.

31

Page 32: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

These services are portable, and not embedded-specific. Should soon be offered under a

free and business-friendly license.

32

Page 33: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

33

Page 34: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

34

Page 35: Typical asset: valuable, in a remote position, needs to ... · Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent

35