DATA MANAGEMENT SYSTEM, DATA MANAGEMENT SERVER, DATA MANAGEMENT METHOD, DATA MANAGEMENT PROGRAM, AND RECORDING MEDIUM
The data management system addresses the security risk of unauthorized access to edge equipment data by managing data usage conditions and application access, ensuring secure and controlled data access.
Patent Information
- Application Number
- JP2023505540
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-03-12
- Filing Date
- 2022-03-07
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2042-03-07
Smart Images

Figure 0007654772000001 
Figure 0007654772000002 
Figure 0007654772000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a data management system, a data management server, a data management method, a data management program, and a recording medium. [Background technology]
[0002] In the field of manufacturing equipment, various companies have recently been developing server application software (hereinafter simply referred to as "applications" or "apps") with various functions and purposes for manufacturing sites, such as "visualization," "quality improvement," "maintenance and protection," and "developer tool software / converters." For example, when a developer such as a system integrator develops an application for a manufacturing site based on processing data associated with the operation of edge devices such as machine tools, industrial machinery, and industrial robots at the manufacturing site, the developer needs to obtain the processing data associated with the operation of the edge devices that is required for the application, send the processing data to a database in the developer's development environment, and perform the work of developing the application (see, for example, Patent Document 1). More specifically, examples of the processing data of edge devices include data indicating the operating state of the edge devices, data indicating the production status, data indicating the quality status of the product, and data indicating events (history) such as the operating status. These processing data are preliminarily converted into a data model (i.e., standardized), and the standardized processing data (hereinafter also referred to as "virtual device data") is stored in a predetermined database corresponding to the standardized data model, allowing an application to access the processing data via a predetermined API (hereinafter also referred to as "access API"). The processing data of the edge devices provided from the manufacturing site is stored in a database in the development environment corresponding to the standardized data model.
[0003] An example of a form of providing processing data associated with the operation of edge devices, which is provided from a providing server to a receiving server, is shown below. Here, the providing server is installed in a manufacturing site environment, and the receiving server is installed in a development environment. The processing data associated with the operation of the edge device, which is stored in a database included in the providing server, is output as virtual device data by a database operation tool, encrypted and exported to the outside. The encrypted virtual device data is provided to a receiving server, which imports the encrypted virtual device data, decrypts it, and then stores it in the database included in the receiving server by the database operation tool. This allows developers to access the processed data via the access API to carry out app development work. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2020-021214 A Summary of the Invention [Problem to be solved by the invention]
[0005] Here, even if a provider of processing data associated with the operation of edge devices encrypts the processing data and provides it to a developer of the application, the data is decrypted when it is stored in a database in the development environment. In this case, the processing data can be used by other applications executed in the same development environment via an access API, which may cause a potential security risk for the data provider. In this case, for example, by analyzing machine information, it is possible to know the manufacturing capacity of each machine. In addition, by knowing the manufacturing capacity of each machine, it is possible to know how many products a factory has manufactured. Furthermore, by knowing the manufacturing capacity of a factory, it is possible to know the sales of a company that operates the factory.
[0006] For this reason, when providing data to an external party, a function is required that allows the data provider to specify in advance the name of an application that can use the data, thereby preventing other applications that are not specified from accessing the data. The present invention aims to provide a secure data management system, data management server, data management method, data management program, and recording medium that, when providing data to an external party, allows the data provider to specify in advance the name of an application that can use the data, thereby preventing other unspecified applications from accessing the data and preventing applications unintended by the data provider from using the data. [Means for solving the problem]
[0007] (1) One aspect of a data management server of the present invention is a data management server comprising a control unit and a database, the data usage condition information management unit recording and managing data usage condition information that associates information related to a data file stored in the database with the name of an application permitted to access the data file, and, upon receiving an access request for any data stored in the database from any running application, permitting access to the data only to applications that have been granted access to the data based on the data usage condition information; and, when a data file provided from outside the data management server is accompanied by usable application information in which the name of an application permitted to access the data file is set, a data transmission unit registers data usage condition information that associates information related to the data file with the name of the application permitted to access the data file in the data usage condition information management unit and transmits the data file to the database.
[0008] (2) One aspect of the data management method of the present invention is a data management method for storing an externally provided data file in an internal database and allowing an internal application to use the data file, the method comprising: a computer having a control unit and a database; a data usage condition management step for recording and managing data usage condition information that associates information related to the data file stored in the database with the name of an application that is permitted to access the data file, and, upon receiving an access request for any data stored in the database from any running application, permitting access to the data only to applications that are permitted to access the data based on the data usage condition information; and, if a data file provided from the outside is accompanied by usable application information in which the name of the application that is permitted to access the data file is set, a data transmission step for registering data usage condition information that associates information related to the data file with the name of the application that is permitted to access the data file, and transmitting the data file to the database.
[0009] (3) One aspect of the data program of the present invention is a data management program for storing an externally provided data file in an internal database and allowing an internal application to use the data file, the program causing a computer having a control unit and a database to execute a data usage condition management step of recording and managing data usage condition information that associates information related to the data file stored in the database with the name of an application that is permitted to access the data file, and, upon receiving an access request for any data stored in the database from any running application, allowing only applications that are permitted to access the data based on the data usage condition information to access the data, and a data transmission step of registering data usage condition information that associates information related to the data file with the name of the application that is permitted to access the data file and transmitting the data file to the database, if usable application information is added to a data file provided from the outside, in which the name of the application that is permitted to access the data file is set.
[0010] (4) One aspect of the data management system of the present invention is a data management system including a receiving server as the data management server described in (1) and a providing server that creates a data file to be provided to the receiving server from outside, wherein the providing server includes a control unit and a database, and the control unit includes a data acquisition unit that acquires a data file stored in the database, a data usage condition creation unit that adds to the data file usable application information that has an application name executed on the receiving server that permits access to the data file, and a data output unit that outputs to the outside the data file to which the usable application information has been added by the data usage condition creation unit as a provided data file to be provided to the receiving server. Effect of the Invention
[0011] According to the present invention, it is possible to provide a secure data management system, data management server, data management method, data management program, and recording medium which, when providing data to an external party, enable the data provider to specify in advance the name of an application that can use the data, thereby preventing other unspecified applications from accessing the data and preventing applications unintended by the data provider from using the data. [Brief description of the drawings]
[0012] [Figure 1] 1 is a schematic diagram showing a basic configuration of a data management system according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a functional block diagram of a provider server according to the present embodiment. [Diagram 3] 4 is a schematic diagram of a provider side application program executed by a provider server in this embodiment. FIG. [Figure 4] FIG. 2 is a functional block diagram of a receiving server serving as a data management server in this embodiment. [Diagram 5] FIG. 2 is a schematic diagram of a receiving application program executed on a receiving server in this embodiment. [Figure 6] 5 is a diagram showing an example of data use condition information in the present embodiment. FIG. [Figure 7] 13 is a flowchart showing a process of creating data to be provided to an external party from its own database in a providing server in this embodiment. [Figure 8] 10 is a flowchart showing the process in which a receiving server in this embodiment receives a data file from an external source and stores it in a database. [Figure 9] 10 is a flowchart showing a process in which an application accesses a database and acquires data in a receiving server in this embodiment. [Figure 10] 1 is a schematic diagram showing an example of a form in which data provided from a providing server to a receiving server via a cloud in this embodiment; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] An example of the configuration of a data management system 1000 according to this embodiment will be described. Here, as data, processing data associated with the operation of edge devices such as machine tools, industrial equipment, and industrial robots at a manufacturing site will be exemplified. In addition, as an external entity that creates and provides data, a server (also referred to as a "providing server") that accesses processing data of manufacturing devices (edge devices) including CNC machine tools, industrial equipment, and industrial robots installed at a manufacturing site such as a factory and performs predetermined information processing related to the application will be exemplified. In addition, as a server (also referred to as a "receiving server") of the present invention, for example, a server installed in a development environment, where a developer develops an application based on data provided from the providing server will be exemplified. However, the data, server, etc. of the present invention are not limited to these. The present invention can be applied to any data and any server.
[0014] Fig. 1 is a schematic diagram showing a basic configuration of a data management system 1000 in this embodiment. As shown in Fig. 1, the data management system 1000 includes a providing server 100 and a receiving server 400 as a data management server. The providing server 100 and the receiving server 400 may be connected via a network N1. The network may be, for example, the Internet, a VPN (Virtual Private Network), a public telephone network, or the like. There are no particular limitations on the specific communication method in the network, whether it is a wired connection or a wireless connection, and the like.
[0015] In this embodiment, the providing server 100 is exemplified as a server that executes an application, accesses processing data of manufacturing devices (edge devices) including CNC machine tools, industrial devices, industrial robots, etc., installed at a manufacturing site such as a factory, and performs predetermined information processing related to the application. Here, the processing data refers to virtual device data such as data indicating the operation state of the edge device, data indicating the production status, data indicating the quality status of the product, and data indicating the operation status. The data provider extracts, for example, the processing data (virtual device data) of the edge device from the database 160 of the providing server 100 and provides it to the developer. In this way, the developer can store the processing data (virtual device data) in the database 460 (for example, a debug database) of the receiving server 400 as a development environment, for example, and use the processing data (virtual device data) to develop an application. Any application can be executed on the receiving server 400. However, the virtual device data provided by the providing server 100 and stored in the database 460 of the receiving server 400 is configured to be accessible only by applications permitted to access by the provider of the data.
[0016] Next, the function of each device in the data management system 1000 will be described. <Providing Server 100> Fig. 2 is a functional block diagram showing functions of the providing server 100. As shown in Fig. 2, the providing server 100 includes a control unit 110, a storage unit 120, a communication unit 130, and a database 160. The database is constructed in an internal or external storage device managed by the providing server 100. Before describing the control unit 110, a brief description will be given of the storage unit 120, the communication unit 130, and the database 160.
[0017] The memory unit 120 stores programs and the like executed by the control unit 110, and also has a memory area (referred to as the "data storage unit") for temporarily storing data acquired from the database 160 by the data acquisition unit 111, as described below.
[0018] The communication unit 130 is a communication control device that transmits and receives data to and from external devices (eg, edge devices, client terminals, and the receiving server 400) via a network.
[0019] In this embodiment, as described above, the database 160 is exemplified by one that stores data (virtual device data) generated based on a standardized data model of data processed by edge devices. Specifically, in the database 160 exemplified in this embodiment, a data structure for storing virtual device data generated based on a standardized data model is prepared in advance. One element of such a data structure is called an instance, and its identifier is called an instance ID. Each piece of data stored in an instance is also called a moment. Specifically, data at one time stamp is called a moment. Moreover, the database 160 exemplified in this embodiment is configured so that, in order to store one piece of virtual device data in an instance, the instance ID is specified and data is sent (specifically, sent by POST) so that the data is stored in the instance identified by the instance ID. In this way, by sending data to the instance ID as the destination, the data is recorded in the instance. The database 160 exemplified in this embodiment may be provided with the above-mentioned database operation tool and access API. However, the present invention is not limited to virtual device data and database systems that store virtual device data. The present invention can be applied to any data and any database system that stores the data. Specifically, the terms "instance", "moment", "data sending section", and "sending data to a database" in the database 160 exemplified in this embodiment correspond to "data file such as a table", "one record data", "data registration section", and "storing data in a database" in a normal database, respectively, so that the present invention can be applied to any data and any database that stores the data by reinterpreting them as above.
[0020] The control unit 110 is, for example, a CPU, and controls the providing server 100 by executing various programs stored in the storage unit 120. Fig. 3 is a schematic diagram of a providing application program (also called a "provided data creation program") executed by the providing server 100. Hereinafter, "application" is also called "app." For example, the control unit 110 executes a program for data acquisition (hereinafter also referred to as "data acquisition processing") for acquiring virtual device data to be provided to the receiving server 400 from the database 160, and temporarily stores the acquired virtual device data in the storage unit 120. The control unit 110 executes a program for data output (hereinafter also referred to as "data output processing") for adding list information of applications that can use the provided data (i.e., permit access to the provided data) among the applications executed on the receiving server 400 ("data available application list information adding function" or "data available application list information adding function") and outputting the data to the outside (hereinafter also referred to as "export"). In addition, when outputting the provided data to the outside, in order to ensure the security of the data, a program for encrypting the provided data file (hereinafter also referred to as "encryption processing") using key data of a public key system or a common key of a common key system may be executed. In addition, the programs for the provision data creation process (particularly, the programs for data acquisition and data output) may be programs included in management software (hereinafter also referred to as "database operation tool") provided in database 160. By executing the provided data creation program, the control unit 110 is formed with the following functional configurations, as shown in FIG. 2: a data acquisition unit 111, a data usage condition creation unit 112, a data output unit 113, and an encryption processing unit 115.
[0021] First, the data acquisition unit 111 will be described. The data acquisition unit 111 acquires provided data from the database 160 in response to a data acquisition instruction input from a user (e.g., a data provider) via, for example, a terminal (not shown) communicably connected to the providing server 100. The acquired data may be stored in the data storage unit of the storage unit 120. Here, the instruction information included in the data acquisition instruction may include a data file name (e.g., an instance ID) and a target range of data to be provided among data included in the data file (e.g., identification information of the first data and identification information of the last data in the range to be provided). In addition, the number of data to be acquired may be specified. In addition, if the range to be provided is not specified, the data acquisition unit 111 may acquire all data included in the data file and create the first and last identification information of the data included in the data file as default. In the case where the provided data is virtual device data, a timestamp given to each data may be applied as identification information specifying the target range. The data acquisition instruction may include data usage application list information that specifies the names of applications that are permitted to access the data among the applications executed at the data destination (i.e., the receiving server 400). This allows the user (data provider, etc.) to input information required when providing data at the same time, improving input efficiency. In this case, the data acquisition unit 111 may provide the data usage application list information to the data usage condition creation unit 112, which will be described later. The data available application list information may include one or more application names. When allowing any application running on the receiving server 400 to access the data, the data available application list information may be set to null (hereinafter also referred to as "empty"). Furthermore, the range of data to be provided to the receiving server 400 may be divided into several partial ranges, and the name of an application that can use the data may be specified for each partial range.
[0022] Next, the data usage condition creation unit 112 will be described. The data usage condition creation unit 112 adds available application information in which the name of an application executed by the receiving server 400 that permits access to data within a range of data files extracted from the database by the data acquisition unit 111 and stored in the data storage unit of the memory unit 120, for example, is set, the application allowing access to the data within the range of data files. The data usage condition creation unit 112 may be included in the data output unit 113, which will be described later. Note that the user can input data to the data usage condition creation unit 112 via a client terminal or the like (not shown) in accordance with the range of data files stored in the data storage unit (not shown). If the available application list information is not specified, the data use condition creating unit 112 creates the available application information as null. In this way, the available application information including the null information is added to the data provided from the providing server 100 to the outside.
[0023] Finally, the data output unit 113 will be described. The data output unit 113 outputs the data file to which the available application information has been added by the data usage condition creating unit 112 to the outside as a data file to be provided to the receiving server 400 (hereinafter also referred to as a "provided data file"). When outputting the data to the outside, the data output unit 113 may encrypt the provided data file using key data of a public key system or a common key of a common key system in order to ensure the security of the data. Specifically, the control unit 110 may include an encryption processing unit 115. In this case, for example, by informing the providing side in advance of the public key of the receiving side, the encryption processing unit 115 may perform encryption by applying the public key. Alternatively, the encryption processing unit 115 may generate a common key, apply the public key to the generated common key to encrypt, and generate an encrypted common key and provided data encrypted by applying the common key. The provided data file outputted to the outside by the data output unit 113 may be transmitted to the receiving server 400 via the communication unit 130. Alternatively, the provided data file may be stored in a storage medium and mailed or handed over. As will be described later, the providing server 100 may upload the provided data file to a cloud, and the receiving server 400 may download the provided data file from the cloud. Above, we have explained the functions of the providing server 100. Next, we will explain the functions of the receiving server 400.
[0024] <Receiving server> Fig. 4 is a functional block diagram showing functions of the receiving server 400. As shown in Fig. 4, the receiving server 400 includes a control unit 410, a storage unit 420, a communication unit 430, and a database 460. The database 460 is constructed in an internal or external storage device managed by the receiving server 400. The storage unit 420 and the communication unit 430 are equivalent to those of the providing server 100, and a description thereof will be omitted. The receiving server 400 may be realized as a virtual server on a cloud known to those skilled in the art. The database 460 may also have the same functions as the database 160 of the providing server 100. Therefore, as described above, the receiving server may also have a database operation tool and an access API related to the database 460 prepared in advance. To store virtual device data in a specific instance of the database 460, an instance ID is designated and data is transmitted so that the data is stored in the instance identified by the instance ID. In this way, the data is recorded in the instance by transmitting the data with the instance ID as the transmission destination.
[0025] The control unit 410 is, for example, a CPU, and performs overall control of the receiving server 400 by executing various programs stored in the storage unit 420. Fig. 5 is a schematic diagram of a receiving application program executed by the receiving server 400. Hereinafter, "application" is also referred to as "app". For example, control unit 410 executes a program for performing application execution (hereinafter, referred to as “application execution processing”) for executing an application stored in storage unit 420. The control unit 410 also records and manages data usage condition information that associates information related to data files stored in the database 460 with the names of applications that are permitted to access the data files, and when it receives an access request for any data stored in the database 460 from any running application, it executes a program for data usage condition information management (hereinafter referred to as "data usage condition information management processing"), in which the control unit 410 checks, based on the data usage condition information, whether the application is an application that has been granted access to the data, and grants access to the data only to applications that have been granted access. The control unit 410 also imports a provided data file provided by the providing server 100 and temporarily stores it in the memory unit 420, and if the imported provided data file is encrypted, it decrypts it and executes a program for data input (hereinafter referred to as "data input processing" or "import processing") to provide the decrypted provided data file for the data transmission processing described below. Furthermore, when available application information in which the name of an application permitted to access the data file is set is added to a data file provided from the outside, the control unit 410 registers data use condition information in which information related to the data file is associated with the name of the application permitted to access the data file, and then executes a program for performing data transmission (hereinafter referred to as "data transmission processing") in which an instance ID is specified to transmit the data in order to store the data file in the database. As described above, the database 460 illustrated in this embodiment is configured such that, in order to store data in an instance, an instance ID is specified and data is transmitted (specifically, POST transmission) so that the data is stored in the instance identified by the instance ID. That is, in this embodiment, "data transmission in which an instance ID is specified and the data is transmitted" is synonymous with recording or storing the data in the instance. In addition, in order to ensure data security, a program for decrypting the provided data file (hereinafter also referred to as "decryption processing") may be executed when inputting provided data encrypted using key data of a public key system or a common key of a common key system. The program for data use condition information management processing and the program for data transmission processing may be software included in management software (database operation tool) prepared in advance in the data management system. Furthermore, the program for data use condition management processing can be implemented as a program built into API software that is prepared in advance for the database 460 in order to access the data in the database 460 . In this way, by executing the program for application execution processing, the program for import processing, the program for data transmission processing, and the program for data usage condition management processing, the control unit 410 is formed with the following functional configurations, as shown in FIG. 4: an application execution unit 411, a data import unit 412, a data transmission unit 413, a data usage condition information management unit 414, and a decoding processing unit 415.
[0026] The application execution unit 411 executes an application stored in an application storage unit (not shown) of the storage unit 420 on the receiving server 400 in response to a start request from, for example, a user or an arbitrary operating system.
[0027] The data import unit 412 imports the provided data file provided by the providing server 100 into the receiving server 400. Specifically, the provided data file may be stored in a data storage unit of the memory unit 420. In order to ensure data security, if the provided data file is encrypted using key data of the public key system or a common key of the common key system as described above, the encrypted provided data file must be decrypted. For this reason, the control unit 410 may be provided with a decryption processing unit 415. Specifically, for example, when the provided data file is encrypted using the public key of the receiving side, the decryption processing unit 415 can decrypt using the private key of the receiving side. Also, when the provided data file is encrypted using a common key generated on the providing side, the decryption processing unit 415 can decrypt the common key encrypted using the public key using the private key of the receiving side, and decrypt the encrypted provided data using the decrypted common key. In this way, the data import unit 412 can output the provided data decrypted by the decryption processing unit 415 to the data transmission unit 413. Next, before describing the data transmission unit 413, the data use condition information management unit 414 will be described.
[0028] The data usage condition information management unit 414 records and manages information related to the data file transmitted to the database 460 by the data transmission unit 413, as described later. Here, the information related to the data file includes, for example, an instance ID as a data file name, and data transmitted to the instance, including identification information of the first data indicating the target range of data to be provided, and data usage condition information in which a range from the first timestamp to the last timestamp in time-series data as identification information of the last data corresponds to an application name permitted to access the instance. FIG. 6 shows an example of data usage condition information. Note that, when the data usage condition information management unit 414 applies access restrictions only to a partial range of data included in the provided data file and does not apply access restrictions to the remaining range, data usage condition information in which an application name permitted to access the partial range corresponds to the data. The remaining range is associated with null.
[0029] Specifically, in the data use condition information management unit 414, when newly input data use condition information has the same data file name (same instance ID) as data use condition information already recorded and managed by the data use condition information management unit 414, the data transmission unit 413 records and manages (updates) the newly input data use condition information so as to overwrite the data use condition information already recorded and managed by the data use condition information management unit 414. As a result, for example, when the executable application list information in the newly input data use condition information is empty (null) (i.e., no access restriction is set), the data file name (same instance ID) is the same, the data file name (instance ID) included in the data use condition information already recorded and managed is the same, and the target range of the data to be provided partially overlaps, the data in the overlapping range is updated to be accessible from any application.
[0030] The data use condition information management unit 414 can update the data use condition information managed by itself periodically or in response to a request from a user to keep it up to date. Specifically, the data use condition information management unit 414 can compare the data use condition information with the data recorded in the database 460 periodically or in response to a request from a user, and if there is no data corresponding to the data use condition information in the database 460, delete the data use condition information (including permitted application information). In addition, if the range of data actually included in the data file corresponding to the data use condition information is smaller than the data target range managed by the data use conditions, the data target range managed by the data use conditions can be reduced to the range of data included in the data file.
[0031] As described above, the data usage condition information management unit 414 is a functional unit formed in the control unit 410 by executing a program implemented to be built into API software prepared in advance for accessing data in the database 460. Therefore, all applications that access data in the database 460 are configured to access the data via the data usage condition information management unit 414. When the data usage condition information management unit 414 receives an access request for data in any data file stored in the database 460 from any application running on the receiving server 400, it permits access to the data only to applications that are permitted to access the data based on the data usage condition information. More specifically, when the data usage condition information management unit 414 receives an access request for any data stored in the database 460 from any application running on the receiving server 400, if access to the data is permitted, it may retrieve the requested data from the database 460 and output (respond) to the application, and if access to the data is not permitted, it may output (respond) to the application an error message indicating that access to the data is not permitted.
[0032] Finally, the data transmission unit 413 will be described. When usable application information in which the name of an application permitted to access the data file is set is added to a data file provided from the data import unit 412, the data transmission unit 413 creates data usage condition information in which information related to the data file is associated with the name of the application permitted to access the data file, and registers the data usage condition information management unit 414. As described above, when access restrictions are added only to a partial range of data included in the provided data file and no access restrictions are added to the remaining range, the data transmission unit 413 may create data usage condition information in which information related to the data file is associated with the name of the application permitted to access the partial range, and register the data usage condition information management unit 414. Note that the process by which the data transmission unit 413 updates the data usage condition information registered in the data usage condition information management unit 414 based on the newly created data usage condition information is omitted since it has been described in the data usage condition information management unit 414. The data transmission unit 413 registers data usage condition information related to a data file provided from outside in the data usage condition information management unit 414, and then transmits the data file to the database 460. As a result, as described above, an access request to a data file (instance) stored in the database 460 is sent to the database 460 via the data usage condition information management unit 414, and therefore an application that is not permitted to access the data file cannot access the data file (i.e., cannot obtain the data of the data file). This makes it possible to prevent an application not intended by the data provider from using the data. The functions of the receiving server 400 have been described above.
[0033] In this way, in the data management system 1000, when the providing server 100 provides, for example, processing data associated with the operation of an edge device to a development environment (for example, the receiving server 400) provided by a developer, the data provider can specify an application that can use the data in advance, so that even if the provided data is transmitted (i.e., stored) in a decrypted state to a database in the development environment, other applications that are not specified and are executed in the same development environment cannot access the processing data. This allows the data provider to prevent the virtual device data provided to the development environment from being illegally obtained and used. Furthermore, the above-mentioned problem can be solved without any changes to the program code related to the use of the database in each application.
[0034] The functional blocks included in the providing server 100 and the receiving server 400 have been described above. Each server included in the above data management system 1000 can be realized by hardware, software, or a combination of these. Here, being realized by software means being realized by a computer reading and executing a program (application). For example, the providing server 100 and the receiving server 400 can be realized by incorporating a program (application) for implementing this embodiment into a general server or a virtual server on the cloud.
[0035] Next, the process flow by the providing server 100 in the data management system 1000, the process flow by the receiving server 400 storing the data in the database 460 until an application makes the data available, and the process flow by which an arbitrary application running on the receiving server 400 accesses the database 460 to obtain specified data will be described with reference to Figures 7 to 9. 7 is a diagram showing an outline of the process flow in the providing server 100 until the data acquired from its own database is provided to the receiving server 400. Note that the provided data is encrypted using key data of a public key system.
[0036] In step S1, the data acquisition unit 111 acquires data to be provided from the database 160 in response to an instruction from a data provider.
[0037] In step S2, the data usage condition creation unit 112 creates usable application information based on the range of acquired data instructed by the data provider and the list of application names permitted for use on the receiving server 400, and adds the usable application information to the data acquired in step S1.
[0038] In step S3, the data output unit 113 encrypts the data file to which the available application information has been added in step S2 using public key key data (the recipient's public key), and outputs the encrypted provided data file to the outside. Thereafter, the provided data file outputted to the outside is provided to the receiving server 400 in a preset manner.
[0039] FIG. 8 is a diagram showing an outline of the flow of processing from when the receiving server 400 receives a provided data file from the providing server 100 until when the data file is stored in the database 460 of the receiving server 400 .
[0040] In step S11, the data import unit 412 stores the provided data file provided by the providing server 100 in the data storage unit.
[0041] In step S 12 , the data import unit 412 decrypts the data using public key system key data (the private key of the recipient) and outputs the decrypted data to the data transmission unit 413 .
[0042] In step S13, the data transmission unit 413 determines whether or not available application information has been added to the data file output from the data import unit 412. If available application information has been added (Yes), the process proceeds to step S14. If not (No), the process proceeds to step S15.
[0043] In step S14, the data transmission unit 413 creates data use condition information based on the available application information, and registers it in the data use condition information management unit 414. After that, the process proceeds to step S16.
[0044] In step S15, the data transmission unit 413 registers the data use condition information to be null in the data use condition information management unit 414. Then, the process proceeds to step S16.
[0045] In step S16, the data transmission unit 413 transmits the provided data to the database 460. As a result, the provided data is stored in the database 460, and the arbitrary application becomes able to access the data via the data use condition information management unit 414.
[0046] FIG. 9 is a diagram showing an outline of the flow of processing in which an arbitrary application running on the receiving server 400 accesses the database 460 and acquires predetermined data.
[0047] In step S21, the data use condition information management unit 414 receives a request to access data stored in the database 460 from any application currently being executed.
[0048] In step S22, the data use condition information management unit 414 determines whether the application is permitted to access the data based on the data use condition information it manages. If the application is permitted to access the data (Yes), the process proceeds to step S23. If the application is not permitted (No), the process proceeds to step S24.
[0049] In step S23, the data use condition information management unit 414 acquires the data requested for access from the database 460, and outputs (responses) it to the requested application, after which the process proceeds to step S21.
[0050] In step S24, the data use condition information management unit 414 outputs (responses) to the requested application an error message indicating that access to the data is not permitted, and then proceeds to step S21.
[0051] As described above, by applying the data management system 1000 of the present invention, a provider who provides data to an external party can prevent an application unintended by the data provider from using the data by specifying in advance the name of an application that can use the data in the server to which the data is provided. In this way, the data provider can control the applications that can use the data. On the other hand, at the recipient side that receives the data, for example, in the recipient server 400 serving as a development environment, only applications that are enabled to use the data can use the data, and security can be ensured automatically without making any changes to the operation of the server or to the program code related to database usage in each application.
[0052] The above-described embodiment is a preferred embodiment of the present invention, but the scope of the present invention is not limited to the above-described embodiment, and the present invention can be implemented in various modified forms without departing from the gist of the present invention.
[0053] (Variation 1) In the above embodiment, the provided data file is directly exchanged between the providing server 100 and the receiving server 400, whether through a communication unit or by storing the file in a storage medium and mailing or handing it over, but the present invention is not limited to this. The provided data may be exchanged via a pre-configured cloud. An example of uploading and downloading of provided data via the cloud will be described. Fig. 10 is a schematic diagram showing an example of a form in which the providing server 100 provides the provided data to the receiving server 400 via the cloud by uploading the provided data to the cloud and the receiving server downloading the provided data from the cloud. Here, a public key system is adopted as the encryption system, and an example of encryption using a public key or a private key will be described. First, a data management virtual server is provided in the cloud to manage data transfer between a providing server and a receiving server. Here, the providing side acquires a public key 2 of the data management virtual server and registers the public key 2 in the providing side server 100. Also, the receiving side generates a public key 1 of the receiving side in advance and registers it in the data management virtual server on the cloud. In this way, the providing server 100 (data output unit 113) encrypts the provided data to be provided to the receiving server 400 using the data management virtual server public key 2, and uploads the encrypted data to the data management virtual server. Then, the data management virtual server decrypts the encrypted data using its own private key 2 (which pairs with the public key 2). Thereafter, the data management virtual server encrypts the decrypted provided data using the receiving server public key 1, and downloads the encrypted data to the receiving server 400. In this way, the receiving server 400 (data import unit 412) can decrypt the data using its own private key 1 (which pairs with the public key 1). As described above, when uploading provided data from the providing server 100 to the data management virtual server, the data may be encrypted using a common key generated by the providing server 100. In this case, the providing server 100 uses the public key 2 to add the encrypted common key to the data management virtual server and uploads the data. Similarly, when the receiving server downloads the provided data from the data management virtual server, the data management virtual server may encrypt the data using a common key generated by the data management virtual server. In this case, the data management virtual server uses the public key 1 to cause the receiving server to download the encrypted common key. As described above, the providing server 100 can provide data to the receiving server 400 via a preset cloud.
[0054] (Variation 2) In the above embodiment, the providing server 100 and the receiving server 400 are described as separate servers, but one server may function as the providing server 100 that provides data created in that server to another server, and also function as the receiving server 400 that receives data created in the other server from the other server. That is, one server may be configured to have both the functions of the providing server 100 and the functions of the receiving server 400.
[0055] (Variation 3) The present invention is not limited to virtual device data and a database system that stores the virtual device data. As described above, the present invention can be applied to any data and any database system that stores the data. Specifically, the terms "instance", "moment", "data transmission unit", and "transmitting data to a database" in the database 160 exemplified in this embodiment correspond to "data file such as a table", "one record data", "data registration unit", and "storing data in a database" in a normal database system, respectively, and therefore, by reinterpreting them as described above, the present invention can be applied to any data and any database system that stores the data.
[0056] Programs, including applications used in the present invention, can be stored and supplied to a computer using various types of non-transitory computer readable media. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / Ws, and semiconductor memories (e.g., mask ROMs, PROMs (Programmable ROMs), EPROMs (Erasable PROMs), flash ROMs, and RAMs (random access memories)). Programs may also be supplied to a computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The transitory computer readable media can supply the programs to a computer via wired communication paths such as electric wires and optical fibers, or wireless communication paths.
[0057] In consideration of the above, the present invention can take various forms including the following configurations.
[0058] (1) The receiving server 400 as a server of the present disclosure is a server equipped with a control unit 410 and a database 460. The control unit 410 records and manages data usage condition information that associates information related to a data file stored in the database 460 with the name of an application permitted to access the data file, and is equipped with a data usage condition information management unit 414 that, when an access request for any data stored in the database 460 is received from any running application, permits access to the data only to applications that have been permitted to access the data based on the data usage condition information, and a data transmission unit 413 that, when a data file provided from outside the receiving server 400 is accompanied by usable application information in which the name of an application permitted to access the data file is set, registers data usage condition information that associates information related to the data file with the name of the application permitted to access the data file in the data usage condition information management unit 414 and transmits the data file to the database 460. In this way, when a data provider provides data to an external party, the data provider can specify in advance the name of an application that can use the data, thereby preventing other applications that are not specified from accessing the data, thereby preventing applications that are not intended by the data provider from using the data.
[0059] (2) In the receiving server 400 as described in (1), the data usage condition information may include at least data file identification information, data information including range information of the data stored in the data file, and application identification information that has been granted access to the data included in the range information of the data. This allows the data provider to specify whether access is permitted or not for the provided data depending on the range of the data, and allows the data provider to finely control the permission to use data as necessary.
[0060] (3) In the receiving server 400 as described in (2), the data stored in the data file corresponds to at least one of data indicating the operating status of the edge device, data indicating the production status of the edge device, data indicating the quality status of the product of the edge device, data indicating the operating status of the edge device, and data indicating an event of the edge device, and the range information of the data may include a period related to the timestamp when the data was generated. By doing so, it is possible to eliminate the risk of processing data generated by the operation of edge devices at manufacturing sites being used for unintended applications, for example, by analyzing machine information, leading to misuse (for example, predictions of the manufacturing capacity of each machine, the manufacturing capacity of the factory, and the sales of the company operating the factory).
[0061] (4) In the receiving server 400 as a server described in any one of (1) to (3), the data usage condition information management unit 414 may receive an access request from an application to any data stored in the database 460, and if access to the data is permitted, retrieve the requested data from the database 460 and output it to the application, and if access to the data is not permitted, output error data to the application. Doing so can achieve the same effects as (1) to (3), and also allows a developer to easily grasp the cause of an error when an erroneous data acquisition request is made, since error data is immediately returned, thereby improving development efficiency.
[0062] (5) The receiving server 400 as a server described in any one of (1) to (3) may be equipped with a communication unit 430, and a data file provided from outside the receiving server 400 and imported into the receiving server 400 may be received via the communication unit 430. By doing so, for example, the complexity of manual operation can be avoided.
[0063] (6) The data management method disclosed herein is a data management method for storing an externally provided data file in an internal database 460 and permitting use by an internal application, and includes a computer including a control unit 410 and a database 460, which executes a data usage condition management step of recording and managing data usage condition information that associates information related to the data file stored in the database 460 with the name of an application permitted to access the data file, and, upon receiving an access request for any data stored in the database 460 from any running application, permitting access to the data only to applications that have been permitted to access the data based on the data usage condition information, and a data transmission step of registering data usage condition information that associates information related to the data file with the name of the application permitted to access the data file, and transmitting the data file to the database 460, if usable application information in which the name of the application permitted to access the data file is set is added to the data file provided from the outside. In this way, the data management method can achieve the same effect as (1).
[0064] (7) The data management program of the present disclosure is a data management program for storing a data file provided from outside in an internal database 460 and permitting use by an internal application, and causes a computer having a control unit 410 and a database 460 to execute a data usage condition management step of recording and managing data usage condition information that associates information related to the data file stored in the database 460 with the name of an application permitted to access the data file, and, upon receiving an access request for any data stored in the database 460 from any running application, permitting access to the data only to applications that have been permitted to access the data based on the data usage condition information, and a data transmission step of registering data usage condition information that associates information related to the data file with the name of the application permitted to access the data file, and transmitting the data file to the database 460, if usable application information in which the name of the application permitted to access the data file is set is added to a data file provided from outside. In doing so, the data management program can achieve the same effect as (1).
[0065] (8) A computer-readable recording medium of the present disclosure records the data management program described in (7). In this way, the computer-readable recording medium can achieve the same effect as (1).
[0066] (9) The data management system 1000 of the present disclosure is a data management system 1000 including a receiving server 400 as described in (1) and a providing server 100 as a server that creates a data file to be provided to the receiving server 400 from outside, wherein the providing server 100 includes a control unit 110 and a database 160. The control unit 110 includes a data acquisition unit 111 that acquires a data file stored in the database 160, a data usage condition creation unit 112 that adds usable application information in which the name of an application executed on the receiving server 400 that permits access to the data file is set, and a data output unit 113 that outputs the data file to which the usable application information has been added by the data usage condition creation unit 112 to the outside as a provided data file to be provided to the receiving server 400. In doing so, the data management system can achieve the same effect as (1). [Explanation of symbols]
[0067] 1000 Data Management System 100 Provider Server 110 Control section 111 Data Acquisition Section 112 Data Usage Conditions Creation Department 113 Data output section 120 Storage section 130 Communications Department 160 Databases 400 Receiving Server 410 Control section 411 Application Execution Unit 412 Data Import Department 413 Data transmission unit 414 Data Usage Conditions Information Management Department 420 Storage section 430 Communications Department 460 Database
Claims
1. A control unit; A data management server comprising: a data usage condition information management unit that records and manages data usage condition information that associates information related to the data files stored in the database with names of applications permitted to access the data files, and that, upon receiving an access request to any data stored in the database from any running application, permits access to the data only to applications that have been permitted to access the data based on the data usage condition information; a data transmission unit which, when available application information in which an application name permitted to access the data file is set is added to a data file provided from outside the data management server, registers data usage condition information in the data usage condition information management unit, the data usage condition information associating information related to the data file with the application name permitted to access the data file, and transmits the data file to the database; Equipped with The data use condition information management unit updates the data use condition information managed by itself periodically or in response to a request from a user, thereby keeping the information up to date.
2. The data management server of claim 1, wherein the data usage condition information includes data information including at least identification information of a data file and range information of the data stored in the data file, and identification information of an application that is permitted to access the data included in the range information of the data.
3. 3. The data management server of claim 2, wherein the data stored in the data file corresponds to at least one of data indicating the operating status of an edge device, data indicating the production status of an edge device, data indicating the quality status of a product of an edge device, data indicating the operating status of an edge device, and data indicating an event of an edge device, and the range information of the data includes a period related to a timestamp when the data was generated.
4. The data management server according to any one of claims 1 to 3, wherein the data usage condition information management unit receives an access request from the application to any data stored in the database, and if access to the data is permitted, retrieves the requested data from the database and outputs it to the application, and if access to the data is not permitted, outputs error data to the application.
5. The data management server includes a communication unit, The data management server according to claim 1 , wherein a data file provided from outside the data management server and imported into the data management server is received via the communication unit.
6. A data management method for storing an externally provided data file in an internal database and permitting use by an internal application, comprising: A computer including a control unit and a database, a data usage condition management step of recording and managing data usage condition information that associates information related to the data file stored in the database with the names of applications permitted to access the data file, and, when an access request to any data stored in the database is received from any application currently being executed, permitting access to the data only to applications that have been permitted to access the data based on the data usage condition information; a data use condition information updating step of updating the recorded and managed data use condition information periodically or in response to a request from a user to keep the information up to date; a data transmission step of registering data usage condition information that associates information related to the data file with the name of the application permitted to access the data file, when available application information in which the name of the application permitted to access the data file is set is added to the data file provided from the outside, and transmitting the data file to the database; A data management method that performs the above.
7. A data management program for storing data files provided from an external source in an internal database and permitting use by internal applications, A computer including a control unit and a database, a data usage condition management step of recording and managing data usage condition information that associates information related to the data file stored in the database with the names of applications permitted to access the data file, and, when an access request to any data stored in the database is received from any application currently being executed, permitting access to the data only to applications that have been permitted to access the data based on the data usage condition information; a data use condition information updating step of updating the recorded and managed data use condition information periodically or in response to a request from a user to keep the information up to date; a data transmission step of registering data usage condition information that associates information related to the data file with the name of the application permitted to access the data file, when available application information in which the name of the application permitted to access the data file is set is added to the data file provided from the outside, and transmitting the data file to the database; A data management program for executing the above.
8. A computer-readable recording medium having the data management program according to claim 7 recorded thereon.
9. A receiving server as the data management server according to claim 1; A data management system including a providing server that creates a data file to be provided to the receiving server from an external source, The providing server, A control unit; A database; The control unit is a data acquisition unit that acquires a data file stored in the database; a data usage condition creating unit that adds available application information to the data file, the available application information including a name of an application executed by the receiving server that is permitted to access the data file; a data output unit that outputs the data file to which the available application information has been added by the data usage condition creation unit to an external device as a provided data file to be provided to the receiving server. Data management system.
Citation Information
Patent Citations
File monitoring device
JP2005148913A
Document managment system
JP2007149067A
Data management device, data management method, and data management program
JP2020021214A
Information provision device, information provision method, and information provision program
WO2019234887A1