以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
<第1の実施の形態>
図1は、本発明の第1の実施の形態における操作支援システムの全体概要の一例を示す図である。図1を参照して、操作支援システム1は、MFP(Multi Function Peripheral)100,100A,100Bと、情報処理装置として機能するスマートフォン200と、を含む。
MFP100,100A,100Bは、画像形成装置の一例であり、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。MFP100,100A,100Bは、画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。スマートフォン200は、携帯情報装置の一例であり、ユーザーにより携帯されて使用される。
無線局5およびMFP100,100A,100Bそれぞれは、ネットワーク3に接続される。ネットワーク3は、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。またネットワーク3は、LANに限らず、公衆交換電話網(Public Switched Telephone Networks)を用いたネットワーク等であってもよい。さらに、ネットワーク3は、インターネットなどのワイドエリアネットワーク(WAN)であってもよい。
スマートフォン200は、無線LAN機能を有し、無線局5と通信可能である。無線局5は、ネットワーク3の中継装置であり、無線LANを用いた通信機能を備えたスマートフォン200と通信して、スマートフォン200をネットワーク3に接続する。このため、スマートフォン200は、無線局5を介してMFP100,100A,100Bと通信可能である。ネットワーク3は、さらに、インターネットに接続されてもよい。この場合、スマートフォン200およびMFP100,100A,100Bそれぞれは、ネットワーク3を介してインターネットに接続されたコンピューターと互いに通信可能である。
本実施の形態における操作支援システム1において、ユーザーがスマートフォン200を携帯して、MFP100,100A,100Bのいずれかを操作する場合におけるユーザーの操作を支援する。具体的には、操作支援システム1は、ユーザーがMFP100を操作した後に、MFP100Aを操作する場合、MFP100の操作を終了した時点の設定を、MFP100Aに引き継ぐことを可能にする。
図2は、第1の実施の形態におけるスマートフォンのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、本実施の形態におけるスマートフォン200は、スマートフォン200の全体を制御するための中央演算装置(CPU)201と、CPU201が実行するプログラム等を記憶するROM(Read Only Memory)202と、CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するフラッシュメモリ204と、情報を表示する表示部205と、ユーザーの操作を受け付ける操作部206と、無線LANインターフェース(I/F)208と、GPS(Global Positioning System)センサー209と、外部記憶装置210と、近距離通信部211と、を含む。
フラッシュメモリ204は、CPU201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。CPU201は、フラッシュメモリ204に記録されたプログラムを、RAM203にロードして実行する。
表示部205は、液晶表示装置(LCD)、有機ELD(Electro−Luminescence Display)等の表示装置である。操作部206は、メインキー206Aと、タッチパネル206Bとを備える。タッチパネル206Bは、表示部205の上面または下面に表示部205に重畳して設けられる。メインキー206Aは、例えば接点スイッチで構成されるハードキーである。タッチパネル206Bは、静電容量方式である。なお、タッチパネル206Bは、静電容量方式に限らず、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式等の他の方式を用いることができる。タッチパネル206Bは、表示部205の表示面中でユーザーにより指示された位置を検出する。また、ユーザーが、表示部205の表示面を指示する場合、操作部206は、タッチパネル206Bにより検出される表示面の位置をCPU201に出力する。
CPU201は、タッチパネル206Bによる検出された位置に基づいて、表示部205に表示されている画面中でユーザーにより指示された位置を検出する。CPU201は、表示部205に表示されている画面と、タッチパネル206Bによる検出された位置とに基づいて、ユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。例えば、表示部205にテンキーの画像を含む画面を表示する場合には、タッチパネル206Bによる検出された位置に表示されたキーに対応する数字を受け付ける。
無線LANI/F208は、無線局5と通信し、スマートフォン200をネットワーク3に接続するためのインターフェースである。スマートフォン200に、MFP100,100A,100BそれぞれのIP(Internet Protocol)アドレスを登録しておくことにより、スマートフォン200は、MFP100,100A,100Bそれぞれと通信することができ、データの送受信が可能となる。
近距離通信部211は、通信可能な距離が予め定められており、通信可能な距離の範囲内に存在する装置と通信する。近距離通信部211は、例えば、MFP100との間の距離が通信可能な距離以下となると、MFP100と通信する。近距離通信部211の例としては、NFC(Near Field Communication)規格の無線通信方式、Bluetooth(登録商標)規格の無線通信方式がある。NFC規格の無線通信方式の通信可能な距離は数センチメートルであり、Bluetooth(登録商標)規格の無線通信方式は数十メートルである。
GPSセンサー209は、GPS衛星から受信される電波に基づいて、スマートフォン200の現在位置を検出する。GPSセンサー209は、検出した現在位置を示す位置情報をCPU201に出力する。
外部記憶装置210は、スマートフォン200に着脱自在であり、プログラムを記憶したCD−ROM(Compact Disk ROM)210Aが装着される。CPU201は、外部記憶装置210を介してCD−ROM210Aにアクセス可能である。CPU201は、外部記憶装置210に装着されたCD−ROM210Aに記録されたプログラムをRAM203にロードして実行する。なお、CPU201が実行するプログラムを記憶する媒体としては、CD−ROM210Aに限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROMまたはEPROM(Erasable Programmable ROM)などの半導体メモリであってもよい。
また、CPU201が実行するプログラムは、CD−ROM210Aに記録されたプログラムに限られず、フラッシュメモリ204に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、ネットワーク3に接続された他のコンピューターが、スマートフォン200のフラッシュメモリ204に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、スマートフォン200が、インターネットに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをフラッシュメモリ204に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
MFP100,100A,100Bのハードウェア構成および機能は同じなので、ここでは、MFP100を例に説明する。図3は、第1の実施の形態におけるMFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、メイン基板111と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、通信インターフェース(I/F)部160と、ファクシミリ部170と、外部記憶装置180と、大容量記憶装置としてのハードディスクドライブ(HDD)113と、ユーザーインターフェースとしての操作パネル115とを含む。
メイン基板111は、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113、および操作パネル115と接続され、MFP100の全体を制御する。
自動原稿搬送装置120は、原稿トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。
給紙部150は、給紙トレイに収納された用紙を画像形成部140に搬送する。画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
通信I/F部160は、ネットワーク3にMFP100を接続するためのインターフェースである。通信I/F部160は、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、ネットワーク3に接続された他のコンピューターと通信する。具体的には、MFP100は、他のMFP100A,100Bおよびスマートフォン200と通信可能である。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
通信I/F部160は、ネットワーク3から受信されるデータをメイン基板111に出力し、メイン基板111から入力されるデータをネットワーク3に出力する。通信I/F部160は、ネットワーク3から受信されるデータのうちMFP100宛てのデータのみを、メイン基板111に出力し、ネットワーク3から受信されるデータのうちMFP100とは異なる装置宛てのデータを廃棄する。
ファクシミリ部170は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。外部記憶装置180は、CD−ROM(Compact Disk Read Only Memory)181、または半導体メモリが装着される。外部記憶装置180は、CD−ROM181または半導体メモリに記憶されたデータを読み出す。外部記憶装置180は、CD−ROM181または半導体メモリにデータを記憶する。
操作パネル115は、MFP100の上面に設けられ、表示部118と操作部119とを含む。表示部118は、液晶表示装置(LCD)、有機ELD等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部119は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部118の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部118の表示面中でユーザーにより指示された位置を検出する。
図4は、第1の実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。図4を参照して、メイン基板111は、CPU171と、ROM173と、RAM175と、画像制御ASIC(Application Specific Integrated Circuit)177と、を含む。
CPU171、ROM173、RAM175および画像制御ASIC177それぞれは、バス179に接続されており、データの転送が可能である。CPU171は、MFP100の全体を制御する。
ROM173は、CPU171が実行するプログラムを記憶する。RAM175は、CPU171の作業領域として用いられる揮発性の半導体メモリである。
CPU171は、HDD113に記憶されたプログラムをRAM175にロードして実行する。CPU171が実行するプログラムは、ハードウェア資源を制御するための制御プログラム、およびアプリケーションプログラムを含む。ハードウェア資源は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、の通信I/F部160、ファクシミリ部170、HDD113および操作パネル115を含む。アプリケーションプログラムは、例えば、ファクシミリ部170を制御してファクシミリデータを送信するファクシミリ送信プログラム、ファクシミリ部170を制御してファクシミリデータを受信するファクシミリ受信プログラム、通信I/F部160を制御してプリントジョブを受信し、画像形成部140および給紙部150を制御してプリントジョブに基づいて画像を形成するプリントプログラム、原稿読取部130を制御して原稿を読み取る原稿読取プログラムを含む。また、アプリケーションプログラムは、MFP100が備える消耗品を管理するメンテナンスプログラム、エラー状態を通知するエラー状態通知プログラムを、含んでもよい。なお、CPU171が実行するアプリケーションプログラムを、これらに限定するものではない。
画像制御ASIC177は、自動原稿搬送装置120、原稿読取部130、画像形成部140、および給紙部150と接続され、それらを制御する。また、画像制御ASIC177は、原稿読取部130が原稿を読み取って出力する画像データに所定の画像処理を実行する機能、画像データを画像形成部140がプリントするためのラスターデータに変換する機能を有する。
本実施の形態におけるスマートフォン200は、MFP100,100A,100Bをシミュレートするシミュレータを備えている。このシミュレータは、CPU201がシミュレートプログラムを実行することにより、CPU201に形成される。図5は、スマートフォンが備えるシミュレータの概要の一例を示す図である。図5を参照して、シミュレータは、CPU周辺シミュレータ300と、ハードウェア(HW)シミュレータ320と、を含む。CPU周辺シミュレータ300は、MFP100が備えるCPU171をシミュレートする仮想CPU301と、ROM173およびRAM175をエミュレートする仮想メモリ303と、周辺モデル305と、同期設定モデル307と、割込制御部309と、を含む。仮想CPU301、仮想メモリ303、周辺モデル305および同期設定モデル307は、バス(Bus)311に接続されている。
周辺モデル305は、MFP100が備えるHDD113、操作パネル115、通信I/F部160および外部記憶装置180をそれぞれエミュレートするHDD113A、操作パネル115A、通信I/F部160Aおよび外部記憶装置180Aを含む。
同期設定モデル307は、仮想CPU301が、仮想メモリ303および周辺モデル305と同期するための設定をする。割込制御部309は、仮想CPU301が仮想メモリ303および周辺モデル305と同期するための設定時に、仮想CPU301に割り込みを発生させる。
HWシミュレータ320は、PCI−ExpressBusモデル321と、画像制御ASICモデル323と、ハードウェア資源モデル325と、を含む。PCI−ExpressBusモデル321は、バス311に接続され、PCI−Express規格に従った接続をエミュレートする。画像制御ASICモデル323は、MFP100が備える画像制御ASIC177をエミュレートする。ハードウェア資源モデル325は、MFP100が備えるハードウェア資源をエミュレートする。具体的には、ハードウェア資源モデル325は、MFP100が備える自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150およびファクシミリ部170をそれぞれエミュレートする自動原稿搬送装置120A、原稿読取部130A、画像形成部140A、給紙部150Aおよびファクシミリ部170Aを含む。
図6は、第1の実施の形態におけるスマートフォンが備えるCPUが有する機能の一例を示すブロック図である。図6に示す機能は、スマートフォン200が備えるCPU201が、ROM202、フラッシュメモリ204またはCD−ROM210Aに記憶された操作支援プログラムを実行することにより、CPU201により実現される機能である。
図6を参照して、スマートフォン200が備えるCPU201は、終了時検出部251と、装置情報取得部253と、開始時検出部255と、スナップショット取得部257と、生成部259と、起動部261と、装置判断部263と、を含む。
終了時検出部251は、ユーザーがMFP100,100A,100Bのいずれかの操作の終了を検出する。ここでは、ユーザーがMFP100を操作した後に、MFP100Aを操作する場合を例に説明する。また、ユーザーが先に操作していたMFP100を、移動前装置(第1の画像形成装置)といい、ユーザーが移動前装置の次に操作するMFP100Aを移動後装置(第2の画像形成装置)という。
終了時検出部251は、ユーザーによる移動前装置であるMFP100の操作の終了を検出する。例えば、終了時検出部251は、近距離通信部211が移動前装置であるMFP100と通信不可能な状態になる場合、移動前装置の操作の終了を検出する。近距離通信部211が移動前装置と通信不可能になる場合、スマートフォン200と移動前装置との間の距離が近距離通信部211の通信可能な距離よりも大きい場合があるからである。
また、終了時検出部251は、ユーザーが移動前装置であるMFP100に操作の終了を指示する操作を入力する場合に、移動前装置であるMFP100から操作の終了を検出するようにしてもよい。また、スマートフォン200に、移動前装置であるMFP100を遠隔操作するプログラムがインストールされている場合には、終了時検出部251は、ユーザーが操作部206に移動前装置であるMFP100の遠隔操作を終了する指示が入力される場合に、ユーザーによる移動前装置の操作の終了を検出する。
終了時検出部251は、ユーザーによる移動前装置の操作の終了を検出することに応じて、終了信号を装置情報取得部253およびスナップショット取得部257に出力する。終了信号は、ユーザーが操作していた移動前装置であるMFP100を識別するための装置識別情報を含む。
装置情報取得部253は、終了時検出部251から終了信号が入力されることに応じて、終了信号に含まれる装置識別情報で特定される移動前装置から装置情報を取得する。具体的には、無線LANI/F208を制御して、移動前装置であるMFP100から装置情報を取得する。装置情報は、装置に搭載されている中央演算装置の機種名、装置にインストールされたハードウェア資源に関するハード情報と、装置にインストールされたソフトウェア資源に関するソフト情報と、装置に固有に設定された固有情報と、を含む。固有情報は、例えば、装置に割り当てられたネットワークアドレスである。以下、移動前装置から取得された装置情報を、移動前装置情報(第1の装置情報)という。装置情報取得部253は、移動前装置であるMFP100の装置識別情報とMFP100から取得された移動前装置情報とを装置判断部263および生成部259に出力する。
スナップショット取得部257は、終了時検出部251から終了信号が入力されることに応じて、終了信号に含まれる装置識別情報で特定される移動前装置であるMFP100からスナップショットを取得する。具体的には、無線LANI/F208を制御して、移動前装置であるMFP100からスナップショットを取得する。スナップショットは、移動前装置であるMFP100が備えるRAM175に記憶されたデータと、移動前装置であるMFP100が備えるCPU201のレジスタの値と、を含む。以下、移動前装置から取得されたスナップショットを、移動前スナップショット(第1のスナップショット)という。スナップショット取得部257は、取得された移動前スナップショットを生成部259に出力する。
開始時検出部255は、ユーザーによるMFP100,100A,100Bのいずれかの操作の開始を検出する。MFP100,100A,100Bが配置される地理上の位置を予め記憶しておき、スマートフォン200が検出する現在位置が、MFP100,100A,100Bのいずれかから所定の距離の範囲内になった場合に、ユーザーによる操作の開始を検出する。例えば、スマートフォン200が検出する現在位置が、MFP100Aから所定の距離の範囲内になった場合に、ユーザーによる操作の開始を検出する。ここでは、移動後装置をMFP100Aとしているので、開始時検出部255は、移動後装置であるMFP100Aの操作の開始を検出する場合を例に説明する。また、MFP100,100A,100Bそれぞれが、それぞれを識別するための装置識別情報を記憶したNFCタグを備える場合には、近距離通信部211がNFCタグと通信可能になる場合に、ユーザーによる操作の開始を検出するようにしてもよい。例えば、ユーザーがスマートフォン200をMFP100Aに装着されたNFCタグに近づけると、近距離通信部211がNFCタグと通信可能になり、NFCタグからMFP100Aの装置識別情報を受信するので、開始時検出部255は、近距離通信部211がNFCタグから受信する装置識別情報で特定されるMFP100Aに対するユーザーによる操作の開始を検出する。
開始時検出部255は、操作権限判断部265を含む。操作権限判断部265は、スマートフォン200を操作するユーザーが移動後装置を操作する権限の有無を判断する。スマートフォン200を操作するユーザーに対して、使用する権限が与えられた装置を予め定めたテーブルを準備しおき、そのテーブルを参照して、操作権限の有無を判断する。
開始時検出部255は、操作権限判断部265により移動後装置であるMFP100Aを使用する権限が与えられていると判断される場合に、ユーザーによる移動後装置の操作の開始を検出するが、操作権限判断部265により移動後装置であるMFP100Aを使用する権限が与えられていないと判断される場合に、ユーザーによる移動後装置の操作の開始を検出しない。
また、スマートフォン200に、移動後装置であるMFP100Aを遠隔操作するプログラムがインストールされている場合には、開始時検出部255は、ユーザーが操作部206にMFP100Aを遠隔操作する指示が入力される場合に、ユーザーによるMFP100Aの操作の開始を検出する。この場合においても、操作権限判断部265によりMFP100Aを使用する権限が与えられていると判断されることを条件に、ユーザーによるMFP100Aの操作の開始を検出する。
開始時検出部255は、ユーザーによる移動後装置の操作の開始を検出することに応じて、開始信号を装置情報取得部253、起動部261に出力する。開始信号は、ユーザーが操作を開始した移動後装置であるMFP100Aを識別するための装置識別情報を含む。
装置情報取得部253は、開始時検出部255から開始信号が入力されることに応じて、開始信号に含まれる装置識別情報で特定される移動後装置であるMFP100Aの装置情報を取得する。MFP100,100A,100Bそれぞれの装置情報を予め取得しておき、HDD113に記憶しておくようにすればよい。以下、移動後装置であるMFP100Aの装置情報を、移動後装置情報(第2の装置情報)という。装置情報取得部253は、移動後装置であるMFP100Aの装置識別情報とMFP100Aから取得された移動後装置情報とを装置判断部263および生成部259に出力する。
生成部259は、装置情報取得部253から移動前装置の装置識別情報と移動前装置情報との組および移動後装置の装置識別情報と移動後装置情報との組が入力され、スナップショット取得部257から移動前スナップショットが入力される。生成部259は、移動前装置情報と移動後装置情報とに基づいて、移動前スナップショットから移動後装置のためのスナップショットを生成する。以下、生成部259が生成する移動後装置のためのスナップショットを移動後スナップショット(第2のスナップショット)という。
生成部259は、シミュレート部271と、エミュレート部273と、変更部275と、決定部277と、を含む。シミュレート部271は、移動前スナップショットを用いて移動前装置であるMFP100をシミュレートする。具体的には、シミュレート部271は、図6に示したCPU周辺シミュレータ300の仮想メモリ303に移動前スナップショットを記憶させるとともに、仮想CPU301のレジスタに、移動前スナップショットに含まれるレジスタ値を設定する。
エミュレート部273は、移動前装置情報に含まれるハード情報で定めるハードウェア資源をエミュレートする。エミュレート部273は、図6に示したCPU周辺シミュレータ300の仮想メモリ303、周辺モデル305、PCI−ExpressBusモデル321およびハードウェア資源モデル325に相当する。具体的には、移動前装置であるMFP100は、ハードウェア資源として、画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115を含む。エミュレート部273は、ハードウェア資源として、画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部 160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115それぞれをエミュレートする。
さらに、シミュレート部271は、エミュレート部273によりエミュレートされるハードウェア資源との同期を設定する。具体的には、図6に示したCPU周辺シミュレータ300の同期設定モデル307に、仮想CPU301が、エミュレート部273においてエミュレートされるハードウェア資源のエミュレータと同期するように仮想CPU301のレジスタ値、および仮想メモリ303のメモリマップを設定させる。これにより、シミュレート部271において、移動前装置であるMFP100をシミュレートした仮想装置が完成する。
変更部275は、移動前装置情報および移動後装置情報に基づいて、シミュレート部271が移動前装置であるMFP100をシミュレートする仮想装置を、移動後装置であるMFP100Aをシミュレートする仮想装置に変更するようにシミュレート部271を制御する。具体的には、変更部275は、シミュレート部271に移動前装置であるMFP100にインストールされているが、移動後装置であるMFP100にインストールされていないハードウェア資源を、仮想装置からアンインストールさせる。変更部275は、移動前装置情報に含まれるハード情報に基づいて、移動前装置であるMFP100にインストールされているハードウェア資源を決定し、移動後装置情報に含まれるハード情報に基づいて、移動後装置であるMFP100Aにインストールされているハードウェア資源を決定する。例えば、移動後装置であるMFP100Aに原稿読取部130がインストールされていない場合、変更部275は、シミュレート部271に原稿読取部130をアンインストールする指示を出力する。シミュレート部271は、変更部275からの指示に従って、仮想CPU301を制御して原稿読取部130を制御するためのドライバープログラムをアンインストールするとともに、エミュレート部273が原稿読取部130をエミュレートするエミュレータに対して設定されたレジスタ値を、同期を解消する値に変更する。
なお、変更部275は、シミュレート部271に移動後装置であるMFP100にインストールされているが、移動前装置であるMFP100にインストールされていないハードウェア資源を、仮想装置にインストールさせるようにしてもよい。変更部275は、移動前装置情報に含まれるハード情報と移動後装置情報に含まれるハード情報とに基づいて、インストールするアハードウェア資源を決定する。この場合、インストールすることが決定されたハードウェア資源を、エミュレート部273にエミュレートさせ、仮想CPU301を制御してインストールすることが決定されたハードウェア資源を制御するプログラムをインストールさせるとともに、エミュレート部273によりエミュレートされるハードウェア資源と同期させるためのレジスタ値を設定する。
また、変更部275は、シミュレート部271に移動前装置であるMFP100にインストールされているが、移動後装置であるMFP100にインストールされていないソフトウェア資源を、そのソフトウェア資源が移動後装置であるMFP100に使用権限が与えられていないことを条件に、仮想装置からアンインストールさせる。変更部275は、移動前装置情報に含まれるソフト情報(第1のソフト情報)に基づいて、移動前装置であるMFP100にインストールされているソフトウェア資源と使用権限とを決定し、移動後装置情報に含まれるソフト情報(第2のソフト情報)に基づいて、移動後装置であるMFP100Aにインストールされているソフトウェア資源と使用権限とを決定する。変更部275は、移動前装置情報に含まれるソフト情報と移動後装置情報に含まれるソフト情報とに基づいて、アンインストールするプログラムを決定する。具体的には、変更部275は、移動前装置であるMFP100にインストールされているプログラムのうちに、移動前装置であるMFP100に使用権限が与えられているプログラムが含まれる場合、そのプログラムが移動後装置であるMFP100Aにおいて使用権限が与えられていない場合に、そのプログラムをアンインストールする対象に決定する。移動後装置であるMFP100Aで、それに使用権限が与えられていないソフトウェア資源を使用できないようにするためである。変更部275は、移動前装置であるMFP100にインストールされているが、移動後装置であるMFP100Aにインストールされていないプログラムであって、ユーザーに使用権限が与えられたプログラムを、シミュレート部271にアンインストールさせない。これにより、ユーザーが移動後装置であるMFP100Aの操作を開始した場合に、ユーザーに使用権限が与えられたプログラムを直ちに実行させることができる。例えば、そのプログラムを実行するための認証等の処理を実行させる必要がない。
また、変更部275は、移動後装置であるMFP100にインストールされているが、移動前装置であるMFP100にインストールされていないソフトウェア資源を、シミュレート部271にインストールさせる。変更部275は、移動前装置情報に含まれるソフト情報と移動後装置情報に含まれるソフト情報とに基づいて、インストールするアプリケーションプログラムを決定する。これにより、移動後装置であるMFP100Aにインストールされているすべてのプログラムを直ちに実行させることができる。
さらに、変更部275は、移動後装置であるMFP100の固有情報を移動後装置であるMFP100Aの固有情報に変更してシミュレート部271に設定させる。変更部275は、移動前装置情報に含まれる固有情報(第1固有情報)を、移動後装置情報に含まれる固有情報(第2固有情報)に変更させる。固有情報は、IPアドレスの場合、変更部275は、シミュレート部271に、移動前装置であるMFP100のIPアドレスを、移動後装置であるMFP100AのIPアドレスに変更させる。これにより、移動後装置であるMFP100Aにおいて、ネットワーク3を介して通信を直ちに実行させることができる。
さらに、変更部275は、移動前装置であるMFP100にインストールされている不揮発性の記憶装置、ここではHDD113へのアクセスを可能にするために、HDD113にアクセスするためのパスをシミュレート部271に設定させる。ここでのパスは、ネットワーク3を介してMFP100のHDD113を特定できるパスであり、移動前装置であるMFP100の装置識別情報を含む。これにより、移動後装置であるMFP100Aにおいて、移動前装置であるMFP100が備えるHDD113に記憶されたデータにアクセスすることができる。
決定部277は、シミュレート部271が移動後装置であるMFP100Aをシミュレートする状態におけるスナップショットを移動後スナップショットに決定する。具体的には、シミュレート部271がシミュレートする仮想装置の装置情報が、移動後装置情報と同じになった時点で、仮想メモリ303に記憶されているデータと、仮想CPU301に設定されているレジスタ値とを移動後スナップショットに決定する。決定部277は、決定されたスナップショットを起動部261に出力する。
装置判断部263は、起動前装置情報に含まれる機種名と起動後装置情報に含まれる機種名とに基づいて、起動前スナップショットから起動後スナップショットの生成が可能か否かを判断する。機種名から、起動前装置であるMFP100のCPU171と、起動後装置であるMFP100AのCPU171とが同一かまたは互換性がある場合に、起動後スナップショットを生成可能と判断するが、両者が異なる場合、また互換性がない場合に、起動後スナップショットを生成不可能と判断する。装置判断部263は、起動後スナップショットを生成不可能と判断する場合、生成部259に禁止指示を出力する。生成部259は、装置判断部263から禁止指示が入力される場合は、シミュレート部271に移動前装置であるMFP100をシミュレートさせることなく、移動後スナップショットを生成しない。
起動部261は、開始時検出部255から開始信号が入力されることに応じて、決定部277から入力される移動後スナップショットを、移動後装置であるMFP100Aに設定し、ハイバネーションで起動するようにMFP100Aに指示する。具体的には、起動部261は、開始信号に含まれる装置識別情報から移動後装置であるMFP100Aを特定し、無線LANI/F208を制御して、移動後スナップショットを設定し、ハイバネーションで起動するコマンドを送信する。移動後装置であるMFP100Aにおいては、スマートフォン200から移動後スナップショットを受信すると、RAM203に移動後スナップショットを記憶し、ハイバネーションする。これにより、移動後装置であるMFP100Aにおいて、移動後装置であるMFP100Aの前に操作していた移動前装置であるMFP100と同じ状態が再現される。このため、ユーザーは、移動前装置であるMFP100で設定していた操作を途中で中断する場合であっても、移動前装置であるMFP100で設定していた操作を移動後装置であるMFP100Aにおいて継続することができる。
起動部261は、さらに、MFP100Aがハイバネーションで起動する場合、フラッシュメモリ204に記憶されている移動前スナップショットを削除する。これにより、フラッシュメモリ204に最新のスナップショットのみを記憶するようにすることができる。
図7は、第1の実施の形態における操作支援処理の流れの一例を示すフローチャートである。操作支援処理は、スマートフォン200が備えるCPU201が、ROM202、フラッシュメモリ204またはCD−ROM210Aに記憶された操作支援プログラムを実行することにより、CPU201により実行される処理である。図7を参照して、スマートフォン200が備えるCPU201は、MFP100,100A,100Bのいずれかに対するユーザーによる操作の終了を検出したか否かを判断する(ステップS01)。MFP100,100A,100Bのいずれかのうち、ユーザーによる操作の終了が検出された装置を移動前装置という。ここでは、移動前装置としてMFP100が検出される場合を例に説明する。ユーザーによるMFP100の操作が検出された後に、近距離通信部211が移動前装置であるMFP100と通信不可能になる場合に、移動前装置であるMFP100に対するユーザーによる操作の終了を検出する。操作の終了を検出したならば処理をステップS02に進めるが、そうでなければ処理をステップS01に戻す。
ステップS02においては、移動前装置であるMFP100から装置情報を取得する。無線LANI/F208を制御して、MFP100と通信することにより、MFP100からMFP100の装置情報を取得する。次のステップS03においては、移動前装置であるMFP100から移動前スナップショットを取得する。無線LANI/F208を制御して、MFP100と通信することにより、MFP100からRAM175に記憶されたデータと、CPU171のレジスタに設定されたレジスタ値とを含むスナップショットを移動前スナップショットとして取得する。ステップS04においては、取得された移動前スナップショットをフラッシュメモリ204に記憶し、処理をステップS05に進める。
ステップS05においては、MFP100,100A,100Bのいずれかに対するユーザーによる操作の開始を検出したか否かを判断する。MFP100,100A,100Bのいずれかに対するユーザーによる操作の開始を検出したならば(ステップS05でYES)、処理をステップS06に進めるが、そうでなければ待機状態となる(ステップS05でNO)。スマートフォン200の現在位置がMFP100,100A,100Bのいずれかから所定の範囲内となる場合に、ユーザーによる操作の開始を検出する。以下、ユーザーによる操作の開始が検出された装置を移動後装置という。ここでは、移動後装置としてMFP100Aが検出される場合を例に説明する。
次のステップS06においては、移動後装置であるMFP100Aの使用権限が与えられているか否かを判断する。使用権限が与えられているならば処理をステップS07に進めるが、そうでなければ処理をステップS05に戻す。
ステップS07においては、移動後装置であるMFP100Aの装置情報を取得する。MFP100,100A,100Bそれぞれの装置情報を予め取得しておき、HDD113に記憶しておくようにすればよい。次のステップS08においては、移動前装置であるMFP100と移動後装置であるMFP100Aとで、CPUの機種が同一または互換性があるか否かを判断する。CPUの機種が同一または互換性があるならば処理をステップS09に進めるが、そうでなければ処理を終了する。CPUの機種が同一または互換性がない場合は、移動後装置であるMFP100Aは、ハイバネーションすることなく、CPU171にブートプログラムを実行させて、通常の起動方法で起動させる。
ステップS09においては、シミュレート設定する。移動前装置であるMFP100の装置情報に基づいてMFP100の仮想装置を構成するとともに、仮想メモリにステップS03において取得された移動前スナップショットを記憶する。
そして、ステップS10においては、ハードウェア資源を決定し、処理をステップS11に進める。移動前装置であるMFP100の装置情報と、移動後装置であるMFP100Aの装置情報とに基づいて、MFP100にインストールされているがMFP100Aにインストールされていないハードウェア資源を決定する。ステップS11においては、決定されたハードウェア資源をアンインストールし、処理をステップS12に進める。
ステップS12においては、ソフトウェア資源を決定し、処理をステップS13に進める。移動前装置であるMFP100の装置情報と、移動後装置であるMFP100Aの装置情報とに基づいて、MFP100にインストールされているがMFP100Aにインストールされておらず、MFP100Aが使用権限を有しないアプリケーションプログラムを決定する。ステップS13においては、決定されたアプリケーションプログラムをアンインストールし、処理をステップS14に進める。
次のステップS14においては、固有情報を設定する。具体的には、移動前装置であるMFP100の装置情報で定められた固有情報を、移動後装置であるMFP100Aの装置情報で定められた固有情報に変更する。固有情報は、例えば、IPアドレスである。
次のステップS15においては、仮想メモリに記憶されているデータと、仮想CPUのレジスタに設定されているレジスタ値とを含むスナップショットを、移動後スナップショットとして、移動後装置であるMFP100Aに設定させるために送信し、移動後装置であるMFP100Aにハイバネーションを指示する。これにより、移動後装置であるMFP100Aにおいて、ハイバネーションが実行され、起動する。
次のステップS16においては、ステップS04において記憶されたスナップショットを削除し、処理を終了する。これにより、ユーザーに対して1つのスナップショットを記憶することができる。
<変形例>
上述した第1の実施の形態においては、スマートフォン200が移動前装置であるMFP100から移動前スナップショットを取得した後、移動後装置であるMFP100Aに対するユーザーの操作を検出すると、移動前スナップショットを移動後スナップショットに変更し、移動後スナップショットを、MFP100Aに記憶させるようにした。
変形例においては、スマートフォン200が移動前装置であるMFP100から移動前スナップショットを取得した後、移動後装置であるMFP100Aに対するユーザーの操作を検出する前に、移動前スナップショットを中間スナップショットに変更し、移動後装置であるMFP100Aに対するユーザーの操作を検出すると、中間スナップショットを移動後スナップショットに変更し、移動後スナップショットを、MFP100Aに記憶させるようにする。
中間スナップショットは、MFP100,100A,100Bの少なくとも1つにインストールされているハードウェア資源のすべてがインストールされ、かつ、MFP100,100A,100Bの少なくとも1つにインストールされているソフトウェア資源のすべてがインストールされたモデル装置を設定し、そのモデル装置に記憶させるためのスナップショットである。なお、モデル装置にインストールされるハードウェア資源およびソフトウェア資源は、予め定められていればよく、MFP100,100A,100Bの半分以上でインストールされるハードウェア資源およびソフトウェア資源であってもよい。
変形例における生成部259は、装置情報取得部253から移動前装置であるMFP100の装置識別情報と移動前装置情報との組が入力され、スナップショット取得部257から移動前スナップショットが入力されることに応じて、中間スナップショットを生成する。そして、変形例における生成部259は、装置情報取得部253から移動後装置であるMFP100Aの装置識別情報と移動後装置情報との組が入力されることに応じて、中間スナップショットから移動後スナップショットを生成する。
変形例におけるシミュレート部271は、移動前スナップショットを用いて移動前装置であるMFP100をシミュレートする。具体的には、シミュレート部271は、図6に示したCPU周辺シミュレータ300の仮想メモリ303に移動前スナップショットを記憶させ、エミュレート部273が移動前装置であるMFP100が備えるハードウェア資源をエミュレートする。さらに、シミュレート部271は、仮想CPU301がエミュレート部273によりエミュレートされるハードウェア資源と同期するように、仮想CPU301のレジスタに移動前スナップショットに含まれるレジスタ値を設定する。これにより、変形例におけるシミュレート部271が、移動前装置であるMFP100をシミュレートした仮想装置が完成する。
そして、変形例における変更部275は、ユーザーが移動後装置であるMFP100Aを操作する前に、モデル装置に対して予め定められた装置情報に基づいて、シミュレート部271が移動前装置であるMFP100をシミュレートする仮想装置を、モデル装置をシミュレートする仮想装置に変更するようにシミュレート部271を制御する。具体的には、変更部275は、シミュレート部271に移動前装置であるMFP100にインストールされていないが、モデル装置にインストールされているハードウェア資源を、仮想装置にインストールする。さらに、変更部275は、シミュレート部271に移動前装置であるMFP100にインストールされていないが、モデル装置にインストールされているソフトウェア資源を、仮想装置にインストールする。具体的には、この場合、インストールすることが決定されたハードウェア資源を、エミュレート部273にエミュレートさせ、シミュレート部271にエミュレート部273によりエミュレートされるハードウェア資源と同期させるとともに、インストールすることが決定されたハードウェア資源を制御するプログラムをインストールさせる。
さらに、変形例における変更部275は、シミュレート部271がモデル装置をシミュレートする仮想装置を、移動後装置であるMFP100Aをシミュレートする仮想装置に変更するようにシミュレート部271を制御する。具体的には、変更部275は、シミュレート部271にモデル装置にインストールされているが、移動後装置であるMFP100Aにインストールされていないハードウェア資源を、仮想装置からアンインストールさせる。変更部275は、モデル装置の装置情報と移動後装置であるMFP100Aの移動後装置情報に含まれるハード情報に基づいてモデル装置にインストールされているハードウェア資源を決定し、移動後装置情報に含まれるハード情報に基づいて移動後装置であるMFP100Aにインストールされているハードウェア資源を決定する。例えば、移動後装置であるMFP100Aに原稿読取部130がインストールされていない場合、変更部275は、シミュレート部271に原稿読取部130をアンインストールする指示を出力する。シミュレート部271は、変更部275からの指示に従って、原稿読取部130を制御するためのドライバープログラムをアンインストールするとともに、エミュレート部273により原稿読取部130をエミュレートされるエミュレータとの同期を消去する設定をする。移動後装置であるMFP100にインストールされていないハードウェア資源およびソフトウェア資源をアンインストールすればよく、新たなハードウェア資源およびソフトウェア資源をインストールする必要がないので、移動後装置であるMFP100Aに対する操作が検出されてから移動後スナップショットを生成するまでの時間をできるだけ短くすることができる。
また、変形例における変更部275は、モデル装置にインストールされているが、移動後装置であるMFP100Aにインストールされていないソフトウェア資源を、そのソフトウェア資源が移動後装置であるMFP100に使用権限が与えられていないことを条件に、仮想装置からアンインストールさせる。具体的には、変形例における変更部275は、モデル装置にインストールされているプログラムのうちに、移動前装置であるMFP100に使用権限が許可されているプログラムが含まれる場合、そのプログラムが移動後装置であるMFP100Aにおいて使用権限が許可されていない場合に、そのプログラムをアンインストールする対象に決定する。変形例における変更部275は、移動前装置であるMFP100にインストールされているが、移動後装置であるMFP100にインストールされていないソフトウェア資源であって、ユーザーに使用権限が与えられたプログラムを、シミュレート部271にアンインストールさせない。このため、移動後装置であるMFP100Aにおいて、移動前装置であるMFP100にインストールされたプログラムを継続して使用することができる。例えば、プログラムを使用するための認証操作を省略することができる。
さらに、変形例における変更部275は、移動後装置であるMFP100の固有情報を移動前装置であるMFP100の固有情報に代えてシミュレート部271に設定させる。へ敬礼における変更部275は、移動前装置情報に含まれる固有情報(第1固有情報)を、移動後装置情報に含まれる固有情報(第2固有情報)に変更させる。固有情報は、IPアドレスの場合、変更部275は、シミュレート部271に、移動前装置であるMFP100のIPアドレスを、移動後装置であるMFP100AのIPアドレスに変更させる。
さらに、変形例における変更部275は、移動前装置であるMFP100にインストールされている不揮発性の記憶装置、ここではHDD113へのアクセスを可能にするために、HDD113にアクセスするためのパスをシミュレート部271に設定させる。
変形例における決定部277は、シミュレート部271が移動後装置であるMFP100Aをシミュレートする状態におけるスナップショットを移動後スナップショットに決定する。具体的には、シミュレート部271がシミュレートする仮想装置の装置情報が、移動後装置情報と同じになった時点で、仮想メモリ303に記憶されているデータと、仮想CPU301に設定されているレジスタ値とを移動後スナップショットに決定する。決定部277は、決定されたスナップショットを起動部261に出力する。
以上説明したように第1の実施の形態におけるスマートフォン200は、情報処理装置として機能し、ユーザーが操作を終了した移動前装置であるMFP100(第1の画像形成装置)から、操作を終了した時点の移動前スナップショット(第1のスナップショット)を取得し、ユーザーがMFP100の次に操作する移動後装置であるMFP100A(第2の画像形成装置)に対する操作の開始を検出すると、移動前装置であるMFP100の第1の装置情報と移動後装置であるMFP100Aの第2の装置情報とに基づいて、移動前スナップショットから移動後装置であるMFP100Aが実行するための移動後スナップショット(第2のスナップショット)を生成し、移動後スナップショットを移動後装置であるMFP100Aに実行させるために送信する。このため、MFP100とMFP100Aとでハードウェア資源の構成が異なる場合であってもMFP100の移動前スナップショットからMFP100Aでハイバネーションするための移動後スナップショットを生成することができる。
また、スマートフォン200は、移動前装置であるMFP100から取得された移動前スナップショットを用いてMFP100をシミュレートし、MFP100をシミュレートする仮想装置を移動後装置であるMFP100Aをシミュレートする仮想装置に変更することにより、移動後スナップショットを生成する。このため、移動後装置であるMFP100Aでハイバネーションするための移動後スナップショットを容易に生成することができる。
また、スマートフォン200は、ユーザーによる移動前装置であるMFP100に対する操作の終了が検出されることに応じて、MFP100をシミュレートする仮想装置を、モデル装置をシミュレートする仮想装置に変更し、移動後装置であるMFP100Aに対するユーザーによる操作の開始が検出されることに応じて、モデル装置をシミュレートする仮想装置を、MFP100Aをシミュレートする仮想装置に変更する。MFP100Aにインストールされていないハードウェア資源およびソフトウェア資源をアンインストールすればよいので、移動後装置であるMFP100Aに対するユーザーによる操作の開始が検出されてからMFP100Aがハイバネーションするための移動後スナップショットが生成されるまでの時間をできるだけ短くすることができる。
また、スマートフォン200は、移動前装置であるMFP100および移動後装置であるMFP100Aそれぞれにインストールされたハードウェア資源をエミュレートするので、MFP100およびMFP100Aを正確にシミュレートすることができる。
また、スマートフォン200は、仮想装置から移動前装置であるMFP100にインストールされたハードウェア資源であって移動後装置であるMFP100Aにインストールされたハードウェア資源以外のハードウェア資源をアンインストールする。このため、移動後装置であるMFP100Aにインストールされていないハードウェア資源がアンインストールされるので、移動後スナップショットを容易に生成することができる。
また、スマートフォン200は、移動後装置であるMFP100Aにインストールされたハードウェア資源であって移動前装置であるMFP100にインストールされたハードウェア資源以外のハードウェア資源をインストールする。このため、MFP100Aにインストールされたハードウェア資源のすべてを使用可能にすることができる。
また、スマートフォン200は、仮想装置から移動前装置であるMFP100にインストールされたソフトウェア資源であって移動後装置であるMFP100Aにインストールされたソフトウェア資源以外のソフトウェア資源を、そのソフトウェア資源がMFP100Aにおいて使用権限が与えられていないことを条件に、アンインストールする。このため、移動後装置であるMFP100Aにおいて使用権限が与えられていないソフトウェア資源をMFP100Aで使用できないようにすることができる。
また、スマートフォン200は、移動後装置であるMFP100Aにインストールされたソフトウェア資源であって移動前装置であるMFP100にインストールされたソフトウェア資源以外のソフトウェア資源をインストールする。このため、MFP100Aにインストールされた全てのソフトウェア資源を使用可能にすることができる。
また、スマートフォン200は、仮想装置において移動前装置であるMFP100に固有の第1固有情報を、移動後装置であるMFP100Aに固有の第2固有情報に変更する。例えば、第1固有情報および第2固有情報がネットワークアドレスの場合、MFP100Aがハイバネーション後に通信可能な状態にすることができる。
また、スマートフォン200は、移動前装置であるMFP100と移動後装置であるMFP100AそれぞれのCPUが同一または互換性があると判断する場合に、移動前スナップショットを移動後スナップショットに変更する。このため、移動後スナップショットを生成する前に判断するので、不要な処理が実行されるのを防止することができる。
また、スマートフォン200は、ユーザーが移動後装置であるMFP100Aを操作する権限を有する場合に、移動前スナップショットを移動後スナップショットに変更する。このため、ユーザーがMFP100Aを操作する権限を有する場合のみ、MFP100Aを使用可能にすることができる。
また、スマートフォン200は、仮想装置において、移動前装置であるMFP100が備えるHDD113にアクセス可能なパスを設定した移動後スナップショットを生成する。このため、MFP100AからMFP100のHDD113に記憶されたデータにアクセス可能にすることができる。
<第2の実施の形態>
第2の実施の形態における操作支援システムは、上述した第1の実施の形態におけるスマートフォン200が有する機能を、移動前装置が有するようにしたものである。第2の実施の形態における操作支援システムにおいては、スマートフォン200が不要であり、スマートフォン200が有するシミュレート機能が不要である。第2の実施の形態における操作支援システムにおいて、MFP100,100A,100Bのいずれかが移動前装置となり得、MFP100,100A,100Bのいずれかが移動後装置となり得る。ここでは、移動前装置をMFP100とし、移動後装置をMFP100Aとする場合を例に説明する。
具体的には、第2の実施の形態における操作支援システムにおいて、移動前装置であるMFP100が、ユーザーによる操作の終了を検出した時点で移動前スナップショットをHDD113にユーザーと関連付けて記憶する。その後、移動前装置であるMFP100が、そのユーザーがMFP100Aの操作を検出することに応じて、移動前スナップショットを移動後スナップショットに変更する。具体的には、移動前装置であるMFP100のCPU171が、アンインストールするハードウェア資源を決定し、アンインストールする。CPU171は、移動前装置であるMFP100にインストールされているが、移動後装置であるMFP100Aにインストールされていないハードウェア資源をアンインストールするハードウェア資源に決定する。
また、移動前装置であるMFP100は、移動前装置であるMFP100に使用権限が与えられているアプリケーションプログラムが含まれる場合、そのアプリケーションプログラムが移動後装置であるMFP100Aにおいて使用権限が与えられていない場合に、そのアプリケーションプログラムをアンインストールする対象に決定し、アンインストールする。
さらに、移動前装置であるMFP100は、MFP100の固有情報を移動後装置であるMFP100Aの固有情報に変更し、移動前装置であるMFP100にインストールされている不揮発性の記憶装置、ここではHDD113へのアクセスを可能にするために、HDD113にアクセスするためのパスを設定する。ここでのパスは、ネットワーク3を介してHDD113を特定できるパスであり、移動前装置であるMFP100の装置識別情報を含む。
移動前装置であるMFP100は、移動後スナップショットを移動後装置であるMFP100Aに送信し、MFP100AのRAM175に記憶させるとともに、MFP100Aが移動後スナップショットを実行可能な状態に設定する。具体的には、MFP100AのCPU171のレジスタ値を、MFP100AのCPU171に設定されたレジスタ値と同じ値に設定する。
図8は、第2の実施の形態における操作支援処理の流れの一例を示すフローチャートである。操作支援処理は、移動前装置であるMFP100が備えるCPU171が、ROM173、HDD113またはCD−ROM181に記憶された操作支援プログラムを実行することにより、CPU171により実行される処理である。図8を参照して、移動前装置であるMFP100が備えるCPU171は、ユーザーによる操作の終了を検出したか否かを判断する(ステップS51)。ユーザーによるMFP100の操作が検出された後に、近距離通信部211が移動前装置であるMFP100と通信不可能になる場合に、移動前装置であるMFP100に対するユーザーによる操作の終了を検出する。操作の終了を検出したならば処理をステップS52に進めるが、そうでなければ処理をステップS51に戻す。
ステップS52においては、移動前装置であるMFP100のRAM175に記憶されたデータとCPU171に設定されているレジスタ値とを移動前スナップショットとして、HDD113に記憶する。次のステップS53においては、それまで操作していたユーザーを識別するためのユーザー識別情報を、移動前スナップショットと関連付ける。
ステップS53においては、他のMFP100A,100Bのいずれかに対するユーザーによる操作の開始を検出したか否かを判断する。ユーザーの現在位置を検出するようにして、ユーザーの位置がMFP100A,100Bのいずれかから所定の距離の範囲内になった場合に、ユーザーによる操作の開始を検出する。例えば、ユーザーが携帯するスマートフォン200が検出する現在位置を、スマートフォン200から受信するようにしてユーザーの現在位置を検出することができる。ユーザーによる操作の開始を検出するまで待機状態となり(ステップS53でNO)、ユーザーによる操作の開始を検出したならば(ステップS53でYES)、処理をステップS54に進める。ここでは、MFP100Aでユーザーによる操作の開始を検出した場合を例に説明する。この場合、MFP100Aが移動後装置となる。
ステップS54においては、移動後装置であるMFP100Aの使用権限が与えられているか否かを判断する。使用権限が与えられているならば処理をステップS55に進めるが、そうでなければ処理をステップS53に戻す。
ステップS55においては、移動後装置であるMFP100Aの装置情報を取得する。MFP100A,100Bそれぞれの装置情報を予め取得しておき、HDD113に記憶しておくようにすればよい。次のステップS56においては、移動前装置であるMFP100と移動後装置であるMFP100Aとで、CPUの機種が同一または互換性があるか否かを判断する。CPUの機種が同一または互換性があるならば処理をステップS57に進めるが、そうでなければ処理を終了する。CPUの機種が同一または互換性がない場合は、移動後装置であるMFP100Aは、ハイバネーションすることなく、CPU171にブートプログラムを実行させて、通常の起動方法で起動させる。
ステップS57においては、ハイバネーションを実行する。ステップS52においてHDD113に記憶されたスナップショットのうちステップS53において操作の開始が検出されたユーザーのユーザー識別情報と関連付けられたスナップショットを、RAM175に展開して起動する。次のステップS58においては、ハードウェア資源を決定する。移動前装置であるMFP100の装置情報と、移動後装置であるMFP100Aの装置情報とに基づいて、MFP100にインストールされているがMFP100Aにインストールされていないハードウェア資源を決定する。そして、ステップS59においては、ステップS57において決定されたハードウェア資源をアンインストールし、処理をステップS60に進める。
ステップS60においては、ソフトウェア資源を決定し、処理をステップS61に進める。移動前装置であるMFP100の装置情報と、移動後装置であるMFP100Aの装置情報とに基づいて、MFP100にインストールされているがMFP100Aにインストールされておらず、MFP100Aに使用権限が与えられていないアプリケーションプログラムを決定する。ステップS61においては、ステップS60において決定されたアプリケーションプログラムをアンインストールし、処理をステップS62に進める。
ステップS62においては、固有情報を設定し、処理をステップS63に進める。具体的には、移動前装置であるMFP100の装置情報で定められた固有情報を、移動後装置であるMFP100Aの装置情報で定められた固有情報に変更する。固有情報は、例えば、IPアドレスである。
ステップS63においては、RAM175に記憶されているデータと、CPUの171のレジスタに設定されているレジスタ値とを含むスナップショットを、移動後スナップショットとして、移動後装置であるMFP100Aに設定されせるために送信し、移動後装置であるMFP100Aにハイバネーションを指示する。これにより、MFP100Aにおいて、ハイバネーションが実行され、起動する。
次のステップS64においては、ステップS52において記憶されたスナップショットのうちステップS53において操作の開始が検出されたユーザーのユーザー識別情報と関連付けられたスナップショットを削除し、処理を終了する。これにより、ユーザーに対して1つのスナップショットが、MFP100,100A,100Bのいずれか1つに記憶されるようにすることができる。
第2の実施の形態においては、MFP100,100A,100Bのいずれかが移動前装置および移動後装置となる。例えば、MFP100が移動前装置となり、MFP100Aが移動後装置となる場合、MFP100は、情報処理装置として機能し、MFP100がユーザーによる操作の終了を検出した時点の移動前スナップショットを記憶し、ユーザーによるMFP100Aの操作の開始を検出すると、第1の装置情報が第2の装置情報となるようにハードウェア資源および/またはソフトウェア資源をアンインストールすることにより、移動前スナップショットからMFP100Aがハイバネーションするための移動後スナップショットを生成する。このため、移動前装置であるMFP100は、移動前スナップショットから移動後装置であるMFP100Aを起動するための移動後スナップショットを容易に生成することができる。
また、移動前装置であるMFP100は、MFP100にインストールされたハードウェア資源であって移動後装置であるMFP100Aにインストールされたハードウェア資源以外のハードウェア資源をアンインストールする。このため、移動後装置であるMFP100Aにインストールされていないハードウェア資源がアンインストールされるので、移動後スナップショットを容易に生成することができる。
また、移動前装置であるMFP100は、移動後装置であるMFP100Aにインストールされたハードウェア資源であって移動前装置であるMFP100にインストールされたハードウェア資源以外のハードウェア資源をインストールする。このため、MFP100Aにインストールされたハードウェア資源のすべてを使用可能にすることができる。
また、移動前装置であるMFP100は、MFP100にインストールされたソフトウェア資源であって移動後装置であるMFP100Aにインストールされたソフトウェア資源以外のソフトウェア資源を、そのソフトウェア資源がMFP100Aにおいて使用権限が与えられていないことを条件に、アンインストールする。このため、移動後装置であるMFP100Aにおいて使用権限が与えられていないソフトウェア資源をMFP100Aで使用できないようにすることができる。
また、移動前装置であるMFP100は、移動後装置であるMFP100Aにインストールされたソフトウェア資源であって移動前装置であるMFP100にインストールされたソフトウェア資源以外のソフトウェア資源をインストールする。このため、MFP100Aにインストールされた全てのソフトウェア資源を使用可能にすることができる。
また、移動前装置であるMFP100は、MFP100に固有の第1固有情報を、移動後装置であるMFP100Aに固有の第2固有情報に変更する。例えば、第1固有情報および第2固有情報がネットワークアドレスの場合、MFP100Aがハイバネーション後に通信可能な状態にすることができる。
また、移動前装置であるMFP100は、MFP100と移動後装置であるMFP100AそれぞれのCPUが同一または互換性があると判断する場合に、移動前スナップショットを移動後スナップショットに変更する。このため、移動後スナップショットを生成する前に判断するので、不要な処理が実行されるのを防止することができる。
また、移動前装置であるMFP100は、ユーザーが移動後装置であるMFP100Aを操作する権限を有する場合に、移動前スナップショットを移動後スナップショットに変更する。このため、ユーザーがMFP100Aを操作する権限を有する場合のみ、MFP100Aを使用可能にすることができる。
また、移動前装置であるMFP100は、MFP100が備えるHDD113にアクセス可能なパスを設定した移動後スナップショットを生成する。このため、MFP100AからMFP100のHDD113に記憶されたデータにアクセス可能にすることができる。
なお、上述した実施の形態においては、操作支援システム1について説明したが、情報処理装置として機能するスマートフォン200が図7に示した操作支援処理を実行する操作支援方法、その操作支援方法をスマートフォン200が備えるCPU201が実行する操作支援プログラム、MFP100,100A,100Bそれぞれが図8に示した操作支援処理を実行する操作支援方法、その操作支援方法をMFP100,100A,100Bそれぞれが備えるCPU171が実行する操作支援プログラムとして発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。