Getting Started and Frequently Asked Questions
Prescriptive Getting Started Steps:
- Start reviewing positioning collateral
- From EdgeX web sites:
- EdgeX Wiki: https://lf-edgexfoundry.atlassian.net
- Commerce Project Wiki: https://lf-edgexfoundry.atlassian.netdisplay/FA/Commerce+Project
- Including this nice overview presentation (includes links to more media and videos): https://www.edgexfoundry.org/wp-content/uploads/sites/25/2018/11/EdgeX-Overview-111618.pdf
- Videos
- EdgeX YouTube channel: https://www.youtube.com/c/EdgeXFoundry
- Michael Hall gave a presentation in 2018 that covered the high level "What is EdgeX?" and "Why EdgeX?" questions: https://youtu.be/xQ4FbZRfSZA?t=368
- Review the EdgeX blog: https://www.lfedge.org/news-events/blog/
- From EdgeX web sites:
- Start reviewing developer “getting started”
- General/User's getting started: https://docs.edgexfoundry.org/Ch-QuickStart.html
- Developer's getting started: https://docs.edgexfoundry.org/Ch-GettingStartedDevelopers.html
- ((Integrators, Core developers, Device Service devs, Application Services devs)
- Download EdgeX as a container to play/experiment
- https://docs.edgexfoundry.org/Ch-GettingStartedUsers.html (Basic Docker getting started)
- https://docs.edgexfoundry.org/Ch-GettingStartedUsersNexus.html (EdgeX Nexus Docker repository)
- https://snapcraft.io/edgexfoundry (Ubuntu snap)
- ((Link to IOTech eval copies)
- ((Lennie: Nexus is pre-release docker images))
- ((Point to Delhi (or most recent official release) for new users)
- Start developing a device service:
- Things to consider:
- Previewing architecture through the Commerce Project
- Investigating related UPOS, WS-POS and other retail standards at OMG: https://www.omg.org/retail/index.htm
- Investigating related IOT standards and possibly pre-defined data structures at oneiota https://oneiota.org/oneiota_faq.pdf
- Starting with SDK and code: https://docs.edgexfoundry.org/Ch-GettingStartedSDK.html
- (( Try to ratify around data model stakeholders)
- (( ARTS left off with a couple of white papers around unified commerce and IOT in retail)
- (( Industrial internet, open fog, run by OMG; includes retail work group, focused on Edge. EdgeX working with IIC – could be a test bed)
- Things to consider:
- How to publish data via API?
- Generally data is published via device services into the Core Data elements
- Core Data APIs are documented here: https://docs.edgexfoundry.org/Ch-APICoreData.html?highlight=core%20data
- Core Data overview: https://docs.edgexfoundry.org/Ch-CoreData.html
- How to publish data to Core Data via MQTT?
- There is an MQTT device service called edgex-device-mqtt
- A Detailed example of configuring and using this is detailed at: https://docs.edgexfoundry.org/Ch-ExamplesAddingMQTTDevice.html
- (( Quick and dirty demo to show retail: t-log aggregation w/ dashboard)
- Do I define my own data structures?
- Perhaps - it is possible that others have provided similar data structures before you, so it is worth investigating with the Commerce Project before spending too much time detailing and defining new structures.
- Should I publish my data formats via Oneiota?
- The answer is: it depends. Projects like OneIota and OMG are trying to document data structures and models to reduce the complexity of integrating the thousands of IOT devices, and so it could be beneficial to all parties to work across standards bodies and re-use other definitions. In other cases it may be the right path to define your own based on domain experience.
- Does my device service need to offer command and control, or can it just publish data?
- What if I have my own way of managing devices? Do I need to refactor to use EdgeX?
- Can I use EdgeX to delegate management of devices below EdgeX to another entity?
- Are there any device management platforms that already support EdgeX?
- If I have configuration data for my devices, can EdgeX store it? How do I use it? If not, where do I store my state information?
- Is there an example of how to listen for published data, and can I filter data to only listen for specific sources? Is it like a pub/sub broker?
- The fastest way is to use the Rules Engine, which is an event-triggered framework based on Drools. https://docs.edgexfoundry.org/Ch-RulesEngine.html
- However, current work underway in the Edinburgh release is to allow development of application services, which will subscribe to the same data flow as the Rules Engine and allow custom application development
- Where do I publish my EdgeX software?
- (Need expand on OSS licensing)
- If you are improving EdgeX core software, there is a process to submit pull requests to the project:
- If you are creating new capabilities, such as new device services, there will be some debate as to whether it is broad enough to upstream into the EdgeX github, or whether it should be distributed independently (such as a very niche device specific implementation). The Commerce Project can help guide the proper path.
- Does my application or device service software have to be installed on the same server as the EdgeX installation?
- No. Device services or related applications can be distributed around the network as the framework is API driven. If there can be networked activity between the two endpoints, they don't have to be on the same system.
- How to get data to my app that is located off-premise?
- Export services allow the registration of API endpoints that can be invoked to pass data to other services. For example, if your cloud service has an API endpoint for receiving store data, EdgeX can be configured to invoke this API to deliver relevant data. More information can be found here: https://docs.edgexfoundry.org/Ch-ClientRegistration.html
- Can I certify my devices/software as "EdgeX Compliant"?
- EdgeX Foundry has just chartered a new Working Group around compliance and certification, so this is a work in progress. If you have strong feelings about the process, or experience from similar roles on other standards bodies, please feel free to join the WG!