JP6716929B2 - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

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
Application number
JP2016015611A
Other languages
English (en)
Other versions
JP2017134728A (ja
Inventor
修平 江上
修平 江上
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
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2016015611A priority Critical patent/JP6716929B2/ja
Priority to US15/221,915 priority patent/US20170220571A1/en
Publication of JP2017134728A publication Critical patent/JP2017134728A/ja
Application granted granted Critical
Publication of JP6716929B2 publication Critical patent/JP6716929B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

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には、複数の情報サービスにおける情報を収集するためには、複数の情報サービスにアクセスすることが必要であることを課題とし、互いに異なる情報サービスにかかる特定情報を収集、表示するために、特定情報を変換する変換手段を設けておき、当該変換手段で特定情報を変換することによって、異なる情報サービスにおいて用いられている特定情報をも含む情報を一括して収集し、携帯端末に表示するシステムが得られることが開示されている。
特開2014−044465号公報
KeyValueStoreでは、データの呼称とデータが1対1の対応になっており、複数のシステム間で重複なくデータを管理するためには、その呼称として互いに独立の識別情報が必要である。
しかし、そのために、識別情報を管理するため処理が煩雑になっている。
そこで、本発明は、実体を基点にして、複数の呼称とデータの組を管理するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、ハッシュ値とデータを対応させて記憶する第3の記憶手段と、ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段を有する情報処理装置である。
請求項の発明は、コンピュータを、トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、ハッシュ値とデータを対応させて記憶する第3の記憶手段と、ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段として機能させるための情報処理プログラムである。
請求項1の情報処理装置によれば、実体を基点にして、複数の呼称とデータの組を管理することができる。
請求項の情報処理プログラムによれば、実体を基点にして、複数の呼称とデータの組を管理することができる。
第1の実施の形態の構成例についての概念的なモジュール構成図である。 本実施の形態を利用したシステム構成例を示す説明図である。 リソース管理装置の機能例を示す説明図である。 既存のKeyValueStoreの処理例を示す説明図である。 既存のKeyValueStoreの処理例を示す説明図である。 既存のKeyValueStoreの処理例を示す説明図である。 既存のKeyValueStoreの処理例を示す説明図である。 既存のKeyValueStoreの処理例を示す説明図である。 呼称管理テーブルのデータ構造例を示す説明図である。 データ属性管理テーブルのデータ構造例を示す説明図である。 データ管理テーブルのデータ構造例を示す説明図である。 第1の実施の形態による処理例を示す説明図である。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示す説明図である。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示す説明図である。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示す説明図である。 第2の実施の形態の構成例についての概念的なモジュール構成図である。 トークン管理テーブルのデータ構造例を示す説明図である。 チケット管理テーブルのデータ構造例を示す説明図である。 呼称管理テーブル、データ属性管理テーブルのデータ構造例を示す説明図である。 第2の実施の形態による処理例を示す説明図である。 第2の実施の形態による処理例を示すフローチャートである。 第2の実施の形態による処理例を示す説明図である。 第2の実施の形態による処理例を示す説明図である。 トークン管理テーブルのデータ構造例を示す説明図である。 ユーザーチケット管理テーブルのデータ構造例を示す説明図である。 第2の実施の形態による処理例を示す説明図である。 本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
KeyValueStore(キーバリューストア)は、データの保存・管理手法の1つで、任意の保存したいデータ(値:value)に対し、対応する一意の標識(key)を設定し、これらをペアで保存する方式である。また、そのような機能を提供するシステムやソフトウェアのことを指す場合も含む。
KVSでは保存したいデータに他のデータと識別するための文字列や数値(キーと呼ばれる)を割り当て、データとセットで記憶装置などに保管する。データの読み出し時には、予め設定したキーを指定すると、対応したデータを取り出すことができる。保存できるデータの種類は、文字列、画像、動画等のように電子データであればよい。
KeyValueStoreとして任意のデータをHTTPでCRUDできるシステムに、データを登録しデータ分析、活用に結び付けたい。
様々なシステムのデータを登録するので、それにより他のシステムが登録したデータが上書きされないようにするために、全体を統括するシステムはデータを登録するときにランダムの文字列を生成して、クライアントはそれを使って、そのデータの取得、更新、削除を行うシステムがある。
これにより、複数のシステムが保持しているデータを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を束ねて管理しなければならない。
・データを使用するときに、とりまとめたデータからデータのIDを抽出する処理
つまり、複数のシステムを横断して、データを参照した結果、他のデータを参照したい場合に関係が保存されていないので、関係を解決できるシステムに問い合わせなければならない。
図4の例に示すように、「(1)作成」として、実体に対して、ランダムの文字列であるIDを割り当てる。そして、「(2)作成」として、3つのIDをとりまとめて新たなID(ランダムの文字列)を割り当てる。次に、「(3)束ね情報として作成」として、(2)で作成したIDを実体のIDと対応付ける必要がある。そして、「(4)配信」として、各データツール(各システム)に各システムにおけるIDを配信して、「(5)受信してそれぞれ格納」として、各データツールで実体のIDとランダムの文字列であるIDの対を格納する必要がある。
このようにデータを作成した場合、本質の「データ」以外で多くの「データを束ねるデータ」を作らなければ運用できなくなってしまう。例えば、図5に示すように、データである「複合機サービス情報」、「フィールド情報」、「機能別カウンター情報」、「ユーザー情報」、「デバイス別集計結果」、「ユーザー別集計結果」、「事業所コード別集計結果」に対して、各システムでインデックスが複数作成されている。例えば、データ集計時の参照パスとして、「複合機サービス情報」等を参照するのに、「表意機種コードセット束」、「機械番号頭3桁束」、「機械番号束」、「デバイス情報束」のインデックスをたどって参照する必要がある。また、データ更新時の参照パスとして、「複合機サービス情報」を参照するのに、データ更新時の参照パスとして、「表意機種コードセット束」、「機械番号3桁束」、「機械番号束」のインデックスをたどって参照する必要がある。そして、「表意機種コードセット」、「表意機種コード」、「機種コード」のように、同じデバイスであってもシステムによって呼び方が異なるために、複数本のパスが存在することになる。
また、図6の例を用いて、データ追加時の更新処理の波及についても処理が膨大になることを説明する。
例えば、図5の例に示した構造に、セット追加対象600の追加に伴い、インデックスに様々な情報を追加していかなければならない。
つまり、(1)セット追加対象600を追加した場合、(A2)機械番号束へ参照を追加し、(A3)機械番号3桁束へ参照を追加し、(A4)表意機種コードセット束へ参照を追加する。そして、(B2)機械番号束へ参照を追加し、(B3)機械番号3桁束へ参照を追加し、(B4)それぞれの機種コード束へ参照を追加する必要がある。
さらに、インデックスは参照先のデータがあって初めて、参照元のデータを作ることになるので、一括でデータを作ることが難しい。つまり、セット追加対象600のデータの格納以外のインデックスに関して多くの処理を要する。
次に、図7の例を用いて、データ追加時の更新処理の波及について説明する。
(1)新サービス情報710のエントリを作成(追加)した場合、(2)デバイス情報束の全てを更新し、(3)機械番号束720、機械番号3桁束730、機種コードセット束740の順に作成する必要がある。つまり、このように、情報の種類を1つ追加するだけで、膨大な数の更新が発生する。
しかも、そのサービスを実際に使うかはユーザー次第であるため、無駄なエントリの作成や更新処理が発生していることになる。
既存のKeyValueStoreシステムは、データの呼称とデータが1対1で対応してるため、重複なく割り付けるためには全く脈絡のないIDが必要になっていた。例えば、図8に示すように、実体800を指し示すのに、システム810では「NC100358−000001」を呼称812として用い、システム830では「A4C570G4−000001」を呼称832として用い、システム850では「A4C570NG−000001」を呼称852として用いている。
これが、前述したような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)内のレジスタ等を含んでいてもよい。
第1の実施の形態である情報処理装置100は、KeyValueStoreとしての機能を有するものであって、図1の例に示すように、通信モジュール110、処理モジュール120、呼称記憶モジュール130、データ属性記憶モジュール140、データ記憶モジュール150を有している。
情報処理装置100は、例えば、利用者識別のためにOAuth2.0のBearerトークンによって認証を行うシステム等としてもよい。そして、RESTのインタフェースを提供し、HTTP(HyperText Transfer Protocol)のPOST/GET/PUT/DELETEがデータの作成/取得/更新/削除に対応したシステムとしてもよい。
情報処理装置100は、あるユーザー(自分以外のユーザー)が「ある呼称A」で指す実体が、自分の「ある呼称B」で指すものと同じであることを設定できる機能を付けたシステムである。「ある呼称A」、「ある呼称B」は、システム毎(あるユーザーが用いているシステム、自分のシステム)に異なっていてもよい。もちろんのことながら、同じ呼称であってもよい。
通信モジュール110は、処理モジュール120と接続されている。通信モジュール110は、他の情報処理装置と通信を行う。例えば、情報処理装置100と通信を行う情報処理装置として、図2の例に示すようなユーザー端末200、画像処理装置210等がある。
通信モジュール110は、他の情報処理装置から、「ユーザーを示すトークン」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け取る。ここで、「ユーザーを示すトークン」として、例えば、前述のOAuth2.0のBearerトークン等を用いる。指示として、例えば、前述のCRUDがある。より具体的には、前述のHTTPのPOST/GET/PUT/DELETE等が該当する。
呼称記憶モジュール130は、処理モジュール120と接続されている。呼称記憶モジュール130は、トークンと実体の呼称とその実体を示す情報を対応させて記憶する。例えば、呼称管理テーブル900を記憶している。図9は、呼称管理テーブル900のデータ構造例を示す説明図である。呼称管理テーブル900は、トークン欄910、呼称欄920、実体ID欄930を有している。つまり、アクセストークンと呼称の組み合わせにより、実体を示すIDを管理する。トークン欄910は、トークンを記憶している。呼称欄920は、実体の呼称を記憶している。実体ID欄930は、本実施の形態において、実体を一意に識別するための情報(実体ID:IDentification)を記憶している。
ここで呼称は、ユーザーが用いているシステムにおける呼称であって、同じ実体に対してそのシステム毎に異なっていてもよい。つまり、同じ実体に対して、例えば、システムAでは、「NC100358−000001」であり、システムBでは異なる名前である「A4C570G4−000001」とすることを許すものである。もちろんのことながら、同じ実体に対して異なるシステムであっても同じ呼称であってもよい。
データ属性記憶モジュール140は、処理モジュール120と接続されている。データ属性記憶モジュール140は、トークンと実体を示す情報とハッシュ値を対応させて記憶する。例えば、データ属性管理テーブル1000を記憶している。図10は、データ属性管理テーブル1000のデータ構造例を示す説明図である。データ属性管理テーブル1000は、トークン欄1010、実体ID欄1020、ハッシュ値欄1030を有している。つまり、アクセストークンと実体を示すIDの組み合わせにより、データのハッシュ値を管理する。トークン欄1010は、トークンを記憶している。実体ID欄1020は、実体IDを記憶している。ハッシュ値欄1030は、ハッシュ値を記憶している。
データ記憶モジュール150は、処理モジュール120と接続されている。データ記憶モジュール150は、ハッシュ値とデータを対応させて記憶する。例えば、データ管理テーブル1100を記憶している。図11は、データ管理テーブル1100のデータ構造例を示す説明図である。データ管理テーブル1100は、ハッシュ値欄1110、データ欄1120を有している。つまり、ハッシュ値をキーにデータを値としたKeyValueStore型のデータベースである。ハッシュ値欄1110は、ハッシュ値を記憶している。データ欄1120は、データを記憶している。なお、データ欄1120内のデータの形態は、属性名と属性値のペア(組)であるが、この形態以外のデータ形態であってもよい。例えば、マトリックス、ファイル、画像、音声、動画等を含めてもよい。
処理モジュール120は、通信モジュール110、呼称記憶モジュール130、データ属性記憶モジュール140、データ記憶モジュール150と接続されている。処理モジュール120は、通信モジュール110が「ユーザーを示すトークン」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け付けた場合は、そのトークンとその実体を示す情報に対応する実体を示す情報を、呼称記憶モジュール130から抽出する。
そして、処理モジュール120は、「通信モジュール110が受け付けたトークン」と「抽出した実体を示す情報」に対応する「ハッシュ値」を、データ属性記憶モジュール140から抽出する。
次に、処理モジュール120は、「抽出したハッシュ値」に対応するデータを、データ記憶モジュール150から抽出する。
そして、抽出したデータに対して、通信モジュール110によって受け付けられた指示にしたがった処理を行う。
図2は、本実施の形態を利用したシステム構成例を示す説明図である。
情報処理装置100、ユーザー端末200A、ユーザー端末200B、ユーザー端末200C、画像処理装置210A、画像処理装置210Bは、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置100による機能は、クラウドサービスとして実現してもよい。
ユーザー端末200は、ユーザーが使用する情報処理装置である。例えば、PC(personal computer、例えば、デスクトップPC、ノートPC等を含む)や、携帯端末(スマートフォン等の携帯電話等)がある。画像処理装置210としては、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)等がある。例えば、画像処理装置210から処理の履歴(ログ)等が送られてきてもよい。この他に、情報家電、ロボット等であってもよい。
図12は、第1の実施の形態による処理例を示す説明図である。
情報処理装置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の例を用いて説明する。
図13は、第1の実施の形態による処理例を示すフローチャートである。
ステップS1302では、ユーザー端末からトークンと呼称の組み合わせを受け取る。
ステップS1304では、呼称管理テーブル900を用いて、トークンと呼称の組み合わせに対応する実体IDを抽出する。
ステップS1306では、データ属性管理テーブル1000を用いて、トークンと実体IDの組み合わせに対応するハッシュ値を抽出する。
ステップS1308では、データ管理テーブル1100を用いて、ハッシュ値に対応するデータを抽出する。
ステップS1310では、ステップS1308で抽出したデータをユーザー端末に送信する。
図14は、第1の実施の形態による処理例(図13の例に示すフローチャートによる具体的処理例)を示す説明図である。呼称管理テーブル900を用いて、ユーザーの指す実体を特定し、その実体とユーザーの組み合わせによってデータを特定する処理例を説明する。
ユーザー端末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に返信する。
図15は、第1の実施の形態による処理例を示すフローチャートである。
ステップS1502では、ユーザー端末からトークンと呼称の組み合わせ(A)とそれに対応する他のトークンと呼称の組み合わせ(B)を受け取る。
ステップS1504では、呼称管理テーブル900を用いて、他のトークンと呼称の組み合わせ(B)に対応する実体IDを抽出する。
ステップS1506では、呼称管理テーブル900内に、トークンと呼称の組み合わせ(A)と対応させて、ステップS1504で抽出した実体IDを格納する。
ステップS1508では、データ追加成功をユーザー端末に送信する。
図16は、第1の実施の形態による処理例(図15の例に示すフローチャートによる具体的処理例)を示す説明図である。新たなデータ集合を追加する場合の処理例を示すものである。つまり、呼称と実体IDの対応関係を登録するものである。
具体的には、ユーザー端末1640を用いるユーザーは、呼称の対応表を手に入れ、情報処理装置100における名前登録用のインタフェースを通じて、自身の「会議室のコピー機」(呼称1642、実体1200の呼称)は、ユーザー端末1210のユーザーAにおける「NC100358−000001」と同じであるということを登録する場合の処理である。つまり、1つの実体1200に対して、ユーザー端末1640におけるシステムでは「会議室のコピー機」と命名し、ユーザー端末1210におけるシステムでは「NC100358−000001」と命名されており、これが同じ実体であることを示す処理(名寄せ処理)である。図16の例では、「指示」は省略しているが、Create(生成)である。
ユーザー端末1640は、トークンであるユーザーID1644と呼称対応データ1650を、情報処理装置100に送信する。呼称対応データ1650は、ユーザーID1644(ユーザーID:b12ffd635)の呼称1642(「会議室のコピー機」)は、ユーザーID1414(d743af8b97)の呼称1412(NC100358−000001)と同じ実体であることを示している。
情報処理装置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と対応させることができるようになる。
図17は、第1の実施の形態による処理例を示すフローチャートである。
ステップS1702では、ユーザー端末からトークンと呼称の組み合わせとデータを受け取る。
ステップS1704では、呼称管理テーブル900を用いて、トークンと呼称の組み合わせに対応する実体IDを抽出する。
ステップS1706では、データ属性管理テーブル1000を用いて、トークンと実体IDの組み合わせに対応するハッシュ値を抽出する。
ステップS1708では、データ管理テーブル1100内に、ハッシュ値に対応させて、データを格納する。
ステップS1710では、データ追加成功をユーザー端末に送信する。
図18は、第1の実施の形態による処理例(図17の例に示すフローチャートによる具体的処理例)を示す説明図である。CRUDのインタフェースを通じてデータを登録する例を示す。これによりユーザーを横断して束ねるデータを作成しなくても関連付けてデータを登録できることとなる。
具体的には、ユーザー端末1640のユーザーは、呼称1642(「会議室のコピー機」)について、登録データ1850(「状態:A4用紙補充済」)を情報処理装置100に登録するものである。図18の例では、「指示」は省略しているが、Update(更新)である。
情報処理装置100は、ユーザーID1644、呼称1642、登録データ1850を受け取り、トークンであるユーザーID1644、呼称1642を用いて呼称管理テーブル900から対象データ1860の行を抽出する。なお、対象データ1860は、トークン欄910内のデータと、呼称欄920内のデータの組み合わせである。そして、対象データ1860に対応する実体ID欄930内の対象データ1865を抽出する。次に、データ属性管理テーブル1000から、トークンであるユーザーID1644と対象データ1865の組み合わせの行(対象データ1870)を抽出する。対象データ1870は、トークン欄1010内のデータと、実体ID欄1020内のデータの組み合わせである。そして、対象データ1870に対応するハッシュ値欄1030内の対象データ1875を抽出する。次に、データ管理テーブル1100から、対象データ1875に対応するハッシュ値欄1110内の対象データ1880を抽出する。そして、対象データ1880に対応するデータ欄1120内の対象データ1885を特定し、その対象データ1885に登録データ1850を格納する。
<第2の実施の形態>
図19、第2の実施の形態の構成例についての概念的なモジュール構成図を示している。
情報処理装置1900は、通信モジュール110、処理モジュール1920、トークン記憶モジュール1930、チケット記憶モジュール1940、呼称記憶モジュール1950、データ属性記憶モジュール1960、データ記憶モジュール150を有している。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。
第2の実施の形態は、複数のシステム間を横断して、同じ実体に対応するデータの参照を実現するために、権限を表現するものとしてチケットという概念を、第1の実施の形態に対して導入する。
第1の実施の形態におけるトークン(アクセストークン)をチケットとして扱い、トークンは複数のチケットの集合とする。
チケットは他のユーザーに対して、権限を認可して、与えることを可能とする。
第1の実施の形態の構成に加えて、トークン記憶モジュール1930とチケット記憶モジュール1940を追加する。なお、呼称記憶モジュール1950は第1の実施の形態の呼称記憶モジュール130を拡張したものであり、データ属性記憶モジュール1960は第1の実施の形態のデータ属性記憶モジュール140を拡張したものである。
チケットはチケットの作成者であるオーナー名とオーナーが付けた任意のチケット名と、これまでトークンとして構成していた文字列を代替するチケットIDから構成されている。
通信モジュール110は、処理モジュール1920と接続されている。
トークン記憶モジュール1930は、処理モジュール1920と接続されている。トークン記憶モジュール1930は、「トークン」と「チケットの所有者を示す情報(いわゆるオーナーである)」と「そのチケットの名称」と「そのチケットが示す権限」を対応させて記憶する。例えば、トークン管理テーブル2000を記憶している。図20は、トークン管理テーブル2000のデータ構造例を示す説明図である。トークン管理テーブル2000は、トークン欄2010、チケット欄2020、権限欄2030を有している。チケット欄2020は、オーナー名欄2022、チケット名欄2024を有している。トークン欄2010は、トークンを記憶している。チケット欄2020は、チケットを記憶している。オーナー名欄2022は、そのチケットのオーナー名を記憶している。チケット名欄2024は、そのチケットのチケット名を記憶している。権限欄2030は、そのチケットによって許可された権限を記憶している。
なお、トークン記憶モジュール1930は、複数のチケット情報のエントリを持ち、そのチケット毎に設定された権限でデータ操作が可能となる。例えば、あるユーザーに認可するチケットではデータのREADしか行えないということが可能となる。
チケット記憶モジュール1940は、処理モジュール1920と接続されている。チケット記憶モジュール1940は、「所有者を示す情報」と「チケットの名称」と「そのチケットを示す情報」を対応させて記憶する。ここで「チケットを示す情報」とは、チケットを特定する情報(以下、チケットIDともいう)をいう。例えば、チケット管理テーブル2100を記憶している。図21は、チケット管理テーブル2100のデータ構造例を示す説明図である。チケット管理テーブル2100は、オーナー名欄2110、チケット名欄2120、チケットID欄2130を有している。オーナー名欄2110は、チケットのオーナー名を記憶している。チケット名欄2120は、そのチケットのチケット名を記憶している。チケットID欄2130は、本実施の形態において、チケットを一意に識別するための情報(チケットID)を記憶している。
呼称記憶モジュール1950は、処理モジュール1920と接続されている。呼称記憶モジュール1950は、「チケットを示す情報」と「実体の呼称」と「その実体を示す情報」を対応させて記憶する。例えば、呼称管理テーブル2200を記憶している。図22(a)は、呼称管理テーブル2200のデータ構造例を示す説明図である。呼称管理テーブル2200は、チケットID欄2202、呼称欄2204、実体ID欄2206を有している。チケットID欄2202は、チケットIDを記憶している。呼称欄2204は、呼称を記憶している。実体ID欄2206は、実体IDを記憶している。つまり、図9の例に示した呼称管理テーブル900のトークン欄910をチケットID欄2202としたものである。
データ属性記憶モジュール1960は、処理モジュール1920と接続されている。データ属性記憶モジュール1960は、「チケットを示す情報」と「実体を示す情報」と「ハッシュ値」を対応させて記憶する。例えば、データ属性管理テーブル2220を記憶している。図22(b)は、データ属性管理テーブル2220のデータ構造例を示す説明図である。
データ属性管理テーブル2220は、チケットID欄2222、実体ID欄2224、ハッシュ値欄2226を有している。チケットID欄2222は、チケットIDを記憶している。実体ID欄2224は、実体IDを記憶している。ハッシュ値欄2226は、ハッシュ値を記憶している。つまり、図10の例に示したデータ属性管理テーブル1000のトークン欄1010をチケットID欄2222としたものである。
データ記憶モジュール150は、処理モジュール1920と接続されている。データ記憶モジュール150は、「ハッシュ値」と「データ」を対応させて記憶する。
処理モジュール1920は、通信モジュール110、トークン記憶モジュール1930、チケット記憶モジュール1940、呼称記憶モジュール1950、データ属性記憶モジュール1960、データ記憶モジュール150と接続されている。
処理モジュール1920は、「ユーザーを示すトークン」と「チケットの所有者を示す情報」と「そのチケットの名称」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け付けた場合は、チケットが示す権限を、トークン記憶モジュール1930から抽出する。
そして、処理モジュール1920は、「通信モジュール110が受け付けたチケットの所有者を示す情報」と「そのチケットの名称」に対応するチケットを示す情報を、チケット記憶モジュール1940から抽出する。
次に、処理モジュール1920は、「抽出したチケットを示す情報」と「通信モジュール110が受け付けた呼称」に対応する実体を示す情報を、呼称記憶モジュール1950から抽出する。
そして、処理モジュール1920は、「抽出したチケットを示す情報」と「抽出した実体を示す情報」に対応するハッシュ値を、データ属性記憶モジュール1960から抽出する。
次に、処理モジュール1920は、「抽出したハッシュ値」に対応するデータを、データ記憶モジュール150から抽出する。
そして、処理モジュール1920は、抽出したデータに対して、抽出した権限の範囲内で、通信モジュール110によって受け付けられた指示にしたがった処理を行う。
図23は、第2の実施の形態による処理例を示す説明図である。
通信モジュール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の範囲での処理を行うことになる。
図24は、第2の実施の形態による処理例を示すフローチャートである。
ステップS2402では、ユーザー端末からトークンとチケットと呼称の組み合わせを受け取る。
ステップS2404では、トークン管理テーブル2000を用いて、チケットの権限を抽出する。
ステップS2406では、チケット管理テーブル2100を用いて、チケットのチケットIDを抽出する。
ステップS2408では、チケットIDを用いて、呼称管理テーブル2200、データ属性管理テーブル2220、データ管理テーブル1100内のデータに対して、権限の範囲での処理を行う。
ステップS2410では、処理成功をユーザー端末に送信する。
図25は、第2の実施の形態による処理例(図24の例に示すフローチャートによる具体的処理例)を示す説明図である。チケットを用いて自分のデータにアクセスする処理例である。第1の実施の形態による処理と同等の処理を、第2の実施の形態でも可能である。
チケット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は用いない。
情報処理装置1900は、ユーザー端末2502から呼称2504、ユーザーID2506、チケット2508を受け取る。なお、図25の例では「指示」は省略しているが、例えば、Read(読み取り)等であってもよい。
実体データ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」を有している。
前述したように、チケット2508からトークン管理テーブル2000を用いて権限を抽出し、チケット2508からチケット管理テーブル2100を用いてチケットIDを抽出し、そのチケットIDから呼称管理テーブル2200、データ属性管理テーブル2220を用いて実体(実体データ2532)にたどり着き、データ管理テーブル1100のデータ欄1120内のデータ(データ2542)にたどり着く。そして、権限の範囲(この例では、「権限:CREATE、READ、UPDATE、DELETE」の範囲、いわゆる全権限の範囲)で「指示」にしたがった処理を行う。
図26は、第2の実施の形態による処理例(図24の例に示すフローチャートによる具体的処理例)を示す説明図である。チケットを用いてデータを共有する処理例である。
各データ操作に対して、呼称から実体を解決(抽出)する処理と、実体からデータを解決する処理で使用するチケットを切り替えられるようにしている。
具体的には、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行目は、「データの解決」を意味する。
情報処理装置1900は、呼称2504、ユーザーID2506、チケット2508、チケット2520、指示を受け取る。なお、図26の例では「指示」は省略しているが、例えば、Read(読み取り)等であってもよい。チケット2508を用いて実体2500の実体データ2532へたどり着き(呼称から実体を解決)、チケット2520を用いて他ユーザーのデータ2544にたどり着く(実体からデータを解決する処理)。そして、データ2544に対する処理を行う。ただし、チケット2520の権限の範囲内(READ)での処理を行う。
さらに、情報処理装置1900は、トークンの危殆化への対応を行うようにしてもよい。
オーナー名としてトークン(アクセストークン)を直接用いると、トークンが他者に漏れた場合にトークンを破棄できなくなってしまうため、トークン記憶モジュール1930を、トークン管理テーブル2700、ユーザーチケット管理テーブル2800のような構成にしてもよい。これによって、システムの認証操作でトークンとユーザーIDの紐付け(関連付け)を設定できるようにする。したがって、トークンを破棄可能にすることができる。
また、これにより、トークン以外はヒューマンリーダブルな文字列でHTTPリクエストを作成することが可能になり、開発が容易になる。
トークン記憶モジュール1930は、トークン管理テーブル2700、ユーザーチケット管理テーブル2800を記憶している。
図27は、トークン管理テーブル2700のデータ構造例を示す説明図である。トークン管理テーブル2700は、トークン欄2710、ユーザーID欄2720を有している。つまり、トークン管理テーブル2700は、トークンとユーザーを示す情報を対応させて記憶している。トークン欄2710は、トークンを記憶している。ユーザーID欄2720は、本実施の形態において、ユーザーを一意に識別するための情報(ユーザーID)を記憶している。
図28は、ユーザーチケット管理テーブル2800のデータ構造例を示す説明図である。ユーザーチケット管理テーブル2800は、ユーザーID欄2810、チケット欄2820、権限欄2830を有している。チケット欄2820は、オーナー名欄2822、チケット名欄2824を有している。つまり、ユーザーチケット管理テーブル2800は、ユーザーを示す情報とチケットの所有者を示す情報(オーナー)とそのチケットの名称とそのチケットが示す権限を対応させて記憶している。ユーザーID欄2810は、ユーザーIDを記憶している。チケット欄2820は、チケットを記憶している。オーナー名欄2822は、オーナー名を記憶している。チケット名欄2824は、チケット名を記憶している。権限欄2830は、権限を記憶している。
チケット記憶モジュール1940は、トークンとユーザーを示す情報を対応させて記憶するトークン管理テーブル2700、ユーザーチケット管理テーブル2800を記憶している。
処理モジュール1920は、通信モジュール110が「トークン」と「チケットの所有者を示す情報」と「そのチケットの名称」と「呼称」と「その呼称で示される実体に関するデータに対する処理の指示」を受け付けた場合は、そのトークンに対応するユーザーを示す情報を、トークン管理テーブル2700から抽出する。
そして、処理モジュール1920は、抽出したユーザーを示す情報と通信モジュール110が受け付けたチケットの所有者を示す情報とそのチケットの名称に対応する権限を、ユーザーチケット管理テーブル2800から抽出する。
次に、処理モジュール1920は、通信モジュール110が受け付けたチケットの所有者を示す情報とそのチケットの名称に対応するチケットを示す情報を、チケット記憶モジュール1940から抽出する。
そして、処理モジュール1920は、抽出したチケットを示す情報と通信モジュール110が受け付けた呼称に対応する実体を示す情報を、呼称記憶モジュール1950から抽出する。
次に、処理モジュール1920は、抽出したチケットを示す情報と抽出した実体を示す情報に対応するハッシュ値を、データ属性記憶モジュール1960から抽出する。
そして、処理モジュール1920は、抽出したハッシュ値に対応するデータを、データ記憶モジュール150から抽出する。
次に、処理モジュール1920は、抽出したデータに対して、抽出した権限の範囲内で、通信モジュール110が受け付けた指示にしたがった処理を行う。
図29は、第2の実施の形態による処理例(トークン管理テーブル2700、ユーザーチケット管理テーブル2800を用いた処理例)を示す説明図である。
図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行目は、「データの解決」を意味する。
情報処理装置1900は、呼称2504、対象データ2912、チケット2902、チケット2904、指示を受け取る。なお、図29の例では「指示」は省略しているが、例えば、Read(読み取り)等であってもよい。
チケット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が受け付けた指示にしたがった処理を行う。
図30を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図30に示す構成は、例えばパーソナルコンピュータ(PC)等によって構成されるものであり、スキャナ等のデータ読み取り部3017と、プリンタ等のデータ出力部3018を備えたハードウェア構成例を示している。
CPU(Central Processing Unit)3001は、前述の実施の形態において説明した各種のモジュール、すなわち、通信モジュール110、処理モジュール120、処理モジュール1920等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
ROM(Read Only Memory)3002は、CPU3001が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)3003は、CPU3001の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバス等から構成されるホストバス3004により相互に接続されている。
ホストバス3004は、ブリッジ3005を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス3006に接続されている。
キーボード3008、マウス等のポインティングデバイス3009は、操作者により操作されるデバイスである。ディスプレイ3010は、液晶表示装置又はCRT(Cathode Ray Tube)等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス3009とディスプレイ3010の両方の機能を備えているタッチスクリーン等であってもよい。
HDD(Hard Disk Drive)3011は、ハードディスク(フラッシュメモリ等であってもよい)を内蔵し、ハードディスクを駆動し、CPU3001によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、呼称記憶モジュール130、データ属性記憶モジュール140、データ記憶モジュール150、トークン記憶モジュール1930、チケット記憶モジュール1940、呼称記憶モジュール1950、データ属性記憶モジュール1960等としての機能を実現させる。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
ドライブ3012は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体3013に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース3007、外部バス3006、ブリッジ3005、及びホストバス3004を介して接続されているRAM3003に供給する。なお、リムーバブル記録媒体3013も、データ記録領域として利用可能である。
接続ポート3014は、外部接続機器3015を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート3014は、インタフェース3007、及び外部バス3006、ブリッジ3005、ホストバス3004等を介してCPU3001等に接続されている。通信部3016は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部3017は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部3018は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
なお、図30に示す情報処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図30に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図30に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機などに組み込まれていてもよい。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(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)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
100…情報処理装置
110…通信モジュール
120…処理モジュール
130…呼称記憶モジュール
140…データ属性記憶モジュール
150…データ記憶モジュール
200…ユーザー端末
210…画像処理装置
290…通信回線
1900…情報処理装置
1920…処理モジュール
1930…トークン記憶モジュール
1940…チケット記憶モジュール
1950…呼称記憶モジュール
1960…データ属性記憶モジュール

Claims (2)

  1. トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、
    トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、
    ハッシュ値とデータを対応させて記憶する第3の記憶手段と、
    ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、
    前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、
    前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、
    前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段
    を有する情報処理装置。
  2. コンピュータを、
    トークンと実体の呼称と該実体を示す情報を対応させて記憶する第1の記憶手段と、
    トークンと実体を示す情報とハッシュ値を対応させて記憶する第2の記憶手段と、
    ハッシュ値とデータを対応させて記憶する第3の記憶手段と、
    ユーザーを示すトークンと呼称と該呼称で示される実体に関するデータに対する処理の指示を受け付けた場合は、該トークンと該実体を示す情報に対応する実体を示す情報を、前記第1の記憶手段から抽出する第1の抽出手段と、
    前記受け付けたトークンと前記第1の抽出手段によって抽出された実体を示す情報に対応するハッシュ値を、前記第2の記憶手段から抽出する第2の抽出手段と、
    前記第2の抽出手段によって抽出されたハッシュ値に対応するデータを、前記第3の記憶手段から抽出する第3の抽出手段と、
    前記第3の抽出手段によって抽出されたデータに対して、前記指示にしたがった処理を行う処理手段
    として機能させるための情報処理プログラム。
JP2016015611A 2016-01-29 2016-01-29 情報処理装置及び情報処理プログラム Active JP6716929B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7179791B2 (ja) * 2020-01-30 2022-11-29 Kddi株式会社 サービス提供システム、認証装置、サービス提供装置、サービス提供方法、認証プログラム及びサービス提供プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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 日本電信電話株式会社 情報管理システムとそのデータ連携操作方法、プログラム

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