JP6716929B2 - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP6716929B2 JP6716929B2 JP2016015611A JP2016015611A JP6716929B2 JP 6716929 B2 JP6716929 B2 JP 6716929B2 JP 2016015611 A JP2016015611 A JP 2016015611A JP 2016015611 A JP2016015611 A JP 2016015611A JP 6716929 B2 JP6716929 B2 JP 6716929B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- name
- ticket
- token
- entity
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
しかし、そのために、識別情報を管理するため処理が煩雑になっている。
そこで、本発明は、実体を基点にして、複数の呼称とデータの組を管理するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
請求項1の発明は、トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、ハッシュ値とデータを対応させて記憶する第3の記憶手段と、ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段を有する情報処理装置である。
KVSでは保存したいデータに他のデータと識別するための文字列や数値(キーと呼ばれる)を割り当て、データとセットで記憶装置などに保管する。データの読み出し時には、予め設定したキーを指定すると、対応したデータを取り出すことができる。保存できるデータの種類は、文字列、画像、動画等のように電子データであればよい。
様々なシステムのデータを登録するので、それにより他のシステムが登録したデータが上書きされないようにするために、全体を統括するシステムはデータを登録するときにランダムの文字列を生成して、クライアントはそれを使って、そのデータの取得、更新、削除を行うシステムがある。
これにより、複数のシステムが保持しているデータを1か所に集めることが可能になる。
なお、CRUD(クラッド)とは、ほとんど全てのコンピュータソフトウェアが持つ4つの基本機能を示している。具体的には、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)である。ユーザーインタフェースが備えるべき機能(情報の参照/検索/更新)を指す用語としても使われる。図3の例に示すように、リソース管理装置300は、Create310の指示を受けた場合、{”key”,”value”}を登録し、その{”key”,”value”}のペアを抽出するためのID(ランダムの文字列)を返す。そして、リソース管理装置300は、Read320の指示を受けた場合、ID(Create310で返されたID)を指定された場合は、そのIDに対応する{”key”,”value”}のペアを返す。また、リソース管理装置300は、Update330の指示を受けた場合、IDと{”key”,”value2”}のペアを受け、そのIDに対応する{”key”,”value”}を{”key”,”value2”}に書き換えることを行う。そして、リソース管理装置300は、Delete340の指示を受けた場合、IDに対応するデータである{”key”,”value”}(Update330の後は、{”key”,”value2”})を、リソース管理装置300内から削除する。
・IDを失わないためのインデックス作成
つまり、各システムが使っているIDとランダムの文字列の関係をどこかに持たせなければならない。
・複数のデータソースからの名寄せのためのIDのとりまとめ
つまり、複数のシステムを横断して、データを参照するときに個々のシステムが格納したIDを束ねて管理しなければならない。
・データを使用するときに、とりまとめたデータからデータのIDを抽出する処理
つまり、複数のシステムを横断して、データを参照した結果、他のデータを参照したい場合に関係が保存されていないので、関係を解決できるシステムに問い合わせなければならない。
図4の例に示すように、「(1)作成」として、実体に対して、ランダムの文字列であるIDを割り当てる。そして、「(2)作成」として、3つのIDをとりまとめて新たなID(ランダムの文字列)を割り当てる。次に、「(3)束ね情報として作成」として、(2)で作成したIDを実体のIDと対応付ける必要がある。そして、「(4)配信」として、各データツール(各システム)に各システムにおけるIDを配信して、「(5)受信してそれぞれ格納」として、各データツールで実体のIDとランダムの文字列であるIDの対を格納する必要がある。
例えば、図5の例に示した構造に、セット追加対象600の追加に伴い、インデックスに様々な情報を追加していかなければならない。
つまり、(1)セット追加対象600を追加した場合、(A2)機械番号束へ参照を追加し、(A3)機械番号3桁束へ参照を追加し、(A4)表意機種コードセット束へ参照を追加する。そして、(B2)機械番号束へ参照を追加し、(B3)機械番号3桁束へ参照を追加し、(B4)それぞれの機種コード束へ参照を追加する必要がある。
さらに、インデックスは参照先のデータがあって初めて、参照元のデータを作ることになるので、一括でデータを作ることが難しい。つまり、セット追加対象600のデータの格納以外のインデックスに関して多くの処理を要する。
(1)新サービス情報710のエントリを作成(追加)した場合、(2)デバイス情報束の全てを更新し、(3)機械番号束720、機械番号3桁束730、機種コードセット束740の順に作成する必要がある。つまり、このように、情報の種類を1つ追加するだけで、膨大な数の更新が発生する。
しかも、そのサービスを実際に使うかはユーザー次第であるため、無駄なエントリの作成や更新処理が発生していることになる。
これが、前述したようなID管理の煩雑さを生み、システムを使いにくくしていた。図8の例では、基盤システム870では、1つの実体800に対して、データ814の呼称812を用い、データ834の呼称832を用い、データ854の呼称852を用いなければならないことになる。
その本質は、実体を基点にして、複数の呼称と複数のデータがあることを考慮できていないためにそうなっており、実体を示す情報(ID)を利用することで解決が可能となる。
<第1の実施の形態>
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に1対1に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(1対1対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
情報処理装置100は、例えば、利用者識別のためにOAuth2.0のBearerトークンによって認証を行うシステム等としてもよい。そして、RESTのインタフェースを提供し、HTTP(HyperText Transfer Protocol)のPOST/GET/PUT/DELETEがデータの作成/取得/更新/削除に対応したシステムとしてもよい。
情報処理装置100は、あるユーザー(自分以外のユーザー)が「ある呼称A」で指す実体が、自分の「ある呼称B」で指すものと同じであることを設定できる機能を付けたシステムである。「ある呼称A」、「ある呼称B」は、システム毎(あるユーザーが用いているシステム、自分のシステム)に異なっていてもよい。もちろんのことながら、同じ呼称であってもよい。
通信モジュール110は、他の情報処理装置から、「ユーザーを示すトークン」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け取る。ここで、「ユーザーを示すトークン」として、例えば、前述のOAuth2.0のBearerトークン等を用いる。指示として、例えば、前述のCRUDがある。より具体的には、前述のHTTPのPOST/GET/PUT/DELETE等が該当する。
ここで呼称は、ユーザーが用いているシステムにおける呼称であって、同じ実体に対してそのシステム毎に異なっていてもよい。つまり、同じ実体に対して、例えば、システムAでは、「NC100358−000001」であり、システムBでは異なる名前である「A4C570G4−000001」とすることを許すものである。もちろんのことながら、同じ実体に対して異なるシステムであっても同じ呼称であってもよい。
そして、処理モジュール120は、「通信モジュール110が受け付けたトークン」と「抽出した実体を示す情報」に対応する「ハッシュ値」を、データ属性記憶モジュール140から抽出する。
次に、処理モジュール120は、「抽出したハッシュ値」に対応するデータを、データ記憶モジュール150から抽出する。
そして、抽出したデータに対して、通信モジュール110によって受け付けられた指示にしたがった処理を行う。
情報処理装置100、ユーザー端末200A、ユーザー端末200B、ユーザー端末200C、画像処理装置210A、画像処理装置210Bは、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置100による機能は、クラウドサービスとして実現してもよい。
ユーザー端末200は、ユーザーが使用する情報処理装置である。例えば、PC(personal computer、例えば、デスクトップPC、ノートPC等を含む)や、携帯端末(スマートフォン等の携帯電話等)がある。画像処理装置210としては、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)等がある。例えば、画像処理装置210から処理の履歴(ログ)等が送られてきてもよい。この他に、情報家電、ロボット等であってもよい。
情報処理装置100は、ユーザー端末1210から指示等1212、ユーザー端末1220から指示等1222、ユーザー端末1230から指示等1232を受け取る。指示等1212として、例えば、「POST/NC100358−000001 Authorization:Bearer d743af8b97」がある。指示等1222として、例えば、「POST/A4C570G4−000001 Authorization:Bearer ca083f8dae」がある。指示等1232として、例えば、「POST/A4C570NG−000001 Authorization:Bearer 34766af9f8」がある。つまり、前述の「呼称で示される実体に関するデータに対する処理の指示」と「呼称」と「トークン」を受け取る。
そして、それらの呼称は実体1200(実体ID1202)を示しており、その実体1200(実体ID1202)に対応付けられているデータ1214、データ1224、データ1234に対して指示に応じた処理を行う。詳細な処理内容については、図13〜図18の例を用いて説明する。
ステップS1302では、ユーザー端末からトークンと呼称の組み合わせを受け取る。
ステップS1304では、呼称管理テーブル900を用いて、トークンと呼称の組み合わせに対応する実体IDを抽出する。
ステップS1306では、データ属性管理テーブル1000を用いて、トークンと実体IDの組み合わせに対応するハッシュ値を抽出する。
ステップS1308では、データ管理テーブル1100を用いて、ハッシュ値に対応するデータを抽出する。
ステップS1310では、ステップS1308で抽出したデータをユーザー端末に送信する。
ユーザー端末1210は、そのシステムにおける実体1200の呼称1412とトークンであるユーザーID1414を情報処理装置100に送信する。なお、図14の例では、「指示」は省略しているが、例えば、Read(読み取り)等であってもよい。
情報処理装置100は、呼称1412とユーザーID1414を受け取り、呼称管理テーブル900から対象データ1440の行を抽出する。対象データ1440は、トークン欄910内のデータと、呼称欄920内のデータの組み合わせである。そして、対象データ1440に対応する実体ID欄930内の対象データ1445を抽出する。次に、データ属性管理テーブル1000から、トークンであるユーザーID1414と対象データ1445の組み合わせの行(対象データ1450)を抽出する。対象データ1450は、トークン欄1010内のデータと、実体ID欄1020内のデータの組み合わせである。そして、対象データ1450に対応するハッシュ値欄1030内の対象データ1455を抽出する。次に、データ管理テーブル1100から、対象データ1455に対応するハッシュ値欄1110内の対象データ1460を抽出する。そして、対象データ1460に対応する対象データ1465を抽出する。対象データ1465は、データ欄1120内のデータである。そして、その対象データ1465に対して、ユーザー端末1210から送信されてきた「指示」にしたがった処理を行う。前述のRead(読み取り)の例では、対象データ1465をユーザー端末1210に返信する。
ステップS1502では、ユーザー端末からトークンと呼称の組み合わせ(A)とそれに対応する他のトークンと呼称の組み合わせ(B)を受け取る。
ステップS1504では、呼称管理テーブル900を用いて、他のトークンと呼称の組み合わせ(B)に対応する実体IDを抽出する。
ステップS1506では、呼称管理テーブル900内に、トークンと呼称の組み合わせ(A)と対応させて、ステップS1504で抽出した実体IDを格納する。
ステップS1508では、データ追加成功をユーザー端末に送信する。
具体的には、ユーザー端末1640を用いるユーザーは、呼称の対応表を手に入れ、情報処理装置100における名前登録用のインタフェースを通じて、自身の「会議室のコピー機」(呼称1642、実体1200の呼称)は、ユーザー端末1210のユーザーAにおける「NC100358−000001」と同じであるということを登録する場合の処理である。つまり、1つの実体1200に対して、ユーザー端末1640におけるシステムでは「会議室のコピー機」と命名し、ユーザー端末1210におけるシステムでは「NC100358−000001」と命名されており、これが同じ実体であることを示す処理(名寄せ処理)である。図16の例では、「指示」は省略しているが、Create(生成)である。
情報処理装置100は、ユーザーID1644、呼称1642、呼称対応データ1650を受け取り、呼称対応データ1650を用いて呼称管理テーブル900から対象データ1660の行を抽出する。つまり、呼称対応データ1650内のトークンと呼称(呼称管理テーブル900に既に登録されている呼称)の組み合わせである対象データ1660の行を抽出する。なお、対象データ1660は、トークン欄910内のデータと、呼称欄920内のデータの組み合わせである。そして、対象データ1660に対応する実体ID欄930内の対象データ1665を抽出する。
次に、呼称管理テーブル900に新しい行(対象データ1670)を追加し、トークンであるユーザーID1644をトークン欄910に挿入し、呼称1642を呼称欄920に挿入し、対象データ1665を実体ID欄930に挿入する。なお、対象データ1670は、トークン欄910内のデータと、呼称欄920内のデータと、実体ID欄930内のデータの組み合わせである。
対象データ1670が呼称管理テーブル900に追加されたことによって、ユーザーID1644のユーザーは、「会議室のコピー機」という呼称によって実体1200と対応させることができるようになる。
ステップS1702では、ユーザー端末からトークンと呼称の組み合わせとデータを受け取る。
ステップS1704では、呼称管理テーブル900を用いて、トークンと呼称の組み合わせに対応する実体IDを抽出する。
ステップS1706では、データ属性管理テーブル1000を用いて、トークンと実体IDの組み合わせに対応するハッシュ値を抽出する。
ステップS1708では、データ管理テーブル1100内に、ハッシュ値に対応させて、データを格納する。
ステップS1710では、データ追加成功をユーザー端末に送信する。
具体的には、ユーザー端末1640のユーザーは、呼称1642(「会議室のコピー機」)について、登録データ1850(「状態:A4用紙補充済」)を情報処理装置100に登録するものである。図18の例では、「指示」は省略しているが、Update(更新)である。
図19、第2の実施の形態の構成例についての概念的なモジュール構成図を示している。
情報処理装置1900は、通信モジュール110、処理モジュール1920、トークン記憶モジュール1930、チケット記憶モジュール1940、呼称記憶モジュール1950、データ属性記憶モジュール1960、データ記憶モジュール150を有している。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。
第2の実施の形態は、複数のシステム間を横断して、同じ実体に対応するデータの参照を実現するために、権限を表現するものとしてチケットという概念を、第1の実施の形態に対して導入する。
第1の実施の形態におけるトークン(アクセストークン)をチケットとして扱い、トークンは複数のチケットの集合とする。
チケットは他のユーザーに対して、権限を認可して、与えることを可能とする。
第1の実施の形態の構成に加えて、トークン記憶モジュール1930とチケット記憶モジュール1940を追加する。なお、呼称記憶モジュール1950は第1の実施の形態の呼称記憶モジュール130を拡張したものであり、データ属性記憶モジュール1960は第1の実施の形態のデータ属性記憶モジュール140を拡張したものである。
チケットはチケットの作成者であるオーナー名とオーナーが付けた任意のチケット名と、これまでトークンとして構成していた文字列を代替するチケットIDから構成されている。
トークン記憶モジュール1930は、処理モジュール1920と接続されている。トークン記憶モジュール1930は、「トークン」と「チケットの所有者を示す情報(いわゆるオーナーである)」と「そのチケットの名称」と「そのチケットが示す権限」を対応させて記憶する。例えば、トークン管理テーブル2000を記憶している。図20は、トークン管理テーブル2000のデータ構造例を示す説明図である。トークン管理テーブル2000は、トークン欄2010、チケット欄2020、権限欄2030を有している。チケット欄2020は、オーナー名欄2022、チケット名欄2024を有している。トークン欄2010は、トークンを記憶している。チケット欄2020は、チケットを記憶している。オーナー名欄2022は、そのチケットのオーナー名を記憶している。チケット名欄2024は、そのチケットのチケット名を記憶している。権限欄2030は、そのチケットによって許可された権限を記憶している。
なお、トークン記憶モジュール1930は、複数のチケット情報のエントリを持ち、そのチケット毎に設定された権限でデータ操作が可能となる。例えば、あるユーザーに認可するチケットではデータのREADしか行えないということが可能となる。
データ属性管理テーブル2220は、チケットID欄2222、実体ID欄2224、ハッシュ値欄2226を有している。チケットID欄2222は、チケットIDを記憶している。実体ID欄2224は、実体IDを記憶している。ハッシュ値欄2226は、ハッシュ値を記憶している。つまり、図10の例に示したデータ属性管理テーブル1000のトークン欄1010をチケットID欄2222としたものである。
データ記憶モジュール150は、処理モジュール1920と接続されている。データ記憶モジュール150は、「ハッシュ値」と「データ」を対応させて記憶する。
処理モジュール1920は、「ユーザーを示すトークン」と「チケットの所有者を示す情報」と「そのチケットの名称」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け付けた場合は、チケットが示す権限を、トークン記憶モジュール1930から抽出する。
そして、処理モジュール1920は、「通信モジュール110が受け付けたチケットの所有者を示す情報」と「そのチケットの名称」に対応するチケットを示す情報を、チケット記憶モジュール1940から抽出する。
次に、処理モジュール1920は、「抽出したチケットを示す情報」と「通信モジュール110が受け付けた呼称」に対応する実体を示す情報を、呼称記憶モジュール1950から抽出する。
そして、処理モジュール1920は、「抽出したチケットを示す情報」と「抽出した実体を示す情報」に対応するハッシュ値を、データ属性記憶モジュール1960から抽出する。
次に、処理モジュール1920は、「抽出したハッシュ値」に対応するデータを、データ記憶モジュール150から抽出する。
そして、処理モジュール1920は、抽出したデータに対して、抽出した権限の範囲内で、通信モジュール110によって受け付けられた指示にしたがった処理を行う。
通信モジュール110は、「トークン」と「チケット(チケットのオーナー名とチケット名によって構成されている)」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け取る。
そして、処理モジュール1920は、通信モジュール110が受け取った「トークン」と「チケット」(対象データ2310)から、トークン管理テーブル2000を用いて、そのトークンとチケットに対応する権限(権限欄2030、ここでは「READ」)を抽出する。なお、対象データ2310は、オーナー名欄2022内のデータと、チケット名欄2024内のデータの組み合わせである。
次に、「チケット」(対象データ2320)から、チケット管理テーブル2100を用いてチケットID(対象データ2330)を抽出する。なお、対象データ2320は、オーナー名欄2110内のデータと、チケット名欄2120内のデータの組み合わせである。
この後は、第1の実施の形態におけるトークンをチケットID(対象データ2340、対象データ2350)として、呼称管理テーブル2200、データ属性管理テーブル2220、データ管理テーブル1100を用いて、第1の実施の形態による処理と同等の処理を行って、データ管理テーブル1100のデータ欄1120のデータにたどり着き、そのデータに対して「指示」にしたがった処理を行う。ただし、ここでは、権限READの範囲での処理を行うことになる。
ステップS2402では、ユーザー端末からトークンとチケットと呼称の組み合わせを受け取る。
ステップS2404では、トークン管理テーブル2000を用いて、チケットの権限を抽出する。
ステップS2406では、チケット管理テーブル2100を用いて、チケットのチケットIDを抽出する。
ステップS2408では、チケットIDを用いて、呼称管理テーブル2200、データ属性管理テーブル2220、データ管理テーブル1100内のデータに対して、権限の範囲での処理を行う。
ステップS2410では、処理成功をユーザー端末に送信する。
チケット2508として、「オーナー名:d81e515cc0、チケット名:data」を有しており、チケット2518として、「オーナー名:d743af8b97、チケット名:data、権限:CREATE、READ、UPDATE、DELETE」を有しており、チケット2520として、「オーナー名:d743af8b97、チケット名:data、権限:READ」を有している。なお、図25の例では図示していないが、チケット2508では、自分のデータであるので「権限:CREATE、READ、UPDATE、DELETE」を有している。
ユーザー端末2502のユーザーは、チケット2508を有している。ユーザー端末2512のユーザーは、チケット2518を有している。なお、ユーザー端末2502のユーザーは、ユーザー端末2512のユーザーからチケット2520を受けている。ただし、図25の例では、このチケット2520は用いない。
実体データ2532として、「オーナー名:d81e515cc0、チケット名:data、呼称:NC100358−000001」を有しており、実体データ2534として、「オーナー名:d743af8b97、チケット名:data、呼称:A4C570G4−000001」を有しており、実体データ2536として、「オーナー名:d743af8b97、チケット名:data、呼称:NC100358−000001」を有している。
データ2542として、「オーナー名:d81e515cc0、チケット名:data、実体:630cff54bc」を有しており、データ2544として、「オーナー名:d743af8b97、チケット名:data、実体:630cff54bc」を有しており、データ2546として、「オーナー名:34766af9f8、チケット名:data、実体:630cff54bc」を有している。
各データ操作に対して、呼称から実体を解決(抽出)する処理と、実体からデータを解決する処理で使用するチケットを切り替えられるようにしている。
具体的には、HTTPヘッダーにそれぞれの処理で使用するチケットを指定する拡張ヘッダーを設け、行使するチケットを切り替える。
図26の例では、他のユーザーのデータにアクセスするものである。
呼称から実体を解決するステップにて自身の使用している呼称を用いて実体を特定し、実体からデータを解決するステップにて、他のユーザーより認可されたチケット2520を使用することで、他ユーザーが使用している名前を知らなくても、他のユーザーのデータを取得することが可能になる。
HTTPヘッダーとして、例えば、アクセス記述2610を記述する。具体的な例として、以下の記載が行われている。
(1)GET/NC100358−000001 HTTP 1.1
(2)Authorization : Bearer d81e515cc0
(3)X−CallAs: data; owner=d81e515cc0
(4)X−ProcessAs: data; owner=d743af8b97
このアクセス記述2610の3行目は、「呼称の解決」を意味し、アクセス記述2610の4行目は、「データの解決」を意味する。
オーナー名としてトークン(アクセストークン)を直接用いると、トークンが他者に漏れた場合にトークンを破棄できなくなってしまうため、トークン記憶モジュール1930を、トークン管理テーブル2700、ユーザーチケット管理テーブル2800のような構成にしてもよい。これによって、システムの認証操作でトークンとユーザーIDの紐付け(関連付け)を設定できるようにする。したがって、トークンを破棄可能にすることができる。
また、これにより、トークン以外はヒューマンリーダブルな文字列でHTTPリクエストを作成することが可能になり、開発が容易になる。
図27は、トークン管理テーブル2700のデータ構造例を示す説明図である。トークン管理テーブル2700は、トークン欄2710、ユーザーID欄2720を有している。つまり、トークン管理テーブル2700は、トークンとユーザーを示す情報を対応させて記憶している。トークン欄2710は、トークンを記憶している。ユーザーID欄2720は、本実施の形態において、ユーザーを一意に識別するための情報(ユーザーID)を記憶している。
処理モジュール1920は、通信モジュール110が「トークン」と「チケットの所有者を示す情報」と「そのチケットの名称」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け付けた場合は、そのトークンに対応するユーザーを示す情報を、トークン管理テーブル2700から抽出する。
そして、処理モジュール1920は、抽出したユーザーを示す情報と通信モジュール110が受け付けたチケットの所有者を示す情報とそのチケットの名称に対応する権限を、ユーザーチケット管理テーブル2800から抽出する。
次に、処理モジュール1920は、通信モジュール110が受け付けたチケットの所有者を示す情報とそのチケットの名称に対応するチケットを示す情報を、チケット記憶モジュール1940から抽出する。
そして、処理モジュール1920は、抽出したチケットを示す情報と通信モジュール110が受け付けた呼称に対応する実体を示す情報を、呼称記憶モジュール1950から抽出する。
次に、処理モジュール1920は、抽出したチケットを示す情報と抽出した実体を示す情報に対応するハッシュ値を、データ属性記憶モジュール1960から抽出する。
そして、処理モジュール1920は、抽出したハッシュ値に対応するデータを、データ記憶モジュール150から抽出する。
次に、処理モジュール1920は、抽出したデータに対して、抽出した権限の範囲内で、通信モジュール110が受け付けた指示にしたがった処理を行う。
図29の例では、他のユーザーのデータにアクセスするものである。
HTTPヘッダーとして、例えば、アクセス記述2910を記述する。具体的な例として、以下の記載が行われている。
(1)GET/NC100358−000001 HTTP 1.1
(2)Authorization : Bearer d81e515cc0
(3)X−CallAs: data; owner=maintenance_system
(4)X−ProcessAs: data; owner=counter_system
このアクセス記述2910の3行目は、「呼称の解決」を意味し、アクセス記述2910の4行目は、「データの解決」を意味する。
チケット2902として、「オーナー名:maintenance_system、チケット名:data」を有しており、チケット2904として、「オーナー名:counter_system、チケット名:data、権限:READ」を有している。
対象データ2912は、「d81e515cc0」である。対象データ2912からトークン管理テーブル2700を用いて、対象データ2920(特に、ユーザーID欄2720のユーザーID)を抽出する。対象データ2920は、トークン欄2710内のデータと、ユーザーID欄2720内のデータの組み合わせである。
そして、対象データ2920内のユーザーIDとチケット2902とチケット2904から、ユーザーチケット管理テーブル2800を用いて、対象データ2930、対象データ2935を抽出する。対象データ2930は、ユーザーID欄2810内のデータと、オーナー名欄2822内のデータと、チケット名欄2824内のデータの組み合わせである。対象データ2935は、ユーザーID欄2810内のデータと、オーナー名欄2822内のデータと、チケット名欄2824内のデータの組み合わせである。
次に、対象データ2930内のオーナー名とチケット名から、チケット管理テーブル2100を用いて、対象データ2940を抽出する。そして、対象データ2935内のオーナー名とチケット名から、チケット管理テーブル2100を用いて、対象データ2945を抽出する。対象データ2940は、オーナー名欄2110内のデータと、チケット名欄2120内のデータの組み合わせである。対象データ2945は、オーナー名欄2110内のデータと、チケット名欄2120内のデータの組み合わせである。
この後は、前述したように、呼称管理テーブル2200、データ属性管理テーブル2220、データ管理テーブル1100を用いて、実体に関するデータにたどり着き、そのデータ群に対して、抽出した権限(チケット2902ではCREATE、READ、UPDATE、DELETE、チケット2904ではREAD)の範囲内で、通信モジュール110が受け付けた指示にしたがった処理を行う。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読み出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読み出し専用メモリ(ROM)、電気的消去及び書換可能な読み出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
110…通信モジュール
120…処理モジュール
130…呼称記憶モジュール
140…データ属性記憶モジュール
150…データ記憶モジュール
200…ユーザー端末
210…画像処理装置
290…通信回線
1900…情報処理装置
1920…処理モジュール
1930…トークン記憶モジュール
1940…チケット記憶モジュール
1950…呼称記憶モジュール
1960…データ属性記憶モジュール
Claims (2)
- トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、
トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、
ハッシュ値とデータを対応させて記憶する第3の記憶手段と、
ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、
前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、
前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、
前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段
を有する情報処理装置。 - コンピュータを、
トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、
トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、
ハッシュ値とデータを対応させて記憶する第3の記憶手段と、
ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、
前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、
前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、
前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段
として機能させるための情報処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016015611A JP6716929B2 (ja) | 2016-01-29 | 2016-01-29 | 情報処理装置及び情報処理プログラム |
US15/221,915 US20170220571A1 (en) | 2016-01-29 | 2016-07-28 | Information Processing Device, Information Processing Method, and Non-Transitory Computer Readable Medium Storing Information Processing Program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016015611A JP6716929B2 (ja) | 2016-01-29 | 2016-01-29 | 情報処理装置及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017134728A JP2017134728A (ja) | 2017-08-03 |
JP6716929B2 true JP6716929B2 (ja) | 2020-07-01 |
Family
ID=59385611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016015611A Active JP6716929B2 (ja) | 2016-01-29 | 2016-01-29 | 情報処理装置及び情報処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170220571A1 (ja) |
JP (1) | JP6716929B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7179791B2 (ja) * | 2020-01-30 | 2022-11-29 | Kddi株式会社 | サービス提供システム、認証装置、サービス提供装置、サービス提供方法、認証プログラム及びサービス提供プログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1485833A4 (en) * | 2001-11-20 | 2005-10-12 | Contentguard Holdings Inc | EXTENSIBLE RIGHTS EXPRESSION PROCESSING SYSTEM |
JP2005242740A (ja) * | 2004-02-27 | 2005-09-08 | Open Loop:Kk | 情報セキュリティシステムのプログラム、記憶媒体、及び情報処理装置 |
JP5790653B2 (ja) * | 2010-07-09 | 2015-10-07 | 日本電気株式会社 | サービス提供システム |
JP5439443B2 (ja) * | 2011-07-26 | 2014-03-12 | 日本電信電話株式会社 | 情報管理システムとそのデータ連携操作方法、プログラム |
-
2016
- 2016-01-29 JP JP2016015611A patent/JP6716929B2/ja active Active
- 2016-07-28 US US15/221,915 patent/US20170220571A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170220571A1 (en) | 2017-08-03 |
JP2017134728A (ja) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8856077B1 (en) | Account cloning service for cloud computing environments | |
US9075788B1 (en) | Account state simulation service for cloud computing environments | |
JP2003044473A (ja) | インターネット・プレゼンテーション・システム及び方法、プロジェクタ装置 | |
US10621069B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
US20130024769A1 (en) | Apparatus and method for processing a document | |
CN116018779A (zh) | 面向软件即服务租户的基于策略的基因组数据共享 | |
US8812467B2 (en) | Information processing apparatus and computer readable medium for performing history cancellation processing | |
US12002554B2 (en) | Management and tracking solution for specific patient consent attributes and permissions | |
JP2008305221A (ja) | アクセス権設定装置、アクセス権設定方法、及びアクセス権設定プログラム | |
JP2008117220A (ja) | ユーザー管理システム、ユーザー管理プログラムおよびユーザー管理方法 | |
JP2009252041A (ja) | 帳票イメージ管理システム、帳票イメージ管理方法、および帳票イメージ管理プログラム | |
JP2017102711A (ja) | 情報処理装置、情報処理システム、それらの制御方法、及びプログラム | |
CN109657167A (zh) | 数据采集方法、装置、服务器及存储介质 | |
JP6716929B2 (ja) | 情報処理装置及び情報処理プログラム | |
US20200311027A1 (en) | File management device and non-transitory computer readable medium | |
US10805176B2 (en) | SW framework support method for open IPMI and DCMI development | |
WO2019237589A1 (zh) | 自动授权方法、装置、计算机设备及计算机存储介质 | |
JP6443007B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP2014191766A (ja) | 貸出管理システム、貸出管理装置および貸出管理方法 | |
JP6277778B2 (ja) | 情報処理装置、情報処理システム、プログラム | |
CN102880380A (zh) | 信息处理装置和信息管理方法 | |
JP6865367B2 (ja) | 情報処理装置及び情報処理プログラム | |
US20220067183A1 (en) | Information processing apparatus and non-transitory computer readable medium | |
JP4882550B2 (ja) | オブジェクト管理システム及びオブジェクト管理方法、並びにコンピュータ・プログラム | |
JP2018018211A (ja) | 情報処理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200114 |
|
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: 20200512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200525 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6716929 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 |