Authors Open Retail Reference Architecture project
License CC-BY-4.0
Open Retail Reference Architecture Aug 6, 2021 © Copyright 2021, EdgeX Foundry ORRA sub-project This document is a product of the Open Retail Reference Architecture (ORRA) project which is a sub-project of EdgeX Foundry. Table of Contents 1. Overall Goals 1.1. A base foundation of retail-centric APIs at cloud and edge for building best-in-class retail experiences 1.2. A common application deployment platform for edge-native deployments 1.3. Consistent integration methods, drawing on cloud-native development practices 1.4. A comprehensive set of connectors for retail IOT devices 1.5. A community based on Open Source Software (OSS) principles to enable higher velocity of innovation 2. Key Indicators 2.1. Market Segments 2.1.1. Convenience Stores 2.1.2. Specialty Stores 2.1.3. Department Stores 2.1.4. Supermarkets and Hypermarkets 2.1.5. Discount Stores 2.1.6. Multichannel Stores 2.2. Use Cases 2.2.1. Inventory Tracking 2.2.2. Loss Prevention 2.2.3. Occupancy 3. Design Principles 3.1. Edge Native Cloud 3.2. Consistent tools and technologies from edge to cloud / cloud to edge 3.3. Composability, or infrastructure as code 3.4. Prejudiced Flexibility 3.5. Open Source vs Commercial 4. Node Lifecycle Phases 4.1. Imaging and Deployment 4.2. Onboarding 4.3. Orchestration and Deployment 4.4. Repair and replacement 5. Scope 1 Open Retail Reference Architecture 5.1. Supported Hardware architecture and OS 5.2. Supported GPUs 5.3. Edge-to-Cloud Consistency - APIs/SDKs/Protocols (Brad) 5.4. Software Components 5.5. Supported Standards 5.5.1. FIDO Device Onboard (FDO) 5.5.2. Open Container Initiative (OCI) 5.5.3. Kubernetes (K8s) 6. Platform 6.1. Platform Layers 6.1.1. Infrastructure 6.1.2. Edge Foundation Services 6.1.3. Applications 6.2. Components 6.2.1. EdgeX Foundry 6.2.2. Open Horizon 6.2.3. FIDO Device Onboard (FDO) 6.2.4. Flogo 7. Additional Information Questions and/or comments on this document can be sent to the ORRA Project via email to: EdgeX-ORRA@lists.edgexfoundry.org This work is licensed under a Creative Commons Attribution 4.0 International License Revision 90673b76. 2 Open Retail Reference Architecture 1. Overall Goals The initial phase of this paper has the goal to bring consensus amongst the group on what the joint reference architecture should be able to do and the kind of use cases that it should be able to address. In a future state, this document (or potentially a separate one) will aim to describe the goals that a retail organization (either a prospect and/or a customer of one or more of the entities represented by this group) and the ORRA group will accomplish by collaborating and engaging on this project. For this initial phase, the ORRA group has the following 5 main goals : 1.1. A base foundation of retail-centric APIs at cloud and edge for building best-in-class retail experiences (that allow multiple vendors, suppliers and projects to both utilize and implement the APIs) 1.1.1. Support the creation of new solutions that can leverage multiple heterogeneous components - As a reference architecture, this document describes the power of a blueprint based on various technologies and software components to address a wide range of analytics at the edge use cases driven by some of the latest trends such as computer vision and machine learning inference at the edge. 1.1.2. Enable new solutions which require the integration of software from multiple, heterogeneous, vendors and providers 1.2. A common application deployment platform for edge-native deployments (to minimize validation and integration testing required) 1.2.1. Promote reference implementations which take guesswork and risk out of architectural choices 1.2.2. Drive actions locally where your customers, applications and/or your operations reside 1.2.3. Demonstrate “edge AI” and edge analytics deployed with easy to re-use building blocks 1.3. Consistent integration methods, drawing on cloud-native development practices (so that integrating applications and data at the edge uses the same technology as at the cloud) 1.3.1. Reduce infrastructure costs, including duplicate infrastructure 1.3.2. Use fewer teams to manage more environments (cloud and on-prem devices) 1.3.3. Demonstrate that on-prem application integrations can be done with the same APIs, same methods, and same technologies as cloud integrations. Do not require two documents for the same vendor to integrate to the cloud and to the edge. 3 Open Retail Reference Architecture 1.4. A comprehensive set of connectors for retail IOT devices 1.4.1. Access data buried in devices, buildings and systems located at the edge 1.4.2. Improve actionable data and insights by getting data closer to the source 1.4.3. Move quicker by handling a variety of data sources with consistency 1.5. A community based on Open Source Software (OSS) principles to enable higher velocity of innovation 1.5.1. Bring a community along to support the effort, where a diversity of ideas raises the potential, and many eyes improve and harden the results. 1.5.2. OSS projects can provide benefit to industry standards bodies, allowing all parties to more quickly adopt industry relevant solutions and focus instead on domain specific problems 2. Key Indicators ● Call to Action: promote reference implementation and find customers that are willing to collaborate with us (i.e. feedback, POCs) ● Sensor fusion value prop as part of your digital journey, integration, frictionless, automation ● Explain how most use cases should be horizontal and cross segments ● Target Functions: Infrastructure: CTO, IT: CIO, Inventory Operations: COO, Distribution, Supply Chain 2.1. Market Segments 2.1.1. Convenience Stores Small stores that sell a variety of products, such as newspapers, magazines, candy, soft drinks, tobacco products, and lottery tickets. Convenience Store is generally a well situated, food-oriented store with a long operating house and a limited number of items. Convenience stores are often open longer hours than other types of retail establishments, making them convenient for customers. However, prices are often higher than in other types of stores. Consumers use a convenience store; to fill in items such as bread, milk, eggs, and candy, etc. 2.1.2. Specialty Stores Specialty stores are the retail establishments that specialize in the selling of a single type or specific range of merchandise and related items. These establishments typically concentrate their efforts on selling a single type or very limited range of merchandise. They concentrate on the sale of a single line of products or services, 4 Open Retail Reference Architecture such as Audio equipment, Jewelry, Beauty and Health Care, Clothing, Musical Instruments, Sewing Shops, and party supply stores. A typical specialty store gives attention to a particular category and provides a high level of service to the customers. Consumers are not confronted with racks of unrelated merchandise. Example: Banana Republic for clothing needs, Lululemon for workout clothing needs, Tanishq for jewelry and McDonalds, Pizza Hut, and Nirula's for food services. 2.1.3. Department Stores Department stores are large retail establishments that are made up of a number of sections, or departments. A specific group of products is available in each department, each of which specializes in selling a particular grouping of products. For example, under this compartmentalized arrangement, consumers go to one area of the store to purchase tableware and another area to acquire bedding. These typically are very large stores offering a huge assortment of "soft" and "hard goods; often bear a resemblance to a collection of specialty stores. A retailer of such stores carries a variety of categories and has a broad assortment at an average price. A department store usually sells a general line of apparel for the family, household linens, home furnishings, and appliances. They offer considerable customer service. Example: Large format apparel department stores include Macy’s, Ebony, IKEA, Shoppers Stop, and Westside. 2.1.4. Supermarkets and Hypermarkets Supermarkets and hypermarkets are retail establishments that were primarily involved with selling food. Many supermarkets carry other household products as well. Supermarkets are very similar to grocery stores, but they generally are larger and carry a wider selection of products. The supermarkets can be anywhere between 20,000 and 40,000 square feet (3,700 m2). A supermarket typically carries small household appliances, some apparel items, bakery, film developing, jams, pickles, books, audio/video, etc. A hypermarket is a large retail facility, or superstore, that carries a very wide variety of products under one roof, including groceries and a variety of non-food items. This is a self-service store consisting mainly of grocery and limited products on non-food items. HyperMarkets is a special kind of combination store that integrates an economy supermarket with a discount department store. A hypermarket generally has an ambiance which attracts the family as a whole. These retail establishments, which were primarily involved in providing food to consumers, have increasingly ventured into other product areas in recent years. They account for the vast majority of total food-store sales in America. Example: Safeway, Albertsons, WholeFoods, HEB, WINCO, etc. 2.1.5. Discount Stores Discount stores are stores that typically sell a broad range of products at lower prices than other retail establishments. However, they generally also offer lower levels of service than higher-priced retailers. These stores tend to offer a wide array of products 5 Open Retail Reference Architecture and services, but they compete mainly on price. They offer an extensive assortment of merchandise at affordable and cut-rate prices. Normally retailers sell less fashion-oriented brands. These retail outlets offer consumers a trade-off: lower prices (typically on a broad range of products) in exchange for lower levels of service. Indeed, many discount stores operate under a basic ‘‘self-service’’ philosophy. 2.1.6. Multichannel Stores These are retail establishments that sell products to consumers through a variety of channels, including catalogs, mail order, telemarketing, the Internet, and vending machines. They are also known as mail-order businesses and other non-store retailing establishments. The customer can shop and order through the internet or mail or other mediums and the merchandise is dropped at the customer's doorstep. 2.2. Use Cases 2.2.1. Inventory Tracking 2.2.1.1. USE CASE: All retailers need ways to track inventory including goods received, merchandise on shelf, and items sold. Oftentimes this is a very laborious process to have staff check the aisles, shelves, and stockroom periodically throughout the day. Such manual methods have lots of opportunities for errors and do not have real-time information. With the need to optimize the business and provide better customer service, sensors are in place to provide a near real-time accurate view of inventory. 2.2.1.2. DATA SOURCE: RFID tags are applied to high value items or boxes of small items to track movement of goods. AI vision processing can track the level of stock on shelves. Other types of low cost sensor tags are being tested to track in a more detailed level especially for clothing stores to identify misplaced items. 2.2.1.3. DATA FORMAT: Most of the above mentioned data sources make use of common data format or message protocols such as MQTT and REST API. 2.2.1.4. INDICATION: The means to flag inventory actions could vary widely depending on the store type, merchandise and promotional events. Notifications can be put up on message boards and checkout stations. For the case of quick serve restaurants, drive thru menu can be dynamically updated based on inventory levels. 2.2.1.5. BACKEND CONNECTION: Relevant events are to be forwarded to retailer’s backend system for syncing with ordering system, correlation with other stores, and more. 6 Open Retail Reference Architecture 2.2.2. Loss Prevention 2.2.2.1. USE CASE: Self or frictionless or cashierless checkout stations are getting more popular in most retail stores, convenience stores, and business locations. These are not staffed and thus need ways to monitor for intended theft or unintended mistakes. Scenarios such as missed scans, hiding barcodes, swapped merchandise accounts for a large percentage of retailers' loss.. 2.2.2.2. DATA SOURCE: An intelligent edge system is able to determine accurate insight on possibility of theft from reconciliation of multiple data sources. Data can come from POS transactions, barcode scan, weight scale, RFID reader, AI vision processing, just to name a few. 2.2.2.3. DATA FORMAT: Most of the above mentioned data sources make use of common data format or message protocols such as MQTT, REST API, Modbus, etc. 2.2.2.4. INDICATION: The means to flag or indicate a theft or loss might have happened will be the retailer’s decision. Some might choose a very visible method such as flashing a red light or sounding an alarm. Some might choose a more reserved method such as a message to the manager's mobile phone or an on screen icon. 2.2.2.5. BACKEND CONNECTION: Relevant events are to be forwarded to retailer’s backend system for consolidation and further analysis. 2.2.3. Occupancy 2.2.3.1. AS-IS: Current mechanisms to determine occupancy of a retail establishment are insufficient to produce a sufficiently reliable estimate to mitigate liability from COVID-related mandated maximums requiring staffing of entry and exit to manually count people. 2.2.3.2. TO-BE: Utilize multiple, heterogenous, sensors and actuators that signal human presence or absence to automatically estimate sufficiently accurate and precise occupancy, including segmentation by time, area (aka zone) and role (e.g. staff vs. patron). 2.2.3.3. KPI: In addition to elimination of staff at entry and exits, estimations of occupancy segmented by time, area, and role provide information which may be used to predict future occupancy and associated staffing requirements; prioritize areas for inventory checks, cleaning, or staff assignments; and if integrated with POS, CRM, or ERP systems provide occupancy information for system-specific KPI analysis (e.g. POS x CRM (member) x occupancy). 2.2.3.4. HOW-TO: Collect data from entry-exit automated door systems, shopping cart security, motion-sensors, interior and exterior security camera, staff RFID and/or Bluetooth locators, etc.. and push/pull via available protocols (e.g. MQTT, OPC-UA, ModBus, Kafka, ..) to/from EdgeX Foundry using appropriate OpenHorizon services on local enabled devices or gateways, process accordingly, push to data repository (e.g. Postgres, InfluxDB, 7 Open Retail Reference Architecture Min.io, ..), analyze using Jupyter notebooks and pipelines (n.b. Elyra-AI), and present using dashboard (e.g. Grafana, ..) 3. Design Principles 3.1. Edge Native Cloud The phrase “Edge Native Cloud” refers to the term “Cloud Native”, but with the intention to understand the unique requirements of deploying compute to the far, on-premises edge. That means bringing the same technologies (containers, microservices, service meshes, event buses) and the same practices (orchestration, scale, devops, agility), but resolving the new challenges the edge brings (finite compute, low/no backhaul, security, expensive service calls). The broad set of challenges means that often shortcuts are taken during proof of concept or pilot phases, but for maximum utility this architecture strives to resolve all of them. 3.2. Consistent tools and technologies from edge to cloud / cloud to edge One of the most important principles of this architecture is to utilize the same technologies as utilized in the cloud. Specifically, this includes the use of OCI-compliant container runtimes (such as Docker and Podman) and Kubernetes. Enterprises have already made the leap to the cloud, and most organizations have long term cloud investment strategies in play. The edge should not introduce yet another set of technologies, processes, or tools that a team needs to learn or support. Ideally the enterprise team can seamlessly support and move between environments with ease. 3.3. Composability, or infrastructure as code The principles of composability, along with infrastructure as code (IAC), mean that the architecture should be built, imaged, and deployed with automation. This creates reproducible results and allows teams to support large numbers of devices distributed across large geographic areas. Utilizing IAC means the central teams can deploy compute, storage and networking with code, and use common software change control and management techniques to maintain consistency and quality across the fleet. 3.4. Prejudiced Flexibility The phrase “prejudiced flexibility” means that the architectural choices laid out in ORRA will be chosen, but will be included and presented in a way to support ultimate choice and flexibility. For a mundane example, a project that is indicated for the service mesh component will be the primary ingredient included in subsequent collaterals, yet the authors understand that unique or unknown end user requirements may drive a different project selection. 8 Open Retail Reference Architecture A more elaborate example is the focus in this architecture on Container-based application packaging. Besides being in line with prevailing trends in software engineering, this prejudice enables a cascading set of simplifying assumptions -- including the use of EdgeX Foundry, Open Horizon, etc.. Doing so should not prevent VM-based and other application packaging technologies from being provided in other embodiments or through extensions. Perhaps the largest value of the ORRA collaterals will be the documented reasoning provided for any given selection. Even if the audience were to disagree with every single decision they can still study and learn about why the decisions were made and ultimately reinforce the decision making required for their situation. 3.5. Open Source vs Commercial It is no accident that ORRA is founded under EdgeX Foundry and the Linux Foundation. Ideally the architecture is based around open source components that have commercial support offerings available on the market. Building around open source means greater community, innovation and inclusion, and commercial support means that downstream adopters have confidence that they can find the support systems required by their organization. Not all ingredients are likely to fit this principle perfectly, but it is the preferred approach. The architecture is meant to be used in mixed OSS and proprietary environments, and integrating commercial applications should be as easy as any other application. 4. Node Lifecycle Phases The purpose of calling out lifecycle phases is to be inclusive of the various stages that an edge compute node undergoes throughout its active life. Rather than sit in an ivory tower and pontificate on the ideal edge compute stack when it is fully utilized, the architecture instead needs to understand the requirements of different phases of its life. 4.1. Imaging and Deployment The scope of Imaging and Deployment is to understand the needs of the deployer, typically a System Integrator (SI) or Information Technology Outsourcer (ITOOTI), who has to build, image and ship thousands, or even tens of thousands, of computers and programmable devices to the various destination locations. Unlike on-site teams which may be able to build all of the computers for their campus, distributed teams are required for distributed edge compute deployments. And unlike homogeneous public cloud environments where thousands of similar servers are supported in a single region, zone, or physical data center, these heterogeneous devices will be in various shapes and sizes, and coming from multiple different suppliers, and being routed to multiple different destinations. Managing golden images is no longer able to cut it. 9 Open Retail Reference Architecture 4.2. Onboarding Onboarding refers to the phase when devices are unboxed, connected to power and the network, and become a functional edge compute node. There is of course a manual method of onboarding through physical configuration of the device, but the goal is to make this zero touch, so that any available person can connect up the device, and then automation takes over the personalization and provisioning of the node. Clustering, if applicable, is often closely entwined with this phase. 4.3. Orchestration and Deployment This phase is generally the phase that most technologists envision: when the edge nodes are actively participating in the network, and software workloads are being dispatched to the nodes. This phase needs to incorporate poor network connectivity, local orchestration, identification and utilization of accelerators and heterogeneous compute resources. 4.4. Repair and replacement When compute resources reach the end of their lifecycle, they will need to be repaired, retired or replaced. It may be due to hardware failure or performance reasons, but regardless there will be requirements around unprovisioning, secret storage removal, and related end of life challenges. This phase also includes telemetry and monitoring as those are critical measures of health and stability. 5. Scope 5.1. Supported Hardware architecture and OS Hardware architecture OS and version x86_64/amd64 Ubuntu 18.04 (bionic) x86_64/amd64 Ubuntu 20.04 (focal) arm64/aarch64 Ubuntu 18.04 (bionic) arm64/aarch64 Ubuntu 20.04 (focal) * RHEL 8.3 support on PPC64le requires installation of Docker. 5.2. Supported GPUs Regarding GPU and other hardware support, it will mostly depend on the container runtime and libraries being used on each edge node for workloads being deployed to those nodes. For the sake of this document, usage of achatina will be assumed. 10 Open Retail Reference Architecture 5.3. Edge-to-Cloud Consistency - APIs/SDKs/Protocols In defining an edge built on cloud principles, it is important that the edge architecture provides a similar, if not equal, set of services for the software developer. As an example, if a cloud developer is authoring container-based microservices that adopt universally accepted telemetry services, then we would expect those same services to function at the edge as well. The goal is not to require the developers to learn a new set of tools, capabilities or practices for the edge in order to create transportability of workloads from clouds to the various kinds of edges. To that end the team will be continuing to refine what needs to be specified and/or delivered by ORRA in order to provide cloud consistency to edge deployers. This is likely to include telemetry, key-value storage, function as a service engine, service meshes, and more. Further, in a similar vein to digital twins, it may be necessary to create local data caches for unreliable cloud connections, and possibly even require creativity or proxy solutions when cloud applications deployed at the edge expect local API services that are not actually available locally. Resource synchronization, database replication, or custom network routing are other potential areas for making the edge an adoptable, high velocity platform for innovation. 5.4. Software Components 5.4.1. EdgeX Foundry 1.3 5.4.2. Open Horizon 4.2.1 5.4.3. Secure Device Onboard 1.10.1 5.4.4. Flogo 5.5. Supported Standards Any industry or technology standards and specifications that are officially supported by ORRA are referenced here. 5.5.1. FIDO Device Onboard (FDO) “An automatic onboarding protocol for IoT devices. Permits late binding of device credentials, so that one manufactured device may onboard, without modification, to many different IOT platforms.” The SDO project within LF Edge provides an implementation of the FIDO Device Onboard (FDO) specification. 11 Open Retail Reference Architecture 5.5.2. Open Container Initiative (OCI) The Open Container Initiative is an open governance structure for the express purpose of creating open industry standards around container formats and runtimes. Established in June 2015 by Docker and other leaders in the container industry, the OCI currently contains two specifications: the Runtime Specification (runtime-spec) and the Image Specification (image-spec). The Runtime Specification outlines how to run a “filesystem bundle” that is unpacked on disk. At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle. At this point the OCI Runtime Bundle would be run by an OCI Runtime. ORRA will utilize OCI compliant container images and OCI compliant container runtimes. 5.5.3. Kubernetes (K8s) “... [A]n open-source system for automating deployment, scaling, and management of containerized applications.” The Open Horizon project within LF Edge enables remote, autonomous deployment of containerized workloads to both Kubernetes clusters and Docker hosts. It primarily utilizes the K8s API and the Operator SDK. 12 Open Retail Reference Architecture 6. Platform 6.1. Platform Layers The purpose of this diagram is to sort the scope of work and responsibilities of the edge architecture into compatibility layers. The layers should encourage confidence that work done in higher layers is portable to other platforms with similar layers. For example, container-based applications in the “Applications” layer should be portable to edge nodes running various flavors of Linux or even Windows (via Windows Services for Linux). If the applications consistently use an event bus, then relocations or integrations on other platforms should be predictable if they use the same event bus, and if deployed in linux containers, should be portable to most other systems that support linux containers. Each rectangle (or group of rectangles in the case of the grey clusters), should be included in the architecture. The dotted lines suggest contracts, or dependencies, that one layer exposes to another. Care should be considered with the contracts to balance consistency of experience without overly specifying an onerous contract.. 6.1.1. Infrastructure This layer refers to the hardware, operating systems and device drivers which make up the base of any edge node architecture. 13 Open Retail Reference Architecture 6.1.2. Edge Foundation Services This layer designates the software required to operate and support the edge node, such as provisioning, onboarding, storage, telemetry, container daemons, clustering middleware, etc. The contract exposed up to the applications layer is the set of services enabled for containers and virtual machines to run portably across environments. 6.1.3. Applications The Applications layer is quite large but if the architecture is designed suitably, this layer can be portable across nodes that offer similar edge native or cloud native services. This layer contains the event bus, the IOT platform, the edge analytics services, and the suite of cloud native applications (micro services, serverless engines, service meshes, etc). 6.2. Components The major platform components (listed alphabetically) are EdgeX Foundry, Open Horizon, and Secure Device Onboard, meaning that their function within the Reference Architecture is not optional, and the use cases would not be possible without those components or suitable replacements. However, other solutions are involved as dependencies and also may have suitable alternatives available. Those solutions being used as default sub-components are also called out below along with valid substitutions noted. 6.2.1. EdgeX Foundry 6.2.1.1. Overview 14 Open Retail Reference Architecture EdgeX Foundry is an open source, vendor neutral, flexible, interoperable, software platform at the edge of the network, that interacts with the physical world of devices, sensors, actuators, and other IoT objects. In simple terms, EdgeX is edge middleware - serving between physical sensing and actuating "things" and our information technology (IT) systems. EdgeX is made up of a collection of micro services. The micro service architecture serves several important features of the platform: ● The micro services can be distributed across a set of hosts, allowing EdgeX to maximize resources while at the same time position more processing intelligence closer to the physical edge. ● Because the micro services are loosely coupled to one another, it allows any one of the services to be quickly and easily replaced (as in an upgrade, through efforts of another project, by a commercial implementation adding value with its implementation, etc.). ● Each micro service can be implemented in the technology best suited for the use case, host environment, or circumstances of the implementing organization. EdgeX Foundry was conceived with the following tenets guiding the overall architecture: ● must be platform agnostic with regard to hardware, OS, distribution, deployment/orchestration, protocols. ● must be extremely flexible. ● provides a "reference implementation" set of services but encourages best of breed solutions. ● must provide for store and forward capability in order to support disconnected/remote edge systems and to deal with intermittent connectivity. ● must support and facilitate "intelligence" moving closer to the edge in order to address latency concerns, bandwidth and storage concerns, and remote/independent operations. ● must support brown and green device/sensor field deployments. ● must be secure and easily managed. 6.2.1.2. Architecture The EdgeX platform consists of micro services in three layers. 15 Open Retail Reference Architecture ● Device Services Device services (see the bottom layer of services in the diagram above) translate information coming from devices via hundreds of protocols and thousands of formats and bring them into EdgeX. In other terms, device services ingest sensor data provided by “things”. When it ingests the sensor data, the device service converts the data produced and communicated by the “thing” into a common EdgeX Foundry data structure, and sends that converted data into the core services layer, and to other micro services in other layers of EdgeX Foundry. Device services also receive and handle any request for actuation back to the device. Device services take a general command from EdgeX to perform some sort of action and it translates that into a protocol specific request and forwards the request to the desired device. ● Application Services Application Services (see the top layer of the services in the diagram above) are a means to get data from EdgeX Foundry to external systems and processes (be it analytics package, enterprise or on-prem application, cloud systems like Azure IoT, AWS IoT, or Google IoT Core, etc.). Application Services provide the means for data to be prepared (transformed, enriched, filtered, etc.) and groomed (formatted, compressed, encrypted, etc.) before being sent to an endpoint of choice. Application Services are based on the idea of a "Functions Pipeline". A functions pipeline is a collection of functions that process messages (in this case EdgeX event/reading messages) in the order that you've specified. The first function in a 16 Open Retail Reference Architecture pipeline is a trigger. A trigger begins the functions pipeline execution. A trigger is something like a message landing in a watched message queue. ● Core Services Core services (see the middle layer in the diagram above) provide the intermediary between the north and south sides of EdgeX. As the name of these services implies, they are “core” to EdgeX functionality. Core services is where the innate knowledge of “things” connected, sensor data collected, and EdgeX configuration resides. Core consists of the following micro services: ■ Core data: a persistence repository and associated management service for data collected from south side objects. ■ Command: a service that facilitates and controls actuation requests from the north side to the south side. ■ Metadata: a repository and associated management service of metadata about the objects that are connected to EdgeX Foundry. Metadata provides the capability to provision new devices and pair them with their owning device services. ■ Registry and Configuration: provides other EdgeX Foundry micro services with information about associated services within the system and micro services configuration properties (i.e. - a repository of initialization values). In addition to device, core and application services, are: - optionally used supporting services encompass a wide range of micro services to perform normal software application duties such as scheduling, notifications/alerting and a reference rules engine for analytics. - security services that protect the system secrets in secure storage and a reverse proxy to restrict access to EdgeX REST resources and perform access control related works. - system management facilities are optional and provide the central point of contact for external management systems to start/stop/restart EdgeX services, get the configuration for a service, the status/health of a service, or get metrics on the EdgeX services (such as memory usage) so that the EdgeX services can be monitored. EdgeX, as an open source platform, leverages several open source sub-components to include: Redis - database (and Redis Streams for messaging) Vault - for secure storage Kong - API Gateway Consul - service registry and configuration Kuiper - rules engine (and fellow LF Edge project) 6.2.1.3. Ecosystem 17 Open Retail Reference Architecture EdgeX was co-founded by over 50 companies in the Linux Foundation in April 2017. Today, EdgeX is a Stage 3 (Impact) project under the LF Edge umbrella. EdgeX has more than 200 contributors and has enjoyed more than 8 million container downloads in over half a million deployments across the globe. 6.2.1.4. Resources Web Site: www.edgexfoundry.org Documentation: docs.edgexfoundry.org Project Wiki: wiki.edgexfoundry.org Project Slack: https://edgexfoundry.slack.com Project Code: https://github.com/edgexfoundry/ 6.2.2. Open Horizon 6.2.2.1. Overview Open Horizon is an application and metadata delivery and management platform. It provides a policy-based mechanism to securely and autonomously deliver containerized workloads to edge compute nodes of varying sizes and capabilities and in various connected states. It allows workload and ML model management across fleets at hyperscale, from a single device to deployments of 40,000 nodes or greater, without requiring on-premises administration. Open Horizon helps Enterprises reduce costs by providing remote and autonomous application management. 6.2.2.2. Introduction Open Horizon is a platform for deploying containerized applications to edge computing nodes (both devices and clusters) and managing their service software lifecycle. It also has a Model Manager sync service for bi-directional synchronization to and from edge nodes for the deployment of machine learning assets. The platform is maintained by the Open Horizon open-source project within the LF Edge umbrella organization in the Linux Foundation. The platform is vendor-neutral and is intended to support and implement applicable open standards in the space. A key distinction of Open Horizon is the way that it scales, which allows a single administrator to manage a large fleet of tens of thousands of autonomous edge nodes by expressing intent through policies. Edge nodes are capable of operating in connected, partially-disconnected, or completely-disconnected states without issue. The Agent is responsible for initiating all communication with the Management Hub Services (primarily the Exchange), thus reducing the potential attack surface. To further ensure security, Open Horizon implements Perfect Forward Secrecy in all communications. 18 Open Retail Reference Architecture 6.2.2.3. Architecture ● Component Services The platform consists of two categories of component services: Agent and Management Hub. The Agent is written in Go and the Management Hub services in Scala. The platform is comprised of five logical components: ● Agent ● Exchange ● Agreement Bot ● Switchboard ● Model Manager ● Sub-Component Services Open Horizon also uses the following open-source solutions as sub-components: ● FIDO Device Onboard (FDO) This is used for zero-touch onboarding of devices to automate installation of the Agent, registration with the Exchange, and deployment of services. FDO is described in more detail later in this document. 19 Open Retail Reference Architecture ● CouchDB This is used for large object storage, and primarily in relation with the Model Manager. ● PostgreSQL This is used as a relational database by the Exchange to store system state. ● Vault This is used for shared secrets and configuration. ● microk8s (or k3s, OpenShift) The Open Horizon Agent can deploy and manage workloads on all K8s API-compatible Kubernetes clusters. ● Docker (or podman) Open Horizon deploys containerized applications and is intended to be compatible with container execution environments that support OCI-compliant containers. This includes the Docker engine on most hosts, and podman within Kubernetes. 6.2.2.4. Resources Project Page: https://www.lfedge.org/projects/openhorizon/ Project Wiki: https://wiki.lfedge.org/display/OH/Open+Horizon Communication: https://chat.lfx.linuxfoundation.org/ Code: https://github.com/open-horizon Documentation: https://open-horizon.github.io/ Mailing List and Calendar: https://lists.lfedge.org/ 6.2.3. FIDO Device Onboard (FDO) 6.2.3.1. Overview FIDO Device Onboard is a device onboarding scheme from the FIDO Alliance, sometimes called "device provisioning". Device onboarding is the process of installing secrets and configuration data into a device so that the device is able to connect and interact securely with an IoT platform. The IoT platform is used by the device owner to manage the device by: patching security vulnerabilities; installing or updating software; retrieving sensor data; by interacting with actuators; etc. FIDO Device Onboard is an automatic onboarding mechanism, meaning that it is invoked autonomously and performs only limited, specific, interactions with its environment to complete. A unique feature of FIDO Device Onboard is the ability for the device owner to select the IoT platform at a late stage in the device life cycle. The secrets or configuration data may also be created or chosen at this late stage. This feature is called "late binding". 20 Open Retail Reference Architecture Various events may trigger device onboarding to take place, but the most common case is when a device is first "unboxed" and installed. The device connects to a prospective IOT platform over a communications medium, with the intent to establish mutual trust and enter an onboarding dialog. Due to late binding, the device does not yet know the prospective IOT Platform to which it must connect. For this reason, the IOT Platform shares information about its network address with a "Rendezvous Server." The device connects to one or more Rendezvous Servers until it determines how to connect to the prospective IOT platform. Then it connects to the IOT platform directly. FIDO Device Onboard works by establishing the ownership of a device during manufacturing, then tracking the transfers of ownership of the device until it is finally provisioned and put into service. In this way, the device onboarding problem can be thought of as a device "transfer of ownership" or delegation problem. In a common situation for FIDO Device Onboard that uses the "untrusted installer" model, an initial set of credentials and configuration data is configured during manufacturing. Between when the device is manufactured and when it is first powered on and given access to the Internet, the device may transfer ownership multiple times. A structured digital document, called an Ownership Voucher, is used to transfer digital ownership credentials from owner to owner without the need to power on the device. In onboarding, an installer person performs the physical installation of the IOT device. In the untrusted installer model, the device takes no guidance on how to onboard from an installer person who has powered on the device. The FIDO Device Onboard protocols are invoked when the device is first powered on. By protocol cooperation between the Device, the Rendezvous server, and the new owner, the device and new owner are able to prove themselves to each other, sufficient to allow the new owner to establish new cryptographic control of the device. When this process is finished, the device is equipped with credentials supplied by the new owner. 6.2.3.2. Resources Project Page: https://www.lfedge.org/projects/securedeviceonboard/ Specification: https://fidoalliance.org/specs/FDO/fido-device-onboard-v1.0-ps-20210323/fi do-device-onboard-v1.0-ps-20210323.html#fido-device-onboard-base-profil e-normative 6.2.4. Flogo 6.2.4.1. Overview Project Flogo is an ultra-light, Go-based open source ecosystem for building event-driven apps. 21 Open Retail Reference Architecture The notion of triggers and actions are leveraged to process incoming events. An action, a common interface, exposes key capabilities such as application integration, stream processing, etc. ● App = Trigger(s) + Actions[&Activities] ● Triggers ○ receive data from external sources. ○ are managed by a configurable threading model ○ have a common interface enabling anyone to build a Flogo trigger. ● Handlers ○ dispatch events to actions ● Actions ○ process events in a manner suitable with the implementation ○ have a common interface enabling opinionated event processing capabilities 6.2.4.2. Ecosystem All capabilities within the Flogo Ecosystem have a few things in common, they all process events (in a manner suitable for the specific purpose) and they all implement the action interface exposed by Flogo Core. 22 Open Retail Reference Architecture 6.2.4.3. Resources Project Page: https://www.flogo.io/ 7. Additional Information Please check the ORRA Project wiki page for the latest version of this document and other related information. Demos can be found in the ORRA Github repository. 23