WO2018074479A1 - データ処理装置およびデータ処理方法 - Google Patents

データ処理装置およびデータ処理方法 Download PDF

Info

Publication number
WO2018074479A1
WO2018074479A1 PCT/JP2017/037579 JP2017037579W WO2018074479A1 WO 2018074479 A1 WO2018074479 A1 WO 2018074479A1 JP 2017037579 W JP2017037579 W JP 2017037579W WO 2018074479 A1 WO2018074479 A1 WO 2018074479A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
data
unit
processing
request
Prior art date
Application number
PCT/JP2017/037579
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 JP2018546361A priority Critical patent/JP6811251B2/ja
Priority to EP17861863.3A priority patent/EP3531309A4/en
Priority to US16/340,671 priority patent/US11347765B2/en
Priority to CN201780065119.9A priority patent/CN110168521B/zh
Publication of WO2018074479A1 publication Critical patent/WO2018074479A1/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
    • G06F16/258Data format conversion from or to a database
    • 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
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • 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
    • G06F16/2462Approximate or statistical queries
    • 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
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases

Definitions

  • the present invention relates to data processing accompanying database search.
  • IoT Internet of Things
  • data collected from sensors / devices is stored in a database and referenced for utilization by applications.
  • the number of applications that access the database is not limited to one. That is, it is possible to construct a system in which a plurality of different applications commonly access one database.
  • a conventional database receives a data processing request from an application, performs preprocessing such as query conversion of the data processing request, and then performs a search. Further, the conventional database may optionally perform post-processing such as statistical processing (for example, aggregation, filtering, average value calculation, and sorting) using the search results.
  • post-processing such as statistical processing (for example, aggregation, filtering, average value calculation, and sorting) using the search results.
  • IoT although the individual size of data collected from a sensor / device is small, a huge number of data is collected and stored in a database. Therefore, in IoT, a large data processing load is imposed on the database. Therefore, especially in IoT, when multiple applications request data processing from the database at the same time, hardware resources such as database computing power (CPU (Central Processing Unit)) and storage area (memory) are specific applications. Is occupied for a long time, while the rest of the application has an increased latency.
  • CPU Central Processing Unit
  • the present invention aims to improve the fairness of database usage among a plurality of applications.
  • a data processing apparatus includes a data processing unit.
  • the data processing unit performs pre-processing for a data processing request to the common database issued by one of a plurality of applications that access the common database, and post-processing for a search result returned from the common database in response to the data processing request. At least a part of the processing is performed.
  • a data processing apparatus includes a first virtualization unit and a second virtualization unit.
  • the first virtualization unit includes a first data processing unit.
  • the second virtualization unit includes a second data processing unit.
  • the first data processing unit performs preprocessing and first data processing for a first data processing request to the common database issued by a first application that is one of a plurality of applications that access the common database. At least a part of post-processing for the first search result returned from the common database is performed in response to the request.
  • the second data processing unit is shared according to the pre-processing for the second data processing request to the common database issued by the second application that is one of the plurality of applications and the second data processing request. At least a part of post-processing for the second search result returned from the database is performed.
  • FIG. 1 is a block diagram illustrating a data processing apparatus according to the first embodiment.
  • FIG. 2 is a block diagram illustrating a data processing system including the data processing apparatus according to the first embodiment.
  • FIG. 3 is a block diagram illustrating the database of FIG.
  • FIG. 4 is a block diagram illustrating details of the data processing system including the data processing device according to the first embodiment.
  • FIG. 5 is a flowchart illustrating the operation of the data processing system of FIG. 2 or FIG.
  • FIG. 6 is a block diagram illustrating a hardware configuration of the data processing device according to the first embodiment.
  • the data processing apparatus 100 includes an application execution unit 101 and a data processing unit 102.
  • the data processing apparatus 100 is typically a computer and includes a processor such as a CPU and a memory.
  • the processor can function as the application execution unit 101 and the data processing unit 102 by executing a predetermined program loaded in the memory.
  • the application is not limited to the application installed in the data processing apparatus 100, and may include a web application, a cloud application, and the like.
  • the application execution unit 101 and the data processing unit 102 may be implemented as one virtualization unit (for example, may be a virtual machine or a container) in the data processing apparatus 100, or as different virtualization units. May be. Furthermore, the application execution unit 101 may not be included in the data processing apparatus 100 but may be included in an apparatus different from the data processing apparatus 100 (for example, can be referred to as an application apparatus).
  • the application execution unit 101 executes one of a plurality of applications that access a common database, and issues a data processing request (for example, a data reference request) to the database.
  • the application execution unit 101 sends the issued data processing request to the data processing unit 102.
  • the application execution unit 101 displays a database search result according to a data processing request that has already been issued by the application execution unit 101 or a post-processing result obtained by performing post-processing described later on the search result. Receive from 102.
  • the data processing unit 102 receives a data processing request from the application execution unit 101 and performs preprocessing for the data processing request.
  • the preprocessing can be, for example, query conversion of a data processing request.
  • the data processing unit 102 sends a preprocessed data processing request to a database (for example, a database management apparatus 200 described later).
  • the data processing unit 102 receives a database search result corresponding to the preprocessed data processing request from the database management apparatus 200.
  • the data processing unit 102 performs post-processing on the search result as necessary.
  • the post-processing can be, for example, statistical processing (for example, aggregation, filtering, average value calculation or sorting) using the search result.
  • the data processing unit 102 may determine to perform post-processing when the post-processing is included in the data processing request, and may determine not to perform post-processing otherwise.
  • the data processing unit 102 returns the post-processing result to the application execution unit 101 when the post-processing is performed, and returns the search result to the application execution unit 101 when the post-processing is not performed.
  • the data processing unit 102 may be implemented as a common application, for example, incorporating the above functions. Alternatively, the data processing unit 102 may include a node. A web server such as js may be implemented. Further, the application execution unit 101 and the data processing unit 102 may be connected via an API (Application Programming Interface) (for example, REST API) for converting a data processing request.
  • API Application Programming Interface
  • the data processing apparatus 100 is a part of the data processing system illustrated in FIG.
  • the data processing system of FIG. 2 includes a database management device 200 and a plurality of data processing devices 100-1, 100-2,... That execute a plurality of applications that access the database management device 200 in common.
  • the database management apparatus 200 are included in a plurality of data processing apparatuses 100-1, 100-2,... And a part or all of the database management apparatus 200. It may be implemented as a plurality of different virtualization units in the same computer (for example, it can be called by a more specific name such as a data processing device, a database management device, etc.). Specifically, the data processing unit 102 and the database management device 200 included in one or a plurality of data processing devices 100 may be implemented as a plurality of different virtualization units in the same computer, or a plurality of data The data processing unit 102 included in the processing apparatus 100 may be implemented as a plurality of different virtualization units in the same computer.
  • the database management device 200 (or a database virtualization unit) includes a data management unit 201 and a data recording unit 202 as illustrated in FIG.
  • the database management apparatus 200 is typically a computer, and includes a processor such as a CPU, a memory, and an auxiliary storage device (for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), etc.).
  • the processor can function as the data management unit 201 by executing a predetermined program loaded in the memory.
  • the auxiliary storage device functions as the data recording unit 202.
  • the data management unit 201 receives a preprocessed data processing request from any of the data processing devices 100 (or a virtualization unit for data processing).
  • the data management unit 201 searches a database constructed in the data recording unit 202 in response to a preprocessed data processing request. Then, the data management unit 201 returns the search result to the data processing apparatus 100 that is the transmission source of the preprocessed data processing request.
  • the data management unit 201 updates the database by writing data collected from the sensor / device (for example, the sensor / device 400 in FIG. 4) to the data recording unit 202.
  • data collected from the sensor / device is written by the data management unit 201, and this is recorded permanently.
  • a set of data stored in the data recording unit 202 corresponds to a database.
  • the database constructed in the data recording unit 202 is searched by the data management unit 201 as necessary.
  • FIG. 4 illustrates details of the data processing system 300 according to the first embodiment.
  • the data processing system 300 includes a plurality of data processing virtualization units 310-1, 310-2,..., A database virtualization unit 320, a message broker 330, and a converter 340.
  • a database is constructed using data collected from a plurality of sensors / devices 400-1, 400-2,..., And a plurality of applications access the database in common.
  • the virtualization unit 310 for data processing can be replaced with independent hardware (for example, the data processing apparatus 100).
  • the database virtualization unit 320 can be replaced with independent hardware (for example, the database management apparatus 200).
  • the virtualization unit 310 for each data processing implements the application 311 and the web server 312.
  • the application 311 and the web server 312 correspond to the application execution unit 101 and the data processing unit 102, respectively.
  • the web server 312 may be a common application that incorporates the same function as the data processing unit 102.
  • the application 311 may be implemented by a virtualization unit different from the data processing virtualization unit 310 (for example, can be referred to as an application virtualization unit) or by independent hardware (for example, an application device). .
  • the application 311 issues a data processing request for the database implemented by the database virtualization unit 320.
  • the application 311 sends the issued data processing request to the web server 312.
  • the application 311 receives from the web server 312 a database search result that has already been issued by the application 311 or a post-processing result obtained by performing post-processing on the search result.
  • the web server 312 receives a data processing request from the application 311 and performs preprocessing for the data processing request.
  • the web server 312 sends the preprocessed data processing request to the database virtualization unit 320.
  • the web server 312 establishes a session with the application 311 and receives a data processing request from the application 311. Then, the web server 312 receives (1) an HTML (Hyper Text Markup Language) request as pre-processing for the data processing request, and (2) for example, JSON (Java Script (registered trademark) Object Notification), XML (Extensible Markup Language). Or the like, and (3) query analysis can be performed. Query analysis can include determining whether the data processing request is a data write or search request, and if it is a search request, it can include a search condition analysis. Note that the application 311 and the web server 312 may be connected via an API or the like for converting a data processing request.
  • HTML Hyper Text Markup Language
  • JSON Java Script (registered trademark) Object Notification
  • XML Extensible Markup Language
  • query analysis can include determining whether the data processing request is a data write or search request, and if it is a search request, it can include a
  • the web server 312 receives a database search result corresponding to the preprocessed data processing request from the database.
  • the web server 312 performs post-processing on the search result as necessary.
  • the web server 312 returns the post-processing result to the application 311 when the post-processing is performed, and returns the search result to the application 311 when the post-processing is not performed.
  • the web server 312 receives a database search result corresponding to the preprocessed data processing request from the query controller 321.
  • the web server 312 can perform statistical processing of acquired data, cache processing, and the like as necessary as post-processing for the search result.
  • the web server 312 establishes a one-to-one session with the query controller 321.
  • the web server 312 can reduce the processing load on the query controller 321 by establishing and maintaining a session using a simple protocol that continuously maintains a one-to-one session.
  • security can be enhanced by using SSL (Secure Sockets Layer) as a protocol between the web server 312 and the query controller 321.
  • the processing load on the query controller 321 is reduced because the web server 312 bears the load of these pre-processing and post-processing and most of the processing load when establishing and maintaining the session. Therefore, the fairness when a plurality of data processing devices 100 are connected to one database management device 200 can be improved.
  • the database virtualization unit 320 includes a query controller 321, a data manager 322, a data recording unit 323, and a message client 324.
  • the query controller 321, the data manager 322, and the message client 324 correspond to the data management unit 201.
  • the data recording unit 323 corresponds to the data recording unit 202.
  • the query controller 321 receives a preprocessed data processing request from one of the data processing virtualization units 310 and sends it to the data manager 322.
  • the query controller 321 receives the search result from the data manager 322 and returns it to the virtualization unit 310 for data processing.
  • the query controller 321 establishes a session with the web server 312 of any one of the virtualization units 310 for data processing, and receives pre-processing (for example, the above-described (1) HTML request acceptance from the web server 312. , (2) request body parsing, for example in the form of JSON, XML, etc. (3) query analysis, etc.). Then, the query controller 321 performs deserialization processing of the received data and processing (validation) for confirming whether the type of the deserialized data is appropriate. Further, the query controller 321 sends a data search or write request to the data manager 322 according to the query analyzed by the web server 312.
  • pre-processing for example, the above-described (1) HTML request acceptance from the web server 312. , (2) request body parsing, for example in the form of JSON, XML, etc. (3) query analysis, etc.
  • the query controller 321 performs deserialization processing of the received data and processing (validation) for confirming whether the type of the deserialized data
  • the query controller 321 receives a data search or write result from the data manager 322, that is, a data processing result, and performs serialization processing of data according to a communication protocol with the web server 312 of the virtualization unit 310 for data processing. Return to 312.
  • the query controller 321 also establishes a session with the message client 324, receives the parsed data from the message client 324, performs data deserialization processing and validation, and sends a data write request to the data manager 322. send. In addition, the query controller 321 sends the data received from the data manager 322 to the web server 312.
  • the data manager 322 receives a data search or write request from the query controller 321 and, in response to this, searches a database built in the data recording unit 323 or writes data. The data manager 322 returns the search result or the write result to the query controller 321.
  • the data manager 322 receives data collected from the sensors / devices 400-1, 400-2,... From the query controller 321.
  • the data manager 322 updates the database by writing the received data to the data recording unit 323.
  • Data collected from the sensors / devices 400-1, 400-2,... Is written into the data recording unit 323 by the data manager 322.
  • a set of data stored in the data recording unit 323 corresponds to a database.
  • the database constructed in the data recording unit 323 is searched by the data manager 322 as necessary.
  • the message client 324 receives data collected from the sensors / devices 400-1, 400-2,... Via the message broker 330 and sends the data to the query controller 321.
  • the message client 324 establishes a session with the query controller 321, receives serialized data from the query controller 321, performs message formatting according to a communication protocol with the message broker 330, and sends the message to the message broker 330. Further, the message client 324 establishes a session with the message broker 330, receives data collected from the sensors / devices 400-1, 400-2,... From the message broker 330, performs a parsing process, and executes a query. Send to controller 321. Note that the message client 324 may send the parsed data directly to the data manager 322 without going through the query controller 321.
  • the message broker 330 receives data sent from the sensor / device 400 and sends it to the virtualization unit 320 for the database.
  • the message broker 330 can receive data directly from the sensor / device 400 or via the converter 340 or other functional units.
  • message broker 330 receives data from sensor / device 400-1 via converter 340 and directly receives data from sensor / device 400-2.
  • the message broker 330 and the converter 340 or the sensor / device 400 may be connected via an API or the like for converting data.
  • Converter 340 receives data from sensor / device 400 (sensor / device 400-1 in the example of FIG. 4) and performs predetermined conversion. Converter 340 sends the converted data to message broker 330.
  • the converter 340 is implemented by software, for example, and may be executed by a different virtualization unit from the data processing virtualization unit 310 and the database virtualization unit 320, or may be executed by a single device.
  • Sensor / device 400 collects predetermined data and sends the collected data to message broker 330.
  • the converter 340 or other functional units may be interposed between the sensor / device 400 and the message broker 330.
  • the sensor / device 400 and the converter 340 may be included in the same virtualization unit or apparatus, or may be included in different virtualization units or apparatuses.
  • FIG. 5 shows an operation example of the virtualization unit 310 for data processing (or the data processing apparatus 100) and the virtualization unit 320 for database (or the database management apparatus 200).
  • one of the applications 311 issues a data processing request for the database (step S501).
  • the web server 312 (or the data processing unit 102) performs preprocessing for the data processing request issued in step S501, and transfers the preprocessed data processing request to the database virtualization unit 320 (or the database management apparatus 200). (Step S502).
  • step S503 database search (or writing) is realized by the following processes (1) to (3).
  • the query controller 321 (or the data management unit 201) performs deserialization processing and validation of the received data in response to the preprocessed data processing request sent in step S502. Further, the query controller 321 sends a data search or write request to the data manager 322 according to the query analyzed by the web server 312.
  • the data manager 322 (or the data management unit 201) responds to the data search (or write request) sent from the query controller 321 (or the data management unit 201), and the data recording unit 323 (or the data recording unit).
  • the database constructed in the unit 202) is searched (or written). Then, the data manager 322 returns the search result (or write result) to the query controller 321.
  • the query controller 321 receives a search (or write result) from the data manager 322 (or data management unit 201), performs serialization processing of data, and performs the web server 312 (or data processing unit) 102).
  • the web server 312 (or the data processing unit 102) establishes a session with each of the application 311 and the query controller 321, receives the search result returned in step S503 (step S504), and the data issued in step S501. It is determined whether or not post-processing is included in the processing request (step S505). If the data processing request includes post-processing, the process proceeds to step S506; otherwise, the process proceeds to step S507.
  • step S506 the web server 312 (or the data processing unit 102) performs post-processing on the search result, and the process proceeds to step S507.
  • step S507 the web server 312 (or the data processing unit 102) displays the search result (when not passing through step S506) or the post-processing result (when passing through step S506) as the application 311 (or application execution unit). 101).
  • FIG. 6 schematically illustrates an example of the hardware configuration of the data processing apparatus 100 according to the present embodiment.
  • the data processing apparatus 100 includes a control unit 601, a storage unit 602, a communication interface 603, an input device 604, an output device 605, an external interface 606, and a drive.
  • the computer 607 may be electrically connected.
  • the communication interface and the external interface are described as “communication I / F” and “external I / F”, respectively.
  • the control unit 601 includes a CPU, a RAM (Random Access Memory), a ROM, and the like.
  • the CPU expands the program stored in the storage unit 602 in the RAM. Then, when the CPU interprets and executes this program, the control unit 601 can execute the above-described various information processing.
  • the storage unit 602 is a so-called auxiliary storage device, and may be, for example, a built-in or external semiconductor memory such as an HDD, SSD, or flash memory.
  • the storage unit 602 stores a program executed by the control unit 601 (for example, a program for causing the control unit 601 to execute various processes performed by the data processing unit 102), data used by the control unit 601, and the like.
  • the communication interface 603 may be various wireless communication or wired communication modules, and may be an interface for performing wireless communication or wired communication via a network.
  • the input device 604 may include a device for receiving user input such as a touch screen, a keyboard, and a mouse.
  • the output device 605 is a device for outputting, for example, a display or a speaker.
  • the external interface 606 is a USB (Universal Serial Bus) port, a memory card slot, or the like, and is an interface for connecting to an external device.
  • USB Universal Serial Bus
  • the drive 607 is, for example, a CD (Compact Disc) drive, a DVD (Digital Versatile Disc) drive, a BD (Blu-ray (registered trademark) Disc) drive, or the like.
  • the drive 607 reads a program and / or data stored in the storage medium 608 and passes it to the control unit 601. Note that some or all of the programs and data described as being able to be stored in the storage unit 602 may be read from the storage medium 608 by the drive 607.
  • the storage medium 608 is a medium that stores programs and / or data by an electrical, magnetic, optical, mechanical, or chemical action in a machine-readable format including a computer.
  • the storage medium 608 is, for example, a removable disk medium such as a CD, a DVD, and a BD, but is not limited thereto, and may be a flash memory or other semiconductor memory.
  • the components can be omitted, replaced, and added as appropriate according to the embodiment.
  • the control unit 601 may include a plurality of processors.
  • the data processing apparatus 100 may be an information processing apparatus designed specifically for the provided service, or a general-purpose information processing apparatus such as a smartphone, a tablet PC (Personal Computer), a laptop PC, or a desktop PC. There may be.
  • the data processing apparatus 100 may be configured with a plurality of information processing apparatuses.
  • the data processing apparatus includes hardware resources (for example, virtualization units) that execute data processing, and is performed in association with a search in a conventional database.
  • Pre-processing eg, query transformation and parsing
  • post-processing eg, statistical processing using search results (eg, aggregation, filtering, average value calculation or sorting), and cache processing of acquired data
  • Most of the processing for establishing and maintaining a session with the database management apparatus is executed by the hardware resource. Therefore, according to this data processing device, since most of the load of the pre-processing and post-processing in the database and the processing for managing the session is removed, even if multiple applications issue data processing requests at the same time, Each application takes less time to occupy the database hardware resources.
  • both pre-processing and post-processing are performed in a distributed manner in a data processing apparatus or a virtualization unit that handles data processing requests issued by each application, thereby improving the fairness of database usage. Yes.
  • a part of the pre-processing and post-processing is performed in a distributed manner in the data processing apparatus or the virtualization unit and the remaining part is concentrated in the database, the above-mentioned effect can be obtained to some extent.
  • the various functional units described in the above embodiments may be realized by using a circuit.
  • the circuit may be a dedicated circuit that realizes a specific function, or may be a general-purpose circuit such as a processor.
  • a program for realizing the above 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.
  • Examples of the recording medium include a magnetic disk, an optical disk (CD-ROM, CD-R, DVD, etc.), a magneto-optical disk (MO, etc.), and a semiconductor memory.
  • the recording medium may be any recording medium as long as it can store the program and can be read by the computer.
  • the program for realizing the above processing may be stored on a computer (server) connected to a network such as the Internet and downloaded to the computer (client) via the network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明の一態様によれば、データ処理装置が提供される。データ処理装置は、データ処理部を含む。データ処理部は、共通のデータベースにアクセスする複数のアプリケーションの1つによって発行された共通のデータベースへのデータ処理要求に対する前処理とデータ処理要求に応じて共通のデータベースから返された検索結果に対する後処理とのうち少なくとも一部を行う。

Description

データ処理装置およびデータ処理方法
 本発明は、データベースの検索に付随するデータ処理に関する。
 近年、多数のセンサ/デバイスをネットワークに接続し、データを収集/活用するIoT(Internet of Things)が注目されている。センサ/デバイスから収集されたデータは、データベースに蓄積され、アプリケーションによって活用のために参照される。なお、データベースにアクセスするアプリケーションは1つとは限らない。すなわち、複数の異なるアプリケーションが1つのデータベースに共通にアクセスするシステムも構築可能である。
 従来のデータベースは、アプリケーションからのデータ処理要求を受けて、当該データ処理要求のクエリ変換などの前処理を行い、次いで検索を行う。さらに、従来のデータベースは、オプションとして、検索結果を用いた統計処理(例えば、集約、フィルタ、平均値計算およびソート)などの後処理を行うこともある。一般に、IoTにおいて、センサ/デバイスから収集されるデータの個々のサイズは小さいものの、膨大な数のデータが収集されデータベースに蓄積される。故に、IoTでは、データベースには大きなデータ処理負荷が課されることになる。従って、特にIoTでは、複数のアプリケーションが同時期にデータベースにデータ処理を要求した場合に、データベースの計算能力(CPU(Central Processing Unit))および記憶領域(メモリ)などのハードウェアリソースが特定のアプリケーションによって長時間占有され、他方で残りのアプリケーションの待ち時間は長くなる。
 また、仮想化技術を用いて、アプリケーションおよびデータベースを同一の装置内の異なる仮想化単位(例えば、仮想マシン、コンテナなどであり得る)として共存させることも想定される。この場合に、アプリケーション用の仮想化単位およびデータベース用の仮想化単位には、それぞれ使用可能なリソースの上限を設定することができる。しかしながら、データベース用の仮想化単位に利用可能なハードウェアリソースが特定のアプリケーションによって長時間占有されれば、やはり残りのアプリケーションの待ち時間は長くなる。
 本発明は、複数のアプリケーション間でのデータベース利用の公平性を向上させることを目的とする。
 本発明の一態様によれば、データ処理装置が提供される。データ処理装置は、データ処理部とを含む。データ処理部は、共通のデータベースにアクセスする複数のアプリケーションの1つによって発行された共通のデータベースへのデータ処理要求に対する前処理とデータ処理要求に応じて共通のデータベースから返された検索結果に対する後処理とのうち少なくとも一部を行う。
 本発明の別の態様によれば、データ処理装置が提供される。データ処理装置は、第1の仮想化単位と、第2の仮想化単位とを含む。第1の仮想化単位は、第1のデータ処理部を含む。第2の仮想化単位は、第2のデータ処理部を含む。第1のデータ処理部は、共通のデータベースにアクセスする複数のアプリケーションの1つである第1のアプリケーションによって発行された共通のデータベースへの第1のデータ処理要求に対する前処理と第1のデータ処理要求に応じて共通のデータベースから返された第1の検索結果に対する後処理とのうち少なくとも一部を行う。第2のデータ処理部は、複数のアプリケーションの1つである第2のアプリケーションによって発行された共通のデータベースへの第2のデータ処理要求に対する前処理と第2のデータ処理要求に応じて共通のデータベースから返された第2の検索結果に対する後処理とのうち少なくとも一部を行う。
 本発明によれば、複数のアプリケーション間でのデータベース利用の公平性を向上させることができる。
図1は、第1の実施形態に係るデータ処理装置を例示するブロック図である。 図2は、第1の実施形態に係るデータ処理装置を含むデータ処理システムを例示するブロック図である。 図3は、図2のデータベースを例示するブロック図である。 図4は、第1の実施形態に係るデータ処理装置を含むデータ処理システムの詳細を例示するブロック図である。 図5は、図2または図4のデータ処理システムの動作を例示するフローチャートである。 図6は、第1の実施形態に係るデータ処理装置のハードウェア構成を例示するブロック図である。
 以下、図面を参照しながら実施形態の説明が述べられる。尚、以降、説明済みの要素と同一または類似の要素には同一または類似の符号が付され、重複する説明は基本的に省略される。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
 (第1の実施形態) 
 図1に例示されるように、第1の実施形態に係るデータ処理装置100は、アプリケーション実行部101と、データ処理部102とを含む。データ処理装置100は、典型的にはコンピュータであって、CPUなどのプロセッサおよびメモリを含む。プロセッサは、メモリにロードされた所定のプログラムを実行することで、アプリケーション実行部101およびデータ処理部102としてそれぞれ機能することができる。なお、アプリケーションは、データ処理装置100にインストールされたアプリケーションに限られず、ウェブアプリ、クラウドアプリなどを含み得る。
 なお、アプリケーション実行部101およびデータ処理部102は、データ処理装置100内の1つの仮想化単位(例えば、仮想マシンまたはコンテナなどであり得る)として実装されてもよいし、異なる仮想化単位として実装されてもよい。さらに、アプリケーション実行部101は、データ処理装置100に含まれず、当該データ処理装置100とは異なる装置(例えばアプリケーション装置と呼ぶことができる)に含まれていることもある。
 アプリケーション実行部101は、共通のデータベースにアクセスする複数のアプリケーションの1つを実行し、このデータベースに対するデータ処理要求(例えば、データ参照要求であり得る)を発行する。アプリケーション実行部101は、発行したデータ処理要求をデータ処理部102へ送る。
 また、アプリケーション実行部101は、当該アプリケーション実行部101によって既に発行されたデータ処理要求に応じたデータベースの検索結果、または、この検索結果に後述の後処理を施した後処理結果を、データ処理部102から受け取る。
 データ処理部102は、アプリケーション実行部101からデータ処理要求を受け取り、当該データ処理要求に対する前処理を行う。前処理は、例えば、データ処理要求のクエリ変換などであり得る。データ処理部102は、前処理済みのデータ処理要求をデータベース(例えば、後述されるデータベース管理装置200)へ送る。
 また、データ処理部102は、前処理済みのデータ処理要求に応じたデータベースの検索結果を当該データベース管理装置200から受け取る。データ処理部102は、検索結果に対して後処理を必要に応じて行う。後処理は、例えば、検索結果を用いた統計処理(例えば、集約、フィルタ、平均値計算またはソート)などであり得る。具体的には、データ処理部102は、データ処理要求に後処理が含まれる場合には後処理を行うことを決定し、そうでない場合には後処理を行わないことを決定してもよい。データ処理部102は、後処理を行った場合には後処理結果をアプリケーション実行部101に返し、後処理を行わなかった場合には検索結果をアプリケーション実行部101に返す。
 なお、データ処理部102は、上記機能を組み込んだ、例えば、共通アプリケーションとして実装してもよい。あるいは、データ処理部102は、上記機能を組み込んだ、node.jsなどのウェブサーバを実装してもよい。また、アプリケーション実行部101と、データ処理部102との間は、データ処理要求を変換するためのAPI(Application Programming Interface)(例えば、REST API)などを介して接続されてもよい。
 データ処理装置100は、図2に例示されるデータ処理システムの一部となる。図2のデータ処理システムは、データベース管理装置200と、当該データベース管理装置200に共通にアクセスする複数のアプリケーションを実行する複数のデータ処理装置100-1,100-2,・・・とを含む。
 なお、複数のデータ処理装置100-1,100-2,・・・に含まれるデータ処理部102-1,102-2,・・・と、データベース管理装置200とのうち一部または全部が、同一のコンピュータ(例えば、データ処理装置、データベース管理装置などのより具体的な名称で呼ぶこともできる)内の複数の異なる仮想化単位として実装されてもよい。具体的には、1つまたは複数のデータ処理装置100に含まれるデータ処理部102とデータベース管理装置200とが同一のコンピュータ内の複数の異なる仮想化単位として実装されてもよいし、複数のデータ処理装置100に含まれるデータ処理部102が同一のコンピュータ内の複数の異なる仮想化単位として実装されてもよい。
 データベース管理装置200(またはデータベース用の仮想化単位)は、図3に例示されるように、データ管理部201と、データ記録部202とを含む。データベース管理装置200は、典型的にはコンピュータであって、CPUなどのプロセッサ、メモリおよび補助記憶装置(例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)などであり得る)を含む。プロセッサは、メモリにロードされた所定のプログラムを実行することで、データ管理部201として機能することができる。また、補助記憶装置はデータ記録部202として機能する。
 データ管理部201は、いずれかのデータ処理装置100(またはデータ処理用の仮想化単位)から前処理済みのデータ処理要求を受け取る。データ管理部201は、前処理済みのデータ処理要求に応じて、データ記録部202に構築されているデータベースを検索する。そして、データ管理部201は、検索結果を、前処理済みのデータ処理要求の送信元であるデータ処理装置100へ返す。
 また、データ管理部201は、センサ/デバイス(例えば、図4のセンサ/デバイス400)から収集されたデータをデータ記録部202に書き込むことでデータベースを更新する。
 データ記録部202は、センサ/デバイスから収集されたデータがデータ管理部201によって書き込まれ、これを永続的に記録する。データ記録部202に蓄積されたデータの集合がデータベースに相当する。データ記録部202に構築されたデータベースは、データ管理部201によって必要に応じて検索を行われる。
 図4は、第1の実施形態に係るデータ処理システム300の詳細を例示する。データ処理システム300は、複数のデータ処理用の仮想化単位310-1,310-2,・・・と、データベース用の仮想化単位320と、メッセージブローカ330と、コンバータ340とを含む。データ処理システム300では、複数のセンサ/デバイス400-1,400-2,・・・から収集されたデータを用いてデータベースが構築され、複数のアプリケーションがこのデータベースに共通にアクセスする。
 なお、データ処理用の仮想化単位310は、独立したハードウェア(例えば、データ処理装置100)に置き換えることが可能である。同様に、データベース用の仮想化単位320は、独立したハードウェア(例えば、データベース管理装置200)に置き換えることが可能である。
 各データ処理用の仮想化単位310は、アプリケーション311およびウェブサーバ312を実装する。アプリケーション311およびウェブサーバ312は、それぞれアプリケーション実行部101およびデータ処理部102に対応する。なお、図4には示されていないが、ウェブサーバ312は、データ処理部102と同様の機能を組み込んだ共通アプリケーションであってもよい。また、アプリケーション311は、データ処理用の仮想化単位310とは異なる仮想化単位(例えばアプリケーション用の仮想化単位と呼ぶことができる)または独立したハードウェア(例えばアプリケーション装置)によって実装されてもよい。
 アプリケーション311は、データベース用の仮想化単位320によって実装されるデータベースに対するデータ処理要求を発行する。アプリケーション311は、発行したデータ処理要求をウェブサーバ312へ送る。
 また、アプリケーション311は、当該アプリケーション311によって既に発行されたデータ処理要求に応じたデータベースの検索結果、または、この検索結果に後処理を施した後処理結果を、ウェブサーバ312から受け取る。
 ウェブサーバ312は、アプリケーション311からデータ処理要求を受け取り、当該データ処理要求に対する前処理を行う。ウェブサーバ312は、前処理済みのデータ処理要求をデータベース用の仮想化単位320へ送る。
 具体的には、ウェブサーバ312は、アプリケーション311との間にセッションを確立し、アプリケーション311からデータ処理要求を受け取る。そして、ウェブサーバ312は、データ処理要求に対する前処理として、(1)HTML(Hyper Text Markup Language)リクエストの受け付け、(2)例えばJSON(JavaScript(登録商標) Object Notation)、XML(Extensible Markup Language)などの形式であるリクエストボディのパース処理、および(3)クエリの分析を行うことができる。クエリの分析は、データ処理要求がデータの書き込み、または検索のどちらの要求であるかの判別、検索の要求である場合には検索条件の分析などを含むことができる。 
 なお、アプリケーション311と、ウェブサーバ312との間は、データ処理要求を変換するためのAPIなどを介して接続されてもよい。
 また、ウェブサーバ312は、前処理済みのデータ処理要求に応じたデータベースの検索結果を当該データベースから受け取る。ウェブサーバ312は、検索結果に対して後処理を必要に応じて行う。ウェブサーバ312は、後処理を行った場合には後処理結果をアプリケーション311に返し、後処理を行わなかった場合には検索結果をアプリケーション311に返す。
 具体的には、ウェブサーバ312は、前処理済みのデータ処理要求に応じたデータベースの検索結果をクエリコントローラ321から受け取る。ウェブサーバ312は、検索結果に対する後処理として、取得したデータの統計処理、キャッシュ処理などを必要に応じて行うことができる。
 ウェブサーバ312は、クエリコントローラ321との間に1対1のセッションを確立する。ここで、ウェブサーバ312は、1対1のセッションを継続的に維持する簡単なプロトコルを利用してセッションを確立・維持することにより、クエリコントローラ321の処理負担を小さくすることができる。また、ウェブサーバ312とクエリコントローラ321との間のプロトコルにSSL(Secure Sockets Layer)を利用することにより、セキュリティを高めることもできる。
 これらの前処理および後処理の負荷、ならびにセッションを確立・維持する際の大部分の処理負荷をウェブサーバ312が負担することで、クエリコントローラ321の処理負荷が小さくなる。故に、1つのデータベース管理装置200に対して複数のデータ処理装置100を接続した場合の公平性を高めることができる。
 データベース用の仮想化単位320は、クエリコントローラ321と、データマネージャ322と、データ記録部323と、メッセージクライアント324とを含む。クエリコントローラ321、データマネージャ322およびメッセージクライアント324は、データ管理部201に対応する。データ記録部323は、データ記録部202に対応する。
 クエリコントローラ321は、いずれかのデータ処理用の仮想化単位310から前処理済みのデータ処理要求を受け取り、データマネージャ322へと送る。また、クエリコントローラ321は、データマネージャ322から検索結果を受け取り、このデータ処理用の仮想化単位310へと返す。
 具体的には、クエリコントローラ321は、いずれかのデータ処理用の仮想化単位310のウェブサーバ312とのセッションを確立し、ウェブサーバ312から前処理(例えば、前述の(1)HTMLリクエストの受け付け、(2)例えばJSON、XMLなどの形式であるリクエストボディのパース処理、および(3)クエリの分析など)済みのデータ処理要求を受け取る。そして、クエリコントローラ321は、受け取ったデータのデシリアライズ処理、およびデシリアライズされたデータの型などが適切であるかを確認する処理(バリデーション)を行う。さらに、クエリコントローラ321は、ウェブサーバ312によって分析されたクエリに従い、データの検索または書き込み要求をデータマネージャ322へと送る。また、クエリコントローラ321は、データマネージャ322からデータ検索または書き込み結果、すなわちデータ処理結果を受け取り、データ処理用の仮想化単位310のウェブサーバ312との通信プロトコルに従ってデータのシリアライズ処理を行い、ウェブサーバ312へと返す。
 また、クエリコントローラ321は、メッセージクライアント324とのセッションを確立し、メッセージクライアント324からパース処理されたデータを受け取り、データのデシリアライズ処理、およびバリデーションを行い、データの書き込み要求をデータマネージャ322へと送る。また、クエリコントローラ321は、データマネージャ322から受け取ったデータをウェブサーバ312に送る。
 データマネージャ322は、クエリコントローラ321からデータの検索または書き込み要求を受け取り、これに応じて、データ記録部323に構築されているデータベースを検索し、またはデータの書き込みを行う。データマネージャ322は、検索結果または書き込み結果をクエリコントローラ321へ返す。
 また、データマネージャ322は、センサ/デバイス400-1,400-2,・・・から収集されたデータを、クエリコントローラ321から受け取る。データマネージャ322は、受け取ったデータをデータ記録部323に書き込むことでデータベースを更新する。
 データ記録部323には、センサ/デバイス400-1,400-2,・・・から収集されたデータがデータマネージャ322によって書き込まれる。データ記録部323に蓄積されたデータの集合がデータベースに相当する。データ記録部323に構築されたデータベースは、データマネージャ322によって必要に応じて検索を行われる。
 メッセージクライアント324は、センサ/デバイス400-1,400-2,・・・から収集されたデータを、メッセージブローカ330を介して受け取り、クエリコントローラ321に送る。
 メッセージクライアント324は、クエリコントローラ321とのセッションを確立し、クエリコントローラ321からシリアライズされたデータを受け取り、メッセージブローカ330との通信プロトコルに従ってメッセージの整形を行い、メッセージブローカ330に送る。また、メッセージクライアント324は、メッセージブローカ330とのセッションを確立し、センサ/デバイス400-1,400-2,・・・から収集されたデータを、メッセージブローカ330から受け取り、パース処理を行い、クエリコントローラ321へと送る。なお、メッセージクライアント324は、クエリコントローラ321を介さすることなく、パース処理を行ったデータを直接データマネージャ322へ送ってもよい。
 メッセージブローカ330は、センサ/デバイス400から送られるデータを受け取り、データベース用の仮想化単位320に送る。なお、メッセージブローカ330は、データを、センサ/デバイス400から直接受け取ることも可能であるし、コンバータ340またはその他の機能部を経由して受け取ることも可能である。図4の例では、メッセージブローカ330は、センサ/デバイス400-1からのデータをコンバータ340を経由して受け取り、センサ/デバイス400-2からのデータを直接受け取る。また、メッセージブローカ330と、コンバータ340またはセンサ/デバイス400との間は、データを変換するためのAPIなどを介して接続されてもよい。
 コンバータ340は、センサ/デバイス400(図4の例では、センサ/デバイス400-1)からデータを受け取り、所定の変換を施す。コンバータ340は、変換済みのデータをメッセージブローカ330に送る。コンバータ340は、例えばソフトウェア実装され、データ処理用の仮想化単位310およびデータベース用の仮想化単位320とは異なる仮想化単位によって実行されてもよいし、単独の装置によって実行されてもよい。
 センサ/デバイス400は、所定のデータを収集し、収集したデータをメッセージブローカ330に向けて送る。前述の通り、センサ/デバイス400とメッセージブローカ330との間には、コンバータ340またはその他の機能部が介在することもある。なお、センサ/デバイス400およびコンバータ340は、同一の仮想化単位または装置に含まれていてもよいし、別々の仮想化単位または装置に含まれていてもよい。
 図5には、データ処理用の仮想化単位310(またはデータ処理装置100)およびデータベース用の仮想化単位320(またはデータベース管理装置200)の動作例が示される。
 最初に、いずれかのアプリケーション311(またはアプリケーション実行部101)が、データベースに対するデータ処理要求を発行する(ステップS501)。ウェブサーバ312(またはデータ処理部102)は、ステップS501において発行されたデータ処理要求に対する前処理を行い、前処理済みのデータ処理要求をデータベース用の仮想化単位320(またはデータベース管理装置200)へと送る(ステップS502)。
 次のステップS503では、以下の処理(1)~(3)によってデータベースの検索(または書き込み)が実現される。
 (1)クエリコントローラ321(またはデータ管理部201)は、ステップS502において送られた、前処理済みのデータ処理要求に応じて、受け取ったデータのデシリアライズ処理、およびバリデーションを行う。さらに、クエリコントローラ321は、ウェブサーバ312によって分析されたクエリに従い、データの検索または書き込み要求をデータマネージャ322へと送る。
 (2)データマネージャ322(またはデータ管理部201)は、クエリコントローラ321(またはデータ管理部201)から送られた、データの検索(または書き込み要求)に応じて、データ記録部323(またはデータ記録部202)に構築されたデータベースの検索(または書き込み)を行う。そして、データマネージャ322は、クエリコントローラ321に検索結果(または書き込み結果)を返す。
 (3)クエリコントローラ321(またはデータ管理部201)は、データマネージャ322(またはデータ管理部201)から検索(または書き込み結果)を受け取り、データのシリアライズ処理を行い、ウェブサーバ312(またはデータ処理部102)へと返す。
 ウェブサーバ312(またはデータ処理部102)は、アプリケーション311およびクエリコントローラ321それぞれとの間でセッションを確立し、ステップS503において返された検索結果を受け取り(ステップS504)、ステップS501において発行されたデータ処理要求に後処理が含まれているか否かを判定する(ステップS505)。データ処理要求に後処理が含まれていれば処理はステップS506へと進み、そうでなければ処理はステップS507へと進む。
 ステップS506では、ウェブサーバ312(またはデータ処理部102)は、検索結果に対して後処理を行い、処理はステップS507へと進む。ステップS507では、ウェブサーバ312(またはデータ処理部102)は、検索結果(ステップS506を経由しなかった場合)または後処理結果(ステップS506を経由した場合)を、アプリケーション311(または、アプリケーション実行部101)へ返す。
 次に、図6を用いて、本実施形態に係るデータ処理装置100のハードウェア構成の一例について説明する。図6は、本実施形態に係るデータ処理装置100のハードウェア構成の一例を模式的に例示する。
 図6に例示するように、本実施形態に係るデータ処理装置100は、制御部601と、記憶部602と、通信インタフェース603と、入力装置604と、出力装置605と、外部インタフェース606と、ドライブ607とが電気的に接続されたコンピュータであってよい。なお、図6では、通信インタフェース及び外部インタフェースをそれぞれ、「通信I/F」及び「外部I/F」と記載している。
 制御部601は、CPU、RAM(Random Access Memory)、ROMなどを含む。CPUは、記憶部602に格納されたプログラムをRAMに展開する。そして、CPUがこのプログラムを解釈および実行することで、制御部601は、前述の様々な情報処理を実行可能となる。
 記憶部602は、いわゆる補助記憶装置であり、例えば、内蔵または外付けの、HDD、SSD、若しくはフラッシュメモリなどの半導体メモリであり得る。記憶部602は、制御部601で実行されるプログラム(例えば、データ処理部102によって行われる各種処理を制御部601に実行させるためのプログラム)、制御部601によって使用されるデータなどを記憶する。
 通信インタフェース603は、各種の無線通信または有線通信モジュールであって、ネットワークを介して無線通信または有線通信を行うためのインタフェースであってよい。入力装置604は、例えばタッチスクリーン、キーボード、マウスなどのユーザ入力を受け付けるための装置を含んでもよい。
 出力装置605は、例えば、ディスプレイ、スピーカなどの出力を行うための装置である。外部インタフェース606は、USB(Universal Serial Bus)ポート、メモリカードスロットなどであり、外部装置と接続するためのインタフェースである。
 ドライブ607は、例えば、CD(Compact Disc)ドライブ、DVD(Digital Versatile Disc)ドライブ、BD(Blu-ray(登録商標) Disc)ドライブなどである。ドライブ607は、記憶媒体608に記憶されたプログラムおよび/またはデータを読み込み、制御部601に渡す。なお、前述の記憶部602に記憶され得ると説明したプログラムおよびデータの一部または全部がドライブ607によって、記憶媒体608から読み込まれてもよい。
 記憶媒体608は、コンピュータを含む機械が読み取り可能な形式で、プログラムおよび/またはデータを、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。記憶媒体608は、例えば、CD、DVD、BDなどの着脱可能なディスク媒体であるが、これに限られず、フラッシュメモリまたはその他の半導体メモリであり得る。
 なお、データ処理装置100の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部601は、複数のプロセッサを含んでもよい。データ処理装置100は、提供されるサービス専用に設計された情報処理装置であってもよいし、汎用の情報処理装置、例えば、スマートフォン、タブレットPC(Personal Computer)、ラップトップPC、デスクトップPCなどであってもよい。また、データ処理装置100は、複数台の情報処理装置などで構成されてもよい。
 以上説明したように、第1の実施形態に係るデータ処理装置は、データ処理を実行するハードウェアリソース(例えば、仮想化単位)を含んでおり、従来のデータベースにおいて検索に付随して行われていた前処理(例えば、クエリ変換、およびパース処理)、後処理(例えば、検索結果を用いた統計処理(例えば、集約、フィルタ、平均値計算またはソート)、および取得したデータのキャッシュ処理)、ならびにデータベース管理装置との間でセッションを確立・維持する処理の大部分を、当該ハードウェアリソースによって実行する。従って、このデータ処理装置によれば、データベースにおける前処理および後処理、ならびにセッションを管理する処理の大部分の負荷が取り除かれるので、複数のアプリケーションが同時期にデータ処理要求を発行したとしても、個々のアプリケーションがデータベースのハードウェアリソースを占有する時間は短くて済む。すなわち、複数のアプリケーション間でのデータベース利用の公平性を向上させることができる。なお、前処理および後処理の負荷はデータの数と共に増加するので、係る負荷の除去効果は、個々のサイズは小さいが多数のデータを取り扱うIoTにおいて特に大きい。
 なお、上記説明では、前処理および後処理の両方を、各アプリケーションによって発行されたデータ処理要求を取り扱うデータ処理装置または仮想化単位において分散的に行うことで、データベース利用の公平性を向上させている。しかしながら、前処理と後処理とのうち一部をこのデータ処理装置または仮想化単位において分散的に行い、残部をデータベースにおいて集中的に行ったとしても、上記効果をある程度得ることは可能である。
 上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
 上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
 上記各実施形態の処理の少なくとも一部は、汎用のコンピュータを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。

Claims (15)

  1.  共通のデータベースにアクセスする複数のアプリケーションの1つによって発行された前記共通のデータベースへのデータ処理要求に対する前処理と前記データ処理要求に応じて前記共通のデータベースから返された検索結果に対する後処理とのうち少なくとも一部を行うデータ処理部
     を具備する、データ処理装置。
  2.  前記データ処理部は、前記データ処理要求のクエリ変換を含む前処理と、前記検索結果を用いた統計処理を含む後処理とのうち少なくとも一部を行う、請求項1に記載のデータ処理装置。
  3.  前記共通のデータベース用の第1の仮想化単位をさらに具備し、
     前記データ処理部は、前記第1の仮想化単位とは異なる第2の仮想化単位に含まれる、
     請求項1に記載のデータ処理装置。
  4.  前記データ処理部は、1対1でセッションを継続的に維持するプロトコルを用いてセッションを確立し、前記前処理が行われたデータ処理要求の送信と、前記検索結果の受信とのうちの少なくとも一方を行う、請求項1に記載のデータ処理装置。
  5.  前記データ処理部は、(1)前記データ処理要求に対する前処理の少なくとも一部として、前記複数のアプリケーションの1つからのリクエストの受け付けおよびパース処理、(2)前記検索結果に対する後処理の少なくとも一部として、当該検索結果のキャッシュ処理、ならびに(3)セッション管理、のうちの少なくとも1つを行う、請求項1に記載のデータ処理装置。
  6.  前記第1の仮想化単位は、前記共通のデータベースに対するデータの読み書きを行うデータ管理部をさらに含み、
     前記データ管理部は、前記データ処理部との間でセッションを確立し、前記前処理が行われたデータ処理要求の受信と、前記検索結果の送信とのうちの少なくとも一方を行い、
     前記データ管理部は、前記前処理が行われたデータ処理要求に対するデシリアライズ処理と、前記検索結果に対する送信前のシリアライズ処理とのうちの少なくとも一方を行う、
     請求項3に記載のデータ処理装置。
  7.  共通のデータベースにアクセスする複数のアプリケーションの1つである第1のアプリケーションによって発行された前記共通のデータベースへの第1のデータ処理要求に対する前処理と前記第1のデータ処理要求に応じて前記共通のデータベースから返された第1の検索結果に対する後処理とのうち少なくとも一部を行う第1のデータ処理部を含む第1の仮想化単位と、
     前記複数のアプリケーションの1つである第2のアプリケーションによって発行された前記共通のデータベースへの第2のデータ処理要求に対する前処理と前記第2のデータ処理要求に応じて前記共通のデータベースから返された第2の検索結果に対する後処理とのうち少なくとも一部を行う第2のデータ処理部を含む第2の仮想化単位と
     を具備する、データ処理装置。
  8.  前記第1のデータ処理部は、前記第1のデータ処理要求のクエリ変換を含む前処理と、前記第1の検索結果を用いた統計処理を含む後処理とのうち少なくとも一部を行い、
     前記第2のデータ処理部は、前記第2のデータ処理要求のクエリ変換を含む前処理と、前記第2の検索結果を用いた統計処理を含む後処理とのうち少なくとも一部を行う、
     請求項7に記載のデータ処理装置。
  9.  前記共通のデータベース用の第3の仮想化単位をさらに具備する、請求項7に記載のデータ処理装置。
  10.  前記第1のデータ処理部は、1対1でセッションを継続的に維持するプロトコルを用いてセッションを確立し、前記前処理が行われた第1のデータ処理要求の送信と、前記第1の検索結果の受信とのうちの少なくとも一方を行い、
     前記第2のデータ処理部は、1対1でセッションを継続的に維持するプロトコルを用いてセッションを確立し、前記前処理が行われた第2のデータ処理要求の送信と、前記第2の検索結果の受信とのうちの少なくとも一方を行う、
     請求項7に記載のデータ処理装置。
  11.  前記第1のデータ処理部は、(1)前記第1のデータ処理要求に対する前処理の少なくとも一部として、前記複数の第1のアプリケーションの1つからのリクエストの受け付けおよびパース処理、(2)前記第1の検索結果に対する後処理の少なくとも一部として、当該第1の検索結果のキャッシュ処理、ならびに(3)セッション管理、のうちの少なくとも1つを行い、
     前記第2のデータ処理部は、(1)前記第2のデータ処理要求に対する前処理の少なくとも一部として、前記複数の第2のアプリケーションの1つからのリクエストの受け付けおよびパース処理、(2)前記第2の検索結果に対する後処理の少なくとも一部として、当該第2の検索結果のキャッシュ処理、ならびに(3)セッション管理、のうちの少なくとも1つを行う、
     請求項7に記載のデータ処理装置。
  12.  前記第3の仮想化単位は、前記共通のデータベースに対するデータの読み書きを行うデータ管理部をさらに含み、
     前記データ管理部は、前記第1のデータ処理部との間でセッションを確立し、前記前処理が行われた第1のデータ処理要求の受信と、前記第1の検索結果の送信とのうちの少なくとも一方を行い、
     前記データ管理部は、前記前処理が行われた第1のデータ処理要求に対するデシリアライズ処理と、前記第1の検索結果に対する送信前のシリアライズ処理とのうちの少なくとも一方を行い、
     前記データ管理部は、前記第2のデータ処理部との間でセッションを確立し、前記前処理が行われた第2のデータ処理要求の受信と、前記第2の検索結果の送信とのうちの少なくとも一方を行い、
     前記データ管理部は、前記前処理が行われた第2のデータ処理要求に対するデシリアライズ処理と、前記第2の検索結果に対する送信前のシリアライズ処理とのうちの少なくとも一方を行う、
     請求項9に記載のデータ処理装置。
  13.  第1のデータ処理装置または第1の仮想化単位が、共通のデータベースにアクセスする複数のアプリケーションの1つである第1のアプリケーションによって発行された前記共通のデータベースへの第1のデータ処理要求に対する前処理と前記第1のデータ処理要求に応じて前記共通のデータベースから返された第1の検索結果に対する後処理とのうち少なくとも一部を行うことと、
     第2のデータ処理装置または第2の仮想化単位が、前記複数のアプリケーションの1つである第2のアプリケーションによって発行された前記共通のデータベースへの第2のデータ処理要求に対する前処理と前記第2のデータ処理要求に応じて前記共通のデータベースから返された第2の検索結果に対する後処理とのうち少なくとも一部を行うことと
     を具備する、データ処理方法。
  14.  前記第1のデータ処理装置または前記第1の仮想化単位は、前記第1のデータ処理要求のクエリ変換を含む前処理と、前記第1の検索結果を用いた統計処理を含む後処理とのうち少なくとも一部を行い、
     前記第2のデータ処理装置または前記第2の仮想化単位は、前記第2のデータ処理要求のクエリ変換を含む前処理と、前記第2の検索結果を用いた統計処理を含む後処理とのうち少なくとも一部を行う、
     請求項13に記載のデータ処理方法。
  15.  前記第1のデータ処理装置または前記第1の仮想化単位は、(1)前記第1のデータ処理要求に対する前処理の少なくとも一部として、前記複数の第1のアプリケーションの1つからのリクエストの受け付けおよびパース処理、(2)前記第1の検索結果に対する後処理の少なくとも一部として、当該第1の検索結果のキャッシュ処理、ならびに(3)セッション管理、のうちの少なくとも1つを行い、
     前記第2のデータ処理装置または前記第2の仮想化単位は、(1)前記第2のデータ処理要求に対する前処理の少なくとも一部として、前記複数の第2のアプリケーションの1つからのリクエストの受け付けおよびパース処理、(2)前記第2の検索結果に対する後処理の少なくとも一部として、当該第2の検索結果のキャッシュ処理、ならびに(3)セッション管理、のうちの少なくとも1つを行う、
     請求項13に記載のデータ処理方法。
PCT/JP2017/037579 2016-10-20 2017-10-17 データ処理装置およびデータ処理方法 WO2018074479A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018546361A JP6811251B2 (ja) 2016-10-20 2017-10-17 データ処理装置およびデータ処理方法
EP17861863.3A EP3531309A4 (en) 2016-10-20 2017-10-17 DATA PROCESSING DEVICE AND METHOD
US16/340,671 US11347765B2 (en) 2016-10-20 2017-10-17 Data processing apparatus and data processing method
CN201780065119.9A CN110168521B (zh) 2016-10-20 2017-10-17 数据处理装置及数据处理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016206034 2016-10-20
JP2016-206034 2016-10-20

Publications (1)

Publication Number Publication Date
WO2018074479A1 true WO2018074479A1 (ja) 2018-04-26

Family

ID=62019586

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/037579 WO2018074479A1 (ja) 2016-10-20 2017-10-17 データ処理装置およびデータ処理方法

Country Status (5)

Country Link
US (1) US11347765B2 (ja)
EP (1) EP3531309A4 (ja)
JP (1) JP6811251B2 (ja)
CN (1) CN110168521B (ja)
WO (1) WO2018074479A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995736B (zh) * 2019-12-13 2021-11-30 中国兵器装备集团自动化研究所有限公司 一种通用的工业物联网设备管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0667867A (ja) * 1992-06-15 1994-03-11 Fuji Xerox Co Ltd アプリケーションプログラムのデータべースアクセス方式
JPH07175697A (ja) * 1993-12-20 1995-07-14 Hitachi Ltd 異種データベース・アクセス・システム及びその制御方法
JPH09319757A (ja) * 1996-05-29 1997-12-12 N T T Data Tsushin Kk 情報検索システム
JP2000003367A (ja) * 1998-06-12 2000-01-07 Mitsubishi Electric Corp 中継装置及び情報検索システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04319771A (ja) 1991-04-19 1992-11-10 Matsushita Electric Ind Co Ltd オンライン情報検索・更新システム
AU1481901A (en) * 1999-11-10 2001-06-06 Peter Badovinatz A decision based system for managing distributed resources and modeling the global optimization problem
US7293286B2 (en) * 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US8156110B1 (en) * 2004-01-29 2012-04-10 Teradata Us, Inc. Rescheduling of modification operations for loading data into a database system
US7418501B2 (en) * 2004-04-30 2008-08-26 International Business Machines Corporation Dynamic extension of network-accessible services
JP4757038B2 (ja) * 2006-01-25 2011-08-24 株式会社日立製作所 ストレージシステム及び記憶制御装置
CN1859505B (zh) * 2006-03-10 2010-08-25 华为技术有限公司 话单查询系统及查询方法
US7640238B2 (en) * 2007-01-19 2009-12-29 International Business Machines Corporation Query planning for execution using conditional operators
JP2009151411A (ja) * 2007-12-19 2009-07-09 Mitsubishi Electric Corp データ検索装置及びシステム及びプログラム及びデータ検索方法
JP2009259039A (ja) 2008-04-17 2009-11-05 Hitachi Ltd 複数のデータベースの検索方法及びメタ検索サーバ
FR2936675A1 (fr) * 2008-09-26 2010-04-02 Alcatel Lucent Procede permettant la communication interoperable entre communautes reelles et virtuelles
JP5063728B2 (ja) 2010-03-30 2012-10-31 ヤフー株式会社 複数サーバ検索装置及び方法
US20130205028A1 (en) 2012-02-07 2013-08-08 Rackspace Us, Inc. Elastic, Massively Parallel Processing Data Warehouse
JP6262505B2 (ja) 2013-11-29 2018-01-17 Kddi株式会社 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム
WO2015082083A1 (en) * 2013-12-04 2015-06-11 Nec Europe Ltd. Method and system for generating a virtual device resource accessible by an application
CN103886099B (zh) * 2014-04-09 2017-02-15 中国人民大学 一种模糊概念的语义检索系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0667867A (ja) * 1992-06-15 1994-03-11 Fuji Xerox Co Ltd アプリケーションプログラムのデータべースアクセス方式
JPH07175697A (ja) * 1993-12-20 1995-07-14 Hitachi Ltd 異種データベース・アクセス・システム及びその制御方法
JPH09319757A (ja) * 1996-05-29 1997-12-12 N T T Data Tsushin Kk 情報検索システム
JP2000003367A (ja) * 1998-06-12 2000-01-07 Mitsubishi Electric Corp 中継装置及び情報検索システム

Also Published As

Publication number Publication date
US20190236077A1 (en) 2019-08-01
CN110168521A (zh) 2019-08-23
JP6811251B2 (ja) 2021-01-13
JPWO2018074479A1 (ja) 2019-02-07
EP3531309A1 (en) 2019-08-28
US11347765B2 (en) 2022-05-31
CN110168521B (zh) 2023-08-22
EP3531309A4 (en) 2020-05-13

Similar Documents

Publication Publication Date Title
JP6764989B2 (ja) 要求処理技術
US10241843B2 (en) Application processing allocation in a computing system
US20140372970A1 (en) Method to auto generate jax-rs rest service implementation classes from existing interfaces
US8296774B2 (en) Service-based endpoint discovery for client-side load balancing
AU2018268991B2 (en) Method of data aggregation for cache optimization and efficient processing
US9256520B2 (en) Using linked data to determine package quality
US10412033B2 (en) Event notification method, event notification device, and storage medium
US9374417B1 (en) Dynamic specification auditing for a distributed system
US11321090B2 (en) Serializing and/or deserializing programs with serializable state
US9817910B2 (en) Restful service description language
US20150332280A1 (en) Compliant auditing architecture
CN115758668A (zh) 基于lvc的分布式仿真数据交互方法和相关设备
US9111009B2 (en) Self-parsing XML documents to improve XML processing
WO2018074479A1 (ja) データ処理装置およびデータ処理方法
JP2015501479A (ja) ローカルサーバーを通じたローカルクライアントアプリケーションのためのイベントサービス
US9189299B2 (en) Framework for system communication for handling data
US11294704B2 (en) Monitoring and reporting performance of online services using a monitoring service native to the online service
US11340952B2 (en) Function performance trigger
EP3791274B1 (en) Method and node for managing a request for hardware acceleration by means of an accelerator device
Yang et al. Performance assessment and tuning for exchange of clinical documents cross healthcare enterprises
CN113485780B (zh) 一种基于web服务器的桌面传输方法
Ahn et al. Implementation of dataset staging process with improved security in a new analysis facility for ALICE experiment
CN117009425A (zh) 一种基于flink的数据处理方法和系统
JP5521616B2 (ja) 転送プログラム生成装置、転送プログラム生成方法およびプログラム
Yang et al. Bizard: an online multi-dimensional data analysis visualization tool

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018546361

Country of ref document: JP

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

Ref document number: 17861863

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: 2017861863

Country of ref document: EP

Effective date: 20190520