Delivery: ~June 2018
This main theme for the California release is to provide a solid open source foundation for deployment in a wide variety of edge use cases including the first implementation of priority APIs and reference services for security and system management. It will also improve EdgeX ease of use among a larger, more polyglot, development community.
Another key theme for the California release is improving overall performance and lowering the baseline footprint of the code base. Work is currently underway for drop-in alternatives for key microservices (e.g. Core Services, Export and Device Services) based in Go Lang which promises to offer a
Further exploratory work is being done for a message bus as an option to the current REST-based intercommunication between microservices.
Functionality is still being finalized by the TSC but directional themes are detailed below.
Release Themes and Objectives
- Deliver top priority security and system management APIs and reference implementations of supporting microservices (e.g. key management)
- Deliver on reliable platform promise
- Reduce overall footprint by an order of magnitude through alternative microservice implementations in Go Lang and possibly C
- Near real-time performance (future community extensions in planning for deterministic real time use cases)
- Improve overall performance and deliver to target performance #’s
- Provide additional reference connectivity
- Export Services (e.g. AWS/Greengrass)
- Device Services (e.g. OPC-UA)
- Device Service and Export Service SDKs in Go Lang
- Stretch goal: C-based Device Service SDK
- Demonstration of EdgeX in real-world POC/test bed, including through collaboration with the IIC
General Release Tasks and Notes
- Expand OS support
- Other flavors of Linux
- Mac
- Exploration of implications of RTOS
- Expand hardware support
- Arm
- Provide EdgeX User Interface(s)
Core and Supporting Tasks and Notes
- Meet all performance targets
- Alternative Go-based Core Services implementation
- More dynamic configuration
- Address use of Consul as config/registry?
- Implement security & system management API hooks
- Stretch goal: Go-lang based services for select Supporting Services
Application Tasks and Notes
- Implement security & system management API hooks
- Define and meet performance metrics
- Provide better scale in terms of number of clients
- Improve the number of messages exported/sec
- Support additional cloud integration(s)
- Ex: Watson, AWS/Greengrass, …
- Support additional export feature(s)
- Support additional formats (Ex: Haystack, OPC-UA, …)
- Support additional endpoint types (Ex: DDS, AMQP, …)
- Explore potential use of hyperledger
- Provide additional export capability
- Enrichment services
- How best to facilitate client command requests/actuation
Device Service SDK and Device Service Tasks and Notes
- Provide alternative SDK langauge support in Go Lang and possibly C
- Provide SDK Tool plugins to facility developers
- Ex: Eclipse plugin
- SDK download (non-github oriented)
- Provide new and/or updated Device Services
- Real BACnet or BLE
- Additional DS (i.e. Zigbee, OPC-UA, CANBus, …)
- Reduce/optimize Java DS (remove Spring Framework, etc.)
- Updates to SDK get propagated back out to existing DS via common shared libraries
- Implement security & system management API hooks
Security and System Management Tasks and Notes
- The first implementation of
- Ref Impl security micro services
- Demonstrate EdgeX management via System Management app of choice
- Ex: Pulse IoT Center, System Center, …
- Secty and Sys Mngmt API hooks in other micro services
- Security testing framework
- Demonstrate EdgeX software updates
- Updates to non-EdgeX components (drivers, end-devices)
- Root of trust – what defines and how to implement
- Code signing – how to certify integrity of the system