WO2018088490A1 - 情報蓄積装置、情報蓄積方法およびプログラム - Google Patents

情報蓄積装置、情報蓄積方法およびプログラム Download PDF

Info

Publication number
WO2018088490A1
WO2018088490A1 PCT/JP2017/040467 JP2017040467W WO2018088490A1 WO 2018088490 A1 WO2018088490 A1 WO 2018088490A1 JP 2017040467 W JP2017040467 W JP 2017040467W WO 2018088490 A1 WO2018088490 A1 WO 2018088490A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
information storage
unit
network
storage device
Prior art date
Application number
PCT/JP2017/040467
Other languages
English (en)
French (fr)
Inventor
啓一郎 柏木
允 滝澤
田中 裕之
中村 隆幸
由唯 吉田
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US16/342,150 priority Critical patent/US11392650B2/en
Priority to JP2018550264A priority patent/JP6832366B2/ja
Priority to CN201780069436.8A priority patent/CN109923537B/zh
Priority to EP17869456.8A priority patent/EP3540614B1/en
Publication of WO2018088490A1 publication Critical patent/WO2018088490A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Definitions

  • the present invention relates to an information storage device that stores information such as sensor data, an information storage method, and a program.
  • sensor networks and IoT Internet of Things
  • IoT Internet of Things
  • a database (DB) technology for a sensor network called uTSLite (lightweight uTupleSpace) is known (see Japanese Patent No. 5948399).
  • uTSLite not only has a function to store data and search later, as in a normal relational database (RDB), but also registers conditions in advance and meets the conditions when data is stored later. It has a feature that it has a function of automatically determining whether to match and notifying the application when it matches. By utilizing such a function, the labor for developing an application that sets a conditional expression in advance for various abnormal events and notifies when an abnormal event occurs can be reduced.
  • the apparatus for collecting and accumulating existing information as described above has a problem that its versatility is poor and development is difficult. For example, items such as what sensors are connected, how many times information is aggregated and sent, and what services are sent to the cloud differ depending on the application example of each sensor network. Therefore, there is a problem in that it cannot be built for general use as a uniform device, and needs to be developed individually for each application example.
  • this problem becomes a significant problem in an application example in which information is aggregated and it is desired to send a special message when a particular noticeable event occurs.
  • a particular noticeable event For example, in the above-described example, when an abnormal event that seems to be a fire is detected by the temperature sensor, it is necessary to send alarm information urgently without waiting for transmission once an hour.
  • what kind of sensor is connected and what kind of urgent information should be transmitted depending on what kind of condition determination is completely different for each application example. For example, “N times is aggregated” or “N seconds worth” Such a process cannot be realized with a simple data definition such as “aggregate”, which leads to a problem that individual development is necessary and development is difficult.
  • the present invention has been made in view of the above circumstances, and its purpose is to collect and send information by what condition determination in an apparatus for collecting and storing information such as sensor data. It is to provide an information storage device, an information storage method, and a program capable of flexibly defining the information.
  • an information storage device that stores information received via a network stores a script execution environment, a storage search unit that stores data and searches for the stored data, and the storage A notifying unit that outputs a notification in response to data newly accumulated in the search unit meeting any of the pre-registered conditions, a script, the pre-registered condition, and the script; And a storage unit that stores action correspondence information indicating the correspondence relationship between the script and the script execution environment.
  • the script execution environment can describe an instruction to search for data and an instruction to communicate through the network by the executed script.
  • the information storage device collects data through the network and registers it in the storage search unit, and the information storage device receives the notification and receives the access.
  • Scripts associated with the conditions mentioned above coincide with tio emission corresponding information, further comprising a script execution unit for executing, using the script execution environment.
  • the script receives the data acquired by the acquisition unit according to an instruction to communicate through the network with an acquisition unit that acquires data from the storage search unit according to an instruction to search the data. And a sending unit for sending to the device.
  • the pre-registered condition is a condition that matches only a part of data among a set of all data registered by the collecting unit, and is acquired by the acquiring unit.
  • the data is one or a plurality of data.
  • the one or a plurality of data is transmitted according to an instruction to communicate through the network, the one or a plurality of data includes an array, a list, and a structure.
  • the data is stored in one of the nested data structures and transmitted, or is transmitted after an arbitrary identifier is assigned to each of the one or more data.
  • the script execution environment includes a class library, and the class library includes a class that searches for data and a class that communicates through a network, and the feature is based on the script to be executed. Realized by calling the class library.
  • the instruction to communicate through the network uses the HTTP or HTTPS protocol as the transport protocol, and uses the JSON or XML data format as the data exchange code.
  • the script execution unit sends an accumulation instruction to a document-oriented database that accumulates documents described in JSON or XML data format in accordance with an instruction to communicate through the network.
  • the script execution unit sends a notification signal notifying the occurrence of an event to an information processing apparatus connected to the network according to an instruction to communicate through the network.
  • the script execution unit sends a notification signal notifying the occurrence of an event to an information processing apparatus connected to the network in response to an instruction to communicate through the network, Alternatively, it includes identification information for distinguishing a data set composed of a plurality of data from other data sets.
  • both the accumulation search unit and the notification unit are realized using uTSLite.
  • an information storage device that stores information received via a network stores a binary execution environment, a storage search unit that stores data and searches for the stored data, and the storage search unit.
  • a first notification unit that outputs a first notification in response to newly accumulated data meeting any of the pre-registered conditions, the pre-registered condition, and the binary execution
  • a storage unit that holds action correspondence information indicating a correspondence relationship with a process operating in the environment, and the binary execution environment includes an instruction to search for data and an instruction to communicate through a network according to the process to be executed.
  • the information storage device includes a collection unit that collects data through the network and registers the data in the storage search unit, and the first communication unit. Receiving, further comprising a second notifying unit for outputting a second notification to the processes associated with the matched condition by the action correspondence information.
  • the process is configured to acquire the data acquired by the acquisition unit according to an instruction to communicate through the network with an acquisition unit that acquires data from the storage search unit according to an instruction to search the data. And a sending unit for sending to the device.
  • the pre-registered condition is a condition that matches only a part of data among a set of all data registered by the collection unit, and is acquired by the acquisition unit.
  • the data is one or a plurality of data.
  • the one or a plurality of data is transmitted according to an instruction to communicate through the network, the one or a plurality of data includes an array, a list, and a structure.
  • the data is stored in one of the nested data structures and transmitted, or is transmitted after an arbitrary identifier is assigned to each of the one or more data.
  • the binary execution environment includes a class library
  • the class library includes a class that searches for data and a class that communicates through a network, and the feature is determined by the process to be executed. Realized by calling the class library.
  • the instruction to communicate through the network uses the HTTP or HTTPS protocol or the MQTT protocol as a transport protocol, and uses the JSON or XML data format as a data exchange code.
  • the information storage device further includes a process execution unit that executes the process using the binary execution environment, and the process execution unit uses JSON or XML data according to an instruction to communicate through the network.
  • An accumulation instruction is sent to a database for accumulating data or files described in a format.
  • the information storage device further includes a process execution unit that executes the process using the binary execution environment, and the process execution unit is connected to the network by an instruction to communicate through the network.
  • a notification signal notifying the occurrence of an event is sent to the information processing apparatus, and the notification signal includes identification information for distinguishing the data set composed of the one or more data from other data sets.
  • FIG. 1 is a block diagram illustrating the configuration of an information management system according to the first embodiment of the present invention.
  • FIG. 2 is a flowchart showing sensor data registration processing of the information storage device shown in FIG.
  • FIG. 3 is a diagram illustrating an example of a script.
  • FIG. 4 is a diagram illustrating an example of communication contents from the information storage device to the cloud DB.
  • FIG. 5 is a diagram illustrating another example of the script.
  • FIG. 6 is a block diagram illustrating the configuration of an information management system according to the second embodiment of the present invention.
  • FIG. 7 is a flowchart showing sensor data registration processing of the information storage device shown in FIG.
  • FIG. 8 is a block diagram illustrating a hardware configuration example of the information storage device according to the embodiment of the present invention.
  • FIG. 1 shows a configuration of an information management system 100 according to the first embodiment of the present invention.
  • the information storage device 101 the information storage device 101, the sensor 103, the cloud DB 104, and the tablet 105 are connected to the network 102.
  • the connection to the network 102 may be a wired connection or a wireless connection.
  • the sensor 103 performs measurement, for example, at regular time intervals, and sends a measurement result (sensor data) to the information storage device 101 via the network 102.
  • the information storage device 101 stores data collected from the sensor 103 through the network 102.
  • the number of sensors 103 is one, but a plurality of sensors 103 may be connected to the network 102.
  • the information storage device 101 holds at least one condition registered in advance, and when newly storing data, the information storage apparatus 101 determines whether the data matches each condition, and according to the matched condition Process. For example, the information storage device 101 sends a notification signal to the cloud DB 104 or the tablet 105 via the network 102.
  • the notification signal can include a part of data stored in the information storage device 101, for example.
  • the cloud DB 104 is mounted on a server device (not shown), for example.
  • the tablet 105 is an example of an information processing device, and examples of the information processing device include a personal computer (PC), a server device, a smartphone, and a mobile phone. A plurality of tablets 105 may be connected to the network 102.
  • the information storage device 101 includes, for example, an information processing device such as a server device or a PC.
  • a processor such as a CPU (Central Processing Unit), a memory, and a communication interface 119 for performing communication via the network 102 Is provided.
  • the information storage device 101 may further include an input / output interface such as a display, a keyboard, and a mouse.
  • the above conditions may be set through an interface for input / output, or may be set from the outside through the network 102, for example. Conditions are stored in memory.
  • the information storage device 101 includes a lightweight stream DB 111, a sensor data collection unit 112, a script execution environment 115, a class library 116, an initialization unit 117, and a processing unit 118, and holds action correspondence information 113 and a script 114.
  • Various processes performed by the lightweight stream DB 111, the sensor data collection unit 112, the initialization unit 117, and the processing unit 118 can be realized by the processor reading various programs from the memory and executing them.
  • Data stored in the lightweight stream DB 111, the class library 116, the action correspondence information 113, and the script 114 are stored in the memory.
  • uTSLite is used as the lightweight stream DB 111.
  • uTSLite stores data and stores a search for the stored data, and notifies when the newly stored data meets any of the pre-registered conditions.
  • a notification function to output.
  • the accumulation search function is a data value storage type that stores data in the data repository first and then inputs the conditional expression later to search the data repository for data that matches the conditional expression. The search process is performed and the search result is notified.
  • the notification function stores the conditional expression in the conditional expression repository first, and then writes the data to the data repository to retrieve the conditional expression that matches the data from the conditional expression repository.
  • a standby type search process is performed and the search result is notified.
  • the script 114 is described in the JavaScript (registered trademark) language, and the JavaScript execution environment is used as the script execution environment 115.
  • the JavaScript execution environment can be easily realized by using open source software such as Node.js.
  • the class library 116 is pre-registered (installed) in the script execution environment 115 by using a standard function of the JavaScript execution environment. As a result, the class library 116 can be called by the description in the script 114.
  • the class library 116 provides a class that retrieves data from the lightweight stream DB 111 and a class that communicates via the network 102 using the HTTP (HyperText Transfer Protocol) or HTTPS (HyperText Transfer Protocol ⁇ ⁇ ⁇ Secure) protocol.
  • the script execution environment 115 has a feature that the script 114 to be executed can describe an instruction to search for data from the lightweight stream DB 111 and an instruction to communicate through the network 102 using the HTTP or HTTPS protocol.
  • the sensor data collection unit 112 has a function of waiting for an HTTP connection, that is, an HTTP server.
  • the sensor data collection unit 112 receives sensor data from the sensor 103 via the network 102 and registers the sensor data in the lightweight stream DB 111.
  • the cloud DB 104 uses a kind of software generally called a document-oriented DB.
  • a document-oriented DB For example, you may use Elasticsearch which is open source software.
  • the document-oriented DB can store documents described in a JSON (JavaScript Object Notation) or XML (Extensible Markup Language) data format.
  • the tablet 105 is a device in which DeviceConnect, which is open source software, is installed on a general Android terminal.
  • DeviceConnect is software that provides a function of receiving an external notification signal and drawing an alert display on a screen or displaying web content of a specified URL (Uniform Resource Locator) with a browser.
  • URL Uniform Resource Locator
  • Other software having a function equivalent to that of DeviceConnect may be used.
  • the data structure is stored in the memory so that the correspondence relationship action1.js is obtained when it is notified that the conditional expression “temperature> 80 degrees” is met. Hold.
  • uTSLite has a function to call a specified function with a specified identifier at the time of notification, by using a language function such as a class object in C ++ language, an associative array, or a lambda expression function. Since the event notification for which conditional expression is easily distinguishable, for example, in the above example, when the condition “temperature> 80 degrees” is met, the correspondence relationship action1.js can be easily obtained. .
  • the information that the C ++ language function such as the class object, the associative array, and the lambda expression secures in the memory and the event notification information held in the uTSLite correspond to the action correspondence information 113. It becomes. As in this example, there is no explicit data structure or storage such as an array corresponding to the action correspondence information 113, and the corresponding information is fragmented and held in the memory. Of course it is possible.
  • the processing unit 118 Upon receiving the notification from the lightweight stream DB 111, the processing unit 118 refers to the action correspondence information 113, identifies the script 114 associated with the conditional expression that triggered the notification, and executes the script 114 as a script. Perform using environment 115.
  • FIG. 2 shows an example of a flow of sensor data registration processing in the information storage apparatus 101.
  • the sensor data collection unit 112 accepts an HTTP connection, specifically, receives sensor data from the sensor 103 (In step S200, the received data is stored in the lightweight stream DB 111 (step S201).
  • the accumulation processing in step S201 can be easily realized by calling the data registration function provided by the lightweight stream DB 111 using the received data as an argument.
  • a notification is output from the lightweight stream DB 111 (step S202), and the processing unit 118 receives the notification (step S203).
  • the notification includes the data accumulated in step S201, that is, the data that triggered the notification.
  • the processing unit 118 specifies the corresponding script 114 based on the action correspondence information 113 (step S204).
  • the processing unit 118 executes the script 114 specified in step S204 using the script execution environment 115 (step S205).
  • the script is executed after setting the data that triggered the notification as the value of a variable “event” that can be read out in the script.
  • the process for the notification is completed (step S206).
  • the information storage apparatus 101 When the data matches N conditional expressions, the information storage apparatus 101 receives N notifications from the lightweight stream DB 111, and thus repeatedly executes the processes shown in steps S203 to S206 N times.
  • N is an integer of 0 or more.
  • the information storage apparatus 101 can describe various actions by a JavaScript program for various conditions specified at the time of initialization by performing the basic operation described above.
  • Various functions can be realized only by exchanging the setting file using the developed device.
  • the search of the lightweight stream DB 111 and the HTTP or HTTPS communication to various communication partners can be easily described using the functions of the class library 116, so that information such as sensor data can be aggregated and stored. It is possible to flexibly and easily realize the functions required in the apparatus to be performed.
  • Fig. 3 shows an example of a script.
  • the script 300 shown in FIG. 3 includes a character string “sensor” as the key value “subject” in the data stored in the lightweight stream DB 111 and a key value “type” as “thermometer”. ”And a set of data in which the millisecond precision time stamp stored as the value of the key“ date ”is in the time range from 60 seconds before to the present time, The movement of registering them as one data entry in the cloud DB 104 is realized.
  • the class library “ajax.collect” is called to search the lightweight stream DB 111 and obtain the result.
  • “Ajax.collect” is one of the functions of the class provided by the class library 116. The implementation of this class can be easily realized by substituting the given argument into the variable type used for input / output of the lightweight stream DB 111 and then calling the function of the lightweight stream DB 111.
  • the class library “ajax.request” is called in line 303 and an HTTP-POST communication for registration in the cloud DB 104 is transmitted.
  • This “ajax.request” is one of the functions of the class provided by the class library 116.
  • the implementation of this class sets the contents of the given arguments “type” and “headers” in the header of the HTTP protocol for the host of the URL indicated by the given argument “url”. This can be easily realized by performing HTTP communication using the content of “data” as the content. Note that processing widely performed by OSS (Open Source Software) or the like may be used for processing for performing HTTP communication.
  • the search result is stored as an argument “data”.
  • the search result is a sequence of a plurality of data.
  • JavaScript By using a standard function of the JavaScript and JSON formats which allows data to be described in a nested manner, a plurality of data sequences can be handled as nested values. This content is directly reflected in the communication content.
  • the language In JavaScript, the language itself has a function of automatically converting to the JSON format when input / output from / to the outside.
  • the script 300 since the data that triggered the notification is stored in the value of the variable “event” as described above, the script is described so that the data is used. It is also possible. For example, it is easy to write a script that can be distinguished from other data later by using the time stamp of the data that triggered the notification as the identifier value and assigning that value to all other data. It is.
  • FIG. 4 shows an example of communication contents to the cloud DB 104.
  • a communication message 400 shown in FIG. 4 indicates content stored in a body in the HTTP protocol.
  • the content stores the data sequence as a search result by the row 303 of the script 300 shown in FIG. Since the data stored in the DB can be obtained by searching the DB, the data previously received from the sensor 103 in step S200 (FIG. 2) and stored in step S201 is reflected in the communication text 400 as it is. become.
  • row 401 represents data where the key “date” has the value 1473240068, the key “subject” has the value sensor, the key “temperature” has the value 27.53125, and the key “type” has the value thermometer. .
  • the array data in which five data entries are arranged in a nested manner is expressed in the JSON format.
  • Elasticsearch is used as the cloud DB 104, the operation specification is such that when such a communication message is received, five data entries are generated.
  • the number of data entries is not limited to five, but may be 1, 2 to 4, or 6 or more.
  • the data is not limited to the nested structure, but may be stored and transmitted in other data structures (for example, arrays, lists, structures, etc.). Further, the data may be transmitted after an arbitrary identifier is given to each of the data. By doing so, it becomes possible for the receiving side of the network 102 to determine that the data has been transmitted as a set once.
  • FIG. 5 shows another example of the script.
  • the script 500 shown in FIG. 5 prompts notification and browser display on the tablet 105 by transmitting a request in which the time information indicating the time range from 60 seconds before the present to the present is embedded in the directive. It realizes this movement.
  • the value of the current time and the value of the time 60 seconds before are obtained from the row group 501.
  • the class library “ajax.request” is called, and HTTPHPOST communication is transmitted to the tablet 105.
  • the IP address of the tablet 105 is designated as the argument “url”.
  • a character string in which the time information calculated by the row group 501 is embedded is generated and transmitted as the content of the argument “data” that is the HTTP content.
  • the Device Connect installed in the tablet 105 used in the present embodiment receives HTTP content in such a format
  • the device first displays a notification on the terminal, and when the notification icon is tapped, the device is designated by the content.
  • the operation specification is to display the web content of the URL.
  • the web content to be displayed can be processed using the time information. For example, it is possible to easily create web contents that are retrieved from the cloud DB 104 and displayed as a line graph by searching for data indicated by the range of time information.
  • a plurality of correspondence relationships between conditional expressions and scripts can be registered at the time of initialization.
  • the conditional expressions may be different from each other, or the same conditional expression may be used in a part of the correspondence relationships. Therefore, a relationship that the script 300 corresponds to the same conditional expression and a relationship that the script 500 corresponds to the same conditional expression are registered at the time of initialization. In this way, sensor data is registered according to an event that occurred at a certain time, and both the conditional expressions are true accordingly, and the script 300 and the script 500 are executed in sequence without taking any time.
  • the tablet that has received the notification signal from the script 500 The web content displayed by can display a graph of the search target data. As described above, in this embodiment, by using the time stamp information embedded in the sensor data as an identifier, it is possible to determine the correspondence when the data registered in the cloud DB 104 is displayed as web content later. It is said.
  • a plurality of data is registered in the cloud DB 104 as one long data entry, or a key in a new JSON data format is added to each data.
  • a specific identifier is assigned as the key value.
  • the latter case can be easily realized by adding a loop statement that circulates each element of the variable “thermometer” and adds a key before the line 303 of the script 300.
  • a value included in the variable “event” may be used.
  • a condition that has a low frequency of establishment is described as a conditional expression, and a script that is associated with the conditional expression is searched to obtain a large number of entries from the lightweight stream DB 111, and the result is transmitted to the cloud DB 104.
  • a script that is associated with the conditional expression is searched to obtain a large number of entries from the lightweight stream DB 111, and the result is transmitted to the cloud DB 104.
  • the temperature rises abnormally if only a few data just before that are sent together to the cloud DB 104, the number of communications can be reduced, so the communication load can be reduced.
  • the temperature rises abnormally it can be sent to the cloud without waiting for the execution of a process for batching one hour, so the advantage of being able to quickly detect the abnormality while reducing the communication load is obtained. You can also.
  • conditional expressions and what kind of cloud DB 104 search conditions are set can be easily customized by changing the file read at the time of initialization, the definition can be flexibly changed. Can reduce the number of man-hours for developing a sensor network system using these devices.
  • the data registration to the cloud DB 104 in the row 303 of the script 300 (FIG. 3) and the notification to the tablet 105 in the row 502 of the script 500 (FIG. 5) are both a single class library “ajax”. .request ".
  • the cloud DB 104 and the tablet 105 used in this embodiment both receive an HTTP communication to realize functions such as data registration and notification display. This is because the service is provided.
  • HTTP which is a web technology, or an API that combines HTTP with HTTP is widely used in a technical area called cloud or IoT. And by adopting JSON as standard input / output, there is an advantage that it can be combined with a wide range of devices by a single mechanism.
  • the class library 116 can be expanded to a connection partner having various protocols as APIs. There is.
  • HTTP and JSON communications as standard functions in advance as the class library 116, it is possible to connect to many partners without expanding the class library 116.
  • uTSLite is used as the lightweight stream DB 111.
  • the function of accumulating data and searching later and the function of performing notification when data accumulated later in accordance with pre-registered conditions meet the conditions can be realized by a single functional unit.
  • Another DB system may be used, or each function may be realized separately.
  • the function of accumulating data and later searching may be realized using a relational database, and the function of notifying when data accumulated later in accordance with previously registered conditions matches the condition is It may be realized by using techniques such as arrays, lists, associative arrays, tree structures, Pub-Sub systems, stored procedures, and stream DBs.
  • the script 114 uses the JavaScript language.
  • the JavaScript language is widely used when describing communication to the cloud in combination with HTTP and JSON, and has an advantage that various existing libraries can be used.
  • the scope of the present invention is not limited to this, and another programming language may be used.
  • JSON is used as the data format of the data exchange code.
  • the scope of the present invention is not limited to this, and other data formats may be used.
  • XML is widely used as a data format. By using XML as a data format, there is an advantage that the types of cloud DBs that can be combined can be widened.
  • the information storage apparatus 101 has been described as being realized by a single information processing apparatus.
  • the information storage device 101 may be realized by a combination of a plurality of information processing devices.
  • FIG. 6 shows the configuration of an information management system 600 according to the second embodiment of the present invention.
  • the same reference numerals are given to the same elements as those shown in FIG. 1, and description of those elements will be omitted as appropriate.
  • the information management system 600 the information storage device 601, the sensor 103, the cloud DB 104, and the device 605 are connected to the network 102.
  • the device 605 is an example of an information processing device.
  • the device 605 can have the same configuration as the tablet 105 described in the first embodiment.
  • Device 605 includes a sensor 606.
  • the sensor 606 performs measurement to generate sensor data, and transmits this sensor data to the information storage device 601 through the network 102.
  • the information storage device 601 is an information processing device such as a server device or a PC, for example, and includes, as hardware, a processor such as a CPU, a memory, and a communication interface 119 for performing communication through the network 102.
  • the information storage device 601 may further include an input / output interface such as a display, a keyboard, and a mouse.
  • the information storage device 601 includes a lightweight stream DB 111, a sensor data collection unit 112, action correspondence information 613, a binary execution environment 615, an initialization unit 117, and a processing unit 618.
  • the processing unit 618 includes a notification unit 619 and a process execution unit 620.
  • Various processes by the lightweight stream DB 111, the sensor data collection unit 112, and the initialization unit 117 can be realized by the processor reading various programs from the memory and executing them.
  • the binary execution environment 615 includes a class library (not shown in FIG. 6) similar to the class library 116 described in the first embodiment.
  • the class library provides a class that retrieves data from the lightweight stream DB 111 and a class that communicates via the network 102 using the HTTP, HTTPS, or MQTT (MQ telemetry transport) protocol.
  • the binary execution environment 615 can describe an instruction to retrieve data from the lightweight stream DB 111 and an instruction to communicate with the HTTP or HTTPS protocol or MQTT through the network 102 by the process 614 operating on the binary execution environment 615. It has the characteristic which is.
  • the process execution unit 620 executes a process (also referred to as a binary file or binary) 614 using the binary execution environment 615. Thereby, the process 614 operates on the binary execution environment 615.
  • the process 614 is generated by inputting a source file to the information storage device 601 through the communication interface 119 or an input / output interface and compiling on the information storage device 601.
  • the action correspondence information 613 indicates a correspondence relationship between the condition registered in advance and the process 614 operating on the binary execution environment 615.
  • the notification unit 619 Upon receiving the notification from the lightweight stream DB 111, the notification unit 619 identifies the process 614 associated with the condition that triggered the notification by referring to the action correspondence information 613, and for the identified process 614 Output a notification.
  • the process 614 that receives the notification from the notification unit 619 performs predetermined processing.
  • the process 614 can perform the same processing as the script 114 described in the first embodiment.
  • the certain process 614 performs a process of searching the lightweight stream DB 111 and a process of transmitting a notification signal notifying the occurrence of an event including data obtained by the search to an external device (for example, the device 605) through the network 102. .
  • the process execution unit 620 receives the notification from the lightweight stream DB 111, refers to the action correspondence information 613, and associates the process 614 associated with the condition that triggered the notification.
  • the identified process 614 may be performed using the binary execution environment 615. In this case, the process 614 performs predetermined processing when activated.
  • the initialization unit 117 registers a condition in the lightweight stream DB 111, causes the process execution unit 620 to execute the process 614, and stores action correspondence information 613 indicating the correspondence between the condition and the process 614 in the memory. To hold.
  • the action correspondence information 613 can be edited based on an instruction from the process 614 while the information storage device 601 is activated.
  • FIG. 7 shows an example of the flow of sensor data registration processing in the information storage device 601.
  • the sensor data collection unit 112 receives the sensor data from the sensor 103 (step S700), and stores the received sensor data in the lightweight stream DB 111 (step S701). ).
  • the lightweight stream DB 111 outputs a notification indicating the condition that the sensor data newly accumulated in the lightweight stream DB 111 matches to the notification unit of the processing unit 618.
  • the notification unit 619 in the processing unit 618 refers to the action correspondence information 613 and identifies the process 614 associated with the condition (step S702).
  • the notification unit 619 outputs a notification to the identified process 614 (step S703).
  • the process execution unit 620 executing the identified process 614 receives a notification from the notification unit 619 (step S704), searches the lightweight stream DB 111 and / or sends a notification signal through the network 102 (step S705). .
  • various functions can be realized only by replacing the setting file (process or its source file) using a single developed device. it can.
  • FIG. 8 shows an example of the hardware configuration of the information storage apparatus 700 according to an embodiment.
  • the information storage device 700 can be the information storage device 101 or the information storage device 601.
  • the information storage device 800 includes a CPU 801, a main memory 802, a program memory 803, an auxiliary storage device 804, a communication interface 805, and an external interface 806, which are connected through a bus 807.
  • the CPU 801 reads the program stored in the program memory 803, develops it in the main memory 802, and executes the program, thereby realizing the functions described above with respect to the information storage device 101 or the information storage device 601.
  • the main memory 802 is, for example, SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory).
  • the program memory 803 may be a ROM (Read-Only memory) or may be implemented as a part of the auxiliary storage device 804.
  • the auxiliary storage device 804 is, for example, an HDD or an SSD, and stores various data.
  • the communication interface 805 includes a wired communication module, a wireless communication module, or a combination thereof, and communicates with an external device (for example, the sensor 103 or the cloud DB 104).
  • the external interface 806 is an interface for connecting to an input device such as a keyboard and an output device such as a display device.
  • the CPU 801 is an example of a processor.
  • the processor is not limited to a general-purpose processing circuit such as the CPU 801, but may be a dedicated processing circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the program may exist in the dedicated processing circuit.
  • the processor may include one or more general purpose processing circuits and / or one or more dedicated processing circuits.
  • the program for realizing the above-described processing may be provided by being stored in a computer-readable recording medium.
  • the program is stored in the recording medium as an installable file or an executable file.
  • a magnetic disk, an optical disk (CD-ROM, CD-R, DVD, etc.), a magneto-optical disk (MO, etc.), a semiconductor memory, etc. can be used as the recording medium.
  • the recording medium may be any recording medium as long as it can store the program and can be read by the computer.
  • a program for realizing the above-described processing may be stored on a computer (server) connected to a network such as the Internet and downloaded to the information storage device 800 via the network.
  • the sensor data referred to in the present invention includes real-world information measured by a sensor device, and various other information can also be targeted. Specific examples include, but are not limited to, values measured by sensor devices, including temperature, humidity, current or voltage values, fluid flow rates, substance concentrations, brightness, noise, position, and acceleration. Information other than sensors, for example, acquired via the Web or the Internet may be used. Furthermore, in addition to these values, information including metadata indicating sensor characteristics and states, measurement date and time, and the like may be used.
  • the present invention is not limited to the above-described embodiments as they are, and can be embodied by modifying constituent elements without departing from the scope of the invention in the implementation stage.
  • various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the above embodiments. For example, some components may be deleted from all the components shown in each embodiment. Furthermore, you may combine suitably the component covering different embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一態様では、情報蓄積装置は、スクリプト実行環境と、データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、蓄積検索部に新たに蓄積されたデータが条件に合致した際に通知を出力する通知部と、スクリプトと、アクション対応情報とを備える。スクリプト実行環境は、実行されるスクリプトによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有する。情報蓄積装置は、ネットワークを通じてデータを収集し蓄積検索部に登録する収集部と、通知を受けて、アクション対応情報によって条件に対応付けられるスクリプトを、前記スクリプト実行環境を用いて実行するスクリプト実行部とをさらに備える。

Description

情報蓄積装置、情報蓄積方法およびプログラム
 本発明は、センサデータなどの情報を蓄積する情報蓄積装置、情報蓄積方法およびプログラムに関する。
 センサネットワークやIoT(Internet of Things)と呼ばれる分野では、センサをネットワークに接続し、センサにより取得された情報を集約して、クラウドに蓄積するシステムを構築する例が多い。しかし、一つ一つのセンサをインターネットに接続してクラウドに直接に送信するようにシステムを設計した場合、セキュリティやセンサの処理能力や通信負荷などの面で問題がある。
 このため、センサとクラウドとの間に、情報を集約する装置を設置する構成を採用することが多い。センサ、情報集約装置、クラウドの3段構成とすることで、インターネット通信の際のセキュリティ確保は情報集約装置に一任できるとともに、センサは情報集約装置にのみ通信すればよいため簡易なコンピュータで実現でき、処理能力の問題を解決できる。
 さらに、このような情報集約装置に対して情報を一時的に蓄積する機能をも付加することにより、情報を一時的に集約するバッファとして動作させることができる。例えば1分に1回送出される温度センサの情報を60回分蓄積して、1時間分をひとまとめにしてクラウドに送信すれば、通信回数を削減できるため通信負荷の問題も解決できる。
 また、従来、uTSLite(軽量化uTupleSpace)と呼ばれるセンサネットワーク向けのデータベース(DB)技術が知られている(特許第5948399号公報を参照)。uTSLiteは、通常のリレーショナルデータベース(RDB)のようにデータを蓄積し後から検索する機能を持つだけでなく、事前に条件を登録しておき、後からデータが蓄積された際に当該条件に合致するかを自動的に判定し、合致した際にはアプリケーションに通知する機能を有するという特徴を持つ。このような機能を活用すれば、様々な異常事象に対して事前に条件式を設定しておき、異常事象が発生した際に通知を行うようなアプリケーションを開発する労力が軽減される。
 上述したような既存の情報の集約と蓄積を行う装置には、以下に詳述するように、汎用性が乏しく、開発が困難であるという問題がある。例えば、どのようなセンサを接続するか、情報を何回分集約して送出するか、情報をどのようなクラウド上のサービスに送出するか、といった事項は、個々のセンサネットワークの応用例ごとに異なるものであるから、均一の装置として汎用的に作り込みを行っておくことはできず、応用例毎に個別に開発する必要が生じるという問題がある。
 特にこの問題は、情報を集約する際に、特定の注目すべき事象が発生した際に特別に送出を行わせたい応用例において顕著に問題となる。例えば上述の例であれば、温度センサによって火災と思われる異常事象を検知した場合には、1時間に1回の送出を待たず、緊急に警報情報を送出する必要がある。しかし、どのようなセンサを接続し、どのような条件判定によって、どのような緊急情報を送出すべきであるかは応用例ごとに全く異なるため、例えば「N回分を集約」あるいは「N秒分を集約」といった単純なデータ定義では、このような処理は実現できないため、個別開発が必要となり開発が困難であるという問題に繋がっている。
 また、uTSLiteを用いたとしても、上記の問題は依然として存在する。なぜならば、uTSLiteはあくまでもソフトウェアライブラリであるから、uTSLiteを用いたアプリケーションソフトウェアを新規に開発しなければならないという点において、uTSLite単体で上記の問題を解決できるものではない。
 本発明は、上記の事情を鑑みてなされたものであり、その目的は、センサデータなどの情報の集約と蓄積を行う装置においてどのような条件判定によってどのように情報を集約して送出するかを柔軟に定義可能とする情報蓄積装置、情報蓄積方法およびプログラムを提供することである。
 本発明の第1の態様では、ネットワークを介して受信した情報を蓄積する情報蓄積装置は、スクリプト実行環境と、データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、前記蓄積検索部に新たに蓄積されたデータが事前に登録された条件のいずれかに合致したことに応答して通知を出力する通知部と、スクリプトと、前記事前に登録された条件と前記スクリプトとの対応関係を示すアクション対応情報とを保持する記憶部とを備え、前記スクリプト実行環境は、実行されるスクリプトによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有し、前記情報蓄積装置は、前記ネットワークを通じてデータを収集し前記蓄積検索部に登録する収集部と、前記通知を受けて、前記アクション対応情報によって前記合致した条件に対応付けられるスクリプトを、前記スクリプト実行環境を用いて実行するスクリプト実行部とをさらに備える。
 第2の態様では、前記スクリプトは、前記データを検索する指示によって、前記蓄積検索部からデータを取得する取得部と、前記ネットワークを通じて通信する指示によって、前記取得部によって取得されたデータを前記ネットワークに対して送出する送出部とを有する。
 第3の態様では、前記事前に登録された条件は、前記収集部によって登録される全てのデータの集合のうちの一部のデータのみに合致する条件であり、前記取得部によって取得されたデータは、1つまたは複数個のデータであり、前記ネットワークを通じて通信する指示によって前記1つまたは複数個のデータを送出する際に、前記1つまたは複数個のデータは、配列、リスト、構造体および入れ子構造のうちのいずれかのデータ構造に格納して送出されるか、あるいは、前記1つまたは複数個のデータの各々に対して任意の識別子を付与してから送出される。
 第4の態様では、前記スクリプト実行環境は、クラスライブラリを備え、前記クラスライブラリは、データを検索するクラスと、ネットワークを通じて通信するクラスとを有し、前記特徴は、前記実行されるスクリプトにより前記クラスライブラリを呼び出すことによって実現される。
 第5の態様では、前記ネットワークを通じて通信する指示は、HTTPまたはHTTPSプロトコルをトランスポートプロトコルとして用い、JSONまたはXMLデータフォーマットをデータ交換用符号として用いる。
 第6の態様では、前記スクリプト実行部は、前記ネットワークを通じて通信する指示によって、JSONまたはXMLデータフォーマットで記述されたドキュメントを蓄積するドキュメント指向データベースに蓄積指示を送出する。
 第7の態様では、前記スクリプト実行部は、前記ネットワークを通じて通信する指示によって、前記ネットワークに接続された情報処理装置に対してイベント発生を知らせる通知信号を送出する。
 第8の態様では、前記スクリプト実行部は、前記ネットワークを通じて通信する指示によって、前記ネットワークに接続された情報処理装置に対してイベント発生を知らせる通知信号を送出し、前記通知信号は、前記1つまたは複数個のデータからなるデータ集合を他のデータ集合と区別するための識別情報を含む。
 第9の態様では、前記蓄積検索部および前記通知部は、いずれもuTSLiteを用いて実現される。
 第10の態様では、ネットワークを介して受信した情報を蓄積する情報蓄積装置は、バイナリ実行環境と、データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、前記蓄積検索部に新たに蓄積されたデータが事前に登録された条件のいずれかに合致したことに応答して第1の通知を出力する第1の通知部と、前記事前に登録された条件と前記バイナリ実行環境上で動作しているプロセスとの対応関係を示すアクション対応情報を保持する記憶部とを備え、前記バイナリ実行環境は、実行されるプロセスによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有し、前記情報蓄積装置は、前記ネットワークを通じてデータを収集し前記蓄積検索部に登録する収集部と、前記第1の通知を受けて、前記アクション対応情報によって前記合致した条件に対応付けられるプロセスに対して第2の通知を出力する第2の通知部とをさらに備える。
 第11の態様では、前記プロセスは、前記データを検索する指示によって、前記蓄積検索部からデータを取得する取得部と、前記ネットワークを通じて通信する指示によって、前記取得部によって取得されたデータを前記ネットワークに対して送出する送出部とを有する。
 第12の態様では、前記事前に登録された条件は、前記収集部によって登録される全てのデータの集合のうちの一部のデータのみに合致する条件であり、前記取得部によって取得されたデータは、1つまたは複数個のデータであり、前記ネットワークを通じて通信する指示によって前記1つまたは複数個のデータを送出する際に、前記1つまたは複数個のデータは、配列、リスト、構造体および入れ子構造のうちのいずれかのデータ構造に格納して送出されるか、あるいは、前記1つまたは複数個のデータの各々に対して任意の識別子を付与してから送出される。
 第13の態様では、前記バイナリ実行環境は、クラスライブラリを備え、前記クラスライブラリは、データを検索するクラスと、ネットワークを通じて通信するクラスとを有し、前記特徴は、前記実行されるプロセスにより前記クラスライブラリを呼び出すことによって実現される。
 第14の態様では、前記ネットワークを通じて通信する指示は、HTTPまたはHTTPSプロトコルまたはMQTTプロトコルをトランスポートプロトコルとして用い、JSONまたはXMLデータフォーマットをデータ交換用符号として用いる。
 第15の態様では、前記情報蓄積装置は、前記バイナリ実行環境を使用して前記プロセスを実行するプロセス実行部をさらに備え、前記プロセス実行部は、前記ネットワークを通じて通信する指示によって、JSONまたはXMLデータフォーマットで記述されたデータまたはファイルを蓄積するデータベースに蓄積指示を送出する。
 第16の態様では、前記情報蓄積装置は、前記バイナリ実行環境を使用して前記プロセスを実行するプロセス実行部をさらに備え、前記プロセス実行部は、前記ネットワークを通じて通信する指示によって、前記ネットワークに接続された情報処理装置に対してイベント発生を知らせる通知信号を送出し、前記通知信号は、前記1つまたは複数個のデータからなるデータ集合を他のデータ集合と区別するための識別情報を含む。
 本発明によれば、センサデータなどの情報の集約と蓄積を行う装置においてどのような条件判定によってどのように情報を集約して送出するかを柔軟に定義可能となる。
図1は、本発明の第1の実施形態に係る情報管理システムの構成を例示するブロック図である。 図2は、図1に示した情報蓄積装置のセンサデータ登録処理を示すフローチャートである。 図3は、スクリプトの一例を示す図である。 図4は、情報蓄積装置からクラウドDBへの通信内容の一例を示す図である。 図5は、スクリプトの別の例を示す図である。 図6は、本発明の第2の実施形態に係る情報管理システムの構成を例示するブロック図である。 図7は、図6に示した情報蓄積装置のセンサデータ登録処理を示すフローチャートである。 図8は、本発明の一実施形態に係る情報蓄積装置のハードウェア構成例を示すブロック図である。
 以下、図面を参照しながら本発明の実施形態を説明する。
 (第1の実施形態)
 図1は、本発明の第1の実施形態に係る情報管理システム100の構成を示す。情報管理システム100では、情報蓄積装置101とセンサ103とクラウドDB104とタブレット105とがネットワーク102に接続される。ネットワーク102への接続は、有線接続であってもよく、無線接続であってもよい。センサ103は、例えば一定の時間間隔で、計測を行い、計測結果(センサデータ)をネットワーク102を通じて情報蓄積装置101に送出する。情報蓄積装置101は、ネットワーク102を通じてセンサ103から収集したデータを蓄積する。本実施形態では、説明を簡単にするために、センサ103は1台とするが、複数台のセンサ103がネットワーク102に接続されてもよい。
 情報蓄積装置101は、事前に登録された条件を少なくとも1つ保持しており、新たにデータを蓄積した際に、当該データが各条件に合致するか否かを判定し、合致した条件に応じた処理を行う。例えば、情報蓄積装置101は、ネットワーク102を介してクラウドDB104またはタブレット105に通知信号を送出する。通知信号は、例えば、情報蓄積装置101が蓄積しているデータの一部を含むことができる。クラウドDB104は、例えば、図示しないサーバ装置上に実装される。タブレット105は、情報処理装置の一例であり、当該情報処理装置の例には、パーソナルコンピュータ(PC)、サーバ装置、スマートフォン、携帯電話などが含まれる。また、複数台のタブレット105がネットワーク102に接続されてもよい。
 情報蓄積装置101は、例えば、サーバ装置、PCなどの情報処理装置からなり、ハードウェアとして、CPU(Central Processing Unit)などのプロセッサと、メモリと、ネットワーク102を通じて通信を行うための通信インタフェース119とを備える。情報蓄積装置101は、ディスプレイ、キーボード、マウスなどの入出力のためのインタフェースをさらに備えていてもよい。上記の条件は、入出力のためのインタフェースを通じて設定されてもよく、あるいは、例えばネットワーク102を通じて、外部から設定されてもよい。条件はメモリに保存される。
 情報蓄積装置101は、軽量ストリームDB111、センサデータ収集部112、スクリプト実行環境115、クラスライブラリ116、初期化部117、および処理部118を備え、アクション対応情報113およびスクリプト114を保持する。軽量ストリームDB111、センサデータ収集部112、初期化部117、および処理部118による各種処理は、プロセッサがメモリから各種プログラムを読み出して実行することにより実現することができる。また、軽量ストリームDB111に蓄積されるデータ、クラスライブラリ116、アクション対応情報113およびスクリプト114はメモリに保存される。
 本実施形態では、軽量ストリームDB111としてuTSLiteを用いる。uTSLiteは、データを蓄積し、蓄積しているデータに対する検索処理を行う蓄積検索機能と、新たに蓄積されたデータが事前に登録された条件のうちのいずれかの条件に合致した際に通知を出力する通知機能とを有する。具体的には、蓄積検索機能は、データをデータ用デポジトリに先に蓄積しておき、後から条件式を投入することで、条件式に合致するデータをデータ用デポジトリから検索するデータ値蓄積型の検索処理を行い、検索結果を通知する。また、通知機能は、条件式を条件式用デポジトリに先に蓄積しておき、後からデータをデータ用デポジトリに書き込むことで、当該データに合致する条件式を条件式用デポジトリから検索する条件式待ち受け型の検索処理を行い、検索結果を通知する。
 スクリプト114はJavaScript(登録商標)言語で記述し、スクリプト実行環境115としてJavaScript実行環境を用いる。JavaScript実行環境は、例えばNode.jsのようなオープンソースソフトウェアを用いることで容易に実現することができる。さらに、スクリプト実行環境115には、JavaScript実行環境の標準的な機能を用いて、クラスライブラリ116を事前登録(インストール)しておく。これによって、スクリプト114内の記述によってクラスライブラリ116の呼び出しを行うことができる。クラスライブラリ116は、軽量ストリームDB111からデータを検索するクラスと、ネットワーク102を通じてHTTP(HyperText Transfer Protocol)またはHTTPS(HyperText Transfer Protocol Secure)プロトコルで通信するクラスとを提供する。言い換えると、スクリプト実行環境115は、実行されるスクリプト114によって、軽量ストリームDB111からデータを検索する指示とネットワーク102を通じてHTTPまたはHTTPSプロトコルで通信する指示とを記述可能である特徴を有する。
 センサデータ収集部112は、HTTPでの接続を待ち受ける機能を有し、すなわちHTTPサーバとする。センサデータ収集部112は、ネットワーク102を通じてセンサ103からセンサデータを受け取り、センサデータを軽量ストリームDB111に登録する。
 クラウドDB104は、一般的にドキュメント指向DBと呼ばれる種類のソフトウェアを用いる。例えば、オープンソースソフトウェアであるElasticsearchを用いてもよい。ドキュメント指向DBは、JSON(JavaScript Object Notation)またはXML(Extensible Markup Language)データフォーマットで記述されたドキュメントを蓄積することができる。
 タブレット105は、一般的なAndroid端末に、オープンソースソフトウェアであるDeviceConnectをインストールしたものを用いる。DeviceConnectは、外部からの通知信号を受け取って画面にアラート表示を描画したり、指定されたURL(Uniform Resource Locator)のウェブコンテンツをブラウザで表示する機能を提供するソフトウェアである。DeviceConnectと同等の機能を有する他のソフトウェアを用いてもよい。
 初期化部117は、情報蓄積装置101の起動時に、軽量ストリームDB111への条件式の登録と、スクリプト114の保持とを行うとともに、条件式とスクリプト114との対応関係をアクション対応情報113として保持する処理を行う。例えば、起動時に読み込む定義ファイルに、「温度>80度」という条件式をaction1.jsというスクリプトに対応付け、「侵入者=true」という条件式をaction2.jsというスクリプトに対応付けるような対応関係を記述する。初期化部117は、軽量ストリームDB111へ「温度>80度」という条件式を登録し、スクリプト114としてaction1.jsというファイルの中身を読み込んでメモリ上に保持する。同様に、軽量ストリームDB111へ「侵入者=true」という条件式を登録し、スクリプト114としてaction2.jsというファイルの中身を読み込んでメモリ上に保持する。さらに、アクション対応情報113に相当する情報として、条件式とスクリプト114との対応関係を以下のようにしてメモリ上に保持する。
 アクション対応情報113としては、例えば上記の例においては、「温度>80度」という条件式に合致したことが通知された際にaction1.jsという対応関係が得られるようにデータ構造をメモリ上に保持する。例えば、uTSLiteにおいては、通知の際に、指定した関数を指定した識別子を持って呼び出す機能を有しているので、C++言語におけるクラスオブジェクトや連想配列やラムダ式機能といった言語機能を用いることで、どの条件式に対するイベント通知であるかは容易に区別可能であるから、例えば上記の例では、「温度>80度」という条件に合致した場合にaction1.jsという対応関係を容易に得ることができる。この場合、前記クラスオブジェクトや連想配列やラムダ式といったC++言語の機能がメモリ上に確保する情報と、uTSLite内で保持されているイベント通知のための情報とが、アクション対応情報113に該当することとなる。この例のように、アクション対応情報113に相当するような配列などの明示的なデータ構造やストレージなどが存在せず、該当する情報が細切れになってメモリ上に保持されているような実施も当然可能である。
 処理部118は、軽量ストリームDB111からの通知を受けて、アクション対応情報113を参照して当該通知が発せられる契機となった条件式に対応付けられるスクリプト114を特定し、このスクリプト114をスクリプト実行環境115を用いて実行する。
 図2は、情報蓄積装置101におけるセンサデータ登録処理のフローの一例を示す。
 センサ103がネットワーク102を通じて情報蓄積装置101に計測結果のセンサデータをHTTPプロトコルを用いて送信すると、センサデータ収集部112は、HTTP接続を受け付け、具体的には、センサ103からセンサデータを受け取り(ステップS200)、受け取ったデータを軽量ストリームDB111に蓄積する(ステップS201)。なお、ステップS201の蓄積処理は、受け取ったデータを引数として軽量ストリームDB111が提供するデータ登録機能を呼び出すことにより容易に実現することができる。この際、当該データが事前に登録された条件式に合致した場合には、軽量ストリームDB111から通知が出力され(ステップS202)、処理部118が当該通知を受け取る(ステップS203)。軽量ストリームDB111の持つ機能により、当該通知には、ステップS201で蓄積されたデータすなわち通知契機となったデータが含まれる。処理部118は、次に、アクション対応情報113に基づいて、対応するスクリプト114を特定する(ステップS204)。次いで、処理部118は、スクリプト実行環境115を用いて、ステップS204で特定したスクリプト114を実行する(ステップS205)。その際、前記の通知契機となったデータを、スクリプト内で読み出し可能な変数「event」の値として設定してからスクリプトの実行を行う。最後に、当該通知に対する処理を完了する(ステップS206)。
 なお、データがN個の条件式に合致した場合には、情報蓄積装置101は、軽量ストリームDB111から通知をN回受け取るので、上記のステップS203からステップS206に示す処理をN回繰り返し実行する。ここで、Nは0以上の整数である。
 本実施形態に係る情報蓄積装置101は、以上に示した基本動作を行うことによって、初期化時に指定した様々な条件に対して、各種のアクションをJavaScriptのプログラムによって記述することができ、単一の開発済み装置を用いて設定ファイルの入れ替えのみによって様々な機能を実現することができる。特に、JavaScriptからは軽量ストリームDB111の検索と、様々な通信相手へのHTTPまたはHTTPSの通信とを、クラスライブラリ116の機能を用いて容易に記述できるので、センサデータなどの情報の集約と蓄積を行う装置において求められる機能を柔軟かつ容易に実現することができる。
 以下ではさらに、スクリプト記載の例を何点か示すことによって、本実施形態に係る情報蓄積装置101の利点について具体的に述べる。
 図3はスクリプトの一例を示す。図3に示すスクリプト300は、軽量ストリームDB111に蓄積されているデータの中で、“subject”というキーの値が「sensor」という文字列であり、かつ、“type”というキーの値が「thermometer」という文字列であり、かつ、“date”というキーの値として格納されているミリ秒精度のタイムスタンプが現在より60秒前から現在までの時刻の範囲にあるデータの集合を検索して、それらを1つのデータエントリとしてクラウドDB104に登録する動きを実現するものである。
 まず行群301によって、現在時刻の値とその60秒前の時刻の値とを得る。次に、行302で、クラスライブラリ「ajax.collect」を呼び出し、軽量ストリームDB111を検索して結果を得る。「ajax.collect」は、クラスライブラリ116が提供するクラスの機能の1つである。このクラスの実装は、与えられた引数を、軽量ストリームDB111の入出力に用いる変数型に代入してから、軽量ストリームDB111の機能を呼び出すことにより容易に実現することができる。
 検索結果が空でなかった場合には、行303でクラスライブラリ「ajax.request」を呼び出し、クラウドDB104に登録するためのHTTP POST通信を送出する。この「ajax.request」は、クラスライブラリ116が提供するクラスの機能の1つである。このクラスの実装は、与えられた引数“url”で示されるURLのホストに対して、与えられた引数“type”および“headers”の内容をHTTPプロトコルのヘッダに設定し、与えられた引数“data”の内容をコンテンツとして、HTTP通信を行うことにより、容易に実現することができる。なお、HTTP通信を行う処理は、OSS(Open Source Software)などで広く提供されているものを用いてよい。行303では、引数“data”として前記検索結果を格納している。検索結果は複数個のデータの並びである。JavaScriptおよびJSONフォーマットが持つ、データを入れ子にして記述可能とする標準的機能によって、このように複数個のデータの並びを入れ子の値として取り扱うことができる。この内容はそのまま通信内容に反映される。また、JavaScriptでは、外部との入出力の際は自動的にJSONフォーマットに変換するという機能を言語自体が有している。
 なお、スクリプト300の例では利用していないが、変数「event」の値には、前述のように通知契機となったデータが格納されているため、そのデータを利用するようにスクリプトを記述することも可能である。例えば、通知契機となったデータのタイムスタンプを識別子の値として用い、その値を他の全てのデータにも付与することで、後から他のデータと区別するようなスクリプトを記述することも容易である。
 図4は、クラウドDB104への通信内容の一例を示す。図4に示す通信文400は、HTTPプロトコルにおけるボディに格納されるコンテンツを示したものである。前述のように、コンテンツには、図3に示したスクリプト300の行303によって検索結果であるデータの並びが格納される。DBの検索で得られるのはDBに蓄積してあるデータであるから、以前にステップS200(図2)でセンサ103から受け取ってステップS201で蓄積されたデータがそのまま通信文400に反映されることになる。例えば、行401は、キー“date”が値1473240068であり、キー“subject”が値sensorであり、キー “temperature”が値27.53125であり、キー“type”が値thermometerであるデータを表している。
 通信文400の例では、5個のデータエントリを入れ子として並べた配列データのJSONフォーマットによる表現となっている。クラウドDB104としてElasticsearchを用いた場合、このような通信文を受け取ると、5個分のデータエントリを生成するという動作仕様となっている。なお、データエントリの数は、5個に限らず、1、2~4、または6以上であることもある。
 データは、入れ子構造に限らず、他のデータ構造(例えば、配列、リスト、構造体など)に格納して送出されてもよい。また、データは、データの各々に対して任意の識別子を付与してから送出されてもよい。このようにすることで、データが一組となって一度期に送出されたものであることをネットワーク102の受信側に判別可能となる。
 図5は、スクリプトの別の例を示す。図5に示すスクリプト500は、現在より60秒前から現在までの時刻の範囲を示す時刻情報を指示文に埋め込んだリクエストをタブレット105に送信することで、タブレット105上に通知ならびにブラウザ表示を促すという動きを実現するものである。
 まず、行群501によって、現在時刻の値とその60秒前の時刻の値を得る。次に、行502で、クラスライブラリ「ajax.request」を呼び出し、タブレット105に対してHTTP POST通信を送出する。ここでは、引数“url”としてタブレット105のIPアドレスを指定する。また、HTTPのコンテンツとなる引数“data”の内容として、行群501によって算出した時刻情報を埋め込んだ文字列を生成して送出している。
 本実施形態で用いるタブレット105にインストールされているDeviceConnectは、このような形式のHTTPコンテンツを受け取ると、まず端末上に通知を表示し、その通知アイコンがタップされると、当該コンテンツによって指定されたURLのウェブコンテンツを表示するという動作仕様となっている。
 当該URLとともに前記時刻情報を埋め込んでおくことにより、表示するウェブコンテンツでは当該時刻情報を用いた処理が可能となる。例えば、時刻情報の範囲で示されるデータをクラウドDB104から検索して、折れ線グラフとして表示するようなウェブコンテンツを、容易に作成することができる。
 上述したように、本実施形態では、初期化の際に、条件式とスクリプトとの対応関係を複数個登録しておくことができる。この際、条件式はそれぞれ異なっていてもよく、あるいは、一部の組の対応関係で同一の条件式が用いられてもよい。そこで、同一の条件式に対して、スクリプト300が対応するような関係と、同じく条件式に対してスクリプト500が対応するような関係とを、初期化の際に登録しておく。このようにすると、ある時刻に発生した出来事によってセンサのデータが登録され、それに伴って当該条件式がどちらも真となり、スクリプト300とスクリプト500が時間をおかずに順に実行される。スクリプト300の行302で検索対象となったデータのタイムスタンプの範囲と、スクリプト500の行502で通信文に含めた時刻範囲とが合致することになるから、スクリプト500による通知信号を受け取ったタブレットが表示するウェブコンテンツでは、前記検索対象となったデータがグラフ表示できる。このように、本実施形態では、センサのデータに当然埋め込まれているタイムスタンプ情報を識別子としても用いることで、クラウドDB104に登録したデータを後からウェブコンテンツとして表示する際に対応関係を判別可能としている。
 本発明の範囲はこれに限るものではなく、複数個のデータを、例えば一つの長大なデータエントリとしてクラウドDB104に登録したり、もしくは、それぞれのデータに対して新たなJSONデータフォーマットにおけるキーを付加して、そのキーの値として特定の識別子を付与しておくような実現も可能である。特に後者の場合は、スクリプト300の行303の前に、変数「thermometer」の各要素を巡回してキーを付加するようなループ文を追加することで、容易に実現可能である。また、当該キーとしては、前記の変数「event」に含まれる値を用いてもよい。
 以上で述べてきた本実施形態について、得られる具体的な効果を以下に示す。
 条件式として成立頻度の低い条件を記述し、当該条件式に対応付けられるスクリプトで軽量ストリームDB111から多数のエントリを取得するような範囲で検索を行ってその結果をクラウドDB104に送出するよう記述することにより、複数のセンサのデータ登録を集約して通信量を削減できるという利点が得られる。例えば、1分に1回送出される温度センサの情報を60回蓄積して、1時間分をひとまとめにしてクラウドDB104に送信すれば、通信回数を削減できるため、通信負荷を削減することができる。あるいは、温度が異常に上昇した際に、その直前数回分のデータのみをひとまとめにしてクラウドDB104に送信すれば、通信回数を削減できるため、通信負荷を削減することができる。さらに、温度が異常に上昇した際に、1時間分をひとまとめにする処理の実行を待たずにクラウドに送信することができるため、通信負荷を削減しつつ、異常を素早く検知できるという利点を得ることもできる。
 これらの条件式や、どのようなクラウドDB104の検索条件とするかといった設定は、初期化時に読み込まれるファイルの変更によって容易にカスタマイズが可能となるため、柔軟に定義を変更可能であり、本発明の装置を利用したセンサネットワークのシステムの開発工数を削減できる。
 本実施形態では、スクリプト300(図3)の行303におけるクラウドDB104へのデータ登録と、スクリプト500(図5)の行502におけるタブレット105への通知とが、いずれも単一のクラスライブラリ「ajax.request」によって実現できている。これは、本実施形態で用いたクラウドDB104とタブレット105とが、いずれもHTTPによる通信を受け取ることによって、データ登録であったり通知表示であったりといった機能を実現するようなAPI(Application Program Interface)を提供しているためである。このように、ウェブ技術であるHTTPあるいはHTTPにJSONを組み合わせたAPIは、クラウドやIoTと呼ばれる技術領域で広く普及しているため、本実施形態に係る情報蓄積装置101のような装置は、HTTPおよびJSONを標準的な入出力して採用することにより、単一の仕組みによって広汎な装置と結合可能であるという利点が得られる。そもそも、本実施形態においては、スクリプト114からの通信機能はクラスライブラリ116によって提供されているため、クラスライブラリ116の拡充によって様々なプロトコルをAPIとして持つような接続相手へと拡張可能であるという利点がある。その上で、クラスライブラリ116としてHTTPおよびJSONでの通信を予め標準機能として提供しておくことにより、クラスライブラリ116を拡充せずとも多くの相手と接続可能である。
 本実施形態においては、軽量ストリームDB111としてuTSLiteを用いた。これによって、データを蓄積し後から検索する機能と、事前に登録した条件に従って後から蓄積されたデータが当該条件に合致した際に通知を行う機能とを、単一の機能部によって実現できるという利点がある。本発明の範囲はこれに限るものではなく、別のDBシステムを用いてもよいし、あるいはそれぞれの機能を別々に実現してもよい。例えば、データを蓄積し後から検索する機能は、リレーショナルデータベースを用いて実現してもよく、また、事前に登録した条件に従って後から蓄積されたデータが当該条件に合致した際に通知する機能は、配列やリストや連想配列や木構造やPub-SubシステムやストアドプロシジャやストリームDBなどの技術を用いて実現してもよい。
 本実施形態においては、スクリプト114はJavaScript言語を用いた。JavaScript言語は、HTTPおよびJSONと組み合わせてクラウドへの通信を記述する際に広く用いられており、様々な既存のライブラリを活用可能であるなどの利点がある。本発明の範囲はこれに限るものではなく、別のプログラミング言語を用いてもよい。
 本実施形態においては、データ交換用符号のデータ形式にJSONを用いた。本発明の範囲はこれに限るものではなく、別のデータ形式を用いてもよい。特に、ドキュメント指向DBでは、データ形式としてXMLも広く用いられており、XMLをデータ形式として用いることで、組み合わせられるクラウドDBの種類を広くできるという利点が得られる。
 なお、本実施形態においては、情報蓄積装置101が1台の情報処理装置により実現されるものとして説明を行った。他の実施形態では、情報蓄積装置101は、複数台の情報処理装置の組み合わせにより実現されてもよい。
 (第2の実施形態)
 図6は、本発明の第2の実施形態に係る情報管理システム600の構成を示す。図6において、図1に示した要素と同様の要素に同じ参照符号を付して、それらの要素についての説明を適宜省略する。情報管理システム600では、情報蓄積装置601とセンサ103とクラウドDB104と機器605とがネットワーク102に接続される。機器605は、情報処理装置の一例である。機器605は、第1の実施形態において説明したタブレット105と同様の構成を有することができる。機器605はセンサ606を含む。センサ606は、計測を行ってセンサデータを生成し、このセンサデータをネットワーク102を通じて情報蓄積装置601に送信する。
 情報蓄積装置601は、例えば、サーバ装置やPCなどの情報処理装置であり、ハードウェアとして、CPUなどのプロセッサと、メモリと、ネットワーク102を通じて通信を行うための通信インタフェース119とを備える。情報蓄積装置601は、ディスプレイ、キーボード、マウスなどの入出力のためのインタフェースをさらに備えていてもよい。
 情報蓄積装置601は、軽量ストリームDB111、センサデータ収集部112、アクション対応情報613、バイナリ実行環境615、初期化部117、および処理部618を備える。処理部618は、通知部619およびプロセス実行部620を含む。軽量ストリームDB111、センサデータ収集部112、および初期化部117による各種処理は、プロセッサがメモリから各種プログラムを読み出して実行することにより実現することができる。
 バイナリ実行環境615は、第1の実施形態で説明したクラスライブラリ116と同様のクラスライブラリ(図6では図示されていない)を備える。例えば、クラスライブラリは、軽量ストリームDB111からデータを検索するクラスと、ネットワーク102を通じてHTTPまたはHTTPSプロトコルまたはMQTT(MQ telemetry transport)プロトコルで通信するクラスとを提供する。言い換えると、バイナリ実行環境615は、バイナリ実行環境615上で動作しているプロセス614によって、軽量ストリームDB111からデータを検索する指示とネットワーク102を通じてHTTPまたはHTTPSプロトコルまたはMQTTで通信する指示とを記述可能である特徴を有する。
 プロセス実行部620は、バイナリ実行環境615を使用してプロセス(バイナリファイルまたはバイナリとも称される)614を実行する。それにより、プロセス614がバイナリ実行環境615上で動作する。プロセス614は、ソースファイルが通信インタフェース119または入出力のためのインタフェースを通じて情報蓄積装置601に入力されて情報蓄積装置601上でコンパイルされることにより、生成される。アクション対応情報613は、事前に登録された条件とバイナリ実行環境615上で動作するプロセス614との対応関係を示す。
 通知部619は、軽量ストリームDB111からの通知を受けて、アクション対応情報613を参照して当該通知が発せられる契機となった条件に対応付けられるプロセス614を特定し、特定したプロセス614に対して通知を出力する。通知部619から通知を受けたプロセス614は、所定の処理を行う。プロセス614は、第1の実施形態において説明したスクリプト114と同様の処理を行うことができる。例えば、あるプロセス614は、軽量ストリームDB111を検索する処理と、検索により得られたデータを含む、イベント発生を知らせる通知信号を、ネットワーク102を通じて外部装置(例えば機器605)に送信する処理とを行う。
 なお、上記の実施に代えて、プロセス実行部620が、軽量ストリームDB111からの通知を受けて、アクション対応情報613を参照して当該通知が発せられる契機となった条件に対応付けられるプロセス614を特定し、特定したプロセス614をバイナリ実行環境615を使用して実行してもよい。この場合、プロセス614は、起動すると所定の処理を行う。
 初期化部117は、情報蓄積装置601の起動時に、軽量ストリームDB111へ条件を登録し、プロセス実行部620にプロセス614を実行させ、条件とプロセス614との対応関係を示すアクション対応情報613をメモリに保持させる。アクション対応情報613は、情報蓄積装置601の起動中に、プロセス614からの指示に基づいて編集することが可能である。
 図7は、情報蓄積装置601におけるセンサデータ登録処理のフローの一例を示す。
 センサ103がネットワーク102を通じて情報蓄積装置601にセンサデータを送信すると、センサデータ収集部112は、センサ103からセンサデータを受け取り(ステップS700)、受け取ったセンサデータを軽量ストリームDB111に蓄積する(ステップS701)。
 軽量ストリームDB111に新たに蓄積されたセンサデータが条件に合致すると、軽量ストリームDB111は、軽量ストリームDB111に新たに蓄積されたセンサデータが合致した条件を示す通知を処理部618の通知部に出力する。処理部618内の通知部619は、アクション対応情報613を参照して、条件に対応付けられたプロセス614を特定する(ステップS702)。次いで、通知部619は、特定したプロセス614に対して通知を出力する(ステップS703)。特定されたプロセス614を実行しているプロセス実行部620は、通知部619から通知を受け取り(ステップS704)、軽量ストリームDB111の検索および/またはネットワーク102を通じた通知信号の送出を行う(ステップS705)。
 本実施形態に係る情報蓄積装置601では、第1の実施形態と同様に、単一の開発済み装置を用いて設定ファイル(プロセスまたはそのソースファイル)の入れ替えのみによって様々な機能を実現することができる。
 図8は、一実施形態に係る情報蓄積装置700のハードウェア構成の一例を示している。情報蓄積装置700は、情報蓄積装置101または情報蓄積装置601であり得る。図8に示すように、情報蓄積装置800は、CPU801、メインメモリ802、プログラムメモリ803、補助記憶装置804、通信インタフェース805、および外部インタフェース806を備え、これらは、バス807を通じて接続されている。
 CPU801は、プログラムメモリ803に記憶されているプログラムを読み出してメインメモリ802に展開し、そのプログラムを実行することで、情報蓄積装置101または情報蓄積装置601に関して上述した機能を実現する。メインメモリ802は、例えばSRAM(Static Random Access Memory)またはDRAM(Dynamic Random Access Memory)である。プログラムメモリ803は、ROM(Read-Only memory)であってもよく、補助記憶装置804の一部として実施されてもよい。補助記憶装置804は、例えば、HDD、SSDであり、各種データを記憶する。
 通信インタフェース805は、有線通信モジュール、無線通信モジュール、またはそれらの組み合わせを含み、外部機器(例えばセンサ103やクラウドDB104)と通信する。外部インタフェース806は、キーボードなどの入力装置、ディスプレイ装置などの出力装置などと接続するためのインタフェースである。
 CPU801は、プロセッサの一例である。プロセッサは、CPU801などの汎用の処理回路に限らず、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などの専用の処理回路であってもよい。プロセッサとして専用の処理回路が使用される場合、プログラムはその専用の処理回路内に存在していてもよい。プロセッサは、1つまたは複数の汎用の処理回路および/または1つまたは複数の専用の処理回路を含むことができる。
 上述した処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどを使用することができる。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上述した処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由で情報蓄積装置800にダウンロードさせてもよい。
 なお、本発明のいうセンサデータとは、センサデバイスによって計測される実世界の情報を含み、その他様々な情報も対象とすることができる。具体的な例を挙げると、温度や湿度、電流あるいは電圧値、流体の流量、物質の濃度、明度、騒音、位置、加速度などを含むセンサデバイスが計測した値を取り扱ってよく、またそれに限らず、センサ以外の例えばWebやインターネットを経由して取得した情報であってもよい。さらに、それら値に加えて、センサの特性や状態、計測日時などを示すメタデータを含む情報であってもよい。
 本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。

Claims (20)

  1.  ネットワークを介して受信した情報を蓄積する情報蓄積装置であって、
     前記情報蓄積装置は、
     スクリプト実行環境と、
     データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、
     前記蓄積検索部に新たに蓄積されたデータが事前に登録された条件のいずれかに合致したことに応答して通知を出力する通知部と、
     スクリプトと、前記事前に登録された条件と前記スクリプトとの対応関係を示すアクション対応情報とを保持する記憶部と
    を具備し、
     前記スクリプト実行環境は、実行されるスクリプトによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有し、
     前記情報蓄積装置は、
     前記ネットワークを通じてデータを収集し前記蓄積検索部に登録する収集部と、
     前記通知を受けて、前記アクション対応情報によって前記合致した条件に対応付けられるスクリプトを、前記スクリプト実行環境を用いて実行するスクリプト実行部と
    をさらに具備する情報蓄積装置。
  2.  前記スクリプトは、
     前記データを検索する指示によって、前記蓄積検索部からデータを取得する取得部と、
     前記ネットワークを通じて通信する指示によって、前記取得部によって取得されたデータを前記ネットワークに対して送出する送出部と
    を有する請求項1に記載の情報蓄積装置。
  3.  前記事前に登録された条件は、前記収集部によって登録される全てのデータの集合のうちの一部のデータのみに合致する条件であり、
     前記取得部によって取得されたデータは、1つまたは複数個のデータであり、
     前記ネットワークを通じて通信する指示によって前記1つまたは複数個のデータを送出する際に、前記1つまたは複数個のデータは、配列、リスト、構造体および入れ子構造のうちのいずれかのデータ構造に格納して送出されるか、あるいは、前記1つまたは複数個のデータの各々に対して任意の識別子を付与してから送出される請求項2に記載の情報蓄積装置。
  4.  前記スクリプト実行環境は、クラスライブラリを備え、
     前記クラスライブラリは、データを検索するクラスと、ネットワークを通じて通信するクラスとを有し、
     前記特徴は、前記実行されるスクリプトにより前記クラスライブラリを呼び出すことによって実現される請求項1に記載の情報蓄積装置。
  5.  前記ネットワークを通じて通信する指示は、HTTPまたはHTTPSプロトコルをトランスポートプロトコルとして用い、JSONまたはXMLデータフォーマットをデータ交換用符号として用いる請求項1に記載の情報蓄積装置。
  6.  前記スクリプト実行部は、前記ネットワークを通じて通信する指示によって、JSONまたはXMLデータフォーマットで記述されたドキュメントを蓄積するドキュメント指向データベースに蓄積指示を送出する請求項5に記載の情報蓄積装置。
  7.  前記スクリプト実行部は、前記ネットワークを通じて通信する指示によって、前記ネットワークに接続された情報処理装置に対してイベント発生を知らせる通知信号を送出する請求項1に記載の情報蓄積装置。
  8.  前記スクリプト実行部は、前記ネットワークを通じて通信する指示によって、前記ネットワークに接続された情報処理装置に対してイベント発生を知らせる通知信号を送出し、
     前記通知信号は、前記1つまたは複数個のデータからなるデータ集合を他のデータ集合と区別するための識別情報を含む請求項3に記載の情報蓄積装置。
  9.  前記蓄積検索部および前記通知部は、いずれもuTSLiteを用いて実現される請求項1に記載の情報蓄積装置。
  10.  スクリプト実行環境と、データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、スクリプトと、事前に登録された条件と前記スクリプトとの対応関係を示すアクション対応情報とを保持する記憶部とを備え、前記スクリプト実行環境が、実行されるスクリプトによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有する、情報蓄積装置が実行する情報蓄積方法であって、
     ネットワークを通じてデータを収集し前記蓄積検索部に登録することと、
     前記蓄積検索部に新たに登録されたデータが前記事前に登録された条件のいずれかに合致したことに応答して通知を出力することと、
     前記通知を受けて、前記アクション対応情報によって前記合致した条件に対応付けられるスクリプトを、前記スクリプト実行環境を用いて実行することと、
    を具備する情報蓄積方法。
  11.  請求項1に記載の情報蓄積装置の各部としてコンピュータを機能させるためのプログラム。
  12.  ネットワークを介して受信した情報を蓄積する情報蓄積装置であって、
     バイナリ実行環境と、
     データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、
     前記蓄積検索部に新たに蓄積されたデータが事前に登録された条件のいずれかに合致したことに応答して第1の通知を出力する第1の通知部と、
     前記事前に登録された条件と前記バイナリ実行環境上で動作しているプロセスとの対応関係を示すアクション対応情報を保持する記憶部とを具備し、
     前記バイナリ実行環境は、実行されるプロセスによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有し、
     前記情報蓄積装置は、
     前記ネットワークを通じてデータを収集し前記蓄積検索部に登録する収集部と、
     前記第1の通知を受けて、前記アクション対応情報によって前記合致した条件に対応付けられるプロセスに対して第2の通知を出力する第2の通知部と
    をさらに具備する情報蓄積装置。
  13.  前記プロセスは、
     前記データを検索する指示によって、前記蓄積検索部からデータを取得する取得部と、
     前記ネットワークを通じて通信する指示によって、前記取得部によって取得されたデータを前記ネットワークに対して送出する送出部と
    を有する請求項12に記載の情報蓄積装置。
  14.  前記事前に登録された条件は、前記収集部によって登録される全てのデータの集合のうちの一部のデータのみに合致する条件であり、
     前記取得部によって取得されたデータは、1つまたは複数個のデータであり、
     前記ネットワークを通じて通信する指示によって前記1つまたは複数個のデータを送出する際に、前記1つまたは複数個のデータは、配列、リスト、構造体および入れ子構造のうちのいずれかのデータ構造に格納して送出されるか、あるいは、前記1つまたは複数個のデータの各々に対して任意の識別子を付与してから送出される請求項13に記載の情報蓄積装置。
  15.  前記バイナリ実行環境は、クラスライブラリを備え、
     前記クラスライブラリは、データを検索するクラスと、ネットワークを通じて通信するクラスとを有し、
     前記特徴は、前記実行されるプロセスにより前記クラスライブラリを呼び出すことによって実現される請求項12に記載の情報蓄積装置。
  16. 前記ネットワークを通じて通信する指示は、HTTPまたはHTTPSプロトコルまたはMQTTプロトコルをトランスポートプロトコルとして用い、JSONまたはXMLデータフォーマットをデータ交換用符号として用いる請求項12に記載の情報蓄積装置。
  17.  前記バイナリ実行環境を使用して前記プロセスを実行するプロセス実行部をさらに備え、
     前記プロセス実行部は、前記ネットワークを通じて通信する指示によって、JSONまたはXMLデータフォーマットで記述されたデータまたはファイルを蓄積するデータベースに蓄積指示を送出する請求項16に記載の情報蓄積装置。
  18.  前記バイナリ実行環境を使用して前記プロセスを実行するプロセス実行部をさらに備え、
     前記プロセス実行部は、前記ネットワークを通じて通信する指示によって前記ネットワークに接続された情報処理装置に対して、イベント発生を知らせる通知信号を送出し、
     前記通知信号は、前記1つまたは複数個のデータからなるデータ集合を他のデータ集合と区別するための識別情報を含む請求項14に記載の情報蓄積装置。
  19.  バイナリ実行環境と、データを蓄積し、蓄積しているデータに対する検索を行う蓄積検索部と、事前に登録された条件と前記バイナリ実行環境上で動作しているプロセスとの対応関係を示すアクション対応情報を保持する記憶部とを備え、前記バイナリ実行環境が、実行されるプロセスによって、データを検索する指示とネットワークを通じて通信する指示とを記述可能である特徴を有する、情報蓄積装置が実行する情報蓄積方法であって、
     ネットワークを通じてデータを収集し前記蓄積検索部に登録することと、
     前記蓄積検索部に新たに登録されたデータが前記事前に登録された条件のいずれかに合致したことに応答して第1の通知を出力することと、
     前記第1の通知を受けて、前記アクション対応情報によって前記合致した条件に対応付けられるプロセスに対して第2の通知を出力することと
    を具備する情報蓄積方法。
  20.  請求項12に記載の情報蓄積装置の各部としてコンピュータを機能させるためのプログラム。
PCT/JP2017/040467 2016-11-10 2017-11-09 情報蓄積装置、情報蓄積方法およびプログラム WO2018088490A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/342,150 US11392650B2 (en) 2016-11-10 2017-11-09 Data accumulation apparatus, data accumulation method, and program
JP2018550264A JP6832366B2 (ja) 2016-11-10 2017-11-09 情報蓄積装置、情報蓄積方法およびプログラム
CN201780069436.8A CN109923537B (zh) 2016-11-10 2017-11-09 信息积累装置、信息积累方法以及程序
EP17869456.8A EP3540614B1 (en) 2016-11-10 2017-11-09 Information storage device, information storage method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-219472 2016-11-10
JP2016219472 2016-11-10

Publications (1)

Publication Number Publication Date
WO2018088490A1 true WO2018088490A1 (ja) 2018-05-17

Family

ID=62109847

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/040467 WO2018088490A1 (ja) 2016-11-10 2017-11-09 情報蓄積装置、情報蓄積方法およびプログラム

Country Status (5)

Country Link
US (1) US11392650B2 (ja)
EP (1) EP3540614B1 (ja)
JP (1) JP6832366B2 (ja)
CN (1) CN109923537B (ja)
WO (1) WO2018088490A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020158347A1 (ja) * 2019-01-30 2020-08-06 日本電信電話株式会社 情報処理装置、方法およびプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018147290A (ja) * 2017-03-07 2018-09-20 オムロン株式会社 センサのメタデータ生成装置、センサのメタデータ生成システム、センサのメタデータ生成方法及びセンサのメタデータ生成プログラム
US11825342B2 (en) * 2020-09-02 2023-11-21 Brain Corporation Systems, apparatuses, and methods for reducing network bandwidth usage by robots
CN112286701B (zh) * 2020-10-27 2024-06-28 深圳市拓邦软件技术有限公司 一种物联网通信方法、系统、物联网设备及云端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5948399B2 (ja) 1978-12-15 1984-11-26 松下電器産業株式会社 音声合成方式
JPH09245053A (ja) * 1996-03-05 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> 情報検索サービス方法及びシステム
JP2006092028A (ja) * 2004-09-21 2006-04-06 Olympus Corp データ収集装置及びデータ収集システム
JP2010020518A (ja) * 2008-07-10 2010-01-28 Hitachi Software Eng Co Ltd 電子掲示板システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004258982A (ja) * 2003-02-26 2004-09-16 Nec Fielding Ltd インターネットを利用した求職求人システム、求職求人サーバ、求職求人方法、及びプログラム
US7467180B2 (en) * 2003-05-29 2008-12-16 International Business Machines Corporation Automatically segmenting and populating a distributed computing problem
JP2006189978A (ja) * 2004-12-28 2006-07-20 Web Do Japan Co Ltd 情報検索システム、情報検索サーバ、情報検索方法、及び情報検索プログラム
JP4808409B2 (ja) * 2005-01-14 2011-11-02 株式会社日立製作所 センサネットワークシステム、センサデータの検索方法及びプログラム
JP5583476B2 (ja) * 2010-05-21 2014-09-03 株式会社日立製作所 ノード装置、ノードシステム、および情報処理方法
WO2013029031A2 (en) * 2011-08-24 2013-02-28 Evergram, Inc. Future messaging system
JP2014229166A (ja) 2013-05-24 2014-12-08 富士通株式会社 通信システム、通信方法、事業管理システム、管理装置、プログラム、中継装置、データ位置管理装置
JP5948399B2 (ja) 2014-12-04 2016-07-06 日本電信電話株式会社 情報記録装置、方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5948399B2 (ja) 1978-12-15 1984-11-26 松下電器産業株式会社 音声合成方式
JPH09245053A (ja) * 1996-03-05 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> 情報検索サービス方法及びシステム
JP2006092028A (ja) * 2004-09-21 2006-04-06 Olympus Corp データ収集装置及びデータ収集システム
JP2010020518A (ja) * 2008-07-10 2010-01-28 Hitachi Software Eng Co Ltd 電子掲示板システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3540614A4

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020158347A1 (ja) * 2019-01-30 2020-08-06 日本電信電話株式会社 情報処理装置、方法およびプログラム
JPWO2020158347A1 (ja) * 2019-01-30 2021-09-09 日本電信電話株式会社 情報処理装置、方法およびプログラム
JP7025104B2 (ja) 2019-01-30 2022-02-24 日本電信電話株式会社 情報処理装置、方法およびプログラム

Also Published As

Publication number Publication date
EP3540614A4 (en) 2020-04-15
CN109923537A (zh) 2019-06-21
EP3540614A1 (en) 2019-09-18
US11392650B2 (en) 2022-07-19
EP3540614B1 (en) 2024-05-15
CN109923537B (zh) 2023-07-21
JP6832366B2 (ja) 2021-02-24
JPWO2018088490A1 (ja) 2019-06-24
US20190258679A1 (en) 2019-08-22

Similar Documents

Publication Publication Date Title
WO2018088490A1 (ja) 情報蓄積装置、情報蓄積方法およびプログラム
US10417060B2 (en) Automated API publication for Internet of Things platform
US10860406B2 (en) Information processing device and monitoring method
JP4991670B2 (ja) ノードネットワークのためのフォールトトレランスフレームワーク
US20140289366A1 (en) Service providing method and system for instance hosting
US10326656B2 (en) Multi-stage network discovery
US11409760B2 (en) Data array of objects indexing
US11681707B1 (en) Analytics query response transmission
JP2016509313A (ja) マシン・ツー・マシン通信のための動作トリガ方法および装置
US10489485B2 (en) Analytic system for streaming quantile computation
CN111930531A (zh) 数据处理、数据生产、数据消费方法、装置、设备及介质
US10713014B2 (en) Multi-platform interface framework
US20180124214A1 (en) System and Method for Resource Presentation
US10754977B2 (en) Report comprising a masked value
JP2018055457A (ja) データ収集システム、収集装置、情報収集プログラム、サーバ装置およびサーバプログラム
US20190050120A1 (en) Systems and methods for dynamic user interface population
CN112506740B (zh) 一种云报警方法、电子设备、存储介质及云报警装置
US12074776B1 (en) Providing high performance internet of things data ingestion and processing
KR20170051718A (ko) 사물 자원 정보 공유 방법 및 장치
CN114637648A (zh) 信息管理方法、装置、电子设备和计算机可读介质
CN118606535A (zh) 一种数据获取方法、装置、介质及设备
CN113778800A (zh) 一种报错信息处理方法、装置、系统、设备及存储介质

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018550264

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17869456

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017869456

Country of ref document: EP

Effective date: 20190611