JP2015022750A - Information processing system and program - Google Patents

Information processing system and program Download PDF

Info

Publication number
JP2015022750A
JP2015022750A JP2013260999A JP2013260999A JP2015022750A JP 2015022750 A JP2015022750 A JP 2015022750A JP 2013260999 A JP2013260999 A JP 2013260999A JP 2013260999 A JP2013260999 A JP 2013260999A JP 2015022750 A JP2015022750 A JP 2015022750A
Authority
JP
Japan
Prior art keywords
owner
prototype
access token
information
request
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.)
Granted
Application number
JP2013260999A
Other languages
Japanese (ja)
Other versions
JP6326807B2 (en
JP2015022750A5 (en
Inventor
寺尾 太郎
Taro Terao
太郎 寺尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2013260999A priority Critical patent/JP6326807B2/en
Publication of JP2015022750A publication Critical patent/JP2015022750A/en
Publication of JP2015022750A5 publication Critical patent/JP2015022750A5/ja
Application granted granted Critical
Publication of JP6326807B2 publication Critical patent/JP6326807B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To flexibly control requests from clients by managing object information and authority for object processing in the same data structure.SOLUTION: An information processing device 1 manages the information of an object of which at least one of a parent and a child is determined. In a case where a prototype of an access token which is an object having an owner attribute agrees with an owner, a method transmission attached with the access token, is accepted.

Description

本発明は、情報処理システム及びプログラムに関する。   The present invention relates to an information processing system and a program.

オブジェクトを管理するサーバでは、処理の要求元であるクライアントが有する権限に応じてオブジェクトを処理(生成、取得、変更、削除等)することがある。ここで、サーバで管理するオブジェクトには生成、変更、削除等が行われることがあるため、クライアントに対してオブジェクトとは独立に権限を固定的に紐付けておくと、クライアントの権限に応じてオブジェクトを柔軟に処理することが困難となることがある。   The server that manages the object may process (create, acquire, change, delete, etc.) the object according to the authority of the client that is the processing request source. Here, since the object managed by the server may be created, changed, deleted, etc., if the authority is fixedly linked to the client independently of the object, It may be difficult to process objects flexibly.

特開平09−251425号公報JP 09-251425 A

本発明の目的は、オブジェクトの情報とオブジェクトの処理に関する権限とを同一のデータ構造で管理し、クライアントからの要求を柔軟に制御できる情報処理システム及びプログラムを提供することにある。   An object of the present invention is to provide an information processing system and program capable of managing object information and object processing authority with the same data structure and flexibly controlling requests from clients.

請求項1に係る発明は、それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理する情報処理システムにおいて、オーナー属性を持つオブジェクトであるアクセストークンのプロトタイプがオーナーに一致する場合に、前記アクセストークンが添付されたメソッド送信を受理する処理部を有する情報処理システムである。   The invention according to claim 1 is an information processing system that manages information on an object for which at least one of a parent and a child is defined, and an access token prototype that is an object having an owner attribute matches the owner. The information processing system includes a processing unit that accepts a method transmission to which an access token is attached.

請求項2に係る発明は、前記処理部は、前記アクセストークンのプロトタイプがオーナーの親のオブジェクトを順次接続した経路の中に含まれる場合に、該アクセストークンが添付されたメソッド送信は、前記オーナーにより認可されたものと解釈し、受理する請求項1に記載の情報処理システムである。   According to a second aspect of the present invention, when the prototype of the access token is included in a path in which the parent objects of the owner are sequentially connected, the processing unit transmits the method attached with the access token to the owner The information processing system according to claim 1, wherein the information processing system interprets and accepts the information as authorized by the system.

請求項3に係る発明は、前記処理部により前記メソッド送信が受理された場合に、前記オーナーに受理されたことを通知する通知部を有する請求項2に記載の情報処理システムである。   The invention according to claim 3 is the information processing system according to claim 2, further comprising a notification unit that notifies the owner that the method transmission is accepted when the method transmission is received by the processing unit.

請求項4に係る発明は、それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理するコンピュータに、オーナー属性を持つオブジェクトであるアクセストークンのプロトタイプがオーナーに一致する場合に、前記アクセストークンが添付されたメソッド送信を受理するステップを実行させるためのプログラムである。   According to a fourth aspect of the present invention, when the prototype of an access token, which is an object having an owner attribute, matches the owner in a computer that manages information on an object for which at least one of a parent and a child is defined, the access token Is a program for executing a step of accepting a method transmission to which is attached.

本実施形態に係る情報処理装置の機能ブロック図である。It is a functional block diagram of the information processor concerning this embodiment. 木構造の一例を示す図である。It is a figure which shows an example of a tree structure. 木構造の一例を示す図である。It is a figure which shows an example of a tree structure. 木構造の一例を示す図である。It is a figure which shows an example of a tree structure. 木構造の一例を示す図である。It is a figure which shows an example of a tree structure. 木構造の一例を示す図である。It is a figure which shows an example of a tree structure. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. データを管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages data. 木構造の一例を示す図である。It is a figure which shows an example of a tree structure.

以下、本発明を実施するための実施の形態(以下、実施形態という)を、図面に従って説明する。   Hereinafter, embodiments for carrying out the present invention (hereinafter referred to as embodiments) will be described with reference to the drawings.

[1.情報処理装置に備えられる機能の説明]
図1には、本実施形態に係る情報処理装置1の機能ブロック図を示した。図1に示されるように、情報処理装置1は、木構造データ管理部11、リクエスト受付部12、権限情報取得部13、検証部14、リクエスト処理部15、処理データ提供部16を備える。
[1. Description of functions provided in information processing apparatus]
FIG. 1 shows a functional block diagram of the information processing apparatus 1 according to the present embodiment. As illustrated in FIG. 1, the information processing apparatus 1 includes a tree structure data management unit 11, a request reception unit 12, an authority information acquisition unit 13, a verification unit 14, a request processing unit 15, and a processing data providing unit 16.

情報処理装置1に備えられる上記各部の機能は、CPU(Central Processing Unit)等の制御手段、半導体メモリや磁気ディスク装置等の記憶手段、ネットワークインターフェース等の通信手段を備えるコンピュータにおいて、記憶手段に記憶されるプログラムを制御手段が実行することにより実現されることとしてよい。なお、プログラムは、情報記憶媒体に格納された状態で情報処理装置1に供給されることとしてもよいし、インターネット等のデータ通信手段を介して情報処理装置1に供給されることとしてもよい。以下、情報処理装置1に備えられた各部の詳細について説明する。   The functions of the above-described units included in the information processing apparatus 1 are stored in a storage unit in a computer including a control unit such as a CPU (Central Processing Unit), a storage unit such as a semiconductor memory or a magnetic disk device, and a communication unit such as a network interface. It may be realized by the control means executing the program to be executed. Note that the program may be supplied to the information processing apparatus 1 in a state of being stored in an information storage medium, or may be supplied to the information processing apparatus 1 via a data communication unit such as the Internet. Hereinafter, details of each unit provided in the information processing apparatus 1 will be described.

木構造データ管理部11は、木構造を構成する2つ以上のオブジェクトを管理する。ここで、オブジェクトは、系に唯一存在するルートオブジェクトを除けば、唯一つの親のオブジェクト(プロトタイプ)を持つ。ルートオブジェクトは自身のプロトタイプを持たない。オブジェクトAがオブジェクトBのプロトタイプであるとき、オブジェクトBはオブジェクトAのアーティファクトであるともいう。オブジェクト間のプロトタイプ関係はオブジェクト全体の集合に木構造を導入する。木構造を破壊しないならば、プロトタイプを再接続することで木構造を変形することが可能である。木構造データ管理部11で管理するオブジェクトは値を持つことができる。REST(REpresentational State Transferアーキテクチャスタイル)の文脈においては、オブジェクトをリソース、値を表現と呼ぶこともある。値を持つオブジェクトには、アクセストークンと呼ばれる権限情報を表すものがある。オブジェクトには、単にオブジェクト識別子とプロトタイプのみからなる純粋なアイデンティティのみを表すもの、任意のコンテント型の値を持つデータを表現するもの、アクセス資格を証明するクレデンシャルであるアクセストークン、あるいはオブジェクトの所有者であるリソースオーナーやリソースオーナーの認可のもとにオブジェクトへのアクセスを行うアプリケーション(クライアント)のようなエンティティを表すものが含まれることとしてよい。これらのオブジェクト達が1つの木構造の中に含まれる。そして、木構造データ管理部11は、クライアント装置2から受け付けた命令に従って、管理するオブジェクトの追加、更新、情報の読み出し、削除等を実行する。以下、木構造データ管理部11で管理されるデータの一例について説明する。   The tree structure data management unit 11 manages two or more objects constituting the tree structure. Here, the object has only one parent object (prototype) except for the root object that exists only in the system. The root object does not have its own prototype. When object A is a prototype of object B, object B is also said to be an artifact of object A. Prototype relationships between objects introduce a tree structure into the set of all objects. If the tree structure is not destroyed, it is possible to reshape the tree structure by reconnecting the prototype. An object managed by the tree structure data management unit 11 can have a value. In the context of REST (REpresentational State Transfer Architecture Style), objects are sometimes called resources and values are called representations. Some objects having values represent authority information called access tokens. An object can be simply a pure identity consisting only of an object identifier and prototype, representing data with a value of any content type, an access token that is a credential that certifies access, or the owner of the object It may be included that represents an entity such as a resource owner or an application (client) that accesses an object under the authorization of the resource owner. These objects are contained in one tree structure. Then, the tree structure data management unit 11 executes addition, update, information reading, deletion, and the like of the managed object in accordance with the command received from the client device 2. Hereinafter, an example of data managed by the tree structure data management unit 11 will be described.

図2〜図6には、木構造データ管理部11で管理されるオブジェクトを木構造に表した表示例を、図7〜14には、木構造を構成する各オブジェクトのデータを管理する管理テーブルの一例を示した。ここでは、図2と、図2に対応する管理テーブルのデータ構成例を示した図7を参照しながら、木構造データ管理部11で管理されるオブジェクトのデータ構成例について説明する。   2 to 6 show display examples in which objects managed by the tree structure data management unit 11 are represented in a tree structure, and FIGS. 7 to 14 show management tables for managing data of each object constituting the tree structure. An example was given. Here, a data configuration example of an object managed by the tree structure data management unit 11 will be described with reference to FIG. 2 and FIG. 7 showing a data configuration example of a management table corresponding to FIG.

図7には、図2に示した木構造データのデータを保持したリソース管理テーブルの一例を示した。図7の(A)は、有効化管理テーブル、(B)はオブジェクト管理テーブル、(C)はデータ内容管理テーブルを表している。   FIG. 7 shows an example of a resource management table that holds the data of the tree structure data shown in FIG. 7A shows an validation management table, FIG. 7B shows an object management table, and FIG. 7C shows a data content management table.

ここで、図7の(A)に示されるように、有効化管理テーブルには、各オブジェクトのキー(オブジェクトIDであり、例えばオブジェクト生成時にシステムがランダムに発生する32バイト程度の乱数としてよい。本実施形態においては一例として16進符号化された4バイトの値をキーとして用いることとしている)、バリュー(フラグ値、例えば真偽値としてよい)の各項目を含む1以上のレコードを含む。図2に示した木構造におけるオブジェクト「spf」のオブジェクトキーは「a1f40f99」であり、オブジェクト「spf_token」のオブジェクトキーは「bfa67956」であり、いずれも有効化(「0」)されている。なお、オブジェクトを無効化する場合には、有効化管理テーブルにおいて、オブジェクトキーに関連付けられるバリューを「1」に更新すればよい。   Here, as shown in FIG. 7A, the validation management table may be a key of each object (object ID, for example, a random number of about 32 bytes generated randomly by the system when the object is generated. In the present embodiment, as an example, a 4-byte value encoded in hexadecimal is used as a key), and one or more records including each item of value (which may be a flag value, for example, a true / false value) are included. The object key of the object “spf” in the tree structure shown in FIG. 2 is “a1f40f99”, the object key of the object “spf_token” is “bfa67956”, and both are validated (“0”). When invalidating an object, the value associated with the object key may be updated to “1” in the validation management table.

次に、図7の(B)に示されるように、オブジェクト管理テーブルには、オブジェクトキー(オブジェクトID)、プロトタイプバリュー、アーティファクトバリュー、ステートバリュー、コンテントタイプバリューの各項目を含む1以上のレコードを含む。ここで、オブジェクトキーには、オブジェクトIDが格納され、プロトタイプバリューには、オブジェクトの親オブジェクトのオブジェクトIDが格納され、アーティファクトバリューには、オブジェクトのアーティファクトのオブジェクトIDを格納したデータ内容管理テーブル内のレコードのキー(例えばハッシュ値としてもよい)が格納され、ステートバリューには、オブジェクトのデータ内容を示すデータ内容管理テーブル内のレコードのキー(例えばハッシュ値としてもよい)が格納され、コンテントタイプバリューには、オブジェクトの種類を示すデータ内容管理テーブルのキー(例えばハッシュ値としてもよい)が格納される。   Next, as shown in FIG. 7B, the object management table includes one or more records including items of object key (object ID), prototype value, artifact value, state value, and content type value. . Here, the object ID is stored in the object key, the object ID of the parent object of the object is stored in the prototype value, and the object ID of the object artifact is stored in the artifact value. A record key (for example, a hash value) is stored, and the state value stores a record key (for example, a hash value) in the data content management table indicating the data content of the object. Stores a key (for example, a hash value) of the data content management table indicating the type of the object.

そして、図7の(C)に示されるように、オブジェクトのデータ内容を格納したデータ内容管理テーブルには、キー(例えば、アーティファクトバリュー、ステートバリュー、コンテントタイプバリューに格納された値)に関連付けて、対応するデータ内容が格納される。例えば、データ内容管理テーブルにおいては、オブジェクトのアーティファクトバリューのキーに関連付けて、当該オブジェクトのアーティファクトのリストの情報が記憶される。また、例えば、データ内容管理テーブルにおいては、アクセストークンのオブジェクトに紐付くステートバリューに格納されたキーには、{“オーナー”:オーナーのオブジェクトID、“クライアント”:クライアントのオブジェクトID、“スコープ”:スコープを表現する文字列}の情報が関連付けられている。全ての処理要求にはアクセストークンが添付されるが、ここで、オーナーが処理のリクエスタ、クライアントが処理の代理リクエスタとして扱われ、スコープには、生成(C:create)、更新(U:update)、削除(D:delete)、一覧取得(L:list)等の認可された処理の種類の情報が含まれる。なお、スコープには権限を有する処理の情報を含むこととしてよい。そして、例えば、データ内容管理テーブルにおいては、オブジェクトに紐付くコンテントタイプバリューに格納されたキーには、例えばオブジェクトのデータ型に関する情報が関連付けられてもよい。   As shown in FIG. 7C, the data content management table storing the data content of the object is associated with a key (for example, a value stored in the artifact value, state value, or content type value) Corresponding data contents are stored. For example, in the data content management table, information on the list of artifacts of the object is stored in association with the key of the artifact value of the object. For example, in the data content management table, the key stored in the state value associated with the object of the access token includes {“owner”: owner object ID, “client”: client object ID, “scope”. : Character string representing scope} is associated. An access token is attached to all processing requests. Here, the owner is treated as a requester for processing and the client is treated as a proxy requester for processing, and the scope is created (C: create) and updated (U: update). , Information on authorized processing types such as deletion (D: delete) and list acquisition (L: list). It should be noted that the scope may include information on authorized processing. For example, in the data content management table, for example, information related to the data type of the object may be associated with the key stored in the content type value associated with the object.

リクエスト受付部12は、クライアント装置2から木構造データ管理部11で管理されるオブジェクトの処理に関するリクエストを受け付ける。また、リクエスト受付部12は、リクエストとともに、アクセストークン(権限情報のキー)の情報を取得する。   The request reception unit 12 receives a request regarding processing of an object managed by the tree structure data management unit 11 from the client device 2. Further, the request reception unit 12 acquires information on an access token (authorization information key) along with the request.

権限情報取得部13は、リクエスト受付部12で受け付けたアクセストークンに基づいて、受け付けたリクエストに係る権限情報(例えばオーナー情報、クライアント情報、スコープ情報)を取得する。例えば、権限情報取得部13は、リクエスト受付部12で受け付けたアクセストークンが、有効化管理テーブルで有効とされている場合に、アクセストークンをキーとしてオブジェクト管理テーブルから対応するレコードを検索する。ここで、権限情報取得部13は、オブジェクト管理テーブルからアクセストークンをキーとするレコードが検索されなかった場合には検索エラーを検証部14に出力することとしてよい。そして、権限情報取得部13は、オブジェクト管理テーブルからアクセストークンをキーとするレコードが検索された場合には、検索されたレコードのステートバリューに格納された値をキー(特定キー)として、データ内容管理テーブルから対応するレコードを検索する。ここで、権限情報取得部13は、データ内容管理テーブルから特定キーに対応するレコードが検索されなかった場合には検索エラーを検証部14に出力することとしてよい。そして、権限情報取得部13は、データ内容管理テーブルから特定キーに対応するレコードが検索された場合には、検索されたレコードのバリューに格納されたデータ(オーナー情報、クライアント情報、スコープ情報)を権限情報として取得し、オーナー情報やクライアント情報を検証(オーナーやクライアントが有効なオブジェクトIDであるか)し、検証部14に出力する。   The authority information acquisition unit 13 acquires authority information (for example, owner information, client information, scope information) related to the received request based on the access token received by the request reception unit 12. For example, when the access token received by the request reception unit 12 is valid in the validation management table, the authority information acquisition unit 13 searches for a corresponding record from the object management table using the access token as a key. Here, the authority information acquisition unit 13 may output a search error to the verification unit 14 when a record using the access token as a key is not searched from the object management table. When the record using the access token as a key is retrieved from the object management table, the authority information acquisition unit 13 uses the value stored in the state value of the retrieved record as a key (specific key) to store the data contents Search the corresponding record from the management table. Here, the authority information acquisition unit 13 may output a search error to the verification unit 14 when a record corresponding to the specific key is not searched from the data content management table. Then, when the record corresponding to the specific key is retrieved from the data content management table, the authority information acquisition unit 13 uses the data (owner information, client information, scope information) stored in the value of the retrieved record. Obtained as authority information, the owner information and client information are verified (whether the owner or client is a valid object ID) and output to the verification unit 14.

検証部14は、権限情報取得部13により取得された権限情報と、リクエスト受付部12で受け付けたアクセストークンの親オブジェクト(プロトタイプオブジェクト)の情報の比較に基づく検証を実行する。例えば、検証部14は、権限情報取得部13により検索エラーが通知された場合には、検証エラーをリクエスト処理部15に出力する。また、検証部14は、権限情報取得部13により取得された権限情報に含まれるオーナー情報(オーナーオブジェクト)が、リクエスト受付部12で受け付けたアクセストークンの親オブジェクト(プロトタイプオブジェクト)に一致するか、オーナーオブジェクトの親オブジェクト、親オブジェクトの更に親オブジェクトを順次接続する経路(プロトタイプチェーン)内に、アクセストークンの親オブジェクト(プロトタイプオブジェクト)が含まれる場合に、検証成功と判断し、それ以外の場合には検証失敗と判断して、検証結果をリクエスト処理部15に通知する。   The verification unit 14 executes verification based on a comparison between the authority information acquired by the authority information acquisition unit 13 and the information of the parent object (prototype object) of the access token received by the request reception unit 12. For example, the verification unit 14 outputs a verification error to the request processing unit 15 when a search error is notified by the authority information acquisition unit 13. In addition, the verification unit 14 determines whether the owner information (owner object) included in the authority information acquired by the authority information acquisition unit 13 matches the parent object (prototype object) of the access token received by the request reception unit 12, If the parent object (prototype chain) of the access token is included in the path (prototype chain) that sequentially connects the parent object of the owner object and the parent object, then the parent object (prototype object) of the access token is determined to be successful, otherwise Determines that the verification has failed, and notifies the request processing unit 15 of the verification result.

ここで、通知キューに関する処理について説明する。まず、リクエスト受付部12で受け付けたアクセストークンが検証された場合において、リクエスト受付部12で受け付けたアクセストークンのプロトタイプは通知を格納するキュー(通知キュー)を持つこととなる(通知キューに空のキューがセットされる)。また、リクエスト受付部12で受け付けたアクセストークンが検証された場合において、アクセストークンが指定するオーナーオブジェクトのプロトタイプチェーンに、アクセストークンのプロトタイプが含まれる場合には、オーナーオブジェクトから通知キューを持つオブジェクトをプロトタイプチェーンに沿って探索し、最初に見つかったオブジェクトが通知先として設定される。   Here, processing related to the notification queue will be described. First, when the access token received by the request receiving unit 12 is verified, the prototype of the access token received by the request receiving unit 12 has a queue (notification queue) for storing notifications (the notification queue has an empty queue). Queue is set). In addition, when the access token received by the request receiving unit 12 is verified, if the prototype of the access token is included in the prototype chain of the owner object specified by the access token, an object having a notification queue is selected from the owner object. Searching along the prototype chain, the first object found is set as the notification destination.

リクエスト処理部15は、リクエスト受付部12で受け付けたリクエストと、権限情報取得部13により取得された権限情報と、検証部14から通知された検証結果と、に基づいてリクエストに係る処理の実行を制御する。例えば、リクエスト処理部15は、リクエスト受付部12で受け付けたリクエストに係る処理が、権限情報取得部13により取得された権限情報のスコープ情報に含まれており、さらに、検証部14から通知された検証結果が検証成功であるという条件、さらにターゲットリソース(リクエスト対象のオブジェクト)とアクセストークンの指定するオーナー(オブジェクト)との関係についての条件(例えば、オーナーがターゲットリソースに対する特権を有しているか否か等)を満足する場合に、リクエスト受付部12で受け付けたリクエストに係る処理を実行し、その実行結果を処理データ提供部16に出力し、上記の条件を満足しない場合には、リクエストに係る処理を不受理としてエラーを処理データ提供部16に出力することとしてよい。また、リクエスト処理部15は、受け付けたリクエストが上記の条件を満足しない場合であっても、処理(例えば更新)を保留し、ターゲットリソースのプロトタイプに処理(例えば更新)の依頼を通知することとしてもよい。ここで、ターゲットリソースのプロトタイプが通知キューを持っていない場合には、ターゲットリソースのプロトタイプチェーンにおける最初に通知キューを有するオブジェクト(通知先オブジェクト)に通知される。ここで、通知先オブジェクトは、通知キューに格納された通知を知った後に、自身のアクセストークンを利用してターゲットリソースへの処理(例えば値のセット)を行なってもよいし、単に通知をキューから削除してもよい。   The request processing unit 15 executes the processing related to the request based on the request received by the request receiving unit 12, the authority information acquired by the authority information acquiring unit 13, and the verification result notified from the verification unit 14. Control. For example, the request processing unit 15 includes processing related to the request received by the request receiving unit 12 in the scope information of the authority information acquired by the authority information acquiring unit 13, and is further notified from the verification unit 14. A condition that the verification result is a verification success, and a condition regarding the relationship between the target resource (requested object) and the owner (object) specified by the access token (for example, whether the owner has privileges for the target resource) If the above condition is satisfied, the processing related to the request received by the request receiving unit 12 is executed, and the execution result is output to the processing data providing unit 16. The processing is not accepted and an error is output to the processing data providing unit 16 Good. Further, even if the received request does not satisfy the above conditions, the request processing unit 15 holds the processing (for example, update) and notifies the target resource prototype of the processing (for example, update) request. Also good. If the target resource prototype does not have a notification queue, the object (notification destination object) having the notification queue first in the target resource prototype chain is notified. Here, after knowing the notification stored in the notification queue, the notification destination object may perform processing (for example, value setting) on the target resource using its own access token, or simply queue the notification. You may delete from.

以下、クライアント装置2からのリクエストが受理される場合に、リクエスト処理部15が受け付けたリクエストに応じて実行する処理(アーティファクトのリスト取得、アーティファクトの生成、オブジェクトの表現取得、オブジェクトの表現更新、オブジェクトの削除、プロトタイプの取得、プロトタイプの更新等)の例について説明する。以下説明する例においては、クライアント装置2から情報処理装置1に対して送信されるリクエストが、HTTPSのトランスポートでRESTのAPIを利用するものであり、HTTPリクエストヘッダにアクセストークンが含まれる場合を例として説明する。   Hereinafter, when a request from the client apparatus 2 is received, processing executed according to the request received by the request processing unit 15 (artifact list acquisition, artifact generation, object expression acquisition, object expression update, object Delete, prototype acquisition, prototype update, etc.). In the example described below, the request transmitted from the client apparatus 2 to the information processing apparatus 1 uses the REST API with the HTTPS transport, and the HTTP request header includes an access token. This will be described as an example.

リクエスト処理部15は、受け付けたリクエストが“GET /”の場合には、権限情報に含まれるオーナーオブジェクトをキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるアーティファクトバリューの値に基づいてデータ内容管理テーブルを検索し、検索されたレコードに含まれるバリューの値を処理結果として処理データ提供部16に出力する。   When the received request is “GET /”, the request processing unit 15 searches the corresponding record from the object management table using the owner object included in the authority information as a key, and stores the artifact value included in the searched record. The data content management table is searched based on the value, and the value value included in the searched record is output to the processing data providing unit 16 as a processing result.

リクエスト処理部15は、受け付けたリクエストが“POST /”の場合には、権限情報に含まれるオーナーオブジェクトを親とする新たなオブジェクトのキー(オブジェクトID)を生成し(オブジェクトIDは例えば乱数により生成することとしてよい)、生成したオブジェクトIDと、プロトタイプオブジェクトの情報とを格納したレコードをオブジェクト管理テーブルに追加し、生成したオブジェクトIDを処理結果として処理データ提供部16に出力する。そして、リクエスト処理部15は、プロトタイプオブジェクトについてのアーティファクトバリューの値を更新するとともに、更新した値をキー、新たに生成されたオブジェクトの情報をリストに含むリスト情報とを含むレコードをデータ内容管理テーブルに追加することとしてよい。   If the received request is “POST /”, the request processing unit 15 generates a key (object ID) of a new object whose parent is the owner object included in the authority information (the object ID is generated by a random number, for example) A record storing the generated object ID and prototype object information is added to the object management table, and the generated object ID is output to the processing data providing unit 16 as a processing result. The request processing unit 15 updates the value of the artifact value for the prototype object, and records a record including the updated value as a key and list information including the newly generated object information in the list in the data content management table. It is good to add to.

リクエスト処理部15は、受け付けたリクエストが“GET /{id}”の場合には、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるステートバリューに格納された値を参照し、参照した値をキーとしてデータ内容管理テーブルを検索し、検索されたレコードに含まれるバリューの値を処理結果として処理データ提供部16に出力する。   When the received request is “GET / {id}”, the request processing unit 15 searches the corresponding record from the object management table using {id} as an object key, and sets the state value included in the searched record. The stored value is referred to, the data content management table is searched using the referenced value as a key, and the value value included in the searched record is output to the processing data providing unit 16 as a processing result.

リクエスト処理部15は、受け付けたリクエストが“PUT /{id}”の場合には、{id}により特定されるターゲットオブジェクトに対して、アクセストークンが指定するオーナーが特権を有しているときには(すなわち、ターゲットオブジェクトのプロトタイプチェーンにアクセストークンが指定するオーナーが含まれているときには)、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるステートバリューに格納された値を参照し、参照した値をキーとしてデータ内容管理テーブルを検索し、検索されたレコードに含まれるバリューの値を、リクエストとともに受け付けた更新情報に従って更新する。   When the received request is “PUT / {id}”, the request processing unit 15 has the privilege specified by the access token for the target object specified by {id} ( In other words, when the owner specified by the access token is included in the prototype chain of the target object), the corresponding record is searched from the object management table using {id} as the object key, and the state value included in the searched record is The stored value is referred to, the data content management table is searched using the referenced value as a key, and the value of the value included in the searched record is updated according to the update information received together with the request.

リクエスト処理部15は、受け付けたリクエストが“DELETE /{id}”の場合には、{id}により特定されるターゲットオブジェクトに対して、アクセストークンが指定するオーナーが特権を有しているときには(すなわち、ターゲットオブジェクトのプロトタイプチェーンにアクセストークンが指定するオーナーが含まれているときには)、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードのアーティファクトバリューに値が格納されていない(つまり,ターゲットオブジェクトはアーティファクトを持たない)場合には、有効化管理テーブルにおいてオブジェクトキー{id}に対応するバリューを無効化の値(1)に更新し、検索されたレコードのアーティファクトバリューに値が格納されている場合には、エラーを処理データ提供部16に出力することとしてよい。   When the received request is “DELETE / {id}”, the request processing unit 15 determines that the owner specified by the access token has a privilege for the target object specified by {id} ( That is, when the owner specified by the access token is included in the prototype chain of the target object), the corresponding record is searched from the object management table using {id} as the object key, and the value of the artifact value of the searched record is If not stored (that is, the target object has no artifact), the value corresponding to the object key {id} is updated to the invalidation value (1) in the validation management table, and the retrieved record Arte When the value in fact the value is stored may be outputted error in processing data providing unit 16.

リクエスト処理部15は、受け付けたリクエストが“GET /{id}/prototype”の場合には、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるプロトタイプバリューに格納された値を処理結果として処理データ提供部16に出力する。   When the received request is “GET / {id} / prototype”, the request processing unit 15 searches the corresponding record from the object management table using {id} as an object key, and the prototype included in the searched record The value stored in the value is output to the processing data providing unit 16 as a processing result.

リクエスト処理部15は、受け付けたリクエストが“PUT /{id}/prototype”でリクエストボディは新しいプロトタイプのオブジェクトIDの場合には、アクセストークンが指定するオーナー(リクエスタ)がターゲットリソース({id}で特定されるオブジェクト)の現在のプロトタイプであり、プロトタイプの変更が木構造を破壊しない場合には、新しいプロトタイプを予約する。そして、リクエスタが新しいプロトタイプとして予約され、プロトタイプの変更が木構造を破壊しない場合には、新しいプロトタイプへの設定を完了し(すなわちプロトタイプの更新を実行し)、上記以外のケースについては、リクエストを拒絶する。例えば、オブジェクトCの変更前のプロトタイプをA、変更後のプロトタイプをBとすると、「リクエスタ=A、変更先のプロトタイプ=B、対象オブジェクト=C」とする第1の指示と、「リクエスタ=B、変更先のプロトタイプ=B、対象オブジェクト=C」とする第2の指示の両方が,それぞれの指示のタイミングで,木構造を破壊しない場合に、リクエスト処理部15は、オブジェクトCのプロトタイプをAからBに変更する処理を実行することとしてよい。   When the received request is “PUT / {id} / prototype” and the request body is a new prototype object ID, the request processing unit 15 sets the owner (requester) specified by the access token as the target resource ({id}). If the current prototype of the specified object) does not destroy the tree structure, a new prototype is reserved. Then, if the requester is reserved as a new prototype and the prototype change does not destroy the tree structure, complete the setting to the new prototype (ie perform a prototype update), and for other cases, request Reject. For example, if the prototype before the change of the object C is A and the prototype after the change is B, a first instruction “requester = A, change destination prototype = B, target object = C”, and “requestor = B , If both of the second instructions with the change target prototype = B and the target object = C ”do not destroy the tree structure at the timing of each instruction, the request processing unit 15 sets the prototype of the object C as A It is good also as performing the process changed from B to B.

処理データ提供部16は、リクエスト処理部15から通知された処理結果をクライアント装置2に提供する。なお、処理データ提供部16は、リクエスト処理部15からエラーが通知された場合にはクライアント装置2にエラーを通知することとしてよい。   The processing data providing unit 16 provides the processing result notified from the request processing unit 15 to the client device 2. The processing data providing unit 16 may notify the client device 2 of an error when an error is notified from the request processing unit 15.

また、木構造データ管理部11で管理されるオブジェクト毎に、そのオブジェクトに対して実行が保留されたリクエストを保持するキューを用意し、オブジェクトのオーナーには、オブジェクトに用意されたキューに保持されたアイテムの閲覧や削除が可能とするようにしてよい。ここで、キューに保持されるアイテムは、HTTPリクエストのヘッダおよびボディのハッシュ値とし、ボディの内容自体はハッシュ値から参照できるように保存しておくこととしてよい。そして、オブジェクトのオーナーは、リクエストの内容が妥当であれば、そのリクエストを自分自身のアクセストークンを利用したリプレイにより実行することとしてよい。ただし、当初のHTTPリクエストヘッダをそのまま全て保存した場合には、本来秘匿すべきアクセストークンがオブジェクトのオーナーに知られてしまう(つまり、オーナーは元のリクエストを行ったエンティティになりすませる)ので、リクエストヘッダ中のアクセストークンはオブジェクト識別子ではなく、そのオブジェクト識別子に割り当てられたハッシュ値(すなわち、オブジェクト識別子(アクセストークン)に対してデータ内容管理テーブルで管理されるハッシュ値)に置換することで、アクセストークンの漏洩を防ぐこととしてよい。このようにすれば、ハッシュ値からトークンの内容(JSONオブジェクトとしての{“オーナー”:オーナーのオブジェクトID、“クライアント”:クライアントのオブジェクトID、“スコープ”:スコープを表現する文字列}は特定できるが、アクセストークン自体がオーナーに露見することはない。   In addition, for each object managed by the tree structure data management unit 11, a queue for holding a request that is suspended for the object is prepared, and the owner of the object is held in the queue prepared for the object. It may be possible to view or delete the item. Here, the items held in the queue may be HTTP request headers and body hash values, and the body contents themselves may be stored so that they can be referenced from the hash values. Then, if the content of the request is valid, the owner of the object may execute the request by replay using its own access token. However, if all the original HTTP request headers are stored as they are, the access token that should be kept secret is known to the owner of the object (that is, the owner impersonates the entity that made the original request). The access token in the header is replaced with the hash value assigned to the object identifier (that is, the hash value managed in the data content management table for the object identifier (access token)) instead of the object identifier. It is good to prevent leakage of tokens. In this way, the token contents (JSON object {“owner”: owner object ID, “client”: client object ID, “scope”: character string expressing the scope}) can be specified from the hash value. However, the access token itself is not exposed to the owner.

[2.処理の具体例についての説明]
以下、本実施形態に係る情報処理装置1において実行されるオブジェクトの追加、更新処理の具体例について図2〜図14を参照しながら説明する。
[2. Explanation of specific examples of processing]
Hereinafter, specific examples of object addition and update processing executed in the information processing apparatus 1 according to the present embodiment will be described with reference to FIGS.

まず、図2には、初期状態のオブジェクトのなす木構造を示した。図2に示されるように、初期状態のオブジェクトの木構造には、ルートオブジェクトである「spf」に対して、ルート用のアクセストークンである「spf_token」がアーティファクトとして設けられている。また、図2に示される木構造のデータは、図7に示す管理テーブル(有効化テーブル、オブジェクト管理テーブル、データ内容管理テーブル)に対応している。   First, FIG. 2 shows a tree structure formed by objects in an initial state. As shown in FIG. 2, in the tree structure of the object in the initial state, “spf_token” that is an access token for root is provided as an artifact with respect to “spf” that is the root object. 2 corresponds to the management table (validation table, object management table, data content management table) shown in FIG.

次に、図3に示されるように、オブジェクトのなす木構造において、オブジェクト「spf」のアーティファクトとして「users」オブジェクトを追加する場合の処理について説明する。この場合には、まず、クライアント装置2は、情報処理装置1に対してアクセストークン「spf_token」を用いて、“POST /”のリクエストを投げる。これにより、情報処理装置1は、図8に示されるように、新たなオブジェクトキーを生成し、生成したオブジェクトキーについてのレコードを有効化管理テーブル(A)とオブジェクト管理テーブル(B)に追加するとともに、オブジェクト管理テーブル(B)とデータ内容管理テーブル(C)に関して、アーティファクトを追加するプロトタイプオブジェクト(ここでは「spf」オブジェクト)に関するアーティファクトバリューの値を更新、追加する。なお、図8においては、図7から変更があるデータについて下線を付している。情報処理装置1は、追加したオブジェクトのキー(e356bf46)をクライアント装置2に通知する。   Next, as shown in FIG. 3, processing when adding a “users” object as an artifact of the object “spf” in the tree structure formed by the objects will be described. In this case, first, the client apparatus 2 sends a “POST /” request to the information processing apparatus 1 using the access token “spf_token”. As a result, the information processing apparatus 1 generates a new object key and adds a record for the generated object key to the validation management table (A) and the object management table (B) as shown in FIG. At the same time, with respect to the object management table (B) and the data content management table (C), the value of the artifact value related to the prototype object (here, “spf” object) to which the artifact is added is updated and added. In FIG. 8, data that has changed from FIG. 7 is underlined. The information processing apparatus 1 notifies the client apparatus 2 of the key (e356bf46) of the added object.

クライアント装置2は、アクセストークン「spf_token」を用いて、情報処理装置1から通知されたオブジェクトキー(e356bf46)についての情報を更新するリクエスト(PUT /e356bf46)、更新内容{“name”:“users”}を情報処理装置1に対して投げる。これにより、図9に示されるように、オブジェクト管理テーブル(B)及びデータ内容管理テーブル(C)において、オブジェクトキー(e356bf46)についてのデータ内容が登録される。なお、図9においては、図8から変更があるデータについて下線を付している。   The client device 2 uses the access token “spf_token” to update the information about the object key (e356bf46) notified from the information processing device 1 (PUT / e356bf46), the update content {“name”: “users” } To the information processing apparatus 1. As a result, as shown in FIG. 9, the data content for the object key (e356bf46) is registered in the object management table (B) and the data content management table (C). In FIG. 9, data that has changed from FIG. 8 is underlined.

次に、図4に示されるように、オブジェクト「users」の一時的なアクセストークンとして「temp_users_token」を追加する。クライアント装置2は、「spf_token」を用いて、“POST /”のリクエストを投げることで、オブジェクトを新規追加することとしてよい。図10には、「temp_users_token」のオブジェクト(de75e969)を追加した管理テーブルを示した。なお、図10においては、図9から変更があるデータについて下線を付している。   Next, as shown in FIG. 4, “temp_users_token” is added as a temporary access token of the object “users”. The client device 2 may add a new object by throwing a “POST /” request using “spf_token”. FIG. 10 shows a management table to which an object (de75e969) of “temp_users_token” is added. In FIG. 10, data that has changed from FIG. 9 is underlined.

ここで、クライアント装置2は、アクセストークン「spf_token」を用いて、情報処理装置1から通知されたオブジェクトキー(de75e969)についての情報を更新するリクエスト(PUT /de75e969)、更新内容{“owner”:“/e35bf46”,“client”:“/e35bf46”,“scope“:”create update delete list”}を情報処理装置1に対して投げる。これにより、図11に示されるように、オブジェクト管理テーブル(B)及びデータ内容管理テーブル(C)において、オブジェクトキー(de75e969)について、オブジェクト「users」をオーナーとする権限情報が設定される。なお、図11においては、図10から変更があるデータについて下線を付している。   Here, the client apparatus 2 uses the access token “spf_token” to update the information about the object key (de75e969) notified from the information processing apparatus 1 (PUT / de75e969), the update content {“owner”: “/ E35bf46”, “client”: “/ e35bf46”, “scope”: “create update delete list”} is thrown to the information processing apparatus 1. As a result, as shown in FIG. 11, in the object management table (B) and the data content management table (C), authority information having the object “users” as the owner is set for the object key (de75e969). In FIG. 11, data that has changed from FIG. 10 is underlined.

次に、図5に示されるように、クライアント装置2は、アクセストークン「temp_users_token」を用いてオブジェクト「users」の子として「users_token」を追加する。すなわち、クライアント装置2は、「temp_users_token」を用いて、“POST /”のリクエストを投げることで、オブジェクトを新規追加することとしてよい。図12には、「users_token」のオブジェクト(1ff64df4)を追加した管理テーブルを示した。なお、図12においては、図11から変更があるデータについて下線を付している。   Next, as illustrated in FIG. 5, the client apparatus 2 adds “users_token” as a child of the object “users” using the access token “temp_users_token”. That is, the client device 2 may add a new object by throwing a “POST /” request using “temp_users_token”. FIG. 12 shows a management table to which the “users_token” object (1ff64df4) is added. In FIG. 12, data that has changed from FIG. 11 is underlined.

ここで、クライアント装置2は、アクセストークン「temp_users_token」を用いて、情報処理装置1から通知されたオブジェクトキー(1ff64df4)についての情報を更新するリクエスト(PUT /1ff64df4)、更新内容{“owner”:“/e35bf46”,“client”:“/e35bf46”,“scope“:”create update delete list”}を情報処理装置1に対して投げる。これにより、図13に示されるように、オブジェクト管理テーブル(B)及びデータ内容管理テーブル(C)において、オブジェクトキー(1ff64df4)について、オブジェクト「users」をオーナーとする権限情報が設定される。なお、図13においては、図12から変更があるデータについて下線を付している。   Here, the client device 2 uses the access token “temp_users_token” to update the information about the object key (1ff64df4) notified from the information processing device 1 (PUT / 1ff64df4), the update content {“owner”: “/ E35bf46”, “client”: “/ e35bf46”, “scope”: “create update delete list”} is thrown to the information processing apparatus 1. As a result, as shown in FIG. 13, in the object management table (B) and the data content management table (C), authority information having the object “users” as the owner is set for the object key (1ff64df4). In FIG. 13, data that has changed from FIG. 12 is underlined.

次に、図6に示されるように、クライアント装置2は、アクセストークン「users_token」を用いて、オブジェクト「users」に対してアーティファクト「Alice」を追加する。すなわち、クライアント装置2は、「users_token」を用いて、“POST /”のリクエストを投げることで、オブジェクトを新規追加することとしてよい。図14には、「Alice」のオブジェクト(87ad557f)を追加した管理テーブルを示した。なお、図14においては、図13から変更があるデータについて下線を付している。   Next, as illustrated in FIG. 6, the client apparatus 2 adds the artifact “Alice” to the object “users” using the access token “users_token”. That is, the client apparatus 2 may add a new object by throwing a “POST /” request using “users_token”. FIG. 14 shows a management table to which an “Alice” object (87ad557f) is added. In FIG. 14, data that has changed from FIG. 13 is underlined.

このように、アクセストークンの追加、オブジェクトの追加、更新を実行することにより、権限情報と、リソースとを同一の木構造内に設けることが可能となるとともに、リソースごとに詳細な権限情報を設定することが可能となる。   In this way, by adding access tokens, adding objects, and updating, authority information and resources can be provided in the same tree structure, and detailed authority information is set for each resource. It becomes possible to do.

次に、図15に示されたオブジェクトの木構造を参照しながら、アクセストークンの指定するオーナーと、プロトタイプ(親オブジェクト)が異なる場合に実行される通知処理の一例について説明する。なお、アクセストークンの指定するオーナーと、アクセストークン自体のプロトタイプ(親オブジェクト)が異なるタイプのアクセストークンを特異トークンと称する。   Next, an example of notification processing executed when the owner specified by the access token and the prototype (parent object) are different will be described with reference to the tree structure of the object shown in FIG. Note that an access token of a type in which the owner specified by the access token is different from the prototype (parent object) of the access token itself is referred to as a unique token.

図15に示されるように、オブジェクトAに対するアーティファクトであるオブジェクトBはアクセストークンであり、そのオーナー及びクライアントはオブジェクトA、スコープはs=”create update delete list”である。   As shown in FIG. 15, an object B, which is an artifact for the object A, is an access token, its owner and client are the object A, and the scope is s = “create update delete list”.

次に、トークンBを利用してオブジェクトCを生成したとする。このとき、トークンBが利用された時に、トークンBのプロトタイプであるオブジェクトAは通知を格納するキューを有することとなる。   Next, it is assumed that the object C is generated using the token B. At this time, when the token B is used, the object A which is a prototype of the token B has a queue for storing the notification.

次に、トークンBを利用してトークンDを生成したとする。ここで、トークンDは、オブジェクトAをプロトタイプとし、そのオーナー及びクライアントはオブジェクトC、スコープはsであるとする。   Next, it is assumed that the token D is generated using the token B. Here, it is assumed that the token D has the object A as a prototype, the owner and client are the object C, and the scope is s.

次に、トークンDを利用してトークンEを生成したとする。ここで、トークンDが検証された時に、トークンDが特異トークンであることが検知され、トークンDのオーナーであるオブジェクトCに対して通知される。ここで、オブジェクトCから通知キューを有するオブジェクトをプロトタイプチェーンに沿って探索し、その最初に探索されたオブジェクト(オブジェクトA)を通知先とする。   Next, it is assumed that the token E is generated using the token D. Here, when the token D is verified, it is detected that the token D is a singular token and notified to the object C that is the owner of the token D. Here, an object having a notification queue is searched from the object C along the prototype chain, and the first searched object (object A) is set as a notification destination.

次に、トークンEを利用してオブジェクトFを生成したとする。このとき、トークンEが検証されて、トークンEのプロトタイプであるオブジェクトCは通知を格納するキューを有することとなる。   Next, it is assumed that the object F is generated using the token E. At this time, the token E is verified, and the object C, which is a prototype of the token E, has a queue for storing the notification.

また、トークンDを利用してオブジェクトGが生成されたとする。このとき、トークンDが特異トークンであることが検知され、トークンDのオーナーであるオブジェクトCに対して通知が発行され、オブジェクトCのキューに通知が格納される。   Further, it is assumed that the object G is generated using the token D. At this time, it is detected that the token D is a singular token, a notification is issued to the object C that is the owner of the token D, and the notification is stored in the queue of the object C.

また、オブジェクトCを親とするトークンKがあり、トークンKのオーナーがC、クライアント(オーナの権限の委譲先を示す)がJで、スコープがsである場合に、オブジェクトJはオブジェクトCの代理で例えばオブジェクトCのアーティファクトであるオブジェクトGを生成することができる。   If there is a token K whose parent is the object C, the owner of the token K is C, the client (indicating the owner's authority delegation destination) is J, and the scope is s, the object J is a proxy for the object C. For example, an object G that is an artifact of the object C can be generated.

本発明は、例えば以下の形態を有することができる。   The present invention can have the following forms, for example.

(1)本実施形態に係る情報処理装置1において、オーナー属性を持つオブジェクト(アクセストークンと呼称)のプロトタイプがオーナーに一致する場合(正規アクセストークンと呼称)、そのアクセストークンが添付されたメソッド送信は、オーナーにより認可されたものと解釈され、受理されることとしてよい。
(2)(1)において、アクセストークン自体のプロトタイプがオーナーのプロトタイプチェーンに含まれる場合(特異アクセストークンと呼称)、そのアクセストークンが添付されたメソッド送信は、オーナーにより認可されたものと解釈され、受理されることとしてよい。
(3)(2)において、特異アクセストークンの添付によってメソッド送信が受理された場合、オーナーに受理されたことを通知することとしてよい。
(4)(2)において、特異アクセストークンの添付によってメソッド送信が受理された場合、アクセストークン自体のプロトタイプに受理されたことを通知することとしてよい。
(5)(1)乃至(4)において、オブジェクト生成のためのメソッド(クローニング)を持ち、生成されたオブジェクトはオーナーのクローン(つまり、オーナーをプロトタイプとする)であることとしてよい。
(6)(1)乃至(5)において、アクセストークンはクライアント属性を持ち、アクセストークンが添付されたメソッド送信は、指定されたクライアントへ委譲されたものと解釈されることとしてよい。
(7)(1)乃至(6)において、アクセストークンはスコープ属性を持ち、アクセストークンが添付されたメソッド送信は、指定されたスコープの範囲で委譲されたものと解釈されることとしてよい。
(8)(1)乃至(7)において、クローン一覧取得のためのメソッド(クローンリスティング)を持ち、オーナーのクローンのコレクションを返却することとしてよい。
(9)(1)乃至(8)において、対象オブジェクトの表現取得のためのメソッドを持つこととしてよい。
(10)(1)乃至(9)において、対象オブジェクトの表現更新のためのメソッドを持ち、対象オブジェクトのプロトタイプに認可された場合に限り、表現更新が実行できることとしてよい。
(11)(1)乃至(10)において、対象オブジェクトの削除のためのメソッドを持ち、対象オブジェクトのプロトタイプに認可された場合に限り、削除が実行できることとしてよい。
(12)(1)乃至(11)において、メソッドの実行は、アクセストークンが指定するスコープに含まれる場合に限り、実行されることとしてよい。
(13)(1)乃至(12)において、対象オブジェクトのプロトタイプチェーンに含まれるオブジェクトに認可された場合、メソッドの実行が可能となることとしてよい。
(14)(1)乃至(13)において、対象オブジェクトのプロトタイプチェーンに含まれるオブジェクトに認可されてメソッドの実行を行った場合、対象オブジェクトのプロトタイプにメソッドが実行されたことを通知することとしてよい。
(15)(1)乃至(14)において、対象オブジェクトのプロトタイプチェーンに含まれるオブジェクトに認可されてメソッドの実行を行った場合、メソッド送信オーナーにメソッドが実行されたことを通知することとしてよい。
(16)(1)乃至(15)において、オブジェクト識別子はシステムによってランダムに生成されることとしてよい。
(17)(1)乃至(16)において、表現は、表現のハッシュ値として定まる識別子を持ち、オブジェクトと表現のバインディングはこの識別子を介して行われることとしてよい。
(18)(1)乃至(17)において、オブジェクト表現取得およびオブジェクト表現更新等の表現の送受信が発生するメソッド実行では、応答に表現識別子が付加されることとしてよい。
(19)(1)乃至(18)において、オブジェクト表現取得およびオブジェクト表現更新等の表現の送受信が発生するメソッド実行では、メソッド送信に表現識別子が付加され、付加された表現識別子に応じてメソッド実行が条件的に行われることとしてよい。
(20)(1)乃至(19)において、権限が満たされない対象オブジェクトへのメソッド送信の内容は保存され、対象オブジェクトのプロトタイプは送信内容を参照できることとしてよい。
(21)(1)乃至(20)において、メソッド送信に添加されたトークンは置換されることとしてよい。
(22)(1)乃至(21)において、対象オブジェクトのプロトタイプに事象が通知されることとしてよい。
(23)(1)乃至(22)において、通知はキューあるいはスタックに保存されることとしてよい。
(24)(1)乃至(23)において、オブジェクトへのメソッド送信の内容や付帯状況は記録され、オーナーは参照することができることとしてよい。
(25)(1)乃至(24)において、メソッド送信のトランスポートがHTTP over TLS (https)であることとしてよい。
(26)(1)乃至(25)において、アクセストークンがHTTPリクエストメッセージにおけるAuthorizationフィールドを利用して添付されることとしてよい。
(27)(1)乃至(26)において、クローニングがファクトリーリソースへのPOSTで表現されることとしてよい。
(28)(1)乃至(27)において、クローンリスティングがファクトリーリソースへのGETで表現されることとしてよい。
(29)(1)乃至(28)において、オブジェクト表現取得がエンティティリソースへのGETで表現されることとしてよい。
(30)(1)乃至(29)において、オブジェクト表現更新がエンティティリソースへのPUTで表現されることとしてよい。
(31)(1)乃至(30)において、メソッド送信のトランスポートがWebSocket over TLS (wss)であることとしてよい。
(1) In the information processing apparatus 1 according to the present embodiment, when the prototype of an object having an owner attribute (referred to as an access token) matches the owner (referred to as a regular access token), the method transmission to which the access token is attached May be interpreted and accepted as authorized by the owner.
(2) In (1), when the prototype of the access token itself is included in the owner's prototype chain (referred to as a unique access token), the method transmission to which the access token is attached is interpreted as being authorized by the owner. It may be accepted.
(3) In (2), when a method transmission is accepted by attaching a singular access token, the owner may be notified of the acceptance.
(4) In (2), when a method transmission is accepted by attaching a singular access token, it may be notified to the prototype of the access token itself.
(5) In (1) to (4), a method (cloning) for object generation may be provided, and the generated object may be an owner clone (that is, the owner is a prototype).
(6) In (1) to (5), the access token has a client attribute, and the method transmission to which the access token is attached may be interpreted as being delegated to the designated client.
(7) In (1) to (6), the access token has a scope attribute, and the method transmission to which the access token is attached may be interpreted as being delegated within the range of the designated scope.
(8) In (1) to (7), a method (clone listing) for obtaining a clone list may be provided, and the owner's clone collection may be returned.
(9) In (1) to (8), a method for acquiring the representation of the target object may be provided.
(10) In (1) to (9), a method for updating the expression of the target object may be provided, and the expression update may be executed only when the method is approved by the prototype of the target object.
(11) In (1) to (10), a method for deleting a target object may be provided, and deletion may be executed only when the method is approved by the prototype of the target object.
(12) In (1) to (11), the method may be executed only when it is included in the scope specified by the access token.
(13) In (1) to (12), if the object included in the prototype chain of the target object is authorized, the method may be executed.
(14) In (1) to (13), when a method is executed after being authorized by an object included in the prototype chain of the target object, the fact that the method has been executed may be notified to the prototype of the target object. .
(15) In (1) to (14), when a method is executed after being authorized by an object included in the prototype chain of the target object, the method transmission owner may be notified that the method has been executed.
(16) In (1) to (15), the object identifier may be randomly generated by the system.
(17) In (1) to (16), the expression may have an identifier determined as a hash value of the expression, and the binding between the object and the expression may be performed via this identifier.
(18) In method execution in which transmission / reception of expressions such as object expression acquisition and object expression update occurs in (1) to (17), an expression identifier may be added to the response.
(19) In method execution where transmission / reception of expressions such as object expression acquisition and object expression update occurs in (1) to (18), an expression identifier is added to method transmission, and method execution is performed according to the added expression identifier May be performed conditionally.
(20) In (1) to (19), the content of the method transmission to the target object whose authority is not satisfied may be saved, and the prototype of the target object may refer to the transmission content.
(21) In (1) to (20), the token added to the method transmission may be replaced.
(22) In (1) to (21), an event may be notified to the prototype of the target object.
(23) In (1) to (22), the notification may be stored in a queue or a stack.
(24) In (1) to (23), the contents of the method transmission to the object and the incidental situation are recorded, and the owner may refer to them.
(25) In (1) to (24), the method transmission transport may be HTTP over TLS (https).
(26) In (1) to (25), the access token may be attached using the Authorization field in the HTTP request message.
(27) In (1) to (26), cloning may be expressed by POST to a factory resource.
(28) In (1) to (27), the clone listing may be expressed as a GET to a factory resource.
(29) In (1) to (28), object representation acquisition may be represented by GET to an entity resource.
(30) In (1) to (29), the object expression update may be expressed by a PUT to an entity resource.
(31) In (1) to (30), the method transmission transport may be WebSocket over TLS (wss).

また、本実施形態において、クライアント装置2から受け付けた要求に対して、要求とともに受け付けたアクセストークンにより権限がない場合であっても、プロトタイプの情報についてはクライアント装置2に提供することとしても構わない。   Further, in the present embodiment, even if the request received from the client device 2 is not authorized by the access token received together with the request, the prototype information may be provided to the client device 2. .

1 情報処理装置、2 クライアント装置、11 木構造データ管理部、12 リクエスト受付部、13 権限情報取得部、14 検証部、15 リクエスト処理部、16 処理データ提供部。

DESCRIPTION OF SYMBOLS 1 Information processing apparatus, 2 Client apparatus, 11 Tree structure data management part, 12 Request reception part, 13 Authority information acquisition part, 14 Verification part, 15 Request processing part, 16 Process data provision part

Claims (4)

それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理する情報処理システムにおいて、
オーナー属性を持つオブジェクトであるアクセストークンのプロトタイプがオーナーに一致する場合に、前記アクセストークンが添付されたメソッド送信を受理する処理部を有する情報処理システム。
In an information processing system that manages information of an object for which at least one of a parent and a child is defined,
An information processing system including a processing unit that receives a method transmission to which an access token is attached when a prototype of an access token that is an object having an owner attribute matches an owner.
前記処理部は、前記アクセストークンのプロトタイプがオーナーの親のオブジェクトを順次接続した経路の中に含まれる場合に、該アクセストークンが添付されたメソッド送信は、前記オーナーにより認可されたものと解釈し、受理する
請求項1に記載の情報処理システム。
When the prototype of the access token is included in a route in which the parent objects of the owner are sequentially connected, the processing unit interprets that the method transmission to which the access token is attached is authorized by the owner. The information processing system according to claim 1.
前記処理部により前記メソッド送信が受理された場合に、前記オーナーに受理されたことを通知する通知部を有する
請求項2に記載の情報処理システム。
The information processing system according to claim 2, further comprising: a notification unit that notifies the owner that the method transmission is received when the method transmission is received by the processing unit.
それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理するコンピュータに、
オーナー属性を持つオブジェクトであるアクセストークンのプロトタイプがオーナーに一致する場合に、前記アクセストークンが添付されたメソッド送信を受理するステップを実行させるためのプログラム。

A computer that manages information on an object for which at least one of a parent and a child is defined,
A program for executing a step of receiving a method transmission to which an access token is attached when a prototype of an access token that is an object having an owner attribute matches an owner.

JP2013260999A 2013-12-18 2013-12-18 Information processing system and program Active JP6326807B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013260999A JP6326807B2 (en) 2013-12-18 2013-12-18 Information processing system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013260999A JP6326807B2 (en) 2013-12-18 2013-12-18 Information processing system and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013148173A Division JP5447722B1 (en) 2013-07-17 2013-07-17 Information processing system and program

Publications (3)

Publication Number Publication Date
JP2015022750A true JP2015022750A (en) 2015-02-02
JP2015022750A5 JP2015022750A5 (en) 2016-09-08
JP6326807B2 JP6326807B2 (en) 2018-05-23

Family

ID=52487086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013260999A Active JP6326807B2 (en) 2013-12-18 2013-12-18 Information processing system and program

Country Status (1)

Country Link
JP (1) JP6326807B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091816A (en) * 2000-09-08 2002-03-29 Internatl Business Mach Corp <Ibm> Access control system
JP2006079465A (en) * 2004-09-10 2006-03-23 Canon Inc Information processing method and device
JP2010015242A (en) * 2008-07-01 2010-01-21 Uchida Yoko Co Ltd Method of controlling heterogeneous smart environments
JP2011154496A (en) * 2010-01-27 2011-08-11 Fuji Xerox Co Ltd Program and device for setting access right and access right management system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091816A (en) * 2000-09-08 2002-03-29 Internatl Business Mach Corp <Ibm> Access control system
JP2006079465A (en) * 2004-09-10 2006-03-23 Canon Inc Information processing method and device
JP2010015242A (en) * 2008-07-01 2010-01-21 Uchida Yoko Co Ltd Method of controlling heterogeneous smart environments
JP2011154496A (en) * 2010-01-27 2011-08-11 Fuji Xerox Co Ltd Program and device for setting access right and access right management system

Also Published As

Publication number Publication date
JP6326807B2 (en) 2018-05-23

Similar Documents

Publication Publication Date Title
US11139979B2 (en) Primary and secondary blockchain device
US11475150B2 (en) Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database
US20170024425A1 (en) Client computer for updating a database stored on a server via a network
EP3510743B1 (en) Interchangeable retrieval of sensitive content via private content distribution networks
KR20210133289A (en) Data extraction from blockchain networks
JP2020504927A (en) Method and apparatus for a distributed database enabling deletion of events
JP5447722B1 (en) Information processing system and program
US8838679B2 (en) Providing state service for online application users
US11151261B2 (en) Blockchain system with severable data and cryptographic proof
US11526539B2 (en) Temporary reservations in non-relational datastores
US9292703B2 (en) Electronic document management method
JP2023544518A (en) Blockchain-based systems and methods for exposing operating systems
TW202220410A (en) Merkle proof entity
US11728928B2 (en) Securely sharing public and private blockchain data
JP2014235720A (en) Information disclosure system, information disclosure program, and information disclosure method
CN113743944A (en) Cross-chain message reliable transmission method and device and electronic equipment
JP6326807B2 (en) Information processing system and program
CN117118640A (en) Data processing method, device, computer equipment and readable storage medium
JP6419143B2 (en) Common program, database management apparatus, and database management method
JP6467999B2 (en) Information processing system and program
US11985252B1 (en) Resolving and managing blockchain domains
JP6083210B2 (en) Authentication information management system, authentication information management method, authentication information management program, and search system
US20230021702A1 (en) System and method for storing and retrieving a trusted secure data object by and among multiple parties
CN113010911B (en) Data access control method, device and computer readable storage medium
US20230336355A1 (en) Data protection on distributed data storage (dds) protection networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180307

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180402

R150 Certificate of patent or registration of utility model

Ref document number: 6326807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350