WEB SERVICES FOR SMART ENTITY CREATION AND MAINTENANCE USING TIME SERIES DATA
One or more non-transitory computer readable media contain program instructions that, when executed, cause one or more processors to: receive first raw data from a first device, the first raw data including one or more first data points generated by the first device; generate first input timeseries according to the data points; access a database of interconnected smart entities, the smart entities including object entities representing each of the plurality of physical devices and data entities representing stored data, the smart entities being interconnected by relational objects indicating relationships between the smart entities; identify a first object entity representing the first device from a first device identifier in the first input timeseries; identify a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity; and store the first input timeseries in the first data entity.
1 . One or more non-transitory computer readable media containing program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving first raw data from a first device of a plurality of physical devices, the first raw data including one or more first data points generated by the first device;
generating first input timeseries according to the one or more data points;
accessing a database of interconnected smart entities, the smart entities comprising object entities representing each of the plurality of physical devices and data entities representing stored data, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities;
identifying a first object entity representing the first device from a first device identifier in the first input timeseries;
identifying a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity; and
storing the first input timeseries in the first data entity.
2 . The one or more non-transitory computer readable media of claim 1 , wherein the relational objects semantically define the relationships between the object entities and the data entities.
3 . The one or more non-transitory computer readable media of claim 1 , wherein one or more of the object entities comprises a static attribute to identify the object entity, a dynamic attribute to store data associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
4 . The one or more non-transitory computer readable media of claim 3 , wherein the first input timeseries corresponds to the dynamic attribute of the first object entity.
5 . The one or more non-transitory computer readable media of claim 3 , wherein at least one of the first data points in the first input timeseries is stored in the dynamic attribute of the first object entity.
6 . The one or more non-transitory computer readable media of claim 1 , wherein the input timeseries includes the first device identifier, a timestamp indicating a generation time of the one or more first data points, and a value of the one or more first data points.
7 . The one or more non-transitory computer readable media of claim 6 , wherein the instructions further cause the one or more processors to:
identify a second object entity representing a second device from a second relational object indicating a relationship between the first object entity and the second object entity; and
identify a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity, the second data entity storing second input timeseries corresponding to one or more second data points generated by the second device.
8 . The one or more non-transitory computer readable media of claim 7 , wherein the instructions further cause the one or more processors to:
identify one or more processing workflows that defines one or more processing operations to generate derived timeseries using the first and second input timeseries;
execute the one or more processing workflows to generate the derived timeseries;
identify a third data entity from a fourth relational object indicating a relationship between the first object entity and the third data entity; and
store the derived timeseries in the third data entity.
9 . The one or more non-transitory computer readable media of claim 8 , wherein the derived timeseries includes one or more virtual data points calculated according to the first and second input timeseries.
10 . The one or more non-transitory computer readable media of claim 8 , wherein at least one of the first or second devices is a sensor, and the instructions cause the one or more processors to:
periodically receive measurements from the sensor; and
update at least the derived timeseries in the third data entity each time a new measurement from the sensor is received.
11 . A method for managing data relating to a plurality of physical devices connected to one or more electronic communications networks, comprising:
receiving, by one or more processors, first raw data from a first device of a plurality of physical devices, the first raw data including one or more first data points generated by the first device;
generating, by the one or more processors, first input timeseries according to the one or more data points;
accessing, by the one or more processors, a database of interconnected smart entities, the smart entities comprising object entities representing each of the plurality of physical devices and data entities representing stored data, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities;
identifying, by the one or more processors, a first object entity representing the first device from a first device identifier in the first input timeseries;
identifying, by the one or more processors, a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity; and
storing, by the one or more processors, the first input timeseries in the first data entity.
12 . The method of claim 11 , wherein the relational objects semantically define the relationships between the object entities and the data entities.
13 . The method of claim 11 , wherein one or more of the object entities comprises a static attribute to identify the object entity, a dynamic attribute to store data associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
14 . The method of claim 13 , wherein the first input timeseries corresponds to the dynamic attribute of the first object entity.
15 . The method of claim 13 , wherein at least one of the first data points in the first input timeseries is stored in the dynamic attribute of the first object entity.
16 . The method of claim 11 , wherein the input timeseries includes the first device identifier, a timestamp indicating a generation time of the one or more first data points, and a value of the one or more first data points.
17 . The method of claim 16 further comprising:
identifying, by the one or more processors, a second object entity representing a second device from a second relational object indicating a relationship between the first object entity and the second object entity; and
identifying, by the one or more processors, a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity, the second data entity storing second input timeseries corresponding to one or more second data points generated by the second device.
18 . The method of claim 17 further comprising:
identifying, by the one or more processors, one or more processing workflows that defines one or more processing operations to generate derived timeseries using the first and second input timeseries;
executing, by the one or more processors, the one or more processing workflows to generate the derived timeseries;
identifying, by the one or more processors, a third data entity from a fourth relational object indicating a relationship between the first object entity and the third data entity; and
storing, by the one or more processors, the derived timeseries in the third data entity.
19 . An entity management cloud computing system for managing data relating to a plurality of physical devices connected to one or more electronic communications networks, comprising:
one or more processors communicably coupled to a database of interconnected smart entities, the smart entities comprising object entities representing each of the plurality of physical devices and data entities representing stored data, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities; and
one or more computer-readable storage media communicably coupled to the one or more processors having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to:
receive first raw data from a first device of the plurality of physical devices, the first raw data including one or more first data points generated by the first device;
generate first input timeseries according to the one or more data points;
identify a first object entity representing the first device from a first device identifier in the first input timeseries;
identify a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity; and
store the first input timeseries in the first data entity.
20 . The system of claim 19 , wherein the first input timeseries includes the first device identifier, a timestamp indicating a generation time of the one or more first data points, and a value of the one or more first data points.