(57)【要約】【課題】他の装置に保存される電子ファイルへのアクセスに関する処理を自動化する。【解決手段】アクセス元端末が、他の装置に保持される電子ファイルに対してアクセス可能なシステムにおける情報処理装置は、電子ファイルへのアクセスの処理手順を保持する記憶部と、アクセス対象となる指定電子ファイルのサイズ及び該処理手順に含まれる処理の実行装置の状態に応じて、該処理手順に対応する実行処理手順から指定電子ファイルにアクセスする実行手順を決定する決定部と、を備える。【選択図】図５Ａ
2015166971.tif 000002
【特許請求の範囲】
【請求項１】
アクセス元端末が、他の装置に保持される電子ファイルに対してアクセス可能なシステムにおいて、
電子ファイルへのアクセスの処理手順を保持する記憶部と、
アクセス対象となる指定電子ファイルのサイズ及び前記処理手順に含まれる処理の実行装置の状態に応じて、前記処理手順に対応する実行処理手順から前記指定電子ファイルにアクセスする実行手順を決定する決定部と、
を備える情報処理装置。
【請求項２】
前記決定部は、前記アクセス元端末から前記指定電子ファイルへのアクセス要求を受信した場合、前記アクセス要求に基づいて前記処理手順に含まれる処理の実行装置を特定して、前記処理手順に対応する実行処理手順を求める、
請求項１に記載の情報処理装置。
【請求項３】
前記決定部は、前記処理手順に対応する実行処理手順に含まれる処理について、前記実行装置の状態に基づいて、実行可能か否かを判定し、前記実行処理手順に含まれる全処理について実行可能と判定した場合に、該実行処理手順を前記実行手順に決定する、
請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、前記全処理について実行可能と判定した実行処理手順が複数ある場合には、前記指定電子ファイルのサイズ及び通信回線の属性に基づいて、各実行処理手順のコストを算出し、該コストに基づいて、前記実行手順を決定する、
請求項３に記載の情報処理装置。
【請求項５】
前記記憶部は、前記処理手順を複数保持し、前記複数の処理手順のうちの一部は、前記指定電子ファイルのコピー処理を含み、
前記決定部は、前記複数の処理手順について対応する実行処理手順を求め、前記指定電子ファイルの保存先装置に対して遠隔アクセス可能でない場合には、前記指定電子ファイルのコピー処理を含む実行処理手順の中から前記実行手順を決定する、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記記憶部は、前記処理手順を複数保持し、前記複数の処理手順のうちの一部は、遠隔アクセスの処理を含み、
前記決定部は、前記複数の処理手順について対応する実行処理手順を求め、前記アクセス元端末が前記指定電子ファイルの閲覧又は編集可能なアプリケーションを搭載していない場合には、遠隔アクセスを含む実行処理手順の中から前記実行手順を決定する、
請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記実行手順に従って、該実行手順に含まれる各処理を各実行装置に指示する制御部をさらに備え、
前記制御部は、前記実行手順に前記指定電子ファイルのコピー処理が含まれる場合には、前記実行手順に含まれる全処理の終了後、前記コピー処理によって作成されたコピーファイルを前記指定電子ファイルに再度コピーさせる処理の実行を該当の実行装置に指示する、
請求項１から６のいずれか一項に記載の情報処理装置。
【請求項８】
前記システム内の前記他の装置は複数であり、一部又は全部が互いに、種類、処理能力が異なる装置である、
請求項１から７のいずれか一項に記載の情報処理装置。
【請求項９】
前記処理手順は、処理を実行する実行装置、処理の対象となる電子ファイルが特定されない状態である、
請求項１から８のいずれか一項に記載の情報処理装置。
【請求項１０】
電子ファイルを保持する複数の装置と、
前記複数の装置のいずれかに保持される電子ファイルに対してアクセスするアクセス元端末と、
電子ファイルへのアクセスの処理手順を保持する記憶部と、
アクセス対象となる指定電子ファイルのサイズ及び前記処理手順に含まれる処理の実行装置の状態に応じて、前記処理手順に対応する実行処理手順から前記指定電子ファイルにアクセスする実行手順を決定する決定部と、
を備える情報処理装置と、
を含む情報処理システム。
【請求項１１】
アクセス元端末が、他の装置に保持される電子ファイルに対してアクセス可能なシステムにおける情報処理装置が、
電子ファイルへのアクセスの処理手順を記憶部に保持し、
アクセス対象となる指定電子ファイルのサイズ及び前記処理手順に含まれる処理の実行装置の状態に応じて、前記処理手順に対応する実行処理手順から前記指定電子ファイルにアクセスする実行手順を決定する、
情報処理方法。
【請求項１２】
アクセス元端末が、他の装置に保持される電子ファイルに対してアクセス可能なシステムにおける情報処理装置に、
電子ファイルへのアクセスの処理手順を記憶部に保持させ、
アクセス対象となる指定電子ファイルのサイズ及び前記処理手順に含まれる処理の実行装置の状態に応じて、前記処理手順に対応する実行処理手順から前記指定電子ファイルにアクセスする実行手順を決定させる、
ための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の装置に保存される電子ファイルにアクセス可能な情報処理システムにおける情報処理装置、情報処理システム、情報処理方法、及び、情報処理プログラムに関する。
【背景技術】
【０００２】
近年、スマートフォン、タブレット端末等のスマート端末の普及により、個人がＰＣを含めた複数の機器を利用する形態が一般的になってきている。また、ユーザの所有する電子ファイルを保存し、ユーザの位置を問わずに該コンテンツにアクセス可能にするクラウドサービスも普及している。また、家庭内の機器に保存されている電子ファイルを遠隔からスマート端末等によってアクセスするシステムも用いられる。
【０００３】
家庭内の機器に保存されている電子ファイルに遠隔からスマート端末によってアクセスするシステムでは、スマート端末のプラットフォームが家庭内の機器（ＰＣ等）と互換性がないことがある。例えば、スマート端末と家庭内のＰＣとの間で電子ファイルの処理に互換性がない場合には、ＰＣ上で作成された電子ファイルをスマート端末でＰＣと同じようにして開いたり編集したりすることは困難である。
【０００４】
そのため、ＰＣ上で電子ファイルを開き、該ＰＣ上の画面データをスマート端末に送信して、スマート端末からＰＣ上の電子ファイルの閲覧、操作を可能にするリモートアクセスという技術が存在する。例えば、Ｗｉｎｄｏｗｓ（登録商標）では、リモートアクセスを実現するためのサービスとして、リモートデスクトッププロトコル（ＲＤＰ）がある。
【０００５】
図１は、家庭内の機器に保存されている電子ファイルに遠隔からスマート端末によってアクセス可能なシステムの一例である。（１）スマート端末において閲覧又は編集の実行可能なファイルにアクセスする場合には、該ファイルはスマート端末にコピーされ、スマート端末において閲覧又は編集のためのアプリケーションが実行される。例えば、図１に示される例では、リモートアクセスサーバを搭載するＰＣに保存されているファイルＢ．ｐｄｆは、スマート端末にコピーされる。スマート端末において閲覧又は編集を実行可能な場合とは、例えば、ファイルを閲覧又は編集するためのアプリケーションがスマート端末に搭載されている場合である。
【０００６】
（２）スマート端末において閲覧又は編集を実行不可能なファイルにアクセスする場合には、該ファイルは、必要であれば家庭内のリモートアクセスサーバを搭載するＰＣにコピーされ、該ＰＣにおいて閲覧又は編集のためのアプリケーションが実行される。スマート端末は、自身にファイルをコピーせずに、リモートアクセスサーバを搭載するＰＣにリモートアクセスして、ファイルにアクセスする。図１に示される例では、リモートアクセスサーバを搭載するＰＣに保存されているＡ．ｐｐｔファイルは、該ＰＣ上で実行され、スマート端末からリモートアクセスされる。スマート端末において閲覧又は編集を実行不可能な場合とは、例えば、スマート端末にファイルを閲覧又は編集するためのアプリケーションが搭載されていない場合である。クラウド上で仮想デスクトップサービスなどが提供されている場合はクラウド上にファイルがコピーされ、実行されたファイルにリモートアクセスされてもよい。
【０００７】
（３）スマート端末がサイズの大きいファイルにアクセスする場合には、該ファイルのスマート端末への転送にコストがかかってしまうため、該ファイルはリモートアクセスサ
ーバを搭載するＰＣにコピーされる。スマート端末からは、リモートアクセスを通じて該ＰＣにアクセスして、該ＰＣ上でファイルの閲覧又は編集のためのアプリケーションが実行される。図１に示される例では、家庭内の別の端末に保存されているファイルがリモートアクセスサーバを搭載するＰＣにコピーされているが、該ＰＣのストレージにあらかじめ保存されている場合はコピーの必要はない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−４９１６号公報
【特許文献２】特開平１０−２４０６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記のシステムにおいて、以下のような問題があった。例えば、上記（１）〜（３）のいずれの場合においても、ユーザ自身が、スマート端末へのコピーの要否判定、リモートアクセスサーバとして動作する装置の指定、ファイルの閲覧又は編集を実行するアプリケーションの指定等を行っており、手間がかかる。また、上記（３）のように、アクセスサーバにファイルをコピーしてリモートアクセスによって該ファイルにアクセスする場合には、一連の操作をユーザが行うため、ユーザにとっては面倒なものでもある。一連の操作とは、例えば、ファイルをリモートアクセス可能なＰＣにコピーし、リモートアクセスサーバを起動し、ファイルを閲覧又は編集するアプリケーションを起動し、スマート端末のリモートアクセスクライアントを起動してリモートアクセスサービスを指定して接続する、といったものである。
【００１０】
本発明の一態様は、他の装置に保存される電子ファイルへのアクセスに関する処理を自動化可能な情報処理装置、情報処理システム、情報処理方法、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の態様の一つは、
アクセス元端末が、他の装置に保持される電子ファイルに対してアクセス可能なシステムにおいて、
電子ファイルへのアクセスの処理手順を保持する記憶部と、
アクセス対象となる指定電子ファイルのサイズ及び前記処理手順に含まれる処理の実行装置の状態に応じて、前記処理手順に対応する実行処理手順から前記指定電子ファイルにアクセスする実行手順を決定する決定部と、
を備える情報処理装置である。
【００１２】
本発明の他の態様の一つは、上記情報処理装置と、アクセス元端末、電子ファイルを保持する装置を含む情報処理システムである。また、本発明の他の態様の一つは、情報処理装置が上記処理を実行する情報処理方法である。また、本発明の他の態様は、コンピュータを上述した情報処理装置として機能させる情報処理プログラム、及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体を含むことができる。コンピュータ等が読み取り可能な記録媒体には、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって非一時的に蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１３】
開示の情報処理装置，情報処理システム，情報処理方法及び情報処理プログラムによれば、他の装置に保存される電子ファイルへのアクセスに関する処理を自動化することがで
きる。
【図面の簡単な説明】
【００１４】
【図１】家庭内の機器に保存されている電子ファイルに遠隔からスマート端末によってアクセス可能なシステムの一例である。
【図２】第１実施形態に係る遠隔ファイルアクセスシステムの構成例を示す図である。
【図３】抽象化処理手順と、具体化処理手順と、の一例を示す図である。
【図４】サーバのハードウェア構成の一例を示す図である。
【図５Ａ】第１実施形態に係る遠隔ファイルアクセスシステムのサーバ、アクセス元端末、宅内機器群のそれぞれの機能構成の一例を示す図である。
【図５Ｂ】ユーザ機器関係テーブルの一例である。
【図５Ｃ】機器情報管理テーブルの一例である。
【図６】抽象化処理手順の一例である。
【図７】処理手順インスタンスの一例である。
【図８】具体化処理手順の評価式の一例である。
【図９Ａ】処理手順構成管理部の処理のフローチャートの一例である。
【図９Ｂ】処理手順構成管理部の処理のフローチャートの一例である。
【図１０Ａ】実行可能確認処理のフローチャートの一例である。
【図１０Ｂ】Ａｃｔｉｏｎ実行可能判定処理のフローチャートの一例である。
【図１０Ｃ】Ａｃｔｉｏｎ実行可能判定処理のフローチャートの一例である。
【図１０Ｄ】Ａｃｔｉｏｎ実行可能判定処理のフローチャートの一例である。
【図１１Ａ】処理実行制御部の処理のフローチャートの一例を示す図である。
【図１１Ｂ】処理実行制御部の処理のフローチャートの一例を示す図である。
【図１２】ファイル実行処理のフローチャートの一例である。
【図１３】ファイルコピー処理のフローチャートの一例である。
【図１４】後処理のフローチャートの一例である。
【発明を実施するための形態】
【００１５】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１６】
＜第１実施形態＞
図２は、第１実施形態に係る遠隔ファイルアクセスシステムの構成例を示す図である。遠隔ファイルアクセスシステム１００は、宅内に、サーバ１と、宅内機器群３と、を含み、宅外にアクセス元端末２を含む。
【００１７】
例えば、サーバ１と宅内機器群３とは、ＬＡＮ（Local Area Network）またはＷＬＡＮ（Wireless Local Area Network）に接続し、ホームネットワークを構築している。サー
バ１は、例えば、ウェブサーバ、遠隔アクセスサーバ、ファイル転送サーバの機能を有する。ウェブサーバがファイル転送サーバの機能を兼ねていても良い。宅内機器群３は、ホームネットワークに接続する複数の機器を含み、宅内機器群３に含まれる機器は、種類、機能、処理能力等がそれぞれ互いに異なっている。宅内機器群３の各機器は、ウェブクライアントおよびファイル転送クライアントの機能を有する。ウェブクライアントがファイル転送クライアントの機能を兼ねていても良い。
【００１８】
アクセス元端末２は、例えば、ウェブクライアント、ファイル転送クライアント、遠隔アクセスクラインアントの機能を有する。ウェブクライアントがファイル転送クライアントの機能を兼ねていても良い。アクセス元端末２は、例えば、インターネットやＬＡＮ、ＷＬＡＮを介して、ウェブクライアントからＨＴＴＰ（Hypertext Transfer Protocol）
やＨＴＴＰＳ（ＨＴＴＰ  Secure）等によりサーバ１に接続する。アクセス元端末２は、サーバ１を介して、サーバ１又は宅内機器群３の機器に保持されるファイルにアクセスする。
【００１９】
サーバ１は、例えば、ＰＣである。宅内機器群３には、例えば、ノート型ＰＣ  ３Ａ、デスクトップ型ＰＣ  ３Ｂ，タブレット端末３Ｃ等が含まれる。なお、サーバ１も宅内機器群３に分類されてもよい。アクセス元端末２は、例えば、スマートフォン、タブレット端末である。
【００２０】
第１実施形態では、サーバ１は、ファイルへのアクセスの処理手順を保持する。アクセス元端末２から宅内機器群３が保持するファイルへのアクセスが発生した場合に、サーバ１は、アクセス対象のファイルのサイズ及び処理手順に含まれる処理の実行可能装置等に基づいて、処理手順に対応する実行処理手順を求める。処理手順は、処理手順に含まれる処理の実行装置等の指定がなく抽象化されて保持されており、アクセス元端末２からのファイルアクセス時に、実行装置等が決定されて具体化される。「抽象化されて」とは、使用する装置又は実行されるアプリケーション等が個別具体的に特定されない状態をいう。一方、「具体化される」とは、使用する装置又は実行されるアプリケーション等が個別具体的に特定されている状態をいう。したがって、処理手順に対応する実行処理手順とは、具体化された処理手順のことである。実行装置は、宅内機器群３の中から、搭載するアプリケーション、機器状態、ハードウェア性能等から決定される。機器状態とは、例えば、電源切，スリープ，ログイン中，等である。
【００２１】
以降、抽象化されて保持されている処理手順を、抽象化処理手順と称する。また、実行装置等が決定されて具体化された実行処理手順を、具体化処理手順と称する。
【００２２】
サーバ１は、実行される具体化処理手順を決定すると、該具体化手順に従って、各機器に処理の実行を依頼する。
【００２３】
図３は、抽象化処理手順と、具体化処理手順との一例を示す図である。ファイルを閲覧及び編集する場合には、共通して、まず、「ファイルを開く」という行為が行われる。「ファイルを開く」という行為は、「ファイルコピー」、「アプリケーション実行」、「リモートアクセス」の３つの処理を用いて、以下の３通りの抽象化処理手順に表される。ここで、アプリケーション実行とは、装置内に搭載されるアプリケーションによってファイルを開くことを示す。以降、省略して、アプリ実行、と称する。
（抽象化処理手順１）アクセス先装置からアクセス元端末に「ファイルコピー」の後、アクセス元端末において「アプリ実行」。
（抽象化処理手順２）アクセス先装置において「アプリ実行」の後、アクセス元端末からアクセス先装置に対して「リモートアクセス」。なお、この場合、アクセス先装置はリモートアクセスサーバである。
（抽象化処理手順３）リモートアクセスサーバの装置にアクセス先装置から「ファイルコピー」の後、リモートアクセスサーバにおいて「アプリ実行」、さらに、アクセス元端末からリモートアクセスサーバの装置に対して「リモートアクセス」。
【００２４】
例えば、端末Ａから端末Ｂに保存される対象ファイルへアクセスする場合、すなわち、アクセス元端末が端末Ａ，アクセス先装置が端末Ｂである場合、上記抽象化処理手順から、以下の具体化処理手順が求められる。なお、リモートアクセスサーバは端末Ｃとする。（具体化処理手順１）端末Ａに端末Ｂから対象ファイルをコピーし、端末Ａにおいて対象ファイルを実行可能なアプリによって対象ファイルを開く。
（具体化処理手順２）端末Ｂにおいて対象ファイルを実行可能なアプリによって対象ファイルを開き、端末Ａから端末Ｂにリモートアクセス。
（具体化処理手順３）端末Ｂから端末Ｃに対象ファイルをコピーし、端末Ｃにおいて対象ファイルを実行可能なアプリによって対象ファイルを開き、端末Ａから端末Ｃにリモートアクセス。
【００２５】
サーバ１は、具体化処理手順を求めたら、具体化処理手順から実行するものを決定し、決定した具体化処理手順にしたがって、各装置に処理実行を依頼する。
【００２６】
＜装置構成＞
図４は、サーバ１のハードウェア構成の一例を示す図である。サーバ１は、例えば、汎用のコンピュータ，サーバマシンとしての専用のコンピュータである。サーバ１は、プロセッサ１０１，主記憶装置１０２，入力装置１０３，出力装置１０４，補助記憶装置１０５，可搬記録媒体駆動装置１０６，ネットワークインタフェース１０７を備える。また、これらはバス１０８により互いに接続されている。
【００２７】
入力装置１０３は、例えば、操作ボタン，タッチパネル，キーボード，キーパッド等である。入力装置１０３から入力されたデータは、プロセッサ１０１に出力される。入力装置は、例えば、マイクロフォンのような音声入力装置を含んでもよい。
【００２８】
補助記憶装置１０５は、様々なプログラムや、各プログラムの実行に際してプロセッサ１０１が使用するデータを格納する。補助記憶装置１０５は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、フラッシュメモリ、又はハードディスクドライブ（Hard Disk
Drive）等の不揮発性のメモリである。補助記憶装置１０５は、例えば、オペレーティングシステム（ＯＳ），処理手順決定プログラム，処理手順実行プログラム，ウェブサーバプログラム、ファイル転送サーバプログラム、遠隔アクセスサーバプログラム、その他様々なアプリケーションプログラムを保持する。処理手順決定プログラムは、遠隔のアクセス元端末から管理下のファイルへのアクセスがあった場合に、該ファイルへのアクセスを実現させるための処理手順を決定するためのプログラムである。処理手順実行プログラムは、処理手順決定プログラムを実行する装置（第１実施形態ではサーバ１）から指示された処理を実行するためのプログラムである。
【００２９】
主記憶装置１０２は、プロセッサ１０１に、補助記憶装置１０５に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置１０２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）のような半導体メモリを含む。
【００３０】
プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）である。プロセッ
サ１０１は、補助記憶装置１０５又は可搬記録媒体５０１に保持されたＯＳや様々なアプリケーションプログラムを主記憶装置１０２にロードして実行することによって、様々な処理を実行する。プロセッサ１０１は、１つに限られず、複数備えられてもよい。
【００３１】
可搬記録媒体駆動装置１０６は、可搬記録媒体５０１に記録されるプログラムや各種データを読出し、プロセッサ１０１に出力する。可搬記録媒体５０１は、例えば、ＳＤカード，ｍｉｎｉＳＤカード，ｍｉｃｒｏＳＤカード，ＵＳＢ（Universal Serial Bus）フラッシュメモリ，ＣＤ（Compact Disc），ＤＶＤ(Digital Versatile Disc)，Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ，又はフラッシュメモリカードのような記録媒体である。
【００３２】
ネットワークインタフェース１０７は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース１０７は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース１０７は、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local 
Area Network）カード等である。ネットワークインタフェース１０７で受信されたデータ等は、プロセッサ１０１に出力される。
【００３３】
出力装置１０４は、プロセッサ１０１の処理の結果を出力する。出力装置１０４は、スピーカ等の音声出力装置，ディスプレイ，プリンタを含む。
【００３４】
なお、図４に示されるサーバ１のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、処理手順決定プログラムは、可搬記録媒体５０１に記録されていてもよい。例えば、サーバ１は、入力装置１０２、出力装置１０３を備えていなくてもよい。
【００３５】
また、宅内機器群３に含まれる機器は、専用または汎用のコンピュータであって、ハードウェア構成も、図４に示される構成とほぼ同様である。宅内機器群３に含まれる機器は、例えば、補助記憶装置１０５に、処理手順実行プログラムを保持する。また、アクセス元端末２は、例えば、スマート端末、ノート型ＰＣ等であって、ハードウェア構成は図４に示される構成とほぼ同様であり、入力装置としてタッチパネル等を備えていてもよい。アクセス元端末２は、例えば、補助記憶装置１０５に、遠隔ファイルアクセスプログラム、処理実行手順プログラム、遠隔アクセスクライアントアプリケーション、ブラウザアプリケーション等を保持する。遠隔ファイルアクセスプログラムは、外部からホームネットワーク等の所定のプライベートネットワーク内に存在するファイルにアクセスするためのプログラムである。
【００３６】
図５Ａは、第１実施形態に係る遠隔ファイルアクセスシステム１００のサーバ１、アクセス元端末２、宅内機器群３のそれぞれの機能構成の一例を示す図である。
【００３７】
サーバ１は、ファイルシステム１１，処理実行部１２，ファイル転送サーバ１３，遠隔アクセスサーバ１４，処理実行制御部１５，処理手順構成管理部１６，機器情報管理部１７，ユーザ機器管理部１８，ファイルリスト生成部１９，具体化処理手順テーブル１１０，抽象化処理手順テーブル１２０，ユーザ機器関係テーブル１３０，機器情報管理テーブル１４０を備える。
【００３８】
具体化処理手順テーブル１１０，抽象化処理手順テーブル１２０，ユーザ機器関係テーブル１３０，機器情報管理テーブル１４０は、それぞれ、例えば、補助記憶装置１０５の記憶領域に作成される。又は、これらのテーブルは、主記憶装置１０２の記憶領域に作成されてもよい。
【００３９】
抽象化処理手順テーブル１２０には、抽象化処理手順と、具体化処理手順を評価するための評価式とが格納されている。抽象化処理手順テーブル１２０は、「記憶部」の一例である。抽象化処理手順、評価式の詳細については後述される。具体化処理手順テーブル１１０には、実行が決定された具体化処理手順が格納される。
【００４０】
図５Ｂは、ユーザ機器関係テーブル１３０の一例である。ユーザ機器関係テーブル１３０には、ユーザの識別情報と、該ユーザが利用可能な機器の識別情報との対応が格納されている。ユーザが利用可能な機器としてユーザ機器関係テーブル１３０に登録される機器は、例えば、ユーザがアクセス元端末２として用いる機器である。ユーザ機器関係テーブル１３０に格納される情報は、予めユーザまたはシステム管理者によって登録される。また、ユーザ機器関係テーブル１３０は、オプションとしてユーザ認証情報を持ってもよく、図５Ｂに示される例では、ユーザ機器関係テーブル１３０のエントリの項目にユーザ認証情報も含まれている。
【００４１】
図５Ｃは、機器情報管理テーブル１４０の一例である。機器情報管理テーブル１４０には、遠隔ファイルアクセスシステム１００内の機器に関する情報が格納されている。より具体的には、機器情報管理テーブル１４０には、宅内機器群３の各機器、アクセス元端末２、サーバ１のそれぞれの機器に関する情報が格納されている。機器に関する情報には、例えば、機器の識別情報、機器のＭＡＣアドレス、搭載ＯＳ、搭載ソフトウェア（アプリケーション名と対応するＭＩＭＥタイプ等）、接続ネットワークの種別、利用中のユーザ、現在のＩＰアドレス、機器の状態、遠隔起動可／不可情報等が含まれる。機器の状態は、例えば、電源ＯＦＦ、電源ＯＮ、スリープ、等であり、該当の機器を利用可能かであるか否かをサーバ１が判定する材料の一つとなる。また、スリープや電源ＯＦＦの場合でも、遠隔から起動させることが可能な場合は機器の状態として遠隔起動可の情報が設定される。遠隔起動可／不可の情報は、機器のＢｉｏｓ等の内部設定や機器が設置された環境（例えば、ファイアウォールやＮＡＴルータの内部にあり外部からの起動コマンドを受信できない等）に依存する。遠隔起動可／不可の情報は機器情報管理部１７が機器との定期的なメッセージのやりとりをしたり、機器情報管理部１７がクラウド上の中継サーバとの間で定期的なメッセージのやりとりをするなどして知ることができる。機器情報管理テーブル１４０に格納される情報は、後述の機器情報管理部１７によって取得されて格納される。
【００４２】
図５Ａに戻って、処理実行制御部１５，処理手順構成管理部１６，機器情報管理部１７，ユーザ機器管理部１８，ファイルリスト生成部１９は、例えば、補助記憶装置１０５に格納される処理手順決定プログラムをプロセッサ１０１が実行することによって実現される機能である。
【００４３】
ユーザ機器管理部１８は、アクセス元端末２から遠隔ファイルアクセスシステム１００内に保存されているファイルへのアクセスがあった場合に、ユーザ機器関係テーブル１３０からアクセス元端末２の識別情報に対応するユーザの識別情報を取得し、処理手順構成管理部１６に通知する。
【００４４】
ファイルリスト生成部１９は、アクセス元端末２からの要求に応じて、遠隔ファイルアクセスシステム１００内に保存されている、アクセス元端末２のユーザがアクセス可能なファイルのリストを生成し、アクセス元端末２に送信する。アクセス元端末２のユーザの識別情報は、アクセス元端末２から送信されるか、ユーザ機器管理部１８に問い合わせることによって取得される。また、アクセス元端末２のユーザがアクセス可能なファイルの情報は、ファイルリスト生成部１９が、遠隔ファイルアクセスシステム１００内の各機器に対して、アクセス元端末２のユーザ権限で検索コマンドを送信することによって、各機器から取得することができる。
【００４５】
または、ファイルリスト生成部１９は、遠隔ファイルアクセスシステム１００内の各機器に保持される全ファイルの識別情報、保存先情報を保持するファイル情報テーブル（図示せず）を有していてもよい。この場合には、ファイルリスト生成部１９は、ファイル情報テーブルに格納される情報を、アクセス元端末２のユーザの識別情報でフィルタリングして、アクセス元端末２のユーザがアクセス可能なファイルのリストを生成する。なお、ファイル情報テーブルに格納される情報は、例えば、所定の周期で各機器から情報が収集されることによって、更新される。
【００４６】
機器情報管理部１７は、遠隔ファイルアクセスシステム１００内の各機器から、機器に関する情報を収集し、機器情報管理テーブル１４０に格納する。例えば、機器情報管理部１７は、所定の周期で各機器に問い合わせて、各機器から機器に関する情報を収集してもよい。また、各機器は、例えば、機器の状態などの自身の機器に関する情報に変化があったことを契機に自身の機器に関する情報をサーバ１の機器情報管理部１７に送信してもよ
い。または、機器情報管理部１７は、アクセス元端末２からファイルへのアクセス要求の受信による処理手順構成管理部１６からの問い合わせを契機に、各機器に問い合わせて各機器から機器に関する情報を収集してもよい。機器情報管理部１７は、処理手順構成管理部１６からの問い合わせに応じて、機器に関する情報を機器情報管理テーブル１４０から読み出す。
【００４７】
処理手順構成管理部１６は、アクセス元端末２からのファイルへのアクセス要求の受信を契機に、抽象化処理手順に実際の値を当てはめて処理手順インスタンスを作成し、機器に関する情報に基づいて、処理手順インスタンスの中から実行可能な具体化処理手順を決定する。処理手順インスタンスは、抽象化処理手順に実際の値を当てはめたものである。実行可能な具体化処理手順が複数ある場合には、抽象化処理手順テーブル１２０に格納されている評価式を用いて各具体化処理手順のコストを算出し、算出したコストに基づいて実行する具体化処理手順を決定する。実行する具体化処理手順の決定の詳細については、後述される。処理手順構成管理部１６は、実行する具体化処理手順を処理実行制御部１５に通知する。処理手順構成管理部１６は、「決定部」の一例である。
【００４８】
処理実行制御部１５は、処理手順構成管理部１６によって実行が決定された具体化処理手順にしたがって、該当の機器に、該当の処理の実行を指示する。サーバ１以外の、アクセス元端末２または宅内機器３に対して処理実行を指示する場合はネットワークを介して該当の機器に処理実行要求が送信される。
【００４９】
処理実行部１２は、アクセス元端末２からアクセスされたファイルがサーバ１に保持されている場合に動作する。処理実行部１２は、例えば、補助記憶装置１０５に格納される処理手順実行プログラムをプロセッサ１０１が実行することによって実現される機能である。処理実行部１２は、処理実行制御部１５からの指示に従って、指示された処理を適切なアプリケーション等に振り分ける。例えば、処理実行制御部１５から、遠隔アクセスサーバの起動が指示された場合には、処理実行部１２は、遠隔アクセスサーバ１４を起動する。
【００５０】
ファイルシステム１１は、サーバ１内の補助記憶装置１０５に保持されるファイルを管理するためのＯＳの機能の一つである。ファイル転送サーバ１３は、ホームネットワーク上の宅内機器群３及びアクセス元端末２とのファイルの送受信の機能を有する。ファイル転送サーバの機能をウェブサーバが代替してもよい。遠隔アクセスサーバ１４は、自装置上でアプリケーションを実行して、自装置のディスプレイに表示される画像データを遠隔アクセスクライアントに送信する。遠隔アクセスサーバ１４と遠隔アクセスクライアントとの間の通信には、例えば、ＳＳＬ（Secure Sockets Layer）やＶＰＮ（Virtual Private Network）等のセキュアな通信が用いられてもよい。
【００５１】
ファイル転送サーバ１３、遠隔アクセスサーバ１４は、プロセッサ１０１が、それぞれ、ファイル転送サーバプログラム、遠隔アクセスサーバプログラムを実行することによって実現される機能である。ファイル転送サーバプログラムには、例えば、ＦＴＰ（File Transfer Protocol）プロトコルを実装したものがある。ファイル転送サーバを代替するウェブサーバは、プロセッサ１０１がウェブサーバプログラムを実行することによって実現される。ウェブサーバプログラムはＨＴＴＰやＨＴＴＰＳ等のプロトコルを実装したものがある。遠隔アクセスサーバプログラムには、例えば、ＲＤＰプロトコルを実装したものがある。
【００５２】
次に、アクセス元端末２は、処理実行部２１，遠隔アクセスクライアント２２，ファイル送受信部２３，機器情報収集部２４，ファイルリスト出力部２５，ファイルリスト取得部２６を有する。
【００５３】
処理実行部２１は、アクセス元端末２のプロセッサ１０１が補助記憶装置に格納される処理手順実行プログラムを実行することによって実現される機能である。処理実行部２１は、サーバ１の処理実行制御部１５からの指示に従って、指示された処理を適切なアプリケーション等に振り分ける。例えば、サーバ１の処理実行制御部１５から、サーバ１への遠隔アクセスが指示された場合には、処理実行部２１は、遠隔アクセスクライアント２２を起動し、サーバ１の遠隔アクセスサーバ１４へのリモートアクセスを開始させる。例えば、サーバ１の処理実行制御部１５から、対象ファイルのコピーを指示された場合には、処理実行部２１は、ファイル送受信部２３に指示し、サーバ１のファイル転送サーバ１３を経由して、サーバ１から対象ファイルのコピーを取得する。
【００５４】
遠隔アクセスクライアント２２，ファイル送受信部２３は、それぞれ、アクセス元端末２のプロセッサが補助記憶装置に格納される遠隔アクセスクライアントプログラム、ファイル転送クライアントプログラムを実行することによって実現される機能である。遠隔アクセスクライアントプログラムは、例えば、ＲＤＰプロトコルを実装する。ファイル転送クライアントプログラムは、例えば、ＦＴＰやＨＴＴＰプロトコルを実装する。
【００５５】
機器情報収集部２４，ファイルリスト出力部２５，ファイルリスト取得部２６は、アクセス元端末２のプロセッサが補助記憶装置に格納される遠隔ファイルアクセスプログラムを実行することによって実現される機能である。機器情報収集部２４は、例えば、サーバ１からの問い合わせに応じて、またはアクセス元端末２で発生した所定のイベントに従って、アクセス元端末２の機器に関する情報をサーバ１に送信する。所定のイベントとは、例えば、端末がユーザ操作によって起動した時や端末がスリープする直前、などのイベントである。
【００５６】
ファイルリスト取得部２６は、例えば、遠隔ファイルアクセスプログラムの起動後、サーバ１のファイルリスト生成部１９に問い合わせて、サーバ１のファイルリスト生成部１９から、アクセス元端末２がアクセス可能なファイルのリストを取得する。ファイルリスト取得部２６は、取得したファイルのリストをファイルリスト出力部２５に出力する。
【００５７】
ファイルリスト出力部２５は、ファイルリスト取得部２６によって取得されたファイルのリストをディスプレイに出力する。これによって、アクセス元端末２のユーザに対して、該ユーザがアクセス権限を有するファイルのリストが表示され、閲覧又は編集対象のファイルがユーザによって選択される。ファイルリスト出力部２５は、ユーザからの閲覧又は編集対象のファイルの選択入力を受け付け、対象ファイルへのアクセス要求をサーバ１に送信する。ファイルのアクセス要求には、ユーザ識別情報と、対象ファイルの識別情報と、アクセス元端末２の機器の識別情報とが格納される。
【００５８】
次に、宅内機器群３の各機器は、ファイル送受信部３１，機器情報収集部３２，処理実行部３３、ファイルシステム３４を備える。ファイルシステム３４は、宅内機器群３の機器内の補助記憶装置に保持されるファイルを管理するためのＯＳの機能の一つである。
【００５９】
機器情報収集部３２、処理実行部３３は、宅内機器群３の機器のプロセッサが補助記憶装置に格納される処理手順実行プログラムを実行することによって実現される機能である。機器情報収集部３２は、例えば、所定の周期、サーバ１からの問い合わせに応じて、又は、自機器の状態変化に応じて、機器に関する情報をサーバ１に送信する。
【００６０】
処理実行部３３は、宅内機器群３の機器のプロセッサが補助記憶装置に格納される処理手順実行プログラムを実行することによって実現される機能である。処理実行部３３は、サーバ１の処理実行制御部１５からの指示に従って、指示された処理を適切なアプリケー
ション等に振り分ける。例えば、サーバ１の処理実行制御部１５から、対象ファイルのサーバ１へのコピーを指示された場合には、処理実行部３３は、ファイル送受信部３１に指示し、サーバ１のファイル転送サーバ１３に対象ファイルのコピーを送信する。
【００６１】
ファイル送受信部３１は、宅内機器群３の機器のプロセッサが補助記憶装置に格納されるファイル転送クライアントプログラムを実行することによって実現される機能である。ファイル転送クライアントプログラムは、例えば、ＦＴＰやＨＴＴＰなどのプロトコルを実装する。
【００６２】
＜抽象化処理手順の一例＞
図６は、抽象化処理手順の一例である。図６では、「ファイルにアクセスする」という行為に関する抽象化処理手順を示す。例えば、図６に示されるような抽象化処理手順が、抽象化処理手順テーブル１２０に格納されている。
【００６３】
「ファイルにアクセスする」という行為には、図３で説明されたように、例えば、３通りの処理手順がある。図３において説明された「ファイルにアクセスする」という行為の３通りの処理手順は、第１実施形態では、図６に示されるように記述される。以降、小文字のアルファベット文字は、変数を示すこととする。
【００６４】
Ｆｉｌｅ＿ａｃｃｅｓｓ（ｕ，ｘ，ａ，ｂ）は、ユーザｕが機器ａにあるファイルｘに機器ｂからアクセスする、ことを示す。Ｆｉｌｅ＿ｃｏｐｙ（ｕ，ｘ，ａ，ｂ）は、ユーザｕが機器ａにあるファイルｘを機器ｂにコピーする、ことを示す。Ｆｉｌｅ＿ｏｐｅｎ（ｕ，ｘ，ａ）は、ユーザｕがファイルｘを機器ａのアプリケーションで開く、ことを示す。Ｒｅｍｏｔｅ＿ａｃｃｅｓｓ（ｕ，ｘ，ａ，ｂ）は、ユーザｕが機器ａから機器ｂに対してファイルｘにリモートアクセスする、ことを示す。
【００６５】
「ファイルにアクセスする」という行為に相当するＦｉｌｅ＿ａｃｃｅｓｓを、Ｇｏａｌと定義する。「ファイルにアクセスする」という行為を達成するための処理に相当する、Ｆｉｌｅ＿ｃｏｐｙ，Ｆｉｌｅ＿ｏｐｅｎ，Ｒｅｍｏｔｅ＿ａｃｃｅｓｓを、Ａｃｔｉｏｎと定義する。Ａｃｔｉｏｎの実行順は、記述順である。
【００６６】
以上のことを踏まえると、「ファイルにアクセスする」という処理に関する抽象化処理手順は、第１実施形態では、以下のように記述される。
（１）File_access(u,x,a,b)→File_copy(u,x,a,b), File_open(u,x,b)
（２）File_access(u,x,a,b)→File_open(u,x,a), Remote_access(u,x,b,a)
（３）File_access(u,x,a,b)→File_copy(u,x,a,c), File_open(u,x,c), Remote_access(u,x,b,c)
【００６７】
また、Ｆｉｌｅ＿ｃｏｐｙ（ｕ，ｘ，ａ，ｂ）の場合に、直接機器ａから機器bにファ
イルをコピーすることができない場合がある。例えば、ネットワークを遮断するファイアウォールやＮＡＴルータなどが機器ａと機器ｂの間に存在する場合である。そのような場合、中継サーバcを介して機器ａから機器ｂへのファイルコピーを実行できる場合がある
。処理手順構成管理部１６では中継サーバcを介したファイルコピーの手順も構成可能で
あり、そのための抽象化処理手順は以下のように記述される。
（４）File_copy(u,x,a,b)→File_copy(u,x,a,c), File_copy(u,x,c,b)
【００６８】
図７は、処理手順インスタンスの一例である。処理手順インスタンスとは、抽象化処理手順に実際の値を当てはめたものある。図７に示される処理手順インスタンスは、図６に示される抽象化処理手順から作成されたものの一例である。図７では、「ユーザＵ１が端末Ｂを使用して端末Ａ上のファイルＵＲＬ１を開く」場合の例が示される。以降、大文字
のアルファベット文字は、具体的な値（実際の値）を示す。なお、リモートアクセスサーバとしては、端末Ｃが用いられることとする。
【００６９】
処理手順インスタンスは、抽象化処理手順の変数に、実際の値を当てはめて作成される。図７に示される例では、図６に示される抽象化処理手順のユーザｕにユーザＵ１、ファイルｘにファイルＵＲＬ１、機器ａに端末Ａ、機器ｂに端末Ｂ、機器ｃに端末Ｃが当てはめられて作成された処理手順インスタンスが示される。図７に示される例における処理手順インスタンスは以下の通りである。
【００７０】
（Ｓ１）File_access(U1,URL1,A,B)→File_copy(U1,URL1,A,B), File_open(U1,URL1,B)
（Ｓ２）File_access(U1,URL1,A,B)→File_open(U1,URL1,A), Remote_access(U1,URL1,B,A)
（Ｓ３）File_access(U1,URL1,A,B)→File_copy(U1,URL1,A,C), File_open(U1,URL1,C), Remote_access(U1,URL1,B,C)
（Ｓ４）File_copy(U1,URL1,A,B)→File_copy(U1,URL1,A,C), File_copy(U1,URL1,C,B)
【００７１】
処理手順インスタンスの記述様式は、以下のようにして表される。ｉ，ｎは、正の整数である。
Ｓｉ：Ｇｏａｌ→Ａｃｔｉｏｎ＿ｉ＿１，．．．，Ａｃｔｉｏｎ＿ｉ＿ｎｉ
【００７２】
図７に示される例の場合、変数ｉは、１≦ｉ≦４となる。変数ｎｉは、１≦ｎｉ≦各インスタンスに含まれるＡｃｔｉｏｎの数、となる。
【００７３】
以降、実行可能な処理手順インスタンスの右辺（すなわち、Ｇｏａｌを除いた部分）を具体化処理手順と呼ぶ。処理手順インスタンスが実行可能か否かは後述の実行可能確認処理によって判定される。
【００７４】
＜評価式の一例＞
図８は、具体化処理手順の評価式の一例である。評価式は、具体化処理手順のコストを求めるためのものである。実行可能な具体化処理手順が複数ある場合に、実行する具体化処理手順を決定するために用いられる。
【００７５】
遠隔からのファイルへのアクセスでは、ファイルのサイズ、回線速度等も、ファイルのアクセス元端末２へのコピーや、リモートアクセスの実行の決定の要因となる。したがって、具体化処理手順のコストは、ファイルのサイズ、回線の種類に応じて決定される。また、具体化処理手順は、これまで述べたように、複数のＡｃｔｉｏｎの集まりであるので、第１実施形態では、Ａｃｔｉｏｎごとにコストが求められ、各Ａｃｔｉｏｎのコストの合計値が具体化処理手順のコストとなる。
【００７６】
まず、Ｆｉｌｅ＿ｃｏｐｙ（ｕ，ｘ，ａ，ｂ）のコストＣｏｓｔ（Ｆｉｌｅ＿ｃｏｐｙ（ｕ，ｘ，ａ，ｂ））は、Ｃｏｓｔ＿ｆ（ｘ）×Ｃｏｓｔ＿ｃ（ａ，ｂ）で求められる。Ｆｉｌｅ＿ｏｐｅｎ（ｕ，ｘ，ｂ）のコストＣｏｓｔ（Ｆｉｌｅ＿ｏｐｅｎ（ｕ，ｘ，ｂ））は、０である。Ｒｅｍｏｔｅ＿ａｃｃｅｓｓ（ｕ，ｘ，ｂ，ａ）のコストＣｏｓｔ（Ｒｅｍｏｔｅ＿ａｃｃｅｓｓ（ｕ，ｘ，ｂ，ａ））は、Ｃｏｓｔ＿ｃ（ａ，ｂ）で求められる。
【００７７】
Ｃｏｓｔ＿ｆ（ｘ）は、ファイルｘのコストを示す。例えば、ファイルｘのコストは、ファイルのサイズに応じて決定される。第１実施形態では、ファイルｘのサイズが５０Ｍバイト以下である場合には、Ｃｏｓｔ＿ｆ（ｘ）は１である。ファイルｘのサイズが５０Ｍバイトより大きく５００Ｍバイト以下である場合には、Ｃｏｓｔ＿ｆ（ｘ）は２である
。ファイルｘのサイズが５００Ｍバイトより大きい場合には、Ｃｏｓｔ＿ｆ（ｘ）は４である。図８中のｓｉｚｅ（ｘ）はファイルｘのサイズを示す。
【００７８】
Ｃｏｓｔ＿ｃ（ａ，ｂ）は、機器ａ，ｂ間の接続のコストを示す。第１実施形態では、機器ａ，ｂ間の接続がＬＡＮ又はＷＬＡＮである場合には、Ｃｏｓｔ＿ｃ（ａ，ｂ）は１０である。機器ａ，ｂ間の接続が３Ｇ、ＬＴＥ等である場合には、Ｃｏｓｔ＿ｃ（ａ，ｂ）は３０である。
【００７９】
第１実施形態では、具体化処理手順のコストが最も小さいものが、実行される具体化処理手順に決定される。なお、具体化処理手順の評価式は、図８に示される例に限られず、システムの構成等に合わせて設定されてもよい。以降、抽象化処理手順の変数に具体的な値を当てはめることをインスタンス化と称する。
【００８０】
＜処理の流れ＞
図９Ａ及び図９Ｂは、処理手順構成管理部１６の処理のフローチャートの一例である。図９Ａ及び図９Ｂに示されるフローチャートは、例えば、サーバ１の起動時に開始され、サーバ１の起動中繰り返し実行される。
【００８１】
ＯＰ１では、処理手順構成管理部１６は、アクセス元端末２からファイルへのアクセス要求を受信する。アクセス要求には、少なくとも、アクセス元端末２の機器の識別情報と、アクセス対象のファイルの識別情報とが格納されている。ただし、アクセス要求に含まれる情報はこれらに限られず、アクセス要求には、ユーザ識別情報、アクセス対象ファイルの保存先機器、ファイルサイズなどが含まれていても良い。
【００８２】
ユーザ識別情報、アクセス対象ファイルの保存先機器、ファイルサイズ等の情報がアクセス要求に含まれない場合には、処理手順構成管理部１６は各テーブルを参照してこれらの値を取得する。具体的には、処理手順構成管理部１６は、ユーザ機器関係テーブル１３０から、アクセス元端末２の機器の識別情報に対応付けられたアクセス元端末２のユーザの識別情報を取得する。処理手順構成管理部１６は、ファイルリスト生成部１９に問い合わせて、アクセス対象のファイルの保存先やファイルサイズを取得する。
【００８３】
以降、図９Ａ、図９Ｂに示される例では、抽象化処理手順内の変数ユーザｕ，ファイルｘ，機器ａ，機器ｂに対して、それぞれ、ユーザＵ１、ファイルの識別情報であるＵＲＬ１，ファイルの保存先である機器Ａ，アクセス元端末２である機器Ｂが取得されたとする。次に処理がＯＰ２に進む。
【００８４】
ＯＰ２では、処理手順構成管理部１６は、ファイルアクセスに関する抽象化処理手順を抽象化処理手順テーブル１２０から取得し、処理手順インスタンスを生成する。例えば、ＯＰ１において、各変数の値として、ユーザＵ１、ファイルＵＲＬ１、機器Ａ、機器Ｂが取得された場合には、図６に示される抽象化処理手順の各変数にこれらの値が当てはめられて、図７に示される処理手順インスタンスが生成される。次に処理がＯＰ３に進む。
【００８５】
ＯＰ３では、処理手順構成管理部１６は、処理手順インスタンスＳｉを選択する。ｉの初期値は、１である。また、変数ｉは、例えば、図７に示される処理手順インスタンスＳｉが用いられる場合には、１≦ｉ≦３の値を取る。図７に示される処理手順インスタンスＳ４は、処理手順インスタンスＳ１及びＳ３のＦｉｌｅ＿ｃｏｐｙのＡｃｔｉｏｎで、補助的に用いられるので、ここでは、処理手順インスタンスの数には含まれない。次に、処理がＯＰ４に進む。
【００８６】
ＯＰ４では、処理手順構成管理部１６は、選択した処理手順インスタンスＳｉに、イン
スタンス化されていない変数があるか否かを判定する。インスタンス化されていない変数とは、該変数に当てはめる実際の値が決まっていないことを示す。インスタンス化されていない変数がある場合には（ＯＰ４：ＹＥＳ）、処理がＯＰ７に進む。全変数に具体的な値が当てはめられている場合には（ＯＰ４：ＮＯ）、処理がＯＰ５に進む。
【００８７】
ＯＰ５では、処理手順構成管理部１６は、処理手順インスタンスＳｉが実行可能か否かを判定する実行可能確認処理を実行する。実行可能確認処理の詳細については、後述される。実行可能確認処理が終了すると、次に処理がＯＰ６に進む。
【００８８】
ＯＰ６では、処理手順構成管理部１６は、実行可能フラグが１であるか否かを判定する。実行可能フラグは、処理手順インスタンスＳｉについて、ＯＰ５における実行可能確認処理の結果を示すものである。例えば、実行可能フラグが１である場合には、処理手順インスタンスＳｉが実行可能であることが示される。実行可能フラグが０である場合には、処理手順インスタンスＳｉが実行可能ではないことが示される。実行可能フラグが１である場合には（ＯＰ６：ＹＥＳ）、処理がＯＰ１２に進む。実行可能フラグが０である場合には（ＯＰ６：ＮＯ）、処理がＯＰ１３に進む。
【００８９】
ＯＰ７では、選択された処理手順インスタンスＳｉに、インスタンス化されていない変数があるので、処理手順構成管理部１６は、インスタンス化されていない変数に当てはめる候補となる候補機器リストを抽出する。例えば、図７に示される処理手順インスタンスＳ３の場合には、Ｒｅｍｏｔｅ＿ａｃｃｅｓｓ（Ｕ１，ＵＲＬ１，Ｂ，Ｃ）のリモートアクセスサーバとして動作する端末Ｃは、ユーザＵ１、ＵＲＬ１、機器Ａ、機器Ｂのインスタンス化がされた時点ではインスタンス化されておらず、ＯＰ７の処理が実行される。次に処理がＯＰ８に進む。
【００９０】
ＯＰ８では、処理手順構成管理部１６は、ＯＰ７で抽出した候補機器リストの中から、新規に選択可能か否か、すなわち候補機器リストが空でないかどうかを判定する。候補機器リストの中から新規に選択可能な機器がある場合には（ＯＰ８：ＹＥＳ）、処理がＯＰ９に進む。候補機器リストから新規に選択可能な機器がない場合、すなわち候補機器リストが空の場合には（ＯＰ８：ＮＯ）、処理がＯＰ１３に進む。
【００９１】
ＯＰ９では、処理手順構成管理部１６は、ＯＰ７で抽出した候補の機器の中から、実際に変数に当てはめる機器を選択し、候補機器リストから選択した機器を削除する。次に処理がＯＰ１０に進む。
【００９２】
ＯＰ１０では、処理手順構成管理部１６は、処理手順インスタンスＳｉが実行可能か否かを判定する実行可能確認処理を実行する。実行可能確認処理の詳細については、後述される。実行可能確認処理が終了すると、次に処理がＯＰ１１に進む。
【００９３】
ＯＰ１１では、処理手順構成管理部１６は、実行可能フラグが１であるか否かを判定する。実行可能フラグが１である場合には（ＯＰ１１：ＹＥＳ）、処理がＯＰ１２に進む。実行可能フラグが０である場合には（ＯＰ１１：ＮＯ）、処理がＯＰ８に進み、次の変数に当てはめる候補の機器について、ＯＰ８からＯＰ１１の処理が実行される。
【００９４】
ＯＰ１２では、処理手順構成管理部１６は、実行可能な処理手順インスタンス、すなわち、実行可能フラグが１である処理手順インスタンスから具体化処理手順を生成して候補リストに追加する。次に処理がＯＰ１３に進む。
【００９５】
ＯＰ１３では、処理手順構成管理部１６は、次の選択肢となる処理手順インスタンスＳｉ＋１があるか否か判定する。次の選択肢となる処理手順インスタンスＳｉ＋１が存在す
る場合には（ＯＰ１３：ＹＥＳ）、処理がＯＰ３に戻り、次の処理手順インスタンスＳｉ＋１について処理ＯＰ３〜ＯＰ１２の処理が繰り返し実行される。次の選択肢となる未処理の処理手順インスタンスＳｉ＋１が存在しない場合には（ＯＰ１３：ＮＯ）、処理がＯＰ１４に進む。
【００９６】
ＯＰ１４では、処理手順構成管理部１６は、候補リストに複数の具体化処理手順がある場合には、各具体化処理手順について、例えば、図８に示される評価式に従ってコストを算出する。候補リストにある具体化処理手順が１つである場合には、ＯＰ１４の処理は実行されない。次に処理がＯＰ１５に進む。
【００９７】
ＯＰ１５では、処理手順構成管理部１６は、候補リスト内の具体化処理手順から実行される具体化処理手順を選択する。ＯＰ１４でコストを算出している場合には、処理手順構成管理部１６は、コストが最小の具体化処理手順を実行される具体化処理手順として選択する。選択された具体化処理手順は、処理実行制御部１５に出力される。その後、図９Ａ及び図９Ｂに示される処理が終了する。
【００９８】
以降、処理実行制御部１５は、具体化処理手順に従って、該当の機器に処理の実行を指示する。処理実行制御部１５の処理は、図１１Ａ及び図１１Ｂにおいて後述される。
【００９９】
図１０Ａは、実行可能確認処理のフローチャートの一例である。実行可能確認処理は、例えば、図９ＡのＯＰ３の処理において選択された処理手順インスタンスＳｉが実行可能であるか否かを判定する処理である。処理手順インスタンスＳｉの様式は、上述の通りである。（Ｓｉ：Ｇｏａｌ→Ａｃｔｉｏｎ＿ｉ＿１，．．．，Ａｃｔｉｏｎ＿ｉ＿ｎｉ）
【０１００】
ＯＰ２１では、処理手順構成管理部１６は、処理手順インスタンスＳｉから最後のアクションＡｃｔｉｏｎ＿ｉ＿ｎｉを選択する。また、変数ｋを、ｋ＝ｎｉに設定する。次に処理がＯＰ２２に進む。
【０１０１】
ＯＰ２２では、処理手順構成管理部１６は、処理手順インスタンスＳｉの実行可能フラグを０に設定する。次に処理がＯＰ２３に進む。
【０１０２】
ＯＰ２３では、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの対象機器に関する情報を、機器情報管理部１７に問い合わせて取得する。Ｆｉｌｅ＿ｃｏｐｙ（Ｕ１，ＵＲＬ１，Ａ，Ｂ）の場合には、対象機器は、端末Ａおよび端末Ｂである。Ｆｉｌｅ＿ｏｐｅｎ（Ｕ１，ＵＲＬ１，Ｂ）の場合には、対象機器は、端末Ｂである。Ｒｅｍｏｔｅ＿ａｃｃｅｓｓ（Ｕ１，ＵＲＬ１，Ｂ，Ｃ）の場合には、対象機器は、端末Ｂおよび端末Ｃである。次に処理がＯＰ２４Ａに進む。
【０１０３】
ＯＰ２４Ａでは、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋが実行可能か否かを判定するＡｃｔｉｏｎ実行可能判定処理を行う。Ａｃｔｉｏｎ実行可能判定処理の詳細については、後述する。
【０１０４】
Ａｃｔｉｏｎ＿ｉ＿ｋが実行可能と判定された場合には（ＯＰ２４Ｂ：ＹＥＳ）、処理がＯＰ２５に進む。ＯＰ２５では、処理手順構成管理部１６は、変数ｋをｋ−１に設定する。次に処理がＯＰ２６に進む。
【０１０５】
ＯＰ２６では、処理手順構成管理部１６は、変数ｋが正の値であるか否かを判定する。変数ｋが正の値である場合には（ＯＰ２６：ＹＥＳ）、処理手順インスタンスＳｉに、実行可能か否かが判定されていないＡｃｔｉｏｎが残っているので、処理がＯＰ２３に戻り、次のＡｃｔｉｏｎについて実行可能か否かが判定される。
【０１０６】
変数ｋが正の値でない場合には（ＯＰ２６：ＮＯ）、処理がＯＰ２７に進む。ＯＰ２７では、処理手順インスタンスＳｉに含まれる全Ａｃｔｉｏｎについて、実行可能であることが判定されたので、処理手順構成管理部１６は、実行可能フラグを１に設定する。その後、図１０Ａに示される処理手順インスタンスＳｉについての実行可能判定処理が終了し、図９ＡのＯＰ６、又は、図９ＢのＯＰ１１に処理が進む。
【０１０７】
ＯＰ２４Ｂにおいて、Ａｃｔｉｏｎ＿ｉ＿ｋが実行不可能と判定された場合には（ＯＰ２４Ｂ：ＮＯ）、処理がＯＰ２８に進む。ＯＰ２８では、一つでも実行不可能なＡｃｔｉｏｎが含まれると、処理手順インスタンスＳｉは実行不可能であるため、処理手順構成管理部１６は、処理手順インスタンスＳｉについての実行可能判定処理の実行を中断する。したがって、この場合には、処理手順インスタンスＳｉの実行可能フラグは０となる。その後、図１０Ａに示される処理手順インスタンスＳｉについての実行可能判定処理が終了し、図９ＡのＯＰ６、又は、図９ＢのＯＰ１１に処理が進む。
【０１０８】
図１０Ｂ、図１０Ｃ、図１０Ｄは、Ａｃｔｉｏｎ実行可能判定処理のフローチャートの一例である。Ａｃｔｉｏｎ実行可能判定処理は、例えば、図１０ＡのＯＰ２１の処理において選択されたＡｃｔｉｏｎ＿ｉ＿ｋが実行可能であるか否かを判定する処理である。なお、図１０Ｂ、図１０Ｃ、図１０Ｄの説明において用いられるユーザＵ，ファイルＸ，端末Ａ，端末Ｂは、一般化した説明のために用いられるものであって、所定のユーザ、ファイル、端末等に限定されるものではない。
【０１０９】
Ａｃｔｉｏｎ＿ｉ＿ｋがＦｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ａ）である場合には（ＯＰ８１：ＹＥＳ）、処理がＯＰ８２に進む。Ａｃｔｉｏｎ＿ｉ＿ｋがＦｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ａ，Ｂ）である場合には（ＯＰ８６：ＹＥＳ）、処理がＯＰ９１に進む。Ａｃｔｉｏｎ＿ｉ＿ｋがＲｅｍｏｔｅ＿Ａｃｃｅｓｓ（Ｕ，Ｘ，Ａ，Ｂ）である場合には（ＯＰ８７：ＹＥＳ）、処理がＯＰ１０１に進む。Ａｃｔｉｏｎ＿ｉ＿ｋがいずれでもない場合には（ＯＰ８７：ＮＯ）、図１０Ｂに示される処理が終了する。
【０１１０】
ＯＰ８２〜ＯＰ８６は、Ａｃｔｉｏｎ＿ｉ＿ｋがＦｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ａ）である場合の処理である。ＯＰ８２では、処理手順構成管理部１６は、端末Ａは利用可能な状態であるか否かを判定する。端末Ａは、アクセス元端末２の他に、リモートアクセスサーバとして動作する装置である場合もある。そのため、まずは、端末Ａの状態が確認される。端末Ａが利用可能な状態とは、端末Ａが電源ＯＮの状態、又は、端末Ａが電源ＯＦＦ又はスリープ状態であっても遠隔から起動可能である状態である。この判定は、機器情報管理テーブル１４０に基づいて行われる。
【０１１１】
端末Ａが利用可能な状態である場合には（ＯＰ８２：ＹＥＳ）、処理がＯＰ８３に進む。端末Ａが利用可能な状態でない場合には（ＯＰ８２：ＮＯ）、処理がＯＰ８６に進む。
【０１１２】
ＯＰ８３では、処理手順構成管理部１６は、端末Ａが現在の時点でユーザＵの権限で利用可能であるか否かを判定する。端末ＡがユーザＵの権限で利用可能であるか否かは、ユーザ機器関係テーブル１３０および機器情報管理テーブル１４０に問い合わせることによって判断される。例えば、ユーザＵが利用可能な機器に端末Ａが含まれており、かつ現在の使用者がユーザＵ以外のユーザでない場合に端末ＡがユーザＵの権限で利用可能であるとする。
【０１１３】
端末Ａ上のファイルＸが現在の時点でユーザＵの権限で利用可能である場合には（ＯＰ８３：ＹＥＳ）、処理がＯＰ８４に進む。端末Ａ上のファイルＸが現在の時点でユーザＵの権限で利用可能でない場合には（ＯＰ８３：ＮＯ）、処理がＯＰ８６に進む。
【０１１４】
ＯＰ８４では、処理手順構成管理部１６は、端末ＡにファイルＸを実行可能なアプリケーションが搭載されているか否かを判定する。この判定は、例えば、ファイルＸのファイル拡張子とウェブサーバ（第１実施形態ではサーバ１）が管理するＭＩＭＥタイプとの対応関係が管理するデータ（図示せず）からファイルＸに対応するＭＩＭＥタイプが取得され、機器情報管理テーブル１４０に該当ＭＩＭＥタイプを処理可能なアプリケーションと端末Ａとの対応付けが存在するか否かによって判定される。
【０１１５】
端末ＡにファイルＸを実行可能なアプリケーションが搭載されている場合には（ＯＰ８４：ＹＥＳ）、処理がＯＰ８５に進む。ＯＰ８５では、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの実行可能を判定する。その後、Ａｃｔｉｏｎ＿ｉ＿ｋについてのＡｃｔｉｏｎ実行可能判定処理が終了する。
【０１１６】
端末ＡにファイルＸを実行可能なアプリケーションが搭載されていない場合には（ＯＰ８４：ＮＯ）、処理がＯＰ８６に進む。
【０１１７】
ＯＰ８６では、端末Ａが利用可能な状態でない、端末Ａ上のファイルＸが現在の時点でユーザＵの権限で利用可能でない、又は、端末ＡにファイルＸを実行可能なアプリケーションが搭載されていないので、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの実行不可能を判定する。その後、Ａｃｔｉｏｎ＿ｉ＿ｋについてのＡｃｔｉｏｎ実行可能判定処理が終了する。
【０１１８】
なお、ＯＰ８２、ＯＰ８３、ＯＰ８４の判定処理の実行順は図１０Ｂに示される例に限定されず、ＯＰ８２、ＯＰ８３、ＯＰ８４のいずれの処理から実行されてもよい。
【０１１９】
ＯＰ９１〜ＯＰ９６は、Ａｃｔｉｏｎ＿ｉ＿ｋがＦｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ａ，Ｂ）である場合の処理である。ＯＰ９１では、処理手順構成管理部１６は、端末Ａ、端末Ｂは、現在の時点でユーザＵの権限で利用可能か否かを判定する。この判定は、ＯＰ８３と同様にして、ユーザ機器関係情報１３０と機器情報管理テーブル１４０、アクセス要求に含まれるユーザ識別情報とに基づいて行われる。
【０１２０】
端末Ａ，端末ＢがユーザＵのユーザ権限で利用可能である場合には（ＯＰ９１：ＹＥＳ）、処理がＯＰ９３に進む。端末Ａ，端末ＢがユーザＵのユーザ権限で利用可能でない場合には（ＯＰ９１：ＮＯ）、処理がＯＰ９６に進む。
【０１２１】
ＯＰ９３では、処理手順構成管理部１６は、端末Ａと端末Ｂとの間の接続がファイルコピー可能な状態で確保できるか否かを判定する。例えば、処理手順構成管理部１６は、機器情報管理テーブル１４０に基づいて、端末Ａ、端末Ｂそれぞれの接続ネットワークを取得し、各接続ネットワーク間の相互接続性を確認する。
【０１２２】
端末Ａと端末Ｂとの間の接続がファイルコピーな状態で確保できる場合には（ＯＰ９３：ＹＥＳ）、処理がＯＰ９４に進む。端末Ａと端末Ｂとの間の接続がファイルコピーな状態で確保できない場合には（ＯＰ９３：ＮＯ）、処理がＯＰ９６に進む。
【０１２３】
ＯＰ９４では、処理手順構成管理部１６は、端末Ａ、端末Ｂは利用可能な状態であるか否かを判定する。この判定は、機器情報管理テーブル１４０に基づいて行われる。
【０１２４】
端末Ａ、端末Ｂが利用可能な状態である場合には（ＯＰ９４：ＹＥＳ）、処理がＯＰ９５に進む。ＯＰ９５では、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの実行可能を判定する。その後、Ａｃｔｉｏｎ＿ｉ＿ｋについてのＡｃｔｉｏｎ実行可能判定処理が
終了する。
【０１２５】
端末Ａ、端末Ｂが利用可能な状態でない場合には（ＯＰ９４：ＮＯ）、処理がＯＰ９６に進む。ＯＰ９６では、端末Ａ、端末ＢがユーザＵのユーザ権限で利用できない、端末Ａ、端末Ｂ間の接続が確保できない、又は、端末Ａ、端末Ｂが利用可能な状態でないので、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの実行不可能を判定する。その後、Ａｃｔｉｏｎ＿ｉ＿ｋについてのＡｃｔｉｏｎ実行可能判定処理が終了する。
【０１２６】
なお、ＯＰ９１−ＯＰ９４の判定処理の実行順は図１０Ｃに示される例に限定されず、いずれの処理から実行されてもよい。
【０１２７】
ＯＰ１０１〜ＯＰ１０６は、Ａｃｔｉｏｎ＿ｉ＿ｋがＲｅｍｏｔｅ＿ａｃｃｅｓｓ（Ｕ，Ｘ，Ａ，Ｂ）である場合の処理である。ＯＰ１０１では、処理手順構成管理部１６は、端末Ｂは、リモートアクセスサーバを搭載しているか否かを判定する。この判定は、例えば、機器情報管理テーブル１４０に基づいて行われる。
【０１２８】
端末Ｂがリモートアクセスサーバを搭載している場合には（ＯＰ１０１：ＹＥＳ）、処理がＯＰ１０２に進む。端末Ｂがリモートアクセスサーバを搭載していない場合には（ＯＰ１０１：ＮＯ）、処理がＯＰ１０６に進む。
【０１２９】
ＯＰ１０２では、処理手順構成管理部１６は、端末Ｂが現在の時点でユーザＵの権限で利用可能であるか否かを判定する。端末ＢがユーザＵの権限で利用可能であるか否かは、ＯＰ８３と同様にして、ユーザ機器関係情報１３０と機器情報管理テーブル１４０、アクセス要求に含まれるユーザ識別情報とに基づいて行われる。
【０１３０】
端末Ｂ上のファイルＸが現在の時点でユーザＵの権限で利用可能である場合には（ＯＰ１０２：ＹＥＳ）、処理がＯＰ１０３に進む。端末Ｂ上のファイルＸが現在の時点でユーザＵの権限で利用可能でない場合には（ＯＰ１０２：ＮＯ）、処理がＯＰ１０６に進む。
【０１３１】
ＯＰ１０３では、処理手順構成管理部１６は、端末Ａから端末Ｂへリモートアクセスプロトコルによって接続可能か否かを判定する。例えば、処理手順構成管理部１６は、機器情報管理テーブル１４０に基づいて、端末Ａ、端末Ｂそれぞれの接続ネットワークを取得し、各接続ネットワーク間の相互接続性を確認する。
【０１３２】
端末Ａから端末Ｂへリモートアクセスプロトコルによって接続可能である場合には（ＯＰ１０３：ＹＥＳ）、処理がＯＰ１０４に進む。端末Ａから端末Ｂへリモートアクセスプロトコルによって接続可能でない場合には（ＯＰ１０３：ＮＯ）、処理がＯＰ１０６に進む。
【０１３３】
ＯＰ１０４では、処理手順構成管理部１６は、端末Ｂは利用可能な状態であるか否かを判定する。この判定は、機器情報管理テーブル１４０に基づいて行われる。
【０１３４】
端末Ｂが利用可能な状態である場合には（ＯＰ１０４：ＹＥＳ）、処理がＯＰ１０５に進む。ＯＰ１０５では、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの実行可能を判定する。その後、Ａｃｔｉｏｎ＿ｉ＿ｋについてのＡｃｔｉｏｎ実行可能判定処理が終了する。
【０１３５】
端末Ｂが利用可能な状態でない場合には（ＯＰ１０４：ＮＯ）、処理がＯＰ１０６に進む。ＯＰ１０６では、端末Ｂがリモートアクセスサーバを搭載していない、端末Ｂが現在の時点でユーザＵの権限で利用可能でない、端末Ａからリモートアクセスプロトコルによ
って端末Ｂへ接続できない、又は、端末Ｂが利用可能な状態でないので、処理手順構成管理部１６は、Ａｃｔｉｏｎ＿ｉ＿ｋの実行不可能を判定する。その後、Ａｃｔｉｏｎ＿ｉ＿ｋについてのＡｃｔｉｏｎ実行可能判定処理が終了する。
【０１３６】
なお、ＯＰ１０１−ＯＰ１０４の判定処理の実行順は図１０Ｄに示される例に限定されず、いずれの処理から実行されてもよい。
【０１３７】
図１１Ａ及び図１１Ｂは、処理実行制御部１５の処理のフローチャートの一例を示す図である。図１１Ａ及び図１１Ｂに示される処理は、サーバ１の起動とともに開始され、サーバ１の起動中繰り返し実行される。図１１Ａ及び図１１Ｂにおいて、具体化処理手順ＰはＰ１，Ｐ２，．．．，Ｐｍと表される。Ｐ１，Ｐ２，．．．，Ｐｍは、処理手順インスタンスにおけるＡｃｔｉｏｎに相当する。ｍは、具体化処理手順に含まれる処理（Ａｃｔｉｏｎ）の数である。
【０１３８】
ＯＰ３１では、処理実行制御部１５は、例えば、図９Ａ及び図９Ｂの処理の実行によって決定された具体化処理手順Ｐを、処理手順構成管理部１６から受信する。次に処理がＯＰ３２に進む。
【０１３９】
ＯＰ３２では、処理実行制御部１５は、変数ｋに１を設定する。また、処理実行制御部１５は、後処理フラグに０を設定し、後処理リストに空リストを設定する。後処理フラグは、ファイルコピーの後にコピーしたファイルを編集した場合に、編集内容をオリジナルのファイルに反映させるための書き戻しをする後処理の可能性を示すフラグである。また後処理リストはファイルコピーが実行された際に実行する可能性のある後処理の具体化処理手順を格納するためのリストである。次に処理がＯＰ３３に進む。
【０１４０】
ＯＰ３３では、処理実行制御部１５は、具体化処理手順Ｐに含まれる処理Ｐ１，Ｐ２，．．．，Ｐｍのうち、Ｐｋの処理を選択する。次に処理がＯＰ３３Ｂに進む。
【０１４１】
ＯＰ３３Ｂでは、処理実行制御部１５は、処理Ｐｋに含まれる機器の状態を機器情報管理部１７から取得し、機器が起動していない状態であれば該当の機器を起動させる。また該当の機器が処理Ｐｋに含まれるユーザでログインしていない状態であれば、当該ユーザでログインさせる。次に処理がＯＰ３４に進む。
【０１４２】
処理ＰｋがＦｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ｈ）である場合には（ＯＰ３４：ＹＥＳ）、処理がＯＰ３５に進む。処理ＰｋがＲｅｍｏｔｅ＿ａｃｃｅｓｓ（Ｕ，Ｘ，Ｈ１，Ｈ２）である場合には（ＯＰ３４：ＮＯ、ＯＰ３６：ＹＥＳ）、処理がＯＰ３７に進む。処理ＰｋがＦｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ｈ１，Ｈ２）である場合には（ＯＰ３４：ＮＯ、ＯＰ３６：ＮＯ、ＯＰ３８：ＹＥＳ）、処理がＯＰ３９に進む。処理Ｐｋが、Ｆｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ｈ），Ｒｅｍｏｔｅ＿ａｃｃｅｓｓ（Ｕ，Ｘ，Ｈ１，Ｈ２），Ｆｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ｈ１，Ｈ２）のいずれでもない場合には、処理がＯＰ４６に進む。
【０１４３】
ＯＰ３５では、処理ＰｋがＦｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ｈ）であるので、処理実行制御部１５は、ユーザＵとしてファイルＸを実行するように機器Ｈの処理実行部３３に指示する。「ユーザＵとして」というのは、「ユーザＵの権限を用いて」、という意味である。ファイル実行処理の詳細については、図１２において後述される。次に処理がＯＰ４１に進む。
【０１４４】
ＯＰ３７では、処理ＰｋがＲｅｍｏｔｅ＿ａｃｃｅｓｓ（Ｕ，Ｘ，Ｈ１，Ｈ２）であるので、処理実行制御部１５は、ユーザＵとして機器Ｈ２上のファイルＸに遠隔アクセスするように機器Ｈ１の処理実行部３３に指示する。次に処理がＯＰ４０に進む。ＯＰ４０で
は、処理実行制御部１５は、機器Ｈ１の処理実行部３３から処理結果を受信する。次に処理がＯＰ４１に進む。
【０１４５】
ＯＰ３９では、処理ＰｋがＦｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ｈ１，Ｈ２）であるので、処理実行制御部１５は、ファイルコピー処理を実行する。ファイルコピー処理の詳細については、図１３において後述される。次に処理がＯＰ４１に進む。
【０１４６】
ＯＰ４１では、処理実行制御部１５は、処理Ｐｋの実行結果が、処理Ｐｋの実行成功を含むか否かを判定する。処理Ｐｋの実行結果が成功である場合には（ＯＰ４１：ＹＥＳ）、処理がＯＰ４２に進む。処理Ｐｋの実行結果が失敗である場合には（ＯＰ４１：ＮＯ）、処理がＯＰ４６に進む。
【０１４７】
ＯＰ４２では、処理Ｐｋの実行結果が成功であったので、処理実行制御部１５は、変数ｋにｋ＋１の値を設定する。次に処理がＯＰ４３に進む。
【０１４８】
ＯＰ４３では、処理実行制御部１５は、変数ｋがｍより大きいか否かを判定する。変数ｋがｍより大きい場合には（ＯＰ４３：ＹＥＳ）、具体化処理手順に含まれる処理がすべて実行されたことが示され、処理がＯＰ４４に進む。変数ｋがｍ以下である場合には（ＯＰ４３：ＮＯ）、未実行の処理があるので、処理がＯＰ３３に進み、次の処理ＰｋについてＯＰ３３〜Ｏ４２の処理が行われる。
【０１４９】
ＯＰ４４では、処理実行制御部１５は、後処理フラグが１であるか、すなわち、後処理を実行するか否かを判定する。後処理フラグが１である場合には（ＯＰ４４：ＹＥＳ）、処理がＯＰ４５に進む。後処理フラグが０である場合には（ＯＰ４４：ＮＯ）、図１１Ａ及び図１１Ｂに示される処理が終了する。
【０１５０】
ＯＰ４５では、処理実行制御部１５は、後処理を実行する。後処理の詳細は、図１４において後述される。後処理の終了後、図１１Ａ及び図１１Ｂに示される処理が終了する。
【０１５１】
ＯＰ４６では、処理Ｐｋの実行結果が失敗であったので、処理実行制御部１５は、アクセス元端末２にエラーを返す。その後、図１１Ａ及び図１１Ｂに示される処理が終了する。
【０１５２】
図１２は、ファイル実行処理のフローチャートの一例である。ファイル実行処理は、具体化処理手順Ｐの処理ＰｋがＦｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ｈ）（ユーザＵの権限で機器ＨにあるファイルＸを機器Ｈが開く）である場合に、処理実行制御部１５が行う処理である。
【０１５３】
ＯＰ５１では、処理実行制御部１５は、ユーザＵとしてファイルＸを実行するように機器Ｈの処理実行部３３に指示する。次に処理がＯＰ５２に進む。ＯＰ５２では、処理実行制御部１５は、機器Ｈからの結果を受信する。次に処理がＯＰ５３に進む。
【０１５４】
ＯＰ５３では、処理実行制御部１５は、処理Ｐｋの実行結果が、処理Ｐｋの実行成功を含むか否かを判定する。処理Ｐｋの実行結果が成功である場合には（ＯＰ５３：ＹＥＳ）、処理がＯＰ５４に進む。処理Ｐｋの実行結果が失敗である場合には（ＯＰ５３：ＮＯ）、処理がＯＰ５７に進む。
【０１５５】
ＯＰ５４では、処理実行制御部１５は、後処理リストが空であるか否かを判定する。後処理リストが空である場合には（ＯＰ５４：ＹＥＳ）、処理がＯＰ５６に進む。後処理リストが空でない場合には（ＯＰ５４：ＮＯ）、すなわち、処理Ｐｋより前にファイルコピ
ー処理が行われていれば、処理がＯＰ５５に進む。
【０１５６】
ＯＰ５５では、処理実行制御部１５は、後処理フラグを１に設定する。次に処理がＯＰ５６に進む。
【０１５７】
ＯＰ５６では、処理実行制御部１５は、処理Ｐｋの実行結果が成功であるので、成功を返して、図１２に示されるファイル実行処理を終了する。
【０１５８】
ＯＰ５７では、処理実行制御部１５は、処理Ｐｋの実行結果が失敗であるので、エラーを返して、図１２に示されるファイル実行処理を終了する。
【０１５９】
図１３は、ファイルコピー処理のフローチャートの一例である。ファイルコピー処理は、具体化処理手順Ｐの処理ＰｋがＦｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ｈ１，Ｈ２）（ユーザＵの権限で機器Ｈ１にあるファイルＸを機器Ｈ２にコピーする）である場合に、処理実行制御部１５が行う処理である。
【０１６０】
ＯＰ６１では、処理実行制御部１５は、ユーザＵとしてファイルＸを機器Ｈ１から取得（コピー）するよう機器Ｈ２の処理実行部３３に指示する。次に処理がＯＰ６２に進む。ＯＰ６２では、処理実行制御部１５は、機器Ｈ２の処理実行部３３から結果を受信する。次に処理がＯＰ６３に進む。
【０１６１】
ＯＰ６３では、処理実行制御部１５は、処理Ｐｋの実行結果が、処理Ｐｋの実行成功を含むか否かを判定する。処理Ｐｋの実行結果が成功である場合には（ＯＰ６３：ＹＥＳ）、処理がＯＰ６４に進む。処理Ｐｋの実行結果が失敗である場合には（ＯＰ６３：ＮＯ）、処理がＯＰ６６に進む。
【０１６２】
ＯＰ６４では、処理Ｐｋの実行結果が成功であるので、実行したファイルコピー処理の逆処理を後処理リストの先頭に追加する。Ｆｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ，Ｈ１，Ｈ２）の逆処理とは、Ｆｉｌｅ＿ｃｏｐｙ（Ｕ，Ｘ’，Ｈ２，Ｈ１）であり、機器Ｈ２から機器Ｈ１へのファイルコピーを意味する。ここで、Ｘ’はファイルＸをコピーした後のＨ２上のファイルを表す識別子（ＵＲＬ）である。次に、処理がＯＰ６５に進み、ＯＰ６５では、処理実行制御部１５は、処理Ｐｋの実行結果として成功を返して、図１３に示されるファイルコピー処理を終了する。
【０１６３】
ＯＰ６６では、処理Ｐｋの実行結果が失敗であるので、処理実行制御部１５はエラーを返して、図１３に示されるファイルコピー処理を終了する。
【０１６４】
図１４は、後処理のフローチャートの一例である。後処理は、後処理フラグが１である場合、すなわち、ファイルコピー処理が正常に行われ、具体化処理手順に含まれる処理がすべて完了した場合に実行される処理である。
【０１６５】
ＯＰ７１では、処理実行制御部１５は、ファイル実行処理Ｆｉｌｅ＿ｏｐｅｎ（Ｕ，Ｘ，Ｈ）が実行された機器Ｈに対してファイル更新が発生するか否かを通知してもらうためのアプリケーション終了通知依頼を発行する。次に処理がＯＰ７２に進み、ＯＰ７２では、処理実行制御部１５は、機器Ｈからのアプリケーション終了通知の受信まで待機する。
【０１６６】
機器Ｈでは、処理実行部３３がファイル実行処理を開始した時点のファイルの最終更新時刻を保存しておき、ファイルを実行した対応アプリケーションの終了までを監視する。対応アプリケーション終了時に、機器Ｈの処理実行部３３は、当該ファイルの最終更新時刻を確認し、当該ファイルの最終更新時刻と保存されていた最終更新時刻とを比較する。
アプリケーション終了時のファイル最終更新時刻の方がより新しければ、機器Ｈの処理実行部３３は、ファイルが更新されたと判断し、サーバ１の処理実行制御部１５にファイルの更新有の情報を含むアプリケーション終了通知を送信する。
【０１６７】
ＯＰ７３では、処理実行部３３は、機器Ｈの処理実行部３３からアプリケーション終了通知を受信し、アプリケーション終了通知にファイルの更新有の情報が含まれているか否かを判定する。アプリケーション終了通知にファイルの更新有の情報が含まれている場合には（ＯＰ７３：ＹＥＳ）、処理がＯＰ７４に進む。アプリケーション終了通知にファイルの更新有の情報が含まれていない場合には（ＯＰ７３：ＮＯ）、処理がＯＰ７９に進む。
【０１６８】
ＯＰ７４、ＯＰ７５では、ファイル更新を通知された処理実行制御部１５は、後処理リストに保存されている逆処理をリストの順に順次実行する。後処理リストに保存されている逆処理は、ＯＰ７１において更新通知依頼の対象のファイル実行処理の前に実行されているファイルコピー処理の逆処理である、ファイルコピー処理である。
【０１６９】
ＯＰ７４では、処理実行制御部１５は、後処理リストから未実行の逆処理（ファイルコピー処理Ｐ）を取り出す。ファイルコピー処理は後処理リストの先頭から順番に取り出される。次に処理がＯＰ７５に進む。ＯＰ７５では、処理実行制御部１５は、取り出したファイルコピー処理を実行する（図１３参照）。これによって、更新されたファイルの内容が元のファイルに反映される。次に処理がＯＰ７６に進む。
【０１７０】
ＯＰ７６では、ファイルコピー処理Ｐの実行結果が成功であるか否かを判定する。ファイルコピー処理Ｐの実行結果が成功である場合には（ＯＰ７６：ＹＥＳ）、処理がＯＰ７７に進む。処理Ｐｋの実行結果が失敗である場合には（ＯＰ５３：ＮＯ）、処理がＯＰ５７に進む。
【０１７１】
ＯＰ５４では、処理実行制御部１５は、後処理リストが空であるか否かを判定する。後処理リストが空である場合には（ＯＰ５４：ＹＥＳ）、処理がＯＰ５６に進む。後処理リストが空でない場合には（ＯＰ５４：ＮＯ）、すなわち、処理Ｐｋより前にファイルコピー処理が行われていれば、処理がＯＰ５５に進む。
【０１７２】
ＯＰ５５では、処理実行制御部１５は、後処理フラグを１に設定する。次に処理がＯＰ５６に進む。
【０１７３】
ＯＰ５６では、処理実行制御部１５は、処理Ｐｋの実行結果が成功であるので、成功を返して、図１２に示されるファイル実行処理を終了する。
【０１７４】
ＯＰ５７では、処理実行制御部１５は、処理Ｐｋの実行結果が失敗であるので、エラーを返して、図１２に示されるファイル実行処理を終了する。
【０１７５】
なお、図１３に示されるフローチャートでは、省略されているが、後処理の正常応答又はエラーを返し、後処理が失敗した場合には、図１１Ａ及び図１１Ｂの処理においてアクセス元端末２にエラーを返すようにしてもよい。
【０１７６】
図１３に示されるような後処理が実行されることによって、例えば、アクセス元端末２からのアクセスによって対象ファイルが編集され、ファイルの内容が変更された場合にもオリジナルのファイルに該変更を反映させることができ、ファイルの内容の整合性を保つことができる。
【０１７７】
＜第１実施形態の作用効果＞
第１実施形態では、サーバ１は、予め抽象化処理手順を保持しておくことによって、アクセス元端末２からファイルへのアクセス要求があった場合には、具体化処理手順を作成し、該当の機器に処理の実行を指示する。これによって、アクセス元端末２のユーザは、ユーザインタフェースからアクセスしたいファイルを選択することによって、自動的に、適切な機器に適切な処理が振り分けられるようになる。アクセス元端末２のユーザは、自ら、対象ファイルの保存場所を意識したり、処理の実行機器を選択したり、該ファイルへのアクセス方法を選択したりしなくてよい。したがって、第１実施形態によれば、他の機器に保存されるファイルへのアクセスの利便性を向上させることができる。
【０１７８】
＜その他＞
第１実施形態では、サーバ１は、遠隔アクセスサーバ１４とファイル転送サーバ１３も備えるが、これに限られず、サーバ１は、遠隔アクセスサーバ１４、ファイル転送サーバ１３を備えなくともよい。遠隔アクセスサーバ１４、ファイル転送サーバ１３は、それぞれ、サーバ１とは異なる装置に備えられていてもよい。
【０１７９】
第１実施形態では、ユーザ機器関係テーブル１３０には、ユーザの識別情報と該ユーザが利用可能な機器の識別情報との対応が格納されており、図５Ｂに示されるユーザ機器関係テーブル１３０に格納されている機器Ａと機器Ｂは、唯一のユーザの識別情報が関連付けられていることを前提とした。これは、スマートフォンやタブレット端末のように特定の個人によって保有されることが前提とされている機器、すなわち、１つの機器に対してユーザが１人であることが前提とされている機器であるからである。このような機器の場合には、サーバ１又はシステム１００がユーザ認証を行わなくとも、該機器の使用開始時に該機器によってユーザ認証されている。そのため、図５Ｂに示される機器Ａおよび機器Ｂからのアクセスに対しては、ユーザ機器関係テーブル１３０において関連付けられているユーザの識別情報を持つユーザによるものであることが担保されている。
【０１８０】
ただし、アクセス元端末２として利用可能な機器は、スマートフォンやタブレット端末のように特定の個人によって保有され、該機器の使用開始時に該機器によってユーザ認証されているような機器に限定されない。例えば、家庭内の複数人で共有されるＰＣや、インターネットカフェ等の不特定多数の人で共有されるＰＣ等もアクセス元端末２として利用可能である。
【０１８１】
アクセス元端末２として、家庭内の複数人で共有されるＰＣが利用される場合には、該ＰＣと、該ＰＣに登録されているユーザの識別情報（ユーザ名、および認証情報等）をユーザ機器関係テーブル１３０に登録する。図５Ｂに示される機器Ｃがその例である。該ＰＣからのファイルのアクセス要求には、該ＰＣの機器の識別情報と、現在ログインしているユーザの識別情報と、対象ファイルの識別情報とが格納される。サーバ１の処理手順構成管理部１６は、例えば、図９Ａの処理を開始する前に、アクセス要求に格納されているユーザの識別情報が、ユーザ機器関係テーブル１３０に格納される該ＰＣの機器の識別情報に関連付けられているユーザの識別情報のいずれかに合致するか否かを判定する。これによって、ユーザ認証を行うことができる。
【０１８２】
アクセス元端末２として、不特定多数の人で共有されるＰＣが利用される場合には、該ＰＣからアクセスがあった時点でユーザ認証を行う。この場合には、サーバ１は、認証部と、ユーザＩＤとパスワードを格納する認証テーブルを備え、認証部は、該ＰＣから送信されるユーザＩＤとパスワードとが認証テーブルに格納されているか否かを判定することによってユーザ認証を行う。ただし、ユーザ認証は、これに限られず、例えば、Public Key Infrastructure（ＰＫＩ）等による認証であってもよく、ユーザ認証の方法は問わな
い。
【符号の説明】
【０１８３】
１      サーバ
２      アクセス元端末
３      宅内機器群
１２，２１，３３    処理実行部
１３    ファイル転送サーバ
１４    遠隔アクセスサーバ
１５    処理実行制御部
１６    処理手順構成管理部
１７    機器情報管理部
１８    ユーザ機器管理部
１９    ファイルリスト生成部
２２    遠隔クライアント部
２４，３２    機器情報収集部
２５    ファイルリスト出力部
２６    ファイルリスト取得部
１０１  プロセッサ
１０２  主記憶装置
１０５  補助記憶装置
【図１】
2015166971.tif 000003
【図２】
2015166971.tif 000004
【図３】
2015166971.tif 000005
【図４】
2015166971.tif 000006
【図５Ａ】
2015166971.tif 000007
【図５Ｂ】
2015166971.tif 000008
【図５Ｃ】
2015166971.tif 000009
【図６】
2015166971.tif 000010
【図７】
2015166971.tif 000011
【図８】
2015166971.tif 000012
【図９Ａ】
2015166971.tif 000013
【図９Ｂ】
2015166971.tif 000014
【図１０Ａ】
2015166971.tif 000015
【図１０Ｂ】
2015166971.tif 000016
【図１０Ｃ】
2015166971.tif 000017
【図１０Ｄ】
2015166971.tif 000018
【図１１Ａ】
2015166971.tif 000019
【図１１Ｂ】
2015166971.tif 000020
【図１２】
2015166971.tif 000021
【図１３】
2015166971.tif 000022
【図１４】
2015166971.tif 000023