(57)【要約】【課題】端末にてデータをオフライン状態で処理するために、データをサーバから端末に複製する際に、従来技術では、データを処理するアプリが端末にインストールされているか確認しないため、インストールされていない場合にはオフライン状態でデータを処理できなかった。また、複製するデータを端末内に保存するため、複製時に操作する端末を、オフライン状態でも使用する必要があった。【解決手段】ユーザが端末でサーバを操作中にサーバ上の所定のデータを処理するアプリが端末にあるかを調査する手段と、アプリがない場合に端末にアプリをインストールする手段と、サーバ上の所定のデータを端末に格納する手段と、端末に格納したデータを、オフライン状態の端末のアプリで処理する手段を設ける。また、外部ストレージに格納したデータを端末で利用可能とする手段と、外部ストレージに格納するデータの形式を変換する手段とを設ける。【選択図】  図９
2013003867.tif 000002
【特許請求の範囲】
【請求項１】
端末とリモート計算機とがネットワークで接続された計算機システムにおいて、
前記端末と前記リモート計算機は、
前記端末が前記ネットワークを介して前記リモート計算機に接続するオンライン状態において、処理された前記リモート計算機のファイルデータについて、当該端末に前記ネットワークを介さずに接続された記憶装置に格納されているファイルデータの更新による同期処理を行い、
前記端末は、
前記リモート計算機に接続されていないオフライン状態で、前記記憶装置に格納されたファイルデータを処理可能か判定し、
処理可能でない場合は、オフライン状態で前記ファイルデータを処理できるようにし、
前記記憶装置に格納したファイルデータをオフライン状態で処理する
ことを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムにおいて、
前記同期処理として、
前記端末は、当該端末に格納されているファイルデータ情報を、前記リモート計算機に送信し、
前記リモート計算機は、
当該リモート計算機に格納されているアプリが使用中のファイルデータ情報と、前記端末から送信された前記ファイルデータ情報とを比較し、
同期の対象となるファイルデータを、前記端末に送信し、
前記端末は、受信したファイルデータを用いて、当該端末に格納されているファイルデータを更新する
ことを特徴とする計算機システム。
【請求項３】
請求項１または２に記載の計算機システムにおいて、
前記端末と、前記リモート計算機は、オフライン状態で前記記憶装置に格納されたファイルデータを処理可能か判定する処理として、前記リモート計算機にインストールされている、前記ファイルデータを処理するアプリと互換性のあるアプリが、前記端末にインストールされているかを調べる
ことを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムにおいて、
前記端末は、前記互換性のあるアプリが当該端末にインストールされていない場合は、オフライン状態で前記ファイルデータを処理できるようにする前記処理として、追加、又は、更新が必要な前記アプリを、前記ネットワークに接続されているアプリ管理計算機から取得し、インストールする
ことを特徴とする計算機システム。
【請求項５】
請求項３に記載の計算機システムにおいて、
前記端末と前記リモート計算機とにネットワークで接続されたファイル変換計算機を備え、
前記端末は、前記同期処理において、更新された前記ファイルデータを、前記ファイル変換計算機に送信し、
前記ファイル変換計算機は、
前記ファイルデータを他のデータ形式に変換し、
前記変換されたファイルデータを前記端末に送信し、
前記端末は、前記変換されたファイルデータを当該端末に接続された前記記憶装置に格納する
ことを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムにおいて、
前記端末は、
前記更新されたファイルデータを処理できるアプリがインストールされていない場合は、処理対象の前記更新されたファイルデータに対応する前記変換されたファイルデータを処理できる代替アプリがインストールされているか否かを調べ、
前記代替アプリがインストールされていれば、前記変換されたファイルデータを前記代替アプリで処理し、
前記代替アプリがインストールされていなければ、処理できないことを利用者に通知する
ことを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、クライアント装置とサーバ装置とがネットワークで接続された計算機システムに関連し、特にネットワークの状態が悪化したときの利便性に関する。
【背景技術】
【０００２】
情報処理を行う手段として、処理のほとんどをサーバ装置側で行い、情報処理を指示するユーザ（以下、単にユーザと呼ぶ）が使うクライアント装置では必要最小限の処理を行うクライアントサーバアーキテクチャがある。このアーキテクチャでは、企業などの組織内のサーバ装置（従来のＰＣ、従来のサーバ、ブレード型ＰＣ、仮想ＰＣなど。以下、リモート計算機と呼ぶ）に、処理対象の情報（以下、データと呼ぶ）と、データを処理するアプリケーションプログラム（以下、アプリと呼ぶ）とを置き、リモート計算機を遠隔地からクライアント端末計算機（以下、単に端末と呼ぶことがある）を使ってネットワーク経由で操作することで、情報処理を行う。
【０００３】
例えば、下記の特許文献１には、演算処理やデータの蓄積は主にサーバ側で行うサーバクライアント型を構成した上で、耐タンパデバイスを利用者に配付し、端末に接続したデバイス内の認証情報を用いてネットワーク経由でリモート計算機にアクセスし遠隔操作することで、利用者が利用する端末を変更したとしても、同様の操作感覚にて業務遂行を行うことができるため、利用者の使い勝手が向上する旨が記載されている。
【０００４】
このようなクライアントサーバ環境において、クライアントとサーバを繋ぐネットワークが、接続無しもしくは高遅延もしくは低帯域の状態（以下、オフライン状態と呼ぶ）になった場合、処理を続行できなくなる。オフライン状態になっても処理を継続するための方法として、事前にデータを端末にダウンロードしておく方法がある。
【０００５】
例えば、下記の特許文献２では、簡易ドキュメントデータと簡易編集アプリを端末内に保存しておき、サーバとの通信が切断されたと判定すると簡易編集アプリを使用して簡易ドキュメントの編集を可能にする方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００６／０２００６８１号明細書
【特許文献２】特開２００７−３４６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
クライアントサーバ環境において、オフライン状態でも処理を行うにあたり、従来技術では、端末側に保存したデータを処理するための必要なアプリが端末に既に入っていることが前提であった。このため、端末側のアプリで使用できるかどうかをユーザが意識して持ち出すデータを選別する必要があり、もし対応したアプリが端末になければ、持ち出したデータをオフラインで処理できないという課題があった。
【０００８】
また、オンライン時に所定のタイミングで端末に持ち出すデータは端末内に保存するため、持ち出し時にオンライン操作する端末を、オフライン時にも使用する必要があった。そのため、例えばオフィスのデスクトップ端末でオンライン操作をした後、手持ちするノート型端末でオフライン操作することはできないという課題があった。
【課題を解決するための手段】
【０００９】
開示されるのは、オフライン状態で処理を行う際の、高い利便性を備えたクライアントサーバシステムおよびそのプログラムである。
【００１０】
具体的な一つの態様において、ユーザが遠隔から端末を使用してサーバを操作している間に、サーバ上の所定のデータを端末内でオフライン処理できるアプリが端末にあるかどうかを調べ、端末に処理可能なアプリがなかった場合に端末にアプリを追加、または、更新し、端末内の記憶装置（以下、内部記憶装置と呼ぶ）に上記サーバ上の所定のデータを格納し、オフライン状態になったときに、上記記憶装置に格納したデータを端末内のアプリで処理する、という特徴を備える。
【００１１】
また、他の態様において、データの保存先を、端末内ではなく端末外の装置（例えば、ＵＳＢメモリ、可搬型ハードディスク装置、携帯電話、スマートフォン、スレート端末など。以下、外部記憶装置と呼ぶ）とし、端末と外部記憶装置を接続して、外部記憶装置に保存されたデータを端末で利用可能にし、外部記憶装置にデータを格納する際に、データの形式を変換（例えば、プレゼンテーション用のデータを文字列のみのテキストデータに変換）する、という特徴を備える。
【００１２】
より具体的には、端末とリモート計算機とがネットワークで接続された計算機システムにおいて、
端末とリモート計算機は、
端末がネットワークを介してリモート計算機に接続するオンライン状態において、処理されたリモート計算機のファイルデータについて、当該端末にネットワークを介さずに接続された記憶装置に格納されているファイルデータの更新による同期処理を行い、
端末は、
リモート計算機に接続されていないオフライン状態で、記憶装置に格納されたファイルデータを処理可能か判定し、
処理可能でない場合は、オフライン状態でファイルデータを処理できるようにし、
記憶装置に格納したファイルデータをオフライン状態で処理する、ことを特徴とするものである。
【００１３】
同期処理として、例えば、
端末は、当該端末に格納されているファイルデータ情報を、リモート計算機に送信し、
リモート計算機は、
当該リモート計算機に格納されているアプリが使用中のファイルデータ情報と、端末から送信されたファイルデータ情報とを比較し、
同期の対象となるファイルデータを、端末に送信し、
端末は、受信したファイルデータを用いて、当該端末に格納されているファイルデータを更新するように構成しても良い。
【００１４】
また、オフライン状態で記憶装置に格納されたファイルデータを処理可能か判定する処理として、例えば、端末と、リモート計算機は、リモート計算機にインストールされている、ファイルデータを処理するアプリと互換性のあるアプリが、端末にインストールされているかを調べるように構成しても良い。
【００１５】
さらに、互換性のあるアプリが当該端末にインストールされていない場合は、オフライン状態でファイルデータを処理できるようにする処理として、例えば、端末は、追加、又は、更新が必要なアプリを、ネットワークに接続されているアプリ管理計算機から取得し、インストールするように構成しても良い。
【００１６】
さらに、同期処理において、例えば、
端末は、更新されたファイルデータを、端末とリモート計算機とにネットワークで接続されたファイル変換計算機に送信し、
ファイル変換計算機は、
ファイルデータを他のデータ形式に変換し、
変換されたファイルデータを端末に送信し、
端末は、変換されたファイルデータを当該端末に接続された記憶装置に格納するように構成しても良い。
【００１７】
端末は、
更新されたファイルデータを処理できるアプリがインストールされていない場合は、処理対象の更新されたファイルデータに対応する変換されたファイルデータを処理できる代替アプリがインストールされているか否かを調べ、
代替アプリがインストールされていれば、変換されたファイルデータを代替アプリで処理し、
代替アプリがインストールされていなければ、処理できないことを利用者に通知するように構成しても良い。
【００１８】
上記態様によれば、オフライン状態で処理を継続するための準備作業が不要となり、突然の出張など、緊急にオフライン環境に移動が必要となってもすぐに移動可能となる。また、端末に当初アプリが入っていない状態でもオフライン作業可能となる。
【００１９】
また、オンライン状態で操作する端末と、オフライン状態で使用する端末は別で良く、例えば、組織内の自席では外部記憶装置を接続した状態でデスクトップ型端末を使用し、出張時には、外部記憶装置とノート型端末を持出してオフライン状態での処理を行うことが可能となる。
【発明の効果】
【００２０】
開示によれば、オフライン状態で処理を行う際の、高い利便性を備えたクライアントサーバシステムを実現可能になる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態におけるオフライン対応クライアントサーバシステムの概略を例示する図である。
【図２】図１に示した端末の構成を例示する図である。
【図３】図１に示したリモート計算機の構成を例示する図である。
【図４】図１に示したアプリ管理計算機の構成を例示する図である。
【図５】図２に示したクライアント業務アプリリストデータの構成を例示する図である。
【図６】図２に示した業務ファイルリストデータの構成を例示する図である。
【図７】図３に示したサーバ業務アプリリストデータの構成を例示する図である。
【図８】図４に示した管理アプリリストデータの構成を例示する図である。
【図９】第１実施形態におけるオフライン対応クライアントサーバシステムの動作を例示するフローチャートである。
【図１０】第１実施形態におけるアプリ更新処理の動作を例示する時系列のフローチャートである。
【図１１】第１実施形態におけるファイルダウンロード処理の動作を例示する時系列のフローチャートである。
【図１２】第２実施形態におけるオフライン対応クライアントサーバシステムの概略を例示する図である。
【図１３】図１２に示した端末の構成を例示する図である。
【図１４】図１２に示した外部記憶装置の構成を例示する図である。
【図１５】図１２に示したファイル変換計算機の構成を例示する図である。
【図１６】図１４に示した業務ファイルリストデータの構成を例示する図である。
【図１７】図１４に示した変換ファイルリストデータの構成を例示する図である。
【図１８】図１５に示したファイル変換リストデータの構成を例示する図である。
【図１９】第２実施形態におけるファイルダウンロード処理の動作を例示する時系列のフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図１から図１１を用いて第１実施形態を説明する。まず、図１から図８を用いて第１実施形態に係るシステムの構成を説明する。
【００２３】
図１は、オフライン対応クライアントサーバシステムの全体の概略構成を例示する。端末１０１とリモート計算機１０２とアプリ管理計算機１０３はネットワーク１０４を介して互いに通信をすることができる。
【００２４】
第１実施形態は、オンライン（端末１０１が、ネットワーク１０４を介して、リモート計算機１０２に接続している）状態では、ユーザ１０５は端末１０１を操作し、リモート計算機１０２を遠隔操作することで業務を行うことができる形態である。また、オフライン（端末１０１が、リモート計算機１０２に接続していない）状態では、ユーザ１０５は端末１０１を操作し、端末１０１内のアプリとデータを使用して業務を行うことができる形態である。
【００２５】
図２は、端末１０１の構成を例示する。端末１０１は、メモリ２０１と、内部記憶装置２０２と、バスなどの内部通信線（バスという）２０３と、プロセッサ２０４と、Ｉ／Ｏハードウェア２０５と、通信ハードウェア２０６と、モニタ２０７と、キーボード２０８と、マウス２０９とを含んで構成される。プロセッサ２０４は、プログラムの処理をおこなう装置である。
【００２６】
内部記憶装置２０２は、ハードディスクや不揮発性メモリなどであり、プログラムやデータを格納する装置である。メモリ２０１は、実行するプログラムの格納や、一時的なデータの格納をおこなうための記憶装置である。Ｉ／Ｏハードウェア２０５は、モニタ２０７への出力とキーボード２０８とマウス２０９からの入力を制御する装置である。通信ハードウェア２０６は、他の計算機との間のネットワーク回線を制御する装置である。内部記憶装置２０２には、本実施形態におけるオフライン対応クライアントサーバシステムを実現するためのプログラムと各種データが格納される。
【００２７】
プログラムとしては、ＯＳ（Operating System）プログラム２１０、リモート操作クライアントプログラム２１１、クライアント管理プログラム２１２、クライアント内業務アプリプログラム２１３がインストールされる。データとしては、クライアント業務アプリリストデータ２１４、業務ファイルリストデータ２１５、クライアント業務ファイル２１６が格納される。メモリ２０１には、内部記憶装置２０２上のＯＳプログラム２１０が、プロセッサ２０４によりロードされ、実行される。
【００２８】
ＯＳプログラム２１０は、Ｉ／Ｏハードウェア２０５の制御、内部記憶装置２０２からのデータのメモリ２０１へのロードなどを行う。また、プロセッサ２０４が実行するＯＳプログラム２１０の制御により、内部記憶装置２０２から、リモート操作クライアントプログラム２１１、クライアント管理プログラム２１２、クライアント内業務アプリプログラム２１３がメモリ２０１にロードされ、実行される。
【００２９】
図３は、リモート計算機１０２の構成を例示する。リモート計算機１０２は、メモリ２０１と、内部記憶装置２０２と、バス２０３と、プロセッサ２０４と、通信ハードウェア２０６とを含んで構成される。内部記憶装置２０２には、本実施形態におけるオフライン対応クライアントサーバシステムを実現するためのプログラムと各種データが格納される。
【００３０】
プログラムとしては、ＯＳプログラム３００、リモート操作サーバプログラム３０１、サーバ管理プログラム３０２、サーバ内業務アプリプログラム３０３がインストールされる。データとしては、サーバ業務アプリリストデータ３０４、サーバ業務ファイル３０５が格納される。メモリ２０１には、内部記憶装置２０２上のＯＳプログラム３００が、プロセッサ２０４によりロードされ、実行される。
【００３１】
ＯＳプログラム３００は、内部記憶装置２０２からのデータのメモリ２０１へのロードなどを行う。また、プロセッサ２０４が実行するＯＳプログラム３００の制御により、内部記憶装置２０２から、リモート操作サーバプログラム３０１、サーバ管理プログラム３０２、サーバ内業務アプリプログラム３０３がメモリ２０１にロードされ、実行される。
【００３２】
図４は、アプリ管理計算機１０３の構成を例示する。アプリ管理計算機１０３は、メモリ２０１と、内部記憶装置２０２と、バス２０３と、プロセッサ２０４と、通信ハードウェア２０６とを含んで構成される。内部記憶装置２０２には、本実施形態におけるオフライン対応クライアントサーバシステムを実現するためのプログラムと各種データが格納される。
【００３３】
プログラムとしては、ＯＳプログラム４００、アプリ管理プログラム４０１がインストールされる。データとしては、管理アプリリストデータ４０２、アプリインストールプログラム４０３が格納される。メモリ２０１には、内部記憶装置２０２上のＯＳプログラム４００が、プロセッサ２０４によりロードされ、実行される。
【００３４】
ＯＳプログラム４００は、内部記憶装置２０２からのデータのメモリ２０１へのロードなどを行う。また、プロセッサ２０４が実行するＯＳプログラム４００の制御により、内部記憶装置２０２から、アプリインストールプログラム４０３がメモリ２０１にロードされ、実行される。
【００３５】
図５は、図２に示したクライアント業務アプリリストデータ２１４の構成を例示する。図５に示すように、クライアント業務アプリリストデータ２１４は、アプリＩＤ５０１、アプリ名称５０２、バージョン５０３の各フィールドを含んで構成されている。
【００３６】
アプリＩＤ５０１は、オフライン状態の端末１０１上で稼働するアプリについて一意となる識別子を記載するフィールドである。アプリ名称５０２は、アプリＩＤ５０１に対応するアプリの名称を記載するフィールドである。バージョン５０３は、アプリＩＤ５０１に対応するアプリの端末１０１内にインストールされているバージョンを記載するフィールドである。クライアント業務アプリリストデータ２１４には、オフライン状態において端末１０１上で稼働するアプリの一覧を記載しておく。
【００３７】
図６は、図２に示した業務ファイルリストデータ２１５の構成を説明する図である。図６に示すように、業務ファイルリストデータ２１５は、ファイルＩＤ６０１、アプリＩＤ６０２、ファイル状態６０３、リモート計算機上ファイルパス６０４、端末上ファイルパス６０５、リモート更新日時６０６の各フィールドを含んで構成されている。
【００３８】
ファイルＩＤ６０１は、オフライン状態の端末１０１上で処理するデータファイルについて一意となる識別子を記載するフィールドである。アプリＩＤ６０２は、ファイルＩＤ６０１に対応するファイルを処理するアプリの識別子を記載するフィールドである。ファイル状態６０３は、オンライン状態で端末からリモート計算機１０２をリモート操作した後、リモート操作を終了する時点で、ファイルＩＤ６０１に対応するファイルがリモート計算機１０２上のアプリで使用中の状態（例えば、アプリによってユーザがファイルの内容の閲覧や変更できる状態）だったかどうかを記載するフィールドである。リモート計算機上ファイルパス６０４は、ファイルＩＤ６０１に対応するファイルのリモート計算機１０２上での保存場所（ファイルパス）を記載するフィールドである。
【００３９】
端末上ファイルパス６０５は、端末１０１上での、ファイルＩＤ６０１に対応するファイルの保存場所（ファイルパス）を記載するフィールドである。リモート更新日時６０６は、ファイルＩＤ６０１に対応するファイルのリモート計算機１０２上での更新日時を記載するフィールドである。
【００４０】
図７は、図３に示したサーバ業務アプリリストデータ３０４の構成を説明する図である。図７に示すように、サーバ業務アプリリストデータ３０４は、アプリＩＤ５０１、アプリ名称５０２、バージョン５０３の各フィールドを含んで構成されている。サーバ業務アプリリストデータ３０４には、リモート計算機１０２で稼働するアプリのうちで、端末１０１がオフライン状態でも使用するアプリの一覧を記載しておく。
【００４１】
図８は、図４に示した管理アプリリストデータ４０２の構成を説明する図である。図８に示すように、管理アプリリストデータ４０２は、アプリＩＤ５０１、アプリ名称５０２、バージョン５０３の各フィールドを含んで構成されている。管理アプリリストデータ４０２には、リモート計算機１０２で稼働するアプリのうちで、端末１０１がオフライン状態でも使用するアプリの一覧を記載しておく。
【００４２】
次に、図９から図１１を用いて第１実施形態に係るシステムの動作を説明する。
【００４３】
なお、以下説明する各処理は、プロセッサが上述の各プログラムを実行することにより計算機上に具現化される処理部により実現されるものであるが、説明の便宜上、プログラムを実行主体として説明する。
【００４４】
図９は、第１実施形態におけるオフライン対応クライアントサーバシステム全体の動作を説明するフローチャートである。まず、ユーザ１０５が端末１０１を起動すると、端末１０１で動作を開始したクライアント管理プログラム２１２は、オフライン業務を行うかどうかをユーザ１０５に問い合わせる（Ｓ９０２）。
【００４５】
Ｓ９０２において、オフライン業務を実施するという回答をユーザ１０５から得た場合には、端末１０１でアプリを実行する（Ｓ９１２）。具体的には、業務ファイルリストデータ２１５の内容に従って、ファイル状態６０３がアプリ使用中のファイルに対して、該当アプリＩＤ６０２に対応するアプリで端末上ファイルパス６０５に記載のクライアント業務ファイル２１６を開く処理を行う。
【００４６】
この処理により、オンライン状態でリモート計算機を遠隔操作していた時点でのアプリの状態が、オフライン状態の端末で再現されるため、ユーザは端末でファイルを選択してアプリを開始する作業が不要となりオンラインでの業務からオフラインでの業務に容易に切り替えることができるようになる。
【００４７】
また、ユーザの指示に従い、ファイル状態がアプリ不使用のファイルに対しても、該当ファイルを開く処理を行う。
【００４８】
この処理により、オンライン状態でリモート計算機を遠隔操作していた時点では不使用状態だったファイルに対してもオフライン状態で使用することができるようになる。
【００４９】
その後、ユーザ１０５の指示や起動したアプリが全て終了したことを検出した時や、ユーザ１０５の指示など、所定の方法によりオフライン業務の終了を検出する（Ｓ９１３）と、端末１０１からリモート計算機１０２へのネットワーク接続が可能かどうかを調査し（Ｓ９１４）、リモート計算機１０２へのネットワーク接続が可能であればオンライン業務をするかどうかをユーザ１０５に問い合わせる（Ｓ９１５）。Ｓ９１５にて、オンライン業務をしないという回答の場合は、処理を終了する（Ｓ９１１）。
【００５０】
Ｓ９０２において、オフライン業務を実施しないという回答をユーザ１０５から得た場合、または、Ｓ９１４にて、オンライン業務をするという回答を得た場合は、クライアント管理プログラム２１２は、リモート操作クライアントプログラム２１１に対してリモート計算機１０２のリモート操作サーバプログラム３０１へ接続指示を出す。リモート計算機１０２に接続できなかった場合（Ｓ９０３でＮｏ）は、オフライン処理（Ｓ９１２）を実行する。
【００５１】
Ｓ９０３にてリモート計算機１０２に接続できた場合（Ｓ９０３でＹｅｓ）、クライアント管理プログラム２１２は、端末１０１でオフライン用アプリが稼働中であれば、終了（Ｓ９０４）する。その後、端末１０１でオフライン状態の時に更新されたクライアント業務ファイル２１６があれば、リモート計算機１０２にアップロードする（Ｓ９０５）。
【００５２】
ここで、オフライン状態の時に更新されたクライアント業務ファイル２１６は、今回の、端末１０１の起動後に、Ｓ９１２のアプリ実行においてユーザが更新した業務ファイルと、今回より前の端末１０１の起動後に、Ｓ９１２のアプリ実行においてユーザが更新した業務ファイルとを含む、リモート計算機１０２に未だアップロードしていないファイルをすべて含む。
【００５３】
具体的には、クライアント管理プログラム２１２は、業務ファイルリストデータ２１５の内容に従って、各ファイルについてリモート更新日時と端末１０１内のファイルの更新日時を比較して、端末１０１内のファイルの更新日時が後の場合、そのファイルをサーバ管理プログラム３０２へ送信する。
【００５４】
サーバ管理プログラム３０２は、受信したファイルをリモート計算機１０２内のサーバ業務ファイル３０５に格納、つまり、ユーザ１０５に確認して上書き保存する。
【００５５】
さらに、オフライン状態でもファイルを処理可能か判定する。処理可能でない場合は、処理可能となるように、端末１０１に対して、必要なアプリの追加または更新を行う（Ｓ９０６、詳細は図１０を用いて説明する）。
【００５６】
なお、上記Ｓ９０５とＳ９０６の処理の順序は問わず、先にＳ９０６の処理を実行した後に、Ｓ９０５の処理を実行しても良い。
【００５７】
図１０は、Ｓ９０６の処理の詳細を示した時系列のフローチャートである。
【００５８】
Ｓ９０６の処理では、まず、サーバ管理プログラム３０２はサーバ業務アプリリストデータ３０４の内容をクライアント管理プログラム２１２に送信する（Ｓ１００１）。クライアント管理プログラム２１２は、オフライン状態でもファイルを処理可能か判定するため、受信したサーバ業務アプリリストデータ３０４の内容と、クライアント業務アプリリストデータ２１５の内容を比較し、処理可能でなければ、処理可能となるように、クライアント業務アプリリストデータ２１５に無いアプリと更新が必要なアプリを、要追加・要更新アプリとして抽出する（Ｓ１００２）。
【００５９】
処理可能な場合とは、例えば、オフライン状態で使用するアプリについて端末１０１のアプリとリモート計算機１０２のアプリとが、バージョンを含めて同一である場合である。
【００６０】
処理可能でない、すなわち、更新が必要な場合とは、たとえば、同じアプリでも計算機１０１にインストールされているアプリのバージョンがリモート計算機１０２のアプリより古い場合である。ただしバージョンが古くても扱うデータファイルやアプリそのものに互換性があるものや、異なるアプリでも互換性があるものは更新不要と判断するよう、抽出規則を定めても良い。
【００６１】
クライアント管理プログラム２１２は、抽出した要追加・要更新アプリのリストをアプリ管理プログラム４０１に送信する（Ｓ１００３）。
【００６２】
アプリ管理プログラム４０１は、要追加・要更新アプリリストに記載されたアプリのインストールプログラム４０３をクライアント管理プログラム２１２に送信する。クライアント管理プログラム２１２は、受信したアプリインストールプログラム４０３を実行し、端末１０１にアプリをインストールし、追加または更新する（Ｓ１００５）。また、インストールしたアプリの情報をクライアント業務アプリリストデータ２１５に反映する（Ｓ１００６）。
【００６３】
Ｓ９０６の処理が完了すると、リモート操作が可能になり、ユーザ１０５はリモート計算機１０２のリモート操作を開始し（Ｓ９０７）、業務を実施する。例えば、サーバ業務ファイル３０５をサーバ内業務アプリプログラム３０３で開き、閲覧や編集などを実施する。
【００６４】
ここで、オフライン対応クライアントサーバシステムは、ユーザの指示や、ネットワーク不良によるリモート操作接続の切断発生により、リモート操作が終了したことを検出する（Ｓ９０８）まで、リモート計算機１０２上で開いたファイルについて、端末１０１に格納されているファイルを更新し、同期する処理を所定のタイミングで実施する（Ｓ９０９）。所定のタイミングとは、例えば一定時間ごと、内部記憶装置２０２上のファイルが更新されたタイミング、アプリがテンポラリファイルとして別名保存したタイミングなどである。
【００６５】
図１１は、Ｓ９０９の同期処理の詳細を示した時系列のフローチャートである。Ｓ９０９の処理では、まずクライアント管理プログラム２１２は業務ファイルリストデータ２１５の内容をサーバ管理プログラム３０２に送信する（Ｓ１１０１）。
【００６６】
サーバ管理プログラム３０２は、サーバ業務アプリリストデータ３０４記載のアプリについて、該当のアプリが使用中のデータファイルのリストを取得する（Ｓ１１０２）。Ｓ１１０２で取得した使用中ファイルのリストとＳ１１０１で受信した業務ファイルリストデータ２１５の内容を比較し、業務ファイルリストデータ２１５に記載のない使用中ファイルと、業務ファイルリストデータ２１５記載のリモート更新日時６０６がリモート計算機１０２内の該当ファイルの更新日時より古いファイルとを同期対象ファイルして抽出する（Ｓ１１０３）。そして、同期対象ファイルの内容をクライアント管理プログラム２１２に送信する（Ｓ１１０４）。
【００６７】
クライアント管理プログラム２１２は、受信したファイルを端末１０１に保存して、ファイルを更新する（Ｓ１１０５）。また、受信したファイルの内容に従い、業務ファイルリストデータ２１５を更新する（Ｓ１１０６）。
【００６８】
なお、Ｓ１１０４にて、サーバ管理プログラム３０２が送付するファイルの内容は、受信した業務ファイルリストデータ２１５の内容に従い、既に送信済みのファイルの内容との差分とし、Ｓ１１０５にてクライアント管理プログラム２１２が保存するファイルの内容は差分の部分とすることもできる。
【００６９】
その後Ｓ９０８において、リモート接続の切断を検出した際には、オフライン業務をするかどうかをユーザ１０５に問い合わせて（Ｓ９１０）、オフライン業務をする回答を得た場合はオフライン処理（Ｓ９１２）を実行する。オフライン業務をしないという回答を得た場合には処理を終了する（Ｓ９１１）。
【００７０】
上記のように、第１の実施形態によれば、オンラインでリモート計算機を遠隔操作中に使用中のアプリとデータが端末にダウンロードされ、オフライン状態での端末上で使用可能となる。このため、ユーザ１０５は、オフライン状態で処理を継続するための準備作業が不要となり、突然の出張など、緊急にオフライン環境に移動が必要となってもすぐに移動可能となる。また、当初アプリがインストールされていない端末であってもオフライン作業可能となる。
【００７１】
なお、第１実施形態では、オフライン状態で端末１０１にて使用するデータをリモート計算機１０２から送信する場合に、データ管理サーバを設け、データを中継させる方法を用いてもよい。
【００７２】
次に、第２実施形態を説明する。まず、図１２から図１８、図３、図４を用いて第２実施形態に係るシステムの構成を説明する。
【００７３】
図１２は、オフライン対応クライアントサーバシステムの全体の概略構成を例示する。据置型の端末計算機１２０１とリモート計算機１０２とアプリ管理計算機１０３とファイル変換計算機１２０２はネットワーク１０４を介して互いに通信をすることができる。
【００７４】
第２実施形態は、ユーザ１０５は据置型の端末計算機１２０１を操作してリモート計算機１０２に接続し、リモート計算機１０２を遠隔操作することで業務を行うことができる形態である。据置型の端末計算機１２０１には着脱可能な外部記憶装置１２０３が接続される。外部記憶装置１２０３には、オフライン状態で使用するデータファイルが格納される。外部記憶装置１２０３としては、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）で接続されるメモリやポータブルハードディスクドライブ、スマートフォン、携帯電話などが該当する。
【００７５】
外部記憶装置１２０３に格納されるオフライン状態で使用するデータファイルには、リモート計算機１０２上のデータファイルと、そのデータファイルをファイル変換計算機１２０２で変換したファイル（以下、変換ファイル）を含む。その後、ユーザ１０５は外部接続装置１２０３を、端末１２０１から取り外し、可搬型の端末１２０４に接続してデータファイルをオフライン状態で使用することができる。
【００７６】
可搬型端末１２０４の構成は、据置型の端末１２０１と同様であるが、インストールされるクライアント業務アプリプログラムが据置型の端末１２０１とは異なってもよい。可搬型端末１２０４にインストールされるクライアント業務アプリプログラムを想定して、データファイルをファイル変換計算機１２０２が変換して、変換ファイルとして外部記憶装置１２０３に格納することで、可搬型端末１２０４にインストールされるクライアント業務アプリプログラムを使用してオフライン状態でデータファイルを処理することができるようになる。
【００７７】
図１３は、第２実施形態の端末１２０１の構成を例示する。第２実施形態の端末１２０１の構成は、第１実施形態の端末１０１と同様であるが、Ｉ／Ｏハードウェア２０５を介して外部記憶装置１２０３が接続される点が異なる。
【００７８】
リモート計算機１０２の構成は、第１実施形態と同様、図３に示す構成である。また、アプリ管理計算機１０３の構成は、第１実施形態と同様、図４に示す構成である。
【００７９】
図１４は、外部記憶装置１２０３の構成を例示する。外部記憶装置１２０３には、業務ファイルリストデータ１４０３、クライアント業務ファイル２１６、変換ファイルリストデータ１４０１、変換ファイル１４０２が格納される。変換ファイル１４０２とは、クライアント業務ファイル２１６をファイル変換計算機１２０２により変換したファイルであり、可搬型端末１２０４で使用される。
【００８０】
図１５は、ファイル変換計算機１２０２の構成を例示する。ファイル変換計算機１２０２の構成は、第１実施形態のアプリ管理計算機１０３と同様であるが、内部記憶装置２０２に、ファイル変換プログラム１５０１、ファイル変換リストデータ１５０２が格納され、ファイル変換プログラム１５０１が、プロセッサ２０４が実行するＯＳプログラム１５００の制御により実行される。
【００８１】
図１６は、図１４に示した業務ファイルリストデータ１４０３の構成を説明する図である。業務ファイルリストデータ１４０３は、第１実施形態の業務ファイルリストデータ２１５と同様であるが、変換ファイルＩＤ１６０１のフィールドが追加されている。変換ファイルＩＤ１６０１は、ファイルＩＤ６０１に対応するファイルを変換した変換ファイルの識別子を記載するフィールドである。
【００８２】
図１７は、図１４に示した変換ファイルリストデータ１４０１の構成を説明する図である。図１７に示すように、変換ファイルリストデータ１４０１は、変換ファイルＩＤ１７０１、アプリＩＤ１７０２、外部記憶装置上ファイルパス１７０３、リモート更新日時１７０４の各フィールドから構成される。変換ファイルＩＤ１７０１は、変換済ファイルの識別子を記載するフィールドである。
【００８３】
アプリＩＤ１７０２は、変換ファイルＩＤ１７０１に対応するファイルを処理する代替アプリの識別子を記載するフィールドである。外部記憶装置上ファイルパス１７０３は、変換ファイルＩＤ１７０１に対応するファイルの外部記憶装置１２０３上での保存場所（ファイルパス）を記載するフィールドである。リモート更新日時１７０４は、変換ファイルＩＤ１７０１に対応するファイルのリモート計算機１０２上での更新日時を記載するフィールドである。
【００８４】
図１８は、図１５に示したファイル変換リストデータ１５０２の構成を説明する図である。図１８に示すように、ファイル変換リストデータ１５０２は、変換ＩＤ１８０１、変換前アプリＩＤ１８０２、変換後アプリＩＤ１８０３の各フィールドから構成される。変換ＩＤ１８０１は、ファイル変換の識別子を記載するフィールドである。変換前アプリＩＤ１８０２は、変換ＩＤ１８０１に対応する変換前のアプリＩＤを記載するフィールドである。変換後アプリＩＤ１８０３は、変換ＩＤ１８０１に対応する変換後のアプリＩＤを記載するフィールドである。
【００８５】
次に、図９および図１９を用いて第２実施形態に係るシステムの動作を説明する。
【００８６】
第２実施形態において、ユーザ１０５が据置型端末１２０１を使用する場合も、可搬型端末１２０４を使用する場合も、システム全体の動作は、第１実施形態と同様に、図９に示すフローチャートで示される。第１実施形態と異なる点は、Ｓ９０５のファイルアップロードの動作と、Ｓ９０９のファイルダウンロードの動作と、Ｓ９１２の端末でのアプリ実行動作である。以下、違いのある箇所について、説明する。
【００８７】
Ｓ９０２において、クライアント管理プログラム２１２が、ユーザ１０５から、オフライン業務を実施するという回答を得た場合には、第１実施形態と同様に、端末１２０１でアプリを実行する（Ｓ９１２）。その際、アプリで開く業務ファイルは外部記憶装置１２０３のクライアント業務ファイル２１６に格納されたファイルを使用する。
【００８８】
具体的には、業務ファイルリストデータ１４０３の内容に従って、ファイル状態６０３がアプリ使用中のファイルに対して、該当アプリＩＤ６０２に対応するアプリで端末上ファイルパス６０５に記載のクライアント業務ファイル２１６を開く処理を行う。ここで、該当アプリＩＤ６０２に対応するアプリがクライアント業務アプリリストデータ２１４にない、すなわち、端末１２０１にインストールされていない場合には、変換ファイルＩＤ１６０１に記載の変換ファイルを開く処理を行う。
【００８９】
変換ファイルを開く処理は、業務ファイルリスト１４０３の変換ファイルＩＤ１６０１に記載の変換ファイルＩＤに対応するファイルについて、変換ファイルリストデータ１４０１の内容に従って、アプリＩＤ１７０２記載の代替アプリで外部記憶装置上ファイルパス１７０３記載のファイルを開く処理である。
【００９０】
変換ファイルリストデータ１４０１に記載の変換ファイルＩＤ１７０１に対応するアプリＩＤ１７０２記載の代替アプリが、クライアント業務アプリリストデータ２１４にない、すなわち、端末１２０１にインストールされていない場合には、ユーザ１０５にファイルを開くことができない旨の警告を出し、該当業務ファイルに対するアプリ起動は行わない。
【００９１】
Ｓ９０５において、端末１２０１でオフライン状態の時に更新されたクライアント業務ファイル２１６をリモート計算機１０２にアップロードする。第２実施形態では、業務ファイルリストデータ１４０３の内容に従って、各ファイルに加えて変換ファイルについてリモート更新日時と端末１２０１内のファイルの更新日時を比較して、端末１２０１内のファイルの更新日時が後の場合、そのファイルの内容をサーバ管理プログラム３０２へ送信する。
【００９２】
Ｓ９０９において、リモート計算機１０２上で開いたファイルを端末１２０１にダウンロードする処理を所定のタイミングで実施する。
【００９３】
図１９は、第２実施形態におけるＳ９０９の同期処理の詳細を示した時系列のフローチャートである。
【００９４】
第２実施形態におけるＳ９０９の処理の中で、Ｓ１１０１からＳ１１０６の処理は、第１実施形態と同様である。ただし、Ｓ１１０５のファイルの保存先は外部記憶装置１２０３である。その後、クライアント管理プログラム２１２は、Ｓ１１０４で受信した同期対象ファイルを、変換対象ファイルとして、ファイル変換プログラム１５０１に送付する（Ｓ１９０１）。
【００９５】
ファイル変換プログラム１５０１は、受信した変換対象ファイルについて、ファイル変換リストデータ１５０２の内容に従ってファイル変換し（Ｓ１９０２）、変換後のファイルをクライアント管理プログラム２１２に送付する（Ｓ１９０３）。
【００９６】
クライアント管理プログラム２１２は、受信した変換後のファイルを外部記憶装置１２０３に保存する（Ｓ１９０４）。また、受信したファイルの内容に従い、業務ファイルリストデータ１４０３の変換ファイルＩＤフィールド１６０１と変換ファイルリストデータ１４０１を更新する（Ｓ１９０５）。
【００９７】
上記のように、第２の実施形態によれば、オンラインでリモート計算機１０２を遠隔操作中にファイルデータが外部記憶装置１２０３にダウンロードされ、オフライン状態での端末１２０４上で使用可能となる。このため、ユーザ１０５は、オフライン状態で処理を継続するための準備作業が不要となり、突然の出張など、緊急にオフライン環境に移動が必要となってもすぐに移動可能となる。
【００９８】
また、ファイルデータを外部記憶装置１２０３に保存するため、外部記憶装置１２０３を、オンラインで遠隔操作した端末１２０１とは異なる別の端末１２０４等に接続することで、別の端末でもオフライン状態でファイルデータを使用することが可能となる。
【００９９】
このため、オンライン状態で操作する端末と、オフライン状態で使用する端末は別で良く、例えば、組織内の自席では外部記憶装置を接続した状態でデスクトップ型端末を使用し、出張時には、外部記憶装置を外してノート型端末と一緒に持ち出すことにより、オフライン状態での処理を行うことが可能となる。
【０１００】
なお、第２実施形態では、オフライン状態で端末１２０１にて使用するデータをリモート計算機１０２から送信する場合に、データ管理サーバを設け、データを中継させる方法を用いてもよい。
【０１０１】
なお、以上説明したシステムの構成や動作は、例示であり実施形態を限定するものではなく、開示する主題の要旨を逸脱しない範囲内において種々変更を加えてもよい。
【符号の説明】
【０１０２】
１０１…端末、１０２…リモート計算機、１０３…アプリ管理計算機、１０４…ネットワーク、１０５…ユーザ、端末２０１…メモリ、２０２…記憶装置、２０３…バス、２０４…プロセッサ、２０５…Ｉ／Ｏハードウェア、２０６…通信ハードウェア、２０７…モニタ、２０８…キーボード、２０９…マウス、２１０…ＯＳプログラム、２１１…リモート操作クライアントプログラム、２１２…クライアント管理プログラム、２１３…クライアント内業務アプリプログラム、２１４…クライアント業務アプリリストデータ、２１５…業務ファイルリストデータ、２１６…クライアント業務ファイル、３００…ＯＳプログラム、３０１…リモート操作サーバプログラム、３０２…サーバ管理プログラム、３０３…サーバ業務アプリプログラム、３０４…サーバ業務アプリリストデータ、３０５…サーバ業務ファイル、４００…ＯＳプログラム、４０１…アプリ管理プログラム、４０２…管理アプリリストデータ、４０３…アプリインストールプログラム、５０１…アプリＩＤフィールド、５０２…アプリ名称フィールド、５０３…バージョンフィールド、６０１…ファイルＩＤフィールド、６０２…アプリＩＤフィールド、６０３…ファイル状態フィールド、６０４…リモート計算機上ファイルパスフィールド、６０５…端末上ファイルパスフィールド、６０６…リモート更新日時フィールド、１２０１…端末計算機、１２０２…ファイル変換計算機、１２０３…外部記憶装置、１２０４…可搬型端末計算機、１４０１…変換ファイルリストデータ、１４０２…変換ファイル、１４０３…業務ファイルリストデータ、１５０１…ファイル変換プログラム、１５０２…ファイル変換リストデータ、１６０１…変換ファイルＩＤフィールド、１６０２…外部記憶装置上ファイルパスフィールド、１７０１…変換ファイルＩＤフィールド、１７０２…代替アプリＩＤフィールド、１７０３…外部記憶装置上ファイルパスフィールド、１７０４…リモート更新日時フィールド、１８０１…変換ＩＤフィールド、１８０２…変換前アプリＩＤフィールド、１８０３…変換後アプリＩＤフィールド。
【図１】
2013003867.tif 000003
【図２】
2013003867.tif 000004
【図３】
2013003867.tif 000005
【図４】
2013003867.tif 000006
【図５】
2013003867.tif 000007
【図６】
2013003867.tif 000008
【図７】
2013003867.tif 000009
【図８】
2013003867.tif 000010
【図９】
2013003867.tif 000011
【図１０】
2013003867.tif 000012
【図１１】
2013003867.tif 000013
【図１２】
2013003867.tif 000014
【図１３】
2013003867.tif 000015
【図１４】
2013003867.tif 000016
【図１５】
2013003867.tif 000017
【図１６】
2013003867.tif 000018
【図１７】
2013003867.tif 000019
【図１８】
2013003867.tif 000020
【図１９】
2013003867.tif 000021