(57)【特許請求の範囲】
【請求項１】
クライアントがインターネットを介してウェブアプリケーション提供サーバから提供されるウェブアプリケーションを利用可能なウェブアプリケーション提供システムであって、
前記インターネットと接続されるイントラネット上に設置される中継サーバを備え、
前記ウェブアプリケーション提供サーバは、前記インターネット上に設置されており、
前記クライアントは、前記ウェブアプリケーション提供サーバ及び前記中継サーバと通信可能であり、
前記ウェブアプリケーション提供サーバは、
前記クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションを前記クライアントで利用可能にするとともに、前記利用要求が前記インターネットを介してのアクセスか又は前記イントラネットを介してのアクセスかを、前記クライアントのＩＰアドレスを基に判断し、
前記判断の結果と、自装置が予め保持している前記中継サーバのアドレスとを、前記クライアントへ通知し、
前記クライアントに提供されたウェブアプリケーションは、
前記判断の結果が前記インターネットを介してのアクセスである場合は、前記クライアントのユーザによる前記ウェブアプリケーションを用いてのデータ入力を不許可とし、前記判断の結果が前記イントラネットを介してのアクセスである場合は、前記クライアントのユーザによる前記ウェブアプリケーションを用いてのデータ入力を許可し、
前記ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシを前記クライアントのユーザに選択させ、
前記アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び前記書き込み指示がなされたデータを、前記中継サーバのアドレスを基に送信し、
前記中継サーバは、
前記アクセス制御ポリシ及び前記書き込み指示がなされたデータを自装置に保存するとともに、当該アクセス制御ポリシを基に当該データに前記インターネット上で公開するデータが含まれていると判断した場合は、当該インターネット上で公開するデータを前記ウェブアプリケーション提供サーバへ送信し、
前記ウェブアプリケーション提供サーバは、
前記インターネット上で公開するデータを自装置に保存することを特徴とするウェブアプリケーション提供システム。
【請求項２】
前記アクセス制御ポリシとして、
前記書き込み指示がなされたデータの全部を前記インターネット上で公開することを意味する公開ポリシが選択された場合、前記書き込み指示がなされたデータの全部は、前記中継サーバ及び前記ウェブアプリケーション提供サーバに保存され、
前記書き込み指示がなされたデータの全部を前記インターネット上では公開せずに前記イントラネット上でのみ公開することを意味する秘密ポリシが選択された場合、前記書き込み指示がなされたデータの全部は、前記中継サーバのみに保存され、
前記書き込み指示がなされたデータを限定的に前記インターネット上で公開することを意味する一部公開ポリシが選択された場合、前記書き込み指示がなされたデータの全部のうち前記インターネット上で公開するデータが前記ウェブアプリケーション提供サーバに保存され、前記書き込み指示がなされたデータの全部のうち前記インターネット上で公開しないデータが前記中継サーバに保存されることを特徴とする請求項１記載のウェブアプリケーション提供システム。
【請求項３】
前記クライアントに提供されたウェブアプリケーションは、
前記判断の結果が前記イントラネットを介してのアクセスである場合に、予め保存されている所定のデータの読み取り指示を受け付けた場合、当該データの読み取り要求を、前記中継サーバのアドレスを基に送信し、
前記中継サーバは、
前記読み取り指示がなされたデータに対応するアクセス制御ポリシの内容に関わらず、予め自装置に保存しているデータの中から前記読み取り指示がなされたデータを検索して前記クライアントへ送信し、
前記クライアントに提供されたウェブアプリケーションは、
前記中継サーバから受信したデータを表示することを特徴とする請求項１又は２記載のウェブアプリケーション提供システム。
【請求項４】
前記クライアントに提供されたウェブアプリケーションは、
前記判断の結果が前記インターネットを介してのアクセスである場合に、予め保存されている所定のデータの読み取り指示を受け付けた場合、当該データの読み取り要求を、前記ウェブアプリケーション提供サーバへ送信し、
前記ウェブアプリケーション提供サーバは、
前記読み取り指示がなされたデータの全部を自装置から取得できた場合は、当該データを前記クライアントへ送信し、
前記読み取り指示がなされたデータを自装置から全く取得できなかった場合は、当該データを取得できなかった旨を前記クライアントへ通知し、
前記読み取り指示がなされたデータの一部を自装置から取得できた場合は、当該データの読み取り要求を前記中継サーバに送信し、
前記中継サーバは、
前記ウェブアプリケーション提供サーバから前記データの読み取り要求を受信すると、当該データに対応するアクセス制御ポリシの内容に従って、予め自装置に保存しているデータの中から前記読み取り指示がなされたデータを検索して前記ウェブアプリケーション提供サーバへ送信し、
前記ウェブアプリケーション提供サーバは、
自装置から取得できたデータの一部と、前記中継サーバから受信したデータとに基づいて後処理を行って前記クライアントへ送信し、
前記クライアントに提供されたウェブアプリケーションは、
前記ウェブアプリケーション提供サーバから受信したデータを表示することを特徴とする請求項１から３のいずれか１項に記載のウェブアプリケーション提供システム。
【請求項５】
前記ウェブアプリケーション提供サーバは、
前記中継サーバの代わりに、前記アクセス制御ポリシを保存し、当該アクセス制御ポリシの内容に基づいた判断を行うことを特徴とする請求項１から４のいずれか１項に記載のウェブアプリケーション提供システム。
【請求項６】
請求項１から５のいずれか１項に記載のウェブアプリケーション提供システムに備えられるウェブアプリケーション提供サーバであることを特徴とする情報処理装置。
【請求項７】
インターネット上に設置され、クライアントの要求に応じて所定のウェブアプリケーションを提供する情報処理装置であって、
前記クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションを前記クライアントで利用可能にするとともに、前記利用要求が前記インターネットを介してのアクセスか又は前記インターネットと接続されるイントラネットを介してのアクセスかを、前記クライアントのＩＰアドレスを基に判断し、
前記判断の結果と、自装置が予め保持している、前記イントラネット上に設置され、前記ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを、前記クライアントへ通知し、
前記中継サーバから受信した、前記ウェブアプリケーションを用いて入力されたデータのうち前記インターネット上で公開するデータを保存する、
ことを特徴とする情報処理装置。
【請求項８】
所定のウェブアプリケーションを提供するウェブアプリケーション提供サーバとインターネットを介して通信可能な情報処理装置であって、
前記ウェブアプリケーション提供サーバに対して所定のウェブアプリケーションの利用要求を行った場合に、前記ウェブアプリケーション提供サーバから提供されるウェブアプリケーションを動作させ、
前記ウェブアプリケーション提供サーバから、前記利用要求が前記インターネットを介してのアクセスか又は前記インターネットと接続されるイントラネットを介してのアクセスかと、前記イントラネット上に設置され、前記ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを受信し、
前記利用要求が前記インターネットを介してのアクセスである場合は、自装置のユーザによる前記ウェブアプリケーションを用いてのデータ入力を不許可とし、前記利用要求が前記イントラネットを介してのアクセスである場合は、自装置のユーザによる前記ウェブアプリケーションを用いてのデータ入力を許可する処理と、
前記ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシを自装置のユーザに選択させ、
前記アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び前記書き込み指示がなされたデータを、前記中継サーバのアドレスを基に送信する、
ことを特徴とする情報処理装置。
【請求項９】
クライアントがインターネットを介してウェブアプリケーション提供サーバから提供されるウェブアプリケーションを利用可能なウェブアプリケーション提供方法であって、
前記インターネットと接続されるイントラネット上には中継サーバが設置され、前記ウェブアプリケーション提供サーバは前記インターネット上に設置され、前記クライアントは前記ウェブアプリケーション提供サーバ及び前記中継サーバと通信可能であり、
前記ウェブアプリケーション提供サーバは、
前記クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションを前記クライアントで利用可能にするとともに、前記利用要求が前記インターネットを介してのアクセスか又は前記イントラネットを介してのアクセスかを、前記クライアントのＩＰアドレスを基に判断し、
前記判断の結果と、自装置が予め保持している前記中継サーバのアドレスとを、前記クライアントへ通知し、
前記クライアントに提供されたウェブアプリケーションは、
前記判断の結果が前記インターネットを介してのアクセスである場合は、前記クライアントのユーザによる前記ウェブアプリケーションを用いてのデータ入力を不許可とし、前記判断の結果が前記イントラネットを介してのアクセスである場合は、前記クライアントのユーザによる前記ウェブアプリケーションを用いてのデータ入力を許可し、
前記ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシを前記クライアントのユーザに選択させ、
前記アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び前記書き込み指示がなされたデータを、前記中継サーバのアドレスを基に送信し、
前記中継サーバは、
前記アクセス制御ポリシ及び前記書き込み指示がなされたデータを自装置に保存するとともに、当該アクセス制御ポリシを基に当該データに前記インターネット上で公開するデータが含まれていると判断した場合は、当該インターネット上で公開するデータを前記ウェブアプリケーション提供サーバへ送信し、
前記ウェブアプリケーション提供サーバは、
前記インターネット上で公開するデータを自装置に保存することを特徴とするウェブアプリケーション提供方法。
【請求項１０】
インターネット上に設置された装置に対するクライアントの要求に応じて所定のウェブアプリケーションを提供するウェブアプリケーション提供方法であって、
前記クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションを前記クライアントで利用可能にするとともに、前記利用要求が前記インターネットを介してのアクセスか又は前記インターネットと接続されるイントラネットを介してのアクセスかを、前記クライアントのＩＰアドレスを基に判断し、
前記判断の結果と、自装置が予め保持している、前記イントラネット上に設置され、前記ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを、前記クライアントへ通知し、
前記中継サーバから受信した、前記ウェブアプリケーションを用いて入力されたデータのうち前記インターネット上で公開するデータを保存する、
ことを特徴とするウェブアプリケーション提供方法。
【請求項１１】
ウェブアプリケーション提供サーバとインターネットを介して通信可能な装置に所定のウェブアプリケーションを提供するウェブアプリケーション提供方法であって、
前記ウェブアプリケーション提供サーバに対して所定のウェブアプリケーションの利用要求を行った場合に、前記ウェブアプリケーション提供サーバから提供されるウェブアプリケーションを動作させ、
前記ウェブアプリケーション提供サーバから、前記利用要求が前記インターネットを介してのアクセスか又は前記インターネットと接続されるイントラネットを介してのアクセスかと、前記イントラネット上に設置され、前記ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを受信し、
前記利用要求が前記インターネットを介してのアクセスである場合は、前記装置のユーザによる前記ウェブアプリケーションを用いてのデータ入力を不許可とし、前記利用要求が前記イントラネットを介してのアクセスである場合は、前記装置のユーザによる前記ウェブアプリケーションを用いてのデータ入力を許可し、
前記ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシを前記装置のユーザに選択させ、
前記アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び前記書き込み指示がなされたデータを、前記中継サーバのアドレスを基に送信する、
ことを特徴とするウェブアプリケーション提供方法。
【請求項１２】
インターネット上に設置され、クライアントの要求に応じて所定のウェブアプリケーションを提供する装置に実行させるためのプログラムであって、
前記クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションを前記クライアントで利用可能にするとともに、前記利用要求が前記インターネットを介してのアクセスか又は前記インターネットと接続されるイントラネットを介してのアクセスかを、前記クライアントのＩＰアドレスを基に判断する処理と、
前記判断の結果と、自装置が予め保持している、前記イントラネット上に設置され、前記ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを、前記クライアントへ通知する処理と、
前記中継サーバから受信した、前記ウェブアプリケーションを用いて入力されたデータのうち前記インターネット上で公開するデータを保存する処理と、
を実行させることを特徴とするプログラム。
【請求項１３】
所定のウェブアプリケーションを提供するウェブアプリケーション提供サーバとインターネットを介して通信可能な装置に実行させるためのプログラムであって、
前記ウェブアプリケーション提供サーバに対して所定のウェブアプリケーションの利用要求を行った場合に、前記ウェブアプリケーション提供サーバから提供されるウェブアプリケーションを動作させる処理と、
前記ウェブアプリケーション提供サーバから、前記利用要求が前記インターネットを介してのアクセスか又は前記インターネットと接続されるイントラネットを介してのアクセスかと、前記イントラネット上に設置され、前記ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを受信する処理と、
前記利用要求が前記インターネットを介してのアクセスである場合は、前記装置のユーザによる前記ウェブアプリケーションを用いてのデータ入力を不許可とし、前記利用要求が前記イントラネットを介してのアクセスである場合は、前記装置のユーザによる前記ウェブアプリケーションを用いてのデータ入力を許可する処理と、
前記ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシを前記装置のユーザに選択させる処理と、
前記アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び前記書き込み指示がなされたデータを、前記中継サーバのアドレスを基に送信する処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントと、クライアントにウェブアプリケーションを提供するサーバとを備えたウェブアプリケーション提供システム、情報処理装置、ウェブアプリケーション提供方法及びプログラムに関する。
【背景技術】
【０００２】
ユーザによって使用される情報処理装置であるクライアントと、そのクライアントからの要求に応じて所定のウェブアプリケーションを提供する情報処理装置であるサーバとが、インターネットを介して通信を行うウェブアプリケーション提供システムが知られている。このようなシステムの一例として、SaaS（Software as a Service）と呼ばれるものがある。SaaSを用いることで、クライアントが、インターネット閲覧ソフト（ウェブブラウザ）を使用して、サーバから提供されるウェブアプリケーションを利用できるようになる。
【０００３】
SaaSに関する技術例としては、特許文献１に開示されているものがある。この特許文献１に開示されているシステムでは、ウェブアプリケーションを提供するサーバとして、社外向けSaaSサーバと社内向けSaaSサーバの２つを備える構成としている。すなわち、社外のネットワークであるインターネットからのアクセスに対しては社外向けSaaSサーバが対応し、社内のネットワークであるイントラネットからのアクセスに対しては社内向けSaaSサーバが対応するようになっている。これにより、社外に保存される情報を少なくするとともに、社外の人とも情報を共有できるようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のシステムでは、社外・社内のネットワーク毎にSaaSサーバを２つ設置する必要があることから、以下の問題がある。まず、SaaSサーバが１つの場合に比べ、２つのSaaSサーバに置かれるウェブアプリケーションのメンテナンスにかかるコスト（例えば人件費）が増えるという問題がある。また、２つのSaaSサーバはそれぞれ異なるＵＲＬが割り当てられるので、ユーザにとってはＵＲＬの管理が煩雑となり、誤操作を引き起こすおそれがあるという問題もある。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、ウェブアプリケーションを提供するサーバにおけるアプリケーションのメンテナンス（保守管理）にかかるコストを削減し、かつ、ユーザにとってのサーバのＵＲＬの管理を容易にしつつ、インターネット上に保存される情報を少なくでき、かつ、インターネット上において情報を共有できるようにするウェブアプリケーション提供システム、情報処理装置、ウェブアプリケーション提供方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
かかる目的を達成するために、本発明のウェブアプリケーション提供システムは、クライアントがインターネットを介してウェブアプリケーション提供サーバから提供されるウェブアプリケーションを利用可能なウェブアプリケーション提供システムであって、インターネットと接続されるイントラネット上に設置される中継サーバを備え、ウェブアプリケーション提供サーバは、インターネット上に設置されており、クライアントは、ウェブアプリケーション提供サーバ及び中継サーバと通信可能であり、アプリケーション提供サーバは、クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションをクライアントで利用可能にするとともに、利用要求がインターネットを介してのアクセスか又はイントラネットを介してのアクセスかを、クライアントのＩＰアドレスを基に判断し、判断の結果と、自装置が予め保持している中継サーバのアドレスとを、クライアントへ通知し、クライアントに提供されたウェブアプリケーションは、判断の結果がインターネットを介してのアクセスである場合は、クライアントのユーザによるウェブアプリケーションを用いてのデータ入力を不許可とし、判断の結果がイントラネットを介してのアクセスである場合は、クライアントのユーザによるウェブアプリケーションを用いてのデータ入力を許可し、ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシをクライアントのユーザに選択させ、アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び書き込み指示がなされたデータを、中継サーバのアドレスを基に送信し、中継サーバは、アクセス制御ポリシ及び書き込み指示がなされたデータを自装置に保存するとともに、当該アクセス制御ポリシを基に当該データにインターネット上で公開するデータが含まれていると判断した場合は、当該インターネット上で公開するデータをウェブアプリケーション提供サーバへ送信し、ウェブアプリケーション提供サーバは、インターネット上で公開するデータを自装置に保存することを特徴とする。
【０００７】
また、本発明のウェブアプリケーション提供システムにおいて、アクセス制御ポリシとして、書き込み指示がなされたデータの全部をインターネット上で公開することを意味する公開ポリシが選択された場合、書き込み指示がなされたデータの全部は、中継サーバ及びウェブアプリケーション提供サーバに保存され、書き込み指示がなされたデータの全部をインターネット上では公開せずにイントラネット上でのみ公開することを意味する秘密ポリシが選択された場合、書き込み指示がなされたデータの全部は、中継サーバのみに保存され、書き込み指示がなされたデータを限定的にインターネット上で公開することを意味する一部公開ポリシが選択された場合、書き込み指示がなされたデータの全部のうちインターネット上で公開するデータがウェブアプリケーション提供サーバに保存され、書き込み指示がなされたデータの全部のうちインターネット上で公開しないデータが中継サーバに保存されることを特徴とする。
【０００８】
また、本発明のウェブアプリケーション提供システムにおいて、クライアントに提供されたウェブアプリケーションは、判断の結果がイントラネットを介してのアクセスである場合に、予め保存されている所定のデータの読み取り指示を受け付けた場合、当該データの読み取り要求を、中継サーバのアドレスを基に送信し、中継サーバは、読み取り指示がなされたデータに対応するアクセス制御ポリシの内容に関わらず、予め自装置に保存しているデータの中から読み取り指示がなされたデータを検索してクライアントへ送信し、クライアントに提供されたウェブアプリケーションは、中継サーバから受信したデータを表示することを特徴とする。
【０００９】
また、本発明のウェブアプリケーション提供システムにおいて、クライアントに提供されたウェブアプリケーションは、判断の結果がインターネットを介してのアクセスである場合に、予め保存されている所定のデータの読み取り指示を受け付けた場合、当該データの読み取り要求を、ウェブアプリケーション提供サーバへ送信し、ウェブアプリケーション提供サーバは、読み取り指示がなされたデータの全部を自装置から取得できた場合は、当該データをクライアントへ送信し、読み取り指示がなされたデータを自装置から全く取得できなかった場合は、当該データを取得できなかった旨をクライアントへ通知し、読み取り指示がなされたデータの一部を自装置から取得できた場合は、当該データの読み取り要求を中継サーバに送信し、中継サーバは、ウェブアプリケーション提供サーバからデータの読み取り要求を受信すると、当該データに対応するアクセス制御ポリシの内容に従って、予め自装置に保存しているデータの中から読み取り指示がなされたデータを検索してウェブアプリケーション提供サーバへ送信し、ウェブアプリケーション提供サーバは、自装置から取得できたデータの一部と、中継サーバから受信したデータとに基づいて後処理を行ってクライアントへ送信し、クライアントに提供されたウェブアプリケーションは、ウェブアプリケーション提供サーバから受信したデータを表示することを特徴とする。
【００１０】
また、本発明のウェブアプリケーション提供システムにおいて、ウェブアプリケーション提供サーバは、中継サーバの代わりに、アクセス制御ポリシを保存し、当該アクセス制御ポリシの内容に基づいた判断を行うことを特徴とする。
【００１１】
本発明の情報処理装置は、上記本発明のウェブアプリケーション提供システムに備えられるウェブアプリケーション提供サーバであることを特徴とする。
【００１４】
本発明のウェブアプリケーション提供方法は、クライアントがインターネットを介してウェブアプリケーション提供サーバから提供されるウェブアプリケーションを利用可能なウェブアプリケーション提供方法であって、インターネットと接続されるイントラネット上には中継サーバが設置され、ウェブアプリケーション提供サーバはインターネット上に設置され、クライアントはウェブアプリケーション提供サーバ及び中継サーバと通信可能であり、ウェブアプリケーション提供サーバは、クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションをクライアントで利用可能にするとともに、利用要求がインターネットを介してのアクセスか又はイントラネットを介してのアクセスかを、クライアントのＩＰアドレスを基に判断し、判断の結果と、自装置が予め保持している中継サーバのアドレスとを、クライアントへ通知し、クライアントに提供されたウェブアプリケーションは、判断の結果がインターネットを介してのアクセスである場合は、クライアントのユーザによるウェブアプリケーションを用いてのデータ入力を不許可とし、判断の結果がイントラネットを介してのアクセスである場合は、クライアントのユーザによるウェブアプリケーションを用いてのデータ入力を許可し、ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシをクライアントのユーザに選択させ、アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び書き込み指示がなされたデータを、中継サーバのアドレスを基に送信し、中継サーバは、アクセス制御ポリシ及び書き込み指示がなされたデータを自装置に保存するとともに、当該アクセス制御ポリシを基に当該データにインターネット上で公開するデータが含まれていると判断した場合は、当該インターネット上で公開するデータをウェブアプリケーション提供サーバへ送信し、ウェブアプリケーション提供サーバは、インターネット上で公開するデータを自装置に保存することを特徴とする。
【００１５】
本発明のプログラムは、インターネット上に設置され、クライアントの要求に応じて所定のウェブアプリケーションを提供する装置に実行させるためのプログラムであって、クライアントから所定のウェブアプリケーションの利用要求を受けた場合、当該ウェブアプリケーションをクライアントで利用可能にするとともに、利用要求がインターネットを介してのアクセスか又はインターネットと接続されるイントラネットを介してのアクセスかを、クライアントのＩＰアドレスを基に判断する処理と、判断の結果と、自装置が予め保持している、イントラネット上に設置され、ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを、クライアントへ通知する処理と、中継サーバから受信した、ウェブアプリケーションを用いて入力されたデータのうちインターネット上で公開するデータを保存する処理と、を実行させることを特徴とする。
【００１６】
本発明のプログラムは、所定のウェブアプリケーションを提供するウェブアプリケーション提供サーバとインターネットを介して通信可能な装置に実行させるためのプログラムであって、ウェブアプリケーション提供サーバに対して所定のウェブアプリケーションの利用要求を行った場合に、ウェブアプリケーション提供サーバから提供されるウェブアプリケーションを動作させる処理と、ウェブアプリケーション提供サーバから、利用要求がインターネットを介してのアクセスか又はインターネットと接続されるイントラネットを介してのアクセスかと、イントラネット上に設置され、ウェブアプリケーションを用いて入力されたデータが保存される中継サーバのアドレスとを受信する処理と、利用要求がインターネットを介してのアクセスである場合は、装置のユーザによるウェブアプリケーションを用いてのデータ入力を不許可とし、利用要求がイントラネットを介してのアクセスである場合は、装置のユーザによるウェブアプリケーションを用いてのデータ入力を許可する処理と、ウェブアプリケーションを用いて所定のデータが入力され、当該データの書き込み指示を受け付けた場合、当該データを公開するか否かを示すアクセス制御ポリシを装置のユーザに選択させる処理と、アクセス制御ポリシの選択を受け付けると、当該アクセス制御ポリシ及び書き込み指示がなされたデータを、中継サーバのアドレスを基に送信する処理と、を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ウェブアプリケーションを提供するサーバにおけるアプリケーションのメンテナンスにかかるコストを削減し、かつ、ユーザにとってのサーバのＵＲＬの管理を容易にしつつ、インターネット上に保存される情報を少なくでき、かつ、インターネット上において情報を共有できるようにする。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態であるウェブアプリケーション提供システムの構成例を示す図である。
【図２】本発明の一実施形態であるSaaSサーバ及び中継サーバの構成例を示すブロック図である。
【図３】本発明の一実施形態であるSaaSサーバから提供されるカレンダアプリケーションの表示例を示す図である。
【図４】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ウェブアプリケーションを用いて入力されたデータが保存されるときの動作例を示すシーケンスチャートである。
【図５】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ウェブアプリケーションを用いて入力され保存されたデータが社内ネットワークからのアクセスにより読み出されるときの動作例を示すシーケンスチャートである。
【図６】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ウェブアプリケーションを用いて入力され保存されたデータが社外ネットワークからのアクセスにより読み出されるときの動作例を示すシーケンスチャートである。
【図７】本発明の一実施形態であるSaaSサーバのソフトウェア構成例を示す図である。
【図８】本発明の一実施形態である中継サーバのソフトウェア構成例を示す図である。
【図９】本発明の一実施形態であるウェブアプリケーションのフレームワーク例を示す図である。
【図１０】本発明の一実施形態であるアプリケーション社内ＤＢとアプリケーションSaaSＤＢの内部構成例を示す図である。
【図１１】本発明の一実施形態であるポリシＤＢの構成例を示す図である。
【図１２】本発明の一実施形態であるアクセス制御ポリシの記述を示す設定データの例を示す図である。
【図１３】本発明の一実施形態であるデータアクセスライブラリの構成例を示す図である。
【図１４】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ユーザのログインからクライアントに中継サーバのアドレスが転送されるまでの各部の動作例を示す図である。
【図１５】本発明の一実施形態であるユーザ中継アドレスＤＢの構造例を示す図である。
【図１６】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ユーザがアプリケーションによりデータを書き込みするときの動作例の詳細を示すフローチャートである。
【図１７】本発明の一実施形態であるポリシ作成ＵＩの一例を示す図である。
【図１８】本発明の一実施形態である中継サーバのデータ操作部の構成例を示す図である。
【図１９】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、中継サーバのデータ操作部がポリシとデータを保存するときの動作例を示すフローチャートである。
【図２０】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ユーザが社内アクセスを行いアプリケーションによりデータを読み出すときの動作例の詳細を示すフローチャートである。
【図２１】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ユーザが社外アクセスを行いアプリケーションによりデータを読み出すときの動作例の詳細を示すフローチャートである。
【図２２】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ユーザが社外アクセスを行いアプリケーションによりデータを書き込むときの動作例を示すシーケンスチャートである。
【図２３】本発明の一実施形態であるアクセス制御ポリシの記述を示す設定データの例を示す図である。
【図２４】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ユーザが社外アクセスを行いアプリケーションによりデータを書き込むときの動作例の詳細を示すフローチャートである。
【図２５】本発明の一実施形態であるウェブアプリケーションのフレームワーク例を示す図である。
【図２６】本発明の一実施形態であるファイル情報ＤＢとアプリケーションSaaSＤＢの内部構成例を示す図である。
【図２７】本発明の一実施形態であるアクセス制御ポリシの記述を示す設定データの例を示す図である。
【図２８】本発明の一実施形態であるSaaSサーバのソフトウェア構成例を示す図である。
【図２９】本発明の一実施形態である中継サーバのソフトウェア構成例を示す図である。
【図３０】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ウェブアプリケーションを用いて入力されたデータが保存されるときの動作例を示すシーケンスチャートである。
【図３１】本発明の一実施形態であるウェブアプリケーション提供システムにおいて、ウェブアプリケーションを用いて入力され保存されたデータが社外ネットワークからのアクセスにより読み出されるときの動作例を示すシーケンスチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態（実施形態）について添付図面を参照して詳細に説明する。
【００２１】
〔実施形態１〕
本実施形態のウェブアプリケーション提供システムは、図１に示すように、ウェブアプリケーションを提供するSaaSサーバ（ウェブアプリケーション提供サーバの一例）１１と、社内のデータを保存する中継サーバ１５と、クライアント１６とによって構成される。クライアント１６は、ＰＣ（Personal Computer）等の情報処理装置であり、社内ネットワーク（イントラネット）１７を介して中継サーバ１５と通信する。さらに、クライアント１６及び中継サーバ１５は、プロキシ１７及びＦＷ（Fire Wall）１３を介して、インターネット１２に接続され、SaaSサーバ１１と通信できる。図１において、クライアント１６は複数存在してもよい。また、図示していないが、インターネット１２に接続するクライアントも存在する。また、SaaSサーバ１１は１つである（よって、そのＵＲＬも１つとなる）。
【００２２】
図２には、SaaSサーバ１１及び中継サーバ１５のハードウェア構成が示されている。SaaSサーバ１１と中継サーバ１５は、ＰＣのアーキテクチャを採用している。制御部２１は、演算を行うＣＰＵ（Central Processing Unit）２１１、演算に必要なプログラムやデータを長期的又は一時的に保存するＲＯＭ（Read Only Memory）２１２、ＲＡＭ（Random Access Memory）２１３によって構成される。入出力部Ｉ／Ｆ部２２は、ＵＳＢ（Universal Serial Bus）、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）等のような外部入出力機器２３に対し、データの入出力を行う。記憶部２４は、データやファイルを記憶する記憶媒体であり、例えばＨＤＤ（Hard Disc Drive）等が挙げられる。出力部２５は、制御部２１による演算結果を出力するものであり、例えばディスプレイ装置やスピーカ等が挙げられる。入力部２６は、ユーザによる操作の入力を受け付けるものであり、例えばキーボードやマウス等が挙げられる。通信部２７は、ネットワーク２８との通信を行う役割を果たす。ネットワーク２８は、例えば図１に示すインターネット１２や社内ネットワーク１７である。
【００２３】
SaaSサーバ１１からクライアント１６に提供されるウェブアプリケーションとしては、例えば、ワープロアプリケーション、表計算アプリケーション、カレンダアプリケーション（スケジュール管理アプリケーション）などがある。図３は、カレンダアプリケーションの例（クライアントに画面表示される例）を示す図である。図３に示すカレンダアプリケーションの画面において、ユーザは、予定Ａ（例えば、祭りやイベントの情報）を、インターネット上で全部公開する内容として、SaaSサーバ１１に保存することができる。また、ユーザは、予定Ｂ（例えば、社外との会議、打ち合わせ）を、インターネット上で一部公開する内容として、SaaSサーバ１１及び中継サーバ１５に保存することができる。さらに、ユーザは、予定Ｃ（社内会議）を、インターネット上で公開しない（社外から完全にアクセスできない。社内からのみアクセスできる）内容として、中継サーバ１５だけに保存することができる。
【００２４】
図４は、本実施形態のウェブアプリケーション提供システムにおいて、ユーザが、所望のウェブアプリケーションを用いて入力（作成・編集）したデータを保存するときの動作例を示している。この動作例について以下に説明する。なお、図４の「社内ユーザ」とは、図１に示すクラインアント１６のユーザである。
【００２５】
ユーザは、所望のアプリケーションの利用を開始するために、クラインアント１６においてSaaSサーバ１１のＵＲＬを指定する操作を行い、SaaSサーバ１１に対しログインを行う（Ｓ４１）。このとき、クライアント１６から、所望のアプリケーションを指定する要求と、クラインアント１６のＩＰアドレスとがSaaSサーバ１１に通知される。
【００２６】
SaaSサーバ１１は、ログインを許可すると、指定されたアプリケーションをクライアント１６に対して利用可能にするとともに、クラインアント１６のＩＰアドレスを基に、社内ネットワーク１７からのアクセスであるか、又は、インターネット１２（社外ネットワーク）からのアクセスであるかを判断する（Ｓ４２）。なお、ここでは例として、指定されたアプリケーションは、SaaSサーバ１１からクライアント１６にダウンロードされ、クライアント１６のウェブブラウザ上で動作するものとする。
【００２７】
次に、SaaSサーバ１１は、Ｓ４２の判断結果（社内からのアクセス又は社外からのアクセス）と、予め自装置に保持している中継サーバ１５のアドレス（あるいはFQDN）とを、クライアント１６のウェブアプリケーションに通知する（Ｓ４３）。この通知の方法は、例えば、クライアント１６のウェブブラウザにクッキーを書き込むという方法にすればよい。
【００２８】
クライアント１６のウェブアプリケーションは、Ｓ４２の判断の結果が社内からのアクセスの場合は、ウェブアプリケーションを用いてのデータの書き込み（作成・編集）作業を許可し、Ｓ４２の判断の結果が社外からのアクセスの場合は、ウェブアプリケーションを用いてのデータの書き込み作業を拒否する（Ｓ４４）。
【００２９】
クライアント１６のウェブアプリケーションは、ユーザに対してデータの書き込みを許可すると、ユーザによるデータ入力を受け付ける（Ｓ４５）。
【００３０】
クライアント１６のウェブアプリケーションは、ユーザによるデータの入力が完了すると、ユーザに対し、アクセス制御ポリシを選ばせる（Ｓ４６）。アクセス制御ポリシとは、ウェブアプリケーションを用いて入力されたデータ（作成・編集したデータ）を公開するか否かを示すものであり、そのデータに対するアクセスを制御するためのものである。ここでは、アクセス制御ポリシの例として、「公開（インターネット上で入力データの内容を全部公開する）」、「秘密（インターネット上では入力データの内容を全く公開せず、社内ネットワーク上でのみ全部公開する）」、「一部公開（インターネット上で入力データの内容を一部公開する）」の３種類の中から選択されるとする。なお、具体的な選び方については後述する。
【００３１】
ここで、例えば、Ｓ４６においてアクセス制御ポリシとして「一部公開」が選択された場合について説明する。まず、アクセス制御ポリシの詳細な内容が設定される。すなわち、クライアント１６のウェブアプリケーションは、入力されたデータを公開する人（ユーザのＩＤ）や、入力されたデータの公開する範囲などをユーザに指定させ、その指定に基づいてアクセス制御ポリシを設定（作成）する（Ｓ４７）。次に、クライアント１６のウェブアプリケーションは、受信した中継サーバ１５のアドレスに基づいて、入力されたデータとアクセス制御ポリシを中継サーバ１５に送信する（Ｓ４８）。中継サーバ１５は、入力されたデータとアクセス制御ポリシを受信したら、それらを紐付けて自装置に保存するとともに、受信したアクセス制御ポリシの内容（一部公開する範囲）に従って、一部公開するデータ（入力されたデータの一部。一部公開のデータ）をSaaSサーバ１１に送信する（Ｓ４９）。SaaSサーバ１１は、受信したそのデータを自装置に保存する。
【００３２】
また、例えば、Ｓ４６においてアクセス制御ポリシとして「公開」が選択された場合は、クライアント１６のウェブアプリケーションは、受信した中継サーバ１５のアドレスに基づいて、入力されたデータとアクセス制御ポリシを中継サーバ１５に送信する（Ｓ４８）。中継サーバ１５は、入力されたデータとアクセス制御ポリシを受信したら、それらを紐付けて自装置に保存するとともに、受信したアクセス制御ポリシ（ここでは「公開」）に従って、公開するデータ（入力されたデータの全部。公開データ）をSaaSサーバ１１に送信する（Ｓ４９）。SaaSサーバ１１は、受信したそのデータを自装置に保存する。
【００３３】
また、例えば、Ｓ４６においてアクセス制御ポリシとして「秘密」が選択された場合は、クライアント１６のウェブアプリケーションは、受信した中継サーバ１５のアドレスに基づいて、入力されたデータとアクセス制御ポリシを中継サーバ１５に送信する（Ｓ４８）。中継サーバ１５は、入力されたデータとアクセス制御ポリシを受信したら、それらを紐付けて自装置に保存する。このとき、中継サーバ１５は、受信したアクセス制御ポリシ（ここでは「秘密」）に従って、入力されたデータのSaaSサーバ１１への送信を行わない。
【００３４】
図５は、本実施形態のウェブアプリケーション提供システムにおいて、ユーザが、社内ネットワークからのアクセスにより、ウェブアプリケーションを用いて入力され保存されたデータを読み出す（読み取る）ときの動作例を示している。
【００３５】
Ｓ５１〜Ｓ５３の動作は、図４で説明したＳ４１〜Ｓ４３と同様であるので、ここでの説明は省略する。
【００３６】
クライアント１６のウェブアプリケーションは、Ｓ５２の判断の結果が社内からのアクセスの場合は、ウェブアプリケーションを用いてのデータの読み出し（読み取り）作業を許可する（Ｓ５４）。なお、Ｓ５２の判断の結果が社外からのアクセスの場合は、図６を用いて後述する。
【００３７】
クライアント１６のウェブアプリケーションは、ユーザから、読み出すデータ（予めウェブアプリケーション用いて入力され、保存されているデータ）の指定を受け付けると、受信した中継サーバ１５のアドレスを基に、指定されたデータの読み出し要求を中継サーバ１５へ送信する（Ｓ５５）。
【００３８】
中継サーバ１５は、上記要求を受信すると、自装置に保存しているデータの中から、指定されたデータを検索し、検索したデータをクライアント１６に送信する（Ｓ５６）。これにより、クライアント１６のウェブアプリケーションは、受信したデータを表示する。
【００３９】
上記図５の説明のように、データの読み出し指示が社内からのアクセスである場合は、そのデータに対応したアクセス制御ポリシが「公開」、「秘密」、「一部公開」のいずれであっても、読み出しが許可され、中継サーバ１５からクライアント１６に送信されることになる。
【００４０】
図６は、本実施形態のウェブアプリケーション提供システムにおいて、ユーザが、社外ネットワークからのアクセスにより、ウェブアプリケーションを用いて入力され保存されたデータを読み出すときの動作例を示している。なお、この図６では、アクセス制御ポリシが「一部公開」のデータの読み出しを例としている。図６に示す「社外ユーザ」とは、社外ネットワーク（インターネット１２）に接続されたＰＣ等のユーザである。
【００４１】
Ｓ６１〜Ｓ６３の動作は、図４で説明したＳ４１〜Ｓ４３と同様であるので、ここでの説明は省略する。
【００４２】
クライアント１６のウェブアプリケーションは、Ｓ６２の判断の結果が社外（インターネット１２）からのアクセスの場合は、ウェブアプリケーションを用いてのデータの読み出し作業を許可する（Ｓ６４）。
【００４３】
クライアント１６のウェブアプリケーションは、ユーザから、読み出すデータ（予めウェブアプリケーション用いて入力され、保存されているデータ）の指定を受け付けると、指定されたデータの読み出し要求をSaaSサーバ１１へ送信する（Ｓ６５）。
【００４４】
SaaSサーバ１１は、上記要求を受信すると、自装置に予め保存されているデータ（例えば、図４のＳ４９で自装置に保存された一部公開のデータ）を所定の記憶領域（ＤＢ）から入手する（Ｓ６６）。なお、このＳ６６以降は、アクセス制御ポリシが「一部公開」のデータの読み出しの場合である。アクセス制御ポリシが「公開」のデータの読み出しの場合は、上記要求を受けたSaaSサーバ１１は、要求されたデータを自装置から全部入手できるので、入手したデータをクライアント１６に送信する。また、アクセス制御ポリシが「秘密」のデータの読み出しの場合は、上記要求を受けたSaaSサーバ１１は、要求されたデータが自装置に全く保存されておらず（中継サーバ１５に全て保存されている）、要求されたデータを自装置から全く入手できないので、読み出しができない旨をクライアント１６に通知する。
【００４５】
次に、SaaSサーバ１１は、ユーザから指定されたデータ（Ｓ６６で入手したデータの残りのデータ）の読み出し要求を、予め自装置が保持している中継サーバ１５のアドレス（Ｓ６３でクライアント１６に通知したものと同じ）を基に送信する（Ｓ６７）。
【００４６】
中継サーバ１５は、上記要求を受信すると、要求されたデータに紐付けられて自装置に記憶されているアクセス制御ポリシの設定内容に従って、データを用意する（Ｓ６８）。
【００４７】
中継サーバ１５は、用意したデータをSaaSサーバ１１へ送信する（Ｓ６９）。
【００４８】
SaaSサーバ１１は、中継サーバ１５から受信したデータと、先に入手した一部公開のデータとに基づいて後処理を行い（Ｓ６１０）、後処理を行ったデータをクライアント１６に送信する（Ｓ６１１）。これにより、クライアント１６のウェブアプリケーションは、受信したデータを表示する。後処理とは、例えば、データのフォーマット変換である。なお、Ｓ６８において中継サーバ１５によりデータが用意されず、例えば中継サーバ１５からデータの送信を拒否する通知を受信した場合には、SaaSサーバ１１は、Ｓ６１０の処理を省略し、先に入手した一部公開のデータだけをクライアント１６に送信する（Ｓ６１１）。これにより、クライアント１６のウェブアプリケーションは、受信したデータを表示する。
【００４９】
上記図６の動作においては、データの読み取り要求（Ｓ６５）とデータの入手（Ｓ６１１）の間の時間間隔が大きくコネクションが切られてしまう可能性があるという問題と、中継サーバ１５が外から直接アクセスできないという問題がある。それらの問題に対しては、HTTPプッシュ手法を実現したComet技術を利用すれば解決できる。Ｓ６５からＳ６１１の動作の時間間隔が大きい問題に対しては、Comet技術が実装されたHTTPサーバ（例えばTomcat6.0）を利用すれば、データを受信するまでコネクションが切られないことができる。また、Ｓ６７からＳ６１０において、SaaSサーバ１１が中継サーバ１５に直接アクセスできない問題に対しては、まず、中継サーバ１５が立ち上がる時にSaaSサーバ１１にある種類のリクエストを発信する。そして、SaaSサーバ１１側がずっとコネクションを保持し、データの請求がある場合、レスポンスとして中継サーバ１５に送信し、中継サーバ１５がデータを送信した後、SaaSサーバ１１も次回のデータ請求が来るまでコネクションを保持するようにする。これにより、この問題を解決できる。なお、この解決方法の詳細については、後述する。
【００５０】
図７は、本実施形態のSaaSサーバ１１のソフトウェア構成を示している。この構成について以下に説明する。
【００５１】
ユーザの認証結果、社内・社外からのアクセスの判断結果、中継サーバ１５のアドレスをユーザ（クライアント１６のウェブアプリケーション）に通知するための手段として、ユーザ認証部７３が設けられている。ユーザ認証部７３には、ユーザアカウント、パスワード、組織情報（ユーザの属性を示す情報の一例。例えば、ユーザが属する組織名など）などが保存されている。また、中継サーバ１５のアドレスは、ユーザ情報保管部７２のユーザ中継アドレスＤＢ（Data Base）７２１に保存されている。ウェブアプリケーション提供部７１は、各種HTTPサーバが提供するアプリケーションのコンテナーを指している。ウェブアプリケーション提供部７１は、クライアント１６に提供するためのウェブアプリケーション７１１を複数格納している。また、ウェブアプリケーション提供部７１のデータアクセスライブラリ７１２は、クライアント１６にウェブアプリケーション７１１のいずれかがダウンロードされる際に、一緒にダウンロードされるモジュールである。このデータアクセスライブラリ７１２は、クライアント１６において、上述した図４〜６におけるポリシ作成、SaaSサーバ１１や中継サーバ１５との通信、データの後処理などの動作を行うためのものである。
【００５２】
図８は、本実施形態の中継サーバ１５のソフトウェア構成を示している。この構成について以下に説明する。
【００５３】
アプリケーションデータ保存部８１には、SaaSサーバ１１で提供されるウェブアプリケーション毎に対応した、アプリケーション社内ＤＢ８１１が複数ある。これらには、ウェブアプリケーションを用いて入力されたデータがそれぞれ保存される。また、データアクセス部８２は、一つのウェブアプリケーションを形式して実装されている。データアクセス部８２には、アクセス制御ポリシを保存するポリシＤＢ８２１と、アクセス制御ポリシを管理するポリシ管理部８２２と、アプリケーション社内ＤＢ８１１のデータを読み取ったり、書き込んだりするデータ操作部８２３と、上述したＳ６５〜Ｓ６１０の動作でSaaSサーバ１１とやり取りを行うデータ転送部８２４とがある。
【００５４】
図７と図８によれば、本実施形態のウェブアプリケーションは、一定なフレームワークに従って作る必要があることが分かる。図９は、そのウェブアプリケーションのフレームワークを示している。本実施形態のアプリケーション（ウェブアプリケーションのこと）は、SaaSサーバ部分９１と中継サーバ部分９２によって構成される。SaaSサーバ部分９１は、さらにアプリケーションロジック９１１と、公開データを保存するアプリケーションSaaSＤＢ９１２によって構成される。アプリケーションロジック９１１は、各アプリケーションのユーザインターフェースや、アプリケーション独自のデータ処理方法などが含まれている。アプリケーションの中継サーバ部分９２には、中継サーバ１５に保存したいデータを格納するためのアプリケーション社内ＤＢ９２１がある。なお、図９では、アプリケーションがクライアント１６にダウンロードされる前の状態を示している。アプリケーションがクライアント１６にダウンロードされると、アプリケーションロジック９１１がクライアント１６にダウンロードされる。
【００５５】
図１０（ａ）と図１０（ｂ）は、アプリケーション社内ＤＢ９２１とアプリケーションSaaSＤＢ９１２の内部構成を示す図である。アプリケーションが自分のデータを保存するデータベースを持つ場合、データの各記録が必ず記録のＩＤ（１０１ａでDIDという名前の列）がある。記録ＩＤはアプリケーション内で一つの記録がユニークなＩＤであり、行番号や、テキストなどで表されることができる。さらに、アプリケーション社内ＤＢ９２１には、記録とこの記録のアクセス制御ポリシを紐付けのテーブル（１０２ａと１０２ｂ）も用意されており、このテーブルは記録のＩＤとアクセス制御ポリシのＩＤによって構成されている。さらに、データは誰のものであるのかについて、データのＩＤとオーナー情報（ユーザを示す）を紐付けたテーブル（１０３ａと１０３ｂ）も用意されている。
【００５６】
図１１は、データ公開ポリシＤＢ（図８に示すポリシＤＢ）の構成を示す図である。ポリシＤＢには、図１１に示すように、ポリシＩＤとポリシ（アクセス制御ポリシのこと）を記述する設定データ（CONF欄）とがデータベースのテーブルで保存されている。そこで、ポリシＩＤ（PID）が、０のものはインターネット上に公開できるもの（上述した「公開」）を表し、１のものは社内のみ公開するもの（上述した「秘密」）を表す。ポリシＩＤが０と１以外のものは、一部のデータを公開するものであり（上述した「一部公開」）、その一部公開の設定については、設定データの欄（CONF欄）で記述される。
【００５７】
図１２は、ポリシの設定データの例を表す図である。図１２では、XML形式を用いた設定データを例として説明している。ただし、XML以外、JSONや、自分定義の形式なども使用できる。設定データは、ルートタグ<data>の下に、<structure>タグ及び<authorization>タグがある。<structure>タグは、ポリシ所対応の記録の構造を記述し、<authorization>タグには該当ポリシが制御する記録にアクセスできるユーザのＩＤがリストされる。さらに、<structure>タグにはいくつか<field>タグがあって、それぞれ<field>タグには、該当ポリシが所対応の記録のデータフィルドに対応する。従って、<field>タグに<name>,<disclose>,<description>タグがあり、それぞれ、フィルドの名前、公開するかどうか、公開しない場合代替の表現が設定される。また、<disclose>タグはyes,no,restrictedような三つの値があって、それぞれインターネット上で公開する（公開）、インターネット上で公開しない（秘密）、インターネット上で限定的に公開する（一部公開）という意味を表す。
【００５８】
次に、図７に示すデータアクセスライブラリの構成について、図１３を用いて詳細に説明する。本実施形態において、一つのアプリケーションのデータをSaaSサーバ１１や中継サーバ１５から読み取ったり中継サーバに書き込んだりする機能を実現するため、SaaSサーバ１１のウェブアプリケーション提供部７１にデータアクセスライブラリ７１２が用意されている。このデータアクセスライブラリ７１２は、クライアント部分１３１とサーバ部分１３２によって構成される。クライアント部分１３１は、クライアント１６へのアプリケーションのダウンロードのときに、一緒にダウンロードされる。本実施形態では、アプリケーションにおけるデータの読み取り・書き込みは、必ずデータアクセスライブラリ７１２を通して行う。そのため、データアクセスライブラリ７１２のクライアント部分１３１とその構成部分は、javascriptの関数で実装され、アプリケーションに<script type="text/javascript" src="データアクセスライブラリのURL"   />の形にしたら、アプリケーションがデータアクセスライブラリのクライアント部分１３１を使えるようになる。また、データアクセスライブラリのクライアント部分１３１がXMLHTTPRequest（Ajax）を用いて、HTTPでサーバ部分１３２との通信ができる。
【００５９】
クライアント部分１３１は、データの読み取り操作の役割を果たすデータ読み取り部１３１１、データの読み取り・書き込みが完了したらアプリケーション独自のロジックを実行させるコールバック関数実行部１３１２、ポリシを作成するためのＵＩ（User Interface）を提供するポリシ作成ＵＩ１３１３、データの書き込み操作の役割を果たすデータ書き込み部１３１４によって構成される。
【００６０】
サーバ部分１３２は、SaaSサーバ１１と中継サーバ１５に置いてあるアプリケーションのデータベースを読み取り・書き込みをするＤＢアクセス部１３２１、中継サーバ１５から入手したデータとSaaSサーバ１１から入手したデータを後処理するデータ後処理部１３２２、中継サーバ１５のアドレスを獲得するロジックが実装されている中継サーバアドレス取得部１３２３、ユーザからのリクエスト（アクセス）が社内からであるか社外からであるかを判断するためのアクセス元判断部１３２４によって構成される。
【００６１】
図１４は、図４〜図６で説明したユーザのログインからクライアント１６に中継サーバ１５のアドレスが転送されるまでの各部の動作を示している。これについて以下に説明する。なお、図１４に示すアプリケーション及びアプリケーションロジック９１１は、クライアント１６にダウンロードされた後の状態を示している。
【００６２】
まず、ユーザは、SaaSサーバ１１へのログインの際、クライアント１６のウェブブラウザにより、自分のアカウントとパスワードをユーザ認証部７３に提示する（Ｓ１４１）。そして、ユーザ認証部７３は、提示されたアカウントとパスワードを基に、該当ユーザを認証する。認証が成功したら、ユーザ認証部７３は、中継サーバアドレス取得部１３２３に対し、中継サーバ１５のアドレスの請求を行う（Ｓ１４２）。このとき、ユーザ認証部７３は、アクセス元判断部１３２４に対し、該当ユーザが社外ユーザか社内ユーザか、すなわち、社内ネットワーク１７からのアクセスか、社外ネットワーク（インターネット１２）からのアクセスかの判断も要求する。
【００６３】
アクセス元判断部１３２４は、図７に示すユーザ中継アドレスＤＢ７２１の内容を参照して、アクセスが社外からのものであるか、社内からのものであるかを判断する。図１５は、ユーザ中継アドレスＤＢ７２１の構造を示す図である。図１５に示すように、ユーザ中継アドレスＤＢには、二つのテーブルがある。一つは、中継サーバ１５のFQDN、中継サーバ１５の社内アドレス、サブネットマスクを保存するテーブル（図中の上部）であり、もう一つは、各ユーザＩＤとそのユーザが利用するサーバの名前を保存するテーブル（図中の下部）である。アクセスが社内からであるか、社外からであるかを判断するには、まずユーザが社内のユーザであるかどうかを判断する。そのため、アクセス元判断部１３２４は、以下の（１）、（２）の手順で判断を行う。
（１）まず、ユーザ中継アドレスＤＢ７２１から該当ユーザの中継サーバ１５のネットワークアドレスを入手する。
（２）次に、（１）と、ユーザからのリクエストで現れたＩＰアドレスとを比較して、もし同じサブネットに属しない場合、社外ユーザ（社外からのアクセス）と判断する。
【００６４】
アクセス元判断部１３２４は、上記のようにして判断した結果（社内からのアクセスか又は社外からのアクセスか）をユーザ認証部７３に転送する（Ｓ１４３）。このとき、中継サーバアドレス取得部１３２３で取得された中継サーバ１５のアドレスも、ユーザ認証部７３へ転送される。
【００６５】
ユーザ認証部７３は、中継サーバ１５のアドレスと、社内からのアクセスか又は社外からのアクセスか（加えて、今回アクセスするセッションＩＤ、ユーザの組織情報）を、クッキーとしてアプリケーションのアプリケーションロジック９１１に送信する（Ｓ１４４）。
【００６６】
次に、図４で説明したユーザがアプリケーションによりデータを書き込み（保存）するときの動作（Ｓ４４〜Ｓ４９）の詳細について、図１６を用いて説明する。図１６に示すアプリケーション及びデータアクセスライブラリは、上述したように、クライアント１６にダウンロードされた状態である。
【００６７】
ユーザの要求によりSaaSサーバ１１から所定のアプリケーションがクライアント１６にダウンロードされた後、アプリケーションロジック９１１ではユーザの操作に応じて、データの入力を受け付ける。そして、ユーザによりその入力されたデータの保存（書き込み）指示がなされると、アプリケーションロジック９１１は、その保存指示とともに、保存指示を受けたデータを、データアクセスライブラリ７１２のクライアント部分１３１のデータ書き込み部１３１４に渡す。
【００６８】
データ書き込み部１３１４は、アプリケーションロジック９１１からデータ及びそのデータの保存指示を受け付ける（Ｓ１６１）。これにより、データアクセスライブラリのクライアント側の関数が呼び出される。
【００６９】
データ書き込み部１３１４は、図４のＳ４３で書き込まれたクッキーの情報（アクセス元判断部１３２４の判断結果）を基に、アクセス元（クライアント）が社内か社外かを判断する（Ｓ１６２）。
【００７０】
アクセス元が社外である場合（Ｓ１６２／ＮＯ）、データ書き込み部１３１４は、コールバック関数実行部１３１２に対し、コールバック関数の実行を要求する。これにより、コールバック関数実行部１３１２がコールバック関数の実行を行う（Ｓ１６８）。
【００７１】
アクセス元が社内である場合（Ｓ１６２／ＹＥＳ）、データ書き込み部１３１４は、ポリシ作成ＵＩ１３１３に対し、ユーザがポリシを選択するためのポリシ選択ＵＩの表示を要求する。この要求を受けたポリシ作成ＵＩ１３１３は、ポリシ選択ＵＩの表示を行う（Ｓ１６３）。ポリシ選択ＵＩでは、ポリシの種類として、上述した「公開」、「秘密」、「一部公開」の３つの選択肢がユーザに提示される。なお、Ｓ１６３〜Ｓ１６５は、図中では、データ書き込み部１３１４の囲みの中に記載されているが、実際にはポリシＵＩ１３１３により行われる。
【００７２】
ポリシ作成ＵＩ１３１３は、ユーザによりポリシの種類が選択されたら、そのポリシが新規作成であるかをユーザに問い合わせる。すなわち、ユーザは、既存（以前に作成したもの）のポリシのＩＤを入力するか、ポリシを新規作成するかという二つの選択がある。
【００７３】
ユーザにより、既存のポリシのＩＤが入力された場合（Ｓ１６４／ＮＯ）、後述するＳ１６６へ進む。
【００７４】
一方、ユーザにより、ポリシの新規作成が指示された場合（Ｓ１６５／ＹＥＳ）、ポリシ作成ＵＩ１３１３は、ユーザがポリシを作成するためのポリシ作成ＵＩの表示を行う（Ｓ１６５）。
【００７５】
図１７は、ポリシ作成ＵＩの例を示している。ポリシ作成ＵＩは、図１７のように、フィルド名、権限、許可ユーザ（例えば、データへのアクセスを許可するユーザのＩＤ）という項目がある。ユーザは、各項目において、所望の設定を行う。そして、ユーザが所望の設定を完了してＯＫボタンをクリックすると、ポリシ作成ＵＩ１３１３は、設定された各項目のデータを、上述した図１２に示すXML形式の設定データに変換する。この設定データ（ポリシを示すデータ）は、データ書き込み部１３１４に渡される。
【００７６】
データ書き込み部１３１４は、上記設定データと、先に保存指示を受けたデータとを一緒にして、一つのHTTP  POST文を作る（Ｓ１６６）。なお、Ｓ１６４にて既存のポリシのＩＤが入力された場合、このＳ１６６では、入力された既存のポリシのＩＤと、先に保存指示を受けたデータとを一緒にして、一つのHTTP  POST文が作られる。
【００７７】
データ書き込み部１３１４は、図４のＳ４３で書き込まれたクッキーの情報（中継サーバ１５のアドレス）を基に、作成した上記POST文を中継サーバ１５に送信する（Ｓ１６７）。
【００７８】
データ書き込み部１３１４は、Ｓ１６７の送信処理が終わったら、コールバック関数実行部１３１２に対し、コールバック関数の実行を要求する。これにより、アプリケーションロジック９１１がデータ書き込み部１３１４を呼び出すときに渡されたコールバック関数が呼び出されて、アプリケーションロジック９１１側が行うべきことが続けて行われる（Ｓ１６８）。
【００７９】
上記Ｓ１６７で送信されたポリシ（設定データ）及びデータは、中継サーバ１５のデータ操作部８２３で受信される。図１８は、データ操作部８２３の構造を示している。データ操作部８２３は、データ書き込み部１８１とデータ読み取り部１８２によって構成される。上記Ｓ１６７で送信されたポリシ（設定データ）及びデータは、データ書き込み部１８１で受信される。
【００８０】
図１９は、図１８のデータ書き込み部１８１が、図１６のＳ１６７で送信されたポリシ（設定データ）及びデータ、すなわちPOST文を受信したときの動作を示す図である。これについて以下に説明する。
【００８１】
データ書き込み部１８１は、POST文を受信し、その保存（書き込み）指示を受けると、すると、POST文の解析を行う（Ｓ１９１）。なお、データ書き込み部１８１は、アプリケーションによらずに処理できるため、POST文は、例えば下記のような定式文として受信される。
既存のポリシを使う場合：
policyid=pid&data=colname:value＆database=dbname&  table=tablename & userorg = xxx
新規ポリシを作る場合：
newpolicy=yes&policy=<data>….</data>&data=colname:value＆database=dbname&  table=tablename & userorg=xxx
【００８２】
上記定型文において、pidはポリシＩＤであり、newpolicyは新規ポリシであり、usrorgはクッキーから得られたユーザの組織情報である。
【００８３】
データ書き込み部１８１は、受信したPOST文の解析を行って、ユーザの組織情報を確認して、中継サーバ１５に予め保持されている組織情報と一致すれば、Ｓ１９２に進む。ここで、データ書き込み部１８１は、POST文の解析の結果を基に、新規ポリシか既存ポリシかを判断する（Ｓ１９２）。
【００８４】
既存ポリシである場合（Ｓ１９２／ＮＯ）、データ書き込み部１８１は、図８に示すアプリケーションデータ保存部８１のうちの該当するＤＢに対して、保存指示を受けたデータの保存を行う（Ｓ１９５）。
【００８５】
新規ポリシである場合（Ｓ１９２／ＹＥＳ）、データ書き込み部１８１は、図８に示すポリシ管理部８２２から所定のポリシのＩＤを入手（獲得）する（Ｓ１９３）。そして、データ書き込み部１８１は、入手したＩＤを新規ポリシに割り当て、図８に示すポリシＤＢ８２１にその新規ポリシを保存する（Ｓ１９４）。
【００８６】
その後、データ書き込み部１８１は、図８に示すアプリケーションデータ保存部８１のうちの該当するＤＢに対して、保存指示を受けたデータの保存を行う（Ｓ１９５）。
【００８７】
なお、Ｓ１９５におけるデータの保存では、データ書き込み部１８１はまず、該当するＤＢに尋ねて（SQLのSelect文を実行する）、該当データがすでに存在しているかどうかを確認する。ＤＢに該当データが存在している場合、その既存データの更新を行う（SQLのUpdate文を実行する）。ＤＢに該当データが存在していない場合、新規データの作成を行う（SQLのInsert文を実行する）。
【００８８】
データの保存が終了したら、データ書き込み部１８１は、保存したポリシを解析してポリシＩＤが１、すなわち「秘密」であるかどうかを確認する（Ｓ１９６）。
【００８９】
Ｓ１９６の確認の結果、ポリシＩＤが１である場合（Ｓ１９６／ＹＥＳ）、一連の処理を終了する（Ｓ１９１０）。すなわち、保存指示されたデータは、中継サーバ１５にのみ保存されることになる。
【００９０】
Ｓ１９６の確認の結果、ポリシＩＤが１ではない場合（Ｓ１９６／ＮＯ）、データ書き込み部１８１は、ポリシＩＤが０、すなわち「公開」であるかどうかを確認する（Ｓ１９７）。
【００９１】
Ｓ１９７の確認の結果、ポリシＩＤが０である場合（Ｓ１９７／ＹＥＳ）、データ書き込み部１８１は、Ｓ１９５で保存したデータの全てを、SaaSサーバ１１へ送信する（Ｓ１９９）。すなわち、保存指示されたデータは全て、SaaSサーバ１１に保存されることになる。
【００９２】
Ｓ１９７の確認の結果、ポリシＩＤが０ではない場合（Ｓ１９７／ＮＯ）、「一部公開」となる。すなわち、データ書き込み部１８１は、公開しないデータをポリシの<description>フィルドで定義された値で置き換え（descriptionフィルドの値がなければ任意のダミー値で置き換えても可能）、SaaSサーバ１１へ、置き換えたデータを送信する（Ｓ１９９）。すなわち、保存指示されたデータは、一部が公開される形式となってSaaSサーバ１１に保存されることになる。
【００９３】
なお、Ｓ１９９でSaaSサーバ１１にデータを送る際、図１３に示すデータアクセスライブラリ７１２のＤＢアクセス部１３２１に、事前に約束したPOST文を使ってデータの保存を行う。これは、セキュリティ上SQL注入を防ぐためであり、例えば、data=colname:valueの形式で送信すればよい。
【００９４】
次に、図５で説明したユーザが、社内ネットワーク１７からアクセスして、アプリケーションによりデータを読み取る（読み出す）ときの動作（Ｓ５４〜Ｓ５６）の詳細について、図２０を用いて説明する。図２０に示すアプリケーション及びデータアクセスライブラリは、上述したように、クライアント１６にダウンロードされた状態である。
【００９５】
データアクセスライブラリ７１２のクライアント部分１３１のデータ読み取り部１３１１は、ユーザの要求を受けたアプリケーションロジック９１１から、データの読み取り指示を受け付ける（Ｓ２０１）。
【００９６】
データ読み取り部１３１１は、図５のＳ５３で書き込まれたクッキーの情報（アクセス元判断部１３２４の判断結果）を基に、アクセス元（クライアント）が社内か社外かを判断する（Ｓ２０２）。
【００９７】
Ｓ２０２の判断の結果、社外からのアクセスの場合（Ｓ２０２／ＮＯ）、後述する図２１の処理を行う（Ｓ２０５）。その後、データ読み取り部１３１１は、コールバック関数実行部１３１２に対し、コールバック関数の実行を要求する。これにより、コールバック関数実行部１３１２がコールバック関数の実行を行う（Ｓ２０４）。
【００９８】
Ｓ２０２の判断の結果、社内からのアクセスの場合（Ｓ２０２／ＹＥＳ）、データ読み取り部１３１１は、W３CのCross-Origin Resource SharingやJSONPを利用し、図５のＳ５３で書き込まれたクッキーの情報（中継サーバ１５のアドレス）を基に、中継サーバ１５にデータの読み取り要求を直接発信し、中継サーバ１５からデータを取得する（Ｓ２０３）。すなわち、社内からのアクセスの場合、読み取り要求されたデータのポリシに関わらず、データ読み取り部１３１１は、該当するデータを中継サーバ１６から取得できる。
【００９９】
データ読み取り部１３１１は、Ｓ２０３のデータ取得が終わったら、コールバック関数実行部１３１２に対し、コールバック関数の実行を要求する。これにより、アプリケーションから指定されたコールバック関数が呼び出されて、データを取得した後の処理、例えば取得されたデータの表示が行われる（Ｓ２０４）。
【０１００】
次に、図６で説明したユーザが、社外ネットワークであるインターネット１２からアクセスして、アプリケーションによりデータを読み取る（読み出す）ときの動作（Ｓ６４〜Ｓ６１１）の詳細について、図２１を用いて説明する。図２１に示すアプリケーション及びデータアクセスライブラリのクライアント部分は、上述したように、クライアント１６にダウンロードされた状態である。また、図２１に示すデータアクセスライブラリのサーバ部分は、SaaSサーバ１１に存在する。
【０１０１】
データアクセスライブラリ７１２のクライアント部分１３１のデータ読み取り部１３１１は、ユーザの要求を受けたアプリケーションロジック９１１から、データの読み取り指示を受け付ける（Ｓ２１１）。
【０１０２】
データ読み取り部１３１１は、図６のＳ６３で書き込まれたクッキーの情報（アクセス元判断部１３２４の判断結果）を基に、アクセス元（クライアント）が社内か社外かを判断する（Ｓ２１２）。
【０１０３】
Ｓ２１２の判断の結果、社内からのアクセスの場合（Ｓ２１２／ＹＥＳ）、上述した図２０の処理を行う（Ｓ２１１５）。その後、データ読み取り部１３１１は、コールバック関数実行部１３１２に対し、コールバック関数の実行を要求する。これにより、コールバック関数実行部１３１２がコールバック関数の実行を行う（Ｓ２１１４）。
【０１０４】
Ｓ２１２の判断の結果、社外からのアクセスの場合（Ｓ２１２／ＮＯ）、データ読み取り部１３１１は、SaaSサーバ１１のサーバ部分１３２のＤＢアクセス部１３２１に対し、SaaSサーバ１１にあるアプリケーションSaaSＤＢ９１２に保存されているデータを入手するように要求する。この要求を受けたＤＢアクセス部１３２１は、データを入手する（Ｓ２１３）。なお、要求されたデータがアプリケーションSaaSＤＢ９１２に保存されておらず、入手できない場合（要求されたデータのポリシＩＤが０「秘密」であり、中継サーバ１５のみに保存されている場合）は、Ｓ２１４／ＮＯ、Ｓ２１５／ＮＯとなり、コールバック関数の実行（Ｓ２１１４）が行われて終了する。すなわち、要求されたデータは、クライアント１６のアプリケーションに送信されない。このとき、要求されたデータは社外アクセスでは表示できない（非公開である）旨がクライアント１６のアプリケーションに通知されてもよい。
【０１０５】
ＤＢアクセス部１３２１は、入手したデータを所定のフォーマット（例えばフィルド名：値，フィルド名：値，・・・にする）にして一時的にメモリに保存する。そして、ＤＢアクセス部１３２１は、入手したデータのポリシのＩＤを調べ、それが０（「公開」）であるかどうかを確認する（Ｓ２１４）。
【０１０６】
Ｓ２１４の判断の結果、ポリシＩＤが０である場合（Ｓ２１４／ＹＥＳ）、ＤＢアクセス部１３２１は、データ後処理部１３２２へ直接データを渡す。そして、データ後処理部１３２２でデータのフォーマット変換が行われ（Ｓ２１１３）、コールバック関数実行部１３１２でコールバック関数が実行される（Ｓ２１１４）。すなわち、要求されたデータの全部が、クライアント１６のアプリケーションに送信される。
【０１０７】
Ｓ２１４の判断の結果、ポリシＩＤが０ではない場合（Ｓ２１４／ＮＯ）、ＤＢアクセス部１３２１は、入手したデータが一部公開のデータ又は自分のデータ（ポリシＩＤが１「秘密」ではないデータか又はオーナーが自分であるデータか）であるか否かを確認する（Ｓ２１５）。
【０１０８】
Ｓ２１５の確認の結果、入手したデータが一部公開のデータ及び自分のデータのいずれにも該当しない場合（Ｓ２１５／ＮＯ）、コールバック関数の実行（Ｓ２１１４）が行われて終了する。
【０１０９】
Ｓ２１５の確認の結果、入手したデータが一部公開のデータ又は自分のデータのいずれかに該当する場合（Ｓ２１５／ＹＥＳ）、ＤＢアクセス部１３２１は、中継サーバ１５からデータを取り始める準備をする。そのためにまず、ＤＢアクセス部１３２１は、今回データを取得するためのセッションＩＤを用意する（Ｓ２１６）。セッションＩＤを用意する目的は、SaaSサーバ１１のＤＢアクセス部１３２１に対する無断なアクセスを防止するためである。
【０１１０】
ＤＢアクセス部１３２１は、用意したセッションＩＤと、入手したいデータのＩＤを中継サーバ１５に送信する（Ｓ２１７）。ここで、上述したようにSaaSサーバ１１にはComet技術が実装されているため、Ｓ２１７の送信の前に中継サーバ１５がSaaSサーバ１１にコネクションがある状態になっている。すなわち、中継サーバ１５が予めSaaSサーバ１１にHTTPリクエストを送信しており、このリクエストに応じてSaaSサーバ１１がレスポンスとしてＳ２１７の送信を行う。
【０１１１】
中継サーバ１５のデータ操作部８２３のデータ読み取り部１８２は、受信したデータのＩＤに従って、該当データのポリシＩＤを取得する（Ｓ２１８）。
【０１１２】
データ読み取り部１８２は、取得したポリシＩＤに従ってポリシを獲得し、さらに、獲得したポリシを解析し、公開できるフィルドをリストアップする（Ｓ２１９）。
【０１１３】
データ読み取り部１８２は、リストアップの結果に従って、該当データの所定のフィルドの値を獲得する（Ｓ２１１０）。
【０１１４】
データ読み取り部１８２は、セッションＩＤとデータをSaaSサーバ１１に送信する（新たにHTTPリクエストをSaaSサーバ１１に送信する）（Ｓ２１１１）。ここで送信されるデータのフォーマットは、Ｓ２１３で獲得したフォーマットと一緒である。
【０１１５】
ＤＢアクセス部１３２１は、中継サーバ１５からセッションＩＤとデータを受信すると、セッションＩＤを削除する（Ｓ２１１２）。そして、データ後処理部１３２２でデータのフォーマット変換が行われ（Ｓ２１１３）、コールバック関数実行部１３１２でコールバック関数が実行される（Ｓ２１１４）。
【０１１６】
〔実施形態２〕
上記実施形態１では、社外からのアクセスの場合、中継サーバ１５に対するデータの書き込み（保存）を許可しない構成としたが、社外からのアクセスの場合でもデータの書き込みも許すことも可能である。この実施形態について以下に説明する。図２２は本実施形態の動作の流れを示す。
【０１１７】
Ｓ２２１〜Ｓ２２４の動作は、図６で説明したＳ６１〜Ｓ６４と同様であるので、ここでの説明は省略する。また、Ｓ２２４の後には図示していないが、図４のＳ４５〜４６の動作が行われる。
【０１１８】
その後、ユーザがクライアント１６においてSaaSサーバ１１に対してデータ（所望のアプリケーションにて入力したデータ）の書き込み指示をすると、クライアント１６からポリシ及びデータ（書き込み指示を受けたデータ）がSaaSサーバ１１へ送信される（Ｓ２２５）。
【０１１９】
SaaSサーバ１１は、そのポリシ及びデータを受け取ると、中継サーバ１５のアドレス（Ｓ２２３でクライアント１６に通知したものと同じ）に従って、受け取ったポリシ及びデータをそのまま中継サーバ１５へ送信する（Ｓ２２６）。
【０１２０】
中継サーバ１５は、SaaSサーバ１１からポリシ及びデータを受け取ると、受け取ったポリシの保存、そのポリシの判断、受け取ったデータの保存（書き込み）を行う（Ｓ２２７）。すなわち、中継サーバ１５は、上述した図１９のフローと同様の動作を行う。
【０１２１】
さらに、中継サーバ１５は、ポリシが「公開」又は「一部公開」の場合、ポリシの内容に従って、公開するデータをSaaSサーバ１１に送信する（Ｓ２２８）。
【０１２２】
SaaSサーバ１１は、中継サーバ１５からデータを受信したら自装置に保存し（Ｓ２２９）、ユーザ（クライアント１６）に対し、指示されたデータの書き込みが成功した旨の通知を行う（Ｓ２２１０）。クライアント１６では、この通知の表示を行う。
【０１２３】
図２３は、本実施形態におけるポリシ設定データの例を示してる。図２３で示したポリシの例は、図１２で示したものに対し、<overwrite>フィルドが追加されている。この<overwrite>フィルドは、社外ユーザが該当データフィルドを編集できるかどうかの設定ファイルである。
【０１２４】
図２４は、図２２におけるＳ２２５〜Ｓ２２９の動作の詳細を示すフローチャートである。これについて以下に説明する。図２４に示すアプリケーション及びデータアクセスライブラリは、上述したように、クライアント１６にダウンロードされた状態である。
【０１２５】
データアクセスライブラリ７１２のクライアント部分１３１のデータ書き込み部１３１４は、ユーザの要求を受けたアプリケーションロジック９１１から、データの書き込み指示を受け付ける（Ｓ２４１）。
【０１２６】
データ書き込み部１３１４は、図２２のＳ２２３で書き込まれたクッキーの情報（アクセス元判断部１３２４の判断結果）を基に、アクセス元（クライアント）が社内か社外かを判断する（Ｓ２４２）。
【０１２７】
Ｓ２４２の判断の結果、社内からのアクセスの場合（Ｓ２４１２／ＹＥＳ）、上述した図１６の処理を行う（Ｓ２４１２）。その後、データ書き込み部１３１４は、コールバック関数実行部１３１２に対し、コールバック関数の実行を要求する。これにより、コールバック関数実行部１３１２がコールバック関数の実行を行う（Ｓ２４１１）。
【０１２８】
Ｓ２４２の判断の結果、社外からのアクセスの場合（Ｓ２４２／ＮＯ）、データ書き込み部１３１４は、SaaSサーバ１１のサーバ部分１３２のＤＢアクセス部１３２１に対し、今回操作用のセッションＩＤを用意するように要求する。この要求を受けたＤＢアクセス部１３２１は、セッションＩＤを用意する（Ｓ２４３）。
【０１２９】
ＤＢアクセス部１３２１は、アプリケーションSaaSＤＢ９１２とユーザ中継アドレスＤＢ７２１（図７参照）から獲得した情報を総合して、該当データを保存すべき中継サーバ１５のアドレスを入手する（Ｓ２４４）。
【０１３０】
ＤＢアクセス部１３２１は、セッションＩＤとデータのＩＤと書き込み内容を中継サーバ１５に送信する（Ｓ２４５）。
【０１３１】
中継サーバ１５のデータ操作部８２３のデータ書き込み部１８１は、データのＩＤを基にポリシＩＤを入手する（Ｓ２４６）。
【０１３２】
データ書き込み部１８１は、取得したポリシＩＤに従ってポリシを獲得し、さらに、獲得したポリシを解析し、ユーザが書き込もうとしているデータのフィルドに書き換え可能かどうかを判断して（Ｓ２４７）、可能な場合のみ書き込みを行う（Ｓ２４８）。
【０１３３】
データ書き込み部１８１は、セッションＩＤと書き込みが成功した情報をSaaSサーバに１１に送信する（Ｓ２４９）。
【０１３４】
SaaSサーバ１１のＤＢアクセス部１３２１は、書き込みが成功した情報を受信したら、それとともに受信したセッションＩＤを削除する（Ｓ２４１０）。その後、コールバック関数実行部１３１２でコールバック関数が実行される（Ｓ２４１１）。
【０１３５】
〔実施形態３〕
上述した図１６のＳ１６６では、アプリケーションが一回の操作で一つのデータベースにある複数のテーブル又は複数のデータベースにあるテーブルに書き込むこともある。そこで、各テーブルへの書き込みに対して、それぞれ書き込みのPOST文を用意するということで実現できる。また、クライアント１６側で一気にPOST文を発行して、サーバ側でそれぞれのポリシを用意することを避けるため、ポリシＩＤ２を事前に定義して、中継サーバ１５側でPOST文を解析するときに新規ポリシを作成する場合、一時的に一つ前のポリシＩＤを記憶して、さらにポリシＩＤが２であるものがあったら、一時記憶されたポリシＩＤを利用して今回書き込む記録のポリシＩＤにする。
【０１３６】
〔実施形態４〕
また、上述したアプリケーションはファイル共有機能をもつこともできる。図２５は、その場合のアプリケーションの構造を示す図である。図２５の構成では、図９の構成に対し、アプリケーションのファイルリポジトリが追加されている。アプリケーションファイルリポジトリは、アプリケーションが管理しているファイルと、そのファイルに関するメタ情報とによって構成される。
【０１３７】
図２６は、上記アプリケーションファイルリポジトリの内部の構造を示す図である。アプリケーションファイルリポジトリには、メタ情報を管理するファイル情報ＤＢと、ファイルを保存するファイルディレクトリとがある。ファイル情報ＤＢは、図１０に示す構造と同じように、各メタ情報の属性はデータフィルドと見なし、データＩＤとポリシＩＤの対応表と、データＩＤとオーナーアカウントの対応表とがある。
【０１３８】
図２７は、本実施形態におけるポリシの例である。図２７に示すように、ファイル名、概要に対して、インターネット上に公開され、ファイル内容は限定された人しかアクセスできないようにしている（限定された人だけがファイルをダウンロードできる。）
【０１３９】
〔実施形態５〕
上記SaaSサーバ１１がポリシを管理するようにしてもよい。図２８は、その場合におけるSaaSサーバ１１の構成を示す図である。図２８は、図７に示す構成に対して、ポリシ管理部が追加されている。このポリシ管理部には、図２８に示すように、ポリシを保存するポリシＤＢと、ポリシ獲得、分析、ポリシＩＤの生成などの機能を提供するポリシ管理機能部とが備えられる。図２８のポリシＤＢは、図８に示すポリシＤＢ８２１と同様の機能を有し、また、図２８のポリシ管理機能部は、図８に示すポリシ管理部８２２と同様の機能を有する。よって、中継サーバ１５において、ポリシＤＢ８２１及びポリシ管理部８２２を備える必要がなくなる。このときの中継サーバ１５の構成は、図２９に示すようになる。
【０１４０】
図３０は、本実施形態において、社内ユーザがデータを書き込むときの動作を示す図である。図３０の動作は、実施形態１における図４と基本的に同様である。すなわち、図３０のＳ３０１〜Ｓ３０７及びＳ３０１０は、図４のＳ４１〜Ｓ４７及びＳ４９と同様である。ただし、図３０は、図４と比べて以下の点が異なる。すなわち、図４では、ポリシとデータ（書き込み指示を受けたデータ）とが中継サーバ１５に保存されるが（Ｓ４８）、図３０では、ポリシはSaaSサーバ１１に保存され（Ｓ３０８）、データ（書き込み指示を受けたデータ）は中継サーバ１５に保存される（Ｓ３０９）。よって、ポリシ管理部がSaaSサーバ１１にある場合、データを中継サーバ１５に保存する前に、SaaSサーバ１１において、そのデータに対応するポリシの保存が必要になる。
【０１４１】
図３１は、本実施形態において、社外ユーザがデータを読み取るときの動作を示す図である。図３１の動作は、実施形態１における図５と基本的に同様であるが、以下の点で異なる。図３１では、図５のＳ６４の処理がSaaSサーバ１１で行われる（Ｓ３１３）。よって、図３１では、図５のＳ６３の処理が省略される。また、図３１では、図５のＳ６８の処理がSaaSサーバ１１で行われる（Ｓ３１５）。これら以外の処理については、図３１と図５は同様である。
【０１４２】
以上説明したように、上記各実施形態によれば、特許文献１のようにSaaSサーバ（ウェブアプリケーションを提供するサーバ）を２つ設けずに、１つだけとしている。すなわち、SaaSサーバが１つだけであることから、SaaSサーバにおけるアプリケーションのメンテナンスにかかるコストを削減でき、かつ、ユーザにとってのSaaSサーバのＵＲＬの管理を容易にできる（ユーザは１つのＵＲＬを管理すればよいので、誤操作を防ぐことができる。特許文献１のように２つのＵＲＬを管理することになると、誤操作が生じやすい）。
【０１４３】
また、上記各実施形態によれば、公開するデータはSaaSサーバに保存し、公開しないデータは中継サーバに保存するようにしている。すなわち、中継サーバとSaaSサーバを用いることから、インターネット上（SaaSサーバ）に保存される情報を少なくでき、かつ、インターネット上において情報を共有できる。また、公開しないデータを社内ネットワーク内の中継サーバに保存することから、情報漏えいを防ぐことができ、セキュリティを高めることができる。
【０１４４】
また、上記各実施形態によれば、公開するデータについてアクセス制御ポリシが設定できる。これにより、ユーザがデータを保存するときに、そのデータを誰に対してどの程度公開するかを柔軟に設定できる。
【０１４５】
以上、本発明の実施形態について説明したが、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。
【０１４６】
例えば、上述した実施形態における動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【０１４７】
ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させてもよい。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させてもよい。
【０１４８】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭ（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magneto Optical）ディスク、ＤＶＤ（Digital Versatile Disc）、ＵＳＢ（Universal Serial Bus）メモリ、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。
【０１４９】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送してもよい。または、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送してもよい。コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【０１５０】
また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【０１５１】
また、上記実施形態で説明したシステムは、複数の装置の論理的集合構成にしたり、各装置の機能を混在させたりするように構築することも可能である。
【産業上の利用可能性】
【０１５２】
本発明は、ウェブ上データマッシュアップ、SaaSサービスによる情報漏洩の防止に適用できる。
【符号の説明】
【０１５３】
１１    SaaSサーバ
１２    インターネット
１３    ＦＷ
１４    プロキシ
１５    中継サーバ
１６    クライアント
１７    社内ネットワーク
２１    制御部
２２    入出力Ｉ／Ｆ部
２３    入出力機器
２４    記憶部
２５    出力部
２６    入力部
２７    通信部
２８    ネットワーク
２１１    ＣＰＵ
２１２    ＲＯＭ
２１３    ＲＡＭ
７１    ウェブアプリケーション提供部
７２    ユーザ情報保管部
７３    ユーザ認証部
７１１    アプリケーション
７１２    データアクセスライブラリ
７２１    ユーザ中継アドレスＤＢ
８１    アプリケーションデータ保存部
８２    データアクセス部
８１１    アプリケーション社内ＤＢ
８２１    ポリシＤＢ
８２２    ポリシ管理部
８２３    データ操作部
８２４    データ転送部
９１    SaaSサーバ部分
９２    中継サーバ部分
９１１    アプリケーションロジック
９１２    アプリケーションSaaSＤＢ
９２１    アプリケーション社内ＤＢ
１０１ａ、１０１ｂ、１０１ｃ、１０２ａ、１０２ｂ、１０２ｃ    データテーブル
１３１    クライアント部分
１３２    サーバ部分
１３１１    データ読み取り部
１３１２    コールバック関数実行部
１３１３    ポリシ作成ＵＩ部
１３１４    データ書き込み部
１３２１    ＤＢアクセス部
１３２２    データ後処理部
１３２３    中継サーバアドレス取得部
１３２４    アクセス元判断部
１８１    データ書き込み部
１８２    データ読み取り部
【先行技術文献】
【特許文献】
【０１５４】
【特許文献１】特開２００９−７００１５号公報
【図１】
0005598151.tif 000002
【図２】
0005598151.tif 000003
【図３】
0005598151.tif 000004
【図４】
0005598151.tif 000005
【図５】
0005598151.tif 000006
【図６】
0005598151.tif 000007
【図７】
0005598151.tif 000008
【図８】
0005598151.tif 000009
【図９】
0005598151.tif 000010
【図１０】
0005598151.tif 000011
【図１１】
0005598151.tif 000012
【図１２】
0005598151.tif 000013
【図１３】
0005598151.tif 000014
【図１４】
0005598151.tif 000015
【図１５】
0005598151.tif 000016
【図１６】
0005598151.tif 000017
【図１７】
0005598151.tif 000018
【図１８】
0005598151.tif 000019
【図１９】
0005598151.tif 000020
【図２０】
0005598151.tif 000021
【図２１】
0005598151.tif 000022
【図２２】
0005598151.tif 000023
【図２３】
0005598151.tif 000024
【図２４】
0005598151.tif 000025
【図２５】
0005598151.tif 000026
【図２６】
0005598151.tif 000027
【図２７】
0005598151.tif 000028
【図２８】
0005598151.tif 000029
【図２９】
0005598151.tif 000030
【図３０】
0005598151.tif 000031
【図３１】
0005598151.tif 000032