(57)【特許請求の範囲】
【請求項１】
秘匿データを管理する秘匿データ管理装置と、
前記秘匿データ以外のデータである公開データを管理する情報処理装置と、
前記秘匿データ管理装置および前記情報処理装置と通信可能に接続されたユーザ端末と、
を備えた情報処理システムであって、
前記情報処理装置は、
前記公開データを記憶する公開データ記憶部と、
前記公開データ記憶部から前記公開データを読み出す公開データ取得部と、
前記秘匿データ管理装置に記憶されている前記秘匿データを前記ユーザ端末に取得させるためのプログラムを記憶するプログラム記憶部と、
読み出した前記公開データおよび前記プログラムを前記ユーザ端末に送信するプログラム送信部と、
を備え、
前記ユーザ端末は、前記秘匿データ管理装置にアクセスし、前記秘匿データ管理装置から、前記ユーザ端末がアクセスすべき前記情報処理装置を指定する情報を受信し、受信した前記情報に指定されている前記情報処理装置にアクセスし、
前記情報処理装置は、当該情報処理装置が保持する前記公開データのうち前記ユーザ端末から要求された公開データを取得し、前記要求された公開データと前記プログラムとを前記ユーザ端末に送信し、
前記ユーザ端末は、前記プログラムを実行することにより、前記秘匿データ管理装置にアクセスし、
前記秘匿データ管理装置は、前記秘匿データ管理装置が保持する前記秘匿データのうち前記ユーザ端末から要求された秘匿データを取得して前記ユーザ端末に送信し、
前記ユーザ端末は、前記秘匿データ管理装置から取得した秘匿データと前記情報処理装置から取得した公開データとを出力する
ことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記ユーザ端末が前記情報処理装置にテーブルの名称を送信し、
前記公開データ取得部が、前記テーブルが前記公開データ記憶部に管理されているか否かを判定し、
管理されている場合には、前記テーブルに記憶されている公開データを前記ユーザ端末に送信し、
管理されていない場合には、前記プログラム送信部が前記プログラムを前記ユーザ端末に送信し、
前記ユーザ端末は、前記プログラム送信部から前記プログラムを受信すると、前記プログラムを実行して前記テーブルのデータを前記秘匿データ管理装置から取得する
ことを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムであって、
前記情報処理装置は、前記テーブルが、前記秘匿データ管理装置と前記公開データ記憶部のうちいずれに管理されているかを管理するデータ配置場所情報記憶部を備え、
前記公開データ取得部は、前記データ配置場所情報記憶部に基づき、前記ユーザ端末が指定したテーブルが前記公開データ記憶部に記憶されているか否かを判定する
ことを特徴とする情報処理システム。
【請求項４】
請求項１に記載の情報処理システムにおける秘匿データ管理装置であって、
前記ユーザ端末がアクセスすべき情報処理端末を指定する応答スクリプトを記憶したスクリプト記憶部を備え、
前記ユーザ端末からアクセスされたときに前記ユーザ端末に前記応答スクリプトを送信する
ことを特徴とする秘匿データ管理装置。
【請求項５】
秘匿データを管理する秘匿データ管理装置と、
前記秘匿データ以外のデータである公開データを管理する情報処理装置と、
前記秘匿データ管理装置および前記情報処理装置と通信可能に接続されたユーザ端末と、
を備え、
前記情報処理装置が、
前記公開データを記憶する公開データ記憶部と、
前記公開データ記憶部から前記公開データを読み出す公開データ取得部と、
前記秘匿データ管理装置に記憶されている前記秘匿データを前記ユーザ端末に取得させるためのプログラムを記憶するプログラム記憶部と、
読み出した前記公開データおよび前記プログラムを前記ユーザ端末に送信するプログラム送信部と、
を備え、
前記ユーザ端末が、前記秘匿データ管理装置にアクセスし、前記秘匿データ管理装置から、前記ユーザ端末がアクセスすべき前記情報処理装置を指定する情報を受信し、受信した前記情報に指定されている前記情報処理装置にアクセスし、
前記情報処理装置が、当該情報処理装置が保持する前記公開データのうち前記ユーザ端末から要求された公開データを取得し、前記要求された公開データと前記プログラムとを前記ユーザ端末に送信し、
前記ユーザ端末が、前記プログラムを実行することにより、前記秘匿データ管理装置にアクセスし、
前記秘匿データ管理装置が、前記秘匿データ管理装置が保持する前記秘匿データのうち前記ユーザ端末から要求された秘匿データを取得して前記ユーザ端末に送信し、
前記ユーザ端末が、前記秘匿データ管理装置から取得した秘匿データと前記情報処理装置から取得した公開データとを出力する
情報処理システムにおける前記秘匿データ管理装置に、
前記ユーザ端末からの前記アクセスに応じて、前記ユーザ端末がアクセスすべき前記情報処理装置を指定する情報を送信する機能と、
自身が保持する前記秘匿データのうち前記ユーザ端末から要求された秘匿データを取得して前記ユーザ端末に送信する機能と
を実現するためのプログラム。
【請求項６】
秘匿データを管理する秘匿データ管理装置と、
秘匿データ以外のデータである公開データを管理する情報処理装置と、
前記秘匿データ管理装置および前記情報処理装置と通信可能に接続されたユーザ端末と、
を備え、
前記情報処理装置が、
前記公開データを記憶する公開データ記憶部と、
前記公開データ記憶部から前記公開データを読み出す公開データ取得部と、
前記秘匿データ管理装置に記憶されている前記秘匿データを前記ユーザ端末に取得させるためのプログラムを記憶するプログラム記憶部と、
読み出した前記公開データおよび前記プログラムを前記ユーザ端末に送信するプログラム送信部と、
を備え、
前記ユーザ端末が、前記秘匿データ管理装置にアクセスし、前記秘匿データ管理装置から、前記ユーザ端末がアクセスすべき前記情報処理装置を指定する情報を受信し、受信した前記情報に指定されている前記情報処理装置にアクセスし、
前記情報処理装置が、当該情報処理装置が保持する前記公開データのうち前記ユーザ端末から要求された公開データを取得し、前記要求された公開データと前記プログラムとを前記ユーザ端末に送信し、
前記ユーザ端末が、前記プログラムを実行することにより、前記秘匿データ管理装置にアクセスし、
前記秘匿データ管理装置が、前記秘匿データ管理装置が保持する前記秘匿データのうち前記ユーザ端末から要求された秘匿データを取得して前記ユーザ端末に送信し、
前記ユーザ端末が、前記秘匿データ管理装置から取得した秘匿データと前記情報処理装置から取得した公開データとを出力し、
前記ユーザ端末が前記情報処理装置にテーブルの名称を送信し、
前記公開データ取得部が、前記テーブルが前記公開データ記憶部に管理されているか否かを判定し、
管理されている場合には、前記テーブルに記憶されている公開データを前記ユーザ端末に送信し、
管理されていない場合には、前記プログラム送信部が前記プログラムを前記ユーザ端末に送信し、 
前記ユーザ端末は、前記プログラム送信部から前記プログラムを受信すると、前記プログラムを実行して前記テーブルのデータを前記秘匿データ管理装置から取得する
情報処理システムにおける前記情報処理装置に、
前記テーブルが前記公開データ記憶部に管理されているか否かを判定する機能と、  
管理されている場合には、前記テーブルに記憶されている公開データを前記ユーザ端末に送信する機能と、
管理されていない場合には、前記プログラムを前記ユーザ端末に送信する機能と
を実現するためのプログラム。
【請求項７】
請求項６に記載の前記プログラムであって、
前記情報処理装置は、前記テーブルが、前記秘匿データ管理装置と前記公開データ記憶部のうちいずれに管理されているかを管理するデータ配置場所情報記憶部を備えており、
前記情報処理装置に、
前記データ配置場所情報記憶部に基づき、前記ユーザ端末が指定したテーブルが前記公開データ記憶部に管理されているか否かを判定する機能と、
管理されている場合に、前記テーブルに記憶されている公開データを前記ユーザ端末に送信する機能と、
管理されていない場合に、前記プログラムを前記ユーザ端末に送信する機能と 
を実現するためのプログラム。
【請求項８】
請求項５に記載の前記プログラムであって、
前記秘匿データ管理装置は、前記ユーザ端末がアクセスすべき情報処理端末を指定する応答スクリプトを記憶したスクリプト記憶部を備えており、
情報処理システムにおける前記秘匿データ管理装置に、
前記ユーザ端末からの前記アクセスに応じて、前記ユーザ端末がアクセスすべき前記情報処理装置を指定する情報を送信する機能と、
自身が保持する前記秘匿データのうち前記ユーザ端末から要求された秘匿データを取得して前記ユーザ端末に送信する機能と
前記ユーザ端末からアクセスされたときに前記ユーザ端末に前記応答スクリプトを送信する機能と
を実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、秘匿データ管理装置、およびプログラムに関する。
【背景技術】
【０００２】
これまでクライアント装置上で実行するデスクトップアプリケーションとして実装されてきた企業内の業務システムの多くがＷｅｂ上のサービスとして提供されはじめている。Ｗｅｂ上のサービスは外部のサービス提供業者により運用されることが多く、その場合、個人情報や社内の機密情報など企業内に秘匿したい情報についてもＷｅｂサーバ側で管理されることとなり、企業外の業者がＷｅｂサーバで管理されているデータにアクセスすることによりデータが漏洩する可能性がある。
【０００３】
このような問題に対処し、データを秘匿する技術が提案されている。例えば、特許文献１には、Ｗｅｂサービス提供装置や認証機関への情報の暗号化に用いられる秘密鍵を耐タンパ性記憶装置に格納することが記載されている。また、特許文献２には、ユーザに選択されたキーワードや要素を秘密にしておき、ユーザから送信された購入希望情報および秘密鍵から送付鍵を計算し、送付鍵および選択された要素などから、選択されたキーワードに対応する情報のみを復号化させることが記載されている。
【特許文献１】特開２００３−３０４２３４号公報
【特許文献２】特開２００６−３９６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、利用者側の装置や情報の提供者側の装置に情報秘匿のための特別な装置やプログラムを設置しなければならなかった。また、秘匿の対象となる情報が、認証処理の際に通信される情報であったり、取得したい情報を示す情報であったり、限定された場面や情報を対象としており、汎用的に活用できなかった。
【０００５】
本発明はこのような背景を鑑みてなされたものであり、データを秘匿することを可能とする情報処理システム、秘匿データ管理装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明のうち主たる発明は、秘匿データを管理する秘匿データ管理装置と、前記秘匿データ以外のデータである公開データを管理する情報処理装置と、前記秘匿データ管理装置および前記情報処理装置と通信可能に接続されたユーザ端末と、を備えた情報処理システムであって、前記情報処理装置は、前記公開データを記憶する公開データ記憶部と、前記公開データ記憶部から前記公開データを読み出す公開データ取得部と、前記秘匿データ管理装置に記憶されている前記秘匿データを前記ユーザ端末に取得させるためのプログラムを記憶するプログラム記憶部と、読み出した前記公開データおよび前記プログラムを前記ユーザ端末に送信するプログラム送信部と、を備え、前記ユーザ端末は、前記秘匿データ管理装置にアクセスし、前記秘匿データ管理装置から、前記ユーザ端末がアクセスすべき前記情報処理装置を指定する情報を受信し、受信した前記情報に指定されている前記情報処理装置にアクセスし、前記情報処理装置は、当該情報処理装置が保持する前記公開データのうち前記ユーザ端末から要求された公開データを取得し、前記要求された公開データと前記プログラムとを前記ユーザ端末に送信し、前記ユーザ端末は、前記プログラムを実行することにより、前記秘匿データ管理装置にアクセスし、前記秘匿データ管理装置は、前記秘匿データ管理装置が保持する前記秘匿データのうち前記ユーザ端末から要求された秘匿データを取得して前記ユーザ端末に送信し、前記ユーザ端末は、前記秘匿データ管理装置から取得した秘匿データと前記情報処理装置から取得した公開データとを出力することとする。
【発明の効果】
【０００７】
本発明によれば、データを秘匿することを可能とする情報処理システム、秘匿データ管理装置、およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照しながら、本発明の一実施形態に係る情報処理システムについて説明する。
【０００９】
１  システム構成
図１は、本実施の形態に係る情報処理システムの全体構成を示す図である。同図に示すように、本実施形態の情報処理システムは、ユーザ端末１０、データプロバイダ２０、アプリケーションプロバイダ３０を含んで構成される。ユーザ端末１０、データプロバイダ２０およびアプリケーションプロバイダ３０はそれぞれ、通信ネットワーク４０を介して互いに通信可能に接続されている。通信ネットワーク４０は、例えば、インターネットやＬＡＮ（Local Area Network）であり、イーサネット（登録商標）や電話回線網、無線回線網などにより構築される。本実施形態では、通信ネットワーク４０上ではＴＣＰ／ＩＰによる通信が行われるものとする。
【００１０】
本実施形態の情報処理システムは、Ｗｅｂアプリケーションとしてスケジュール管理などのサービスを、データプロバイダ２０およびアプリケーションプロバイダ３０の２つのサーバにより提供するものである。アプリケーションプロバイダ３０は、いわゆるアプリケーションサーバであり、サービスの提供に必要な情報処理を行う。通常Ｗｅｂアプリケーションは、単一のサーバにより提供されるが、本実施形態では、Ｗｅｂアプリケーションに必要なデータのうち、個人情報や機密情報など、ユーザが所属する企業（組織）内において秘匿したいデータ（以下、秘匿データという。）をデータプロバイダ２０に管理させ、それ以外のデータ（以下、公開データという。）のみをアプリケーションプロバイダ３０に管理させることで、アプリケーションプロバイダ３０を運用する組織（例えば、サービスの運用業者など）と、ユーザの所属する企業とが異なる場合でも、秘匿データが運用業者に漏洩する危険を低減するものである。
【００１１】
ユーザ端末１０は、情報処理システムの利用者が操作するコンピュータである。ユーザ端末１０は、例えば、パーソナルコンピュータやワークステーション、ＰＤＡ（Personal Data Assistant）、携帯電話端末などである。ユーザ端末１０では、Ｗｅｂブラウザが動作しており、利用者は、Ｗｅｂブラウザを操作することにより、データプロバイダ２０やアプリケーションプロバイダ３０にアクセスする。なお、ユーザ端末１０はユーザの数だけ存在しうるが、本実施形態では説明を簡単にするため、ひとつのユーザ端末１０のみが含まれるものとする。
【００１２】
データプロバイダ２０（本発明の秘匿データ管理装置に該当する。）は、秘匿データを管理する、例えば、パーソナルコンピュータやワークステーションなどのコンピュータである。データプロバイダ２０は、例えば、ユーザ端末１０と同じ組織内に設置され、ユーザ端末１０と同じ組織により運用管理されることを想定している。
【００１３】
アプリケーションプロバイダ３０は、情報処理サービスを提供するためのＷｅｂアプリケーションを実行する、例えば、パーソナルコンピュータやワークステーションなどのコンピュータである。アプリケーションプロバイダ３０は、例えば、ユーザ端末１０およびデータプロバイダ２０が設置される組織とは異なるサービスの提供業者により管理されることを想定している。
【００１４】
２  ハードウェア構成  
図２は、本実施形態のユーザ端末１０、データプロバイダ２０、およびアプリケーションプロバイダ３０に用いられる典型的なコンピュータのハードウェア構成を示す図である。同図に示すように、これらに用いられるコンピュータは、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、通信インタフェース１０４を備えている。記憶装置１０３は、各種のデータやプログラムを記憶する、例えば、ハードディスクドライブやフラッシュメモリ、ＣＤ−ＲＯＭドライブなどである。ＣＰＵ１０１は記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより、各種の機能を提供する。通信インタフェース１０４は、通信ネットワーク４０に接続するためのインタフェースである。通信インタフェース１０４は、例えば、イーサネット（登録商標）に接続するためのアダプタや、公衆電話回線網に接続するためのモデム、無線通信を行う無線通信機などである。
【００１５】
３  ソフトウェア構成  
３．１  ユーザ端末１０のソフトウェア構成  
図３は、本実施形態の情報処理システムのソフトウェア構成を示す図である。  
ユーザ端末１０は、Ｗｅｂブラウザ１１を備えている。Ｗｅｂブラウザ１１は、ユーザの操作に応じて、ＨＴＴＰ（HyperText Transfer Protocol）に従ったリクエストをデータプロバイダ２０やアプリケーションプロバイダ３０に送信することにより、公開データや秘匿データへのアクセスを行う。なお、ユーザ端末１０で動作するＷｅｂブラウザ１１は、一般的なブラウザを想定している。
【００１６】
また、Ｗｅｂブラウザ１１はユーザの操作に応じて、秘匿データを参照するための参照要求を含むＨＴＴＰリクエスト（以下、単に参照要求ともいう。）をデータプロバイダ２０に送信し、参照要求に応じてデータプロバイダ２０から送信される秘匿データを画面に表示し、秘匿データの登録や更新、削除（以下、これらをまとめて更新という。）を行うための更新要求を含むＨＴＴＰリクエストをデータプロバイダ２０に送信することで、データプロバイダ２０が管理する秘匿データを更新する。Ｗｅｂブラウザ１１は、公開データを参照するための参照要求を含むＨＴＴＰリクエストをアプリケーションプロバイダ３０に送信し、参照要求に応じてアプリケーションプロバイダ３０から応答される公開データを画面に表示し、公開データの更新を行うための更新要求を含むＨＴＴＰリクエストをアプリケーションプロバイダ３０に送信することで、アプリケーションプロバイダ３０が管理する公開データを更新する。これらの参照要求や登録要求の仕様は、所定のＡＰＩ（Application Program Interface）として定義されているものとする。
【００１７】
なお、Ｗｅｂブラウザ１１は、ユーザ端末１０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。
【００１８】
３．２  データプロバイダ２０のソフトウェア構成  
データプロバイダ２０は、Ｗｅｂサーバ２０１、参照処理ページ処理機能２０２、更新処理ページ処理機能２０３、データＡＰＩ機能２０４、秘匿データ記憶部２０５、およびスクリプト記憶部２０６を備えている。Ｗｅｂサーバ２０１、参照処理ページ処理機能２０２、更新処理ページ処理機能２０３、データＡＰＩ機能２０４はそれぞれ、データプロバイダ２０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。
【００１９】
秘匿データ記憶部２０５は、秘匿データを記憶する。秘匿データ記憶部２０５は、例えば、テーブル単位で秘匿データを管理するＲＤＢＭＳ（Relational DataBase Management System）として実現される。この場合、秘匿データ記憶部２０５は、データプロバイダ２０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される機能と、メモリ１０２や記憶装置１０３が提供する記憶領域とから構成される。なお、秘匿データ記憶部２０５は、メモリ１０２や記憶装置１０３が提供する記憶領域として実現するようにすることもできる。秘匿データ記憶部２０５が管理するテーブル４−２０の一例を図４に示す。テーブル４−２０を示すテーブル名は「ｕｓｅｒｓ」である。テーブル４−２０には、「ｕｓｅｒ＿ｉｄ」「ｎａｍｅ」「ｔｅｌ」「ａｄｄｒｅｓｓ」のカラムが含まれる。
【００２０】
スクリプト記憶部２０６は、Ｗｅｂサーバ２０１がユーザ端末１０からの初回のアクセスに対して応答するスクリプト（以下、応答用スクリプト２１という。）を記憶する。スクリプト記憶部２０６は、データプロバイダ２０が備えるメモリ１０２や記憶装置１０３が提供する記憶領域として実現される。
【００２１】
応答用スクリプト２１の一例を図５に示す。同図に示すように、応答用スクリプト２１には、アプリケーションプロバイダにアクセスするためのコマンドが記述されており（４行目）、ユーザ端末１０のＷｅｂブラウザ１１は、応答用スクリプト２１に含まれるコマンドに応じて、アプリケーションプロバイダ３０にアクセスする。
【００２２】
Ｗｅｂサーバ２０１は、ユーザ端末１０から送信されるＨＴＴＰリクエストに応じて、ＨＴＭＬ（HyperText Markup Language）により記述されたＷｅｂページをユーザ端末１０に応答し、あるいはＨＴＴＰリクエストに応じて各種のプログラムを実行し、その結果をＷｅｂページとしてユーザ端末１０に応答する。Ｗｅｂページには、ＪａｖａＳｃｒｉｐｔにより記述されるプログラム（以下、スクリプトという。）を含めることが可能であり、Ｗｅｂページに含まれるスクリプトは、ユーザ端末１０のＷｅｂブラウザ１１により実行される。
【００２３】
参照処理ページ処理機能２０２は、ユーザ端末１０からの初回のアクセス時には、スクリプト記憶部２０６が記憶している応答用スクリプト２１を応答する。それ以降のアクセス時には、参照処理ページ処理機能２０２は、Ｗｅｂサーバ２０１が受信したＨＴＴＰリクエストに参照要求が含まれていた場合に起動し、データＡＰＩ機能２０４を呼び出して秘匿データ記憶部２０５にアクセスし、秘匿データを取得し、取得した秘匿データを含むＷｅｂページを生成してユーザ端末１０に応答する。
【００２４】
更新処理ページ処理機能２０３は、Ｗｅｂサーバ２０１が受信したＨＴＴＰリクエストに更新要求が含まれている場合に、データＡＰＩ機能２０４を呼び出して秘匿データ記憶部２０５にアクセスし、秘匿データの更新を行い、その結果を示すＷｅｂページを生成してユーザ端末１０に応答する。
【００２５】
データＡＰＩ機能２０４は、参照処理ページ処理機能２０２や更新処理ページ処理機能２０３からの呼び出しに応じて、秘匿データ記憶部２０５にアクセスする機能を提供する。データＡＰＩ機能２０４は、例えば、テーブル名と条件とを引数として呼び出され、そのテーブル名および条件を記載したＲＤＢＭＳへのクエリを生成してＲＤＢＭＳが管理するテーブルから条件に見合うデータの読み出し、更新などを行う。
【００２６】
３．３  アプリケーションプロバイダ３０のソフトウェア構成  
アプリケーションプロバイダ３０は、Ｗｅｂサーバ３０１、参照処理ページ処理機能３０２、更新処理ページ処理機能３０３、データＡＰＩ機能３０４、公開データ記憶部３０５、データ配置場所情報記憶部３０６、スクリプト記憶部３０７を備えている。Ｗｅｂサーバ３０１、参照処理ページ処理機能３０２、更新処理ページ処理機能３０３、およびデータＡＰＩ機能３０４は、アプリケーションプロバイダ３０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。
【００２７】
公開データ記憶部３０５は、公開データを記憶する。公開データ記憶部３０５は、例えば、公開データをテーブル単位に管理するＲＤＢＭＳとして実現される。この場合公開データ記憶部３０５は、アプリケーションプロバイダ３０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される機能と、メモリ１０２や記憶装置１０３が提供する記憶領域とから構成される。なお、公開データ記憶部３０５は、メモリ１０２や記憶装置１０３が提供する記憶領域として実現するようにしてもよい。公開データ記憶部３０５が管理するテーブル４−１０の一例を図６に示す。テーブル４−１０を示すテーブル名は「ｓｃｈｅｄｕｌｅｓ」である。テーブル４−１０には、「ｉｄ」「ｄａｔｅ」「ｕｓｅｒ＿ｉｄ」「ｃｏｎｔｅｎｔ」のカラムが含まれる。
【００２８】
データ配置場所情報記憶部３０６は、データが記憶されている場所を示す情報（以下、データ配置場所情報という。）を記憶する。データ配置場所情報記憶部３０６に記憶されるデータ配置場所情報の構成例を図７に示す。同図に示すように、データ配置場所情報には、ユーザ組織、テーブル名、配置場所が含まれる。ユーザ組織は、ユーザ端末１０およびデータプロバイダ２０が設置される組織を特定する情報である。テーブル名は、Ｗｅｂアプリケーションに用いられるデータが格納されるテーブルを示す名称である。配置場所は、テーブル名が示すテーブルがどこに管理されているかを示す情報であり、本実施形態では、データプロバイダ２０を示す「データプロバイダ」か、アプリケーションプロバイダ３０を示す「アプリケーションプロバイダ」のいずれかである。データ配置場所情報記憶部３０６は、組織ごとにデータ配置場所情報を記憶するが、本実施形態では、説明を簡単にするため、ユーザ端末１０およびデータプロバイダ２０は、「Ａ＿ＣＯＭＰＡＮＹ」という組織に設置されているものとする。
【００２９】
データＡＰＩ機能３０４は、公開データ記憶部３０５へのアクセスを行う。データＡＰＩ機能３０４は公開データ記憶部３０５を実現するＲＤＢＭＳにアクセスし、データの参照処理や更新処理を行う。データＡＰＩ機能３０４は、例えば、ＲＤＢＭＳにアクセスするためのドライバプログラムと、外部からの処理要求に基づきドライバプログラムを呼び出すプログラムとから構成される。
【００３０】
スクリプト記憶部３０７（本発明のプログラム記憶部に該当する。）は、ページ生成スクリプト３１、データアクセススクリプト３２、ブラウザ用データアクセススクリプト３３などの各種のスクリプトを記憶する。
【００３１】
なお、本実施形態では、説明を簡単にするため、スクリプト記憶部３０７には、ページ生成スクリプト３１は１つのみ記憶されているものとするが、例えば、スケジュール管理サービスに必要な機能ごとに用意され、スケジュール管理サービスの処理に必要なページ生成スクリプト３１が実行されるようにしてもよい。このように必要なスクリプトを選択して実行する処理については、一般的なＷｅｂアプリケーションを実現するアプリケーションプログラムにおいて実装されているものであり、本実施形態では説明を省略する。
【００３２】
ページ生成スクリプト３１（本発明のアクセス情報に該当する。）は、スケジュール管理サービスに係る情報処理を行うためのスクリプトである。ページ生成スクリプト３１は、コンピュータに、スケジュール管理サービスの提供に必要なデータをテーブルから取得するステップと、取得したデータを出力するステップとを実行させるものである。ページ生成スクリプト３１は、後述するデータアクセススクリプト３２やブラウザ用データアクセススクリプト３３とともに実行されることを想定しており、同時に実行される他のスクリプトが提供する関数を呼び出すことで、必要なデータをテーブルから取得することが記述される。
【００３３】
図８は、ページ生成スクリプト３１の一例を示す図である。なお、図８の例では、説明のために左端に行番号を表示している。図８に示すページ生成スクリプト３１は、スケジュール管理に関するデータを取得して、取得したデータを一覧表示するためのスクリプトを想定している。
【００３４】
図８に示すように、ページ生成スクリプト３１の４行目には、ｓｃｈｅｄｕｌｅｓテーブル４−１０にアクセスしてレコード（以下、スケジュールデータという。）を取得する関数である「ＤａｔａＡｃｅｓｓｏｒ．ｇｅｔ」を呼び出すステップ（４行目）が記述されている。「ＤａｔａＡｃｃｅｓｓｏｒ．ｇｅｔ」関数は、後述するデータアクセススクリプト３２やブラウザ用データアクセススクリプト３３に定義される。４行目のステップでは、ｓｃｈｅｄｕｌｅｓテーブル４−１０から、ｄａｔｅカラムの値の順に並べて２０個までのレコードを取得するようにされている。
【００３５】
また、ページ生成スクリプト３１には、各スケジュールデータについて、「ｕｓｅｒｓ」テーブルから、スケジュールデータのｕｓｅｒ＿ｉｄをキーとしてレコード（以下、ユーザデータという。）を取得するステップ（７行目）が記述され、取得した予定情報のレコードに紐づいたｕｓｅｒｓテーブル４−２０のレコードを取得するようにされている。
【００３６】
ページ生成スクリプト３１には、他にも、スケジュールデータの「ｄａｔｅ」フィールドを出力するステップ（９行目）、ユーザデータを出力するステップ（１０行目）、スケジュールデータの「ｃｏｎｔｅｎｔ」フィールドを出力するステップ（１１行目）などが含まれている。「ｐ」関数は、後述するデータアクセススクリプト３２やブラウザ用データアクセススクリプト３３に定義される。
【００３７】
データアクセススクリプト３２（本発明の第１のプログラムに該当する。）は、ＲＤＢＭＳにアクセスして必要なデータを取得するためのスクリプトである。データアクセススクリプト３２は、アプリケーションプロバイダ３０において実行され、アプリケーションプロバイダ３０に、テーブル名に対応する配置場所をデータ配置場所情報記憶部３０６から読み出すステップと、読み出した配置場所がアプリケーションプロバイダであるか否かにより、テーブル名が示すテーブルに公開データが管理されているか否かを判定するステップと、テーブル名が示すテーブルに公開データが管理されている場合にのみ、公開データ記憶部３０５にアクセスして、テーブル名が示すテーブルから、条件に見合う公開データを読み出すステップとを実行させるためのものである。具体的には、データアクセススクリプト３２には、テーブル名と条件とを引数として、条件に見合うテーブルのデータにアクセスするための関数が記述される。なお、これらのテーブルへのアクセス処理は、データＡＰＩ３０４が提供する機能を用いることで行う。データアクセススクリプト３２には、データを出力するための関数も記述される。
【００３８】
図９は、データアクセススクリプト３２の一例を示す図である。データアクセススクリプト３２の８行目では、引数として設定されたテーブル名が公開データ記憶部３０５に登録されているか否かを判定するステップが記述されている。また、公開データ記憶部３０５に記憶されている公開データを取得するステップ（９行目）とともに、取得した公開データをデータ列（以下、キャッシュという。）として出力するステップ（１０行目）とが記述されている。データアクセススクリプト３２により生成されるキャッシュは、後述するように、ブラウザ用データアクセススクリプト３３とともにページ生成スクリプト３１に付帯されてユーザ端末１０に送信される。
【００３９】
ブラウザ用データアクセススクリプト３３（本発明の第２のプログラムに該当する。）には、データアクセススクリプト３２と同様に、テーブル名と条件とを引数として、条件に見合うテーブルのデータにアクセスするための関数が記述される。ブラウザ用データアクセススクリプト３３は、ユーザ端末１０において実行される。ブラウザ用データアクセススクリプト３３は、ユーザ端末１０に、ページ生成スクリプト３１に付帯されているキャッシュから、テーブル名および条件に見合うデータを読み出すステップと、キャッシュから読み出すことができなかったデータについて、データプロバイダ２０にアクセスし、秘匿データ記憶部２０５が管理する、テーブル名が示すテーブルから条件に見合うデータを取得するステップとを実行させるためのプログラムである。
【００４０】
図１０は、ブラウザ用データアクセススクリプト３３の一例を示す図である。ブラウザ用データアクセススクリプト３３では、引数（ｐａｒａｍｓ）としてテーブル名が渡されることを想定しており、１０行目では、キャッシュからテーブル名に対応するデータを検索するステップが記述されており、１１〜１２行目では、キャッシュからデータを検索することができなかった場合に、データプロバイダ２０にアクセスしてテーブル名が示すテーブルからデータを検索するステップが記述されている。  
なお、上記スクリプトを実行した場合の処理の詳細については後述する。
【００４１】
Ｗｅｂサーバ３０１は、ユーザ端末１０から送信されるＨＴＴＰリクエストに応じて、ＨＴＭＬにより記述されたＷｅｂページをユーザ端末１０に応答し、あるいはＨＴＴＰリクエストに応じて各種のプログラムを実行し、その結果をＷｅｂページとしてユーザ端末１０に応答する。Ｗｅｂページにスクリプトが含まれている場合、そのスクリプトはユーザ端末１０のＷｅｂブラウザ１１により実行される。
【００４２】
参照処理ページ処理機能３０２は、Ｗｅｂサーバ３０１が受信したＨＴＴＰリクエストにスケジュール管理サービスに必要なデータの参照要求が含まれていた場合に、ページ生成スクリプト３１およびデータアクセススクリプト３２を実行する。参照処理ページ処理機能３０２は、データアクセススクリプト３２の実行時に、データＡＰＩ機能３０４を呼び出して公開データ記憶部３０５にアクセスし、公開データ記憶部３０５が管理しているテーブルから公開データを取得する。参照処理ページ処理機能３０２は、ページ生成スクリプト３１の実行により生成されたキャッシュと、ブラウザ用データアクセススクリプト３３とをページ生成スクリプト３１に付帯させてユーザ端末１０に送信する。
【００４３】
更新処理ページ処理機能３０３は、Ｗｅｂサーバ３０１が受信したＨＴＴＰリクエストに応じて、ページ生成スクリプト３１を実行する。公開データの更新要求が含まれていた場合に、データＡＰＩ機能３０４を呼び出して公開データ記憶部３０５にアクセスし、公開データの更新処理を行う。
【００４４】
４  処理手順  
４．１  秘匿対象の情報がない場合  
まず、秘匿データがない場合、すなわちデータプロバイダ２０を必要としない場合について説明する。この場合、スケジュール管理サービスを提供するＷｅｂアプリケーションは、アプリケーションプロバイダ３０でのみ動作する、一般的なものとなる。
【００４５】
４．１．１  参照処理手順  
図１１は、秘匿データがない場合の参照要求に対する処理の流れを示す図である。  
まずユーザの操作に応じて、ユーザ端末１０は、アプリケーションプロバイダ３０に対して、スケジュールの参照を行うための参照要求を含むリクエストを送信する（ステップ２−１０１）。
【００４６】
アプリケーションプロバイダ３０はユーザ端末１０からリクエストを受信すると、参照要求に応じた処理を行う（ステップ２−２０１）。アプリケーションプロバイダ３０は、例えば、ページ生成に必要なデータを取得する処理（ステップ２−２０１１）と、取得したデータを用いて参照ページのＨＴＭＬを出力する処理（ステップ２−２０１２）とを行い、ユーザ端末１０に返信すべきＷｅｂページを作成する。アプリケーションプロバイダ３０は、生成したＷｅｂページをリクエストの送信元であるユーザ端末１０に返信する（ステップ２−２０２）。  
ユーザ端末１０はアプリケーションプロバイダ３０から応答されたＷｅｂページを受信し（ステップ２−１０２）、受信したＷｅｂページを画面上に表示する（ステップ２−１０３）。
【００４７】
以上の処理により、ユーザはアプリケーションプロバイダ３０が管理する情報のみを利用して生成されたＷｅｂページを閲覧する。
【００４８】
４．１．２  更新処理手順  
データを更新する場合、ユーザ端末１０のブラウザにはデータを入力するためのＷｅｂページ（以下、更新用入力ページという。）が表示され、ユーザは更新用入力ページに必要な情報を入力し、ブラウザを操作してその情報をアプリケーションプロバイダ３０に送信し、アプリケーションプロバイダ３０からは更新処理の結果を示すＷｅｂページ（以下、更新処理結果ページという。）が応答され、更新処理結果ページがユーザ端末１０に表示される。図１２は、秘匿データが存在しない場合のデータの更新処理の流れを示す図である。
【００４９】
まずユーザの操作を契機として、ユーザ端末１０からアプリケーションプロバイダ３０に対して、更新用入力ページを指定したリクエストが送信される（ステップ５−１０１）。  
アプリケーションプロバイダ３０は、リクエストを受信すると、更新処理ページ処理機能３０３により、リクエストに指定された更新用入力ページをリクエスト元のユーザ端末１０に返信する（ステップ５−２０１）。
【００５０】
ユーザ端末１０は、アプリケーションプロバイダ３０から受信した更新用入力ページを解釈して画面に表示する（ステップ５−１０２）。ユーザは、ブラウザを操作して、更新用入力ページに対して、例えば、新規に追加する予定に関する日時や予定の内容などのデータを入力する。ユーザ端末１０はユーザからの送信指示に応じて、更新要求を含むリクエストをアプリケーションプロバイダ３０に送信する（ステップ５−１０３）。なお、リクエストにはユーザから入力されたデータも付帯される。
【００５１】
アプリケーションプロバイダ３０は、更新要求を含むリクエストを受信すると、更新処理ページ処理機能３０３により、そのリクエストに付帯されているデータを公開データ記憶部３０５に登録するなどの更新処理を行い（ステップ５−２０２）、更新処理の結果を示す更新処理結果ページを生成し、生成した更新処理結果ページを、リクエスト元のユーザ端末１０に返信する（ステップ５−２０３）。なお、上記更新処理を行い、更新処理結果ページを作成するためのページ生成スクリプト３１を準備しておき、それをアプリケーションプロバイダ３０が実行するようにしてもよい。  
ユーザ端末１０は更新処理結果ページを受信すると（ステップ５−１０４）、受信した更新処理結果ページを解釈して画面に表示する（ステップ５−１０５）。
【００５２】
以上の処理により、ユーザはアプリケーションプロバイダ３０が管理するデータを更新する処理を行い、その結果を示す更新処理結果ページを閲覧することができる。
【００５３】
４．２  秘匿対象の情報がある場合  
次に秘匿データが存在する場合、すなわちデータプロバイダ２０が情報処理システムに含まれている場合の処理手順について説明する。
【００５４】
４．２．１  データプロバイダの準備  
まず、データプロバイダ２０の準備について説明する。  
データプロバイダ２０の管理者は、アプリケーションプロバイダ３０において取り扱われるデータのうち、秘匿データに該当するものを選ぶ。本実施形態では、ｕｓｅｒｓテーブル４−２０に格納されるデータとする。なお、アプリケーションプロバイダ３０において既に使用されているデータがある場合には、管理者がアプリケーションプロバイダ３０の公開データ記憶部３０５から秘匿データに該当するｕｓｅｒｓテーブル４−２０の内容を取り出して、データプロバイダ２０の秘匿データ記憶部２０５に移行する。管理者は、データプロバイダ２０を所定の組織内のネットワークに接続させるように配備する。管理者は、アプリケーションプロバイダ３０のデータ配置場所情報記憶部３０６を作成して、ユーザ組織をデータプロバイダ２０が所属する組織を示す「Ａ＿ＣＯＭＰＡＮＹ」、テーブル名を「ｓｃｈｅｄｕｌｅｓ」、配置場所を「アプリケーションプロバイダ」として設定したレコードと、ユーザ組織を「Ａ＿ＣＯＭＰＡＮＹ」、テーブル名を「ｕｓｅｒｓ」、配置場所を「データプロバイダ」として設定したレコードとを登録する。
【００５５】
管理者は、秘匿データ記憶部２０５に管理されるテーブルｕｓｅｒｓに外部からアクセスするためのデータＡＰＩ機能２０４を配備する。管理者は、データプロバイダ２０に参照処理ページ処理機能２０２と更新処理ページ処理機能２０３を配備する。更新処理ページ処理機能２０３は、アプリケーションプロバイダ３０が保持する更新処理ページ処理機能２０３と同様の処理を実行する機能を有し、その処理対象が秘匿データ記憶部２０５になる。参照処理ページ処理機能２０２については後述する。
【００５６】
４．２．２  参照系処理手順  
図１３は、秘匿データが存在する場合の、参照要求に対する処理の流れを示す図である。  
ユーザの操作を契機として、ユーザ端末１０が参照要求を含むリクエストをデータプロバイダ２０に送信する（ステップ７−１０１）。  
データプロバイダ２０はユーザ端末１０からリクエストを受信すると、応答用スクリプト２１をユーザ端末１０に返信する（ステップ７−２０１）。
【００５７】
ユーザ端末１０は応答用スクリプト２１を受信して（ステップ７−１０２）、受信した応答用スクリプト２１を画面に表示するとともに、応答用スクリプト２１に含まれているスクリプトを実行する（ステップ７−１０３）。上述したように、応答用スクリプト２１には、アプリケーションプロバイダ３０にアクセスするコマンド（４行目）が記述されているので、ユーザ端末１０はそのコマンドに応じて、アプリケーションプロバイダ３０にリクエストを送信する（ステップ７−１０４）。  
アプリケーションプロバイダ３０はユーザ端末１０からリクエストを受信すると、ページ生成スクリプト３１およびデータアクセススクリプト３２を実行する（ステップ７−３０１）。
【００５８】
図１４は、データアクセススクリプト３２においてＤａｔａＡｃｃｅｓｓｏｒ．ｇｅｔ関数として定義されるデータ取得処理の流れを示す図である。なお、図１４に示す処理は、ページ生成スクリプト３１に定義される処理から、アクセス先のテーブルを示すテーブル名と、取得するレコードの条件とを指定して上記関数を呼び出すことにより実行される。
【００５９】
アプリケーションプロバイダ３０は、データアクセススクリプト３２を実行すると、指定されたテーブル名に対応する配置場所をデータ配置場所情報記憶部３０６から取得し（ステップ９−１０１）、取得した配置場所が「アプリケーションプロバイダ」であった場合には（ステップ９−１０２：アプリケーションプロバイダ）、データＡＰＩ機能２０４により、公開データ記憶部３０５に管理されているテーブル名が示すテーブルから、指定された条件に見合う公開データを取得する（ステップ９−１０４）。アプリケーションプロバイダ３０は、取得した公開データをテーブル名に対応付けてキャッシュに登録する（ステップ９−１０５）。
【００６０】
例えば、図７に示すデータ配置場所情報記憶部３０６の例では、アプリケーションプロバイダ３０に、ｓｃｈｅｄｕｌｅｓテーブル４−１０が管理され、データプロバイダ２０に、ｕｓｅｒｓテーブル４−２０が管理されていることが示されており、この場合、上記処理によってｓｃｈｅｄｕｌｅｓテーブル４−１０のレコードはキャッシュに登録されるが、ｕｓｅｒｓテーブル４−２０テーブルにはアクセスされないので、ｕｓｅｒｓテーブル４−２０のレコードはキャッシュには登録されない。
【００６１】
以上のようにしてアプリケーションプロバイダ３０は、ページ生成スクリプト３１から呼び出される、データアクセススクリプト３２に定義されたＤａｔａＡｃｅｓｓｏｒ．ｇｅｔ関数を実行して、テーブル名に対応するデータを取得してキャッシュに登録し（ステップ７−３０１１）、取得したデータを出力するｐ関数を実行する（ステップ７−３０１２）。なお、図９のデータアクセススクリプト３２ではｐ関数は何もしない設定になっているので、ステップ７−３０１２では何も処理されない。
【００６２】
次に、アプリケーションプロバイダ３０は、上記処理により生成したキャッシュと、ブラウザ用データアクセススクリプト３３とをページ生成スクリプト３１に含ませたスクリプト（以下、キャッシュ付きページ生成スクリプトという。）をリクエスト元のユーザ端末１０に返信する（ステップ７−３０２）。
【００６３】
ユーザ端末１０はキャッシュ付きページ生成スクリプトを受信すると、受信したページ生成スクリプトを実行する（ステップ７−１０５）。キャッシュ付ページ生成スクリプトの実行時には、キャッシュ付ページ生成スクリプトに含まれるブラウザ用データアクセススクリプト３３も実行される。
【００６４】
図１５は、ブラウザ用データアクセススクリプト３３においてＤａｔａＡｃｃｅｓｓｏｒ．ｇｅｔ関数として定義されるデータ取得処理の流れを示す図である。なお、図１５に示す処理は、ページ生成スクリプト３１に定義される処理から、アクセス先のテーブルを示すテーブル名と、取得するレコードの条件とを指定して上記関数を呼び出すことにより実行される。
【００６５】
ユーザ端末１０は、ブラウザ用データアクセススクリプト３３を実行すると、指定されたテーブル名に対応するデータがキャッシュに登録されているかどうかを判定し（ステップ１０−１０１）、キャッシュに登録されている場合（ステップ１０−１０１：ある）、キャッシュからデータを取得し（ステップ１０１−０２）、キャッシュに登録されていない場合には（ステップ１０−１０１：ない）、データプロバイダ２０に対してテーブル名および条件を設定したリクエストを送信し、データプロバイダ２０がデータＡＰＩ機能３０４により秘匿データ記憶部２０５から取得した秘匿データを受信することにより、秘匿データを取得する（ステップ１０−１０３）。本実施形態では、ステップ１０−１０３では、ｕｓｅｒｓテーブル４−２０からレコードが取得される。
【００６６】
以上のようにして、キャッシュに登録されているデータ、すなわちアプリケーションプロバイダ３０が検索した公開データと、ユーザ端末１０がデータプロバイダ２０にアクセスして取得した秘匿データとが取得される。
【００６７】
以上のようにしてユーザ端末１０は、ページ生成スクリプト３１から呼び出される、ブラウザ用データアクセススクリプト３３に定義されたＤａｔａＡｃｅｓｓｏｒ．ｇｅｔ関数を実行して、テーブル名に対応する公開データをキャッシュから取得するとともに、テーブル名に対応する秘匿データをデータプロバイダ２０から取得する（ステップ７−１０５１）。ユーザ端末１０は、取得したデータを出力するｐ関数を実行して、取得したデータを画面に表示するためのＨＴＭＬを出力する（ステップ７−１０５２）。
【００６８】
上記のようにして、ページ生成スクリプト３１の実行により公開データおよび秘匿データはＷｅｂブラウザ１１上に出力される（ステップ７−１０６）。
【００６９】
以上説明したように、本実施形態の情報処理システムによれば、アプリケーションプロバイダ３０が提供するサービスに必要なデータのうち、秘匿データについては組織内に配備するデータプロバイダ２０で管理し、アプリケーションプロバイダ３０には公開データのみを管理させつつ、アプリケーションプロバイダ３０に格納されている公開データと、データプロバイダに２０に格納されている秘匿データとを両方ユーザ端末１０に表示することができる。アプリケーションプロバイダ３０に秘匿データが管理されないので、アプリケーションプロバイダ３０が、ユーザの組織以外の運用者により運用されている場合にも、秘匿データが漏洩するリスクを低減することができる。
【００７０】
さらに、アプリケーションプロバイダ３０からデータプロバイダ２０にアクセスすることがないので、データプロバイダ２０をアプリケーションプロバイダ３０とは通信不可能なサイトに設置することもできる。これにより、データプロバイダ２０において管理する秘匿データをアプリケーションプロバイダ３０からアクセスすることができないようにすることができる。この場合、アプリケーションプロバイダ３０を運用する組織と、ユーザ端末１０やデータプロバイダ２０を運用する組織とが異なる場合にも、アプリケーションプロバイダ３０で管理するデータが、アプリケーションプロバイダ３０を運用する組織のユーザに閲覧される可能性はあっても、データプロバイダ２０で管理するデータが上記ユーザに閲覧される可能性がなくなる。よって、データの確実に秘匿することができる。
【００７１】
その一方で、秘匿データではない公開データについてはアプリケーションプロバイダ３０に管理させることができるので、データプロバイダ２０の負荷を最小限に抑えることができる。
【００７２】
また、本実施形態では、アプリケーションプロバイダ３０とユーザ端末１０とは、同じページ生成スクリプト３１を実行するものの、アプリケーションプロバイダ３０とユーザ端末１０とでは、異なるデータアクセス用のスクリプト（データアクセススクリプト３２およびブラウザ用データアクセススクリプト３３）を実行する。これにより、アプリケーションプロバイダ３０におけるスクリプトの実行時には、公開データ記憶部３０５へのアクセスが行われ、ユーザ端末１０におけるスクリプトの実行時には、秘匿データ記憶部２０５へのアクセスが行われるようになる。したがって、アプリケーションの動作を規定したページ生成スクリプト３１のロジックを変更することなく、秘匿データと公開データとを異なるコンピュータで管理するようにすることができる。
【００７３】
また、ページ生成スクリプト３１に定義するロジックが変更になった場合にも、ページ生成スクリプト３１のみを更新すればよいので、アプリケーションプロバイダ３０におけるスクリプトの更新作業を容易にすることができる。
【００７４】
また、ページ生成スクリプト３１の開発時には、秘匿データがどこに記憶されているかを考慮する必要がないので、ページ生成スクリプト３１の開発効率を向上することができる。
【００７５】
また、データの秘匿が必要ない場合には、データプロバイダ２０を配備せず、アプリケーションプロバイダ３０に対してのみユーザ端末１０でアクセスすることによりアプリケーションを利用することもできる。この場合、アプリケーションプロバイダ３０においてデータ配置場所情報記憶部３０６を更新するだけで、その他のアプリケーションプロバイダ３０の構成を変更する必要がない。よって、情報処理システムの構成を柔軟に変化させることができる。また、秘匿データはユーザが自由にデータ配置場所情報記憶部３０６に設定することができるので、柔軟にシステムの設計を行うことが可能となる。
【００７６】
４．２．３  更新系処理手順
なお、秘匿データが存在する場合の情報処理システムにおける更新処理では、秘匿データを更新する場合には、データプロバイダ２０に対して更新要求が送信され、公開データを更新する場合には、アプリケーションプロバイダ３０に対して更新要求が送信される。データプロバイダ２０にも更新処理ページ処理機能２０３が配備されているので、上述した図１２の更新処理と同様の処理によって、秘匿データ記憶部２０５に管理されている秘匿データが更新される。
【００７７】
なお、本実施形態では説明を簡単にするため、ユーザが所属する組織は企業であるものとしたが、これに限らず、ユーザは組織に属さず個人として秘匿したいデータを取り扱うものとしてもよい。
【００７８】
また、データプロバイダ２０が備える各機能はユーザ端末１０が備えるようにしてもよい。この場合、Ｗｅｂブラウザ１１から独立したアプリケーションプログラムとしてデータプロバイダ２０の機能を配備してもよいし、Ｗｅｂブラウザ１１のプラグインプログラムとして配備してもよい。
【００７９】
５  レコード単位でデータを秘匿化する
以下、秘匿データの管理単位をレコード単位として、レコード単位にデータを秘匿化する変形例について説明する。
【００８０】
上記実施形態では、秘匿データの管理単位をデータベースのテーブル単位としていたが、これをレコード単位としてもよい。この場合、データプロバイダ２０およびアプリケーションプロバイダ３０で同じテーブル名のテーブルを管理するようにしておき、データプロバイダ２０に管理されるテーブルに格納されるレコードは秘匿データであり、アプリケーションプロバイダ３０に管理されているテーブルに格納されるレコードは公開データであると判定される。
【００８１】
スケジュール管理サービスにおいて、スケジュール情報が格納されるレコード単位に秘匿データであるか公開データであるかの区別を行うことで、例えば、外部に公開してもよいスケジュール情報と、外部に公開したくないスケジュール情報が混在する場合でも、外部に公開してもよいスケジュール情報をアプリケーションプロバイダ３０に管理させ、外部に公開したくないスケジュール情報をデータプロバイダ２０に管理させることで、データプロバイダ２０が管理すべき情報量を低減することが可能となる。
【００８２】
本変形例においてデータ配置場所情報記憶部３０６に記憶されるデータ配置場所情報の一例を図１６に示す。同図に示すように、「Ａ＿ＣＯＭＰＡＮＹ」および「ｓｃｈｅｄｕｌｅｓ」に対応する配置情報には、アプリケーションプロバイダ３０およびデータプロバイダ２０の両方が設定されており、これは、「ｓｃｈｅｄｕｌｅｓ」テーブル４−２０がアプリケーションプロバイダ３０およびデータプロバイダ２０の両方で管理されていることを示している。
【００８３】
本変形例では、上記図６に示したｓｃｈｅｄｕｌｅｓテーブルのｉｄが「３」であるレコードが秘匿データとして、データプロバイダ２０に管理されることを想定する。
【００８４】
アプリケーションプロバイダ３０の公開データ記憶部３０５が管理するｓｃｈｅｄｕｌｅｓテーブルの構成例を図１７に示す。図１７の例では、図６に示したテーブル４−１０に登録されていたレコードのうち、ｉｄが「３」であるレコードのみが登録されている。
【００８５】
データプロバイダ２０の秘匿データ記憶部２０５が管理するｓｃｈｅｄｕｌｅｓテーブル４−３０の一例を図１８に示す。同図に示すように、データプロバイダ２０において管理されるｓｃｈｅｄｕｌｅｓテーブル４−３０も、アプリケーションプロバイダ３０において管理されるｓｃｈｅｄｕｌｅｓテーブル４−１０と同じ構成であり、図６に示したテーブル４−１０に登録されていたレコードのうち、ｉｄが「３」であるレコード以外のレコードが、データプロバイダ２０において管理されるｓｃｈｅｄｕｌｅｓテーブル４−３０に登録されている。
【００８６】
本変形例では、ブラウザ用アクセススクリプト３３に代えて、図１９に示すブラウザ用アクセススクリプト３３−１が用いられる。図１９に示すブラウザ用アクセススクリプト３３−１では、図１０に示すブラウザ用データアクセススクリプト３３の１１行目において行われていた、キャッシュにデータが登録されていなかった場合にのみ、データプロバイダ２０にアクセスするようにする判断処理の定義が省略されている（図１９、１１行目）。したがって、本変形例では、ユーザ端末１０がブラウザ用データアクセススクリプト３３−１を実行する場合、アプリケーションプロバイダ３０から応答されたキャッシュにあるテーブル名に対応する公開データが格納されていたとしても、データプロバイダ２０が管理するそのテーブル名のテーブルにアクセスして秘匿データを取得する。つまり、本変形例では、データプロバイダ２０とアプリケーションプロバイダ３０とで同じテーブル名のテーブルが管理され、それらの両方についてデータの検索が行われ、アプリケーションプロバイダ３０が管理するテーブルから取得した公開データと、データプロバイダ２０が管理するテーブルから取得した秘匿データとが連結される（１１行目）。これにより、データプロバイダ２０において管理されるデータは秘匿データであり、アプリケーションプロバイダ３０において管理されるデータは公開データであるものとして、レコード単位にデータを管理するようにすることができる。
【００８７】
５．１  レコード単位の秘匿化における処理手順
５．１．１  更新系処理手順
レコード単位でデータを秘匿化する場合でも、更新処理は上述した実施形態と同じく、公開データについては、ユーザ端末１０はアプリケーションプロバイダ３０にアクセスし、更新処理ページ処理機能３０３を利用してアプリケーションプロバイダ３０が保持する公開データ記憶部３０５の情報を更新し、秘匿データについては、ユーザ端末１０はデータプロバイダ２０に接続し、更新処理ページ処理機能２０３を利用してデータプロバイダ２０が保持する秘匿データ記憶部２０５の情報を更新する。
【００８８】
５．１．２  参照系処理手順
レコード単位でデータを秘匿する場合も、参照要求に対する処理の流れは上述の図１３に示す処理の流れと同じである。ただし、ステップ７−３０２においてアプリケーションプロバイダ３０が送信するキャッシュ付ページ生成スクリプトは、ページ生成スクリプト３１に、キャッシュとブラウザ用アクセススクリプト３３−１とを含ませたものであり、ステップ７−１０５において、ユーザ端末１０が実行するスクリプトは、ページ生成スクリプト３１およびブラウザ用アクセススクリプト３３−１になる。
【００８９】
図２０は、ブラウザ用データアクセススクリプト３３−１においてＤａｔａＡｃｃｅｓｓｏｒ．ｇｅｔ関数として定義されるデータ取得処理の流れを示す図である。なお、図２０に示す処理は、ページ生成スクリプト３１に定義される処理から、アクセス先のテーブルを示すテーブル名と、取得するレコードの条件とを指定して上記関数を呼び出すことにより実行される。
【００９０】
ユーザ端末１０は、ブラウザ用データアクセススクリプト３３−１を実行すると、指定されたテーブル名に対応するデータをキャッシュから取得するとともに（ステップ１７−１０１）、データプロバイダ２０に対してテーブル名および条件を設定したリクエストを送信し、データプロバイダ２０がデータＡＰＩ機能３０４により秘匿データ記憶部２０５から取得した秘匿データを受信することにより、秘匿データを取得する（ステップ１０−１０３）。  
上記処理により、レコード単位にデータを秘匿化することも可能となる。
【００９１】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。  
例えば、上記実施形態では秘匿データは、レコードごとデータプロバイダ２０に管理されるものとしたが、例えば、割符方式によりレコードの一部をデータプロバイダ２０に管理させるようにしてもよい。
【図面の簡単な説明】
【００９２】
【図１】本実施の形態に係る情報処理システムの全体構成を示す図である。
【図２】本実施形態で用いられる典型的なコンピュータのハードウェア構成を示す図である。
【図３】本実施形態の情報処理システムのソフトウェア構成を示す図である。
【図４】秘匿データ記憶部２０５が管理するテーブル４−２０の一例を示す図である。
【図５】応答用スクリプト２１の一例を示す図である。
【図６】公開データ記憶部３０５が管理するテーブル４−１０の一例を示す図である。
【図７】データ配置場所情報記憶部３０６に記憶されるデータ配置場所情報の構成例を示す図である。
【図８】ページ生成スクリプト３１の一例を示す図である。
【図９】データアクセススクリプト３２の一例を示す図である。
【図１０】ブラウザ用データアクセススクリプト３３の一例を示す図である。
【図１１】秘匿データがない場合の参照要求に対する処理の流れを示す図である。
【図１２】秘匿データが存在しない場合のデータの更新処理の流れを示す図である。
【図１３】秘匿データが存在する場合の参照要求に対する処理の流れを示す図である。
【図１４】データアクセススクリプト３２において定義されるデータ取得処理の流れを示す図である。
【図１５】ブラウザ用データアクセススクリプト３３において定義されるデータ取得処理の流れを示す図である。
【図１６】データ配置場所情報記憶部３０６に記憶されるデータ配置場所情報の一例を示す図である。
【図１７】公開データ記憶部３０５が管理するｓｃｈｅｄｕｌｅｓテーブルの構成例を示す図である。
【図１８】秘匿データ記憶部２０５が管理するｓｃｈｅｄｕｌｅｓテーブル４−３０の一例を示す図である。
【図１９】ブラウザ用アクセススクリプト３３−１の一例を示す図である。
【図２０】ブラウザ用データアクセススクリプト３３−１において定義されるデータ取得処理の流れを示す図である。
【符号の説明】
【００９３】
１０  ユーザ端末
２０  データプロバイダ
３０  アプリケーションプロバイダ
２０１  Ｗｅｂサーバ
２０２  参照処理ページ処理機能
２０３  更新処理ページ処理機能
２０４  データＡＰＩ機能
２０５  秘匿データ記憶部
２０６  スクリプト記憶部
３０１  Ｗｅｂサーバ
３０２  参照処理ページ処理機能
３０３  更新処理ページ処理機能
３０４  データＡＰＩ機能
３０５  公開データ記憶部
３０６  データ配置場所情報記憶部
３０７  スクリプト記憶部
３１    ページ生成スクリプト
３２    データアクセススクリプト
３３    ブラウザ用データアクセススクリプト
３３−１  ブラウザ用データアクセススクリプト
【図１】
0004734311.tif 000002
【図２】
0004734311.tif 000003
【図３】
0004734311.tif 000004
【図４】
0004734311.tif 000005
【図５】
0004734311.tif 000006
【図６】
0004734311.tif 000007
【図７】
0004734311.tif 000008
【図８】
0004734311.tif 000009
【図９】
0004734311.tif 000010
【図１０】
0004734311.tif 000011
【図１１】
0004734311.tif 000012
【図１２】
0004734311.tif 000013
【図１３】
0004734311.tif 000014
【図１４】
0004734311.tif 000015
【図１５】
0004734311.tif 000016
【図１６】
0004734311.tif 000017
【図１７】
0004734311.tif 000018
【図１８】
0004734311.tif 000019
【図１９】
0004734311.tif 000020
【図２０】
0004734311.tif 000021