JP7310043B2 - Program, device and method for using API - Google Patents
Program, device and method for using API Download PDFInfo
- Publication number
- JP7310043B2 JP7310043B2 JP2023502001A JP2023502001A JP7310043B2 JP 7310043 B2 JP7310043 B2 JP 7310043B2 JP 2023502001 A JP2023502001 A JP 2023502001A JP 2023502001 A JP2023502001 A JP 2023502001A JP 7310043 B2 JP7310043 B2 JP 7310043B2
- Authority
- JP
- Japan
- Prior art keywords
- api
- apis
- processing request
- processing
- confidentiality
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 47
- 238000012545 processing Methods 0.000 claims description 233
- 230000006870 function Effects 0.000 claims description 102
- 230000004044 response Effects 0.000 claims description 34
- 239000008186 active pharmaceutical agent Substances 0.000 claims 26
- 238000003860 storage Methods 0.000 description 64
- 230000008569 process Effects 0.000 description 32
- 238000007726 management method Methods 0.000 description 26
- 238000012015 optical character recognition Methods 0.000 description 25
- 230000035945 sensitivity Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012550 audit Methods 0.000 description 12
- 230000004043 responsiveness Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 230000015654 memory Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000014759 maintenance of location Effects 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000001038 ionspray mass spectrometry Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005360 mashing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本明細書の開示は、APIを利用するためのプログラム、装置、及び方法に関する。本明細書の開示は、より具体的には、処理対象データセットの秘密度に応じたAPIを利用するためのプログラム、装置、及び方法に関する。 The present disclosure relates to programs, devices, and methods for utilizing APIs. More specifically, the disclosure of this specification relates to a program, apparatus, and method for using an API according to the confidentiality of a data set to be processed.
アプリケーションソフトウェアの構築を効率良く行うために、API(Application Programming Interface)が広く利用されている。例えば、複数のWebAPIをマッシュアップすることでアプリケーションソフトウェアを構築することができる。開発者は、公開されているAPIの仕様に基づいて、所望の機能を提供するAPIを呼び出し、そのAPIからのレスポンスを処理するようにアプリケーションソフトウェアを設計することができる。既に開発され公開されているAPIを利用することにより、APIと同等の機能を実行するためのプログラムを自らコーディングする場合と比べて、アプリケーションソフトウェアの開発を効率化することができる。 APIs (Application Programming Interfaces) are widely used to build application software efficiently. For example, application software can be built by mashing up multiple WebAPIs. Developers can design application software to call APIs that provide desired functionality and to process responses from the APIs based on published API specifications. By using an API that has already been developed and made public, application software development can be made more efficient than in the case of coding a program for executing functions equivalent to the API.
APIは、リバースプロキシとして機能するAPIゲートウェイを介してデプロイされることがある。従来のAPIゲートウェイは、例えば、特開2018-029241号公報(特許文献1)に記載されている。APIゲートウェイは、クライアントアプリケーションからのAPIリクエストをバックエンドのAPIに渡し、APIからのレスポンスをリクエスト元のクライアントアプリケーションに返すことができる。つまり、アプリケーションソフトウェアは、APIゲートウェイを介してAPIを呼び出し、APIからのレスポンスを受け取ることができる。 APIs may be deployed through API gateways that act as reverse proxies. A conventional API gateway is described, for example, in Japanese Unexamined Patent Application Publication No. 2018-029241 (Patent Document 1). The API gateway can pass API requests from client applications to back-end APIs and return responses from APIs to the requesting client applications. That is, the application software can call the API via the API gateway and receive a response from the API.
クライアントアプリケーションがAPI又はそのAPIを提供するベンダーに要求する情報セキュリティのレベルは、処理対象のデータによって変わり得る。例えば、クライアントアプリケーションが秘密度の高いデータを処理させるためにAPIを呼び出す場合には、その呼び出されるAPIは、高いレベルの情報セキュリティを確保していることが必要である。このため、クライアントアプリケーションの開発者は、APIに受け渡す処理データの秘密度に応じたセキュリティレベルを確保しているAPIを選定し、その選定されたAPIが呼び出されるように当該クライアントアプリケーションを設計する。そのためには、クライアントアプリケーションの開発者は、公開されているAPIの仕様を検討した上で、要求する情報セキュリティの要件に適合するAPIを選定しなければならず、この工程に多大な労力が必要とされる。 The level of information security that a client application requires of an API or a vendor that provides that API may vary depending on the data to be processed. For example, when a client application calls an API to process highly confidential data, the called API must ensure a high level of information security. For this reason, the developer of the client application selects an API that ensures a security level corresponding to the confidentiality of the processing data to be passed to the API, and designs the client application so that the selected API is called. . For this purpose, the client application developer must examine the published API specifications and select an API that meets the required information security requirements, and this process requires a great deal of effort. It is said that
また、APIの仕様は随時変更され得るから、クライアントアプリケーションの開発時に秘密度の高い処理データを処理させるAPIを選定し、秘密度の高い処理データの処理時にそのAPIを呼び出すようにクライアントアプリケーションが構築されたとしても、その選択されたAPIについてセキュリティレベルを低下させる改変がなされる可能性がある。この場合、秘密度の高いデータを別のAPIによって処理させるようにクライアントアプリケーションを改変する必要がある。しかしながら、クライアントアプリケーションの開発者や管理者が、クライアントアプリケーションによって利用されているAPIの全てについてセキュリティレベルを常時監視し、適時に必要な改変を行うことは困難を伴う。 Also, since API specifications can change at any time, the client application is constructed so that an API for processing highly confidential processing data is selected when the client application is developed, and that API is called when processing highly confidential processing data. Even if it does, there is a possibility that the selected API will be modified to lower the security level. In this case, it is necessary to modify the client application so that the sensitive data is processed by another API. However, it is difficult for developers and administrators of client applications to constantly monitor the security levels of all APIs used by client applications and to make necessary changes in a timely manner.
従来のAPIゲートウェイは、APIキー認証やトラフィック制御などのクライアントアプリケーションにとって有用な様々な機能を提供している。しかしながら、これまでのところAPIの選択を支援する機能を提供するAPIゲートウェイ、特に処理データの秘密度に応じたAPIの選択を支援するAPIゲートウェイは知られていない。 Conventional API gateways provide various functions useful to client applications, such as API key authentication and traffic control. However, an API gateway that provides a function for supporting API selection, particularly an API gateway that supports API selection according to the degree of confidentiality of processing data has not been known so far.
本明細書に開示される発明の目的は、クライアントアプリケーションによるAPIの利用における上記の問題の少なくとも一部を解決又な緩和することである。本明細書に開示される発明のより具体的な目的の一つは、処理データセットの秘密度に応じてAPIを選択することができるプログラム、装置、及び方法を提供することである。 It is an object of the invention disclosed herein to solve or alleviate at least some of the above problems in the use of APIs by client applications. One of the more specific objects of the invention disclosed in this specification is to provide a program, apparatus, and method capable of selecting an API according to the confidentiality of the processing data set.
本明細書に開示される発明の前記以外の目的は、本明細書全体を参照することにより明らかになる。本明細書に開示される発明は、前記の課題に代えて又は前記の課題に加えて、本明細書の記載から把握される課題を解決するものであってもよい。 Other objects of the invention disclosed herein will become apparent upon reference to the specification as a whole. The invention disclosed in this specification may solve the problems understood from the description of this specification instead of or in addition to the above problems.
本発明の一又は複数の実施形態は、会計データを分析するための分析プログラムに関する。本発明の一又は複数の実施形態における分析プログラムは、一又は複数のプロセッサに、処理対象データセットに設定された少なくとも一つの秘密度を表す秘密区分情報を含む処理リクエストを受信する機能と、前記秘密区分情報に応じて外部の複数のAPIの中から前記処理リクエストを処理させる実行APIを選択する機能と、を実行させる。 One or more embodiments of the present invention relate to an analysis program for analyzing accounting data. An analysis program according to one or more embodiments of the present invention has a function of receiving a processing request containing at least one degree of secrecy set in a data set to be processed, and receiving a processing request including the secrecy classification information, to one or more processors; and a function of selecting an execution API for processing the processing request from among a plurality of external APIs according to the security classification information.
本発明の一実施形態におけるプログラムは、一又は複数のプロセッサに、前記実行APIを呼び出し、前記実行APIからのレスポンスを受信する機能をさらに実行させる。 The program in one embodiment of the present invention causes one or more processors to further perform the function of calling the execution API and receiving a response from the execution API.
本発明の一実施形態において、前記実行APIは、前記秘密区分情報、及び、前記複数のAPIの各々について設定されたセキュリティレベルに基づいて、前記複数のAPIの中から選択される。 In one embodiment of the present invention, the execution API is selected from among the plurality of APIs based on the security classification information and a security level set for each of the plurality of APIs.
本発明の一実施形態におけるプログラムは、一又は複数のプロセッサに、前記秘密区分情報、及び、前記複数のAPIの各々について設定されたセキュリティレベルに基づいて、前記複数のAPIの中から前記秘密度に適合するセキュリティレベルを有する複数の候補APIを選択する機能をさらに実行させる。本発明の一実施形態において、前記実行APIは、前記複数の候補APIの中から選択される。 In one embodiment of the present invention, a program is provided in one or a plurality of processors, based on the security classification information and a security level set for each of the plurality of APIs, the degree of secrecy from among the plurality of APIs. It further performs the function of selecting a plurality of candidate APIs having security levels that match the . In one embodiment of the invention, the execution API is selected from among the plurality of candidate APIs.
本発明の一実施形態において、前記処理リクエストはクライアントアプリケーションによって生成され、前記実行APIは、前記クライアントアプリケーションについて定められた希望条件に応じて前記複数の候補APIの中から選択される。 In one embodiment of the invention, the processing request is generated by a client application, and the execution API is selected from among the plurality of candidate APIs according to desired conditions defined for the client application.
本発明の一実施形態において、前記処理対象データセットに複数の秘密度が設定されている場合、前記複数の候補APIの各々は、前記複数の秘密度のうち最も高い秘密度に適合するセキュリティレベルを有するように前記複数のAPIの中から選択される。 In one embodiment of the present invention, when a plurality of confidentialities are set for the data set to be processed, each of the plurality of candidate APIs has a security level that matches the highest confidentiality among the plurality of confidentialities. is selected from among the plurality of APIs to have
本発明の一実施形態において、前記一又は複数のプロセッサの各々は、オンプレミス環境に配置されている。本発明の一実施形態において、前記選択する機能は、前記処理リクエストに含まれるフラグが処理対象データセットを前記オンプレミス環境において処理すべきことを示す場合に、前記オンプレミス環境にある一又は複数のオンプレミスAPIの中から前記実行APIを選択する機能を含む。 In one embodiment of the invention, each of the one or more processors is located in an on-premises environment. In one embodiment of the present invention, the function to select is one or more on-premises environments in the on-premises environment when a flag included in the processing request indicates that the data set to be processed should be processed in the on-premises environment. It includes a function of selecting the execution API from among the APIs.
本発明の一実施形態においては、前記複数のAPIの各々について、提供機能及びセキュリティレベルが設定されている。本発明の一態様において、前記選択する機能は、前記処理リクエストで要求される機能および前記秘密区分情報に応じて前記実行APIを選択する機能を含む。 In one embodiment of the present invention, provided functions and security levels are set for each of the plurality of APIs. In one aspect of the present invention, the function of selecting includes a function of selecting the execution API according to the function requested by the processing request and the classified information.
本発明の一実施形態における装置は、処理対象データセットに設定された少なくとも一つの秘密度を表す秘密区分情報を含む処理リクエストを受信する受信部と、前記秘密区分情報に応じて外部の複数のAPIの中から前記処理リクエストを処理させる実行APIを選択するAPI選択部と、を備える。 An apparatus according to an embodiment of the present invention comprises a receiving unit for receiving a processing request containing at least one degree of confidentiality set in a data set to be processed, and a plurality of external devices according to the confidentiality information. an API selection unit that selects an execution API for processing the processing request from among the APIs.
本発明の一実施形態は、一又は複数のプロセッサがコンピュータ読み取り可能な命令を実行することによりAPIを選択する方法に関する。本発明の一実施形態における方法は、処理対象データセットに設定された少なくとも一つの秘密度を表す秘密区分情報を含む処理リクエストを受信する工程と、前記秘密区分情報に応じて外部の複数のAPIの中から前記処理リクエストを処理させる実行APIを選択する工程と、を備える。 One embodiment of the invention relates to a method of selecting an API by executing computer readable instructions by one or more processors. A method according to an embodiment of the present invention comprises the steps of: receiving a processing request including classification information representing at least one degree of sensitivity set in a data set to be processed; and selecting an execution API to process the processing request from among.
本発明の実施形態によれば、クライアントアプリケーションから処理データの秘密度に応じたAPIを簡便に利用できるようにするためのプログラム、装置、及び方法が提供される。 According to the embodiments of the present invention, there are provided a program, an apparatus, and a method for allowing client applications to easily use APIs according to the degree of confidentiality of processing data.
以下、適宜図面を参照し、本明細書に開示される発明が適用されるAPI提供システムの実施形態について説明する。以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。まず、図1~図6を参照して、本発明の一実施形態によるAPI提供システム1について説明する。API提供システム1では、クライアントと複数の外部ベンダーが提供する複数の外部APIとの間にAPIプラットフォーム装置が設けられ、APIプラットフォーム装置はクライアントのデータの秘密度に応じた外部APIを選択し、選択した外部APIを呼び出すことができる。この仕組みにより、APIプラットフォーム装置を介してエコシステムを外部ベンダーにまで広げつつ、クライアントのセキュリティ・プライバシー要求に対応可能となる。 Hereinafter, embodiments of an API providing system to which the invention disclosed in this specification is applied will be described with reference to the drawings as appropriate. Hereinafter, the same or equivalent constituent elements, members, and processes shown in each drawing are denoted by the same reference numerals, and duplication of description will be omitted as appropriate. First, an API providing system 1 according to an embodiment of the present invention will be described with reference to FIGS. 1 to 6. FIG. In the API providing system 1, an API platform device is provided between a client and a plurality of external APIs provided by a plurality of external vendors, and the API platform device selects an external API according to the confidentiality of data of the client, can call external APIs. This mechanism makes it possible to respond to client security and privacy requirements while expanding the ecosystem to external vendors via the API platform device.
図1は、API提供システム1の概略を示すブロック図である。図1に示されているとおり、API提供システム1は、クライアントアプリケーション10aを実行するユーザ端末10が配置されているオンプレミス環境5と、オンプレミス環境5の所有者(または管理者)とは異なるベンダーA、ベンダーB、ベンダーC、及びベンダーDの各々の情報機器が配置されているベンダー環境A、ベンダー環境B、ベンダー環境C、及びベンダー環境Dを含む。オンプレミス環境5に配置されている情報機器の各々は、ベンダー環境A~Dに配置されている情報機器の各々とネットワーク40を介して互いに通信可能に接続されている。ネットワーク40は、単一のネットワークであってもよく、複数のネットワークが接続されて構成されていてもよい。ネットワーク40は、例えば、インターネット、移動通信網、及びこれらの組み合わせである。ネットワーク40として、情報機器間の通信を可能とする任意のネットワークが適用され得る。
FIG. 1 is a block diagram showing an outline of an API providing system 1. As shown in FIG. As shown in FIG. 1, the API providing system 1 includes an on-premises environment 5 in which a user terminal 10 executing a
APIは、あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するためのインタフェースである。本明細書における「API」は、リクエストにより呼び出された機能を実行するイネーブラを含むことができる。 API is an interface for calling and using the functions of a certain computer program (software) and data managed by another external program. An "API" herein can include an enabler that performs a function invoked by a request.
オンプレミス環境5は、ユーザ端末10と、APIプラットフォーム装置20と、を含む。ユーザ端末10は、パーソナルコンピュータ(PC)、タブレット端末、スマートフォン、またはこれら以外の各種情報処理装置である。ユーザ端末10は、不図示のプロセッサを備え、当該プロセッサにより所定の命令セットを実行することにより、クライアントアプリケーション10aの機能を実現する。クライアントアプリケーション10aは、例えば、会計監査業務を支援する監査アプリケーションソフトウェアである。監査アプリケーションソフトウェアは、監査調書の作成を支援する機能、会計データのサンプリングや統計分析を行う機能、及び前記以外の監査業務を支援する機能を備えることができる。API提供システム1において使用可能なクライアントアプリケーション10aは、監査アプリケーションソフトウェアには限られず、例えば税務を支援する税務アプリケーションソフトウェアであってもよい。APIプラットフォーム装置20は、オンプレミス環境5の外部に設けられてもよい。
The on-premises environment 5 includes user terminals 10 and
クライアントアプリケーション10aは、必要に応じて外部の(またはオフプレミス環境の)APIを呼び出しそのAPIから受け取ったレスポンスを処理することで所定の機能を実現するように設計及び開発される。図示の実施形態では、クライアントアプリケーション10aは、API31~36のうちの少なくとも一つを呼び出し、その呼び出したAPIからのレスポンスを受け取ることができる。クライアントアプリケーション10aは、例えば複数のWeb APIをマッシュアップすることで構築されてもよい。後述するように、クライアントアプリケーション10aは、APIを直接呼び出すのではなく、APIによる処理対象データセットの処理を要求する処理リクエストをAPIプラットフォーム装置20に送信し、APIプラットフォーム装置20を介してAPI(つまり、当該APIのイネーブラ)からのレスポンスを受け取る。つまり、クライアントアプリケーション10aは、APIプラットフォーム装置20を介してAPIを呼び出し、APIからのリクエストを受け取る。
The
クライアントアプリケーション10aは、APIプラットフォーム装置20をバイパスしてAPI31~36のうちの少なくとも一つを呼び出すことができてもよい。言い換えると、クライアントアプリケーション10aは、APIプラットフォーム装置20を介さずにAPI31~36を直接呼び出すことができてもよい。例えば、Web APIが直接呼び出される場合には、クライアントアプリケーション10aは、利用するWeb APIのエンドポイントを指定してAPIリクエストを送信することができる。クライアントアプリケーション10aは、APIプラットフォーム装置20を介してAPIを呼び出す機能と、APIを直接呼び出す機能と、を両方とも備えてもよい。
The
クライアントアプリケーション10aからAPIプラットフォーム装置20を介して呼び出し可能なAPI31~36の各々は、クライアントアプリケーション10aに対して所定の機能またはサービスを提供する。例えば、API31~36は、監査アプリケーションソフトウェアに対して、一致するはずの2つの数値が一致するかを検証する突合(バウチング)、画像データのテキスト部分を認識しデジタルの文字データに変換するOCR(Optical Character Recognition)、会計データの機械学習による分析、及びこれら以外の機能を提供してもよい。本明細書においては、API31,33、35がOCR機能を提供し、API32、34、36が突合機能を提供するものとしてAPI提供システム1の説明を行う。
Each of the APIs 31-36 that can be called from the
図示の実施形態において、API31~36は、オフプレミス環境、すなわちオンプレミス環境5の外に配置されている。具体的には、API31、32はベンダー環境Aに配置され、API33はベンダー環境Bに配置され、API34はベンダー環境Cに配置され、API35、36はベンダー環境Dに配置されている。ベンダー環境A~Dの各々には、ベンダーA~Dによってそれぞれ管理されている情報機器が配置されている。各ベンダー環境から公開されているAPIは、当該ベンダー環境に配置されている情報機器によって実行される。例えば、API31は、ベンダー環境A内にあるため、ベンダー環境Aに配置された不図示のプロセッサによって実行される。API31~36によって処理されるデータ及び/又は処理されたデータは、各ベンダー環境に配置されているストレージに記憶されてもよいし、外部ストレージ41、42等の外部ストレージに記憶されてもよい。各ベンダーは、自らの情報セキュリティポリシーに基づいて、外部ストレージ41、42等の外部ストレージを利用するか否かを決めることができる。図示の実施形態では、ベンダー環境Aが外部ストレージ41を利用し、ベンダー環境Dが外部ストレージ42を利用している。他方、ベンダー環境B、ベンダー環境Cは、外部ストレージを利用していない。よって、ベンダー環境Bで実行されるAPI33で処理されるデータ及びAPI33が処理したデータは、ベンダー環境B内のストレージに保存され、ベンダー環境Cで実行されるAPI34で処理されるデータ及びAPI34が処理したデータは、ベンダー環境C内のストレージに保存される。
In the illustrated embodiment, the APIs 31 - 36 are located outside the off-premises environment, ie the on-premises environment 5 . Specifically,
ベンダー環境A~Dの各々は、APIゲートウェイを備えてもよい。APIゲートウェイは、クライアントアプリケーション10a及びその他のクライアントアプリケーションに対してエンドポイントを提供する。また、APIゲートウェイは、API提供システム1においてリバースプロキシとして機能する。よって、APIゲートウェイは、クライアントアプリケーションからの処理リクエストをバックエンドのAPIに渡し、APIからのレスポンスをリクエスト元のクライアントアプリケーションに返すことができる。さらに、APIゲートウェイは、自らを通じて公開されるAPIの各々に対して、APIキー認証、トラフィック制御、及びこれら以外の公知のAPIゲートウェイの機能を提供することができる。
Each of vendor environments AD may include an API gateway. The API gateway provides endpoints for
API31~36は、API提供システム1に適用可能なAPIの例である。API提供システム1は、API31~36よりも多い数のAPIを備えてもよく、API31~36より少ない数のAPIを備えてもよい。オンプレミス環境5に対してオフプレミス環境となる環境は、ベンダー環境A~Dには限られない。オンプレミス環境5は、より多い数の又はより少ない数のベンダー環境とネットワーク40を介して接続されてもよい。
APIプラットフォーム装置20は、クライアントアプリケーション10aからの処理リクエストで処理要求がなされている処理対象データセットに設定された秘密度に応じて当該処理リクエストを処理させるAPIを選択する機能、及びこれら以外の機能をクライアントアプリケーション10aに対して提供することができる。
The
図2をさらに参照してAPIプラットフォーム装置20について説明する。図2は、APIプラットフォーム装置20を示すブロック図である。図示のように、APIプラットフォーム装置20は、プロセッサ21、メモリ22、ユーザインタフェース23、通信インタフェース24、及びストレージ25を備えている。
Further referring to FIG. 2, the
プロセッサ21は、ストレージ25又はそれ以外のストレージからオペレーティングシステムやそれ以外の様々なプログラムをメモリ22にロードし、ロードしたプログラムに含まれる命令を実行する演算装置である。プロセッサ21は、例えば、CPU、MPU、DSP、GPU、これら以外の各種演算装置、又はこれらの組み合わせである。プロセッサ11は、ASIC、PLD、FPGA、MCU等の集積回路により実現されてもよい。後述するように、API管理プログラム25bに含まれる命令もプロセッサ21により実行される。 The processor 21 is an arithmetic device that loads an operating system and various other programs from the storage 25 or other storage into the memory 22 and executes instructions included in the loaded programs. The processor 21 is, for example, a CPU, MPU, DSP, GPU, various arithmetic units other than these, or a combination thereof. The processor 11 may be realized by integrated circuits such as ASIC, PLD, FPGA, and MCU. Instructions included in the API management program 25b are also executed by the processor 21, as will be described later.
メモリ22は、プロセッサ21が実行する命令及びそれ以外の各種データを格納するために用いられる。メモリ22は、プロセッサ21が高速にアクセス可能な主記憶装置(メインメモリ)である。メモリ22は、例えば、DRAMやSRAM等のRAMによって構成される。 The memory 22 is used to store instructions executed by the processor 21 and various other data. The memory 22 is a main storage device (main memory) that the processor 21 can access at high speed. The memory 22 is composed of a RAM such as a DRAM or an SRAM, for example.
ユーザインタフェース23は、ユーザの入力を受け付ける入力インタフェースと、プロセッサ11の制御により様々な情報を出力する出力インタフェースと、を備える。入力インタフェースは、例えば、キーボード、マウス等のポインティングデバイス、タッチパネル、又は前記以外のユーザの入力を入力可能な任意の情報入力装置である。出力インタフェースは、例えば、液晶ディスプレイ、表示パネル、又は前記以外のプロセッサ21の演算結果を出力可能な任意の情報出力装置である。 The user interface 23 includes an input interface that receives user input and an output interface that outputs various information under the control of the processor 11 . The input interface is, for example, a keyboard, a pointing device such as a mouse, a touch panel, or any other information input device capable of inputting a user's input. The output interface is, for example, a liquid crystal display, a display panel, or any other information output device capable of outputting the computation results of the processor 21 .
通信インタフェース24は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装される。ユーザ端末10は、通信インタフェース24を介して、ベンダー環境A~Dに配置されている情報機器及びオンプレミス環境5内に配置されている情報機器とデータを送受信することができる。 Communication interface 24 is implemented as hardware, firmware, or communication software such as TCP/IP drivers or PPP drivers, or a combination thereof. The user terminal 10 can transmit and receive data to and from the information equipment arranged in the vendor environments A to D and the information equipment arranged in the on-premises environment 5 via the communication interface 24 .
ストレージ25は、プロセッサ21によりアクセスされる外部記憶装置である。ストレージ25は、例えば、磁気ディスク、光ディスク、半導体メモリ、又はデータを記憶可能な前記以外の各種記憶装置である。ストレージ25には、API管理データ25a、API管理プログラム25b、及びこれら以外の様々なデータが格納され得る。 Storage 25 is an external storage device accessed by processor 21 . The storage 25 is, for example, a magnetic disk, an optical disk, a semiconductor memory, or various other storage devices capable of storing data. The storage 25 can store API management data 25a, an API management program 25b, and various other data.
API管理データ25aは、API提供システム1において利用されるAPIを管理するための様々なデータを含むデータセットである。API管理データ25aについて、さらに図3を参照して説明する。API管理データ25aにおいては、APIを提供するベンダーを識別するベンダーIDに、当該ベンダーに関するデータ、及び、当該ベンダーが提供する一又は複数のAPIに関するデータが関連付けられる。図3に示されている実施形態において、API管理データ25aは、ベンダーに関するデータ項目として「ベンダー名」を含んでおり、当該ベンダーが提供するAPIに関するデータ項目として、各APIの「API名」、「提供機能」、「セキュリティレベル」、「応答性」、及び「コスト」を含んでいる。API管理データ25aの各データ項目のデータ値は、数値データ、テキストデータ、又はこれらの組み合わせであってもよい。 The API management data 25a is a data set containing various data for managing APIs used in the API providing system 1 . The API management data 25a will be further described with reference to FIG. In the API management data 25a, a vendor ID that identifies a vendor that provides an API is associated with data related to the vendor and data related to one or more APIs provided by the vendor. In the embodiment shown in FIG. 3, the API management data 25a includes "vendor name" as a data item related to the vendor, and "API name" of each API as data items related to the API provided by the vendor. Includes "provided functions", "security level", "responsiveness", and "cost". The data value of each data item of the API management data 25a may be numerical data, text data, or a combination thereof.
「ベンダー名」は、ベンダーの名称を示すテキストデータである。図3の例では、ベンダーID「001」と対応付けて、ベンダー環境Aを提供する「ベンダーA」がベンダー名として格納されている。同様に、ベンダーID「002」~「004」の各々と対応付けて、ベンダー環境B~ベンダー環境Dをそれぞれ提供する「ベンダーB」~「ベンダーD」がそれぞれベンダー名として格納されている。 "Vendor name" is text data indicating the name of the vendor. In the example of FIG. 3, "vendor A" that provides vendor environment A is stored as the vendor name in association with the vendor ID "001". Similarly, "vendor B" to "vendor D" providing vendor environment B to vendor environment D are stored as vendor names in association with vendor IDs "002" to "004", respectively.
上記のとおり、API管理データ25aにおいては、各ベンダーのベンダーIDと対応付けて、各ベンダーから公開されているAPIに関する情報が格納される。図1を参照して説明したとおり、ベンダーAは、ベンダー環境AにおいてOCR機能を提供するAPI31と突合機能を提供するAPI32を公開しているため、ベンダーAのベンダーID「001」と対応付けて、ベンダーAが公開しているAPIのAPI名として「API31」及び「API32」が格納されている。他のベンダー及びオンプレミス環境5についても同様に、各ベンダー及びオンプレミス環境5から公開されているAPIのAPI名がベンダーIDと対応付けて格納されている。
As described above, the API management data 25a stores information about APIs published by each vendor in association with the vendor ID of each vendor. As described with reference to FIG. 1, Vendor A publishes
「提供機能」は、APIが提供する機能を示すためのデータ項目である。提供機能のデータ値は、機能を示すテキストデータ又は機能を特定する機能IDがデータ値であってもよい。図示の例では、「提供機能」に、「OCR」(Optical Character Recognition)及び「突合」が含まれている。既述のとおり、API管理データ25aにおいてAPIによって提供される機能は、OCRと突合には限られない。したがって、API管理データ25aの提供機能の項目には、OCR及び突合以外のデータが含まれ得る。 "Provided function" is a data item for indicating the function provided by the API. The data value of the provided function may be text data indicating the function or a function ID specifying the function. In the illustrated example, the “provided functions” include “OCR” (Optical Character Recognition) and “match”. As described above, the functions provided by the API in the API management data 25a are not limited to OCR and matching. Therefore, the items of functions provided in the API management data 25a may include data other than OCR and matching.
「セキュリティレベル」は、APIごとに、そのAPIに設定されたセキュリティレベルを表すためのデータ項目である。図示の例では、セキュリティレベルのデータ値が「高」と「低」の二段階で表されている。セキュリティレベルは、三段階以上に分けて分類されてもよい(例えば、「高」、「中」、「低」等)し、セキュリティの高さをスコアで表したデータであってもよい。各APIに対応付けられるセキュリティレベルは、例えば、10点満点で当該APIのセキュリティの高さを示してもよい。セキュリティレベルは、ベンダーごとに定められてもよい。例えば、ベンダーがISO/IEC 27001:2005に基づく認証又はそれに対応する日本国内のJIS Q 27001:2006に基づく認証を受けている場合に、当該ベンダーから提供されるAPIのセキュリティレベルを「高」に設定し、これらの認証を受けていないベンダーから提供されるAPIのセキュリティレベルを「低」に設定してもよい。あるベンダーから提供されているAPIのセキュリティレベルを決定する際に、当該APIが当該ベンダーから見てオフプレミスにあるストレージを利用している場合に、当該APIのセキュリティレベルを低く設定してもよい。ただし、あるベンダーが提供するAPIが処理データの格納のために外部ストレージを利用していても、当該ベンダーがISO/IEC 27017:2015に基づくISMSクラウドセキュリティ認証を受けていれば、当該APIのセキュリティレベルを高く設定してもよい。あるベンダーとAPIプラットフォーム装置20との通信における暗号化の強度が高いほどそのベンダーが提供するAPIのセキュリティレベルを高く設定してもよい。準同型暗号やMPC(Multi Party Computation)などの秘密計算の技術を用いることでAPIの処理が秘匿された状態で行われる場合は、そうでない場合よりも当該APIのセキュリティレベルを高く設定してもよい。このように、あるベンダーから提供されるAPIのセキュリティレベルは、当該ベンダーがISO/IEC 27001:2005に基づく認証を受けているか否か、当該APIが当該ベンダーにとってのオフプレミス環境にある外部ストレージを処理データの格納に利用しているか否か、当該ベンダーがISO/IEC 27017:2015に基づくISMSクラウドセキュリティ認証を受けているか否か、当該ベンダーに係る情報流出や情報漏洩などのインシデントの有無、当該ベンダーとの通信や処理の秘匿性、及びこれら以外の様々な要素に基づいて設定され得る。APIのセキュリティレベルは、例えば、APIプラットフォーム装置20の運営者が定める基準に従って当該APIを評価することにより設定される。あるAPIについてセキュリティレベルが一度設定された後であっても、当該APIの情報セキュリティに影響を与える変更があった場合には当該セキュリティレベルは変更され得る。APIの情報セキュリティに影響を与える変更には、当該APIの仕様の変更、当該APIを提供するベンダーが新たに情報セキュリティ認証を受けたこと、当該APIを提供するベンダーに対する情報セキュリティ認証が取り消されたこと、及びこれら以外のAPIの情報セキュリティに影響を与える様々な変更が含まれ得る。
"Security level" is a data item for representing the security level set for each API. In the illustrated example, the data value of the security level is represented by two levels of "high" and "low". The security level may be classified into three or more levels (for example, "high", "medium", "low", etc.), and may be data representing the level of security as a score. The security level associated with each API may indicate the level of security of the API on a scale of 10, for example. A security level may be defined for each vendor. For example, if the vendor has received certification based on ISO/IEC 27001:2005 or the corresponding certification based on JIS Q 27001:2006 in Japan, setting the security level of the API provided by the vendor to "high" and set the security level of APIs provided by these uncertified vendors to "low". When determining the security level of an API provided by a certain vendor, if the API uses off-premise storage from the vendor's perspective, the security level of the API may be set low. However, even if an API provided by a vendor uses external storage to store processed data, if the vendor has received ISMS cloud security certification based on ISO/IEC 27017:2015, the security of the API You can set the level higher. The higher the encryption strength in the communication between a certain vendor and the
セキュリティレベルは、ベンダーごとに設定されてもよく、APIごとに設定されてもよい。図3に示されている例では、ベンダーA~ベンダーCについては、ベンダーごとセキュリティレベルが設定されており、ベンダーDについてはAPIごとにセキュリティレベルが設定されている。具体的には、ベンダーAの2つのAPI31、32はいずれもセキュリティレベルが「低」とされているが、ベンダーDが公開しているAPIのうちAPI35についてはセキュリティレベルが「高」に設定されている一方で、API36についてはセキュリティレベルが「低」に設定されている。例えば、API35がベンダー環境D内に処理データを格納する一方でAPI36が処理データをベンダー環境Dの外部にあるストレージ(例えば、ストレージ42)に格納する場合に、API35についてセキュリティレベルを「高」に設定する一方でAPI36についてセキュリティレベルを「低」に設定してもよい。
A security level may be set for each vendor or may be set for each API. In the example shown in FIG. 3, for Vendor A to Vendor C, the security level is set for each vendor, and for Vendor D, the security level is set for each API. Specifically, the security levels of the two
APIの「応答性」は、APIの応答速度を示すデータ項目である。APIの応答性は、当該APIを呼び出してから正しいレスポンス(エラーではないレスポンス)を受けるまでの応答時間に基づいて定められ得る。図示の実施形態において、APIの応答性は、「高」、「中」、「低」の三段階で評価されており、その評価結果が「応答性」の項目のデータ値とされている。APIの応答性は、二段階で評価されてもよく、四段階以上に分けて評価されてもよい。APIの応答性は、APIの応答時間を正規化した値であってもよい。 "Responsiveness" of API is a data item indicating the response speed of API. The responsiveness of an API can be defined based on the response time from calling the API to receiving a correct response (non-error response). In the illustrated embodiment, API responsiveness is evaluated in three levels of "high", "medium", and "low", and the evaluation result is the data value of the item "responsiveness". API responsiveness may be evaluated in two stages, or may be evaluated in four or more stages. The API responsiveness may be a value obtained by normalizing the API response time.
APIの「コスト」は、当該APIを利用するために支払う費用についての評価示すデータ項目である。図示の実施形態では、APIのコストは、「高い」、「中」、「安い」の三段階で評価されており、その評価結果がコストのデータ項目のデータ値として格納されている。APIは、ベンダーの収益のために有償で公開される場合もあるし、無償で公開される場合もある。例えば、無償で公開されているAPIや、利用料金を支払わずに利用できるAPIについては、コストを「安い」と評価することができる。有償で公開されているAPIについては、支払いが必要な金額に応じて、「高い」、「中」、「安い」のいずれかの評価が与えられ、このようにして与えられた評価が「コスト」の項目のデータ値として設定される。APIのコストは、二段階で評価されてもよく、四段階以上に分けて評価されてもよい。APIのコストは、APIを利用するために支払う金額を正規化した値であってもよい。 "Cost" of API is a data item indicating an evaluation of the cost to be paid for using the API. In the illustrated embodiment, the API cost is evaluated in three levels of "high", "medium", and "low", and the evaluation result is stored as the data value of the cost data item. APIs may be published for a fee for the vendor's revenue, or they may be published for free. For example, an API that is open to the public free of charge or an API that can be used without paying a usage fee can be evaluated as having a "cheap" cost. APIs published for a fee are given a rating of "high", "medium", or "cheap" depending on the amount of money that needs to be paid. ” is set as the data value of the item. The API cost may be evaluated in two stages, or may be evaluated in four or more stages. The API cost may be a normalized value of the amount paid for using the API.
図3に示されているAPI管理データ25aは例示であり、API提供システム1において使用可能なAPI管理データ25aは、図3に示されているものには限られない。API管理データ25aは、図3に示されているデータ項目の一部を含まなくてもよいし図3に記載されていないデータ項目を含んでもよい。例えば、API管理データ25aは、「応答性」及び「コスト」以外に、APIが利用するストレージに関するデータ項目を含んでもよい。API管理データ25aに含められるAPIが利用するストレージに関するデータ項目には、当該APIが利用するストレージの信頼性及び当該ストレージが設置されている設置国を含めることができる。例えば、ベンダーAは、外部のストレージ41を利用しているため、ベンダー環境Aのストレージとストレージ41とを組み合わせることにより、ストレージを冗長化することが可能である。このようにAPIの処理データを保存するストレージの冗長化が図られている場合に、当該APIのストレージの信頼性が高いと判断することができる。また、APIの処理データを保存するストレージに使用しているRAIDのレベルに応じてストレージの信頼性を評価することができる。例えば、RAID-6を使用している場合に、ストレージの信頼性が高いと評価することができる。ストレージの設置国としては、例えば、日本、米国、豪州、中国、及びこれら以外の国または地域がデータ値として設定される。
The API management data 25a shown in FIG. 3 is an example, and the API management data 25a that can be used in the API providing system 1 is not limited to that shown in FIG. The API management data 25a may not include some of the data items shown in FIG. 3, or may include data items not shown in FIG. For example, the API management data 25a may include data items related to storage used by the API, in addition to "responsiveness" and "cost". The data items related to the storage used by the API included in the API management data 25a can include the reliability of the storage used by the API and the installation country where the storage is installed. For example, since Vendor A uses an
API管理データ25aに含められているAPIに関するデータ項目のデータ値は、例えばAPIプラットフォーム装置20の運営者によって設定される。例えば、APIのコストは、APIプラットフォーム装置20の運営者がAPIごとに利用料金を調査することで評価を定めることができる。
Data values of data items related to APIs included in the API management data 25a are set by the operator of the
API提供システム1において、データの格納場所には特段の制限はない。例えば、ストレージ25に記憶され得る各種データは、オンプレミス環境5内又はオンプレミス環境5外のAPIプラットフォーム装置20とは物理的に別体のストレージやデータベースサーバに格納されてもよい。ただし、クライアントアプリケーション10aがオフプレミス環境に送信することができないデータを取り扱っている場合には、当該データは、オンプレミス環境5内のストレージに格納される。図2においては、ストレージ25が単一のユニットとして図示されているが、ストレージ25は、複数の物理的に別体のストレージが集合したものであってもよい。つまり、本明細書において、ストレージ25に記憶されるデータは、単一のストレージに記憶されてもよいし、複数のストレージに分散して記憶されてもよい。また、本明細書及び特許請求の範囲において、単に「ストレージ」という場合には、文脈上許される限り、単一のストレージと複数のストレージの集合のいずれを指し示すこともある。API管理プログラム25bは、ストレージ25以外にも様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)に格納され得る。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例には、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、Compact Disc Read Only Memory(CD-ROM)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、Programmable ROM(PROM)、Erasable PROM(EPROM)、フラッシュROM、Random Access Memory(RAM))を含む。
In the API providing system 1, there are no particular restrictions on where data is stored. For example, various data that can be stored in the storage 25 may be stored in a storage or database server that is physically separate from the
続いて、APIプラットフォーム装置20の機能について説明する。APIプラットフォーム装置20のプロセッサ21は、API管理プログラム25bに含まれる命令及び必要に応じてそれ以外の命令を実行することにより、リクエスト受信部21a、API選択部21b、リクエスト送信部21c、レスポンス受信部21d、及びレスポンス送信部21eとして機能する。本明細書において、プロセッサ21によって実行されるとして説明されるプログラム又は当該プログラムに含まれる命令は、単一のコンピュータプロセッサで実行されてもよいし、複数のコンピュータプロセッサにより分散して実行されてもよい。また、プロセッサ21によって実行されるプログラム又は当該プログラムに含まれる命令は、複数の仮想コンピュータプロセッサにより分散して実行されてもよい。ただし、上述したように、クライアントアプリケーション10aがオフプレミス環境に送信することができないデータを取り扱っている場合には、当該データは、オンプレミス環境5内のプロセッサによって処理され、オフプレミス環境のプロセッサによる分散処理は行われない。
Next, functions of the
リクエスト受信部21aは、クライアントアプリケーション10aから送信された処理リクエストを受信する。図4は、処理リクエストの一例を模式的に示すデータ構造図である。処理リクエストは、ヘッダ部51と、ボディ部52と、を有する。クライアントアプリケーション10aから送信される処理リクエストのヘッダ部51には、処理対象データセットに設定された少なくとも一つの秘密度を表す秘密区分情報と、当該処理対象データセットを処理すべきAPIの機能を特定する機能IDと、が含まれる。
The request receiving unit 21a receives a processing request transmitted from the
処理対象データセットは、クライアントアプリケーション10aで利用されている様々なデータのうち、APIでの処理のためにAPIに受け渡されるデータセットである。処理リクエストにおいては、処理対象データセットに含められるファイルのファイル名が指定されてもよい。処理対象データセットは、PDF、CSV、JSON及びこれら以外の公知の形式の一又は複数のファイルを含むことができる。処理対象データセットは、処理リクエストのボディ部に含められて、処理リクエストとともにAPIに送信されてもよいし、処理リクエストにおいて指定された格納場所からAPIによって取得されてもよい。
The data set to be processed is a data set passed to the API for processing by the API among various data used by the
処理対象データセットには、一又は複数の秘密度が設定される。処理対象データセットの秘密度は、情報セキュリティの国際規格であるISO27001(JISQ27001)に従って区分されてもよい。ISO27001(JISQ27001)では、「極秘」、「秘」、「社外秘」、「一般」の4区分に情報が分類されている。処理対象データセットの秘密度は、この4区分に従って設定されてもよい。処理対象データセットの秘密度の設定は、クライアントアプリケーション10aのユーザによってなされてもよい。処理対象データセット全体に一つの秘密度が設定されてもよいし、処理対象データセットに含まれる単位データセット(例えば、ファイル)ごとに秘密度が設定されてもよい。処理対象データセットに含まれるファイルごとに秘密度が設定される場合には、処理リクエストには、ファイル名と対応付けてそのファイルに設定された秘密度が含められてもよい。あるいはまた、処理対象データセットの秘密度は、当該処理対象データセットの送信元のクライアントアプリケーション10aに応じた値に設定されてもよい。この場合、クライアントアプリケーション10aから送信される処理リクエストに含まれる処理対象データセットは全て同じ秘密度を有する一方、別のクライアントアプリケーションから送信される処理リクエストに含まれる処理対象データセットは前記秘密度とは異なる秘密度を有しうる。例えば、企業内で使用する業務用アプリケーションから送信される処理リクエストに含まれる処理対象データセットの秘密度は一様に「極秘」に設定される一方、業務用アプリケーション以外のアプリケーション(例えば、個人が使用するSNSアプリケーション、ゲームアプリケーション)から送信される処理リクエストに含まれる処理対象データセットの秘密度は一様に「一般」に設定されてもよい。あるいはまた、処理対象データセットの秘密度は当該処理対象データセットの送信元のユーザに応じた値に設定されてもよい。この場合、ユーザAがクライアントアプリケーション10aを用いて送信する処理リクエストに含まれる処理対象データセットは全て同じ秘密度を有する一方、別のユーザBがクライアントアプリケーション10aを用いて送信する処理リクエストに含まれる処理対象データセットは前記秘密度とは異なる秘密度を有しうる。例えば、監査法人がクライアントアプリケーション10aを用いて送信する処理リクエストに含まれる処理対象データセットは一様に「極秘」に設定される一方、一般企業の内部監査担当がクライアントアプリケーション10aを用いて送信する処理リクエストに含まれる処理対象データセットの秘密度は一様に「社外秘」に設定されてもよい。
One or more degrees of confidentiality are set for the data set to be processed. The confidentiality of the data set to be processed may be classified according to ISO27001 (JISQ27001), which is an international standard for information security. ISO27001 (JISQ27001) classifies information into four categories: "top secret", "confidential", "confidential", and "general". The confidentiality of the data set to be processed may be set according to these four divisions. A user of the
処理リクエストに含まれる機能IDは、その処理リクエストに含まれる又はその処理リクエストで特定されている処理対象データセットに対してどのような処理が行われるかを特定する識別子である。機能IDにより、処理対象データセットを受け取ったAPIがどのような機能を提供すべきかを特定することができる。上記のとおり、API提供システム1に含まれる各APIが突合又はOCRのいずれかの機能を提供する場合には、機能IDは、突合又はOCRのいずれかを識別する。API提供システム1において公開されるAPIがより多くの機能を提供する場合には、それに応じて機能IDが拡張される。つまり、機能IDは、3種類以上のAPIにより提供されるべき機能を識別することができるように設計されてもよい。機能IDは、例えば、APIプラットフォーム装置20の運営者がAPI提供システム1において公開されている複数のAPIの仕様に基づいてAPIの機能を評価し、その評価に応じて各APIに割り当てられてもよい。
The function ID included in the processing request is an identifier specifying what kind of processing is to be performed on the processing target data set included in the processing request or specified in the processing request. With the function ID, it is possible to specify what function should be provided by the API that received the data set to be processed. As described above, when each API included in the API providing system 1 provides either matching or OCR functions, the function ID identifies either matching or OCR. When the API published in the API providing system 1 provides more functions, the function ID is extended accordingly. That is, the function ID may be designed to identify functions to be provided by three or more APIs. The function ID may be assigned to each API according to the evaluation, for example, by the operator of the
図2に戻り、API選択部21bは、クライアントアプリケーション10aから受信した処理リクエストに基づいて、API提供システム1において公開されている複数のAPIの中から、当該処理リクエストに含まれる処理対象データセットを処理させるAPIを選択する。本明細書では、API選択部21bによって選択されるAPIを「実行API」と呼ぶことがある。図1に示されている実施形態では、API提供システム1においてAPI31~36が公開されているので、API選択部21bは、API31~36の中から実行APIを選択する。
Returning to FIG. 2, based on the processing request received from the
本発明の一実施形態において、API選択部21bは、処理リクエストに含まれている機能ID及び秘密区分情報に基づいて実行APIを選択することができる。API選択部21bは、例えば、処理リクエストに含まれている機能IDに基づいて要求されている機能を特定し、API管理データ25aを参照して特定された機能を提供するAPIを抽出し、その抽出されたAPIのうち処理リクエストに含まれている秘密区分情報により特定される秘密度に適合するAPIを実行APIとして選択する。つまり、処理リクエストに含まれる機能IDにより特定される機能を提供し、且つ、秘密区分情報で指定される秘密度に適合するセキュリティレベルを有するAPIが実行APIとして選択され得る。 In one embodiment of the present invention, the API selector 21b can select an execution API based on the function ID and security classification information included in the processing request. The API selection unit 21b, for example, identifies the requested function based on the function ID included in the processing request, refers to the API management data 25a, extracts an API that provides the identified function, and Among the extracted APIs, an API that matches the degree of secrecy specified by the secrecy classification information included in the processing request is selected as the execution API. That is, an API that provides the function specified by the function ID included in the processing request and has a security level that matches the degree of confidentiality specified by the security classification information can be selected as the execution API.
APIのセキュリティレベルが秘密区分情報で指定される秘密度に適合するかを判断する適合判断基準には少なくとも以下の2つの基準がある。API提供システム1においては、いずれの基準が採用されてもよい。 There are at least the following two criteria for determining whether the API security level conforms to the degree of secrecy specified by the security classification information. Any criteria may be adopted in the API providing system 1 .
適合判断基準の第1の例においては、APIのセキュリティレベルの各々は、各セキュリティレベルに適合する秘密度の上限を指定する。例えば、APIのセキュリティレベル「高」は、セキュリティレベル「高」に適合する秘密度の上限として「極秘」を指定し、セキュリティレベル「低」は、セキュリティレベル「低」に適合する秘密度の上限として「一般」を指定することができる。この場合、API選択部21bは、セキュリティレベルとして「高」が設定されているAPIは、セキュリティレベル「高」が指定する上限の「極秘」と同じかそれより低い秘密度(秘密度が高い方から順に「極秘」、「秘」、「社外秘」及び「一般」の4段階に分けられている場合には、「極秘」及び「極秘」よりも秘密度が低い「秘」、「社外秘」及び「一般」)の秘密度に適合し、また、セキュリティレベルとして「低」が設定されているAPIは、セキュリティレベル「低」が指定する「一般」と同じかそれよりも低い秘密度(上記の4段階の例においては、「一般」の秘密度のみ)に適合すると判断することができる。このように、適合判断基準の第1の例においては、秘密区分情報で指定される秘密度が、その秘密度に適合するAPIのセキュリティレベルの下限を指定する。 APIのセキュリティレベルが高い方から順に、「最高」、「高」、「中」、「低」の4区分に分類される別の例では、セキュリティレベルと秘密度との対応関係は、例えば以下の表1のように設定することが可能である。
適合判断基準の第2の例においては、秘密度の各々に対してAPIのセキュリティレベルが特定可能なように対応付けられる。この場合、複数の秘密度が一つのセキュリティレベルと対応付けられていてもよいし、各秘密度とAPIのセキュリティレベルとの対応は、1対1に対応付けられていてもよい。前者の例として、「極秘」、「秘」、及び「社外秘」の3つの秘密度の各々がセキュリティレベル「高」と対応付けられ、「一般」の秘密度がセキュリティレベル「低」と対応付けられる設定が挙げられる。この場合、API選択部21bは、セキュリティレベルとして「高」が設定されているAPIが「極秘」、「秘」、及び「社外秘」の秘密度に適合し、セキュリティレベルとして「低」が設定されているAPIが「一般」の秘密度に適合すると判断することができる。後者の例として、秘密度が「極秘」、「秘」、「社外秘」、及び「一般」の4段階に区分されている場合に、APIのセキュリティレベルも「最高」、「高」、「中」、「低」の4区分に分類し、「極秘」、「秘」、「社外秘」、及び「一般」の秘密度の各々が「最高」、「高」、「中」、「低」のセキュリティレベルとそれぞれ1対1に対応付けられる設定が挙げられる。 In a second example of the conformance criterion, each confidentiality is associated with an API security level in a identifiable manner. In this case, a plurality of degrees of confidentiality may be associated with one security level, or each degree of confidentiality may be associated with the security level of the API on a one-to-one basis. As an example of the former, each of the three degrees of confidentiality, "top secret," "confidential," and "confidential," is associated with a security level of "high," and the degree of "general" is associated with a security level of "low." settings. In this case, the API selection unit 21b determines that the API whose security level is set to "high" conforms to the degree of secrecy of "top secret", "confidential", and "confidential", and that the security level is set to "low". It can be determined that the API that is being used meets the "general" sensitivity. As an example of the latter, when the confidentiality is classified into four levels of "top secret", "confidential", "confidential" and "general", the API security level is also "highest", "high" and "medium". , ”, ”Low”, and ”Highest”, ”High”, ”Medium” and ”Low” for ”Highest”, ”High”, ”Medium” and ”Low”. There are settings that are associated one-to-one with security levels.
処理リクエストに含まれる機能IDにより特定される機能を提供し、且つ、秘密区分情報で指定される秘密度に適合するセキュリティレベルを有するAPIが複数存在する場合には、その複数のAPIの各々を候補APIとし、この複数の候補APIの中から所定の基準に従って実行APIが選択される。例えば、クライアントアプリケーション10aから受信される処理リクエストは、実行APIの選択時に重視すべき項目を定めた希望条件情報を含んでもよく、API選択部21bは、この希望条件情報に基づいて複数の候補APIの中から実行APIを選択してもよい。希望条件情報は、実行APIの選択時に重視されるべき項目として、API管理データ25aのデータ項目(例えば、応答性、コスト、ストレージ信頼性、ストレージの設置国、又はこれら以外のAPI管理データ25aのデータ項目)の一又は複数を指定することができる。希望条件情報は、処理リクエストとは別にAPIプラットフォーム装置20に通知されてもよい。例えば、クライアントアプリケーション10aのユーザは、処理リクエストの送信前に、APIプラットフォーム装置20が提供する登録フォームを利用して希望条件情報を登録することができる。
If there are multiple APIs that provide the function specified by the function ID included in the processing request and have a security level that conforms to the degree of confidentiality specified by the classification information, each of the multiple APIs As candidate APIs, an execution API is selected from among the plurality of candidate APIs according to a predetermined criterion. For example, the processing request received from the
図3に示されている実施形態に従って、実行APIの選択の幾つかの具体例を説明する。第1の例においては、クライアントアプリケーション10aから受信した処理リクエストにおいて機能IDが「OCR」を指定しており、秘密度が「極秘」に設定されており、希望条件情報に「コスト」が設定されていることを想定する。この場合、API選択部21bは、API31~36の中からOCRを提供するAPIとしてAPI31、33,35を抽出する。次に、API選択部21bは、OCRを提供するAPI31、33,35の中から、秘密区分情報で指定されている「極秘」の秘密度に適合するAPIを候補APIとして選択する。図3に示されているAPI管理データ25aにおいては、OCRを提供するAPIのうち、API33、35の2つについてセキュリティレベルが「高」に設定されているので、このAPI33、35が候補APIとして選択される。次に、希望条件情報によって「コスト」を重視することが指定されているので、候補APIであるAPI33、35のうちコストが「高い」と設定されているAPI33ではなく、コストが「中」と設定されているAPI35が実行APIとして選択される。
Some specific examples of execution API selection are described according to the embodiment shown in FIG. In the first example, in the processing request received from the
第2の例においては、クライアントアプリケーション10aから受信した処理リクエストにおいて機能IDが「OCR」を指定しており、秘密度が「一般」に設定されており、希望条件情報に「コスト」が設定されていることを想定する。この場合、API選択部21bは、API31~36の中からOCRを提供するAPIとしてAPI31、33,35を抽出する。次に、API選択部21bは、OCRを提供するAPI31、33,35の中から、秘密区分情報で指定されている「一般」の秘密度に適合するAPIを候補APIとして選択する。図3に示されているAPI管理データ25aにおいては、OCRを提供するAPIのうち、API31についてセキュリティレベルが「低」に設定されているので、このAPI31が候補APIとして選択される。選択された候補APIは一つなので、この候補API31が実行APIとして選択される。
In the second example, in the processing request received from the
第1の例と第2の例との比較により、「OCR」という同じ機能の実行を要求する処理リクエストを受信した場合であっても、当該処理リクエストに設定されている処理対象データセットの秘密度によって選択される実行APIが異なることが理解される。このように、APIプラットフォーム装置20は、データの秘密度に応じて外部のAPIを選択することができる。
By comparing the first example and the second example, even if a processing request requesting execution of the same function of "OCR" is received, the confidentiality of the processing target data set set in the processing request It is understood that the selected execution API differs depending on the degree. Thus, the
第3の例においては、処理対象データセットに複数の秘密度が設定されている例を説明する。例えば、2つのファイルの突合が要求される場合には、2つのファイルの秘密度が異なる可能性がある。具体的には、取引の証憑をスキャンして作成したPDFファイルに含まれるデータとその取引を記録した表計算ソフトのファイル(以下、「表計算ファイル」という。)に含まれるデータとを突合する場合、証憑から作成されたPDFファイルには「極秘」の秘密度が設定され、表計算ファイルには「一般」の秘密度が設定されることがある。このような「極秘」の秘密度が設定されたファイルのデータと「一般」の秘密度が設定されたファイルのデータとの突合を行うことを要求する処理リクエストをクライアントアプリケーション10aから受信すると、API選択部21bは、処理対象データセットに設定された互いに異なる2つの秘密度のうち高い方の秘密度に基づいて実行APIを選択する。上記の例では、処理対象データセットの一部(証憑のPDFファイル)に「極秘」の秘密度が設定されているため、API選択部21bは、API提供システム1において公開されているAPIのうちセキュリティレベルが「高」に設定されているAPIを実行APIとして選択する。
In the third example, an example in which multiple degrees of sensitivity are set for the data set to be processed will be described. For example, if a match of two files is requested, the two files may have different sensitivities. Specifically, the data included in the PDF file created by scanning the transaction evidence is compared with the data included in the spreadsheet software file (hereinafter referred to as "spreadsheet file") that records the transaction. In this case, a PDF file created from a voucher may be assigned a confidentiality level of "top secret", and a spreadsheet file may be assigned a confidentiality level of "general". When receiving from the
リクエスト送信部21cは、API選択部21bにより選択された実行APIを呼び出す。具体的には、リクエスト送信部21cは、実行APIに対して処理対象データセット又は処理対象データセットの格納場所を指定する処理データ特定情報をボディ部に含むAPIリクエストを送信する。APIリクエストには、OAuth等の公知の認証プロトコルによる認証のためにアクセストークンが含まれてもよい。実行APIがAPIゲートウェイを介して公開されている場合には、APIリクエストは、リクエスト送信部21cからAPIゲートウェイを介して実行APIに送信される。 The request transmission unit 21c calls the execution API selected by the API selection unit 21b. Specifically, the request transmission unit 21c transmits an API request including, in the body portion, the processing data set or the processing data specifying information designating the storage location of the processing target data set to the execution API. API requests may include access tokens for authentication by known authentication protocols such as OAuth. When the execution API is open to the public through the API gateway, the API request is transmitted from the request transmission unit 21c to the execution API through the API gateway.
レスポンス受信部21dは、レスポンス送信部21cにより実行APIに対してAPIリクエストが送信された後、当該実行APIからのレスポンスを受信する。 After the API request is transmitted to the execution API by the response transmission section 21c, the response reception section 21d receives a response from the execution API.
レスポンス送信部21eは、レスポンス受信部21dが実行APIから受け取ったレスポンスをクライアントアプリケーション10aに送信する。
The response transmission unit 21e transmits the response received from the execution API by the response reception unit 21d to the
続いて、図5を参照して、クライアントアプリケーション10aがAPIプラットフォーム装置20を介してAPIを呼び出し、APIからレスポンスを受け取る処理の流れを説明する。まず、ステップS11において、クライアントアプリケーション10aから処理リクエストが送信される。送信された処理リクエストは、例えば、APIプラットフォーム装置20のリクエスト受信部21aにおいて受信される。
Next, with reference to FIG. 5, the flow of processing in which the
次に、ステップS12において、APIプラットフォーム装置20において受信した処理リクエストが解析され、その解析に基づいて実行APIが選択される。具体的には、ステップS12において、処理リクエストに含まれる機能ID、秘密区分情報、希望条件情報、及び必要に応じて前記以外の情報に基づいて、処理リクエストを処理する実行APIが選択される。
Next, in step S12, the processing request received by the
次に、ステップS13において、ステップS12で選択された実行APIが呼び出される。例えば、ステップS12においてAPI35が実行APIとして選択された場合には、APIプラットフォーム装置20からAPI35に対して直接に又はAPI35用のAPIゲートウェイを介してAPIリクエストが送信される。実行APIを呼び出す処理は、例えば、上記のリクエスト送信部21cによって行われる。
Next, in step S13, the execution API selected in step S12 is called. For example, when the
次に、ステップS14において、実行APIからのレスポンスがAPIプラットフォーム装置20において受信される。API35が実行APIとして選択された場合には、API35において処理対象データセットがデジタルの文字データに変換され、この変換後の文字データが受信される。実行APIからのレスポンスを受信する処理は、例えば、上記のレスポンス受信部21dによって行われる。
Next, in step S14, the
次に、ステップS15において、実行APIから受け取ったレスポンスがクライアントアプリケーション10aに送信される。実行APIからのレスポンスをクライアントアプリケーション10aに送信する処理は、例えば、上記のレスポンス送信部21eによって行われる。以上のようにして、クライアントアプリケーション10aは、APIプラットフォーム装置20を介して、処理対象データセットの秘密度に応じたAPIに当該処理対象データセットに対する所望の処理を行わせ、その処理結果をレスポンスとして受け取ることができる。クライアントアプリケーション10aは、例えば、処理要求された機能が「突合」の場合には突合の結果を示すデータを受信することができ、処理要求された機能が「OCR」の場合にはOCRによってデジタル化された文字データを受信することができる。
Next, in step S15, the response received from the execution API is sent to the
続いて、図6をさらに参照して、ステップS12における実行APIの選択の流れについてより具体的に説明する。図6は、図5の実行APIを選択するステップS12における処理の流れの一例を示すフロー図である。まず、ステップS121において、API選択部21bは、処理リクエストで要求される機能を特定する。例えば、API選択部21bは、処理リクエストを解析することでそれに含まれる機能IDを特定する。 Subsequently, with further reference to FIG. 6, the flow of selection of the execution API in step S12 will be described more specifically. FIG. 6 is a flowchart showing an example of the flow of processing in step S12 for selecting an execution API in FIG. First, in step S121, the API selection unit 21b identifies the function requested by the processing request. For example, the API selector 21b identifies the function ID included in the processing request by analyzing it.
次に、ステップS122において、API選択部21bは、API管理データ25aを参照し、ステップS121で特定された機能に対応するAPIとそのセキュリティレベルとを特定する。API選択部21bは、S121で特定された機能IDに対応する提供機能を有するAPI名およびそのセキュリティレベルを、API管理データ25aから取得することができる。 Next, in step S122, the API selection unit 21b refers to the API management data 25a to identify the API corresponding to the function identified in step S121 and its security level. The API selection unit 21b can acquire the name of the API having the provided function corresponding to the function ID specified in S121 and its security level from the API management data 25a.
次に、ステップS123において、API選択部21bは、処理リクエストに含まれる処理対象データセットの秘密度を特定する。API選択部21bは、処理リクエストを解析することで、処理リクエストのヘッダ部51に含まれる秘密区分情報を取得し、取得した秘密区分情報に含まれる秘密度を特定することができる。
Next, in step S123, the API selection unit 21b specifies the confidentiality of the processing target data set included in the processing request. By analyzing the processing request, the API selection unit 21b can acquire the security classification information included in the
次に、ステップS124において、API選択部21bは、ステップS122で特定されたAPIの中から、ステップS123で特定された秘密度に適合するAPIを候補APIとして選択する。 Next, in step S124, the API selection unit 21b selects an API that matches the degree of confidentiality specified in step S123 as a candidate API from among the APIs specified in step S122.
次に、ステップS125において、API選択部21bは、ステップS124で選択された候補APIが複数あるか否かを判定する。候補APIが一つである(すなわち、複数でない)と判断された場合には、処理はステップS126に進み、ステップS126においてその一つの候補APIが実行APIとして選択される。他方、ステップS125において、候補APIが複数存在すると判断された場合には、処理はステップS127に進む。ステップS127において、API選択部21bは、複数の候補APIの中から、希望条件情報に最もマッチする候補APIを実行APIとして選択する。以上のようにして実行APIが選択される。 Next, in step S125, the API selection unit 21b determines whether or not there are multiple candidate APIs selected in step S124. If it is determined that there is one candidate API (that is, not multiple), the process proceeds to step S126, where the one candidate API is selected as the execution API. On the other hand, if it is determined in step S125 that there are multiple candidate APIs, the process proceeds to step S127. In step S127, the API selection unit 21b selects a candidate API that best matches the desired condition information from among the plurality of candidate APIs as an execution API. An execution API is selected as described above.
例えば、図3に示されている例において、処理リクエストにおいて機能IDが「OCR」を指定しており、秘密度が「極秘」に設定されており、希望条件情報に「コスト」が設定されている場合には、ステップS121において要求される機能として「OCR」が特定され、ステップS122において「OCR」を提供しているAPIとしてAPI31、33、35が特定され、ステップS123において処理リクエストに含まれる処理対象データセットの秘密度が「極秘」であることが特定され、ステップS124において「極秘」の秘密度に適合するAPIとして設定された秘密度に適合するセキュリティレベルを有するAPI33、35が候補APIとして選択される。この場合、候補APIが複数であることから、ステップS125での判断結果に従って処理はステップS127に進み、候補APIであるAPI33、35のうち、希望条件情報に設定されている「コスト」により適合しているAPI35が実行APIとして選択される。上記の例以外にも、処理リクエストに含まれる情報又はそれ以外の情報に応じて、API提供システム1において公開されている複数のAPIの中から処理対象データの秘密度に適合し、且つ、希望条件を満たすAPIが実行APIとして選択される。
For example, in the example shown in FIG. 3, the function ID specifies "OCR" in the processing request, the confidentiality is set to "top secret", and the desired condition information is set to "cost". If so, "OCR" is identified as the requested function in step S121,
本明細書において説明された処理手順、特にフロー図を用いて説明された処理手順においては、その処理手順を構成する工程(ステップ)の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること、及び/又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本発明の趣旨を逸脱しない限り本発明の範囲に含まれる。例えば、図6に示されているステップS122とステップS123の実行順序を入れ換えて、処理リクエストで要求されている機能を提供するAPIを特定する前に、処理リクエストの解析を行って処理対象データセットの秘密度を特定してもよい。 In the processing procedures described in this specification, especially in the processing procedures described using flow diagrams, some of the steps that make up the processing procedure are omitted, and as a step that makes up the processing procedure It is possible to add steps that are not specified and/or change the order of the steps, and the processing procedures in which such omissions, additions, and order changes do not deviate from the spirit of the present invention. Included within the scope of the invention. For example, by changing the order of execution of steps S122 and S123 shown in FIG. may specify the sensitivity of
本発明の実施形態によって奏される作用効果について簡単に説明する。本発明の一実施形態によれば、APIにより処理される処理データセットの秘密度に応じて、当該処理リクエストによって要求された処理を実行する実行APIが選択される。これにより、APIを利用するクライアントアプリケーション10aにおいて処理対象データセットの秘密度を定めることにより、API提供システム1において公開された複数のAPIの中から当該処理対象データセットの秘密度に応じた実行APIが選択されるので、クライアントアプリケーション10aにおいて処理対象データセットを処理させるAPIを指定する必要がない。よって、情報セキュリティを担保しつつ、クライアントアプリケーション10aの開発及び構築をより効率的に行うことができる。
A brief description will be given of the effects achieved by the embodiment of the present invention. According to one embodiment of the present invention, an execution API is selected to perform the processing requested by the processing request according to the sensitivity of the processing data set processed by the API. Accordingly, by determining the degree of confidentiality of the data set to be processed in the
本発明の一実施形態によれば、API提供システム1において公開されているAPIの仕様が情報セキュリティ面で変更された場合であっても、API管理データ25aにおいて当該APIのセキュリティレベルを更新することにより、クライアントアプリケーション10aを改変することなく処理対象データセットの秘密度に応じたAPIを継続して利用することができる。例えば、これまで実行APIとして選択されていたAPIのセキュリティレベルが低下して処理対象データセットの秘密度に適合しなくなった場合であっても、そのセキュリティレベルの変更をAPI管理データ25aに反映することにより、秘密度に適合する別のAPIを実行APIとして選択することができる。
According to one embodiment of the present invention, even if the specification of the API published in the API providing system 1 is changed in terms of information security, the security level of the API can be updated in the API management data 25a. Therefore, it is possible to continuously use the API corresponding to the confidentiality of the processing target data set without modifying the
本発明の一実施形態によれば、クライアントアプリケーション10aは、APIプラットフォーム装置20を介して実行APIを呼び出し、また、その呼び出した実行APIからのレスポンスを受け取ることができる。実行APIは、処理対象データセットについて設定された秘密度に応じて選択されるから、オフプレミス環境のAPIを利用する場合にも処理対象データセットの情報セキュリティを確保することができる。
According to one embodiment of the present invention, the
本発明の一実施形態によれば、処理対象データセットの秘密度に適合するセキュリティレベルを有する候補APIの中から、クライアントアプリケーション10aについて定められた希望条件に応じて実行APIが選択される。これにより、クライアントアプリケーション10aの希望条件により適した実行APIが選択することができる。例えば、コストを重視するクライアントアプリケーション10aのユーザに対しては低コストの実行APIによるサービスを提供でき、応答性を重視するクライアントアプリケーション10aのユーザには高い応答性を有する実行APIによるサービスを提供できる。
According to one embodiment of the present invention, an execution API is selected according to desired conditions defined for the
次に、図7及び図8を参照して、本発明の別の実施形態によるAPI提供システム7について説明する。図7及び図8に示されているAPI提供システムにおいては、オンプレミス環境においてもAPIを用意し、処理リクエストが所定の条件を満たす場合にオンプレミス環境から提供されているAPIで当該処理リクエストが処理される。図7は、オンプレミス環境からAPIが公開されているAPI提供システム7の概略を示すブロック図である。
Next, an
図7に示されているAPI提供システム7は、APIプラットフォーム装置20に代えてAPIプラットフォーム装置70を備えており、また、オンプレミス環境5から公開されているAPI37及びAPI38を備えている。オンプレミス環境5から公開されているAPIは、オンプレミス環境5に配置されているプロセッサ及びメインメモリを利用して実行される。API37はOCR機能を提供し、API38が突合機能を提供する。本明細書においては、クライアントアプリケーション10aが配置されているオンプレミス環境5に配置されている情報機器で実行され、その処理データをオンプレミス環境5に配置されているストレージに記憶するAPIを「オンプレミスAPI」と呼ぶことがある。API37及びAPI38は、オンプレミスAPIの例である。オンプレミスAPIは、オンプレミス環境5の情報機器のみを利用して実行され、その処理データをオフプレミス環境に送信しないので、クライアントアプリケーション10aがオフプレミス環境に送信することができないデータを取り扱っている場合、そのオフプレミス環境に送信することができないデータの処理は、オンプレミスAPIによって行われる。クライアントアプリケーション10aがオフプレミス環境に送信することができないデータの例は、金融商品取引法に規定されている未公表の重要事実に該当するデータである。例えば、クライアントアプリケーション10aのユーザが監査法人である場合、当該監査法人のクライアントの未発表の決算情報がオフプレミス環境に送信することができないデータとなる。インサイダー取引に関する法規制を遵守するために、金融商品取引法に規定されている未公表の重要事実は、オフプレミス環境に送信することが望ましくない。このため、クライアントアプリケーション10aが未公表の重要事実に相当するデータを処理する場合には、当該データをオンプレミス環境5で処理する必要があるので、かかるデータを処理させるAPIは、オンプレミスAPIの中から選択される。
The
図8は、API提供システム7のAPIプラットフォーム装置70を示すブロック図である。図2のAPIプラットフォーム装置20と比べて、図7のAPIプラットフォーム装置70ではプロセッサ21にクリアランス処理部21fが追加され、ストレージ25に一時保持領域71が追加されている。
FIG. 8 is a block diagram showing the
API提供システム7では、クライアントアプリケーション10aから受信される処理リクエストは、処理対象データセットがオンプレミス環境5において処理されるべきか否かを示すクリアランスフラグを含む。クリアランスフラグは処理リクエストのヘッダ部51に含められる。例えば、「真」のクリアランスフラグは、処理対象データセットがオンプレミス環境5内で処理されるべきであり、オフプレミス環境に処理対象データセットを送信及び保存できないことを示すことができる。他方、「偽」のクリアランスフラグは、処理対象データセットがオフプレミス環境に送信可能であることを示すことができる。API選択部21bは、処理リクエストに含まれるクリアランスフラグに応じて、API提供システム7において公開されている複数のAPIから実行APIを選択する。具体的には、クリアランスフラグが「真」の場合にはオンプレミス環境5から公開されているオンプレミスAPIの中から実行APIが選択される。他方、クリアランスフラグが「偽」の場合には、API提供システム1における実行APIの選択と同様に、API提供システム7において公開されているオフプレミス環境のAPI31~36の中から実行APIが選択される。
In the
クリアランス処理部21fは、処理リクエストのクリアランスフラグが「真」に設定されている場合に、クリアランスフラグが「偽」に更新されるまで実行APIの選択を待機してもよい。例えば、処理リクエストにおいて要求されている機能がオフプレミス環境で公開されるAPIによってのみ提供されている場合には、オンプレミスAPIを利用して当該処理リクエストを処理することができない。このような場合を想定して、クリアランス処理部21fは、クリアランスフラグが「偽」に更新されるまで実行APIの選択を待機することができる。クリアランス処理部21fは、クリアランスフラグが「真」に設定されている処理リクエストに基づいて実行APIの選択を待機すべきと判定された場合、当該処理リクエストに基づく実行APIの選択を待機するために、当該処理リクエストを一時保持領域71に格納する。クリアランス処理部21fは、クリアランスフラグが「偽」に更新されると、対象の処理リクエストを一時保持領域71から読み出し、オフプレミス環境の実行APIの中から実行APIを選択する処理を行うことができる。 When the clearance flag of the processing request is set to "true", the clearance processing unit 21f may wait for selection of the execution API until the clearance flag is updated to "false". For example, if a function requested in a processing request is provided only by an API published in an off-premises environment, the processing request cannot be processed using the on-premises API. Assuming such a case, the clearance processing unit 21f can wait for selection of the execution API until the clearance flag is updated to "false". When it is determined that the clearance processing unit 21f should wait for the selection of the execution API based on the processing request whose clearance flag is set to "true", the clearance processing unit 21f waits for the selection of the execution API based on the processing request. , the processing request is stored in the temporary holding area 71 . When the clearance flag is updated to "false", the clearance processing unit 21f can read the target processing request from the temporary holding area 71 and select an execution API from the execution APIs in the off-premises environment.
クライアントアプリケーション10aのユーザは、処理対象データセットに含まれる情報がパブリックになった場合やその他の適切な場合に、クリアランスフラグを「真」から「偽」へ変更するためのフラグ更新要求をAPIプラットフォーム装置70に送信することができる。あるいはまた、クリアランス処理部21fは、クリアランスフラグを更新すべきか否かを定期的かつ自動的に判定してもよい。ユーザは、クリアランスフラグを「真」から「偽」に変更するための条件(以下、「フラグ変更条件」という。)を予め設定することができる。クリアランス処理部21fは、定期的にフラグ変更条件が満たされたか否かを判定することができる。クリアランス処理部21fは、例えば1日に1度、1時間に一度、又はこれら以外の周期でフラグ変更条件が満たされたか否かを判定することができる。
A user of the
別の例では、クリアランスフラグが「真」に設定されている処理リクエストにおいて要求されている機能をオンプレミスAPIで処理可能な場合であっても、当該オンプレミスAPIを実行するオンプレミス環境5の情報機器に過負荷がかかっている場合又はそれ以外の場合に、クリアランス処理部21fは、当該オンプレミスAPIによる当該処理リクエストの処理を保留することができる。クリアランス処理部21fは、処理リクエストの処理を保留すべきと判定された場合、その処理が保留された処理リクエストを一時保持領域71に格納する。クリアランス処理部21fは、オンプレミスAPIを処理する情報機器の負荷状態を監視し、当該情報機器の負荷が所定レベルを下回った場合に、処理が保留されている処理リクエストを一時保持領域71から読み出して当該オンプレミスAPIに処理させることができる。処理リクエストの処理を保留している間に対象の当該処理リクエストのクリアランスフラグが「偽」に更新された場合には、クリアランス処理部21fは、当該処理リクエストを一時保持領域71から読み出し、当該処理リクエストを処理させる実行APIをオフプレミス環境のAPI31~36の中から選択し、選択された実行APIに当該処理リクエストを処理させてもよい。
In another example, even if the function requested in the processing request with the clearance flag set to "true" can be processed by the on-premises API, the information device of the on-premises environment 5 that executes the on-premises API When overloaded or otherwise, the clearance processing unit 21f can suspend the processing of the processing request by the on-premise API. When it is determined that the processing of the processing request should be suspended, the clearance processing unit 21f stores the processing request whose processing is suspended in the temporary holding area 71 . The clearance processing unit 21f monitors the load state of the information equipment that processes the on-premises API, and when the load of the information equipment falls below a predetermined level, the clearance processing unit 21f reads the pending processing request from the temporary holding area 71. It can be processed by the on-premise API. When the clearance flag of the target processing request is updated to "false" while the processing of the processing request is pending, the clearance processing unit 21f reads the processing request from the temporary holding area 71 and executes the processing. An execution API for processing the request may be selected from among the
API提供システム7においても、クライアントアプリケーション10aがAPIプラットフォーム装置20を介してAPIを呼び出し、APIからレスポンスを受け取る処理の流れは、図5に示したとおりである。ただし、API提供システム7においては、処理リクエストがオンプレミスAPIで処理される可能性があるため、ステップS12における実行APIを選択する処理が、図6に示されてる処理と異なる。そこで、図9を参照して、API提供システム7におけるステップS12での実行APIを選択する実行API選択処理の流れを説明する。図9は、API提供システム7において実行される実行APIを選択する処理の流れを示すフロー図である。
Also in the
まず、ステップS721において、API選択部21bは、受信した処理リクエストのクリアランスフラグの真偽を判定する。クリアランスフラグが「偽」であれば、当該処理リクエストをオフプレミス環境に送信可能であるため、処理はステップS121に進む。その後、ステップS121~S127において図5で説明したのと同様の処理が行われる。 First, in step S721, the API selection unit 21b determines whether the clearance flag of the received processing request is true or false. If the clearance flag is "false", the processing request can be sent to the off-premises environment, so the process proceeds to step S121. After that, in steps S121 to S127, the same processing as explained with reference to FIG. 5 is performed.
他方、クリアランスフラグが「真」であれば、処理はステップS722に移行する。ステップS722において、クリアランス処理部21fは受信した処理リクエストをオンプレミスAPIで処理可能か否かを判定する。具体的には、クリアランス処理部21fは処理リクエストで要求されている機能を特定し、特定された機能を提供するオンプレミスAPIが存在するか否かを判定する。例えば、オンプレミスAPIの提供機能をAPI管理データ25a又はそれ以外のデータセットとして管理しておくことにより、ステップS722における判定が可能となる。処理リクエストにより要求されている機能を提供するオンプレミスAPIが存在する場合、クリアランス処理部72は、当該オンプレミスAPIを処理する情報機器の負荷状態を取得し、当該情報機器が過負荷か否かを判定する。ステップS722において、処理リクエストにより要求されている機能を提供するオンプレミスAPIが存在し、そのオンプレミスAPIを処理する情報機器の負荷が過負荷でない場合には、当該処理リクエストの処理が可能と判定され、実行API選択処理は、ステップS723に進む。ステップS723において、API選択部21bは、ステップS722で特定された機能を提供するオンプレミスAPIを実行APIとして選択する。他方、ステップS722において、処理リクエストにより要求されている機能を提供するオンプレミスAPIが存在しない場合、又は、処理リクエストにより要求されている機能を提供するオンプレミスAPIが存在していても当該オンプレミスAPIを処理する情報機器が過負荷である場合には、当該処理リクエストの即時処理はできないと判定された場合には、実行API選択処理は、ステップS724に移行する。ステップS724において、クリアランス処理部21fは、処理リクエストの処理が待機状態となった旨をクライアントアプリケーション10aに通知する。次に、ステップS725において、クリアランス処理部21fは、即時処理できないと判定された処理リクエストを一時保持領域71に格納する。
On the other hand, if the clearance flag is "true", the process proceeds to step S722. In step S722, the clearance processing unit 21f determines whether the received processing request can be processed by the on-premise API. Specifically, the clearance processing unit 21f identifies the function requested by the processing request, and determines whether or not there is an on-premises API that provides the identified function. For example, by managing the provision function of the on-premise API as the API management data 25a or other data set, determination in step S722 becomes possible. If there is an on-premises API that provides the function requested by the processing request, the clearance processing unit 72 acquires the load status of the information device that processes the on-premises API, and determines whether or not the information device is overloaded. do. In step S722, if there is an on-premises API that provides the function requested by the processing request, and the load on the information device that processes the on-premises API is not overloaded, it is determined that the processing request can be processed, The execution API selection process proceeds to step S723. In step S723, the API selection unit 21b selects the on-premise API that provides the function identified in step S722 as the execution API. On the other hand, in step S722, if there is no on-premises API that provides the function requested by the processing request, or if there is an on-premises API that provides the function requested by the processing request, the on-premises API is processed. If it is determined that the processing request cannot be processed immediately when the information device to be processed is overloaded, the execution API selection processing proceeds to step S724. In step S724, the clearance processing unit 21f notifies the
具体例を説明する。クライアントアプリケーション10aから受信した処理リクエストにおいて機能IDが「突合」を指定しており、秘密度が「極秘」に設定されており、クリアランスフラグが「偽」に設定されていることを想定する。この場合、クリアランスフラグが「偽」であるから、API選択処理は、ステップS721からステップS121に進む。そして、ステップS121~ステップS127における処理により、機能ID「突合」及び秘密度「極秘」という処理リクエストの設定に従い、API34が実行APIとして選択される。
A specific example will be described. It is assumed that the processing request received from the
別の具体例について説明する。クライアントアプリケーション10aから受信した処理リクエストにおいて機能IDが「突合」を指定しており、秘密度が「極秘」に設定されており、クリアランスフラグが「真」に設定されていることを想定する。この場合、クリアランスフラグが「真」に設定されているので、API選択処理はステップS721からステップS722に進む。ステップS722において、API選択部21bは、オンプレミス環境5から公開されているAPI37、38の中に「突合」の機能を提供しているAPIが存在するか判定する。上記のとおりAPI38が「突合」の機能を提供しているので、API選択部21bは、次にAPI38を処理する情報機器が過負荷か否かを判定する。過負荷と判定された場合には、ステップS724において処理リクエストの処理が待機状態となった旨がクライアントアプリケーション10aに通知され、処理リクエストは一時保持領域71に格納される。API38を処理する情報機器の過負荷状態が解消されると、API選択処理はステップS723に移行し、ステップS723において処理リクエストが一時保持領域71から読み出されてAPI38が実行APIとして選択される。API38を処理する情報機器の過負荷状態が解消される前に処理リクエストのクリアランスフラグが「偽」に変更された場合は、API選択処理は、ステップS721からステップS121に移行し、以下の各ステップでの処理を経ることにより、機能ID「突合」及び秘密度「極秘」という処理リクエストの設定に従い、API34が実行APIとして選択される。
Another specific example will be described. It is assumed that the processing request received from the
本発明の一実施形態によるAPI提供システム7本変形例によれば、処理対象データセットにオンプレミス環境で処理されるべき(逆にいえば、オフプレミス環境で処理されるべきでない)データが含まれる場合、オンプレミス環境から公開されているオンプレミスAPIの中から実行APIを選択することができる。これにより、APIを利用する場合でも、オフプレミス環境に送信することができないデータを確実にオンプレミス環境に閉じて処理することができる。
According to this modified example of the
本発明の一実施形態によるAPI提供システム7では、APIプラットフォーム装置70が監査法人などのクライアントから処理リクエストを受信してAPIで処理する際に、インサイダー取引を構成しうるクリアランスフラグ「真」の処理リクエストを、そうでない処理リクエストとは区別して扱うことが可能となる。したがって、インサイダー取引を構成しうる処理リクエストとそうではない処理リクエストとを監査法人においてマニュアルで区別して処理する場合と比較して、より効率的に処理リクエストを処理できる。また、機械学習などでデータを活用する時に、データの提供がインサイダー取引に当たらないかというクライアントの懸念を払拭できる。
In the
上記の各実施形態は、特許請求の範囲にかかる発明を限定するものではない。上記の実施形態で説明されている諸要素が発明の解決手段に必須であるとは限らない。例えば、API提供システム7では、処理リクエストにクリアランスフラグが設定され、また、オンプレミス環境5からオンプレミスAPIが公開されているが、処理リクエストにおいてクリアランスフラグを設定可能とする一方でオンプレミスAPIは備えなくてもよい。この場合、クリアランス処理部21fは、クリアランスフラグが「真」であればその処理リクエストを一時保持領域71に格納し、クリアランスフラグが「偽」に更新されるまで実行APIの選択を待機することができる。クリアランス処理部21fは、クリアランスフラグが「偽」に更新されると、対象の処理リクエストを一時保持領域71から読み出してオフプレミス環境の実行APIに処理させる。また、処理リクエストにクリアランスフラグが設定されない実施形態においても、オンプレミスAPIを利用することにより、低コストで(オフプレミスAPIのベンダーへの利用料金を支払うことなく)応答性がよいオンプレミスAPIを利用することができる。
Each of the above-described embodiments does not limit the invention according to the scope of the claims. The elements described in the above embodiments are not necessarily essential to the solution of the invention. For example, in the
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一の記憶装置(ストレージやメモリ)に格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数の記憶装置または複数の装置に分散して配置された複数の記憶装置に分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。 Although the processes and procedures described herein are described as being performed by a single device, software, component or module, such processes or procedures may be performed by multiple devices, software, components or modules. and/or by multiple modules. In addition, even if the data, tables, or databases described herein are described as being stored in a single storage device (storage or memory), such data, tables, or databases are It can be distributed and stored in a plurality of storage devices provided in one device or in a plurality of storage devices distributed in a plurality of devices. Furthermore, the software and hardware elements described herein can be implemented by consolidating them into fewer components or decomposing them into more components.
本明細書において単数形で表される構成要素は、矛盾を生じさせない限り、複数形を含むものとする。 Elements referred to herein in the singular shall include the plural unless contradicted.
1、7 API提供システム
5 オンプレミス環境
A~D ベンダー環境(オフプレミス環境)
10 ユーザ端末
10a クライアントアプリケーション
20、70 APIプラットフォーム装置
21 プロセッサ
21a リクエスト受信部
21b API選択部
21c リクエスト送信部
21d レスポンス受信部
21e レスポンス送信部
21f クリアランス処理部
25 ストレージ
25a API管理データ
25b API管理プログラム
31~38 API
71 一時保持領域
1, 7 API provision system 5 On-premise environment A to D Vendor environment (off-premise environment)
10
71 Temporary storage area
Claims (10)
処理対象データセットに設定された少なくとも一つの秘密度を表す秘密区分情報を含む処理リクエストを受信する機能と、
前記秘密区分情報に応じて外部の複数のAPIの中から前記処理リクエストを処理させる実行APIを選択する第1選択機能と、
を実行させるプログラム。 to one or more processors,
a function of receiving a processing request containing at least one confidentiality classification information representing the confidentiality set in the data set to be processed;
a first selection function for selecting an execution API for processing the processing request from among a plurality of external APIs according to the security classification information;
program to run.
請求項1に記載のプログラム。 causing the one or more processors to further perform a function of calling the execution API and receiving a response from the execution API;
A program according to claim 1.
請求項1又は2に記載のプログラム。 The execution API is selected from among the plurality of APIs based on the security classification information and a security level set for each of the plurality of APIs;
3. A program according to claim 1 or 2.
前記実行APIは、前記複数の候補APIの中から選択される、
請求項1から3のいずれか1項に記載のプログラム。 Based on the security classification information and the security level set for each of the plurality of APIs, a plurality of APIs having a security level that matches the degree of secrecy among the plurality of APIs in the one or more processors further executing a second selection function that selects a candidate API;
the execution API is selected from among the plurality of candidate APIs;
A program according to any one of claims 1 to 3.
前記実行APIは、前記クライアントアプリケーションについて定められた希望条件に応じて前記複数の候補APIの中から選択される、
請求項4に記載のプログラム。 the processing request is generated by a client application;
the execution API is selected from among the plurality of candidate APIs according to desired conditions defined for the client application;
5. A program according to claim 4.
請求項4又は5に記載のプログラム。 When a plurality of confidentialities are set for the data set to be processed, each of the plurality of candidate APIs has a security level that matches the highest confidentiality among the plurality of confidentiality. selected from
6. A program according to claim 4 or 5.
前記第1選択機能は、前記処理リクエストに含まれるフラグが処理対象データセットを前記オンプレミス環境において処理すべきことを示す場合に、前記オンプレミス環境にある一又は複数のオンプレミスAPIの中から前記実行APIを選択する機能を含む、
請求項1から5のいずれか1項に記載のプログラム。 each of the one or more processors is located in an on-premises environment;
The first selection function selects from among one or more on-premises APIs in the on-premises environment when a flag included in the processing request indicates that the data set to be processed should be processed in the on-premises environment. Including the ability to select the execution API,
A program according to any one of claims 1 to 5.
前記第1選択機能は、前記処理リクエストで要求される機能および前記秘密区分情報に応じて前記実行APIを選択する機能を含む、
請求項1から7のいずれか1項に記載のプログラム。 provided functions and security levels are set for each of the plurality of APIs;
The first selection function includes a function of selecting the execution API according to the function requested by the processing request and the security classification information.
A program according to any one of claims 1 to 7.
前記秘密区分情報に応じて外部の複数のAPIの中から前記処理リクエストを処理させる実行APIを選択するAPI選択部と、
を備える装置。 a receiving unit that receives a processing request containing at least one confidentiality class information representing the confidentiality set in the data set to be processed;
an API selection unit that selects an execution API for processing the processing request from among a plurality of external APIs according to the security classification information;
A device comprising
処理対象データセットに設定された少なくとも一つの秘密度を表す秘密区分情報を含む処理リクエストを受信する工程と、
前記秘密区分情報に応じて外部の複数のAPIの中から前記処理リクエストを処理させる実行APIを選択する工程と、
を備える方法。 1. A method of selecting an API by one or more processors executing computer readable instructions, comprising:
a step of receiving a processing request containing at least one confidentiality class information representing a confidentiality set in a data set to be processed;
selecting an execution API for processing the processing request from among a plurality of external APIs according to the security classification information;
How to prepare.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/007533 WO2022180841A1 (en) | 2021-02-26 | 2021-02-26 | Program, device, and method for using api |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2022180841A1 JPWO2022180841A1 (en) | 2022-09-01 |
JP7310043B2 true JP7310043B2 (en) | 2023-07-18 |
Family
ID=83048715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023502001A Active JP7310043B2 (en) | 2021-02-26 | 2021-02-26 | Program, device and method for using API |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7310043B2 (en) |
WO (1) | WO2022180841A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011128949A (en) | 2009-12-18 | 2011-06-30 | Mitsubishi Electric Corp | System and method for filtering web service |
JP2012252452A (en) | 2011-06-01 | 2012-12-20 | Ricoh Co Ltd | Information processing device, information processing system, and program |
WO2018092226A1 (en) | 2016-11-17 | 2018-05-24 | 株式会社オプティム | Computer system, api providing method, and program |
US10757139B1 (en) | 2016-06-28 | 2020-08-25 | Amazon Technologies, Inc. | Assessing and reporting security risks of an application program interface |
-
2021
- 2021-02-26 WO PCT/JP2021/007533 patent/WO2022180841A1/en active Application Filing
- 2021-02-26 JP JP2023502001A patent/JP7310043B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011128949A (en) | 2009-12-18 | 2011-06-30 | Mitsubishi Electric Corp | System and method for filtering web service |
JP2012252452A (en) | 2011-06-01 | 2012-12-20 | Ricoh Co Ltd | Information processing device, information processing system, and program |
US10757139B1 (en) | 2016-06-28 | 2020-08-25 | Amazon Technologies, Inc. | Assessing and reporting security risks of an application program interface |
WO2018092226A1 (en) | 2016-11-17 | 2018-05-24 | 株式会社オプティム | Computer system, api providing method, and program |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022180841A1 (en) | 2022-09-01 |
WO2022180841A1 (en) | 2022-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9349015B1 (en) | Programmatically detecting collusion-based security policy violations | |
JP5021886B2 (en) | System and method for actively managing an enterprise comprising configurable components | |
US11855995B2 (en) | Data security across data residency restriction boundaries | |
JP7097958B2 (en) | Systems and methods for integrating cloud applications into cloud service broker platforms using the Automatic Universal Connector Package | |
JP7266354B2 (en) | Data anonymization | |
US11495347B2 (en) | Blockchain framework for enforcing regulatory compliance in healthcare cloud solutions | |
US20180196647A1 (en) | Application Programming Interface Discovery Using Pattern Recognition | |
US10282461B2 (en) | Structure-based entity analysis | |
CN115516574B (en) | Cloud-based API specification management method for linking multiple hospital servers and federated servers in a concurrent manner | |
US11416631B2 (en) | Dynamic monitoring of movement of data | |
US20230214677A1 (en) | Techniques for evaluating an effect of changes to machine learning models | |
US11783065B2 (en) | Business data protection for running tasks in computer system | |
US20210295234A1 (en) | Automated evidence collection | |
JP7310043B2 (en) | Program, device and method for using API | |
US20160261715A1 (en) | System and method for securing a web server | |
CN114270345A (en) | Licensed user facilitation and control system | |
CN112583891B (en) | Interface document acquisition method and device and server | |
US11709750B2 (en) | Dynamically mapping software infrastructure utilization | |
CN116582362B (en) | Network access control method and device, electronic equipment and storage medium | |
US11853452B2 (en) | Keeping databases compliant with data protection regulations by sensing the presence of sensitive data and transferring the data to compliant geographies | |
US20240020299A1 (en) | Api management for batch processing | |
US10037235B2 (en) | Integrating applications | |
US20230067891A1 (en) | Service virtualization platform | |
JP7189252B2 (en) | Analysis device, analysis method and analysis program | |
US20230370426A1 (en) | Sensitive Data Identification In Real-Time for Data Streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230118 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230418 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230705 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7310043 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |