**Draft**
Announcement
With the Hanoi release, EdgeX Foundry announces the availability of EdgeX Ready.
What It Is
The EdgeX Ready program is about demonstrating the ability to work with EdgeX. The designation helps other community participants and solution vendors identify vendors who have gone through a self-assessment process to demonstrate that they are able to integrate one of their offerings with solutions using EdgeX. Those vendors who have joined the program are highlighted on the EdgeX Foundry website with an EdgeX Ready badge next to their logo.
The initial, “crawl,” phase of the “self-assessment process” is to simply validate a device profile. Users attest that they have authored a device profile and moved device-specific data through an EdgeX instance that they had set up themselves thereby demonstrating some familiarity with EdgeX and, more specifically, of device services and their associated device profiles. Upon submission and approval of their device profiles and sample data, the users’ logos will be badged on the EdgeX Foundry website.
We are initially launching with MQTT- and REST-based device profiles. This is just the beginning. With community interest, we will expand the program to support additional device services.
Self-Assessment Process
We ask the vendors to do the following:
- Instantiate an instance of the reference implementation of EdgeX with their device profile
Using a device that is described by their device profile, generate sample data, and send it to the appropriate device service
- Confirm that the data arrives in Core Data
- Validate their device profile using one of the tools provided by the Certification WG
- Submit their validated device profile and sample data to the EdgeX Ready program
This workflow diagram below may help with understanding the process:
Device Profile Validators
[TBD]
Required Public Materials
The following materials are required to included in the EdgeX Ready Program submission:
- Participation Form – PDF (.pdf), Word document (.docx), possibly Open Document Format (ODF) Text Document (.odt)
- Device Profile – YAML (.yaml)
- Associated sample data – JSON (.json)
- Sample data schema – JSON (.json)
- (Optional) UUID of the device profile, if validated using IOTech's DCT website, in the form of 123e4567-e89b-12d3-a456-426614174000
EdgeX Ready Development Workflow
1 Join the EdgeX User Program
Before you can participate in the EdgeX Ready program, we require that you have already joined the EdgeX User Ecosystem, a free program wherein you can let others in the community know that your organization is using EdgeX, collaborate with other EdgeX users, and participate in community activities. To join, please click here. To learn more about the EdgeX User Ecosystem and see who’s already there, please click here.
2 Write at Least One Device Profile
In our documentation, you will find a specification for device profiles (see: Device Profile Reference). For those that prefer reading the code to infer the specification, you can still do that, too! Start here with our Getting Started - Developers guide or hop right over to the EdgeX Foundry Project on GitHub and dive in deep.
3 Launch EdgeX Using a Cloud Template
We provide cloud-specific templates and how-to guides for instantiating a reference implementation of EdgeX in the cloud to minimize the domain knowledge required outside of the immediate device service and its associated IoT protocol. With these cloud EdgeX instances, users can verify that their device profile and sample data achieves the desired form within EdgeX. See our Examples Repository for both Azure and AWS cloud templates.
4 Send Data to EdgeX
Using your device, send device-specific data to the cloud- or local-based EdgeX instance that you've set up in Step 3 above. Verify that the incoming data achieves the desired form within EdgeX.
5 Capture Data Sent to EdgeX
We require that you provide a sample data set of data typically sent by your device. This sample data helps members within the community better understand how your device behaves and how it interacts with EdgeX. This sample data should be provided in JSON format.
6 Write Schema for Sample Data
We further require a schema for the sample data set from Step 5 in order for members of the community to be able to properly understand the sample data itself.
7 Validate Device Profile Syntax
We ask that you validate your device profiles using one of the tools provided by the Certification WG.
8 Complete and Sign the EdgeX Ready Participation Form
9 Submit Materials to EdgeX Ready
The following materials are required to included in the EdgeX Ready Program submission:
- Participation Form – PDF (.pdf) (from Step 8)
- Device Profile – YAML (.yaml) (from Step 2)
- Associated sample data – JSON (.json) (from Step 5)
- Sample data schema – JSON (.json) (from Step 6)
- (Optional) UUID of the device profile, if validated using IOTech's DCT website, in the form of 123e4567-e89b-12d3-a456-426614174000 (from Step 7)
Click here to submit these materials.
Availability
EdgeX Ready will be announced before the end of 2021.
Contributions
We at the EdgeX Foundry are very much interested in providing the EdgeX community with multiple options for validating device profiles for the EdgeX Ready Program. If you have your own EdgeX validator and would like to contribute the implementation as open-source or share the service with the EdgeX community and the EdgeX Ready program specifically, we are interested in hearing from you! Please reach out to us on Slack at #edgex-ready, email us at edgex-ready@edgexfoundry.org, or contact the Certification Team WG Chair directly at rodney@beechwoods.com and we can discuss next steps.
FAQ
What does it cost to join the EdgeX Ready program?
Nothing; it is a free program.
Do I need to have real sensors or devices to become EdgeX Ready?
No. You simply need to be able to demonstrate that you can get device-specific data into EdgeX as the sensor or device would—whether that be with an actual sensor or device, with a simulator, or manually injecting device-accurate data samples into EdgeX via the device's respective IoT protocol—to accomplish the EdgeX Ready program. Please remember that the community may use your sample data set to see if their EdgeX integration works with your device profile, so accurate sample data will lead to successful collaborations.
To-Do's
- Best practices on how to capture incoming data, re: 5. Capture Data Sent to EdgeX
- How to capture timing when coming up with a sample data set, re: 5. Capture Data Sent to EdgeX
- More details on what is accomplished with each step in the development workflow
- Do we address EdgeX Ready in relationship to a particular version (perhaps address this in the FAQ)?
- Link to the community page hosting EdgeX Ready approved device profiles and their sample data sets and schemas