(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】情報処理装置、情報処理方法、及び記憶媒体
(51)【国際特許分類】
G06F 21/62 20130101AFI20241111BHJP
G06F 16/36 20190101ALI20241111BHJP
【FI】
G06F21/62
G06F16/36
(21)【出願番号】P 2020153996
(22)【出願日】2020-09-14
【審査請求日】2023-09-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】久保山 英生
【審査官】上島 拓也
(56)【参考文献】
【文献】米国特許出願公開第2008/0288549(US,A1)
【文献】特開2019-020988(JP,A)
【文献】米国特許出願公開第2006/0080544(US,A1)
【文献】特開2006-106896(JP,A)
【文献】特開2000-029901(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 16/36
(57)【特許請求の範囲】
【請求項1】
データの管理に係る識別情報において大文字と小文字との区別が行われない第一識別情報を含む第一スキーマのデータと、
前記識別情報に対応する前記第一識別情報と、当該識別情報において大文字と小文字との区別が行われる第二識別情報と、を含む第二スキーマのデータと、
を管理する管理手段
と、
前記第一スキーマのデータを大文字と小文字の区別を行わずに登録または参照する第一アプリケーションを、前記第一スキーマに対して大文字と小文字との区別を行わず、前記第二スキーマに対して大文字と小文字との区別を行って参照し、当該第二スキーマを登録する第二アプリケーションに切り替える切り替え手段と、
前記切り替え後に前記第一スキーマを前記第二スキーマに更新する更新手段と、
を備える、情報処理装置。
【請求項2】
指定された前記識別情報に対応する前記第一識別情報が一致する1つ以上の前記第一スキーマまたは前記第二スキーマのデータを検索する検索手段
を備える、請求項1に記載の情報処理装置。
【請求項3】
前記検索手段により第一スキーマまたは第二スキーマのデータが1つ以上検索された場合に、前記識別情報が衝突すると判定する第一衝突判定手段と、
前記第一衝突判定手段により前記識別情報が衝突すると判定されなかった場合に、当該識別情報に対応する前記第一識別情報を含む前記第一スキーマのデータを所定の登録先に登録する第一登録手段と、
を備える、請求項2に記載の情報処理装置。
【請求項4】
前記検索手段により前記第一スキーマのデータが検索された場合に、検索された当該データを参照する第一参照手段を備える、請求項2または3に記載の情報処理装置。
【請求項5】
前記検索手段により、前記第一スキーマのデータ、または指定された前記識別情報と前記第二識別情報が一致する前記第二スキーマのデータが検索された場合に、前記識別情報が衝突すると判定する第二衝突判定手段と、
前記第二衝突判定手段により前記識別情報が衝突すると判定されなかった場合に、当該識別情報に対応する前記第一識別情報及び前記第二識別情報を含む前記第二スキーマのデータを所定の登録先に登録する第二登録手段と、
を備える、請求項2~4のいずれか1項に記載の情報処理装置。
【請求項6】
前記検索手段により、前記第一スキーマのデータ、または指定された前記識別情報と前記第二識別情報が一致する前記第二スキーマのデータが検索された場合に、検索された当該データを参照する第二参照手段
を備える、請求項2~5のいずれか1項に記載の情報処理装置。
【請求項7】
前記第一スキーマのデータを前記第二スキーマのデータに更新する更新手段
を備える、請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
前記第二識別情報は、前記識別情報をハッシュ値に変換した文字列であり、
前記第一識別情報は、前記識別情報を大文字または小文字に変換したうえでハッシュ値に変換した文字列である、請求項1~7のいずれか1項に記載の情報処理装置。
【請求項9】
指定された前記識別情報に基づき検索される前記第一スキーマのデータまたは前記第二スキーマのデータに含まれる認証情報に基づき認証を行う認証部を備える、請求項1~8のいずれか1項に記載の情報処理装置。
【請求項10】
前記第二スキーマのデータは、前記第一識別情報を主キーとし、前記第二識別情報を副キーとする複合キーを含む、請求項1~9のいずれか1項に記載の情報処理装置。
【請求項11】
情報処理装置により実行される情報処理方法であって、
データの管理に係る識別情報において大文字と小文字との区別が行われない第一識別情報を含む第一スキーマのデータと、
前記識別情報に対応する前記第一識別情報と、当該識別情報において大文字と小文字との区別が行われる第二識別情報と、を含む第二スキーマのデータと、を管理する管理ステップ
と、
前記第一スキーマのデータを大文字と小文字の区別を行わずに登録または参照する第一アプリケーションを、前記第一スキーマに対して大文字と小文字との区別を行わず、前記第二スキーマに対して大文字と小文字との区別を行って参照し、当該第二スキーマを登録する第二アプリケーションに切り替える切り替えステップと、
前記切り替え後に前記第一スキーマを前記第二スキーマに更新する更新ステップと、
を含む、情報処理方法。
【請求項12】
請求項
11に記載の情報処理方法を実現するプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、及び記憶媒体に関する。
【背景技術】
【0002】
各種データの管理に際し、対象となるデータにID(所謂、識別情報)を割り当て、当該IDを当該データの管理に係るキーとして利用する場合がある。具体的な一例として、Webサービスを提供するシステムの構築に際し、データに対してIDを割り当て、当該IDに対して、対象ユーザ、クライアントのパスワード、及び属性情報等の各種情報を関連付けて、これらの情報を管理する場合がある。このように、IDを各種データの管理に利用する際に、IDを構成する英字の大文字と小文字との違い(以降では、「ケース」とも称する)を区別してIDの一意性を保証する場合や、ケースを区別せずにIDの一意性を保証する場合がある。
【0003】
例えば、特許文献1には、文字列インデックスのインデックスキーの英文字を大文字または小文字に統一したうえで、文字列インデックスの検索を行う技術が開示されている。このような構成により、例えば、検索条件として指定した文字列に大文字と小文字とが混在しているような状況下においても、大文字と小文字との違いの区別なく、検索条件で指定された文字列と同じ綴りの文字列を含む各レコードの検索を行うことが可能となる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方で、ケースを区別せずにIDの一意性を保証するアプリケーションと、ケースを区別してIDの一意性を保証するアプリケーションと、が混在するような状況も想定され得る。また、このような環境下において、共通のシステムによる各種アプリケーションで利用されるIDの一括した管理が求められる場合もある。
【0006】
本発明は上記の問題を鑑み、識別情報に含まれる文字の大文字と小文字との区別に係る条件が異なるアプリケーションが混在する状況下においても、当該識別情報の管理をより好適な態様で実現可能とすることを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る情報処理装置は、データの管理に係る識別情報において大文字と小文字との区別が行われない第一識別情報を含む第一スキーマのデータと、前記識別情報に対応する前記第一識別情報と、当該識別情報において大文字と小文字との区別が行われる第二識別情報と、を含む第二スキーマのデータと、を管理する管理手段と、前記第一スキーマのデータを大文字と小文字の区別を行わずに登録または参照する第一アプリケーションを、前記第一スキーマに対して大文字と小文字との区別を行わず、前記第二スキーマに対して大文字と小文字との区別を行って参照し、当該第二スキーマを登録する第二アプリケーションに切り替える切り替え手段と、前記切り替え後に前記第一スキーマを前記第二スキーマに更新する更新手段と、を備える。
【発明の効果】
【0008】
本発明によれば、識別情報に含まれる文字の大文字と小文字との区別に係る条件が異なるアプリケーションが混在する状況下においても、当該識別情報の管理をより好適な態様で実現することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】情報処理装置の機能構成の一例を示したブロック図である。
【
図2】情報処理装置のハードウェア構成の一例を示した図である。
【
図3】ケース区別なしのIDの管理に係るデータ構造の一例を示した図である。
【
図4】ケース区別ありのIDの管理に係るデータ構造の一例を示した図である。
【
図5】情報処理装置の処理の一例を示したフローチャートである。
【
図6】情報処理装置の処理の他の一例を示したフローチャートである。
【
図7】情報処理装置の処理の他の一例を示したフローチャートである。
【
図8】情報処理装置の処理の他の一例を示したフローチャートである。
【
図9】スキーマの切り替えに係る手順の一例を示した図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0011】
<機能構成>
図1を参照して、本実施形態に係る情報処理装置の機能構成の一例について説明する。
本実施形態に係る情報処理装置101は、各種アプリケーションがデータの管理等に利用するID(識別情報)の管理を行う。
図1に示す例では、当該アプリケーションの一例として、第一アプリケーション102と、第二アプリケーション103とが示されている。
第一アプリケーション102は、各種データの管理等に利用するIDを構成する英字の大文字と小文字との違い(ケース)を区別せずに当該IDの一意性を保証するアプリケーションを模式的に示している。
これに対して、第二アプリケーション103は、各種データの管理等に利用するIDを構成する英字の大文字と小文字との違い(ケース)を区別して当該IDの一意性を保証するアプリケーションを模式的に示している。
なお、以降の説明では、ケースを区別してIDの一意性を保証する場合を「ケース区別あり」とも称し、ケースを区別せずにIDの一意性を保証する場合を「ケース区別なし」とも称する。
【0012】
本実施形態に係る情報処理装置101は、管理部104と、検索部105と、第一登録部106と、第二登録部107と、第一衝突判定部108と、第二衝突判定部109と、第一参照部110と、第二参照部111と、更新部112とを含む。
【0013】
管理部104は、IDの管理を行う。例えば、管理部104は、各種アプリケーションが各種データの管理等に利用するIDの管理を行ってもよい。具体的な一例として、第一アプリケーション102や第二アプリケーション103が利用するIDは、後述する第一登録部106または第二登録部107により、管理部104に対する当該IDの登録に係る処理が実行されることで、当該管理部104による管理の対象となる。
【0014】
検索部105は、IDの検索を行う。例えば、検索部105は、管理部104が管理する一連のIDの中から、指定された条件を満たすIDの検索を行ってもよい。具体的な一例として、検索部105は、第一アプリケーション102や第二アプリケーション103からの依頼に応じて、これらのアプリケーションが利用するIDを、管理部104が管理する一連のIDの中から検索してもよい。
【0015】
第一登録部106及び第二登録部107は、指定されたIDを所定の登録先に登録する。例えば、第一登録部106及び第二登録部107は、指定されたIDを、管理部104の管理対象として登録してもよい。この際に、第一登録部106は、管理部104に対して、指定されたIDをケース区別なしのIDとして登録する。これに対して、第二登録部107は、管理部104に対して、指定されたIDをケース区別ありのIDとして登録する。
なお、第一登録部106や第二登録部107による登録の対象となる上記ID(例えば、第一アプリケーション102や第二アプリケーション103が利用するID)が、データの管理に係る「識別情報」の一例に相当する。また、上記ケース区別なしのIDが「第一識別情報」の一例に相当し、上記ケース区別ありのIDが「第二識別情報」の一例に相当する。
【0016】
第一衝突判定部108及び第二衝突判定部109は、IDの登録に際し、当該IDが衝突するか否かを(換言すると、同様のIDが既に登録されているか否か)を判定する。具体的には、第一衝突判定部108は、第一登録部106がIDの登録を行う際に、当該IDが衝突するか否かを判定してもよい。これに対して、第二衝突判定部109は、第二登録部107がIDの登録を行う際に、当該IDが衝突するか否かを判定してもよい。
【0017】
第一参照部110及び第二参照部111は、所定の登録先に登録されたIDの参照や、当該IDを含むデータの参照に係る処理を実行する。例えば、第一参照部110及び第二参照部111は、管理部104の管理対象として登録された一連IDのうち、指定されたIDの参照や、当該IDを含むデータの参照を行ってもよい。この際に、第一参照部110は、第一登録部106により登録されたIDを、ケース区別なしで参照してもよい。これに対して、第二参照部111は、第二登録部107により登録されたIDを、ケース区別ありで参照してもよい。
【0018】
更新部112は、ケース区別なしのIDをケース区別ありのIDにスキーマ更新する。なお、更新部112によるIDの更新に係る処理の詳細については別途後述する。
【0019】
なお、
図1に示す機能構成はあくまで一例であり、本実施形態に係る情報処理装置101の機能構成を限定するものではない。例えば、上述した情報処理装置101の構成要素のうちの少なくとも一部の構成要素が、複数の装置が協働することで実現されてもよい。具体的な一例として、上述した情報処理装置101の構成要素のうちの一部が、情報処理装置101とは異なる他の装置に設けられていてもよい。また、他の一例として、上述した情報処理装置101の構成要素のうちの少なくとも一部の構成要素の処理に係る負荷が複数の装置に分散されてもよい。
【0020】
<ハードウェア構成>
図2を参照して、本実施形態に係る情報処理装置のハードウェア構成の一例について説明する。
図2に示すように、本実施形態に係る情報処理装置101は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203とを含む。また、情報処理装置101は、ネットワークI/F204と、補助記憶装置205とを含む。CPU201と、ROM202と、RAM203と、ネットワークI/F204と、補助記憶装置205とは、バス206を介して相互に接続されている。
【0021】
CPU201は、情報処理装置101の各種動作を制御する中央演算装置である。例えば、CPU201は、情報処理装置101全体の動作を制御してもよい。ROM202は、CPU201で実行可能な制御プログラムやブートプログラムなどを記憶する。RAM203は、CPU201の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。
【0022】
ネットワークI/F204は、外部の装置とのネットワーク(例えば、インターネット等)を介した通信に利用される。なお、ネットワークI/F204として適用されるデバイスは、通信経路の種別や適用される通信方式に応じて適宜変更されてもよい。
【0023】
補助記憶装置205は、各種データや各種プログラムを記憶する。補助記憶装置205は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)に代表される不揮発性メモリ等のような、各種データを一時的または持続的に記憶可能な記憶デバイスにより実現される。また、他の一例として、補助記憶装置205は、フレキシブルディスク(FD:Flexible Disk)やコンパクトディスク(CD:Compact Disk)等の光ディスク、磁気や光カード、ICカード、メモリカード等により実現されてもよい。
【0024】
CPU201が、ROM202または補助記憶装置205に記憶されたプログラムをRAM203に展開し、このプログラムを実行することで、
図1に示す機能構成が実現される。また、上記プログラムが実行されることで、
図5~
図8に示す処理が実現される。
【0025】
<データ構造>
図3及び
図4を参照して、管理部104によるIDの管理に係るデータ構造(以下、「スキーマ」とも称する)の一例について以下に説明する。
【0026】
まず、
図3について説明する。
図3は、第一登録部106が対象となるIDをケース区別なしのIDとして登録する場合における、当該IDに関する情報の管理に係るスキーマ(以下、「第一スキーマ」とも称する)の一例を示している。
【0027】
図3に示すように、第一スキーマは、主キー(Primary Key)301と、副キー(Sub Key)302とを含む。管理部104は、主キー301及び副キー302からなる複合キーにより、各データが一意に特定されるように管理する。
【0028】
本実施形態では、第一登録部106は、主キー301に対して、登録の対象となるIDを構成する文字列中の英字を小文字に変換することで、大文字と小文字との区別をなくした当該IDを指定する。具体的な一例として、元のIDが“AdminUser001”の場合には、大文字と小文字との区別をなくした当該IDである“adminuser001”が主キー301に指定されることとなる。
【0029】
副キー302には、他のID(デバイスやアプリケーション等)と区別するためのIDの属性に関する情報が指定される。例えば、
図3に示す例では、副キー302に対して、ユーザのIDであることを示す“User”が指定されている。ただし、本実施形態に係る第一スキーマにおいては、副キー302へのIDの属性に関する情報の指定は必須ではない。
【0030】
また、第一スキーマは、属性情報303として、各種の情報を設定可能であってもよい。例えば、
図3に示す例では、対象となるIDに関連するパスワード(例えば、当該IDを指定した認証に利用されるパスワード等)、当該IDの登録日等が、属性情報303として設定されている。
【0031】
また、第一スキーマは、スキーマバージョン304として、対象となるIDの管理に適用されるスキーマの種別を示す情報が設定される。例えば、
図3に示す例では、スキーマバージョン304に対して、対象となるIDをケース区別なしのIDとして管理するための第一スキーマが適用されていることを示す値である「0」が設定されている。
【0032】
次いで、
図4について説明する。
図4は、第二登録部107が対象となるIDをケース区別ありのIDとして登録する場合における、当該IDに関する情報の管理に係るスキーマ(以下、「第二スキーマ」とも称する)の一例を示している。なお、
図4では(a)及び(b)としてケースが互いに異なるIDに関する情報の一例を示している。具体的には、
図4(a)は、IDを構成する文字列が“AdminUser002”の場合の一例を示している。これに対して、
図4(b)は、IDを構成する文字列が“ADMINUSER002”の場合の一例を示している。
【0033】
図4に示すように、第二スキーマは、主キー(Primary Key)401と、副キー(Sub Key)402とを含む。主キー401及び副キー402は、
図3を参照して説明した第一スキーマにおける主キー301及び副キー302に相当する。
【0034】
本実施形態では、第二登録部107は、
図3に示す例と同様に、主キー401に対して、登録の対象となるIDを構成する文字列中の英字を小文字に変換することで、大文字と小文字との区別をなくした当該IDを指定する。そのため、
図4(a)及び
図4(b)のそれぞれに示す例では、元のIDを構成する文字列中の英字が小文字に変換されることで、主キー401に対して同様に“adminuser002”が設定されている。
【0035】
副キー402には、他のID(デバイスやアプリケーション等)と区別するためのIDの属性と、対象となるIDをケース区別ありのIDとして示した情報とが指定される。具体的な一例として、
図4に示す例では、副キー402として、プレフィックス“User-”と、ケース区別ありのIDとを組み合わせた情報が指定されている。これにより、大文字と小文字との区別が保持された元のIDを含む情報が副キー402に設定されることとなる。なお、
図4に示す例はあくまで一例であり、副キー402に対して、ケース区別ありのIDを含む情報が設定されれば、当該情報の形式は特に限定はされない。
これにより、
図4(a)及び
図4(b)それぞれに示す例は、主キー401に対して同じ情報が設定されたとしても、副キー402に対して異なる情報が設定されることとなり、主キー401及び副キー402からなる複合キーにより一意性を担保することが可能となる。
【0036】
また、第二スキーマは、
図3を参照して説明した第一スキーマと同様に、属性情報303として、各種の情報を設定可能であってもよい。
【0037】
また、第二スキーマは、スキーマバージョン403として、対象となるIDの管理に適用されるスキーマの種別を示す情報が設定される。例えば、
図4に示す例では、スキーマバージョン403に対して、対象となるIDをケース区別ありのIDとして管理するための第二スキーマが適用されていることを示す値である「1」が設定されている。
【0038】
管理部104は、
図3に示すケース区別なしのIDに関する情報の管理に係る第一スキーマと、
図4(a)及び
図4(b)に示すケース区別ありのIDに関する情報の管理に係る第二スキーマとを、共通のデータベースで管理する。なお、このように、第一スキーマに対応するデータと、第二スキーマに対応するデータとが混在するような状況下においても、主キー及び副キーよりなる複合キーにより、登録されたデータ間におけるIDの一意性を担保することが可能となる。
【0039】
検索部105は、管理部104が管理する一連のデータの中から、主キーとして管理されるケース区別なしのIDが一致する1つ以上のデータを検索する。具体的な一例として、
図4に示す例の場合には、検索部105は、主キーが“adminuser002”であり、副キーが“User”で始まる全てのデータを検索してもよい。なお、検索部105による検索の対象には、
図3に示す第一スキーマに対応するデータと、
図4に示す第二スキーマに対応するデータとの双方が含まれ得る。そのため、この場合には、
図4(a)及び
図4(b)に示すデータが検索結果に含まれることとなる。
【0040】
<処理>
図5~
図8を参照して、本実施形態に係る情報処理装置101の処理の一例について、特にIDの管理(例えば、登録や参照等)に係る部分に着目して説明する。
【0041】
まず、
図5を参照して、第一アプリケーション102が利用するIDを、管理部104にケース区別なしのIDとして管理されるように、当該管理部104の管理対象として登録する場合の処理の流れの一例について説明する。
【0042】
S501において、第一登録部106は、第一アプリケーション102から登録の対象となるIDの入力を受け付ける。なお、第一アプリケーション102は、ケース区別なしのIDを利用するアプリケーションである。そのため、第一登録部106は、第一アプリケーション102から、例えばIDを構成する文字列中の英字が小文字化されることでケース情報が失われたケース区別なしのIDの入力を受け付けることとなる。
なお、ケース区別なしのIDの形式については、ケースの区別なしにIDの一意性を担保することが可能であれば上記例には限定されない。例えば、情報処理装置101は、IDを構成する文字列中の英字が大文字化されることでケース情報が失われたケース区別なしのIDの入力を受け付けてもよい。
【0043】
次いで、S502~S504において、第一登録部106が入力を受け付けたIDが衝突するか否かの判定が行われる。
【0044】
具体的には、S502において、第一登録部106が入力を受け付けたID(換言すると、登録対象のID)と一致するIDを含むデータの検索が行われる。具体的には、第一衝突判定部108は、第一登録部106からの依頼に基づき、検索部105に対して、登録対象のIDと一致するIDを含むデータの検索を指示する。検索部105は、第一衝突判定部108からの指示に応じて、管理部104が管理する一連のデータの中から、第一衝突判定部108から指定されたID(登録対象のID)と一致するIDを含むデータを検索する。なお、検索方法については前述したとおりである。また、この場合には、第一スキーマに対応するデータと、第二スキーマに対応するデータとの双方が検索の対象となる。
【0045】
S503において、第一衝突判定部108は、S502における検索部105による検索の結果に基づき、第一登録部106が入力を受け付けたID(登録対象のID)が衝突するか否かを判定する。具体的には、第一衝突判定部108は、登録対象のIDと一致するIDを含むデータが検索部105により検索された場合に、登録対象のIDが衝突すると判定する。なお、この場合には、ケース区別なしのIDに関する情報を表す第一スキーマに対応するデータと、ケース区別ありのIDに関する情報を表す第二スキーマに対応するデータとの双方ともに、ケース区別なしに、登録対象のIDとの衝突判定が行われることとなる。
【0046】
S504において、第一登録部106は、S503における第一衝突判定部108によるIDが衝突したか否かの判定結果を確認し、当該判定結果に応じて以降の処理を切り替える。
具体的には、第一登録部106は、S504においてIDが衝突すると判定されたことを確認した場合には、処理をS505に進める。S505において、第一登録部106は、依頼元となる第一アプリケーション102に対して、指定されたID(登録対象のID)が衝突することを示すエラーを返却し、
図5に示す一連の処理を終了する。具体的な一例として、情報処理装置101が、Rest APIを利用して各種アプリケーションに機能を提供している場合には、「ステータスコード409 Conflict」のエラーを依頼元のアプリケーションに返却することとなる。
一方で、第一登録部106は、S504においてIDが衝突しないと判定されたことを確認した場合には、処理をS506に進める。S506において、第一登録部106は、指定されたIDを含むデータを、第一スキーマに対応するデータとして管理部104に登録する。これにより、当該IDが管理部104による管理の対象となる。そして、第一登録部106は、依頼元となる第一アプリケーション102に対して指定されたID(登録対象のID)の登録が正常に完了したことを通知し、
図5に示す一連の処理を終了する。
【0047】
次いで、
図6を参照して、第二アプリケーション103が利用するIDを、管理部104にケース区別ありのIDとして管理されるように、当該管理部104の管理対象として登録する場合の処理の流れの一例について説明する。
【0048】
S601において、第二登録部107は、第二アプリケーション103から登録の対象となるIDの入力を受け付ける。なお、第二アプリケーション103は、ケース区別ありのIDを利用するアプリケーションである。そのため、第二登録部107は、第二アプリケーション103から、ケース情報が残されたIDの入力を受け付けることとなる。
S602において、第二登録部107は、第二アプリケーション103から入力を受け付けたIDから、ケース区別なしのIDを生成する。
【0049】
S603において、検索部105は、S602において生成されたケース区別なしIDと、ケースの区別なしに一致するIDを含むデータを検索する。なお、検索方法については前述したとおりである。また、この場合には、第一スキーマに対応するデータと、第二スキーマに対応するデータとの双方が検索の対象となる。
【0050】
S604において、第二衝突判定部109は、S603における検索部105による検索の結果に基づき、第二登録部107が入力を受け付けたIDが衝突するか否かを判定する。具体的には、第二衝突判定部109は、副キー402に含まれるケース区別ありIDが登録対象となるIDと一致する第二スキーマに対応するデータが検索された、または第一のスキーマに対応するデータが検索された場合に、登録対象のIDが衝突すると判定する。
なお、
図4に示す例の場合には、第二スキーマに対応するデータにおいて副キー402に設定された文字列のうち、“User-”以降の部分がケース区別ありのIDに相当する。また、この場合には、第一スキーマに対応するデータについてはケース区別なしでIDの衝突判定が行われ、第二スキーマに対応するデータについてはケース区別ありでIDの衝突判定が行われることとなる。
【0051】
S605において、第二登録部107は、S604における第二衝突判定部109によるIDが衝突したか否かの判定結果を確認し、当該判定結果に応じて以降の処理を切り替える。
具体的には、第二登録部107は、S605においてIDが衝突すると判定されたことを確認した場合には、処理をS606に進める。S606において、第二登録部107は、依頼元となる第二アプリケーション103に対して、指定されたID(登録対象のID)が衝突することを示すエラーを返却し、
図6に示す一連の処理を終了する。
一方で、第二登録部107は、S606においてIDが衝突しないと判定されたことを確認した場合には、処理をS607に進める。S607において、第二登録部107は、指定されたIDを含むデータを、第二スキーマに対応するデータとして管理部104に登録する。これにより、当該IDが管理部104による管理の対象となる。そして、第二登録部107は、依頼元となる第二アプリケーション103に対して指定されたID(登録対象のID)の登録が正常に完了したことを通知し、
図6に示す一連の処理を終了する。
【0052】
次いで、
図7を参照して、管理部104の管理対象のデータから、第一アプリケーション102が利用するIDとケース区別なしで一致するIDを含むデータを検索して、当該データを参照する場合の処理の流れの一例について説明する。
【0053】
S701において、第一参照部110は、第一アプリケーション102からデータ参照の対象となるIDの入力を受け付ける。なお、第一アプリケーション102は、ケース区別なしのIDを利用するアプリケーションである。そのため、第一参照部110は、第一アプリケーション102から、例えばIDを構成する文字列中の英字が小文字化されることでケース情報が失われたケース区別なしのIDの入力を受け付けることとなる。
【0054】
S702において、検索部105は、第一参照部110からの指示に応じて、管理部104が管理する一連のデータの中から、当該第一参照部110が入力を受け付けたID(換言すると、参照対象のID)と一致するIDを含むデータの検索を行う。なお、検索方法については前述したとおりである。また、この場合には、第一スキーマに対応するデータと、第二スキーマに対応するデータとの双方が検索の対象となる。
【0055】
S703において、第一参照部110は、S702における検索部105により検索の結果に第一スキーマに対応するデータが含まれる場合に、当該データを、第一アプリケーション102から入力を受け付けたIDと一致するIDを含むデータと判定する。
S704において、第一参照部110は、S703における検索部105による、参照対象のIDと一致するIDを含むデータの検索結果に基づく判定の結果に応じて以降の処理を切り替える。
具体的には、第一参照部110は、S704において参照対象のIDと一致するIDを含むと判定されたデータが検索された場合には、処理をS705に進める。S705において、第一参照部110は、参照対象のIDと一致するIDを含むと判定されたデータ(換言すると、検索部105により検索されたデータ)を、依頼元となる第一アプリケーション102に返却し、
図7に示す一連の処理を終了する。
一方で、第一参照部110は、S704において参照対象のIDと一致するIDを含むと判定されたデータが検索されなかった場合には、処理をS707に進める。S707において、第一参照部110は、依頼元となる第一アプリケーション102に対して、参照対象のIDと一致するIDを含むデータが存在しないことを示すエラーを返却し、
図7に示す一連の処理を終了する。具体的な一例として、情報処理装置101が、Rest APIを利用して各種アプリケーションに機能を提供している場合には、「ステータスコード404 Not Found」のエラーを依頼元のアプリケーションに返却することとなる。
【0056】
次いで、
図8を参照して、管理部104の管理対象のデータから、第二アプリケーション103が利用するIDとケース区別ありで一致するIDを含むデータを検索して、当該データを参照する場合の処理の流れの一例について説明する。
【0057】
S801において、第二参照部111は、第二アプリケーション103からデータ参照の対象となるIDの入力を受け付ける。なお、第二アプリケーション103は、ケース区別ありのIDを利用するアプリケーションである。そのため、第二参照部111は、第二アプリケーション103から、ケース情報が残されたIDの入力を受け付けることとなる。
S802において、第二参照部111は、第二アプリケーション103から入力を受け付けたIDから、ケース区別なしのIDを生成する。
【0058】
S803において、検索部105は、S802において生成されたケース区別なしIDと、ケースの区別なしに一致するIDを含むデータを検索する。なお、検索方法については前述したとおりである。また、この場合には、第一スキーマに対応するデータと、第二スキーマに対応するデータとの双方が検索の対象となる。
【0059】
S804において、第二参照部111は、S803における検索部105により検索の結果に第一スキーマに対応するデータが含まれる場合に、当該データを、第二アプリケーション103から入力を受け付けたIDと一致するIDを含むデータと判定する。また、第二参照部111は、検索の結果に、ケース区別ありIDが一致する第二スキーマのデータ、または第一スキーマのデータが含まれた場合も同様の判定を行う。
【0060】
S805において、第二参照部111は、S804における検索部105による参照対象のIDと一致するIDを含むデータの検索結果に基づく判定の結果に応じて以降の処理を切り替える。具体的には、第二参照部111は、副キー402に含まれるケース区別ありIDが参照対象となるIDと一致する第二スキーマに対応するデータと、第一のスキーマに対応するデータと、のいずれかが検索されたか否かを判定することとなる。
【0061】
第二参照部111は、S805において参照対象のIDと一致するIDを含むと判定されたデータが検索された場合には、処理をS806に進める。S806において、第二参照部111は、参照対象のIDと一致するIDを含むと判定されたデータ(換言すると、検索部105により検索されたデータ)を、依頼元となる第二アプリケーション103に返却し、
図8に示す一連の処理を終了する。
一方で、第二参照部111は、S805において参照対象のIDと一致するIDを含むと判定されたデータが検索されなかった場合には、処理をS807に進める。S807において、第二参照部111は、依頼元となる第二アプリケーション103に対して、参照対象のIDと一致するIDを含むデータが存在しないことを示すエラーを返却し、
図8に示す一連の処理を終了する。
【0062】
<作用効果>
以上のような構成により、本実施形態に係る情報処理装置101に依れば、以下に列挙する機能を実現することが可能となる。
1.ケースを区別せずに利用されているIDの衝突判定を、ケース区別なしで登録されたIDとケース区別ありで登録されたIDとの双方を対象として、ケースの区別なしの条件下で行う。
2.ケースの区別なしに利用されているIDと登録済みのIDとの一致に係る判定に際し、ケース区別なしで登録されたIDを判定の対象とし、ケース区別ありで登録されたIDを判定の対象としない。
3.ケースを区別して利用されているIDの衝突判定を、ケース区別なしで登録されたIDを対象とする場合にはケース区別なしの条件下で行い、ケース区別ありで登録されたIDを対象とする場合にはケース区別ありの条件下で行う。
4.ケースを区別して利用されているIDと登録済みのIDとの一致に係る判定に際し、ケース区別なしで登録されたIDを対象とする場合にはケース区別なしで判定し、ケース区別ありで登録されたIDを対象とする場合にはケース区別ありで判定する。
【0063】
<変形例>
続いて、本実施形態に係る情報処理装置101の変形例について以下に説明する。
【0064】
(変形例1)
本実施形態に係る情報処理装置の変形例1について以下に説明する。
上述した実施形態では、第二アプリケーション103からの依頼に基づき登録されたIDについては、第一アプリケーション102からの参照が制限される。また、第一アプリケーション102からの依頼に基づき登録されたIDについては、第二アプリケーションからの参照の対象となるが、ケース区別なしの条件下での参照となる。
一方で、アプリケーションのアップデートに伴い、当該アプリケーションにおけるIDの管理方法が、ケース区別なしの管理方法からケース区別ありの管理方法に変更されるような状況も想定され得る。
このような状況を鑑み、本変形例では、IDの管理を、ケース区別なしの管理から、ケース区別ありの管理に切り替える方法の一例について以下に説明する。
【0065】
本変形例では、第一アプリケーション102をアップデート等により第二アプリケーション103に切り替えるため、第二アプリケーション103からの依頼に基づき登録されたIDを、第一アプリケーション102が参照するような状況は想定されないものとする。一方で、第一アプリケーション102からの依頼に基づき登録されたIDは、ケース区別なしでの管理(第一スキーマに基づく管理)が継続される。そのため、ケース区別ありでの参照や、ケース違いのIDの登録を可能とするために、対象となるIDの管理を、第一スキーマに基づく管理から第二スキーマに基づく管理に変更する必要が生じる場合がある。
【0066】
そこで、
図9を参照して、第一アプリケーション102からの依頼に基づき登録された第一スキーマに基づき管理されるケース区別なしのIDを、第二スキーマに基づき管理されるケース区別ありのIDに切り替える手順の一例について以下に説明する。
【0067】
S901は、第一アプリケーション102に相当する各種アプリケーションが管理対象となっており、こられのアプリケーションが第二アプリケーション103にアップデートされる前の状態を模式的に示している。すなわち、S901においては、情報処理装置101は、管理対象となる上記各種アプリケーションが利用するIDを、
図3を参照して説明した第一スキーマに基づき管理することとなる。そのため、当該IDの登録及び参照には、第一スキーマにおける主キー301及び副キー302が利用されることとなる。
【0068】
S902~S905は、アプリケーションのアップデートと、当該アップデートに伴う当該アプリケーションが利用するIDの管理の切り替えに係る手順に相当する。
具体的には、S902において、まず対象となるアプリケーションが利用するIDの管理の主体を、本実施形態に係る情報処理装置101に切り替えるための各種手続きが実行される。具体的な一例として、DNS等によりURLに対するルーディングを、元のID管理の主体となる情報処理装置から、本実施形態に係る情報処理装置101に切り替えるための各種手続きが実行されてもよい。このような手続きが実行されることで、対象となるアプリケーション(第一アプリケーション102)自体の修正を伴わずに、ID管理の主体を、元の情報処理装置から本実施形態に係る情報処理装置101に切り替えることが可能となる。
なお、S902の段階では、対象となるアプリケーションは、これまでと同様にケース区別なしにIDの登録及び参照を行い、ID管理の主体となる情報処理装置も第一スキーマに基づきIDの管理を行うこととなるが、第二スキーマを処理するための準備が整う。
【0069】
S903において、対象となるアプリケーションが、アップデート等により、第一アプリケーション102から同様の機能を実現するための第二アプリケーション103に切り替えられる。なお、機能ごとに第一アプリケーション102が複数存在する場合も想定され得る。このような場合には、例えば、複数のアプリケーションそれぞれの切り替えが順次行われる。
なお、S903の段階のうち、特にアプリケーションの切り替えが順次行われている状況下では、IDの登録及び参照を行うアプリケーションとして、第一アプリケーション102と第二アプリケーション103とが混在し得る。このような場合においても、情報処理装置101がID管理の主体となるため、IDの登録や参照の依頼元となるアプリケーションが、第一アプリケーション102及び第二アプリケーション103のいずれかに応じて、処理が選択的に切り替えられる。
具体的には、第一アプリケーション102が依頼元の場合には、IDの登録及び参照がケースの区別なしに行われることとなる。これに対して、第二アプリケーション103が依頼元の場合には、IDの登録及び参照がケースの区別ありで行われることとなる。ただし、第二アプリケーション103からの依頼に基づき、第一アプリケーション102が登録したIDを対象として参照や衝突判定が行われる場合には、ケースの区別なしにこれらの処理が実行されることとなる。
【0070】
S904は、S903の処理の進行に伴い、対象となる一連のアプリケーションそれぞれについての、第一アプリケーション102から第二アプリケーション103への切り替えが完了した段階を示している。すなわち、S094においては、第一アプリケーション102からの依頼に基づくIDの参照や登録は想定されないこととなる。一方で、第一アプリケーション102からの依頼に基づき登録されたIDについては残留している。そのため、第二アプリケーション103からの依頼に基づき、第一アプリケーション102が登録したIDを対象として参照や衝突判定が行われる場合には、依然としてケースの区別なしにこれらの処理が実行されることとなる。
【0071】
そして、S905において、更新部112は、第一スキーマのデータを第二スキーマのデータに更新する。なお、第一スキーマのデータは、ケース区別ありの元のIDに関する情報を保持していない場合がある。このような場合には、更新部112は、他のサービスやデータベース等から元のIDに関する情報(例えば、当該ID自体)を取得し、当該元のIDに関する情報を利用して第一スキーマのデータを第二スキーマのデータに更新すればよい。もちろん、更新部112が元のIDに関する情報を取得することが可能であれば、その方法については特に限定はされない。
また、第一スキーマのデータを第二スキーマのデータに更新する際に、対応するアプリケーション(第二アプリケーション103)からデータの参照が行われる場合がある。そのため、例えば、更新部112は、更新後のデータである第二スキーマのデータを生成した後に、更新前のデータである第一スキーマのデータを削除することで、対象となるデータの更新を行ってもよい。このような制御が適用されることで、対象となるIDに対応するデータが存在しない期間が発生しないため、アプリケーションがデータを参照した際に、当該アプリケーションが利用するIDに対応するデータが存在しない事態の発生を防止することが可能となる。
【0072】
上記に説明したようにスキーマの更新が行われることで、第一アプリケーション102からの依頼に基づきケース区別なしでIDが管理される第一スキーマのデータが、ケース区別ありでIDが管理される第二スキーマのデータに更新される。そのため、対象となるアプリケーションが、アップデート等により第一アプリケーション102から第二アプリケーション103に更新された場合においても、当該アプリケーションがケース区別ありでIDの登録及び参照を行うことが可能となる。
以上のように、ID管理の主体となる情報処理装置とIDを利用するアプリケーションとを更新することで、ユーザによるアプリケーションの利用を停止することなく、ID管理をケース区別なしの管理からケース区別ありの管理に切り替えることが可能となる。
【0073】
(変形例2)
次いで、本実施形態に係る情報処理装置の変形例2について以下に説明する。
上述した実施形態では、主キー301及び401としてケース区別なしのID(例えば、元のIDを小文字化した文字列)を管理し、副キー402としてケース区別ありのID(例えば、元のIDを含む文字列)を管理する場合の一例について説明した。
【0074】
一方で、第二スキーマのデータがケース区別なしのIDとケース区別ありのIDとの双方をキーとして含み、第一スキーマ及び第二スキーマそれぞれのデータに一意性を持たせつつ、ケース区別なしのIDを利用して検索が可能であれば、その方法は限定されない。
【0075】
また、主キー及び副キーとして設定される情報は、ケース区別ありのID自体やケース区別なしのID自体に限らず、これらを所定のアルゴリズムに基づき他の形式に変換したものであってもよい。具体的な一例として、ケース区別ありのIDとケース区別なしのIDとのそれぞれをハッシュ値に変換した文字列が、主キー及び副キーとして設定されてもよい。
ただし、IDをハッシュ値に変換する処理をアプリケーション側で行う場合には、情報処理装置101が、ケース区別ありのIDが変換されたハッシュ値から、ケース区別なしのIDが変換されたハッシュ値を生成することは困難である。そのため、このような場合には、情報処理装置101は、依頼元のアプリケーション(第二アプリケーション103)から、ケース区別ありのIDが変換されたハッシュ値と、ケース区別なしのIDが変換されたハッシュ値との双方の入力を受け付けるとよい。
【0076】
(変形例3)
次いで、本実施形態に係る情報処理装置の変形例3について以下に説明する。
上述した実施形態では、第一参照部110及び第二参照部111それぞれが第一スキーマ及び第二スキーマそれぞれに対応するデータを対象としてIDの一致判定を行い、当該判定の結果に応じて依頼元のアプリケーションにデータを返却していた。一方で、本実施形態に係る技術は、上記に例示したデータの参照に限らず、他の機能の実現にも応用することが可能である。
【0077】
例えば、本実施形態に係る情報処理装置を利用して所謂認証サービスを実現することも可能である。この場合には、本実施形態に係る情報処理装置101は、第一アプリケーション102や第二アプリケーション103等のアプリケーションから、IDに加えてパスワード等の認証情報の入力を受け付けてもよい。また、この場合には、情報処理装置101は、例えば、依頼元のアプリケーションからIDに加えて入力を受け付けた認証情報を、第一参照部110や第二参照部111により参照されたデータに含まれる認証情報と照合する認証部を含んでもよい。
【0078】
上記認証部は、例えば、入力を受け付けた認証情報と、データに含まれる認証情報とが一致した場合には、認証が成功したものと判定して認証トークンを発行し、当該認証トークンを依頼元のアプリケーションに返却してもよい。また、上記認証部は、例えば、入力を受け付けた認証情報と、データに含まれる認証情報とが一致しなかった場合には、認証が失敗したものと判定して、認証に係るエラーを依頼元のアプリケーションに返却してもよい。
【0079】
このように、本実施形態に係る技術は、データの参照に限らず、認証機能等の他の機能の実現にも応用することが可能であり、この際に、ケース区別なしのIDの管理と、ケース区別ありのIDの管理とをより好適な態様で両立することが可能となる。
【0080】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記録媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
この場合には、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することとなり、そのプログラムを記憶した記憶媒体が本発明を構成し得る。
プログラムを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROM、DVD等を用いることが可能である。
また、コンピュータが読み出したプログラムを実行することにより、実施形態として前述した機能が実現される例のみには限定されない。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOperating System(OS)等が実際の処理の一部または全部を実行することで、その処理によって実施形態として前述した機能が実現されてもよい。
また、記憶媒体から読み出されたプログラムが、コンピュータに接続された機能拡張ユニットのメモリに書きこまれた後、その機能拡張ユニットのCPUが実際の処理の一部または全部を実行することで、実施形態として前述した機能が実現されてもよい。
【符号の説明】
【0081】
101 情報処理装置
102 第一アプリケーション
103 第二アプリケーション
104 管理部
105 検索部
108 第一衝突判定部
109 第二衝突判定部