(57)【要約】【課題】Ｗｅｂブラウザ上等で動作するアプリケーションなどはセキュリティの問題から動作する範囲が限られる。このためＯＳ上等に同一コードベースのアプリケーションを導入した場合に、両者の処理上および操作上の連携性の向上といった課題が生じる。【解決手段】以上の課題解決のため、本発明では導入仲介部によってマスタとなるアプリケーションに対する操作入力をスレーブ側に通知し、同期する処理が可能なアプリケーション切換実行装置を提供する。また、マスタとなるアプリケーションにエラーが発生した場合に、円滑にスレーブのアプリケーションに切り換えることが可能なアプリケーション切換実行装置を提供する。【選択図】図２
2010049582.tif 000002
【特許請求の範囲】
【請求項１】
第一ベースプログラム機能を有し、第一アプリケーションと第一導入仲介アプリケーションを実行させる第一ベースプログラム実行環境部と、
第二ベースプログラム機能を有し、第二アプリケーションと第二導入仲介アプリケーションを実行させる第二ベースプログラム実行環境部とからなり、
前記第一アプリケーションは、第一ベースプログラム機能を利用し動作することと、
前記第二アプリケーションは、第二ベースプログラム機能を利用し動作し第一アプリケーションと同じコードからなることと、
前記第一導入仲介アプリケーションは、第一アプリケーションに対するユーザ操作を取得し通知するユーザ操作通知手段と、第一アプリケーションの第一ベースプログラムによる管理制限違反にて生じるエラーを検出し、ユーザ操作入力を切換えるＯＦＦ切換手段と、を有し、第一アプリケーションとバインドされて実行されることと、
前記第二導入仲介アプリケーションは、第一導入仲介アプリケーションのユーザ操作通知手段からユーザ操作の通知を受けてユーザ操作を第二アプリケーションに伝達するための伝達手段と、第一導入仲介アプリケーションのＯＦＦ切換手段でのＯＦＦ切換えに基づいてユーザ操作入力先を第二アプリケーションに切換えるためのＯＮ切換手段と、を有し、第二アプリケーションとバインドされて実行されることを特徴とする、
アプリケーション切換実行装置。
【請求項２】
第一ベースプログラムはディスプレイ上にウインドウを表示するウインドウ表示プログラムを含むとともに、第一アプリケーションは第一ベースプログラムから第一アプリケーション用グラフィックをそのウインドウ内のみを移動可能範囲として表示するとの管理制限であるウインドウ内表示制限を受けている請求項１に記載のアプリケーション切換実行装置であって、
第一導入仲介アプリケーションは、
ウインドウ内表示制限違反にて生じるエラーを検出するためのウインドウ内表示制限違反検出手段と、
ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第二アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＮグラフィック命令通知手段と、を有する請求項１に記載のアプリケーション切換実行装置。
【請求項３】
第一導入仲介アプリケーションは、
ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第一アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＦＦグラフィック命令通知手段を有する請求項２に記載のアプリケーション切換実行装置。
【請求項４】
第一ベースプログラムは、第一アプリケーションプログラムを実行可能な状態とするためにダウンロードする第一ダウンロードプログラムを有し、
第一導入仲介アプリケーションは、第一ダウンロードプログラムによるダウンロードがある場合には、第二アプリケーションが実行可能な状態とするために第二アプリケーションをダウンロードするための第二アプリケーションダウンロード命令を通知する第二アプリケーションダウンロード命令通知手段を有する請求項１から３のいずれか一に記載のアプリケーション切換実行装置。
【請求項５】
第一ベース処理機能を有し、第一アプリ処理と第一導入仲介アプリ処理を実行する第一ベース実行環境部と、
第二ベース処理機能を有し、第二アプリ処理と第二導入仲介アプリ処理を実行する第二ベース実行環境部と、
前記第一アプリ処理は、第一ベース処理機能を利用し動作することと、
前記第二アプリ処理は、第二ベース処理機能を利用し動作する第一アプリ処理と同じ手順からなることと、
前記第一導入仲介アプリ処理は、
第一アプリ処理に対するユーザ操作を取得し通知するユーザ操作通知手段と、第一アプリ処理の第一ベース処理による管理制限違反にて生じるエラーを検出し、ユーザ操作入力を切換えるＯＦＦ切換手段と、を有し、第一アプリ処理とバインドされて実行されることと、
前記第二導入仲介アプリ処理は、第一導入仲介アプリ処理のユーザ操作通知手段からユーザ操作の通知を受けてユーザ操作を第二アプリ処理に伝達するための伝達手段と、第一導入仲介アプリ処理のＯＦＦ切換手段でのＯＦＦ切換えに基づいてユーザ操作入力先を第二アプリ部に切換えるためのＯＮ切換手段と、を有し、第二アプリ処理とバインドされて実行されることを特徴とする、
からなるアプリケーション切換実行装置。
【請求項６】
第一ベース処理はディスプレイ上にウインドウを表示するウインドウ表示処理を含むとともに、第一アプリ処理は第一ベース処理から第一アプリ処理用グラフィックをそのウインドウ内のみを移動可能範囲として表示するとの管理制限であるウインドウ内表示制限を受けている請求項５に記載のアプリケーション切換実行装置であって、
第一導入仲介アプリ処理は、
ウインドウ内表示制限違反にて生じるエラーを検出するためのウインドウ内表示制限違反検出手段と、
ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第二アプリ部用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＮグラフィック命令通知手段と、を有する請求項５に記載のアプリケーション切換実行装置。
【請求項７】
第一導入仲介アプリ処理は、
ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第一アプリ処理用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＦＦグラフィック命令通知手段を有する請求項６に記載のアプリケーション切換実行装置。
【請求項８】
第一ベースプログラム機能を有し、第一アプリケーションと第一導入仲介アプリケーションを実行させる第一ベースプログラム実行ステップと、
第二ベースプログラム機能を有し、第二アプリケーションと第二導入仲介アプリケーションを実行させる第二ベースプログラム実行ステップと、
第一ベースプログラム機能を利用し動作する第一アプリケーションを実行する第一アプリケーション実行ステップと、
第二ベースプログラム機能を利用し動作する第一アプリケーションと同じコードからなる第二アプリケーションを実行する第二アプリケーション実行ステップと、
第一アプリケーションに対するユーザ操作を取得し通知するユーザ操作通知サブステップと、第一アプリケーションの第一ベースプログラムによる管理制限違反にて生じるエラーを検出し、ユーザ操作入力を切換えるＯＦＦ切換サブステップと、を有し、第一アプリケーションとバインドされて実行される第一導入仲介ステップと、
第一導入仲介ステップのユーザ操作通知サブステップからユーザ操作の通知を受けてユーザ操作を第二アプリケーション実行ステップに伝達するための伝達サブステップと、第一導入仲介ステップのＯＦＦ切換サブステップでのＯＦＦ切換えに基づいてユーザ操作入力先を第二アプリケーション実行ステップに切換えるためのＯＮ切換サブステップと、を有し、第二アプリケーションとバインドされて実行される第二導入仲介ステップと、
からなるアプリケーション切換実行方法。
【請求項９】
第一ベースプログラムはディスプレイ上にウインドウを表示するウインドウ表示プログラムを含むとともに、第一アプリケーションは第一ベースプログラムから第一アプリケーション用グラフィックをそのウインドウ内のみを移動可能範囲として表示するとの管理制限であるウインドウ内表示制限を受けている請求項８に記載の切換方法であって、
第一導入仲介ステップは、
ウインドウ内表示制限違反にて生じるエラーを検出するためのウインドウ内表示制限違反検出サブステップと、
ウインドウ内表示制限違反検出サブステップでエラーが検出された場合に、第二アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＮグラフィック命令通知サブステップと、を有する請求項８に記載のアプリケーション切換実行方法。
【請求項１０】
第一導入仲介ステップは、
ウインドウ内表示制限違反検出サブステップでエラーが検出された場合に、第一アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＦＦグラフィック命令通知サブステップを有する請求項９に記載のアプリケーション切換実行方法。
【請求項１１】
第一ベースプログラムは、第一アプリケーションプログラムを実行可能な状態とするためにダウンロードする第一ダウンロードプログラムを有し、
第一導入仲介ステップは、第一ダウンロードプログラムによるダウンロードがある場合には、第二アプリケーションが実行可能な状態とするために第二アプリケーションをダウンロードするための第二アプリケーションダウンロード命令を通知する第二アプリケーションダウンロード命令通知サブステップを有する請求項８から１０のいずれか一に記載のアプリケーション切換実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションをシームレスに切り換えるソフトウエア技術に関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションは、Ｗｅｂブラウザをクライアントとして利用可能であるため、実行環境を選ばないために汎用性に優れる。その上、端末の処理性能の向上により、Ｗｅｂブラウザ側のスクリプト処理などのアプリケーションの実行が容易となった。このため、ユーザインタフェースの意匠や使い勝手の面において従来よりも優れたアプリケーションを作成することが可能となった。従って多くのＷｅｂアプリケーションが今日使用されている。
【０００３】
しかしながら、Ｗｅｂブラウザ上でアプリケーションが実行されるため、Ｗｅｂアプリケーションの実行はＷｅｂブラウザの仕様に依存するといった短所が存在する。また、実行可能なアプリケーションの範囲は、Ｗｅｂブラウザのセキュリティーポリシー等に基づき、設定等により制限が加えられている。例えば、Ｗｅｂアプリケーションが端末側のローカルファイルにアクセスするといった動作は、署名されたアプリケーションであるなどのセキュリティ上の安全性が保証できない限り、厳しく制限されている。このように、Ｗｅｂブラウザが規定した、実行可能な範囲を超えた動作をしようとするＷｅｂアプリケーション対してはＷｅｂブラウザ等においてエラーが発生する。従って、アプリケーションによっては、Ｗｅｂブラウザ等が発するエラーによりコードを実行できない場合があるため、利用上の大きな制約となっている。
【０００４】
上記の問題の対策として、ブラウザの設定や、ブラウザそのものの実行可能なコードの許可範囲を拡張したり、修正したりするプログラムを用意するといった対策をとることが考えられる。しかし、無理な例外の設定はセキュリティーホールを招く可能性が高くなる。また、対策をとったブラウザのみにおいてしか上記で述べたようなＷｅｂアプリケーションを実行することができないため、汎用性の面において問題がある。
【０００５】
そこで特許文献１には、以下のような技術が開示されている。該技術では、サーバから取得したアプリケーションのコードをブラウザの制限から切り離して、端末装置に導入して実行することが可能である。具体的には、Ｗｅｂサイトから取得されたＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）コード等に含まれるアプリケーションのパッケージ情報に基づいて、パッケージ化されているアプリケーションをダウンロードしてインストールを行う。インストールされたアプリケーションは、Ｗｅｂブラウザ上ではなくＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等に付随したランタイムライブラリにより実行される。ブラウザ上でアプリケーションは動作しないため、アプリケーションは、Ｗｅｂブラウザによる拘束から放たれ自由に動作を行うことが可能である。
【０００６】
【特許文献１】特開２００３−１６２４１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記従来の技術には以下のような課題がある。第一に、特許文献１で開示されている技術では、ダウンロードされたソフトは、スタンドアロンのソフトウエアと同様にインストールされ実行される。つまり、Ｗｅｂブラウザとは関係ない別のアプリケーションとして実行される。このため、Ｗｅｂブラウザ上で既にＷｅｂアプリケーションを実行している際、Ｗｅｂブラウザの制限を超えた範囲の処理を行おうとして、新たに同一コードベースのアプリケーションを上記従来技術によりインストールした場合には問題が生じる。すなわち、Ｗｅｂアプリケーションが行った操作入力等の処理内容がそのままでは承継されないため、連携性に欠けるといった問題が生じる。
【０００８】
このように、上記従来の技術では第一に、ブラウザの制約から自由なＷｅｂアプリケーションの処理を実現する装置および方法において、新たに導入されるアプリケーションに対する処理面における連携性の確保といった課題が生じる。
【０００９】
また第二に、上記に記した様な場合に、新たに上記従来の技術によりアプリケーションを実行させるのでは、Ｗｅｂアプリケーション上のユーザインタフェースに対してなされた、表示位置や表示の大きさといった属性は承継されない。その結果、ユーザは操作上の違和感を覚える。たとえばＷｅｂブラウザ上のＷｅｂアプリケーションのユーザインタフェースオブジェクトをＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上でドラッグして、ブラウザ外に取り出すといった、ＧＵＩでは通常考えられるであろう直感的な操作ができない。
【００１０】
このように、上記従来の技術では第二に、ブラウザの制約から自由なＷｅｂアプリケーションの処理を実現する装置および方法において、アプリケーションの操作面における連携性の確保といった課題が生じる。
【課題を解決するための手段】
【００１１】
以上の課題を解決するために、本発明は以下のようなアプリケーション切換実行装置を提供する。第一に、本装置はＷｅｂブラウザ等の上で動作するＷｅｂアプリケーション等と、直接ＯＳ上で動作する同一コードベースからなるアプリケーション等との間で通信が可能な仲介プログラムを有する。これにより、Ｗｅｂブラウザ等で発生したエラーを仲介プログラムにより検出し、Ｗｅｂアプリケーション等に対し少なくともユーザ操作入力先をＯＳ上で動作するアプリケーションに切換えることの可能なアプリケーション切換実行装置である。さらに、Ｗｅｂアプリケーション側に対してなされた、少なくとも操作入力を含む処理内容を他方のアプリケーションに通知することの可能なアプリケーション切換実行装置である。
【００１２】
具体的には、第一ベースプログラム機能を有し、第一アプリケーションと第一導入仲介アプリケーションを実行させる第一ベースプログラム実行環境部と、第二ベースプログラム機能を有し、第二アプリケーションと第二導入仲介アプリケーションを実行させる第二ベースプログラム実行環境部とからなり、前記第一アプリケーションは、第一ベースプログラム機能を利用し動作することと、前記第二アプリケーションは、第二ベースプログラム機能を利用し動作する第一アプリケーションと同じコードからなることと、前記第一導入仲介アプリケーションは、第一アプリケーションに対するユーザ操作を取得し通知するユーザ操作通知手段と、第一アプリケーションの第一ベースプログラムによる管理制限違反にて生じるエラーを検出し、ユーザ操作入力を切換えるＯＦＦ切換手段と、を有し、第一アプリケーションとバインドされて実行されることと、前記第二導入仲介アプリケーションは、第一導入仲介アプリケーションのユーザ操作通知手段からユーザ操作の通知を受けてユーザ操作を第二アプリケーション実行部に伝達するための伝達手段と、第一導入仲介部のＯＦＦ切換手段でのＯＦＦ切換えに基づいてユーザ操作入力先を第二アプリケーション実行部に切換えるためのＯＮ切換手段と、を有し、第二アプリケーションとバインドされて実行されることを特徴とする、アプリケーション切換実行装置である。
【００１３】
第二は、上記第一のアプリケーション切換実行装置を基本として、Ｗｅｂブラウザ等の上で実行されているＷｅｂアプリケーション等のグラフィック表示をウインドウ内に限定するという制限に対する違反によるエラーを検出した場合に、他方のアプリケーションに対し所定処理を実行させることが可能なアプリケーション切換実行装置である。例えば、表示レイヤー順の変更や、非表示の状態から表示の状態へ切り換える等といった処理を実行させることの可能なアプリケーション切換実行装置である。
【００１４】
具体的には、第一ベースプログラムはディスプレイ上にウインドウを表示するウインドウ表示プログラムを含むとともに、第一アプリケーションは第一ベースプログラムから第一アプリケーション用グラフィックをそのウインドウ内のみを移動可能範囲として表示するとの管理制限であるウインドウ内表示制限を受けている請求項１に記載のアプリケーション切換実行装置であって、第一導入仲介アプリケーションは、ウインドウ内表示制限違反にて生じるエラーを検出するためのウインドウ内表示制限違反検出手段と、ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第二アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＮグラフィック命令通知手段と、を有する請求項１に記載のアプリケーション切換実行装置である。
【００１５】
第三は、上記第二のアプリケーション切換実行装置を基本として、第二のアプリケーション切換実行装置で述べた表示制限違反の場合に第一アプリケーションのグラフィック表示に対して所定処理を実行させることが可能なアプリケーション切換実行装置である。例えば、表示レイヤー順の変更、Ｗｅｂアプリケーションオブジェクト等の消去等といった処理を実行させることの可能なアプリケーション切換実行装置である。
【００１６】
具体的には、第一導入仲介アプリケーションは、ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第一アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知するＯＦＦグラフィック命令通知手段を有する請求項２に記載のアプリケーション切換実行装置である。
【００１７】
第四は、上記第一ないし第三のアプリケーション切換実行装置を基本として、Ｗｅｂブラウザ等の上で実行するＷｅｂアプリケーション等をダウンロードした場合に、仲介プログラムにより同一のコードベースからなるアプリケーションを実行可能なようにダウンロード命令を通知することの可能なアプリケーション切換実行装置である。
【００１８】
具体的には、第一ベースプログラムは、第一アプリケーションプログラムを実行可能な状態とするためにダウンロードする第一ダウンロードプログラムを有し、第一導入仲介アプリケーションは、第一ダウンロードプログラムによるダウンロードがある場合には、第二アプリケーションが実行可能な状態とするために第二アプリケーションをダウンロードするための第二アプリケーションダウンロード命令を通知する第二アプリケーションダウンロード命令通知手段を有する請求項１から３のいずれか一に記載のアプリケーション切換実行装置である。
【発明の効果】
【００１９】
以上のような構成をとる第一の本発明によって、例えばＷｅｂアプリケーションをＷｅｂブラウザによる制限を超えた範囲の処理を、仲介プログラムによって、ＯＳ上で実行する同一コードベースのアプリケーションに切り換えることによって実行可能である。その上、仲介プログラムによって、アプリケーションに対する操作入力の処理内容等を複数のアプリケーション間で同期を行うといった処理が可能である。このため、Ｗｅｂブラウザ等の上で主体的となって実行されているＷｅｂアプリケーション等にエラーが生じた場合でも、ＯＳ上で従属的に実行されている同一コードベースのアプリケーションへ円滑に処理の主体を移行する、連携性の高い切換処理が可能である。
【００２０】
また、第二の本発明によって、例えば、ＧＵＩにおいてＷｅｂアプリケーションオブジェクトをＷｅｂブラウザからドラッグして取り出すような操作を行った場合に、Ｗｅｂアプリケーション等に発生するエラーを仲介プログラムが検出する。これを契機として、ＯＳ上で実行されているアプリケーションのレイヤーを変更し、ウインドウをアクティブにする等の所定の処理を実行することができる。これにより、ユーザはエラーが発生したと認知することなく、ＷｅｂアプリケーションからＯＳ上で実行されているアプリケーションへと操作対象の移行が可能である。このような、操作上の連携性の高い切り換え処理が可能である。
【００２１】
また、第三の本発明によって、上記第二の本発明で説明したようなＧＵＩ上のドラッグ操作等をおこなった場合に、同様にＷｅｂアプリケーション等に発生するエラーを仲介プログラムが検出する。これを契機として、Ｗｅｂアプリケーション等のオブジェクトを消去する等の所定の処理をさせることが可能である。これにより、ユーザに対してＷｅｂアプリケーション等からＯＳ上で実行されているアプリケーションへ処理の主体の移行をよりわかりやすく視覚的にフィードバックする処理が可能である。
【００２２】
また、第四の本発明によって、同一コードベースのアプリケーションを複数ダウンロードしておくことによって、Ｗｅｂアプリケーション等のバックグラウンドで、ＯＳ上において同一コードベースのアプリケーションを実行させておくことが可能である。これにより、迅速な切り換え処理が可能となり、アプリケーションにおける処理の信頼性が向上する。
【発明を実施するための最良の形態】
【００２３】
以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。なお、実施例１は、主に請求項１、５、８について説明する。また、実施例２は、主に請求項２、６、９について説明する。また、実施例３は、主に請求項３、７、１０について説明する。実施例４は、主に請求項４、１１について説明する。
【００２４】
≪実施例１≫
<概要>
図１は、本実施例のアプリケーション切換実行装置による異なるアプリ上での共通アプリの切換処理の一例を説明するための概念図である。この図にあるように、アプリケーション切換実行装置にはＷｅｂブラウザ等（０１０１）とこれに導入されているプラグイン（０１０２）と、ある種のプログラムコードを実行するためのインタプリタ（０１０３）と、導入仲介プログラムＤ１（０１０４）と導入仲介プログラムＤ２（０１０５）が導入されている。これらはオペレーティングシステム（０１０６）上で動作している。
【００２５】
表示画面（０１０７）上で、Ｗｅｂアプリケーションオブジェクトを含むＷｅｂページ（０１０８）を表示させたとする。すると、当該オブジェクトのアプリケーションプログラムであるアプリＡがサーバ（０１０９）よりダウンロード（０１１０）されプラグイン（０１０２）上で起動する。すると導入仲介プログラムＤ１（０１０４）はアプリＡの活動開始を通知する（０１１１）。次いで導入仲介プログラムＤ２（０１０５）はアプリＢのダウンロードを行う（０１１２）。アプリＢはアプリＡと同一コードのプログラムである。このためそれぞれ個別に同一の応用機能を持つ。アプリＢはオペレーティングシステム（０１０６）上で動作するインタプリタ（０１０３）上で動作する。
【００２６】
アプリＡの起動後はアプリＡがマスタ、アプリＢがスレーブとして動作する。ユーザ操作はアプリＡに対して行われる。このとき、アプリＢのインタフェースは表示されないか、ブラウザウインドウのレイヤーの下側に隠れた状態等になっている。導入仲介プログラムＤ１（０１０４）はアプリＡに対して行われた操作入力内容をアプリＢ側に通知する（０１１３）。導入仲介プログラムＤ２は通知を受け取り、アプリＢに伝える（０１１４）。その結果、内部データなどの内部状態が同期される。
【００２７】
ここで、ユーザ操作入力により、表示画面上（０１０７）でアプリＡのアプリケーションオブジェクト（０１１５）をドラッグ操作して、ブラウザウインドウから取り出そうとする操作入力がされたとする。通常のＷｅｂブラウザでは、Ｗｅｂアプリケーションオブジェクトをドラッグしてブラウザウインドウの外に取り出すことはできないので、ブラウザの境界においてエラーが発生する。すると、導入仲介プログラムＤ１（０１０４）はエラーを検出して（０１１６）、マスタとスレーブの切換通知（０１１７）を行う。これに応答して、導入仲介プログラムＤ２（０１０５）はアプリＢをマスタに切り換える（０１１８）。すると、アプリＢのインタフェース（０１１９）がアクティブとなり、ユーザはアプリＢに対して操作入力を行うことができる。
【００２８】
このように、本実施例のアプリケーション切換実行装置では、導入仲介プログラムによって操作入力内容を通知させることにより同一コードベースの異なるアプリケーションの内部状態を同期させている。このため、ＷｅｂアプリケーションにおいてＷｅｂブラウザ等の制約に起因するエラーが生じても、円滑に他方のアプリケーションに処理を承継することができる。
【００２９】
<機能的構成>
図２は、本実施例のアプリケーション切換実行装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「アプリケーション切換実行装置」（０２００）は、「第一ベースプログラム実行環境部」（０２０１）と、「第二ベースプログラム実行環境部」（０２０２）と、「第一アプリケーション」（０２０３）と、「第二アプリケーション」（０２０４）と、「第一導入仲介アプリケーション」（０２０５）と、「第二導入仲介アプリケーション」（０２０６）とを有する。「第一導入仲介アプリケーション」（０２０５）は、「ユーザ操作通知手段」（０２０７）と、「OFF切換手段」（０２０８）とを有する。「第二導入仲介アプリケーション」（０２０６）は「伝達手段」（０２０９）と、「ON切換手段」（０２１０）とを有する。
【００３０】
なお、以下に記載するアプリケーション切換実行装置の機能ブロックは、ハードウエア、ソフトウエア、又はハードウエア及びソフトウエアの両方として実現され得る。具体的には、コンピュータを利用するものであれば、CPUや主メモリ、バス、あるいは二次記録媒体（ハードディスクや不揮発性メモリ、CD−ROMやDVD−ROMなどの記憶メディアとそれらメディアの読取ドライブなど）、印刷機器や表示装置、その他の外部周辺装置などのハードウエア構成部やその外部周辺機器用のI/Oポート、それらハードウエアを制御するためのドライバプログラムやその他アプリケーションプログラム、情報入力に利用されるユーザインタフェースなどが挙げられる。
【００３１】
またこれらハードウエアやソフトウエアは、主メモリ上に展開したプログラムをCPUで演算処理したり、メモリやハードディスク上に保持されているデータや、インタフェースを介して入力されたデータなどを加工、蓄積、出力処理したり、あるいは各ハードウエア構成部の制御を行ったりするために利用される。また、この発明は装置として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウエアとして構成することができる。さらに、そのようなソフトウエアをコンピュータに実行させるために用いるソフトウエア製品、及び同製品を記録媒体に固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる（本明細書の全体を通じて同様である）。
【００３２】
「第一ベースプログラム実行環境部」（０２０１）は、第一ベースプログラム機能を有し、第一アプリケーションと第一導入仲介アプリケーションを実行させる機能を有する。「ベースプログラム」とは、後述する第一・第二アプリケーションの実行環境を提供する機能を有する。すなわち、アプリケーションプログラム等と一体となって動作するプログラム群の事を指す。例えばWebアプリケーションのスクリプトコードを実行する環境を提供するプラグインソフトウエアや、ある種のプログラムコードを実行可能とするインタプリタや、ランタイムライブラリ、フレームワーク等などが挙げられる。ここで、「第一ベースプログラム」とは特に、後述する第一アプリケーションを実行する、Ｗｅｂブラウザ上等で動作するプラグイン等のアプリケーションプログラム等を指す。
【００３３】
当部（0201）は、操作入力などの情報をＷｅｂブラウザ等より受け取る。受け取った情報は、後述の「第一アプリケーション」（０２０３）及び「第一導入仲介アプリケーション」（０２０５）に対して出力される。また、第一アプリケーションプログラムの処理結果等を「第一アプリケーション」（０２０３）より受け取り、Ｗｅｂブラウザ等に出力する。
【００３４】
「第二ベースプログラム実行環境部」（０２０２）は、第二ベースプログラム機能を有し、第二アプリケーションと第二導入仲介アプリケーションを実行させる機能を有する。「ベースプログラム」とは前述した通りである。ここで「第二ベースプログラム」とは特に、後述する第二アプリケーションを実行する、ＯＳ上で動作するランタイムライブラリや、インタプリタ、フレームワーク等を指す。
【００３５】
なお、当部（０２０２）は、操作入力などの情報をＯＳより受け取る。受け取った情報は、後述の「第二アプリケーション」（０２０４）や、場合により「第二導入仲介アプリケーション」（０２０６）に対して出力される。また、第二アプリケーションプログラムの処理結果等を「第二アプリケーション」（０２０４）より受け取り、ＯＳ等に出力する。
【００３６】
「第一アプリケーション」（０２０３）は、第一ベースプログラム管理下において第一ベースプログラム機能を利用し動作する機能を有する。「アプリケーション」とは、ある特定の目的を達成するために記述されたプログラムにより、あるいは配線された回路により実現された手続きのことである。「実行」とは前記手続きに沿って、入力信号に対して処理を行い、処理結果を出力信号等として出力することである。なお、上記手続きがプログラムコードである場合には、プログラムのコードはスクリプトコードであってもよいし、バイナリコードでもよい。ここで「第一アプリケーション」とは特に、「第一ベースプログラム実行環境部」（０２０１）上で実行されるＷｅｂアプリケーション等のことを指す。
【００３７】
「第一アプリケーション」（０２０３）は「第一ベースプログラム実行環境部」（０２０１）や、オペレーティングシステムや、後述する「第一導入仲介アプリケーション」（０２０５）などより、少なくとも操作入力情報を取得する。取得の方法は、例えばＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を利用するものでもよいし、「第一ベースプログラム実行環境部」（０２０３）および、「第一導入仲介アプリケーション」（０２０５）よりの出力をフックするものでもよいし、プロセス間通信等を用いてもよい。
【００３８】
「第二アプリケーション」（０２０４）は、第二ベースプログラム管理下において第二ベースプログラム機能を利用し動作し、第一アプリケーションと同じコードからなる第二アプリケーションを実行する機能を有する。ここで「第二アプリケーション」とは特に「第二ベースプログラム実行環境部」（０２０２）にて実行されるアプリケーション等のことを指す。「第二アプリケーション」（０２０４）は、後述する「第二導入仲介アプリケーション」（０２０６）より少なくとも操作入力情報を取得する。
【００３９】
「第一導入仲介アプリケーション」（０２０５）は、第一アプリケーションとバインドされて実行され、下記の機能を有する。第一に、第一アプリケーションに対するユーザ操作を取得し通知する機能を有する。具体的には後述する、「ユーザ操作通知手段」（０２０７）において記載する。第二に、第一アプリケーションの第一ベースプログラムによる管理制限違反にて生じるエラーを検出し、ユーザ操作入力を切換える機能を有する。具体的には、後述の「OFF切換手段」（０２０８）において記載する。
【００４０】
なお、「第一アプリケーションとバインド」とは、少なくとも第一アプリケーションが実行されている場合には共に「第一導入仲介アプリケーション」（０２０５）が実行されており、「第一アプリケーション」（０２０３）とデータ等のやり取りが可能であることを意味する。
【００４１】
なお当部（０２０５）は、第一アプリケーションを有するプログラム等と一体となって導入されていてもよいし、第一ベースプログラム実行環境部を有するプログラム等と一体となって導入されてもよい。また、別個独立のアプリケーションプログラムとして導入される形態でもよい。なお、後述の「第二導入仲介アプリケーション」（０２０６）においても同様である。
【００４２】
「第二導入仲介アプリケーション」（０２０６）は、第二アプリケーションとバインドされて実行され、下記の機能を有する。第一に、「第一導入仲介アプリケーション」（０２０５）の「ユーザ操作通知手段」（０２０７）からユーザ操作の通知を受けてユーザ操作を第二アプリケーションに伝達する機能を有する。具体的には、具体的には後述する、「伝達手段」（０２０９）において記載する。第二に、「第一導入仲介アプリケーション」（０２０５）における「ＯＦＦ切換手段」（０２０８）でのＯＦＦ切換えに基づいてユーザ操作入力先を第二アプリケーションに切換える機能を有する。具体的には後述する「ON切換手段」（０２１０）において記載する。
【００４３】
なお、「第二アプリケーションとバインド」とは、「第一導入仲介アプリケーション」（０２０５）と同様に、少なくとも第二アプリケーションが実行されている場合には共に「第二導入仲介アプリケーション」（０２０５）が実行されており、「第二アプリケーション」（０２０３）とデータ等のやり取りが可能であることを意味する。
【００４４】
「第一導入仲介アプリケーション」（０２０５）と、「第二導入仲介アプリケーション」（０２０６）とは、上述のように機能的に別の構成として分けられるが、実装上は同一のプログラムで構わない。さらに、導入仲介アプリケーションを三以上有する構成をとってもよい。
【００４５】
「ユーザ操作通知手段」（０２０７）は、「第一導入仲介アプリケーション」（０２０５）において、第一アプリケーションに対するユーザ操作を取得し通知する機能を有する。「ユーザ操作」とは、アプリケーションの内部状態を変化させる為に行われた、キーボード、マウス等の操作入力インタフェースによる、文字入力の内容や、ショートカットキーの押下、マウスクリックによる選択、コマンドの入力内容等を指す。「取得」とは、ＯＳ内のデバイスドライバからのキープッシュイベントや、マウスクリックイベントなどの割り込みを検知するものでもよいし、「第一ベースプログラム実行環境部」（０２０１）とのプロセス間通信や、ＡＰＩを利用するもの等でもよい。つまり、ユーザ操作情報が取得できればよく、ＯＳから直接得る形態でもよいし、第一ベースプログラムより得る形態でもよく、あるいは第一アプリケーションから得る形態でもよい。「通知」とは、通知先の「伝達手段」（０２０９）間とで定められた一定の規約等に基づいたユーザ操作情報を出力することを指す。
【００４６】
「ＯＦＦ切換手段」（０２０８）は、「第一導入仲介アプリケーション」（０２０５）において、第一アプリケーションの第一ベースプログラムによる管理制限違反にて生じるエラーを検出し、ユーザ操作入力を切換える機能を有する。具体的には、第一ベースプログラムにて生じるエラーシグナルを直接又は間接的に受け取り、「第二導入仲介アプリケーション」（０２０６）の「ＯＮ切換手段」（０２１０）に対して、エラーを検出した旨の信号を出力する機能を指す。「ＯＦＦ切換」とは、エラーの検出を契機として、処理の主体が第一アプリケーションから、第二アプリケーションへ移行することを指す。例えば、エラーの検出前は「第一アプリケーション」（０２０３）がマスタとして動作し、「第二アプリケーション」（０２０４）はスレーブとして実行されている。切換後は「第二アプリケーション」がマスタとして動作すると行った具合である。なお切換後においては、「第一アプリケーション」（０２０３）はそのままスレーブとして実行を続けてもよいし、実行を終了させてもよい。
【００４７】
「伝達手段」（０２０８）は、「第二導入仲介アプリケーション」（０２０６）において、「第一導入仲介アプリケーション」（０２０５）の「ユーザ操作通知手段」（０２０７）からユーザ操作の通知を受けてユーザ操作を「第二アプリケーション」（０２０４）に伝達するための機能を有する。具体的には、「ユーザ操作通知手段」（０２０７）からの出力を受け取り、「第二アプリケーション」（０２０４）に対して直接的あるいは間接的にユーザ操作情報の伝達を行う事を指す。
【００４８】
「ＯＮ切換手段」（０２１０）は、「第二導入仲介アプリケーション」（０２０６）において、「第一導入仲介アプリケーション」（０２０５）の「ＯＦＦ切換手段」（０２０８）でのＯＦＦ切換えに基づいてユーザ操作入力先を第二アプリケーションに切換えるための機能を有する。具体的には、「ＯＦＦ切換手段」（０２０８）より切換える旨の信号を受け取ると、「第二アプリケーション」（０２０４）に対する操作入力情報の入力元をそれ以外である、「第二ベースプログラム実行環境部」（０２０２）及びＯＳ等に変更する機能を有する。これにより、操作情報は、「第一導入仲介アプリケーション」（０２０５）や、「第一ベースプログラム実行環境部」（０２０１）等を介さずに「第二アプリケーション」（０２０２）に対して伝達される。このように、エラーが発生した後は「第二アプリケーション」（０２０４）と「第二ベースプログラム実行環境部」（０２０２）とに処理の主体が移行し、処理が続行される。
【００４９】
<処理の流れ>
図３は、本実施例のアプリケーション切換実行装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。この図にあるように、まず、第一アプリケーションプログラム側において、第一ベースプログラムが起動する（ステップＳ０３０１）。これに伴い、第一アプリケーションプログラムが起動する（ステップＳ０３０２）。一方、第二ベースプログラム側において、第二ベースプログラムが起動する（ステップＳ０３０６）。これと同時又はこれに伴い、第二アプリケーションプログラムが起動する（ステップＳ０３０７）。上記「起動」の形態は、第一・第二アプリケーションプログラムは、インターネットなどのネットワークを通じてダウンロードされ、装置の記憶媒体に記録された後に起動する形態も含む。なお、上記第一・第二アプリケーションプログラムが起動するタイミングについては、同時でなくてよい。
【００５０】
両者が起動すると、第一アプリケーションプログラム側ではユーザ操作を取得し通知を行う（ステップＳ０３０３）。このとき第二アプリケーションプログラム側ではユーザ操作の通知を受けて第二アプリケーションプログラムに伝達している（ステップＳ０３０８）。次に、管理制限違反エラーが検出されたか否かを判断する（ステップＳ０３０４）。検出しない場合には再びユーザ操作を取得し通知する処理（ステップＳ０３０３）に戻る。エラーを検出した場合にはユーザ操作をＯＦＦ切換する（ステップＳ０３０５）。第二アプリケーションプログラムの側では、ＯＦＦ切換が起こったか否かを判断し（ステップＳ０３０９）、判断結果が真の場合にはユーザ操作入力をＯＮ切換する（ステップＳ０３１０）。判断結果が偽の場合には再びユーザ操作の通知を受け第二アプリケーションプログラムに伝達する処理（ステップＳ０３０８）に戻る。
【００５１】
図４は、本実施例のアプリケーション切換実行装置における処理の流れの一例を表すシーケンス図である。この図にあるように、第一アプリ処理（０４０２）がマスタの間は、操作入力（０４０５）が第一ベース処理（０４０１）より第一アプリ処理（０４０２）に対して送られる。すると、導入仲介処理によって、操作入力通知（０４０６）が第二アプリ処理（０４０３）に対して通知される。処理結果（０４０７）は第一アプリ処理（０４０２）より第一ベース処理（０４０１）に対して返される。ここで、第一ベース処理（０４０１）等からエラー（０４０８）が通知されると、導入仲介処理によりＯＦＦ切換通知（０４０９）が第二アプリ処理（０４０３）に対して通知される。すると第二アプリ処理（０４０３）がスレーブからマスタに切換わり、今度は第二ベース処理（０４０４）より操作入力（０４１０）を受け付けるようになる。また処理結果（０４１１）も第二ベース処理（０４０４）に対して返されるようになる。
【００５２】
<ハードウエア的構成>
図５は、上記機能的な各構成要件をハードウエアとして実現した際の、アプリケーション切換実行装置における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のアプリケーション切換実行装置は、各種演算処理を行う「ＣＰＵ（中央演算装置）」（０５０１）と、「揮発性メモリ」（０５０２）と、「不揮発性メモリ」（０５０３）とを有している。また、マウスやキーボードなどの、ユーザからの操作入力を受け付ける「操作入力Ｉ／Ｆ」（０５０４）と、処理結果を表示出力するＬＣＤパネルなどの「表示装置」（０５０５）と、サーバと通信するための「ネットワークＩ／Ｆ」（０５０６）とを有する。そしてそれらが「システムバス」（０５０７）などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００５３】
また、「揮発性メモリ」（０５０１）は、各種処理を行うプログラムを「ＣＰＵ」（０５０１）に実行させるために「不揮発性メモリ」（０５０２）から読み出すと同時にそのプログラムの作業領域でもあるワーク領域を提供する。
【００５４】
ここで、第一ベースプログラムと第二ベースプログラムがそれぞれ、「揮発性メモリ」（０５０１）のアドレスＢ１、Ｂ２を先頭とする領域に「不揮発性メモリ」（０５０２）等より呼び出され、「ＣＰＵ」（０５０１）において別のプロセスとして実行されている。「操作入力Ｉ／Ｆ」（０５０４）より所定の入力があると、「ネットワークＩ／Ｆ」（０５０４）を介して、第一アプリケーションプログラムが「揮発性メモリ」（０５０１）のアドレスＰ１を先頭とする領域に読み込まれる。この領域は第一ベースプログラムの管理下にあり、原則的には他のプログラムがアクセス不可能であるし、第一アプリケーションプログラムも外部のデータにアクセスできない状態になっている。但し、第一導入仲介プログラムは上記領域の参照および書き換えを許可されている。なお、このときには既に第一導入仲介プログラムと第二導入仲介プログラムが、「不揮発性メモリ」（０５０２）や「ネットワークＩ／Ｆ」（０５０４）より「揮発性メモリ」（０５０１）にロードされ実行されている。
【００５５】
第一アプリケーションプログラムがダウンロードされると、第二導入仲介プログラム等によって第二アプリケーションプログラムのダウンロードが「ネットワークＩ／Ｆ」（０５０４）を介して行われ、「揮発性メモリ」（０５０１）のアドレスＰ２を先頭とする領域にロードされる。この領域は第二ベースプログラムの管理下にあるが、他のプログラムは自由にこのメモリ領域にアクセス可能である。
【００５６】
「表示装置」（０５０５）に表示された第一アプリケーションプログラムのユーザインタフェースに「操作入力Ｉ／Ｆ」（０５０４）により入力がなされると、領域Ｐ１、すなわち第一アプリケーションプログラムに対する割り込み通知情報は第一導入仲介プログラムによって検出され、通知情報がアドレスＤ１に格納される。この割り込み通知情報のアドレスＤ１のポインタは、第二導入仲介プログラムが確保したメモリ領域内のアドレスＤ２に書き込まれる。第二導入仲介プログラムはＤ２を参照して、Ｄ１に格納された割り込み通知の情報を、第二アプリケーションプログラムＰ２の割り込み通知領域に書き込む。第二アプリケーションプログラムはこの情報を使用して「ＣＰＵ」（０５０１）において演算処理を行う。これにより、第一アプリケーションプログラムと第二アプリケーションプログラムの内部状態が同期される。
【００５７】
ここで、Ｗｅｂブラウザプログラム等からエラーが通知されると、第一導入仲介プログラムはこれを検出し、第二導入仲介プログラムに対して通知する。すると、第二導入仲介プログラムは割り込み通知情報の取得先、つまりアドレスＤ２の参照先を、第二ベースプログラムが使用する、Ｂ２を先頭とする領域内の割り込み通知領域等に切り換える。これにより、第二アプリケーションプログラムは、第二ベースプログラムなどから直接、あるいは第二導入仲介プログラムを介して間接的に、操作入力の割り込み通知を受け取ることとなる。
【００５８】
<効果の簡単な説明>
以上のように本実施例のアプリケーション切換実行装置によって、操作入力内容を異なるベースプログラム上で動作する同一コードのアプリケーションの内部状態を同期することができる。また、一のベースプログラム上で主体的となって実行されているアプリケーション等にエラーが生じた場合でも、別のベースプログラム上で従属的に実行されている同一コードベースのアプリケーションへ円滑に処理の主体を移行する、連携性の高い切換処理を実行することができる。
【００５９】
≪実施例２≫
<概要>
図６は、本実施例のアプリケーション切換実行装置における異なるアプリ上での共通アプリのアプリケーション切換実行装置の適用例について説明するための概念図である。この図にあるように、ＷｅｂブラウザにはあるグループウエアのＷｅｂアプリケーション（０６０２）が表示されている。利用者はＩＭ（Ｉｎｓｔａｎｔ  Ｍｅｓｓｅｎｇｅｒ）機能によりＢさんからの伝言（０６０３）を受け取った。この伝言を、グループウエアを終了させた後も画面上に残しておこうと考えている。そこで、利用者はＧＵＩ上の伝言の部分をドラッグ（０６０４）して、端末装置のデスクトップ上に移動している。本実施例のアプリケーション切換実行装置では、上述したようなＷｅｂブラウザ等のウインドウ内に表示されたＷｅｂアプリケーション等をウインドウ外に移動するといった処理を、ウインドウ境界（０６０５）で発生するエラーを検出しアプリケーションの切換を行うことにより可能である。例えば、伝言部分のオブジェクト（０６０３）がＷｅｂブラウザ（０６０１）ウインドウ境界（０６０５）に達したとき、エラーを検出して、ＯＳにインストールされたＩＭガジェットのアプリケーションに切換ることで、ブラウザを終了してもメッセージをデスクトップに残すといった操作が可能である。
【００６０】
このように本実施例のアプリケーション切換実行装置は、ブラウザ境界においてウインドウ内表示制限違反が検出された場合に、アプリケーションの処理の主体を切換え、かつ切換先のアプリケーション（０６０６）のウインドウをアクティブにする等のグラフィック表示処理が可能なアプリケーション切換実行装置である。
【００６１】
<機能的構成>
図７は、本実施例のアプリケーション切換実行装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「アプリケーション切換実行装置」（０７００）は、実施例１を基本として「第一ベースプログラム実行環境部」（０７０１）と、「第二ベースプログラム実行環境部」（０７０２）と、「第一アプリケーション」（０７０３）と、「第二アプリケーション」（０７０４）と、「第一導入仲介アプリケーション」（０７０５）と、「第二導入仲介アプリケーション」（０７０６）とを有する。「第一導入仲介アプリケーション」（０７０５）は、「ユーザ操作通知手段」（０７０７）と、「OFF切換手段」（０２０８）とを有する。「第二導入仲介アプリケーション」（０７０６）は「伝達手段」（０７０９）と、「ON切換手段」（０７１０）とを有する。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のアプリケーション切換実行装置の特徴点は、「第一導入仲介アプリケーション」（０７０５）が「ウインドウ内表示制限違反検出手段」（０７１１）と、「ＯＮグラフィック命令通知手段」（０７１２）を新たに有する点である。
【００６２】
「ウインドウ内表示制限違反検出手段」（０７１１）は、「第一導入仲介アプリケーション」（０７０５）において、ウインドウ内表示制限違反にて生じるエラーを検出するための機能を有する。「表示制限」とは、ベースプログラムやＷｅｂブラウザ等によるユーザインタフェースオブジェクトのグラフィック表示の制限である。従って、「ウインドウ内表示制限」は、ユーザインタフェースオブジェクトの表示が、当該オブジェクトを表示しているアプリケーションが動作するウインドウ内に限定されることを指す。図６を用いて説明すると、ＩＭ機能を提供しているＷｅｂアプリケーションが表示するアプリケーションオブジェクト（０６０３）の表示が、Ｗｅｂブラウザ（０６０１）内の領域に限定されている状態である。このため、ウインドウからオブジェクトを取り出そうとするとウインドウ内の境界（０６０５）でＷｅｂブラウザや、ＯＳ、「第一ベースプログラム実行環境部」（０７０１）等においてエラーが生じる。当手段はこのエラーを検出し、後述する「ＯＮグラフィック命令通知手段」（０７１１）に通知する。エラーの検出方法は前述したように、ＡＰＩを利用したり、割り込み通知をフックしたりと種々の方法が考えられる。
【００６３】
「ＯＮグラフィック命令通知手段」（０７１２）は、「第一導入仲介アプリケーション」（０７０５）ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第二アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知する機能を有する。「所定処理」とは、今まで非表示で合った第二アプリケーション用グラフィックを表示したり、Ｗｅｂブラウザの裏側にあったグラフィックを表側に出すようなレイヤー切換を行ったり、また、ウインドウをアクティブ化させたりといった処理等が考えられる。「ＯＮグラフィック命令」とは上述する処理を実行させる為の処理を開始させるトリガとなる命令のことである。当該命令の通知は、「第二導入仲介アプリケーション」（０７０６）を介して行ってもよいし、直接「第二アプリケーション」（０７０４）に対して行ってもよい。また、「第二ベースプログラム実行環境部」（０７０２）を介していてもよい。
【００６４】
<処理の流れ>
図８は、本実施例のアプリケーション切換実行装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。本図では、本実施例に特徴的な処理のみを示す。本処理が開始する前に第一ベースプログラムや、第一アプリケーションプログラムが少なくとも起動しているものとする。まず、第一アプリケーションプログラム側においてウインドウが表示される（ステップＳ０８０１）と、ユーザ操作を取得し通知を行う（ステップＳ０８０２）。次に、ウインドウ内表示制限違反を検出したか否かの判断を行う（ステップＳ０８０３）。判断の結果が偽ならば、引き続きユーザ操作を取得し通知を行う（ステップＳ０８０２）。判断の結果が真ならば、第二アプリケーション用グラフィックに所定処理を実行させるためのグラフィック命令を通知する（ステップＳ０８０４）。この通知を受けて、第二アプリケーションプログラム側では、所定処理が実行される（ステップＳ０８０５）。
【００６５】
<ハードウエア構成>
図９は、上記機能的な各構成要件をハードウエアとして実現した際の、アプリケーション切換実行装置における構成の一例を表す概略図である。この図を利用して本実施例の切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、映像処理装置は、実施例１と同様、この図にあるように、本実施例のアプリケーション切換実行装置は、各種演算処理を行う「ＣＰＵ（中央演算装置）」（０９０１）と、「揮発性メモリ」（０９０２）と、「不揮発性メモリ」（０９０３）とを有している。また、マウスやキーボードなどの、ユーザからの操作入力を受け付ける「操作入力Ｉ／Ｆ」（０９０４）と、処理結果を表示出力するＬＣＤパネルなどの「表示装置」（０９０５）と、サーバと通信するための「ネットワークＩ／Ｆ」（０９０６）とを有する。そしてそれらが「システムバス」（０９０７）などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００６６】
まず、実施例１で述べたような動作により、「操作入力Ｉ／Ｆ」（０９０４）により入力された割り込み通知は、第一アプリケーションプログラムが確保している領域Ｐ１の割り込み通知領域に通知されている。Ｄ１はこの領域を参照して取得した値であり、Ｄ１のポインタをＤ２に複製し、第二導入仲介プログラムはＤ２を参照してＰ２の割り込み通知領域に対して通知することで同期をとっている。
【００６７】
ここで、「操作入力Ｉ／Ｆ」（０９０４）により、第一アプリケーションプログラム用グラフィックをマウスなどでドラッグして移動しているとする。Ｗｅｂブラウザなどに付随するウインドウ表示用プログラムは、通知された割り込み情報を参照して、マウスポインタなどのウインドウ内の位置座標（ｘ１，ｙ１）を取得する。
【００６８】
第一導入仲介プログラムは、第一アプリケーションプログラム用グラフィックのウインドウ内の位置座標（ｘ１，ｙ１）と、ＯＳ等より表示画面内のウインドウの位置座標（Ｘ２，Ｙ２）等を取得する。これらの情報が第二導入仲介プログラムを介して第二アプリケーションプログラムに送られ、表示画面中の同一座標の位置（Ｘ２＋ｘ１，Ｙ２＋ｙ１）に第二アプリケーション用グラフィックが表示された状態になっている。
【００６９】
第一導入仲介プログラムはさらに、ウインドウ表示用プログラムよりウインドウ表示プログラムの表示領域の大きさ（Ｗｘ,Ｗｙ）を取得する。そして、「ＣＰＵ」（０９０１）において、（ｘ１，ｙ１）が座標（Ｘ２，Ｙ２）,（Ｘ２＋Ｗｘ,Ｙ２）,（Ｘ２＋Ｗｘ，Ｙ２＋Ｗｙ）,（Ｘ２，Ｙ２＋Ｗｙ）で作られる領域等の中に位置しているか否かを「ＣＰＵ」（０９０１）における演算により判定する。その結果、領域内に位置していないとの結果になった場合には、第一導入仲介プログラムに対してエラーの通知が送られる。
【００７０】
なお、このウインドウ表示用プログラムは、Ｗｅｂブラウザに付随のものであってもよいし、第一ベースプログラムに付随のものであってもよい。また、エラーの判定を第一導入仲介プログラムで行ってもよい。第一導入仲介プログラムはエラー通知を受け取ると、第二導入仲介プログラムなどに対して所定の処理を第二アプリケーションプログラムに行うように通知Ｘを送る。第二アプリケーションプログラムはＸにより、所定のコマンドを実行する。
【００７１】
<効果の簡単な説明>
このようにして、表示がウインドウ内に限られているアプリケーションなどと同一コードベースのアプリケーションなどを同時に動作させ、エラーによりこのアプリケーションに対して所定処理を実行させることで操作上の連携性を高めた処理を行うことが可能である。
【００７２】
≪実施例３≫
<概要>
図１０（Ａ）、（Ｂ）、（Ｃ）は、本実施例のアプリケーション切換実行装置における異なるアプリ上での共通アプリのアプリケーション切換実行装置の適用例について説明するための概念図である。図１０（Ａ）にあるようにブラウザのウインドウ内においてグループウエアのＷｅｂアプリケーションが動作している。枠（１００１）内がそれぞれのプロジェクトメンバーを示している。枠内では伝言などのＩＭ機能や、在席や電話中など、各メンバーの状態を示すプレゼンス機能を有している。利用者は、Ｂさんに連絡を取りたいために、Ｂさんを示すアプリケーションオブジェクト（１００１）をデスクトップに移動しようと考えている。このとき、ブラウザのバックグラウンドでは、Ｂさんの状態を示すアプリケーションＢがもう一つ稼働しており、ブラウザの下のレイヤーなどに隠れている（１００２）。図１０（Ｂ）において、ブラウザの境界にＢさんのオブジェクト（１００３）が達した瞬間に、ブラウザ上で動作するアプリケーションオブジェクトは消滅し、バックグラウンドで動作していたアプリＢがレイヤー切換によって同じ位置に現れる（１００４）。こうして、図１０（Ｃ）のようにアプリケーションＢのウインドウがアクティブとなり、利用者はアプリケーションが切り替わったのを意識することなくアプリＢをウインドウ外にスムースに移動することができる。
【００７３】
このように本実施例のアプリケーション切換実行装置は、ブラウザ境界においてウインドウ内表示制限違反が検出された場合に、アプリケーションの処理の主体を切換え、かつ切換元のＷｅｂアプリケーションオブジェクト（１００３）を非表示にするようなグラフィック表示が可能なアプリケーション切換実行装置である。
【００７４】
<機能的構成>
図１１は、本実施例のアプリケーション切換実行装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「アプリケーション切換実行装置」（１１００）は、実施例２を基本として「第一ベースプログラム実行環境部」（１１０１）と、「第二ベースプログラム実行環境部」（１１０２）と、「第一アプリケーション」（１１０３）と、「第二アプリケーション」（１１０４）と、「第一導入仲介アプリケーション」（１１０５）と、「第二導入仲介アプリケーション」（１１０６）とを有する。「第一導入仲介アプリケーション」（１１０５）は、「ユーザ操作通知手段」（１１０７）と、「OFF切換手段」（１１０８）と、「ウインドウ内表示制限違反検出手段」（１１１１）と、「ＯＮグラフィック命令通知手段」（１１１２）とを有する。「第二導入仲介アプリケーション」（１１０６）は「伝達手段」（１１０９）と、「ON切換手段」（１１１０）とを有する。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のアプリケーション切換実行装置の特徴点は、「第一導入仲介アプリケーション」（１１０５）が「ＯＦＦグラフィック命令通知手段」（１１１３）を新たに有する点である。
【００７５】
「ＯＦＦグラフィック命令通知手段」（１１１３）は、「第一導入仲介アプリケーション」（１１０５）において、ウインドウ内表示制限違反検出手段でエラーが検出された場合に、第一アプリケーション用グラフィックに関する所定処理を実行させるためのグラフィック命令を通知する機能を有する。「ＯＦＦグラフィック命令」とは、「ウインドウ内表示制限違反検出手段」（１１１１）よりエラーが検出され、当手段（０１１２）がエラー通知を取得した場合に「第一アプリケーション」（１１０３）等に対して行う命令である。具体的には、切換時まで表示されていた第一アプリケーション用グラフィックなどを非表示にしたり、アイコン化したり等の命令を実行させるためのトリガとなる命令のことである。このＯＦＦグラフィック命令は「第一ベースプログラム実行環境部」（１１０１）を介して行ってもよいし、「第一アプリケーション」（１１０３）に行う形態をとってもよい。
【００７６】
<処理の流れ>
図１２は、本実施例のアプリケーション切換実行装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。本図では、本実施例に特徴的な処理のみを示す。本処理が開始する前に第一ベースプログラムや、第一アプリケーションプログラムが少なくとも起動しているものとする。この図にあるように、まず、第一アプリケーションプログラム側においてウインドウが表示される（ステップＳ１２０１）と、ユーザ操作を取得し通知を行う（ステップＳ１２０２）。次に、ウインドウ内表示制限違反を検出したか否かの判断を行う（ステップＳ１２０３）。判断の結果が偽ならば、引き続きユーザ操作を取得し通知を行う（ステップＳ１２０２）。
【００７７】
判断の結果が真ならば、第二アプリケーション用グラフィックに所定処理を実行させるためのグラフィック命令を通知する（ステップＳ１２０４）。次に第一アプリケーション用グラフィックに所定処理を実行させるためのグラフィック命令を通知する（ステップＳ１２０５）この通知を受けて、所定処理が実行される（ステップＳ１２０６）。第一または第二アプリケーショングラフィックに所定命令を実行させる為のグラフィック命令を通知する処理（ステップＳ１２０４、ステップＳ１２０５）は同時に行ってもよいし、本図に示すように両者の処理が前後してもよい。また、第一アプリケーション用グラフィックに対するものが先でもよいし第二アプリケーション用グラフィックに対するものが先でもよい。
【００７８】
<ハードウエア構成>
図１３は上記機能的な各構成要件をハードウエアとして実現した際の、アプリケーション切換実行装置における構成の一例を表す概略図である。この図を利用して本実施例の切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のアプリケーション切換実行装置は、各種演算処理を行う「ＣＰＵ（中央演算装置）」（１３０１）と、「揮発性メモリ」（１３０２）と、「不揮発性メモリ」（１３０３）とを有している。また、マウスやキーボードなどの、ユーザからの操作入力を受け付ける「操作入力Ｉ／Ｆ」（１３０４）と、処理結果を表示出力するＬＣＤパネルなどの「表示装置」（１３０５）と、サーバと通信するための「ネットワークＩ／Ｆ」（１３０６）とを有する。そしてそれらが「システムバス」（１３０７）などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００７９】
まず、実施例１で述べたような動作により、「操作入力Ｉ／Ｆ」（１３０４）により入力された割り込み通知は、第一アプリケーションプログラムが確保している領域Ｐ１の割り込み通知領域に通知されている。Ｄ１はこの領域を参照して取得した値であり、Ｄ１のポインタをＤ２に複製し、第二導入仲介プログラムはＤ２を参照してＰ２の割り込み通知領域に対して通知することで同期をとっている。ここで、実施例２で述べたような処理により、第一アプリケーション用グラフィックがウインドウ内に位置しているか否かを「ＣＰＵ」（１３０１）における演算により判定する。
【００８０】
その結果ウインドウ内に位置していないとの結果になった場合には、第一導入仲介プログラムに対してエラーの通知が送られる。第一導入仲介プログラムはエラー通知を受け取ると、通知Ｙを送る。第一アプリケーションプログラムはＹにより、所定のコマンドを実行する。
【００８１】
<効果の簡単な説明>
このようにして、表示がウインドウ内に限られているアプリケーションなどと同一コードベースのアプリケーションなどを同時に動作させ、エラーにより切換元のアプリケーションと切換先のアプリケーションのグラフィック等に関して所定処理を実行させることで利用者にアプリケーションの切換を意識させる事なくシームレスな切換処理を行うことが可能である。
【００８２】
≪実施例４≫
<概要>
本実施例のアプリケーション切換実行装置は、実施例１のアプリケーション切換実行装置を基本として、はじめにマスタとして動作するアプリケーションがダウンロード開始した際や、起動した際等に、スレーブとなるアプリケーションをダウンロードするような処理が可能なアプリケーション切換実行装置である。例えば、Ｗｅｂブラウザ上で、Ｗｅｂアプリケーションを実行開始した際に、同時に同一コードベースのアプリケーションをダウンロードしてＯＳ上で動作するようにインストールするといった処理が可能なアプリケーション切換実行装置である。
【００８３】
このように本実施例のアプリケーション切換実行装置は、同一コードベースの複数アプリケーションを別アプリケーション上で実行する際に、利用者に意識させる事なく、スレーブとなるアプリケーションの実行環境を整えることの可能なアプリケーション切換実行装置である。
【００８４】
<機能的構成>
図１４は、本実施例のアプリケーション切換実行装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「アプリケーション切換実行装置」（１４００）は、実施例１を基本として「第一ベースプログラム実行環境部」（１４０１）と、「第二ベースプログラム実行環境部」（１４０２）と、「第一アプリケーション」（１４０３）と、「第二アプリケーション」（１４０４）と、「第一導入仲介アプリケーション」（１４０５）と、「第二導入仲介アプリケーション」（１４０６）とを有する。「第一導入仲介アプリケーション」（１４０５）は、「ユーザ操作通知手段」（１４０７）と、「OFF切換手段」（１４０８）とを有する。「第二導入仲介アプリケーション」（１４０６）は「伝達手段」（１４０９）と、「ON切換手段」（１４１０）とを有する。なお図示していないが、「第一導入仲介アプリケーション」（１４０５）は、「ウインドウ内表示制限違反検出手段」（１４１１）と、「ＯＮグラフィック命令通知手段」（１４１２）と、「ＯＦＦグラフィック命令通知手段」（１４１３）とを有していてもよい。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のアプリケーション切換実行装置の特徴点は、「第一導入仲介アプリケーション」（１４０５）が「第二アプリケーションダウンロード命令通知手段」（１４１４）を新たに有する点である。
【００８５】
「第二アプリケーションダウンロード命令通知手段」（１４１４）は、「第一導入仲介アプリケーション」（１４０５）において、第一ダウンロードプログラムによるダウンロードがある場合には、第二アプリケーションが実行可能な状態とするために第二アプリケーションをダウンロードするための第二アプリケーションダウンロード命令を通知する機能を有する。すなわち、第一アプリケーションのダウンロード命令が実行されると、同一のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などから第一アプリケーションと同一のコードからなるアプリケーションコードをダウンロードするように、命令通知を行う。「第二アプリケーションが実行可能な状態とするために」とは、存在しない場合には第二アプリケーションプログラム自体と共に、第二ベースプログラム、さらには第二導入仲介プログラムをダウンロードするといった処理も含まれることを指す。
【００８６】
<処理の流れ>
図１５は、本実施例のアプリケーション切換実行装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。本図では、本実施例に特徴的な処理のみを示す。第一アプリケーションプログラム側ではまず、第一ベースプログラムが起動される（ステップＳ１５０１）。次に第一アプリケーションプログラムのダウンロードが行われる（ステップＳ１５０２）。次に、第二アプリケーションダウンロード命令を通知する（ステップＳ１５０３）。その後第一アプリケーションが起動（ステップＳ１５０４）する。第二アプリケーションプログラム側では、まず第二ベースプログラムが起動する（ステップＳ１５０５）その後、第一アプリケーションプログラム側の命令により、第二アプリケーションプログラムのダウンロードが行われる（ステップＳ１５０６）。ダウンロードが完了すると、第二アプリケーションプログラムが起動する（ステップＳ１５０７）。
【００８７】
図では、第一アプリケーションプログラムのダウンロード（ステップＳ１５０２）の後に第二アプリケーションダウンロード命令を通知（ステップＳ１５０３）しているが、これらの処理は同時でも構わない。また、第二ベースプログラムの起動（ステップＳ１５０５）は、第二アプリケーションプログラムのダウンロード（ステップＳ１５０６）中やその後でも構わない。第一アプリケーションプログラムの起動（ステップＳ１５０４）は、第二アプリケーションダウンロード命令の通知処理（ステップＳ１５０３）を待たずにダウンロード（ステップＳ１５０２）の完了後すぐに行っても構わない。
【００８８】
<ハードウエア構成>
図１６は上記機能的な各構成要件をハードウエアとして実現した際の、アプリケーション切換実行装置における構成の一例を表す概略図である。この図を利用して本実施例の切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のアプリケーション切換実行装置は、各種演算処理を行う「ＣＰＵ（中央演算装置）」（１６０１）と、「揮発性メモリ」（１６０２）と、「不揮発性メモリ」（１６０３）とを有している。また、マウスやキーボードなどの、ユーザからの操作入力を受け付ける「操作入力Ｉ／Ｆ」（１６０４）と、処理結果を表示出力するＬＣＤパネルなどの「表示装置」（１６０５）と、サーバと通信するための「ネットワークＩ／Ｆ」（１６０６）とを有する。そしてそれらが「システムバス」（１６０７）などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００８９】
ここで、第一ベースプログラムが、「揮発性メモリ」（１６０１）のアドレスＢ１を先頭とする領域に「不揮発性メモリ」（１６０２）等より呼び出され、「ＣＰＵ」（１６０１）において別のプロセスとして実行されている。「操作入力Ｉ／Ｆ」（１６０４）より所定の入力があると、「ネットワークＩ／Ｆ」（１６０４）を介して、第一アプリケーションプログラムが「揮発性メモリ」（１６０１）のアドレスＰ１を先頭とする領域に読み込まれる。ここで、第一導入仲介プログラムも第一アプリケーションプログラムと共に一緒にダウンロードされ起動してもよい。
【００９０】
第一導入仲介プログラムは同一ＵＲＬから第二アプリケーションプログラムをダウンロードする。ここで、第二導入仲介プログラムも第二アプリケーションプログラムと共に一緒にダウンロードされ起動してもよい。必要であれば第二ベースプログラムも同時にダウンロードされインストールされてもよい。
【００９１】
<効果の簡単な説明>
このように、本実施例のアプリケーション切換実行装置では、Ｗｅｂアプリケーションなどを起動した際に、同一コードベースのアプリケーションを別にダウンロードする処理が可能である。これにより、ＯＳ上でスレーブとなるアプリケーションをバックグラウンドで動作させることが可能となり、利用者は複数アプリケーションの動作を意識することなく、Ｗｅｂアプリケーションなどを利用することが可能である。
【図面の簡単な説明】
【００９２】
【図１】実施例１のアプリケーション切換実行装置による切換処理の一例を説明するための図
【図２】実施例１のアプリケーション切換実行装置における機能ブロックの一例を表す図
【図３】実施例１のアプリケーション切換実行装置における処理の流れの一例を表すフローチャート
【図４】実施例１のアプリケーション切換実行装置における処理の流れの一例を表すシーケンス図
【図５】実施例１のアプリケーション切換実行装置におけるハードウエア構成の一例を表す概略図
【図６】実施例２のアプリケーション切換実行装置による切換処理の一例を説明するための図
【図７】実施例２のアプリケーション切換実行装置における機能ブロックの一例を表す図
【図８】実施例２のアプリケーション切換実行装置における処理の流れの一例を表すフローチャート
【図９】実施例２のアプリケーション切換実行装置におけるハードウエア構成の一例を表す概略図
【図１０】実施例３のアプリケーション切換実行装置による切換処理の一例を説明するための図
【図１１】実施例３のアプリケーション切換実行装置における機能ブロックの一例を表す図
【図１２】実施例３のアプリケーション切換実行装置における処理の流れの一例を表すフローチャート
【図１３】実施例３のアプリケーション切換実行装置におけるハードウエア構成の一例を表す概略図
【図１４】実施例４のアプリケーション切換実行装置における機能ブロックの一例を表す図
【図１５】実施例４のアプリケーション切換実行装置における処理の流れの一例を表すフローチャート
【図１６】実施例４のアプリケーション切換実行装置におけるハードウエア構成の一例を表す概略図
【符号の説明】
【００９３】
０２００  アプリケーション切換実行装置
０２０１  第一ベースプログラム実行環境部
０２０２  第二ベースプログラム実行環境部
０２０３  第一アプリケーション
０２０４  第二アプリケーション
０２０５  第一導入仲介アプリケーション
０２０６  第二導入仲介アプリケーション
【図１】
2010049582.tif 000003
【図２】
2010049582.tif 000004
【図３】
2010049582.tif 000005
【図４】
2010049582.tif 000006
【図５】
2010049582.tif 000007
【図６】
2010049582.tif 000008
【図７】
2010049582.tif 000009
【図８】
2010049582.tif 000010
【図９】
2010049582.tif 000011
【図１０】
2010049582.tif 000012
【図１１】
2010049582.tif 000013
【図１２】
2010049582.tif 000014
【図１３】
2010049582.tif 000015
【図１４】
2010049582.tif 000016
【図１５】
2010049582.tif 000017
【図１６】
2010049582.tif 000018