(57)【要約】【課題】セキュリティを担保しつつ、高い操作性を確保するため、アプリケーション間連携が必要な作業と、オフラインの作業をスムーズに切り替えることがきる仕組みを提供する。【解決手段】シンクライアントサーバ上でファイルを指定するだけで、通信環境に応じたアクセス手段（シンクライアントサーバ上でアプリが起動するか、シンクライアントサーバ上のデータをWebサーバ上にコピーし、シンクライアント上のWebブラウザでWebサーバへアクセスする）によって、シンクライアントサーバに格納されていたデータを編集することが可能であり、シンクライアントとシンクライアントサーバとの間のネットワーク品質に応じて、シンクライアントで動作するプログラムを切り替えるプログラムを有するシンクライアントシステム。【選択図】  図２
2012099091.tif 000002
【特許請求の範囲】
【請求項１】
シンクライアントサーバと、Webサーバと、シンクライアント端末と、がネットワークで接続されたシンクライアントシステムであって、
前記シンクライアントサーバは、前記ネットワークを介して接続された前記シンクライアント端末から、対象とするファイルを作成または更新するアプリケーションプログラムを起動する操作情報を受信した場合、前記アプリケーションプログラムを、前記シンクライアントサーバで実行するか否かを判定し、
前記シンクライアントサーバでは実行しないと判定した場合に、前記シンクライアントサーバは、前記アプリケーションプログラムの識別子と前記対象とするファイルの識別子と前記ファイル識別子が示すファイルのデータとを、前記Webサーバへ送信し、
前記Webサーバは、前記アプリケーションプログラムの識別子と前記対象とするファイルの識別子と受信したファイルのデータの格納先の識別子とに基づき、アクセス先情報を生成し、
前記Webサーバは、前記シンクライアントサーバへ、生成した前記アクセス先情報を送信し、
前記シンクライアントサーバは、受信した前記アクセス先情報を前記シンクライアント端末に送信し、
前記シンクライアント端末は、
前記シンクライアントサーバから受信した前記アクセス先情報に基づいて、前記Webサーバに接続し、
前記アプリケーションプログラムを実行し、前記対象とするファイルの作成または更新を行う
ことを特徴とするシンクライアントシステム。
【請求項２】
請求項１に記載のシンクライアントシステムにおいて、
前記Webサーバおよび／または前記シンクライアントサーバは、作成または更新の対象とするファイルのステータスを管理するテーブルを備え、
前記シンクライアントサーバは、前記アプリケーションプログラムを起動し、前記対象とするファイルを読み込む前に前記テーブルを参照し、
前記対象とするファイルが変更されている場合は、前記対象とするファイルを更新するか否かの問い合わせを、前記シンクライアント端末の画面に表示し、
前記シンクライアント端末に入力された前記更新するか否かの指示にしたがった後に、前記アプリケーションプログラムを起動する
ことを特徴とするシンクライアントシステム。
【請求項３】
請求項１または２に記載のシンクライアントシステムにおいて、
前記シンクライアントサーバは、
前記シンクライアント端末と接続する前記ネットワークの負荷状態を検出し、
前記負荷状態と、予め備える起動ポリシーとに基づき、前記アプリケーションプログラムを、前記シンクライアントサーバで実行するか否かを判定する
ことを特徴とするシンクライアントシステム。
【請求項４】
請求項３に記載のシンクライアントシステムにおいて、
前記起動ポリシーは、前記アプリケーションプログラムの種類、前記シンクライアントサーバと前記シンクライアント端末との間のネットワークの状態、前記シンクライアントサーバの状態、前記アプリケーションプログラムが読み込むファイルの種類と前記アプリケーションプログラムを起動する方法との対応関係と、を含む
ことを特徴とするシンクライアントシステム。
【請求項５】
シンクライアントサーバと、Webサーバと、シンクライアント端末と、がネットワークで接続されたシンクライアントシステムに用いるシンクライアント端末であって、
前記シンクライアントサーバと接続して、作成または更新の対象とするファイルを指定し、前記対象とするファイルを作成または更新するアプリケーションプログラムを起動する操作情報を送信し、
前記アプリケーションプログラムを、前記シンクライアントサーバで実行しないことが判定された場合に、前記シンクライアントサーバからアクセス先情報を受信し、
受信した前記アクセス先情報に基づき、前記Webサーバへ接続し、前記対象とするファイルを作成または更新する
ことを特徴とするシンクライアント端末。
【請求項６】
シンクライアントサーバと、Webサーバと、シンクライアント端末とがネットワークで接続されたシンクライアントシステムに用いるシンクライアントサーバであって、
前記シンクライアント端末から受信したファイル名を伴うアプリケーションプログラムの実行指示に基づき、
前記アプリケーションプログラムの起動を、当該シンクライアントサーバにおいて行うか否かを判定し、
前記アプリケーションプログラムの起動を当該シンクライアントサーバにおいて行わない場合、前記実行指示により指定されたファイルを前記Webサーバに送信し、
前記クライアント端末が、前記Webサーバに送信された前記ファイルにアクセスする場合に必要な、アクセス先情報と前記アクセスに必要な認証情報とをWebサーバから受信し、
前記WebサーバにアクセスするWebクライアントプログラムの起動指示と、受信した、前記アクセス先情報と、前記認証情報と、を前記シンクライアント端末に送信する
ことを特徴とするシンクライアントサーバ。
【請求項７】
請求項６に記載のシンクライアントサーバにおいて、
前記アプリケーションプログラムの起動判定を、前記シンクライアント端末と前記シンクライアントサーバとの間のネットワークの負荷状態と、起動を指定された前記アプリケーションプログラムの識別子と、前記アプリケーションプログラムが利用する前記ファイルの識別子と、当該シンクライアントサーバの負荷状態と、に基づいて行う
ことを特徴とするシンクライアントサーバ。
【請求項８】
シンクライアントサーバと、Webサーバと、シンクライアント端末とがネットワークで接続されたシンクライアントシステムに用いるWebサーバであって、
前記シンクライアントサーバに対して、作成または更新の対象とするファイルを指定し、前記対象とするファイルを作成または更新するアプリケーションプログラムを起動する、前記シンクライアント端末による操作情報に基づき、
前記アプリケーションプログラムの識別子と、前記対象とするファイルと、前記シンクライアント端末を利用するユーザの識別子とを、前記シンクライアントサーバから受信し、
前記識別子に基づき当該Webサーバで起動されるアプリケーションプログラムを、前記シンクライアント端末で実行されるWebクライアントプログラムが利用する際に必要なアクセス先情報を生成し、
生成した前記アクセス先情報を前記シンクライアントサーバに送信する
ことを特徴とするＷｅｂサーバ。
【請求項９】
請求項８に記載のＷｅｂサーバにおいて、
前記シンクライアント端末で実行される前記Webクライアントプログラムから受信する情報が、所定の条件を満足する場合、前記ファイルと前記アプリケーションプログラムとを、前記シンクライアント端末に送信する
ことを特徴とするＷｅｂサーバ。
【請求項１０】
請求項９に記載のＷｅｂサーバにおいて、
前記所定の条件とは、当該アクセス先情報を生成する際に用いたユーザの識別子と、Webクライアントプログラムから送信されたユーザ識別子とをアクセス制御用データに格納されるルールに基づき、アクセスの可否を判定し、アクセス可能である
ことを特徴とするＷｅｂサーバ。
【請求項１１】
請求項１から４のいずれか一に記載のシンクライアントシステムにおいて、
前記シンクライアント端末は、前記シンクライアントサーバに格納されているファイルを指定し、当該ファイルに対応づけられているアプリケーションプログラムを起動する指示を入力した時、当該ファイルを、当該シンクライアント端末上で動作するＷｅｂクライアントプログラムを用いて編集するのに必要なモバイルコードと当該ファイルのデータとを、外部記憶媒体として、前記シンクライアント端末へ通信機能で接続した携帯端末に格納する
ことを特徴とするシンクライアントシステム。
【請求項１２】
請求項１１のシンクライアントシステムにおいて、
当該ファイルの機密性の程度に応じて、前記携帯端末を、前記外部記憶媒体として指定できるか否かを制御する
ことを特徴とするシンクライアントシステム。
【請求項１３】
シンクライアント端末と通信機能で接続可能な、メール送信機能を有する携帯端末であり、
前記シンクライアント端末から前記通信機能を介してファイルを受信すると、前記メール送信機能により、予め登録した宛先に、受信した前記ファイル名と前記ファイルを受信した利用者名と受信した日時とを示すメールを送信する
ことを特徴とする携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、ネットワークを介してサーバを安全に遠隔操作することを可能にするセキュアリモートアクセスシステムに関する。
【背景技術】
【０００２】
携帯端末の紛失などに起因した、情報漏えいのセキュリティ事故が絶えない。そこで、シンクライアントサーバにプログラムやデータを格納し、シンクライアント端末（以下、シンクライアント、またはTC（Thin Client）という）はデータを持たない画面転送型のシンクライアントシステムが提供されている。シンクライアントは、ネットワークを介してシンクライアントサーバへアクセスしてキーボード、マウスなどからの入力を送信し、シンクライアントサーバは、シンクライアントサーバにおける処理結果の画面データをシンクライアントに転送し、シンクライアントは転送された画面データを表示させることによりリモートからサーバ上で稼動するＰＣデスクトップを操作する。このシステムにより、利用者がシンクライアントを紛失しても、データを紛失するリスクが低くなる。
【０００３】
非ブロードバンド環境や、通信品質の悪いネットワーク環境では、画面転送速度が低くなり、画面描画が頻繁に行われる。例えば、動画表示のアプリケーションプログラムでは、画面描画に時間がかかり、利用者からの入力に対する応答も遅くなり、操作性が悪くなる。また、画面転送型のシステムでは、シンクライアントサーバと通信ができないオフライン環境において、シンクライアントに画面を表示することができない。
【０００４】
そこで、画面転送型のシンクライアントシステムのオフライン時の対策として、サーバからダウンロードして携帯端末に記憶したセキュアデータを使用できるようにし、所定のタイミングにより消去することでセキュリティを確保することにより、一時的にサーバとの通信が切断された場合でも、操作の続行を可能とするとともに、情報漏えいに対する高いセキュリティレベルを実現したシンクライアント端末が提案されている（特許文献１）。
【０００５】
また、画面転送型のシンクライアントシステムに限らずオフライン時にWebコンテンツやデータを閲覧する方法として、HTML5のオフライン機能がある。このHTML 5 仕様は、ローカルにデータを保存する SQL-based database API と、ユーザがネットワークに接続していないときでもアプリケーションを利用できるようにする offline application HTTP cache を提供している（非特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2009-181460号公報（段落００６１、００６２）
【特許文献２】特開2010-045618号公報（段落００３２〜００４７、００５５）
【非特許文献】
【０００７】
【非特許文献１】Anne van Kesteren、"HTML5 Offline Web Applications"、[online]、[平成22年7月7日検索]、インターネット<URL: http://www.w3.org/TR/2008/NOTE-offline-webapps-20080530/>
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記特許文献１では、オフライン時の操作性を向上させるために、データやプログラムを利用者が操作する端末に格納すると、端末を紛失した場合に情報が漏えいする可能性があり、セキュリティ上問題がある。
【０００９】
特許文献１では、サーバからクライアント端末に一時的にダウンロードしたデータを削除する方法について述べられているが、サーバからダウンロードしたデータを更新した場合、更新した結果をサーバへ反映させるための方法についてのべられていない。
【００１０】
また、非特許文献１で述べられているオフライン機能は、オフライン時にWebコンテンツやデータを閲覧することが可能であるが、シンクライアントサーバで動作するアプリケーションプログラムと同等の機能を提供するWebアプリケーションプログラムが必要である。
【００１１】
利用者が使いたいアプリケーションプログラムと同等のWebアプリケーション版のプログラムは必ずしも提供されているとは限らないため、使おうとするアプリケーションプログラムによって、利用者はシンクライアントサーバで動作するアプリケーションプログラムか、それと同等の機能を提供するＷｅｂアプリケーションプログラムかを使い分ける必要がある。
【００１２】
さらに、非特許文献１で述べられている方法では、オフライン時にWebコンテンツやデータを閲覧することが可能であるが、アプリケーション間の連携ができない。ここでアプリケーション間の連携とは、単純なコピーバッファでのデータ交換だけではなく、アプリケーション間で、マクロやスクリプトを用いてそれぞれのデータを連携させることにより、新たな複合アプリケーションを作り上げることを意味する。これを実現するためには、アプリケーション間のデータ交換方法を定めた規格と、アプリケーション上にマクロやスクリプトを実行する環境が必要であり、非特許文献１で述べられている方法ではこれらの要件をサポートしていないため実現が困難となる。
【００１３】
また、画面転送型のシンクライアントシステムでは、利用者による処理対象データが、シンクライアント端末側に存在しないため、シンクライアント端末を紛失したり、盗まれたりしても、また、同じ端末を複数人で共用しても、情報漏えいの虞がない、という特徴を備える。
【００１４】
しかし、オフライン処理によりシンクライアント端末側にデータが存在すると、上記特徴が失われる虞がある。
【００１５】
この課題に対して、シンクライアント端末と利用者が携帯する携帯端末とで、情報を連携させることにより、上記問題の軽減を図ることが考えられる。
【００１６】
シンクライアント端末と他の装置との情報連携に関しては、携帯電話端末とシンクライアント端末とセンタ装置からなるシステムで、センタ装置へ接続するための認証済み情報を携帯電話端末とシンクライアント端末との間で連携し、携帯電話端末で生成した認証済み情報をシンクライアント端末に引き継ぐシステムが提案されている（特許文献２）。
【００１７】
しかしながら、特許文献２において、携帯電話端末とシンクライアント(TC)端末との間で連携される情報は、認証済み情報に関するものであり、TC端末上で作業されたデータの格納については触れられていない。
【課題を解決するための手段】
【００１８】
本明細書で開示されるのは、クライアント端末でアプリケーションプログラムのデータを出力、編集、保存する場合の情報漏えいを防ぐことにより、セキュリティを担保するとともに、端末が接続されているサーバとの通信路の品質によらない、高い操作性を備えるシンクライアントシステムである。
【００１９】
例えば、開示されるシンクライアントシステムは、セキュリティを担保しつつ、高い操作性を確保するため、画面転送型のシンクライアントシステムによりアプリケーションプログラムを利用したアプリケーション間連携が必要な作業と、Webクライアントプログラムを利用した作業とをスムーズに切り替える仕組みを備える。
【００２０】
より具体的には、
シンクライアントサーバと、Webサーバと、シンクライアント端末と、がネットワークで接続されたシンクライアントシステムであって、
シンクライアントサーバは、ネットワークを介して接続されたシンクライアント端末から、対象とするファイルを作成または更新するアプリケーションプログラムを起動する操作情報を受信した場合、アプリケーションプログラムを、シンクライアントサーバで実行するか否かを判定し、
シンクライアントサーバでは実行しないと判定した場合に、シンクライアントサーバは、アプリケーションプログラムの識別子と対象とするファイルの識別子とファイル識別子が示すファイルのデータとを、Webサーバへ送信し、
Webサーバは、アプリケーションプログラムの識別子と対象とするファイルの識別子と受信したファイルのデータの格納先の識別子とに基づき、アクセス先情報を生成し、
Webサーバは、シンクライアントサーバへ、生成したアクセス先情報を送信し、
シンクライアントサーバは、受信したアクセス先情報をシンクライアント端末に送信し、
シンクライアント端末は、
シンクライアントサーバから受信したアクセス先情報に基づいて、Webサーバに接続し、
アプリケーションプログラムを実行し、対象とするファイルの作成または更新を行うことを特徴とするシンクライアントシステムが開示される。
【００２１】
さらに、上記Webサーバおよび／またはシンクライアントサーバは、作成または更新の対象とするファイルのステータスを管理するテーブルを備え、
シンクライアントサーバは、アプリケーションプログラムを起動し、対象とするファイルを読み込む前にテーブルを参照し、
対象とするファイルが変更されている場合は、対象とするファイルを更新するか否かの問い合わせを、シンクライアント端末の画面に表示し、
シンクライアント端末に入力された更新するか否かの指示にしたがった後に、アプリケーションプログラムを起動してもよい。
【００２２】
さらに、上記シンクライアントサーバは、
シンクライアント端末と接続するネットワークの負荷状態を検出し、
負荷状態と、予め備える起動ポリシーとに基づき、アプリケーションプログラムを、シンクライアントサーバで実行するか否かを判定してもよい。
【００２３】
さらに上記起動ポリシーは、アプリケーションプログラムの種類、シンクライアントサーバとシンクライアント端末との間のネットワークの状態、シンクライアントサーバの状態、アプリケーションプログラムが読み込むファイルの種類とアプリケーションプログラムを起動する方法との対応関係と、を含むものであってもよい。
【００２４】
また、上記シンクライアント端末として、
シンクライアントサーバと接続して、作成または更新の対象とするファイルを指定し、対象とするファイルを作成または更新するアプリケーションプログラムを起動する操作情報を送信し、
アプリケーションプログラムを、シンクライアントサーバで実行しないことが判定された場合に、シンクライアントサーバからアクセス先情報を受信し、
受信したアクセス先情報に基づき、Webサーバへ接続し、対象とするファイルを作成または更新することを特徴とする構成が開示される。
【００２５】
また、上記シンクライアントサーバとして、
シンクライアント端末から受信したファイル名を伴うアプリケーションプログラムの実行指示に基づき、
アプリケーションプログラムの起動を、当該シンクライアントサーバにおいて行うか否かを判定し、
アプリケーションプログラムの起動を当該シンクライアントサーバにおいて行わない場合、実行指示により指定されたファイルをWebサーバに送信し、
クライアント端末が、Webサーバに送信されたファイルにアクセスする場合に必要な、アクセス先情報とアクセスに必要な認証情報とをWebサーバから受信し、
WebサーバにアクセスするWebクライアントプログラムの起動指示と、受信した、アクセス先情報と、認証情報と、をシンクライアント端末に送信することを特徴とする構成が開示される。
【００２６】
さらに、上記シンクライアントサーバは、アプリケーションプログラムの起動判定を、シンクライアント端末とシンクライアントサーバとの間のネットワークの負荷状態と、起動を指定されたアプリケーションプログラムの識別子と、アプリケーションプログラムが利用するファイルの識別子と、当該シンクライアントサーバの負荷状態と、に基づいて行ってもよい。
【００２７】
また、上記Webサーバとして、
シンクライアントサーバに対して、作成または更新の対象とするファイルを指定し、対象とするファイルを作成または更新するアプリケーションプログラムを起動する、シンクライアント端末による操作情報に基づき、
アプリケーションプログラムの識別子と、対象とするファイルと、シンクライアント端末を利用するユーザの識別子とを、シンクライアントサーバから受信し、
識別子に基づき当該Webサーバで起動されるアプリケーションプログラムを、シンクライアント端末で実行されるWebクライアントプログラムが利用する際に必要なアクセス先情報を生成し、
生成したアクセス先情報をシンクライアントサーバに送信することを特徴とする構成が開示される。
【００２８】
さらに、上記Webサーバは、シンクライアント端末で実行されるWebクライアントプログラムから受信する情報が、所定の条件を満足する場合、ファイルとアプリケーションプログラムとを、シンクライアント端末に送信してもよい。
【００２９】
上記Webサーバにおける所定の条件とは、たとえば、当該アクセス先情報を生成する際に用いたユーザの識別子と、Webクライアントプログラムから送信されたユーザ識別子とをアクセス制御用データに格納されるルールに基づき、アクセスの可否を判定し、アクセス可能であることである。
【００３０】
さらに、上記Webサーバにおける所定の条件とは、Webサーバより送信されたデータを遠隔で削除できる機能を有していいて、遠隔で削除できる機能が動作するように設定されている場合に、機密性の程度が高いファイルを携帯端末に格納できるように、携帯端末をファイルの保存先として指定できることである。
【００３１】
また、本明細書で開示されるのは、シンクライアントサーバに格納されているファイルをシンクライアント端末の入力装置を用いて指定し、当該ファイルに対応づけられているアプリケーションプログラムを起動する指示を入力した時、当該ファイルをシンクライアント端末上で動作するＷｅｂクライアントプログラムを用いて編集するのに必要なモバイルコードと当該ファイルのデータとを前記シンクライアント端末と通信機能で接続した携帯端末に格納することを特徴とするシンクライアントシステムである。
【００３２】
さらに、上記携帯端末は、上記Webサーバより送信されたファイルとアプリケーションプログラムもしくは、ファイルを格納した後、ファイルが変更されたり削除されたりした場合、自らの端末を識別する識別子とファイルを識別する識別子とファイルの状態（例えば、変更、削除、別名保存）とを関連付けたデータを、シンクライアント端末もしくはWebサーバに送信するように構成しても良い。
【００３３】
さらに、上記携帯端末が、Webサーバより送信されたデータを遠隔で削除できる機能を有しているかどうか、遠隔で削除できる機能が動作するように設定されているかどうかを示すデータに基づき、ファイルの内容の機密性の程度に応じた格納先に、上記携帯端末が該当するかどうかのデータを、データ書き出し可能媒体リストとして、Webサーバに格納されるアクセス制御データに登録するように構成しても良い。
【００３４】
さらに、上記シンクライアント端末は、上記Webサーバより送信されたファイルとアプリケーションプログラムもしくは、ファイルの格納先を表示し、利用者からの入力に応じてデータを格納する機能を有しており、ファイルの格納先は、携帯端末がファイルの格納先に該当するリストに含まれるかどうかで判定し、含まれている場合データの先として携帯端末を表示し、含まれていない場合は表示しないように構成しても良い。
【００３５】
また、開示されるシンクライアントシステムにおいて、リモートデスクトップウィンドウ内に表示されたアイコンをシンクライアント端末の画面の中でリモートデスクトップウィンドウの外にドラッグアンドドロップすることで、シンクライアントサーバに格納されたファイルをＷｅｂサーバを介して、シンクライアント端末もしくは、携帯端末の二次記憶装置に格納するように、シンクライアントシステムを構成してもよい。
【００３６】
上記態様によれば、以下の効果が得られる。
【００３７】
本明細書の開示によれば、シンクライアントサーバ上のデータを編集可能とするWebアプリケーションプログラムと、そのデータとをWebサーバに格納することによって、シンクライアント上で稼動するWebクライアントプログラムを用いてシンクライアントサーバで編集していたデータを、シンクライアントサーバを介さずに編集することが可能となる。
【００３８】
さらに、本明細書の開示によれば、WebアプリケーションプログラムとWebアプリケーションプログラムが使用するデータとをあらかじめシンクライアントにダウンロードすれば、シンクライアントがネットワークに接続できない環境においても、Webクライアントプログラムを起動することで、Webアプリケーションプログラムを起動し、データの編集が可能となる。
【００３９】
このように、本明細書の開示によれば、画面転送型によるシンクライアントサーバ上での作業と、WebサーバへWebブラウザを用いてアクセスする作業と、シンクライアント上でのオフラインによる作業と、を必要に応じて切り替えることが可能である。また、切り替えて作業するために必要なデータの更新処理を実行する機能を提供することで、利用者の切替作業の負担を軽減するとともに、データの更新をし忘れることを防ぐことが可能になる。
【００４０】
本明細書の開示によれば、起動ポリシーデータに、利用者が操作する計算機端末とその端末とネットワークを介して接続する計算機との間の通信環境に応じて、アプリケーションプログラムが用いるデータへのアクセス方法を切り替えることが可能になるため、通信環境が悪い場合、より操作性の高いアクセス方法を使用することができるとともに、同一のデータに対するアクセス方法を切り替えることによって、利用者が新たにデータを入力しなおす必要がないため、操作性が向上する。
【００４１】
また、開示によれば、オフライン時の作業に必要なデータをシンクライアントとは別の装置に格納するので、複数の利用者が１台のシンクライアントを共有でき、一方、一人の利用者が、手元の端末に保存したデータを用いて、異なるシンクライアントを利用して、オフライン作業を継続できるシンクライアントシステムが実現可能になる。
【発明の効果】
【００４２】
開示によれば、情報漏えいを防ぐとともに、シンクライアントとサーバとの通信路の品質によらない、高い操作性を備えるシンクライアントシステムが実現可能になる。
【図面の簡単な説明】
【００４３】
【図１】開示するシンクライアントシステムのシステム構成を例示する図。
【図２】開示するシンクライアントシステムのプログラム構成を例示する図。
【図３】開示するシンクライアントシステムの全体の処理フローを例示する図。
【図４】開示するシンクライアントシステムを用いて、編集用のアプリケーションプログラム（ＡＰ）がシンクライアントサーバ（ＴＣＳ）で起動するまでのシーケンスを例示する図。
【図５】シンクライアント（ＴＣ）におけるAP実行のための準備処理に関するシーケンスを例示する図。
【図６】ＴＣ上で編集されたファイルを保存する処理に関するシーケンスを例示する図。
【図７】起動ポリシーテーブルのテーブル構成を例示する図。
【図８】ＴＣＳ２０に格納されるアプリケーションプログラム用データのファイル更新状態管理テーブル２１０のテーブル構成を例示する図。
【図９】Ｗｅｂサーバ３０に格納されるアプリケーションプログラム用データのファイル更新状態管理テーブル２１０のテーブル構成を例示する図。
【図１０】アプリケーションプログラム用データのファイル更新状態管理テーブルとステータスパラメータ管理テーブルのテーブル構成を例示する図。
【図１１Ａ】切替プログラム１０３の処理を例示するフローチャート。
【図１１Ｂ】切替プログラムにおける入力待ち処理の詳細を例示するフローチャート。
【図１２】アプリケーション監視プログラム２０３の処理を例示するフローチャート。
【図１３】切替ブローカプログラム２０４の処理を例示するフローチャート。
【図１４】データ管理ブローカプログラム２０５の処理を例示するフローチャート。
【図１５】データ管理プログラム３０２の処理を例示するフローチャート。
【図１６】Ｗｅｂクライアントプログラム１０４とＷｅｂサーバプログラム３０３の処理を例示するフローチャート。
【図１７】ＴＣ１０の画面を例示する図。
【図１８】ＴＣ１０の画面を例示する図。
【図１９】開示するシンクライアントシステムを用いてオフラインで編集用アプリケーションプログラムを利用する際の処理フローを例示する図。
【図２０】シンクライアント（ＴＣ）においてオフラインで編集用アプリケーションプログラムを実行のための準備処理に関するシーケンスを例示する図。
【図２１】ＴＣ１０の画面を例示する図。
【図２２Ａ】ＴＣ１０の画面を例示する図。
【図２２Ｂ】ＴＣ１０の画面を例示する図。
【図２２Ｃ】ＴＣ１０の画面を例示する図。
【図２３】ＴＣ１０の画面を例示する図。
【図２４】図１に開示するシンクライアントシステムに、外部記憶装置として追加する携帯端末５０の構成を例示する図。
【発明を実施するための形態】
【００４４】
第一の実施形態について、図１〜図１８を用いて説明する。第一の実施形態では、シンクライアントシステムを用いて文書ファイルを新規に作成したり、作成済みのファイルを編集したりする場合について示すものである。
【００４５】
図１は、本実施形態に係るシンクライアントシステム（以下、本システム）の全体構成を示す。本システムは、シンクライアントサーバ機能を有するシンクライアントサーバ計算機とＷｅｂアプリケーションサーバ機能を有するＷｅｂサーバ計算機と、それらのサーバ計算機と通信するシンクライアント端末とで構成されるシンクライアントシステムである。なお、１台のサーバ装置が、シンクライアントサーバ機能とＷｅｂアプリケーションサーバ機能とを備えてもよい。
【００４６】
Ｗｅｂアプリケーションサーバ機能とは、Webクライアントプログラムからの要求に応じて、データもしくは、Ｗｅｂアプリケーションプログラム（以下Ｗｅｂアプリプログラム）を要求元のプログラムに送信する送信機能および、Ｗｅｂクライアントプログラムで動作するＷｅｂアプリプログラムとともに動作することでＷｅｂサーバ上のデータを更新する機能を有するデータ管理機能とする。Ｗｅｂアプリプログラムとは、Ｗｅｂクライアントプログラム上で動作するモバイルコードである。
【００４７】
このシステムは、ネットワーク４０を介して接続されたシンクライアント端末１０（以下ＴＣと記載する）、シンクライアントサーバ２０（以下ＴＣＳと称す）、Ｗｅｂサーバ３０とを含んで構成される。図では、ＴＣＳ２０とＷｅｂサーバ３０とは別々の計算機としているが、一つの計算機としてもよい。
【００４８】
また、ＴＣ１０、ＴＣＳ２０、Ｗｅｂサーバ３０は、図では１台ずつ表示しているがそれぞれ複数台の計算機がネットワークに接続されてもよい。
【００４９】
さらに、ネットワーク４０は、企業内ネットワーク、インターネット、携帯電話の通信網など複数のネットワークから構成されている。例えば、ＴＣ１０（ＴＣ１０−１）とＴＣＳ２０が企業内ネットワークに接続し、企業内ネットワークに接続するＴＣ１０とは異なるＴＣ１０（ＴＣ１０−２）とＷｅｂサーバ３０とがインターネットに接続する場合がある。
【００５０】
ＴＣ１０は、利用者のＧＵＩ操作のインタフェースを担当する装置として機能し、ＣＰＵ１１と、メモリ１２と、二次記憶装置１３と、ネットワークインタフェース１４と、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの外部デバイス用のインタフェース１５と、利用者からの操作入力を取得するキーボードなどの入力部１７とデータを出力する表示部などの出力部１８と、これらが互いに接続されるバス等の内部通信線（以下、バスという）１６を含んで構成される。
【００５１】
ＴＣＳ２０は、利用者が利用するアプリケーションプログラムの実行を担当する装置であり、ＣＰＵ２１と、メモリ２２ と、二次記憶装置２３と、ネットワークインタフェース２４と、これらが互いに接続されるバスなどの内部通信線（バスという）２５を含んで構成される。
【００５２】
Ｗｅｂサーバ３０は、ＴＣＳ２０から送信されたアプリケーションプログラム用のデータ（以下アプリ用データ）２２０の管理と、ＴＣ１０からの要求に基づき、Ｗｅｂアプリケーションプログラム（以下Webアプリプログラム）３０４およびアプリケーションプログラム用のデータ（以下アプリ用データ）３２０とをＴＣ１０へ送信するための装置であり、ＣＰＵ３１と、メモリ３２と、二次記憶装置３３ と、ネットワークインタフェース３４と、これらが互いに接続されるバスなどの内部通信線（バスという）３５を含んで構成される。
【００５３】
図２は、本システムのプログラム構成を例示する図である。
【００５４】
利用者は、本システムを用いて、アプリケーションプログラムによってファイルを作成したり、作成したファイルのデータを編集し、保存したりして、ファイル編集処理を実行する。ファイル編集処理は、「リモートのファイル編集処理」「ローカルのファイル編集処理」があり、ローカルのファイル編集処理のうち、ＴＣ１０がネットワークに接続しない場合の処理をオフライン処理と呼ぶ。
【００５５】
「リモートのファイル編集処理」とは、ＴＣＳ２０上で起動したアプリケーションプログラムがＴＣＳ２０に格納されたファイルを編集する処理である。利用者が操作する計算機がアプリケーションプログラムを実行する計算機と異なるので「リモート」と呼ぶ。
【００５６】
「ローカルのファイル編集処理」とは、Ｗｅｂサーバ３０からダウンロードしたＷｅｂアプリプログラムをＴＣ１０上で起動するＷｅｂクライアントプログラム上で動作させて、ＴＣ１０に一時的に保存したファイルを編集する処理である。利用者が操作する計算機とアプリケーションプログラムにあたるＷｅｂアプリプログラムを実行する計算機とが同じであるので「ローカル」と呼ぶ。
【００５７】
アプリケーションプログラムは、文書作成ソフトウェア、表計算ソフトウェア、プレゼンテーション資料作成ソフトウェアなどがある。以下では、アプリケーションプログラムの一つとして、プレゼンテーション資料作成ソフトウェアを用いる場合を想定する。
【００５８】
アプリケーションプログラムで作成するデータは、ファイルとして管理される。ファイルは、ファイル名で識別され、格納される記憶媒体の記憶領域名（記憶媒体の識別子とディレクトリ名の組合せなど）とファイル名との組み合わせで一意に識別される。またファイル名は、拡張子を含んでおり、例えば「ｓａｍｐｌｅ．ｔｘｔ」のファイル名のファイルの場合、「.」の後ろに続く文字列「ｔｘｔ」が拡張子となる。拡張子とアプリケーションプログラムとは対応付けることが可能であり、ファイル名を指定して、ファイルを開く指示をすることによって、ファイル名に対応付けられたアプリケーションプログラムを起動し、ファイル名が示すファイルのデータを読み込む。この仕組みは、当業者の知るところであるため、詳細説明を割愛する。
【００５９】
まず、ＴＣ１０に格納されるプログラムおよびデータについて説明する。
【００６０】
ＴＣ１０において、オペレーティングシステム（ＯＳ）１０１と、切替プログラム１０３、リモート描画クライアントプログラム１０２とＷｅｂクライアントプログラム１０４とは、メモリに適宜ロードされて記憶されている。これらのプログラムは、ＣＰＵ１１で実行されて、以下に説明する所定の機能を実現する。
【００６１】
ＯＳ１０１は、入出力機能、メモリや二次記憶装置の読み書きの管理機能、通信機能などについて、アプリケーションプログラムで利用される共通の基本的な処理を実行する。
【００６２】
切替プログラム１０３は、利用者がＴＣ１０で操作可能な操作内容を示すメニューを表示し、利用者からの指示内容に応じてリモート描画クライアントプログラム１０２もしくは、Ｗｅｂクライアントプログラム１０４を起動し処理を開始する。さらに切替プログラム１０３は、ＴＣＳ２０で動作する切替ブローカプログラム２０４からの割り込み処理に応じた処理を実行する。
【００６３】
ネットワーク状態テーブル１１０は、ＴＣ１０とＴＣＳ２０との間のネットワークの状態を測定した値（スループットやレイテンシ）やＴＣ１０とＴＣＳ２０との間の接続方式（インターネット、イントラネット、携帯電話網などのネットワークの種類や有線ＬＡＮ、無線ＬＡＮ、データ通信カード、電力線などのネットワークに接続する際の通信手段の種類）を示すデータを通信環境のデータとして格納している。なお、ネットワーク状態テーブルは、通信環境のデータとだけでなく、後述するファイル更新状態テーブル３３０と同様のデータを格納することで、一時保存データ１２０に格納したファイルの更新状態を格納してもよい。
【００６４】
一時保存データ１２０は、後述するオフライン処理で使用するＷｅｂアプリプログラムや編集用データであるアプリケーション用データを格納しており、メモリ１２上のデータが、適宜、二次記憶装置１３や外部記憶媒体１９に格納される。
【００６５】
ユーザ識別子データ１３０は、利用者を一意に識別するためのデータであり、外部記憶媒体１９に格納され、外部デバイスインタフェース１５を介して、メモリ１２に適宜ロードされて記憶されている。なお、ユーザ識別子データ１３０は、二次記憶装置１３に格納されていてもよい。
【００６６】
Ｗｅｂクライアントプログラム１０４が実行された結果得られるデータは、メモリ１２もしくは、二次記憶装置１３もしくは、外部記憶媒体１９に格納される一時保存データ１２０に保存される。また、Webクライアントプログラム１０４が後述するＷｅｂサーバ３０にアクセスし、ＷｅｂアプリプログラムとそのＷｅｂアプリプログラムが使用するアプリ用データとをネットワークインタフェースを介して取得すると、これらのデータはメモリ１２上にあるだけでなく、一時保存データ１２０として格納することもある。
【００６７】
一時保存データ１２０への保存は、ＴＣ１０で動作する切替プログラム１０３によって表示されるメニューに対するユーザ入力もしくは、ＴＣＳ２０の切替ブローカプログラム２０４からの指示に基づき切替プログラム１０３が指示するか、もしくは、リモート描画クライアントプログラム１０２によって表示されたメニューに対するユーザ入力により実行される。
【００６８】
次に、ＴＣＳ２０に格納されるプログラムおよびデータについて説明する。
【００６９】
ＴＣＳ２０において、ＯＳ２０１と、リモート描画サーバプログラム２０２と、アプリケーション監視プログラム２０３（以下アプリ監視プログラム）と、アプリケーションプログラム２０６（以下、ＡＰ２０６）とデータ管理ブローカプログラム２０５と切替ブローカプログラム２０４は、二次記憶装置２３に記憶され、これらのプログラムは、メモリ２２にロードされＣＰＵ２１で実行されて、以下に説明する機能を実現する。
【００７０】
また、起動ポリシー２３０、アプリ用データ２２０、状態テーブル２１０は、二次記憶装置２３に格納されており、それらのデータを使用するプログラムが起動される際に、メモリにロードされ、更新されたデータは、所定のタイミングで二次記憶装置２３に格納される。
【００７１】
リモート描画サーバプログラム２０２は、ＴＣ１０のリモート描画クライアントプログラムからの要求に応じて処理を実行する。アプリ監視プログラム２０３は、ＯＳ２０１を介して、リモート描画サーバプログラム２０２が取得したユーザ操作検出データを取得することをきっかけとしてアプリケーションプログラムをＴＣＳ２０で実行するか、ＴＣ１０で実行するかを判定する。切替ブローカプログラム２０４は、アプリ監視プログラム２０３、データ管理ブローカプログラム２０５、ＴＣ１０の切替プログラム１０３からの入力を待ち、データを渡してきたプログラムに応じて対応する処理を実行する。データ管理ブローカプログラム２０５は、ＴＣＳ２０に格納されるアプリ用データ２２０を状況に応じてＴＣＳ２０もしくはＴＣ１０で編集できるようにデータの複製や複製したデータの同期などを管理するプログラムである。
【００７２】
次に、Ｗｅｂサーバ３０に格納されるプログラムおよびデータについて説明する。
【００７３】
Ｗｅｂサーバ３０において、ＯＳ３０１、Ｗｅｂサーバプログラム３０３と、Ｗｅｂアプリプログラム３０４と、データ管理プログラム３０２は、二次記憶装置３３に記憶され、これらのプログラムはメモリ３２にロードされ、ＣＰＵ３１で実行されて、以下に説明する機能を実現する。
【００７４】
また、二次記憶装置３３にはアプリ用データ３２０および、このアプリ用データ３２０に対するアクセス制御用のデータ３１０、ファイル更新状態管理テーブル３３０、ステータスパラメータ管理テーブル３４０のデータが格納されている。
【００７５】
なお、各プログラムやデータは、予め各装置の二次記憶装置に格納されていても良いし、必要なときに、各装置が利用可能な媒体を介して、他の装置から上記二次記憶装置に導入されてもよい。媒体とは、たとえば、上記外部デバイスインタフェースに着脱可能な記憶媒体、または通信媒体（すなわち、上記ネットワークインタフェースに接続する有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号）を指す。また、アプリ用データ２２０、３２０は、ＮＡＳ（Network Attached Storage）に格納されて、ＮＡＳが提供するアクセス制御の機能によりユーザからのアクセスを受けてもよい。アプリ用データ３２０は、アプリ用データ２２０のうち、利用者に指定された一部もしくはすべてのファイルを複製したものである。ただし、AP206とＷｅｂアプリプログラム３０４とで、扱うデータ形式が異なる場合は、複製の際適宜データを変換しそれぞれのプログラムで扱うことができる形式とする。
【００７６】
図３を用いて、本システムを用いた第一の実施形態の処理フローを説明する。
【００７７】
ＴＣＳ２０、Ｗｅｂサーバ３０、ＴＣ１０の電源が投入され、各計算機のＯＳが起動する。ＯＳの起動後、各計算機は、以下のプログラムも起動する。ＴＣ１０は、切替プログラム１０３、ＴＣＳ２０は、アプリ監視プログラム２０３、切替ブローカプログラム２０４、データ管理ブローカプログラム２０５、Ｗｅｂサーバ３０は、データ管理プログラム３０２、Ｗｅｂサーバプログラム３０３を起動する（Ｆ１）。
【００７８】
次に、システムは、利用者が本システムを使用するためのログイン情報を取得する（Ｆ２）。ログイン情報の取得方法には、ＴＣ１０の画面に、利用者を識別する識別子（ＩＤ）とパスワードとを入力させる画面を表示し、利用者がキーボードなどの入力装置を用いてデータを入力したり、利用者の生体情報（指紋、掌紋、指の静脈や虹彩などを撮像した画像など）を取得するデバイスを介して取得したり電子タグなどに格納されたデータを読み取り装置を用いて取得したりする方法がある。
【００７９】
利用者がＴＣ１０の計算機にログインすると、ＴＣ１０の出力部１７には、利用者が次の操作を指定するための選択肢がメニューとして表示される。表示された選択肢を利用者が選択する方法や画面例は、図１７、図１８で後述する。利用者がＴＣ１０とＴＣＳ２０とを接続してＴＣＳ２０にログインする指示を出すと、ＴＣ１０とＴＣＳ２０の接続処理が開始する（Ｆ６）。リモート描画クライアントプログラム１０２とリモート描画サーバプログラム２０２によって、ＴＣ１０とＴＣＳ２０が接続すると、ＴＣＳ２０で動作するアプリケーションプログラムの起動をＴＣ１０の入力部１８を介して指定することが可能となる。接続後の詳細は、図４で後述する。
【００８０】
ＴＣ１０とＴＣＳ２０が接続している時、利用者がＡＰを起動する指示を入力するとシステムはＡＰの起動の指示を取得する（Ｆ７）。処理内容の詳細は、図４で後述し、アプリケーションプログラムの起動を利用者が指示する際に表示される画面例は図18(a)で後述する。ＴＣＳ２０は、ＡＰの起動を検知すると、ＴＣ１０とＴＣＳ２０の間のネットワーク４０の通信状況や、ＴＣＳ２０における計算機の処理能力の状態に関するデータを取得する（Ｆ８）。
【００８１】
次に、Ｆ７で取得した利用者が指示したＡＰの起動に必要な指示内容と、Ｆ８で取得したデータとを後述する起動ポリシー２３０に基づいて、ＡＰを起動する計算機がＴＣ１０になるか、ＴＣＳ２０になるかを判定する。ＴＣ１０とＴＣＳ２０とを接続するネットワーク４０がブロードバンドやＬＡＮのように回線状態が良い場合は、Ｆ１１に進み、ナローバンドのような通信回線の状態が悪い場合や、ＴＣＳ２０の計算機負荷が高い場合などは、Ｆ２１に進む（Ｆ９）。アプリケーションプログラムをＴＣＳ２０で実行するか、ＴＣ１０のブラウザ上で実行するかを利用者からの入力に基づき決定する場合、利用者からの入力を受け付ける際に表示される画面例は図18(b) で後述する。
【００８２】
ＴＣＳ２０におけるＡＰ実行のための準備処理（Ｆ１１）は、ＴＣ１０とＴＣＳ２０とを接続するネットワーク４０の回線状態が良い場合などに、ＴＣＳ２０に格納されたAP206が起動し、アプリ用データ２２０として格納されたファイルを読み込む処理である。詳細は、図４で後述する。ＴＣＳ２０でアプリケーションプログラムが起動した際に、表示される画面例は図18(c) で後述する。
【００８３】
ＴＣＳ上でのファイル編集処理（Ｆ１２）は、リモートのファイル編集処理である。ＴＣＳ２０でAP206が起動された場合、編集されるデータは、ＴＣＳ２０に格納されるアプリ用データ２２０であり、データの保存処理は当業者の知るところであるため、ここでは詳細説明を割愛する。
【００８４】
編集されたファイルの保存処理（Ｆ１３）は、編集されたファイルを保存する利用者の指示に応じて、編集結果をＴＣＳ２０に格納されたアプリ用データ２２０として上書き保存するもしくは、別の名称で保存する処理である。
【００８５】
保存処理が終了した後、利用者の操作に応じて、AP206を終了し、ＴＣＳ２０をログオフする（Ｆ１４）。
【００８６】
一方、通信回線の状態が悪い場合などは、ＴＣ１０でアプリケーションプログラムを実行するための準備処理として、編集環境の準備やＷｅｂクライアントプログラム１０４の起動を実行する。詳細は図５を用いて後述する（Ｆ２１）。ＴＣ１０で起動するＷｅｂクライアントプログラム上でＷｅｂアプリプログラムが動作する際に表示される画面例は、図18(d)と図22で後述する。
【００８７】
Ｆ２２は、ローカルのファイル編集処理である。
【００８８】
ローカルで編集されたファイルは、利用者の指示に応じて保存処理される。この保存処理では、利用者が操作する計算機だけでなく、操作する計算機とは異なる計算機で保存処理が実行されるため、リモートでの保存処理と呼ぶ（Ｆ２３）。
【００８９】
起動しているＷｅｂクライアントプログラム１０４は、利用者の操作に応じて終了する（Ｆ２４）。
【００９０】
次に、図４を用いて、図３で示したＦ６からＦ１１までの処理を、ＴＣ１０に格納されたプログラムとＴＣＳ２０に格納されたプログラムとが実行する処理のシーケンスに従い説明する。図４の破線で囲んだ四角の中の処理は、図３のＦ６〜Ｆ１１に対応している。
【００９１】
なお、シーケンス図やフローチャートにおける各ステップは、ステップ１０１をＳ１０１のようにステップをSと略して記載する。また、同じ番号は、処理内容が同じ場合を示す。さらに、以下に説明する処理は、CPUがそれぞれの機能を実現するプログラムを実行することにより、実現されるものであるが、説明の便宜上、プログラムを実行主体として説明する。
【００９２】
Ｆ６の処理の詳細を説明する。
【００９３】
利用者がＴＣ１０を用いてＴＣＳ２０へ接続するまでのシーケンスを説明する。利用者が切替プログラム103を用いてＴＣＳ２０への接続を指定すると、リモート描画クライアントプログラム102が起動して、ＴＣＳ２０への接続処理が開始する（SQ111）。利用者がＴＣ１０を用いてＴＣＳ２０へ接続し利用する場合、以下の技術が、画面転送型のシンクライアントシステムとして知られている。
【００９４】
リモート描画クライアントプログラム102が利用者からの入力情報（キーボードおよびマウスの操作など）を処理し、リモート描画サーバプログラム202に転送する（SQ113）。リモート描画サーバプログラム202は、リモート描画クライアントプログラム102より受け取った入力情報を、OS201を介してＴＣＳ２０上で動作するプログラムへ渡し、入力情報に応じた処理結果を利用者への出力情報として、ＴＣ１０のリモート描画クライアントプログラム102に転送する（SQ115）。リモート描画クライアントプログラム102は、リモート描画サーバプログラム202から受け取った利用者への出力情報（ディスプレイ出力或いはスピーカ出力など）を処理する。このように、画面転送型のシンクライアントシステムでは、リモート描画クライアントプログラムとリモート描画サーバプログラムとのやり取りによりＴＣ１０からの入力情報を使って、ＴＣＳ２０上で処理した結果をＴＣ１０に出力する。
【００９５】
Ｆ７の処理の詳細を説明する。
【００９６】
利用者がＴＣ１０の入力装置を用いて操作した内容を示す利用者からの入力情報 (ユーザ操作)は、リモート描画クライアントプログラム１０２からリモート描画サーバプログラム２０２へ送られる（ＳＱ１１７）。リモート描画サーバプログラム２０２は、ＯＳ２０１を介して受信したユーザ操作をアプリ監視プログラム203に渡し（SQ119）、アプリ監視プログラム２０３は、受け取ったユーザ操作に基づきユーザ操作検出データを生成する（ユーザ操作検出データの詳細は図１２のＳ２３２で説明する）。
【００９７】
ユーザ操作とは、ＴＣ１０の入力装置を利用者が操作することによって入力することであり、キーボードからの文字入力の内容や、ＴＣ１０の出力装置、たとえば画面に表示されたＧＵＩに対する入力がある。GUIに対する入力は、画面に表示された領域（ボタン）をマウスのようなポインティングデバイスでクリックすることで次に実行する処理内容を指定したり、表示されるファイル名やアイコンを、マウスの右ボタンのクリックにより選択し、その結果表示されるメニューに示された操作内容を指定したり、アイコンと呼ぶファイルを示す部品をドラッグアンドドロップと呼ぶ操作で移動させることで、異なるディレクトリの間でファイルを複製させたり移動させたりする処理がある。操作内容は、表示されたファイル名もしくは、キーボードを用いて入力したファイル名を指定して、ファイル名の拡張子にあらかじめ関連付けられたアプリケーションを起動する指示や、起動中のアプリケーションプログラムが呼び出しているファイルに対する変更や変更を保存する指示などがある。
【００９８】
Ｆ８では、アプリ監視プログラム２０３が、後述する状態テーブル２１０にデータを格納する（詳細は図１２のＳ２３３で説明する）。Ｆ９では、起動ポリシー２３０に基づき、ＴＣＳ２０でAP206を起動するかどうかを判定する（詳細は図１２のＳ２３４で説明する）。
【００９９】
アプリ監視プログラム２０３の判定の結果が、ＴＣＳ２０である場合、AP206を起動し（ＳＱ１２１）、ＴＣ１０から送られてくるユーザ操作は、リモート描画サーバプログラム２０２とリモート描画クライアントプログラム１０２を介して、起動されたAP206に引き渡される（ＳＱ１２３、ＳＱ１２５）（Ｆ１１）。
【０１００】
次に、図５を用いて、図３で示したＦ２１の処理を、ＴＣ１０に格納されたプログラム、ＴＣＳ２０に格納されたプログラムとＷｅｂサーバ３０に格納されたプログラムとが実行する処理のシーケンスに従い説明する。Ｆ２１は、Ｆ９において、アプリ監視プログラム２０３が「ファイル編集処理を実行する計算機がＴＣ１０である」と判定した結果実行される処理である。なお、データ保存プログラム５０２は、本実施例の構成要素には含まれず、第二の実施例で説明する。
【０１０１】
アプリ監視プログラム２０３は、ユーザ操作検出データを切替ブローカプログラム２０４へ渡す（この処理は図１２  Ｓ２３７で後述）。切替ブローカプログラム２０４は、ユーザ操作検出データをデータ管理ブローカプログラム２０５へ渡す（この処理は図１３  Ｓ２４３で後述）。データ管理ブローカプログラム２０５は、ユーザ操作検出データとアプリ用データ２２０から参照したファイルとユーザ識別子などをデータ管理プログラム３０２へ渡す（この処理は図１４  Ｓ２５３で後述）。
【０１０２】
データ管理プログラム３０２は、受け取ったデータに基づき、ファイルをアプリ用データ３２０に格納し（この処理の詳細は図１５  Ｓ３２２で後述）、ユーザ識別子とユーザ操作検出データなどに基づき、後述するアクセス先情報と切替パラメータを生成し、状態テーブル３３０にアクセス先情報を格納する（この処理は図１５  Ｓ３２３で後述）。データ管理プログラム３０２は、生成されたアクセス先情報と切替パラメータをデータ管理ブローカプログラム２０５に渡す（この処理は図１５  Ｓ３２４で後述）。
【０１０３】
データ管理ブローカプログラム２０５は、受け取ったアクセス先情報を状態テーブル２１０に格納し、アクセス先情報と切替パラメータとを切替ブローカプログラム２０４へ渡す（図１４  Ｓ２５６で後述）。
【０１０４】
切替ブローカプログラム２０４は、アクセス先情報と切替パラメータとを、切替プログラム１０３へ送る（図１３  Ｓ２４５で後述)。
【０１０５】
切替プログラム１０３は、切替ブローカプログラム２０４からアクセス先情報と切替パラメータとを受け取ると、切替パラメータに基づきＴＣ１０で動作するプログラムを切り替えるための切替制御用データを生成し、切替制御用データに基づき、Ｗｅｂクライアントプログラム１０４を起動させる（図１１（Ｂ）  Ｓ１３９７で後述）。
【０１０６】
Ｗｅｂクライアントプログラム１０４は、切替プログラム１０３が受け取ったアクセス先情報に基づき、Ｗｅｂサーバ３０へアクセスする。この時ユーザ識別子をあわせて送信し、Ｗｅｂサーバ３０のアクセス制御用データ３１０を用いれば、Ｗｅｂサーバ３０へのシングルサインオンが可能である。
【０１０７】
Ｗｅｂサーバプログラム303は、Ｗｅｂクライアントプログラム１０４からのリクエスト受信し、リクエストに基づきＷｅｂアプリプログラム304を用いてアプリ用データ３２０のデータを参照する（SQ147、SQ149）。参照したデータおよびＷｅｂアプリプログラムをレスポンスとして送信する。
【０１０８】
この結果、Ｗｅｂクライアントプログラム１０４には、ＷｅｂアプリプログラムとデータとがＴＣ１０にダウンロードされる(SQ151)。このようにして、ＴＣ１０でＷｅｂクライアントプログラム104が起動し、Ｗｅｂサーバプログラム303を介して、Ｗｅｂアプリプログラム304がＴＣ１０のＷｅｂクライアントプログラム１０４上とＷｅｂサーバ３０上で起動している。以上の処理により、TC10におけるAP実行のための準備処理が完了する。
【０１０９】
次に、図６を用いて、図３で示したＦ２３の処理を、ＴＣ１０に格納されたプログラム、ＴＣＳ２０に格納されたプログラムとＷｅｂサーバ３０に格納されたプログラムとが実行する処理のシーケンスに従い説明する。
【０１１０】
図５のＦ２１の処理が完了すると、Ｗｅｂクライアントプログラム１０４上で動作するＷｅｂアプリプログラムは、利用者からの入力を取得し、入力に応じたＷｅｂサーバプログラム３０３の処理結果を表示し、利用者が指示するファイルに対する編集処理を実行する。
【０１１１】
ファイルに対する更新の指示が入力されると、Ｗｅｂクライアントプログラム１０４は、一時保存データ１２０として格納されたファイルに対する更新データを、Ｗｅｂサーバ３０へ送信し（ＳＱ１６１）、Ｗｅｂサーバプログラム３０３は更新データを受信し、受信した更新データに基づきアプリ用データ３２０を更新する。
【０１１２】
データ管理プログラム３０２は、アプリ用データ３２０のデータの更新状況を監視しており、アプリ用データ３２０が更新されることを検知すると更新フラグをＯＮにし、ファイル更新状態管理テーブル３３０を更新する。データ管理プログラム３０２は、アプリ用データ３２０の更新を監視していてもよいし、アプリ用プログラム３０４からデータの更新要求の通知を受信してもよい。
【０１１３】
次にデータ管理プログラム３０２は、更新されたアプリ用データと更新日時や更新者などのデータをデータ管理ブローカプログラム２０５へ送信する（ＳＱ１６７）。
【０１１４】
データ管理ブローカプログラム２０５は、受信したデータに基づき、アプリ用データ２２０と状態テーブル２１０とを更新し（図１４  Ｓ２５７で後述）、更新完了をデータ管理プログラム３０２に通知する（図１４  Ｓ２５８で後述）。データ管理プログラム３０２は、更新完了の通知を受信すると（図１５  Ｓ３２８で後述）、アプリ用プログラム３０４にデータ更新の完了を通知し（図１５  Ｓ３２９で後述）、Ｗｅｂサーバプログラム３０３、Ｗｅｂクライアントプログラム１０４を介して利用者にデータの更新完了を知らせる。
【０１１５】
次に、ＴＣ１０、ＴＣＳ２０、Ｗｅｂサーバ３０上で動作する各プログラムの処理フローを図７〜図１０のテーブル構成図と図１１〜図１６のフローチャートとを用いて説明する。
【０１１６】
まず図７〜図１０で示したテーブル構成図に格納されるデータの詳細を説明する。
【０１１７】
図７を用いて、TCS２０に格納される起動ポリシー２３０のテーブル構成を説明する。
【０１１８】
起動ポリシー２３０は、テーブル２３０に格納されるポリシーを識別するＩＤ欄、アプリケーションプログラムを識別するID（以下、アプリＩＤ）を格納するアプリID欄２３１、アプリケーションプログラムを起動する計算機を識別するアプリケーション起動計算機欄２３３、条件テーブル２５０のデータを識別する条件IDを格納する条件ID欄２３２からなる。アプリケーション識別テーブル２４０は、アプリＩＤを格納するアプリＩＤ欄２４１と、アプリＩＤで識別されるアプリケーションプログラムの実行プログラムがＴＣＳ２０に格納されている領域を示す実行プログラムのＴＣＳ上の格納先欄２４２、２４２で示すプログラムと同等の機能を有するＷｅｂアプリケーションプログラムが格納されている領域を示すＷｅｂサーバ上の格納先欄２４３と、それらのプログラムに対応付けられているファイルの拡張子を格納する拡張子欄２４４からなる。
【０１１９】
条件テーブル２５０は、アプリケーションを起動する計算機を判定する際の条件を格納する。条件は、アプリケーションプログラムを起動する際の、ＴＣ１０、ＴＣＳ２０、ＴＣ１０とＴＣＳ２０との間のネットワークの状態などを示すパラメータを一つ以上組み合わせたもので、条件ＩＤで区別する。パラメータには、通信環境に関するデータ、アプリケーションプログラムを起動する際に使用するファイルに関するデータ（ファイルサイズ、ファイルの種類など）、ＴＣ１０及びＴＣＳ２０の計算機処理能力の状態（メモリ使用量、メモリ使用率、CPUの使用率、起動しているアプリケーションプログラムの数、実行されているプロセス数、画面に表示しているウィンドウの数、あらかじめ指定したアプリケーションプログラムが起動しているかどうかを示す識別子、表示している画面の解像度や表示させる色のビット数など）がある。
【０１２０】
条件テーブル２５０のテーブル構成の一例を示す。条件ID欄２５１は条件ＩＤを格納し、通信環境ＩＤ欄２５２は、通信環境テーブル２６０に格納する通信環境に関するデータを識別するＩＤを格納し、ファイル種別欄２５３は、アプリケーションプログラムが読み込むファイルの種別を格納する。
【０１２１】
通信環境テーブル２６０は、ＴＣ１０とＴＣＳ２０との間の通信環境に関するデータとして、通信手段、通信網の種類、ネットワークの状態を測定した値などを組み合わせて通信環境を区分して、区分した通信環境毎に通信環境ＩＤを付与する。
【０１２２】
図８を用いて、TCS２０に格納される状態テーブル２１０のテーブル構成を説明する。
【０１２３】
状態テーブル２１０は、アプリ用データ２２０に格納されるファイルを識別する識別子を格納するインデックス欄２１１、ＴＣＳ２０でファイルを識別するファイル名欄２１２、ファイル名欄で示すデータがＴＣＳ２０のサーバ内に格納されているディレクトリを示すＴＣＳサーバ内ディレクトリ欄２１３、ファイル名欄２１２で示すデータを読み込み実行する、アプリケーションプログラムを識別するアプリＩＤを格納するアプリＩＤ欄２１４、インデックス欄３３１もしくはファイル名欄３３２に格納されるデータで識別されるデータをＷｅｂサーバ３０経由で編集する際にＷｅｂクライアントプログラムが指定するアクセスするために必要なアクセス先情報を格納するインターネットアドレス欄２１５、ＴＣＳ２０に格納されているデータが、Ｗｅｂサーバ３０コピーしたデータもしくはＴＣ１０に格納されたデータとの同期ができている場合（「済」を示すデータが格納される）と、同期ができていない場合（「未済」を示すデータが格納される）を識別するデータを格納するシンクロ欄２１６、後述するステータス番号を格納するステータス番号欄２１７、Ｗｅｂサーバ３０のデータと最後に同期した日時を格納する最終更新日時欄２１８、インデックス欄２１１もしくはファイル名欄２１２に格納されるデータで識別されるデータをＷｅｂサーバ３０を介して編集可能な利用者を識別するユーザIDを格納するUserID欄２１９を含んで構成される。
【０１２４】
さらに、状態テーブル２１０は、条件テーブル２５０に格納されるデータと同じ種類のデータを持つ（図示せず）。
【０１２５】
図９を用いて、Webサーバ３０に格納されるファイル更新状態管理テーブル３３０のテーブル構成を説明する。ファイル更新状態管理テーブル330には、ＴＣＳ２０に格納されているファイルが、Ｗｅｂサーバ３０やＴＣ１０にコピーされているか、コピー後編集されているか、編集されたデータがＴＣＳ２０のデータと同期されているか、ＴＣ１０で新規に作成されたデータが、Ｗｅｂサーバ３０やＴＣＳ２０に格納されているか、などのファイルの複製や改変の状態や同期の状態を管理するためのデータを格納する。
【０１２６】
ファイル更新状態管理テーブル３３０は、アプリ用データ３２０に格納されるファイルを識別する識別子を格納するインデックス欄３３１、ＴＣＳ２０でファイルを識別するファイル名欄３３２、ファイル名欄で示すデータがＴＣＳ２０のサーバ内に格納されているディレクトリを示すＴＣＳサーバ内ディレクトリ欄３３３、ファイル名欄３３２で示すデータを読み込み実行する、アプリケーションプログラムを識別するアプリＩＤを格納するアプリＩＤ欄３３４、インデックス欄３３１もしくはファイル名欄３３２に格納されるデータで識別されるデータをＷｅｂサーバ３０経由で編集する際にＷｅｂクライアントプログラムが指定するアクセスするために必要なアクセス先情報を格納するインターネットアドレス欄３３５、Ｗｅｂサーバ３０上のデータが、ＴＣＳ２０に格納されているデータもしくはＴＣ１０にダウンロードしたデータとの同期ができている場合（「済」を示すデータが格納される）と、同期ができていない場合（「未済」を示すデータが格納される）を識別するデータを格納するシンクロ欄３３６、後述するステータス番号を格納するステータス番号欄３３７、アプリ用データ３２０に格納されるファイルが最後に更新された日時を格納する最終更新日時欄３３８、インデックス欄３３１もしくはファイル名欄３３２に格納されるデータで識別されるデータをＷｅｂサーバ３０で編集する指示を実行した利用者を識別するユーザIDを格納するUserID欄３３９を含んで構成される。ＴＣＳサーバ内ディレクトリ欄３３３のデータは、ＴＣＳ２０が複数台ある場合は、それぞれのＴＣＳ２０を識別するデータを含んだ値とする。アプリ用データ３２０に格納されたファイルが、格納後に一度も編集されていない場合、すなわちステータスＮｏが１の場合は、最終更新日時欄３３８の日時は、アプリ用データ３２０に複製された日時を示す。
【０１２７】
ファイル更新状態管理テーブル３３０と後述するステータスパラメータ管理テーブル３４０は、Ｗｅｂサーバ３０に格納されているが、ＴＣＳ２０にも格納され同期をとられてもよく、ＴＣＳ２０とＷｅｂサーバ３０のいずれからもアクセス可能なネットワークディスクなどに格納されても良い。
【０１２８】
図１０を用いて、ステータスパラメータ管理テーブル３４０のテーブル構成を説明する。
【０１２９】
ステータスパラメータ管理テーブル３４０は、ＴＣＳ２０に格納されているアプリ用データのファイルの複製がどの計算機もしくは記憶媒体上にあり、ファイルに対するアクセス状況がどのような状態かを説明したＳｔａｔｕｓ説明欄３４２、複製されたデータが変更されているかどうかのファイルの変更状態を示すファイル状態欄３４３と、Ｗｅｂサーバ３０に格納されているアプリ用データとＴＣ１０にダウンロードされて、一時保存データとして格納されたファイルとの間でデータの同期が完了しているかどうかを示すシンクロ状態欄３４４とを、ステータス番号欄３４０に格納したステータス番号毎に格納している。
【０１３０】
また、TC10以外の端末にデータがダウンロードされる場合は、どの端末にダウンロードされているかを示すデータを含んでもよい。さらに、ファイルに対するアクセス状態の1つとして、端末にダウンロードしたデータが、端末から削除されたかどうかを示す状態を含んでも良い。
【０１３１】
次にＴＣ１０で動作するプログラムが実行する処理を説明する。ＴＣ１０のＯＳが起動すると、切替プログラム１０３が起動する。切替プログラム１０３は、ポインティングデバイスからの入力に応じて、利用者からの入力をリモート描画クライアントプログラム１０２もしくは、Ｗｅｂクライアントプログラムもしくは、切替プログラムのいずれかのプログラムに対して切り替えて渡す。また、切替プログラム１０３は、ポインティングデバイス以外からの入力デバイスからの入力を渡すプログラムを切り替える。リモート描画クライアントプログラム１０２は、切替プログラム１０３が起動した後、利用者からの指示があると起動する。Ｗｅｂクライアントプログラムは、切替プログラム１０３が起動した後、切替プログラム１０３からの制御もしくは、利用者からの指示があると起動する。
【０１３２】
図１１（ａ）、図１１（ｂ）を用いて、切替プログラム１０３が実行する処理を説明する。
【０１３３】
切替プログラム１０３は、利用者がＴＣ１０の電源を投入することでＯＳが起動され、ログイン処理が実行されると、起動する。切替プログラム１０３が起動すると、切替プログラムは、メニューを表示し利用者からの入力を待つ（Ｓ１３１）。利用者が選択したメニューに応じた処理を実行する。終了処理が指示されれば（Ｓ１３２）、切替プログラムを終了するとともに、ログアウトする。
【０１３４】
選択したメニューに応じて、リモート描画クライアントプログラム１０２を起動し、ＴＣＳ２０に接続する処理か（Ｓ１３６）、Ｗｅｂクライアントプログラム１０４を起動し、Ｗｅｂサーバ３０に接続する処理か（Ｓ１３７）、オフライン処理か（Ｓ１３８）を実行する。これらいずれかの処理を実行した後は、入力部１７からのユーザ操作もしくは、ネットワークインタフェース１４を介して入力されるＴＣＳ２０からの割り込み入力を待ち（Ｓ１３９）、入力に応じた処理を実行する。リモート描画クライアントプログラム１０２でＴＣＳ２０に接続する場合もしくは、Ｗｅｂクライアントプログラム１０３でＷｅｂサーバ３０に接続する場合は、通信手段を設定する（Ｓ１３４）。
【０１３５】
図１１（ｂ）に、図１１（ａ）のステップ１３９の詳細フローを示す。ユーザ操作もしくは、ＴＣＳ２０からの入力がないかを待ち（Ｓ１３９１）、入力があれば、リモート描画クライアントプログラム１０２、Ｗｅｂクライアントプログラム１０４のいずれも終了であるかどうかを判定する（Ｓ１３９２）。終了ならば、図４のＳ１３２に戻り、終了でなければ、ユーザ操作による入力かＴＣＳからの入力かによって処理を分岐する（Ｓ１３９３）。入力が、ユーザ操作による入力の場合はＳ１３９４ 、ＴＣＳ２０からの入力の場合Ｓ１３９７へ進む。
【０１３６】
ステップ１３９４では、ユーザ操作による入力がリモート描画クライアントプログラム１０２によって表示された領域（図22(a)の1607、図22(b)の1703や1705）であるか、Ｗｅｂクライアントプログラム１０４によって表示された領域（図22(a)の1601、図22(b)の1704や1706）であるか、切替プログラム１０４によって表示された領域（図22(a)の1608や1609、図22(b)の1702や1707）であるかに応じて、対応する処理を実行する。リモート描画クライアントプログラム１０２によって表示された領域に対する入力である場合は、Ｓ１３９５ に進み、入力データをリモート描画サーバプログラム２０２へ送信する。Ｗｅｂクライアントプログラム１０４によって表示された領域に対する入力である場合は、Ｓ１３９６に進み、Ｗｅｂクライアントプログラムに対する入力として処理を実行する。切替プログラム１０４によって表示された領域に対する入力である場合は、切替プログラムが提供する処理を実行する（Ｓ１３９８）。
【０１３７】
ＴＣ１０の画面に、これら三つの領域が表示されている場合の画面例を図２２に示す。ファイルアイコンのドラッグアンドドロップの操作のように、これらの領域をまたがる操作の場合は、ドラッグアンドドロップするファイルアイコンが表示されていた領域に対する処理とみなし、ドロップ先の領域からはファイルのコピー先のディレクトリ名を検出する。例えば、領域１７０３に表示されたファイルのアイコンを領域１７０２にドラッグアンドドロップする操作で、アイコンの示すファイルをオフライン準備処理する操作とみなしたり、領域１７０２に表示されたアイコンが示すファイルを領域１７０３にドラッグアンドドロップする操作で、アイコンの示すファイルをＴＣＳ２０へアップロードする操作と見なしたりする。
【０１３８】
ステップ１３９７では、ＴＣＳ２０の切替ブローカプログラム２０４から送信されたアクセス先情報と切替パラメータとを受信する。受信した切替パラメータに基づき、切替制御用データを生成する。
【０１３９】
例えば、切替パラメータが「Open」の場合、Ｗｅｂクライアントプログラム１０４を起動し、アクセス先情報に基づきＷｅｂサーバ３０にアクセスさせるためのコマンドを切替制御用データとして生成し、そのコマンドを実行する。一方、切替パラメータが「Copy」の場合、アクセス先情報に基づきＷｅｂサーバ３０にアクセスし、オフライン処理で必要なＷｅｂアプリプログラムのデータと編集対象のデータとをＷｅｂサーバ３０より取得し、一時保存データ１２０に格納するためのコマンドを切替制御用データとして生成し、そのコマンドを実行する。アクセス先情報は、一時保存データ１２０に格納してもよい。
【０１４０】
切替プログラム１０３と切替ブローカプログラム２０４とは、リモート描画クライアント１０２とリモート描画サーバ２０２とが接続を確立した際に、それとあわせて接続を確立する。
【０１４１】
このようにして本実施例では、利用者が、ＴＣ１０の入力装置を用いて、アプリケーションプログラムを起動するための操作に関する指示をした場合、切替プログラム１０３は、ＴＣＳ２０で動作するAP206がアプリ用のデータを操作するか、Ｗｅｂサーバ３０で動作するＷｅｂアプリプログラム３０４がデータを操作するかを判定し、前者なら、リモート描画クライアントプログラム１０２によって、リモート描画サーバプログラム２０２から送られてくる画面データを表示するように、後者なら、ＴＣ１０に搭載されたＷｅｂクライアントプログラム１０４を起動するように、制御を切り替える。リモート描画サーバプログラムから送られてくる画面データの内容は、ＴＣＳ２０でAP206が起動したこと表わす画面データである。
【０１４２】
次にＴＣＳ２０で動作するプログラムが実行する処理を説明する。
【０１４３】
図１２を用いて、アプリ監視プログラム２０３が実行する処理を説明する。
【０１４４】
アプリ監視プログラム２０３は、リモート描画サーバプログラム２０２、データ管理ブローカプログラム２０５、切替ブローカプログラム２０４とともに、OSが起動された後起動される。
【０１４５】
アプリ監視プログラム２０３は、ＯＳ２０１を介して、リモート描画クライアントプログラム１０２から送られたユーザ操作を監視する（Ｓ２３１）。
【０１４６】
ユーザ操作があるとその内容に基づき「ユーザ操作検出データ」を生成し、そのデータに応じて操作内容を判定する（Ｓ２３２）。
【０１４７】
ユーザ操作検出データは、「ファイル名」「ファイルの格納先（フルパスのディレクトリ名やメモリ上のアドレス）」「ファイル名に基づくアプリＩＤ」「操作内容」及び、「ファイルのコピーや移動の操作の場合は、ファイルをコピーする格納先」からなる。操作内容は、（１）アプリケーションプログラムの起動を伴う処理と（２）ファイルのコピーを伴う処理と（３）それ以外とに分けられ、（１）の場合は、S233に進み、（２）の場合はS237へ進む（３）場合は、S231に戻る。
【０１４８】
S233では、ＴＣＳ２０の負荷状態やＴＣ１０とＴＣＳ２０とを接続するネットワーク４０の負荷状態を検出する。ステップ２３３で検出するデータは、条件テーブル２５０で示すようなネットワーク４０の状態やTCS２０の負荷状態を示すデータであり、状態テーブル２１０に格納される。ネットワークの負荷状態は、後述するＳ２４７でネットワーク状態テーブル１１０に格納されているものを参照してもよい。
【０１４９】
ステップ２３４では、起動ポリシー２３０、ユーザ操作検出データの内容、ＴＣＳ２０とネットワーク４０の負荷状態とに基づき、アプリケーションプログラムを起動する計算機がどの計算機になるかを判定し、S２３５で判定の結果に基づき処理を分岐する。
【０１５０】
起動ポリシーに基づき、アプリケーションプログラムを起動する計算機を判定する具体例を示す。
【０１５１】
利用者が「bbb.ppt」という名称のファイルを編集するため、画面に表示されたファイルのアイコンをダブルクリックした場合を例にとる。
【０１５２】
ユーザ操作検出データは、アイコンが示すファイル名に基づき、ファイル名「bbb.ppt」を取得し、アイコンが表示されている場所に基づき、ファイルの格納先「c:\Doc\home\dir1」を取得し、ファイルの拡張子「ppt」とテーブル240に基づき、ファイルに対応づけられたアプリケーションプログラムを特定し、そのアプリID「A1」を取得し、操作内容は、ダブルクリックの操作に基づき、アプリケーションプログラムを起動してファイルを開く「Open」の処理であることを取得する。
【０１５３】
TCS２０とネットワーク４０の負荷状態の一例として、通信環境IDに「ブロードバンド」か「非ブロードバンド」を取得し、TCS２０の負荷を示す指標として、アプリケーションプログラムが開くファイルの種別として「描画ソフト」か「動画ファイル」を取得する。
【０１５４】
「ブロードバンド」で「描画ソフト」ならば、テーブル２５０に基づき、条件IDはC1となり、「非ブロードバンド」で「描画ソフト」ならば条件IDはC2, 「ブロードバンド」で「動画ファイル」ならば条件IDはC3となる。
【０１５５】
このようにして取得したアプリIDと条件IDを起動ポリシー２３０に基づき、判定すると、アプリＩＤがＡ１、条件ＩＤがＣ１の場合は、アプリケーションプログラムは、ＴＣＳで起動し、アプリＩＤがＡ１、条件ＩＤがＣ２の場合は、アプリケーションプログラムは、ＴＣで起動するという判定結果となる。
【０１５６】
ステップ２３５では、このようにして得た判定の結果、ＴＣＳ２０でアプリケーションを起動する場合はＳ２３６に進みAP206を起動し、TC２０でアプリケーションプログラムを起動しないすなわち、ＴＣ１０で起動する場合はＳ２３７に進み、切替ブローカプログラム２０４にユーザ操作検出データの内容を渡す。
【０１５７】
なお、アプリ監視プログラム２０３は、図１８（ｂ）で示す画面を表示し、利用者が１４０２を選択した場合にはＳ２３７、１４０３を選択した場合にはＳ２３６に進んでもよい。
【０１５８】
図１３を用いて、切替ブローカプログラム２０４が実行する処理を説明する。
【０１５９】
切替ブローカプログラム２０４は、ほかのプログラムからの割り込み処理を待ち（S２４１）、割り込みしてきたプログラムに応じて処理を実行する。アプリ監視プログラム２０３からの割り込みがある場合は（S２４２）、データ管理ブローカプログラム２０５にユーザ操作検出データを渡し（S２４３）、データ管理ブローカプログラム２０５から割り込みがある場合は（Ｓ２４４）、切替プログラム１０３に切替パラメータとアクセス先情報とを送信し（Ｓ２４５）、切替プログラム１０３から割り込みがある場合は（Ｓ２４６）、ネットワークの状態に関するデータを受け取り、ネットワーク状態テーブル１１０に書き込む（Ｓ２４７）。
【０１６０】
図１４を用いて、データ管理ブローカプログラム２０５が実行する処理を説明する。
【０１６１】
データ管理ブローカプログラム２０５は、ほかのプログラムからの割り込み処理を待ち（Ｓ２５１）、割り込みしてきたプログラムに応じて処理を実行する。切替ブローカプログラム２０４からの割り込みがある場合は（Ｓ２５２）、ユーザ操作検出データに基づいて、アプリ用データ２２０から読み出したデータとユーザ操作検出データとを、データ管理プログラム３０２に渡すとともにファイルの更新状況を状態テーブル２１０に格納する（Ｓ２５３）。状態テーブル２１０は、アプリケーション用データ２２０に格納されるファイルの更新状態とＴＣ１０とＴＣＳ２０との間のネットワークの接続状況の状態とに関するデータを格納している。
【０１６２】
状態テーブル２１０に格納されるデータについて図８を用いて説明する。
【０１６３】
インデックス２１１に格納される値は、ユニークな値となるようにデータ管理ブローカプログラム２０５が生成してもよいし、ＴＣ１０でファイルを編集したり、新規に作成したりして生成されたファイルがＷｅｂサーバ３０を介してアップロードされて、アプリ用データ２２０に格納されるタイミングで、Ｗｅｂサーバ３０のデータ管理プログラム３０２が採番したデータをもちいてもよい。データ管理ブローカプログラム２０５が採番した値とデータ管理プログラム３０２が採番した番号とは、番号の採番規則によって区別できるようにすると、オリジナルのデータがＴＣＳ２０のデータなのか、ＴＣ１０で編集、作成したデータなのかを区別することができる。
【０１６４】
ファイル名２１２、ＴＣサーバ内ディレクトリ２１３、アプリＩＤ２１４は、ユーザ操作検出データに基づき生成する。
【０１６５】
シンクロ欄２１６には、ファイルをＷｅｂサーバ３０に送信した時点では、「済」を示す値が格納され、Ｗｅｂサーバ３０からＴＣ１０にデータがダウンロードされると、Ｗｅｂサーバ３０からの通知に基づき「済」から「未済」を示す値に変更される。
【０１６６】
ＳｔａｔｕｓＮｏ欄２１７は、アプリ用データ２２０に格納されたデータに対する利用者からのアクセス状況示す「ステータスナンバー」を設定する。ステータスナンバーは、テーブル３４０に示す内容応じた値である。テーブル３４０は、Ｗｅｂさーば３０だけでなくＴＣＳ２０にも格納されている。最終更新２１８は、アプリ用データ２２０に格納されたファイルに対して更新された最終の日時である。ユーザＩＤ２１９は、ＴＣＳ２０にログインする利用者を識別するユーザ識別子である。１台のＴＣＳ２０に対して、複数の利用者がアクセスする場合、格納したファイルに対するアクセス制御を行うため、アクセス可能な利用者の識別子を格納する。
【０１６７】
図１４の説明に戻る。
【０１６８】
データ管理プログラム３０２からの割り込みがある場合は（Ｓ２５４）、図１５で後述する更新フラグを判定する（Ｓ２５５）。更新フラグが「ＯＦＦ」ならばＳ２５６ に進み、更新フラグが「ＯＮ」ならば、Ｓ２５７に進む。ステップ２５６では、切替ブローカプログラム２０４にアクセス先情報と切替パラメータとを送信し、アクセス先情報を状態テーブル２１０にに保存する。一方、ステップ２５７では、ファイルの更新結果をアプリ用データ２２０に格納し、ファイルの更新状況を状態テーブル２１０に格納する。ステップ２５８では、データ管理プログラム３０２に更新結果を送信する。
【０１６９】
次にＴＣＳ２０で動作するプログラムが実行する処理を説明する。
【０１７０】
Ｗｅｂサーバ３０のOSが起動するとＷｅｂサーバプログラム３０３とデータ管理プログラム３０２は、起動する。Ｗｅｂアプリプログラム３０４は、Webクライアントプログラム104からのリクエストに応じてＷｅｂサーバプログラム３０３がレスポンスする際に呼び出されてコンテンツの一部としてWebクライアントプログラム１０４へ送信され、ＴＣ１０上で実行される。これらのＷｅｂアプリプログラムを用いた動作については、当業者の知るところであるため詳細には述べない。Ｗｅｂアプリプログラム３０４には、動画再生プログラム、ワープロソフト、表計算ソフトや描画ソフトなどがあり、通常のアプリケーションプログラムと類似の機能を有するものもある。
【０１７１】
図１５を用いて、データ管理プログラム３０２が実行する処理を説明する。
【０１７２】
データ管理プログラム３０２は、Ｗｅｂアプリプログラムにおけるデータの更新を監視しており（Ｓ３２０）、更新がある場合は、更新フラグを「ＯＮ」にしてＳ３２５ へ進み、更新がない場合はＳ３２１ へ進む。
【０１７３】
更新フラグとは、アプリ用データ３２０に対する更新状況を示すフラグである。更新された場合「ＯＮ」に設定し、更新結果がアプリ用データ２２０と同期をとると「ＯＦＦ」に設定する。
【０１７４】
Ｓ３２１では、データ管理プログラム３０２は、データ管理ブローカプログラム２０５からの割り込みを待ち（Ｓ３２１）、割り込みがあれば、アプリ用データとユーザ識別子とを受信し、アプリ用データは、アプリ用データ３２０に格納し、ユーザ識別子とユーザ操作検出データに基づきファイル更新状態管理テーブル３３０にデータを格納する。
【０１７５】
ファイル更新状態管理テーブル３３０に格納されるデータについて説明する。インデックス３３１に格納される値は、ユニークな値となるようにデータ管理プログラム３０２が生成してもよいし、ＴＣＳ２０からアプリ用データであるファイルを受信する時にファイルの管理データとしてＴＣＳ２０から受信した値を用いてもよい。ＴＣＳ２０から受信した値とＷｅｂサーバ３０で採番した番号とは番号の採番規則で区別できるようにすると、オリジナルのデータがＴＣＳ２０のデータなのか、ＴＣ１０で編集、作成したデータなのかを区別することができる。ファイル名３３２、ＴＣサーバ内ディレクトリ３３３、アプリＩＤ３３４は、前述したファイルの管理データとしてＴＣ２０から受信した値を用いる。シンクロ３３６には、ファイルをＴＣＳ２０からコピーした時点では、「済」が格納され、ファイルのデータが変更されると、「済」から「未済」の値に変更される。ＳｔａｔｕｓＮｏ欄３３７は、アプリ用データ３２０に格納されたデータに対する利用者からのアクセス状況示す「ステータスナンバー」を設定する。ステータスナンバーは、テーブル３４０に示す内容応じた値である。最終更新３３８は、アプリ用データ３２０に格納されたファイルに対して更新された最終の日時である。ユーザＩＤ３３９は、ＴＣＳ２０からファイルが送信された時にあわせて送られてきたユーザ識別子である。Ｗｅｂサーバ３０には複数の利用者がアクセスする場合、格納したファイルに対するアクセス制御を行うため、アクセス可能な利用者の識別子を格納する。
【０１７６】
図１５の説明に戻る。
【０１７７】
Ｓ３２３においてデータ管理プログラム３０２は、使用するアプリケーションの種類を特定するアプリケーションの識別子、アプリケーションプログラムがアクセスするファイル名などを示すオペランド、ユーザの識別子に基づき、アクセス先情報を生成し、ファイル更新状態管理テーブル３３０のインターネットアドレス欄３５５に格納する。アクセス先情報はURLの形式で記述されており、Ｗｅｂアプリプログラムの種類、送信されたアプリ用のデータの格納先、当該データへアクセス可能なユーザの識別子が、直接もしくは間接的に表現されている。また、ユーザ操作検出データに基づき、切替パラメータを生成する。切替パラメータとは、ＴＣ１０でアクセス先情報に基づきWebクライアントプログラム１０４を起動するのか、オフライン処理で使用するデータをＴＣ１０にダウンロードさせるのかを区別するためのデータである。例えば、ユーザ操作検出データの操作内容が「ファイルを開く」ならば、切替パラメータは、「Ｏｐｅｎ」とし、ユーザ操作検出データの操作内容が「ファイルをコピー」ならば、切替パラメータは、「Ｃｏｐｙ」とする。
【０１７８】
Ｓ３２４において、データ管理プログラム３０２は、Ｓ３２３で生成したアクセス先情報と、切替パラメータとをデータ管理ブローカ２０５へ送信する。
【０１７９】
一方、利用者がＷｅｂアプリケーションプログラムを用いた操作の結果、データの更新を保存する場合、および、Ｓ３２０で監視した結果、データの更新を検知した場合について説明する。
【０１８０】
Ｓ３２５において、データ管理プログラム３０２は、ファイル更新状態管理テーブル３３０を参照し、ＴＣＳ２０に格納されているアプリ用データ２２０の格納先をＴＣＳサーバ内ディレクトリ欄３３３を参照して取得する。
【０１８１】
Ｓ３２６において、更新条件を取得する。
【０１８２】
更新条件とは、アプリ用データ２２０と、アプリ用データ３２０や一時保存データ１２０に格納されたアプリ用データとのデータの間で同期をとるかどうかを決定する条件である。テーブル２１０やテーブル３３０のシンクロ欄２１６や３３６が「未済」である場合や図１８（ｅ）に示される画面で利用者から指定される場合（１４０６が指定される場合同期をとる）に条件を満たすものとする。
【０１８３】
データ管理プログラム３０２は、Ｓ３２５で取得したＴＣＳ２０上での格納先のファイルと同期させるため、更新結果をデータ管理ブローカプログラム２０５に更新されたファイル（もしくは変更部分の差分データ）を送り（Ｓ３２７）、更新完了の通知をデータ管理ブローカプログラム２０５から受信すると、状態テーブル３３０を更新し、一時保存ファイルを削除し、更新フラグをＯＦＦにして（Ｓ３２８）、更新完了をＷｅｂアプリプログラム３０４に通知する（Ｓ３２９ ）。Ｗｅｂアプリプログラムは、Webサーバプログラム３０３、Webクライアントプログラム１０４を介して利用者に、更新完了を出力する。
【０１８４】
以上の処理によって、ＴＣＳ２０に格納されたアプリ用データ２２０をＴＣ１０で動作するＷｅｂクライアントプログラム１０４とＷｅｂサーバ３０より取得するＷｅｂアプリプログラム３０４とを用いて編集することが可能となる。
【０１８５】
図１６を用いてＴＣ１０で動作する、Ｗｅｂクライアントプログラム１０４の処理内容とWebクライアントプログラム１０４に対応して動作するWebサーバプログラム３０３の処理内容を説明する。
【０１８６】
Ｗｅｂクライアントプログラム１０４は起動すると、切替ブローカプログラム２０４から切替プログラム１０３を介してアクセス先情報を取得する（Ｓ１４１）。切替プログラムによって一時保存データを呼び出す場合は、Ｗｅｂクライアントプログラム１０４の起動時に切替プログラム１０３が一時保存データを指し示すアクセス先情報を指定する。
【０１８７】
次にユーザ識別情報を取得する（Ｓ１４２）。ユーザ識別情報は、ユーザ識別子データ１３０に格納されており、外部デバイスインタフェース１５を介してＴＣ１０へ利用者がログインする際に取得したものをメモリ上に格納していてもよい。Ｓ１４３では、アクセス先情報とユーザ識別子データとを用いてＷｅｂサーバもしくはＴＣ１０の一時保存データであるローカルデータへアクセスする（Ｓ１４３）。ローカルデータへアクセスする処理をオフライン処理と呼ぶ。Ｗｅｂサーバへアクセスする場合はセッションを確立し、アクセス先情報に基づいた画面を表示し（Ｓ１４４）、ユーザ入力に応じた以下のステップと図１６（ｂ）の各ステップを実行する。なお、Ｗｅｂサーバ３０と通信せずに、ＴＣ１０の二次記憶装置に格納されているデータへアクセスする場合は、Ｗｅｂサーバ３０とのセッションは確立しない。
【０１８８】
Ｓ１４５では、Ｓ１４４で表示された画面に対するユーザ入力を待ち、入力があればＳ１４６に進み、なければ入力を待つ。Ｓ１４６では、入力されたユーザ入力が終了に関する入力でなければ、Ｓ１４７にすすみ、終了に関する入力ならば、Ｗｅｂクライアントプログラム１０４を終了する。終了前に、編集中のデータが保存されていなければ保存の要否を確認し、保存が必要であれば保存処理を実行する。
【０１８９】
Ｓ１４７では、入力されたユーザ入力がＷｅｂサーバへのアクセスに関する入力ならば、ユーザ入力に応じたデータをＷｅｂサーバ３０３へ送信し、Ｗｅｂクライアントプログラム１０４上で動作するＷｅｂアプリプログラムに対する入力ならば、入力に対する処理を実行する。
【０１９０】
Ｓ１４８では、Ｓ１４７において、Ｗｅｂサーバへデータを送信していた場合には、Ｗｅｂサーバからのレスポンスデータを受信し表示する。Ｓ１４７でＷｅｂアプリプログラムに対する入力に応じた処理を実行していた場合は、処理結果を表示する。
【０１９１】
Ｓ１４８の処理が完了すれば、Ｓ１４５へ戻る。
【０１９２】
Ｗｅｂサーバプログラム３０３は、Ｗｅｂクライアントプログラム１０４からのユーザ入力に応じたデータを受信し（S332）、アクセス制御用データ３２０を用いてユーザ認証を実施し（Ｓ３３３）、Ｗｅｂクライアントプログラム１０４から受信したデータに応じた処理を実行し（Ｓ３３４）、Ｓ３３４の処理結果に応じたデータをＷｅｂクライアントに送信する。
【０１９３】
次に、図１７と図１８を用いてＴＣ１０に表示される画面例を説明する。
【０１９４】
図１７は、切替プログラムが表示するメニューの画面を例示した図である。
【０１９５】
利用者は、図１７に示すようなGUI（グラフィカルユーザインタフェース）などを用いて、次に実行する処理を指定する。GUIを用いて指定する方法としては、たとえば図１７の領域１３０１に画面で位置を指定する記号（ポインター）をあわせて、ポインティングデバイスのボタンを押下することで領域１３０１が示すメニューを選択したものとみなす方法がある。
【０１９６】
ＴＣ１０に利用者がログインした後、利用者は希望する作業に応じたメニューを図１７に示す画面例を用いて指定する。利用者が選択可能な作業は、「ＴＣＳ２０に接続する」「Ｗｅｂサーバ３０へ接続する」「ネットワークに接続せず、ＴＣ１０でオフライン作業をする」「ＴＣ１０をログアウトする」の４種類となる。メニュー画面の表示方法は、図１７（ａ）を表示し、１３０１が選択された場合、図１７（ａ）を非表示と図１７（ｂ）を表示し、いずれかの通信手段のメニューが選択された後、図１７（ｂ）を非表示にし、図１７（ｃ）を表示する方法がある。
【０１９７】
図１７（ａ）で例示したメニューを態様を変えて、画面上に表示し、非表示としなければ、オンライン処理とオフライン処理とを容易に切替可能である。
【０１９８】
図１７（ａ）の１３０１が選択された場合、図１１（ａ）のＳ１３３の判定がＹｅｓの処理が実行され、１３０２が選択された場合、図１１（ａ）のＳ１３３の判定がＮｏの処理が実行される。図１１（ａ）のS134では、図１７（ｂ）のメニューで通信手段が指定され、図１７（ｂ）が非表示となった後、図１７（ｃ）が表示され、１３０４が選択された場合、図１１（ａ）のＳ１３６の処理が実行され、１３０５が選択された場合、Ｓ１３７が実行される。
【０１９９】
また、接続先の指定画面と通信手段の指定画面の順序の組み合わせを適宜変更し、図１７（ｄ）を表示し、１３０６もしくは１３０７が選択された場合に、図１７（ｄ）を非表示とし、図１７（ｂ）を表示する方法もある。
【０２００】
図１８は、リモート描画クライアントプログラム102によって、シンクライアントサーバ２０へログインした後にＴＣ１０に表示される画面例である。
【０２０１】
（ａ）は、ＴＣＳ２０に格納されるアプリ用データのファイル名を表示し、表示したファイル名をポインターで指定した際の画面を表示した例である。利用者がアプリケーションプログラムを用いて開くファイル名は、１４０１で示すようなほかのファイル名と異なる態様で表示する。
【０２０２】
（ｂ）は、ＴＣＳ２０でAP206を起動するかどうかを利用者が指定する画面の画面例である。図５のＳ２３４の判定結果でＳ２３５の分岐処理を実行する前に（ｂ）の画面をＴＣ１０に表示する。表示されたメニューに対して利用者が１４０２を指定した場合Ｓ２３７に進み、１４０３を指定した場合Ｓ２３６に進み、１４０４を指定した場合は、Ｓ２３１に戻る。
【０２０３】
（ｃ）は、（ａ）で指定されたファイルが、AP206によって開かれてＴＣＳ２０においてAP206が起動した場合に表示される画面例である。ＴＣ１０の出力部には、（ａ）と（ｃ）が出力される。
【０２０４】
（ｄ）は、（ａ）で指定されたファイルに対応するデータが、Ｗｅｂクライアントプログラム１０４によってＴＣ１０で表示された場合の画面例である。
【０２０５】
（ｅ）は、ＴＣＳ２０のアプリ用データ２２０が、Ｗｅｂサーバ３０のアプリ用データ３２０やＴＣ１０の一時保存データに複製されている場合、ＴＣＳ２０のデータがそれ以外に複製されたデータと異なる場合もしくは、ＴＣＳ２０以外に複製されたデータがＴＣＳ２０のデータと異なる場合に、変更されたデータを保存するファイル名をもとのファイル名とするか異なるファイル名とするかを指定する画面例である。たとえば、図６のＳＱ１６５で、データ管理プログラム３０２が、アプリケーションプログラムの変更を検知した際、ＴＣＳ２０のアプリ用データ２２０のデータを更新する前に、（ｅ）を表示し、１４０６が選択された場合は、アプリ用データ３２０に対する変更内容をアプリ用データ２２０に反映させ、１４０７が選択された場合は、アプリ用データ２２０に格納されたデータに対するファイル名とは別のファイル名を指定する処理を実行する。１４０８が選択された場合、アプリ用データ２２０に対する保存処理をキャンセルする。
【０２０６】
次に、オフライン処理について、図１９〜図２３を用いて説明する。
【０２０７】
画面転送型のシンクライアントシステムでは、ＴＣ１０とＴＣＳ２０の間のネットワークがオフラインの場合、ＴＣ１０の画面にＴＣＳ２０の処理結果が表示されない。そこで、予めＷｅｂサーバ３０からＷｅｂアプリプログラム３０４とアプリ用データ３２０とをＴＣ１０の一時保存データ１２０に格納しておき、ＴＣ１０がネットワーク接続していないオフライン状態であっても、ＴＣ１０に格納されているＷｅｂクライアントプログラム１０４を起動し、一時保存データ１２０に格納したプログラムとデータとを用いることによって、データの編集を可能にする。この処理をオフライン処理と呼ぶ。
【０２０８】
また、オフライン処理を実行するためには、オフライン処理を実行する前に予め、プログラムとデータとをＷｅｂサーバ３０からＴＣ１０にダウンロードして、一時保存データ１２０に格納する必要がある。一時保存データ１２０にＷｅｂアプリプログラムとそのＷｅｂアプリプログラムで使用するデータとをダウンロードし格納する処理をオフライン準備処理と呼ぶ。
【０２０９】
図１９を用いて、オフライン処理とオフライン準備処理が実行される場合のシンクライアントシステムの処理の流れを説明する。
【０２１０】
本システムは、各計算機の電源が投入され、ＯＳや各種プログラムが起動し、利用者のログイン情報を取得する。Ｆ１、Ｆ２の処理は前述の通りであるため、詳細を割愛する。
【０２１１】
利用者のログイン処理が完了すると、ＴＣ１０の出力部１７に、利用者が次の操作を指定するための選択肢がメニューとして表示される。例えば、図１７の１３０１を選択した場合、オンライン処理を利用者が指定したものとし、Ｆ４に進み、１３０２を選択した場合、オフライン処理を利用者が指定したものとし、Ｆ４１に進む。
【０２１２】
ここでまず、ネットワークを接続してシステムを利用する「オンライン処理」の場合について、Ｆ４以降の処理を説明する。Ｆ４では、ＴＣ１０もしくは、外部記憶媒体１９に保存されている一時保存データ１２０の更新状況が確認される。更新状況の確認は、例えば、一時保存データに格納したファイルをＷｅｂサーバ３０からダウンロードしたダウンロード日時、Ｗｅｂサーバ３０へアップロードしたアップロード日時、ＴＣ１０で編集し保存した保存日時を管理データとして記憶しておき、ダウンロード日時より保存日時が新しいか、保存日時がアップロードより新しい場合は、Ｆ５に進み、それ以外の場合は、通信手段を選択し、Ｆ６に進み、ＴＣＳ２０へログインする。変更がある場合は、一時保存データをアップロードし、ＴＣＳ２０やＷｅｂサーバに保存されているアプリ用データと同期させ（Ｆ５）、Ｆ６に進み、ＴＣＳ２０にログインする。
【０２１３】
ＴＣＳ２０にログインが完了すれば、ＴＣ１０におけるオフライン処理のための準備処理（オフライン準備処理）を実行することが可能になる。オフライン準備処理の詳細は、図２０を用いて詳細に後述する。オフライン準備処理が完了すれば、利用者はＴＣＳ２０をログオフし処理を終了する。もちろん、ＴＣＳ２０をログオフせずに、オフライン準備処理以外の処理を実行したり、ＴＣＳ２０をログオフ後、ＴＣ１０のＷｅｂクライアントプログラム１０４を用いた処理を実行したりしてもよい。
【０２１４】
次に、「オフライン処理」の場合について、Ｆ４１以降の処理を説明する。オフライン処理では、Ｗｅｂクライアントプログラム１０４が起動する（Ｆ４１）。Ｗｅｂクライアントプログラム１０４は、一時保存データ１２０を読み込む。一時保存データとして格納されるデータは、Ｗｅｂアプリプログラムで編集するデータ、ＷｅｂサーバへアクセスするためのＵＲＬ、操作履歴がある。
【０２１５】
読み込まれたデータを用いて、ＴＣ上でオフラインにおけるファイル編集処理が実行され（Ｆ４３）、利用者からの入力やシステムの自動保存機能により、ＴＣ１０におけるオフライン機能で編集されたデータがＴＣ１０もしくは、外部記憶媒体１９に保存される（Ｆ４４）。
【０２１６】
保存が終了すれば、利用者の操作に応じてＷｅｂクライアントプログラムを終了し、全体処理を終了する。
【０２１７】
図２０を用いて図１９のＦ３１で示したオフライン準備処理の詳細を説明する。
【０２１８】
オフライン準備処理とは、指定したファイル名とファイル名の拡張子に関連づけられたアプリケーションプログラムを起動することなく、ファイル名が示すデータと、ファイル名の拡張子に関連づけられたアプリケーションプログラムに対応するＷｅｂアプリプログラムのデータとをＷｅｂサーバ３０からＴＣ１０にダウンロードする処理である。
【０２１９】
ファイル名に対するGUIを用いて準備処理を起動できるので、ＴＣＳ２０で編集していたファイルをＴＣ１０でオフライン処理するために必要なデータとして、オフライン処理しようとするファイルをＴＣＳ２０上のアプリケーションを起動しなくてもＴＣ１０に格納することが可能である。そのため、ネットワーク接続した事務所の環境で編集していたデータをネットワーク接続ができない環境において作業で編集するための手続きが簡略化できる。また、AP206を起動し、起動時間を待つことなくオフライン環境で作業する準備ができるので、たとえば出張前に、出かける直前まで作業していたデータを簡単に持ち出してオフライン環境で作業するための準備が可能となる。
【０２２０】
また、オフライン準備処理を実行するためのＧＵＩを備えたプログラムを用いて、オフライン準備処理のプログラムを起動後、オフライン処理するファイルを指定してもよい。
【０２２１】
画面に表示されたファイルのアイコンをある領域から別な領域へ移動させること（ドラッグアンドドロップと呼ぶ）によって、アイコンでしめされたファイルをコピーする操作を指定する方法がある。
【０２２２】
ＴＣＳ２０に格納されたアプリ用データ２２０のファイルをＴＣ１０の一時保存データ１２０として保存する場合、オフライン準備処理を実行する。オフライン準備処理を開始する利用者によるユーザ操作として、ファイルを示すアイコンをドラッグアンドドロップする操作がある。
【０２２３】
以下、図を用いて説明する。利用者は、リモート描画クライアントプログラム１０２が表示する画面で、ＴＣＳ２０に格納されているファイルのファイル名を確認できる。利用者が、入力部１８を用いて、ＴＣ１０を用いてオフライン処理で編集したいファイルを指定し、オフライン準備処理を実行することを指示する操作を行うと、アプリ監視プログラム２０３は、ユーザ操作検出データを取得する（ＳＱ２０１）。このユーザ操作検出データは、切替ブローカ２０４、データ管理ブローカプログラム２０５を介して、Ｗｅｂサーバ３０のデータ管理プログラム３０２に渡される（ＳＱ２０２）。
【０２２４】
データ管理プログラム３０２は、受信したユーザ操作検出データと利用者に指定されたファイルのデータと受信して、ファイルのデータをアプリ用データ３２０に格納し、格納したファイルに関する管理データをテーブル３３０に格納し、
アクセス先情報と切替パラメータを生成し、状態テーブル330にアクセス先情報とのデータを格納し、アクセス先情報と切替パラメータをデータ管理ブローカプログラム２０５に送信する。
【０２２５】
データ管理ブローカプログラム２０５は、アクセス先情報と切替パラメータを受信し、状態テーブル２１０それをに格納し、受信したアクセス先情報と切替パラメータを切替ブローカブログラム２０４に渡し、切替ブローカプログラム２０４は、切替パラメータに基づき切替制御用データを生成し、アクセス先情報と切替制御用データとを、ＴＣ１０の切替プログラム１０３に送信する。
【０２２６】
切替プログラム１０３は、アクセス先情報と切替制御用データを受信し、「切替制御用データ」に基づき、Ｗｅｂクライアントプログラムを起動してアクセス先情報に基づくの画面を表示する。表示した画面に対する利用者の入力に応じて、Ｗｅｂサーバ３０より、アプリ用データとＷｅｂアプリプログラムとを取得し、一時保存データ１２０として格納する。
【０２２７】
次に、ＴＣ１０に表示される画面例を図２１〜図２３を用いて説明する。
【０２２８】
図２１（ａ）がその画面例である。領域１５０１は、ＴＣ１０の一時保存データ１２０に格納されたデータを表示していることを示す領域である。「名前」の部分は、一時保存データ１２０に格納されているファイルのファイル名を示している。「サーバアドレスの部分」は、ファイル名が示すデータが、ＴＣＳ２０に格納されたどのデータの複製であるかを示している。「更新」の部分は、ＴＣＳ２０に格納されたデータを複製した後の変更の有無を示しており、日時が表示されている場合は、変更がありその日時が最終更新日時を示し、「−」が表示されている場合は、複製後の変更がないことを示している（図では時刻のみ表示）。
【０２２９】
そして「ダウンロード」の部分は、オフライン準備処理においてＷｅｂサーバ３０からＷｅｂアプリプログラムとアプリ用データとをダウンロードする処理が、完了しているのか、Ｗｅｂサーバ３０におけるオフライン準備処理が完了し、ＴＣ１０にダウンロードが可能な状態か、Ｗｅｂサーバ３０におけるオフライン準備処理が完了せず、ダウンロードがまだ不可能な状態なのかを示している。
【０２３０】
図２１（ｂ）は、オフライン処理で一時保存データ１２０に格納されたデータを編集した後、利用者がデータを保存する指示を出した際に表示される画面である。１５０２のメニューが選択されると、一時保存データ１２０に格納されるアプリ用のデータが更新され、そのデータが更新された状態であることがファイルの更新状態として、一時保存データ１２０として保存される。
【０２３１】
１５０４のメニューが選択されると、データは更新されず、編集中のデータは破棄される。図２１の（ｃ）の１５０６は、オフライン準備処理を開始するメニューの一例である。このメニューは、オフライン準備処理を行うファイルを少なくともひとつ選択した後、ポインティングデバイスを用いた特定の入力（たとえば右クリック）が入力された場合表示される。
【０２３２】
図２１（ｄ）は、１５０６のメニューが表示された後に表示される確認用の画面である。１５０７が選択されるとオフライン準備処理が実行され、１５０８が選択されると（ｃ）の画面で選択されたファイルが解除され、オフライン準備処理も実行されない。
【０２３３】
ＴＣ１０に表示された際の画面構成を図２２に示す。１６０１、１７０４、１７０６はＷｅｂクライアントプログラム１０４への指示を受け付ける領域である。１６０２は、リモート描画クライアントプログラム１０２への指示を受け付ける領域の一部であり、ＴＣＳ２０に格納されるデータのファイル名を表示させるプログラムの出力結果である。１６０７、１７０３、１７０５は、リモート描画クライアントプログラム１０２の出力結果の領域であり、１６０８、１７０２、１７０７は、切替プログラムへの指示を受け付ける領域である。Ｗｅｂクライアントプログラム１０４への指示を受け付ける領域は、複数あってもよい。
【０２３４】
図２３は、ＴＣ１０にログインした後、たとえば図１７（ｃ）の１３０５（ｄ）の１３０７のメニューが選択されて、Webクライアントプログラム104が起動した場合の画面例である。この時、Webサーバへアクセスするためのアクセス先情報は、TC１０のメモリや一時保存ファイルや外部記憶媒体１９に格納したURLとし、ユーザ毎に異なるデータとしてもよい。
【０２３５】
第二の実施形態について、図２４、図５、６、２０を用いて説明する。
【０２３６】
第二の実施形態は、第一の実施例のシステム構成に、遠隔操作によりデータを消去できるデータ格納装置としての携帯端末を追加した構成のシンクライアントシステムである。
【０２３７】
本実施例における携帯端末50は、図24に示すように、少なくとも通信部５４もしくは、外部デバイスインタフェース５５を有し、また、メモリ５２もしくは、二次記憶装置５３を有しており、中央処理装置５１がメモリ５２上に格納されるプログラム（５０１〜５０４）の処理を実行する情報処理装置である。
【０２３８】
通信部５４は、TC10との通信もしくは、ネットワーク40−１との通信を行う。外部デバイスインタフェース５５は、携帯端末５０が通信部５４を持たない場合、通信機能を持つ他の端末と接続するためのインタフェースである。ネットワーク４０は、例えばインターネットのようなオープンなネットワークであり、ネットワーク４０−１は、インターネットへ接続するためのネットワークで、携帯電話網などの予め登録された端末が接続できるネットワークである。もちろん、ネットワーク４０−１が公衆無線ＬＡＮや構内ＬＡＮのようにネットワーク接続の許可を予め必要としないネットワークであってもよい。また、外部デバイスインタフェース５５は、外部記憶媒体５９などのデバイスとのデータの入出力や、TC10と通信する装置（図示せず）とデータを送受信したり、ネットワーク40と通信する装置（図示せず）とデータを送受信したりする。また、携帯端末５０は、携帯端末を操作する利用者の入力を受け付けるキーボード、タッチパネルなどの入力部５８と、携帯端末における処理結果や状態を出力する表示部やスピーカーなどの出力部５７とを備えており、これらがバスなどの内部通信線５６で互いに接続される。
【０２３９】
メモリ５２に格納されるプログラムと二次記憶装置５３に格納される一時保存データとを説明する。
【０２４０】
ＯＳ５０１は、入出力機能、メモリや二次記憶装置の読み書きの管理機能、通信機能などについて、アプリケーションプログラムで利用される共通の基本的な処理を実行する。
【０２４１】
データ保存プログラム５０２は、ＴＣ１０もしくは、Ｗｅｂサーバ３０から取得したデータを一時保存データ５２０として二次記憶装置に保存する。一時保存データ５２０は、メモリ５２に格納されてもよい。通信制御プログラムは、通信部もしくは、外部デバイスインタフェースを介して接続する通信装置によって、ＴＣ１０もしくはＷｅｂサーバ３０と通信する際の通信処理を制御するプログラムである。ログイン情報生成プログラム５０４は、外部記憶媒体５９もしくは、二次記憶装置５３もしくはメモリ５２に格納されるユーザ識別子データと入力部を介して利用者から入力されるデータに基づき、ＴＣ１０にログインする際に必要となるログイン情報を生成するプログラムである。
【０２４２】
なお、ＴＣ１０、ＴＣＳ２０、携帯端末５０は、図では１台ずつ表示しているがそれぞれ複数台の計算機がネットワークに接続されてもよい。
【０２４３】
次に、携帯端末５０とＴＣ１０との間に通信路を確保する方法について説明する。携帯端末の通信部５４とＴＣ１０のネットワークインタフェースとの間で通信路を確立する場合には、接続要求に対してログイン情報生成プログラム５０４などで生成した認証情報を用いる。通信路の確保に関する手順には、たとえば、特許文献２（段落００５５）に開示されている方法がある。
【０２４４】
本実施例における携帯端末５０は、遠隔操作によりデータを消去することにより、情報漏えいを防止する機能を備える。
【０２４５】
切替プログラム１０３は、外部記憶媒体や携帯端末がTC１０に外部記憶装置として接続しているかどうかを検知し、外部記憶媒体の種類や携帯端末の種類や携帯端末の固体識別番号（例えばMACアドレスやuidとよばれる端末のIDなど）とに基づき、携帯端末５０が当該機能（遠隔でデータを削除できる機能）を備えるか、を調べる。さらに、携帯端末が当該機能を備えていても有効に設定されているか、を、TC１０が調べた結果を取得し、外部記憶媒体に指定できるかどうかを判定し、指定可能な外部記憶媒体の一覧データ（データ書き出し可能媒体リスト）として、Webサーバ30のアクセス制御データ310に登録する。
【０２４６】
リストには、携帯端末を識別する識別子と設定内容と、機密性の程度毎に外部記憶装置として認識可能かどうかを示すフラグとの組み合わせで格納されてよい。
【０２４７】
TC１０と携帯端末５０との間に通信路が確保された場合、または、TC１０の外部デバイスインタフェース１５を介して携帯端末５０とが接続された場合、携帯端末５０は、TC１０の外部記憶装置として認識するかどうかを判定する。判定の際には、前述の、アクセス制御データ310に登録されたデータ書き出し可能媒体リストに携帯端末５０が含まれるかどうかを、携帯端末５０の固体識別番号をキーとして判定し、含まれる場合は、外部記憶装置として認識し、含まれない場合は外部記憶装置として認識しない。
【０２４８】
もし、確認できない場合は、携帯端末５０は外部記憶装置として認識されないよう、切替プログラム１０３もしくは、TC１０にダウンロードした、Webクライアントプログラム１０４上で動作する、Webアプリプログラム３０４が設定する。
【０２４９】
次に図５、６、２０を用いてＷｅｂサーバ３０から、データを取得した際に携帯端末５０にデータを格納する際の処理について説明する。
【０２５０】
図５で示すように、ＴＣ１０のＷｅｂクライアントプログラム１０４が、Ｗｅｂサーバ３０からＷｅｂアプリプログラムと、Ｗｅｂアプリプログラムで編集するデータとを受信すると、通信部を介して、携帯端末５０にそれらのデータを受信し、データ保存プログラム５０２が一時保存データとして保存する。
【０２５１】
ＴＣＳ２０に格納されるアプリ用データ２２０のファイルは、予め分類されており、予め指定されたファイルをアプリ用データ３２０に格納しようとする時、前記分類結果に応じて、ファイルの格納先を指定するデータを生成し、ファイルの格納先を示すデータに基づき、ＴＣ１０で動作する切替プログラム１０３もしくは、Ｗｅｂクライアントプログラム１０４がファイルをＴＣ１０の二次記憶装置もしくは、外部記憶媒体１９もしくは、携帯端末５０に格納する。
【０２５２】
ＴＣＳ２０には、ファイルの分類区分と、各々の区分に対応してファイルを格納できる格納先の対応関係を示すデータが保管されている。例えば、機密性の程度が低いファイルの格納先は、携帯端末５０でも外部記憶媒体１９のいずれにも格納できるが、分類区分がファイルの機密性の程度に基づく区分である場合、機密性の程度が高いファイルの格納先として外部記憶媒体は指定できないよう、切替プログラム１０３もしくは、TC１０にダウンロードした、Webクライアントプログラム１０４上で動作する、Webアプリプログラム３０４が制御する。
【０２５３】
また、携帯端末に、メール送信機能があれば、ＴＣ１０から通信機能を介してデータを受信し、データ保存プログラム５０２によって一時保存データとして受信したデータを保存した際、受信したデータのファイル名とＴＣ１０に格納されているユーザ識別子データで示される利用者名と、受信日時とを、予め登録してある宛先に知らせるメールを送信することが可能である。メール送信機能は、ネットワーク４０−１を介して送信する。
【０２５４】
また、携帯端末５０の二次記憶装置53は、携帯端末５０とは別の携帯端末や計算機からの遠隔操作により、一時保存データとして保存したデータを消去する。この消去動作により、情報漏えいを防ぐことが可能になる。
【０２５５】
第二の実施例では、図６で示すＴＣ１０のＷｅｂクライアントプログラムを起動してデータを更新する際、一時保存ファイル１２０からではなく、携帯端末５０の一時保存データ５２０が用いられる。データ保存プログラム５０２は、ログイン情報生成プログラム５０４と通信制御プログラム５０３によって確立された、ＴＣ１０と携帯端末５０との間の通信路を介して、データをＴＣ１０に送る。
【０２５６】
第二の実施例では、図１９のオンライン処理におけるＦ４の処理では、一時保存データはＴＣ１０もしくは、外部記憶媒体１９だけでなく、携帯端末５０に格納されている一時保存データの更新状況も確認する。変更がある場合、携帯端末５０に格納されているデータは、通信部５４でＴＣ１０と接続し、ＴＣ１０を介してＷｅｂサーバ３０にデータをアップロードしてもよいし、ネットワーク４０−１を介してＷｅｂサーバ３０に接続し、アップロードしてもよい。
【０２５７】
第二の実施例では、図２０のオフライン準備処理において、Ｗｅｂアプリプログラムとアプリ用データをＷｅｂサーバから取得する際、Ｗｅｂサーバへアクセスする際に必要なアクセス先情報は、ＴＣ１０を介して携帯端末５０に格納するが、アクセス先情報を取得した後、携帯端末５０で動作するＷｅｂクライアントプログラム（図示せず）を用いて、ネットワーク４０−１を介してＷｅｂサーバ３０からＷｅｂアプリプログラムとアプリ用データとを取得する。
【図１】
2012099091.tif 000003
【図２】
2012099091.tif 000004
【図３】
2012099091.tif 000005
【図４】
2012099091.tif 000006
【図５】
2012099091.tif 000007
【図６】
2012099091.tif 000008
【図７】
2012099091.tif 000009
【図８】
2012099091.tif 000010
【図９】
2012099091.tif 000011
【図１０】
2012099091.tif 000012
【図１１Ａ】
2012099091.tif 000013
【図１１Ｂ】
2012099091.tif 000014
【図１２】
2012099091.tif 000015
【図１３】
2012099091.tif 000016
【図１４】
2012099091.tif 000017
【図１５】
2012099091.tif 000018
【図１６】
2012099091.tif 000019
【図１７】
2012099091.tif 000020
【図１８】
2012099091.tif 000021
【図１９】
2012099091.tif 000022
【図２０】
2012099091.tif 000023
【図２１】
2012099091.tif 000024
【図２２Ａ】
2012099091.tif 000025
【図２２Ｂ】
2012099091.tif 000026
【図２２Ｃ】
2012099091.tif 000027
【図２３】
2012099091.tif 000028
【図２４】
2012099091.tif 000029