Proposed Barcellona Goals and MVP

Barcelona Goals

·         Stabilize the platform

·         Build community understanding of the platform

·         General majority agreement on the architecture

·         General majority agreement on micro services and APIs

·         General majority agreement on the development of an open, platform independent, technology agnostic platform for the IoT/edge

·         General agreement on temporary performance targets

Minimum Viable Product (MVP)

General

·         Review and agree/adjust micro service APIs

·         Review and agree/adjust object models

·         Improve/increase documentation especially for areas of extension (DS SDK, Export Services)

·         Harden/stabilize the platform

o   Works properly for the intended use case (it may not be 100% complete implementations for all use cases or parts of a protocol for example, but it provides enough implementation to sustain the demo use cases for Barcelona and could support extension to the full needs or protocol in the future)

o   Handles errors and exceptions gracefully

o   Contains proper unit and integration tests (lacking in DS, supporting services and others)

o   Follows good coding standards, and is well documented (following some prescribed standard per programming paradigm)

o   Performs within the target measures established for Barcelona

§  Examine Kura in detail and adjust performance targets accordingly

·         Deliver Docker containers that run on Intel chip for Linux, Window, Mac

Stretch goals

·         Deliver Docker containers that run on Arm chip for Linux

Device Service / DS SDK

·         Deliver initial set of 7 Device Services based on Dell contributions (Modbus, BACnet, Bluetooth, SNMP, MQTT, Serial (Fischertechnik), Virtual)

·         Clean up SDK (and DSs)

o   Improve documentation

o   Merge device-sdk into SDK tools

o   Improve tooling (Eclipse Plugin)

o   Cleanup scheduler

Stretch goals

·         Remove redundant code from Device Services/SDK to shared libraries

·         Redo/refactor Bluetooth and BACnet DS to be single micro service

·         Additional DS provided by additional community participation

Core & Supporting Services

·         Clean up some minor issues

o   Logging OOM, Remove Device Manager, etc.

Stretch goals

·         Implement configuration callbacks (allowing for configuration changes dynamically without service restart

·         Provide first Go replacements for Data, MetaData, Command (Dell has a start to these already)

Applications (including Export Services, Rules Engine/Analytics)

·         Pick and provide at least one cloud connector (Azure IoT Hub has been prototyped by Dell)

·         Offer MQTT, REST, ZeroMQ export

·         Offer JSON, XML, CSV (not done yet) formats

·         Improve module for encryption options

·         Deal with potential number of readings, number of client scale problem

Stretch goals

·         Implement 2nd cloud connector (ex: Amazon Greengrass, Watson, ???)

·         Add additional format offering (ex: Haystack, etc.)

·         Add hyperledger export option

Security

·         In general, define the EdgeX security story but postpone a lot of implementation to California

·         WG to agree on requirements

·         WG to agree on what security features are going to be in EdgeX and what’s going to be provided by the platform that EdgeX runs on (example:  the underlying platform must have a keystore)

·         WG to define what EdgeX security service(s) need to be eventually implemented

·         WG to define what security hooks need to be added to the existing micro services

o   How and to which services would APIs communicate with

·         WG to define what standards, protocols, etc. are going to be adhered to and followed by EdgeX (ex:  IIC specs, OAuth tokens, etc.)

·         WG to provide guidance on how security features can/should be tested

Stretch goals

·         Add stubbed hooks into micro service code

System Management

·         In general, define the EdgeX system management story but postpone a lot of implementation to California

·         WG to agree on requirements

·         WG to agree on what features are going to be in EdgeX and what is reserved for OS, 3rd party systems, other open source systems, etc.

·         WG to define what system management services need to be implemented as part of EdgeX (if any)

·         WG to define what system management hooks need to be implemented

·         WG to define any system management standards that will be followed/used in system management implementations (ex:  LWM2M)

Stretch goals

·         Add some simple system manage hooks/capability into BaseService of EdgeX micro services (Dell has already done some POC work with things like start, stop, …)

Testing/QA

·         Insure part of code review/code check is to insure proper unit/integration tests for the code are provided (backed up by code coverage statistics)

·         Create a blackbox testing framework to insure the APIs between services are not broken and to be able to measure performance of a micro service and across multiple micro services to insure targets are achieved

·         Automate blackbox testing on all micro services with each build

Build/CI

·         Agree on a base set of policies and procedures around code check in, code approval, governance, etc.

·         Utilize the existing LF build process with some additions noted below.

·         Create Docker containers and push them to Docker Hub via the build process

·         Anoint a Bug Czar to setup a bug management process and monitor, track, and address incoming bugs (along with general support issues across media channels)

Stretch goals

·         Automate creation of ARM build/containers.

Event Demo

·         Create a working group to define the use case and demo presentation

·         Work with the community to get hardware, sensors, etc. donated for the demo

·         Create a minimal user interface for EdgeX (could be based on Dell Fuse UI)

California Release Goals

·         Implement first security and system management services and tie to existing micro services

·         Improve performance

·         Introduce replacement services as appropriate (ex:  Go Core)

·         Demonstrate EdgeX in real world POC/Test Bed