Method and apparatus for data transformation and synchronization

By receiving, transforming, aggregating and analyzing data generated by IoT devices at edge servers, and selectively uploading the processed data to the cloud, the problem that cloud computing resources cannot process a large amount of IoT data in a timely manner is solved, and data processing efficiency is improved and Network bandwidth utilization.

CN113728608BActive Publication Date: 2025-02-14MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080029832.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-04-25
Filing Date
2020-03-30
Publication Date
2025-02-14
Estimated Expiration
2040-03-30

AI Technical Summary

Technical Problem

Due to the large amount of data generated by IoT devices, cloud computing resources may not be able to receive and process this data in a timely manner, resulting in excessive network burden and delayed data processing.

Method used

Receive data at the edge server, perform data transformation and aggregation, store it in the edge server database, and analyze the data. The processed data is optionally uploaded to the remote server over the network.

Benefits of technology

By processing data at edge servers, the demand for cloud computing resources is reduced, the efficiency and speed of data processing is improved, and the consumption of network bandwidth is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113728608B_ABST
    Figure CN113728608B_ABST
Patent Text Reader

Abstract

A computer-implemented method includes: receiving data from multiple devices at an edge server; transforming the data received from the multiple devices; storing the transformed data in an edge server database; performing analysis on the transformed data in the database; and selectively uploading the data to a remote server via a network.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Internet of Things (IoT) devices are expected to generate large amounts of data. The number of IoT devices in use is expected to exceed hundreds of millions. Such devices may be battery powered. The limitations of battery-provided energy mean that many, if not most, IoT devices will only have short-range wireless communication capabilities.

[0002] Cloud computing resources will likely be used to process the data generated by a large number of IoT devices. The networks used to transmit data to cloud computing resources may become burdened by the massive amount of data and may not be able to receive and process the data in a timely manner. Summary of the invention

[0003] A computer-implemented method includes receiving data from a plurality of devices at an edge server, transforming the data received from the plurality of devices, storing the transformed data in an edge server database, performing analysis on the transformed data in the database, and selectively uploading the data to a remote server via a network. BRIEF DESCRIPTION OF THE DRAWINGS

[0004] Figure 1 is a block diagram of a system for processing device data at a network edge according to an example embodiment.

[0005] Figure 2 is a flow chart illustrating a computer-implemented method of processing data from a device coupled to an edge server according to an example embodiment.

[0006] Figure 3 is a block diagram of a system for collecting flow data for an application corresponding to a selected scenario according to an example embodiment.

[0007] Figure 4 is a schematic block diagram of a computer system that implements one or more example embodiments. DETAILED DESCRIPTION

[0008] In the following description, reference is made to the accompanying drawings which form a part thereof, and in which specific embodiments that can be practiced are shown by way of illustration. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it should be understood that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the scope of the invention. Therefore, the following description of the exemplary embodiments should not be construed as limiting, and the scope of the invention is defined by the appended claims.

[0009] In one embodiment, the functions or algorithms described herein can be implemented in software. The software can be composed of computer executable instructions stored on a computer-readable medium or a computer-readable storage device, such as one or more non-transient memories or other types of hardware-based storage devices (local or networked). In addition, these functions correspond to modules, and modules can be software, hardware, firmware, or any combination thereof. Multiple functions can be performed in one or more modules as needed, and the described embodiments are only examples. The software can be executed on a digital signal processor, an ASIC, a microprocessor, or other types of processors running on a computer system, such as a personal computer, a server, or other computer systems, turning such a computer system into a specially programmed machine.

[0010] Functions can be configured to perform operations using, for example, software, hardware, firmware, etc. For example, the phrase "configured to" can refer to the logical circuit structure of a hardware element to implement the associated function. The phrase "configured to" can also refer to the logical circuit structure of a hardware element, a coding design for implementing the associated function of firmware or software. The term "module" refers to a structural element that can be implemented using any suitable hardware (e.g., processor, etc.), software (e.g., application, etc.), firmware, or any combination of hardware, software, and firmware. The term "logic" covers any function for performing a task. For example, each operation shown in the flowchart corresponds to the logic for performing the operation. Operations can be performed using software, hardware, firmware, etc. The terms "component", "system", etc. can refer to computer-related entities, hardware, and software, firmware, or a combination thereof in execution. A component can be a process, object, executable file, program, function, subroutine, computer, or a combination of software and hardware running on a processor. The term "processor" can refer to a hardware component, such as a processing unit of a computer system.

[0011] In addition, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any computer-readable storage device or medium. Computer-readable storage media may include, but are not limited to, magnetic storage devices such as hard disks, floppy disks, magnetic strips, optical disks, compact disks (CDs), digital versatile disks (DVDs), smart cards, flash memory devices, and the like. In contrast, computer-readable media, i.e., non-storage media, may additionally include communication media, such as transmission media for wireless signals and the like.

[0012] IoT and edge computing are characterized by the large amount of data generated by the millions of IoT sensors deployed. Due to connectivity and bandwidth limitations, this large amount of data cannot all be migrated to the cloud for storage and analysis, so it is necessary to be able to store, process, aggregate, filter and predict / analyze these data sets before migrating to the aggregated / filtered cloud.

[0013] Given the volume of data and logistical constraints, it becomes extremely important for organizations to deploy data solutions that provide native capabilities to store, process, analyze, filter, and then move that data between the edge and public / private clouds. None of the existing players in the edge data space offer this built-in capability.

[0014] Figure 1 is a block diagram of a system 100 for such a data solution. The system 100 includes many data generating devices, such as IoT sensors 110 that generate a large amount of data. The sensors 110 may also include wireless devices that act as sensors or even as actuators that respond to control signals and perform actions. In various embodiments, the number of sensors 110 may vary from one to hundreds, thousands, or more, thereby generating a large amount of data. The sensors may be battery powered and include a transceiver for wirelessly transmitting data. Some sensors may sense and transmit data at a high rate, such as multiple times per second, while other sensors may transmit once every few seconds or minutes or longer to save battery energy.

[0015] As shown at 115, the data is transmitted to an edge device, such as an edge server 120, which includes programming for implementing database functions such as SQL, where SQL stands for structured query language. The edge server 120 is a computing device running software that has the ability to receive and process data with very low latency delays. Examples of edge servers 120 include servers within an organization, such as servers within a data center, which can quickly receive data with very little time or delay between the transmission of the data and the receipt of the data by the edge server. The edge server 120 is configured with software to ingest large amounts of data from sensors (such as hundreds or thousands of sensors that transmit data every second or other time period) and from other running devices.

[0016] In some embodiments, the edge server 120 can communicate with a remote server 125 coupled via a network 130. The remote server can include cloud resources such as SQL servers, data lake storage devices, and other services. The network 130 can be a public network, such as the Internet, or a private network. The network 130 can include many nodes, including routers, switches, hubs, and other devices that are designed to receive and route data, such as data packets, and may perform functions on the data during transmission. Therefore, there may be significant delays in the network before the data even reaches its destination. The edge server 120 is a server located between the sensor 110 and the network 130. The edge server 120 can be coupled to receive data directly from the sensor 110 or from one or more other devices that receive data from the sensor 110. The edge server 120 can be coupled near the edge of the network 130 and can also be referred to as a gateway so that data from the sensor 110 quickly reaches the edge server 120 without the delay associated with sending data to other devices via the network.

[0017] In one embodiment, the edge server 120 includes a windowing and transformation component 135 that performs aggregation of data or other transformations of data. The windowing and transformation component 135 can operate on the data when receiving the data, or can receive a series of data during one or more time-based windows associated with each sensor 110. The windowing and transformation component 135 can perform functions on the data received from the sensor during the time window associated with the sensor. Such functions can include buffering the received data during the time window and transforming the data. Transforming data can include performing windowing aggregation and statistical analysis, such as average values, mean values, outlier identification, derivatives, standard deviations, and other types of data transformations, which can vary according to the environment / application sensed by the sensor. Further transformations may include aggregation of data, transforming data between rows and columns, grouping by aggregation, connecting data from different sensors, and other functions performed on a dedicated tool (ad-hoc) basis. In this context, a dedicated tool (ad-hoc) refers to the performance of data received and buffered during the corresponding time window of the sensor, rather than storing and retrieving data outside such a time window.

[0018] The transformed data is provided to a database engine 140, such as a SQL (Structured Query Language) database engine, where the transformed data may be stored, indexed, and made available in a relational database 142. The data in the database 142 may access capabilities for other functions 145 executed on the engine 140. The functions 145 may include various analyses of the data stored in the database 142, such as a number of different relational database functions, binary classification, linear regression, SQL execution, aggregation, relational queries, graph-based queries, or other types of analysis / functions that may be performed on data stored in a relational database format.

[0019] One such functionality includes one or more machine learning models. The machine learning model in one embodiment can be trained via a remote server 125 based on data provided from the edge server 120. The data provided from the edge server 120 can include sensor data 115 and analysis performed on the raw sensor data that can also be stored in the database 142. Several different applications, referred to as scenarios, are described below for which models can be generated to make predictions associated with these applications. Since model training can be a resource-intensive task, moving model training to a remote server ensures that the local resources of the edge server are not limited and can be applied to the collection and local analysis when data is collected. In one embodiment, the Azure ML (machine learning) model is provided via a remote server 125. Various functions written in different programming languages ​​can also be executed, including programs written in Python, Spark, Java, and other languages.

[0020] In addition to receiving data from edge server 120, remote server 125 may also provide device synchronization by providing data and deployment software packages to edge server 120. Business rules or security policies may be received from a remote server for implementation on edge server 120.

[0021] The edge server 120 offloads the transformed and aggregated data (data from the sensors) to the cloud / enterprise data center, remote server 125. Note that the edge server 120 is described in terms of software that can be executed on processing resources. In addition, the edge server 120 provides customers with the ability to configure custom retention policies for data on the edge before offloading the data to the cloud or private data center.

[0022] Considering the large amount of data generated at the edge of the network, the edge server 120 performs transformations on the generated data, such as aggregating the data streams flowing into the edge server 120. Most IoT sensors generate data at fixed time intervals, where each data point has a time attribute attached to it. Therefore, the edge server 120, via the windowing and transformation component 135, can perform windowing and time series specific processing on the edge.

[0023] In addition, edge servers 120 have the ability to perform in-database ML using native T-SQL functionality or using models 145 or algorithms written in R, Python, Spark, or Java. Customers will be able to train their models in the cloud, remote servers 125 using cloud-based scalable resources and analytics, and push the trained models to edge servers 120 for scoring via models 145.

[0024] The edge server 120 provides the above capabilities through native integration of analytical functions such as Azure Stream Analytics, without the need for external solutions to synchronize data between the edge and the public / private cloud. The edge server 120 is also scalable because more processing resources can be added to perform functions that are performed as more and more data volumes from more and more sensors are received.

[0025] Figure 2 2 is a flow chart illustrating a computer-implemented method 200 of processing data from a device coupled to an edge server 120. The method 200 begins with a plurality of devices, such as IoT devices, generating data and sending it so that it is received by an edge server in operation 210. Data may be received periodically from each of the plurality of devices. For different devices, such as sensors, the time period between the received values ​​may be the same or different. Sensors of the same type, such as temperature sensors, may have the same sensing and transmission period or frequency. Each value of the data representing a sensed parameter may be time-stamped. The edge server may receive data wirelessly from the plurality of devices without sending the data to the edge server via a common network.

[0026] At operation 220, the edge server transforms the data received from each of the plurality of devices. The transformation may include aggregating or otherwise combining the data via one or more statistical processes or other analyses. In some embodiments, data received during a specified time window, such as a device-specific window, may be transformed. The time window may be the same length for multiple or all devices, or the length of the time window may be different for each device or device type. A statistical or mathematical calculation may be one of the transformations of the data received during each device-specific window.

[0027] The transformed data is stored by the edge server in an edge server database at operation 230. The data so stored may include the transformed data.

[0028] At operation 240, method 200 may also include performing the various functions described above with respect to analysis function 145. The results may also be stored in database 142.

[0029] At operation 255, an action may be determined based on the result of the function performed. The action may be a function that implements a particular scenario of the system 100. Example scenarios are described below and may include generating an alarm and / or controlling various functions based on parameters sensed by the sensor 110. At operation 260, a control signal may be generated based on the function, and the control signal may be sent to one or more of the wireless devices at 265 for causing the action associated with the plurality of wireless devices to be performed. At operation 270, data and / or package updates are received at the edge server from the remote server.

[0030] Figure 3 is a block diagram of a system 300 that collects streaming data for an application 310 corresponding to a selected scenario. Figure 1 and 3 1. Like components in the same reference numerals. Real-time sensor data 115 is streamed from multiple sensors 110 to edge server 120. Edge server 120 includes windowing and transformation component 135 to transform the streaming data, and also includes engine 140 and function 145. Network 130 provides data from database 142 to cloud resource 325, which can be the same as remote server 125 or include remote server 125.

[0031] Application 310 may include a dashboard or other user interface for one or more scenarios. Application 310 may trigger uploading data from edge server 120 to cloud resource 325 via a user interface based on user-defined logic, or such uploading may be performed periodically. The uploaded data may be selected from database 142 or from the output provided by function 145, or a combination thereof in different embodiments. By executing function 145 on the data before uploading, local control actions may be taken in a timely manner, and the amount of data uploaded may be significantly less than the amount of data received from sensors and other devices, resulting in less network bandwidth being consumed.

[0032] The following are example use case scenarios for local scoring on edge server 120 and application 310. There are many more scenarios that can be implemented directly using system 100 or system 300. Each scenario will use a model or other analysis as part of a function 145 that is trained by historical data associated with the scenario.

[0033] Agricultural farms - Agricultural farms are characterized by the presence of a large number of sensors (temperature, humidity, moisture, etc.), each of which generates a large amount of data every few seconds. All of this data generated from these sensors is used to predict several factors, such as fertilizer requirements, crop spraying plans, and irrigation requirements via models or other analyses provided by functions 145 specific to this scenario. In view of the large amount of data generated by these sensors and the geographic location of these farms, uploading these data sets to Azure or other public / private clouds would be counterproductive. Before uploading to the cloud, the data sets are typically aggregated based on time windows (e.g., average 1 minute, average 5 minutes, average 15 minutes, etc.). In this scenario, the edge server 120 can be located in the farm, such as in a WiFi router or a local area network device.

[0034] Connected Vehicles - Connected vehicles are another example of a scenario where a large amount of data is generated at the edge. Large amounts of data need to be aggregated, processed, and then uploaded to cloud storage for further analysis through scalable computing resources. In addition, in the case of connected vehicles, scoring the data on the edge via ML models running on edge servers 120 is very important for providing real-time feedback to facilitate scenarios such as dynamic route planning, vehicle wear management, and temperature control of perishable items. In such a scenario, the edge server 120 can be located in each vehicle, or perhaps in a cellular tower that communicates directly with the car. However, switching between towers may increase complexity, making it more likely that the edge server 120 is located with the vehicle.

[0035] Oil and Gas Rigs - Oil and gas rigs located in the middle of the ocean or in remote geographical locations are characterized by the need to provide low-latency real-time analytics on data on the edge. These rigs are typically time-sensitive in nature and in most cases cannot afford the latency of pushing data to the cloud and performing analytics on the cloud. Data (primarily the last few minutes or hours of data) needs to be analyzed quickly to drive actions / results on the rig. For example, temperature, pressure, and volume data need to be analyzed and correlated in real time to control the pressure on a valve or the overall cooling of the rig. By moving the analytics and ML models to the edge server 120, the data can be analyzed and correlated in real time for such controls. The edge server 120 in this scenario may be processing resources local to the rig.

[0036] Security and surveillance – The security and surveillance industry is another example where real-time analysis of data at the edge is critical to ensure that systems can identify fraudulent attempts to bypass security.

[0037] Figure 44 is a schematic block diagram of a computer system 400 for implementing edge devices, servers, IoT devices, and other devices to perform methods and algorithms according to an example embodiment. Not all components need to be used in various embodiments.

[0038] An example computing device in the form of a computer 400 may include a processing unit 402, a memory 403, a removable storage device 410, and a non-removable storage device 412. Although the example computing device is illustrated and described as a computer 400, in different embodiments, the computing device may be in different forms. For example, the computing device may alternatively be a smartphone, a tablet, a smart watch, a smart storage device (SSD), or include information related to Figure 4 Other computing devices that may have the same or similar elements as shown and described. Devices such as smartphones, tablets, and smart watches are often collectively referred to as mobile devices or user equipment.

[0039] Although various data storage elements are shown as part of the computer 400, the storage may also or alternatively include cloud-based storage accessible via a network, such as Internet or server-based storage. Note also that the SSD may include a processor on which the parser may run, thereby allowing the parsed, filtered data to be transferred via an I / O channel between the SSD and main memory.

[0040] Memory 403 may include volatile memory 414 and nonvolatile memory 408. Computer 400 may include various computer-readable media—or be able to access a computing environment that includes various computer-readable media—such as volatile memory 414 and nonvolatile memory 408, removable storage 410, and non-removable storage 412. Computer memory includes random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) or electrically erasable programmable read-only memory (EEPROM), flash memory or other storage technology, compact disk read-only memory (CDROM), digital versatile disk (DVD) or other optical disk storage, magnetic tape, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium capable of storing computer-readable instructions.

[0041] The computer 400 may include or may access a computing environment including an input interface 406, an output interface 404, and a communication interface 416. The output interface 404 may include a display device, such as a touch screen, which may also be used as an input device. The input interface 406 may include one or more of the following: a touch screen, a touch pad, a mouse, a keyboard, a camera, one or more device-specific buttons, one or more sensors integrated in the computer 400 or coupled to the computer 400 via a wired or wireless data connection, and other input devices. The computer may operate in a networked environment using a communication connection to connect to one or more remote computers, such as a database server. The remote computer may include a personal computer (PC), a server, a router, a network PC, a peer device, or other common data stream network switches, etc. The communication connection may include a local area network (LAN), a wide area network (WAN), a cellular, Wi-Fi, Bluetooth, or other network. According to one embodiment, the various components of the computer 400 are connected to a system bus 420.

[0042] Computer readable instructions stored on a computer readable medium may be executed by a processing unit 402 of a computer 400, such as a program 418. In some embodiments, the program 418 includes software for implementing one or more methods described herein, such as sensing data, transmitting data, performing analysis, executing machine learning models, storing data, and other functions described herein. Hard drives, CD-ROMs, and RAM are some examples of items that include non-transitory computer readable media such as storage devices. The terms computer readable media and storage devices do not include carrier waves, as carrier waves are considered too ephemeral. Storage may also include networked storage, such as a storage area network (SAN). The computer program 418, together with the workspace manager 422, may be used to cause the processing unit 402 to perform one or more methods or algorithms described herein.

[0043] Example:

[0044] 1. A computer-implemented method includes receiving data from multiple devices at an edge server, transforming the data received from the multiple devices, storing the transformed data in an edge server database, performing analysis on the transformed data in the database, and selectively uploading the data to a remote server via a network.

[0045] 2. The method of Example 1, wherein the data received from each of the plurality of devices is periodically received from the plurality of wireless devices.

[0046] 3. The method of any one of Examples 1-2, wherein transforming data received from each of the plurality of devices comprises buffering and transforming data received during a specified time window.

[0047] 4. The method of example 3, wherein the specified time window is device-dependent.

[0048] 5. A method according to any of Examples 1-4, and also includes performing functions on stored data in an edge server database.

[0049] 6. A method according to Example 5, wherein the function includes executing a machine learning model for scoring, wherein the machine learning model is provided from a remote server.

[0050] 7. A method according to Example 6, and also includes determining an action based on the output of the executed function, generating a control signal based on the determined action, and transmitting the control signal to one or more devices in the device so that the action is performed.

[0051] 8. A method according to any of Examples 5-7, wherein the functions include one or more of the following to generate output: relational database functions, binary classification, linear regression, query execution, and aggregation.

[0052] 9. The method of example 8, further comprising storing the output in an edge server database.

[0053] 10. The method of any of Examples 1-9, and further comprising receiving updates at the edge server from the remote server.

[0054] 11. A method according to any one of Examples 1-10, wherein the network comprises a public network or a private network, and wherein the remote server comprises a cloud resource.

[0055] 12. The method of any one of Examples 1-11, wherein the plurality of devices comprises an IoT (Internet of Things) wireless sensor.

[0056] 13. A method according to any of Examples 1-12, wherein selectively uploading data to a remote server via a network includes uploading data in response to an on-demand request from an application.

[0057] 14. A method according to any of Examples 1-13, wherein selectively uploading data to a remote server via a network includes periodically uploading data.

[0058] 15. A machine-readable storage device having instructions for execution by a processor of the machine to cause the processor to perform operations to perform a method of managing a communication account. The operations include receiving data from a plurality of devices at an edge server; transforming the data received from the plurality of devices; storing the transformed data in an edge server database; performing analysis on the transformed data in the database; and selectively uploading the data to a remote server via a network.

[0059] 16. A device according to Example 15, wherein the data received from each of the multiple devices is periodically received from multiple wireless devices, and wherein transforming the data received from each of the multiple wireless devices includes buffering and transforming the data received during a specified time window.

[0060] 17. A device according to any one of Examples 15-16, wherein the operation also includes performing a function on data stored in the edge server database; determining an action based on the output of the performed function; generating a control signal based on the determined action; and transmitting the control signal to one or more of the devices so that the action is performed.

[0061] 18. An apparatus according to example 17, wherein the functionality includes one or more of the following to generate an output: relational database functions, binary classification, linear regression, query execution, and aggregation.

[0062] 19. An apparatus comprising a processor and a storage device coupled to the processor and having stored thereon a program for execution by the processor to perform operations. The operations include: receiving data from a plurality of devices at an edge server; transforming the data received from the plurality of devices; storing the transformed data in an edge server database; performing analysis on the transformed data in the database; and selectively uploading the data to a remote server via a network.

[0063] 20. The apparatus of example 19, wherein the data received from each of the wireless devices is received periodically from the plurality of wireless devices, and wherein transforming the data received from each of the plurality of wireless devices comprises buffering and transforming the data received during a specified time window. The operations further comprise performing a function on the data stored in the edge server database, determining an action based on an output of the performed function, generating a control signal based on the determined action, and transmitting the control signal to one or more wireless devices to cause the action to be performed.

[0064] Although several embodiments have been described in detail above, other modifications are possible. For example, the logic flows depicted in the accompanying drawings do not require the particular order or ordered order shown to achieve the desired results. Other steps can be provided from the described flows, or steps can be eliminated, and other components can be added or removed from the described systems. Other embodiments may be within the scope of the following claims.

Claims

1. A computer-implemented method comprising: receiving data from the plurality of devices at an edge server via a local wireless connection to the plurality of devices; transforming the data received from the plurality of devices; storing the transformed data in an edge server relational database having a database engine; performing analysis on the transformed data in the database via the database engine; executing a trained machine learning model on the stored transformed data on the edge server to perform scoring, the trained machine learning model being provided from a remote server; selectively uploading data from the edge server database engine to the remote server via a network including a router; determining an action based on the scoring performed by the trained machine learning model; generating a control signal to control one or more devices based on the determined action; as well as The control signal is transmitted to one or more of the devices so that the action is performed by the one or more devices based on the control signal. 2 . The method of claim 1 , wherein the data received from each of the plurality of devices is periodically received from a plurality of wireless devices.

3. The method of claim 1 , wherein transforming the data received from each of the plurality of devices comprises: Buffers and transforms data received during a specified time window. The method according to claim 3 , wherein the specified time window is device-dependent.

5. The method of claim 1, wherein performing analysis on the transformed data comprises performing one or more of the following to generate an output: relational database functions, binary classification, linear regression, query execution, and aggregation.

6. The method of claim 5, further comprising storing the output in the edge server database.

7. The method of claim 1, further comprising receiving updates at the edge server from the remote server.

8. The method of claim 1, wherein the network comprises a public network or a private network, and wherein the remote server comprises a cloud resource.

9. The method of claim 1, wherein the plurality of devices comprises IoT wireless sensors.

10. The method of claim 1, wherein selectively uploading data to the remote server via the network comprises: Data is uploaded in response to on-demand requests from applications.

11. The method of claim 1, wherein selectively uploading data to the remote server via the network comprises periodically uploading data.

12. A non-transitory computer readable medium having instructions for execution by a processor of a machine to cause the processor to perform operations to perform a method, the operations comprising: receiving data from the plurality of devices at an edge server via a local wireless connection to the plurality of devices; transforming the data received from the plurality of devices; storing the transformed data in an edge server relational database having a database engine; performing analysis on the transformed data in the database via the database engine; executing a trained machine learning model on the stored transformed data on the edge server to perform scoring, the trained machine learning model being provided from a remote server; selectively uploading data from the edge server database engine to the remote server via a network including a router; determining an action based on the scoring performed by the trained machine learning model; generating a control signal to control one or more devices based on the determined action; as well as The control signal is transmitted to one or more of the devices so that the action is performed by the one or more devices based on the control signal.

13. The non-transitory computer-readable medium of claim 12, wherein the data received from each of the plurality of devices is periodically received from a plurality of wireless devices, and wherein transforming the data received from each of the plurality of wireless devices comprises: Buffers and transforms data received during a specified time window.

14. The non-transitory computer-readable medium of claim 12, wherein performing analysis on the transformed data comprises performing one or more of the following to generate an output: relational database functions, binary classification, linear regression, query execution, and aggregation.

15. An electronic device, comprising: processor; as well as a memory device coupled to the processor and having a program stored thereon for execution by the processor to perform operations comprising: receiving data from the plurality of devices at an edge server via a local wireless connection to the plurality of devices; transforming the data received from the plurality of devices; storing the transformed data in an edge server relational database having a database engine; performing analysis on the transformed data in the database via the database engine; executing a trained machine learning model on the stored transformed data on the edge server to perform scoring, the trained machine learning model being provided from a remote server; selectively uploading data from the edge server database engine to the remote server via a network including a router; determining an action based on the scoring performed by the trained machine learning model; generating a control signal to control one or more devices based on the determined action; and The control signal is transmitted to one or more of the devices so that the action is performed by the one or more devices based on the control signal.

16. The electronic device of claim 15, wherein the data received from each of the wireless devices is periodically received from the plurality of wireless devices, and wherein transforming the data received from each of the plurality of wireless devices comprises: Buffers and transforms data received during a specified time window.

Citation Information

Patent Citations

  • Edge intelligence platform, and internet of things sensor streams system

    CN108353090A

  • Data processing device, data analyzing device, data processing system and method for processing data

    EP3462338A1