(57)【要約】【課題】モバイルデバイスは、アプリケーション起動時に複数のコンポーネントのプログラムコードをロードしてインスタンスを生成する負荷の低減のため、起動時に各コンポーネントの本体をロードせずに、アイコン又は折畳み可能なセクション等の形で表示画面に配置し、ユーザ要求に応じて各コンポーネントを選択的に開いて実行する場合がある。一方、コンポーネント間連携のためにコンポーネント間でメッセージを送受信する必要があり、この送受信には通常コンポーネントのプログラムコードをロードしておく必要があるため、前記の負荷軽減手法と背反する。【解決手段】コンポーネント宛のメッセージを格納するメッセージ格納部と、コンポーネントの実行指示を受け取ったことに応じて、コンポーネント本体をコンピュータ上にロードして実行させて、実行指示前にメッセージ格納部に格納されたメッセージを処理させる実行処理部とを備える情報処理装置を提供する。【選択図】図１
2010267122.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上でソフトウエア・コンポーネントを実行させるための実行用プログラムであって、 
当該実行用プログラムは、前記コンピュータを、
前記ソフトウエア・コンポーネント宛のメッセージを格納するメッセージ格納部と、
前記ソフトウエア・コンポーネントの実行指示を受け取ったことに応じて、前記ソフトウエア・コンポーネントの本体の実行コードを前記コンピュータ上にロードして実行させて、前記ソフトウエア・コンポーネントの実行指示前に前記メッセージ格納部に格納された前記メッセージを処理させる実行処理部と、
して機能させる実行用プログラム。
【請求項２】
当該コンピュータは、複数の前記ソフトウエア・コンポーネントを連携させた全体アプリケーションを実行し、
前記実行処理部は、前記全体アプリケーションの実行中において一の前記ソフトウエア・コンポーネントの実行指示を受け取ったことに応じて、前記一のソフトウエア・コンポーネントの本体の実行コードを前記コンピュータ上にロードして、前記一のソフトウエア・コンポーネントを初期化して実行させる
請求項１に記載の実行用プログラム。
【請求項３】
当該実行用プログラムは、前記コンピュータを、前記コンピュータの表示画面上に、前記ソフトウエア・コンポーネントに対応付けられたオブジェクトを表示する表示部として更に機能させ、
前記実行処理部は、ユーザが前記オブジェクトを操作したことに応じて、前記オブジェクトに対応付けられた前記ソフトウエア・コンポーネントの本体の実行コードをロードして実行させる
請求項１に記載の実行用プログラム。
【請求項４】
当該実行用プログラムは、前記コンピュータを、前記ソフトウエア・コンポーネント宛のメッセージを受け取って、前記オブジェクトの表示を、当該メッセージを受信したことを示す表示に変更するメッセージ処理部として更に機能させる請求項３に記載の実行用プログラム。
【請求項５】
前記メッセージ処理部は、前記ソフトウエア・コンポーネント宛のメッセージを受け取って、前記ソフトウエア・コンポーネントの本体の実行コードがロードされていないことを条件として、前記オブジェクトの表示を、当該メッセージを受信したことを示す表示に変更する請求項４に記載の実行用プログラム。
【請求項６】
前記メッセージ処理部は、前記ソフトウエア・コンポーネントの処理に必要な全てのメッセージを受け取って、前記オブジェクトの表示を当該全てのメッセージを受信したことを示す表示に変更する請求項４または５に記載の実行用プログラム。
【請求項７】
前記メッセージ処理部は、新たに受け取った前記ソフトウエア・コンポーネント宛のメッセージにおける予め定められた箇所の内容が、既に前記メッセージ格納部に格納されたメッセージにおける対応する箇所の内容と異なる場合に、前記オブジェクトの表示を異なる内容のメッセージを受信したことを示す表示に変更する請求項４から６のいずれかに記載の実行用プログラム。
【請求項８】
前記メッセージ処理部は、前記ソフトウエア・コンポーネント宛のメッセージを受け取って、前記オブジェクトの表示を、当該メッセージを受け取ったことを示す表示に変更し、予め設定された時間の後に、当該メッセージを受け取る前の表示に戻す請求項４から７のいずれかに記載の実行用プログラム。
【請求項９】
前記メッセージ処理部は、前記ソフトウエア・コンポーネント宛のメッセージを受け取って、前記ソフトウエア・コンポーネントの本体の実行コードが既にロードされている場合には当該メッセージを前記ソフトウエア・コンポーネントの本体へ転送し、前記ソフトウエア・コンポーネントの本体の実行コードがロードされていない場合には当該メッセージを前記メッセージ格納部に格納する請求項４から８のいずれかに記載の実行用プログラム。
【請求項１０】
前記メッセージ処理部は、前記ソフトウエア・コンポーネントの本体の実行コードがロードされたことに応じて、前記ソフトウエア・コンポーネント宛のメッセージを前記メッセージ格納部に格納するメッセージ受信ルーチンを、当該メッセージを前記ソフトウエア・コンポーネントの本体へ転送するメッセージ受信ルーチンに入れ替える請求項４から９のいずれかに記載の実行用プログラム。
【請求項１１】
前記メッセージ処理部および前記実行処理部は、複数の前記ソフトウエア・コンポーネントに対して共通のコンポーネント・ベース・モジュールを前記コンピュータ上で動作させることにより実現される請求項４から１０のいずれかに記載の実行用プログラム。
【請求項１２】
ソフトウエア・コンポーネントを実行する情報処理装置であって、
前記ソフトウエア・コンポーネント宛のメッセージを格納するメッセージ格納部と、
前記ソフトウエア・コンポーネントの実行指示を受け取ったことに応じて、前記ソフトウエア・コンポーネントの本体の実行コードを当該情報処理装置上にロードして実行させて、前記ソフトウエア・コンポーネントの実行指示前に前記メッセージ格納部に格納された前記メッセージを処理させる実行処理部と、
を備える情報処理装置。
【請求項１３】
コンピュータ上でソフトウエア・コンポーネントを実行させる実行方法であって、
前記コンピュータが前記ソフトウエア・コンポーネント宛のメッセージをメッセージ格納部に格納する段階と、
前記ソフトウエア・コンポーネントの実行指示を受け取ったことに応じて、前記コンピュータが前記ソフトウエア・コンポーネントの本体の実行コードをロードして実行して、前記ソフトウエア・コンポーネントの実行指示前に前記メッセージ格納部に格納された前記メッセージを処理する段階と、
を備える実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、実行方法および実行用プログラムに関する。
【背景技術】
【０００２】
アプリケーションに必要な機能をコンポーネントとして分解し、複数のコンポーネントを組み合わせることによりアプリケーションの構築を容易に短期間で行う、マッシュアップという手法が増えている。マッシュアップ・アプリケーションでは、単に複数のコンポーネントの画面を同時に表示するだけでなく、コンポーネント間での連携を定義して、アプリケーション上での操作を効率よく行うことができるようになる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４６２３２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
モバイル・デバイスなどのネットワーク、メモリ、およびＣＰＵの能力が低いプラットフォームでは、アプリケーションの起動時に複数のコンポーネントのプログラム・コードをロードしてインスタンスを生成すると、負荷が大きくなってしまうことがある。この負荷を軽減するため、アプリケーション起動時に各コンポーネントの本体をロードしないで、アイコンまたは折り畳み可能なセクション等の形で表示画面に配置し、各コンポーネントをユーザの要求に応じて選択的に開いて、ロード、および初期化することを可能にする場合がある。一方、コンポーネント間連携を実現するためには、コンポーネント間でメッセージの送受信を行う必要があり、この送受信には通常コンポーネントのプログラム・コードをロードしておく必要があるため、前記の負荷軽減の手法と背反する。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の態様においては、コンピュータ上でソフトウエア・コンポーネントを実行するための実行用プログラムであって、 当該実行用プログラムは、コンピュータを、ソフトウエア・コンポーネント本体の実行コードがロードされていない場合にソフトウエア・コンポーネント宛のメッセージを格納するメッセージ格納部と、ソフトウエア・コンポーネントの実行指示を受け取ったことに応じて、ソフトウエア・コンポーネント本体の実行コードをコンピュータ上にロードして実行させて、ソフトウエア・コンポーネントの実行指示前にメッセージ格納部に格納されたメッセージを処理させる実行処理部と、して機能させる実行用プログラムと、これに関する情報処理装置および方法とを提供する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００７】
【図１】図１は、本実施形態に係る情報処理装置１００の構成を示す。
【図２】図２は、本実施形態に係る情報処理装置１００のフローチャートの一例を示す。
【図３】図３は、本実施形態に係る実行処理部１３０による実行処理ステップＳ２３０のフローチャートの一例を示す。
【図４】図４は、本実施形態に係るメッセージ処理部１６０によるメッセージ処理ステップＳ２６０のフローチャートの一例を示す。
【図５】図５は、本実施形態に係るマッシュアップ・アプリケーションの表示画面の一例である表示画面５００を示す。
【図６】図６は、本実施形態に係るメッセージ格納部１１０、実行処理部１３０、およびメッセージ処理部１６０を実現するためのコンポーネント・スタブ６１０と、ソフトウエア・コンポーネントの一例であるコンポーネント６２０とを示す。
【図７Ａ】図７Ａは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の一例を示す。
【図７Ｂ】図７Ｂは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の一例を示す。
【図７Ｃ】図７Ｃは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の一例を示す。
【図７Ｄ】図７Ｄは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の一例を示す。
【図８Ａ】図８Ａは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の他の一例を示す。
【図８Ｂ】図８Ｂは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の他の一例を示す。
【図８Ｃ】図８Ｃは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の他の一例を示す。
【図８Ｄ】図８Ｄは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の他の一例を示す。
【図９】図９は、本実施形態に係る情報処理装置１００のレイアウト・コンテナおよびレイアウト・ペインの擬似プログラム・コードの一例を示す。
【図１０】図１０は、本実施形態に係るコンポーネント本体の擬似プログラム・コードの一例を示す。
【図１１】図１１は、本実施形態に係る情報処理装置１００のコンポーネント・フレームの擬似プログラム・コードの一例を示す。
【図１２】図１２は、本実施形態に係る情報処理装置１００のコンポーネント・ベース・モジュールの擬似プログラム・コードの一例を示す。
【図１３】図１３は、本実施形態に係るコンピュータ１９００のハードウエア構成の一例を示す。
【発明を実施するための形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る情報処理装置１００の構成を示す。情報処理装置１００は、一例としてコンピュータ上で実行用プログラムを実行することにより実現される。情報処理装置１００は、メッセージ格納部１１０、コンポーネント本体格納部１２０、実行処理部１３０、表示部１４０、入力部１５０、およびメッセージ処理部１６０を備える。
【００１０】
メッセージ格納部１１０は、ソフトウエア・コンポーネント宛のメッセージを格納する。ここで、ソフトウエア・コンポーネントは、例えば、電話帳アプリケーション、および位置情報表示アプリケーション等のガジェットまたはウィジェットと呼ばれる各種アプリケーションであってもよい。また、メッセージは、ソフトウエア・コンポーネント宛の情報であり、例えば、あるコンポーネントから他のコンポーネントへと直接的または間接的に送信するデータおよび／またはイベント等であってもよい。
【００１１】
コンポーネント本体格納部１２０は、ソフトウエア・コンポーネント本体の実行コードを格納する。コンポーネント本体格納部１２０は、情報処理装置１００を動作させるコンピュータ上の記憶装置により実現されてもよく、コンピュータがネットワークを介してアクセスするリモート・コンピュータまたはサーバ上の記憶装置により実現されてもよい。
【００１２】
実行処理部１３０は、ソフトウエア・コンポーネントの実行指示を受け取ったことに応じて、ソフトウエア・コンポーネント本体の実行コードをコンピュータ上にロードして実行させて、ソフトウエア・コンポーネントの実行指示前にメッセージ格納部１１０に格納されたメッセージを処理させる。ここで、実行処理部１３０は、ソフトウエア・コンポーネント本体の実行開始時の処理パラメータとして、メッセージの内容をソフトウエア・コンポーネント本体に与えてもよい。これに代えて、実行処理部１３０は、ソフトウエア・コンポーネント本体の実行を開始してからメッセージを供給してもよい。
【００１３】
表示部１４０は、コンピュータの表示画面上に、ソフトウエア・コンポーネントに対応付けられたオブジェクトを表示する。ここで、オブジェクトは、セクション、アイコン、およびタブ等の表現（ｒｅｐｒｅｓｅｎｔａｔｉｖｅ）またはインジケータ（ｉｎｄｉｃｉａ）、および、それらを操作することで表示・非表示の状態が切り替わるペイン（表示領域）を持つ。表示部１４０は、オブジェクトに対応するソフトウエア・コンポーネントをそれぞれペイン上に配置して、ペインの表示・非表示に連動して表示・非表示の状態を切り替える。
【００１４】
入力部１５０は、コンピュータの表示画面上で、ユーザがオブジェクトを操作したことを検知して、実行処理部１３０に通知する。ここで、オブジェクトの操作は、例えば、表示されたオブジェクト上でのクリック、表示されたオブジェクトのドラッグおよびドロップ、並びにクライアント・デバイス上のキー入力のうちの少なくとも１つであってもよい。実行処理部１３０は、ユーザがオブジェクトを操作したことに応じて、オブジェクトに対応付けられたソフトウエア・コンポーネント本体の実行コードをロードして実行させてもよい。
【００１５】
メッセージ処理部１６０は、ソフトウエア・コンポーネント宛のメッセージを受け取って、オブジェクトの表示を、当該メッセージを受信したことを示す表示に変更する。ここで、メッセージ処理部１６０がオブジェクトの表示を変更するときに、当該オブジェクトに対応するソフトウエア・コンポーネント本体の実行コードがロードおよび／または実行されていなくてもよい。メッセージ処理部１６０は、ソフトウエア・コンポーネント宛のメッセージを受け取って、ソフトウエア・コンポーネント本体の実行コードがロードされていないことを条件として、オブジェクトの表示を、当該メッセージを受信したことを示す表示に変更してもよい。
【００１６】
図２は、本実施形態に係る情報処理装置１００のフローチャートの一例を示す。まず、表示部１４０は、コンピュータの表示画面上に、それぞれがソフトウエア・コンポーネントに対応付けられた複数のオブジェクトを表示する（Ｓ２１０）。そのときに、表示部１４０は、当該オブジェクトの一部または全部を非表示の状態にしてもよい。
【００１７】
次に、入力部１５０は、ユーザがいずれかのオブジェクトを操作したか否かを検知する（Ｓ２２０）。ステップＳ２２０においてオブジェクトの操作が検知された場合、入力部１５０は実行処理部１３０に実行指示を送る。実行処理部１３０は、当該実行指示に応じて実行処理を行う（Ｓ２３０）。表示部１４０は、実行指示を受けたソフトウエア・コンポーネントについて当該オブジェクトの表示を変更する（Ｓ２４０）。表示部１４０は、ソフトウエア・コンポーネントの実行画面をオブジェクトの一部として表示してもよい。また、ステップＳ２４０において、表示部１４０は当該オブジェクトの一部の表示・非表示の状態を変更してもよい。
【００１８】
次に、メッセージ処理部１６０は、メッセージを受信したか否かを判定する（Ｓ２５０）。ステップＳ２５０においてメッセージを受信したと判定した場合、メッセージ処理部１６０はメッセージの処理を行う（Ｓ２６０）。
【００１９】
次に、ステップＳ２２０に処理が戻される。続いて、ステップＳ２２０〜Ｓ２６０の処理が繰り返される。
【００２０】
図３は、本実施形態に係る実行処理部１３０による実行処理ステップＳ２３０のフローチャートの一例を示す。まず、実行処理部１３０は、操作が検知されたオブジェクトに対応するソフトウエア・コンポーネント本体の実行コードが既にロードされて実行されているか否かを判定する（Ｓ３１０）。ステップＳ３１０において、ソフトウエア・コンポーネント本体の実行コードが既に実行されていると判定された場合、実行処理部１３０は実行処理ステップＳ２３０の処理を終了する。
【００２１】
ステップＳ３１０において、ソフトウエア・コンポーネント本体の実行コードが実行されていないと判定された場合（Ｓ３１０：Ｎｏ）、実行処理部１３０は、コンポーネント本体格納部１２０からソフトウエア・コンポーネント本体の実行コードをロードする（Ｓ３２０）。続いて、実行処理部１３０は、ソフトウエア・コンポーネント本体の実行コードを実行させる（Ｓ３３０）。
【００２２】
続いて、実行処理部１３０は、メッセージ格納部１１０に格納されたメッセージをソフトウエア・コンポーネント本体に処理させる（Ｓ３４０）。続いて、実行処理部１３０は、ソフトウエア・コンポーネント本体に処理させたメッセージをクリアする（Ｓ３５０）。複数のソフトウエア・コンポーネントがメッセージ格納部１１０を共有する場合、実行処理部１３０は、ステップＳ３４０においてソフトウエア・コンポーネント本体に処理させたメッセージのみをクリアしてもよい。
【００２３】
図４は、本実施形態に係るメッセージ処理部１６０によるメッセージ処理ステップＳ２６０のフローチャートの一例を示す。メッセージ処理部１６０は、ソフトウエア・コンポーネント宛のメッセージを受け取って、対応するソフトウエア・コンポーネント本体の実行コードが既にロードされているか否かを判定する（Ｓ４１０）。
【００２４】
ソフトウエア・コンポーネント本体の実行コードがロードされていないと判定された場合（Ｓ４１０：Ｎｏ）には、当該メッセージをメッセージ格納部に格納する（Ｓ４２０）。複数のソフトウエア・コンポーネントがメッセージ格納部１１０を共有する場合、メッセージ格納部１１０は、ソフトウエア・コンポーネント毎に対応付けて当該ソフトウエア・コンポーネント宛のメッセージを格納してもよい。続いて、メッセージ処理部１６０は、ソフトウエア・コンポーネント宛のメッセージを受け取って、オブジェクトの表示を、当該メッセージを受け取ったことを示す表示に変更する（Ｓ４３０）。メッセージ処理部１６０は、変更された表示を、予め設定された時間の後に、当該メッセージを受け取る前の表示に戻してもよい。
【００２５】
また、メッセージ処理部１６０は、ソフトウエア・コンポーネントの処理に必要な全てのメッセージを受け取って、オブジェクトの表示を当該全てのメッセージを受信したことを示す表示に変更してもよい。これにより、メッセージ処理部１６０は、ソフトウエア・コンポーネント宛のメッセージが蓄積していることをユーザにわかりやすく示すことができる。
【００２６】
また、メッセージ処理部１６０は、新たに受け取ったソフトウエア・コンポーネント宛のメッセージにおける予め定められた箇所の内容が、既にメッセージ格納部に格納されたメッセージにおける対応する箇所の内容と異なる場合に、オブジェクトの表示を異なる内容のメッセージを受信したことを示す表示に変更してもよい。こうすると、新たに受け取ったメッセージが、既に受け取ったメッセージと同一である場合、メッセージ処理部１６０は表示を変更しないので、ユーザに対して新たな内容のメッセージが受信されたことを提示できる。
【００２７】
ソフトウエア・コンポーネント本体の実行コードが既にロードされていると判定された場合（Ｓ４１０：Ｙｅｓ）には、メッセージ処理部１６０は当該メッセージを当該ソフトウエア・コンポーネント本体へ転送する（Ｓ４４０）。
【００２８】
図５は、本実施形態に係るマッシュアップ・アプリケーションの表示画面の一例である表示画面５００を示す。マッシュアップ・アプリケーションは、コンピュータによって実行される、複数のソフトウエア・コンポーネントを連携させた全体アプリケーションの一例である。レイアウト・コンテナ５１０は、レイアウト・コンテナ５１０を表示画面５００内に表示する表示部１４０を実現する。レイアウト・コンテナ５１０は、複数のコンポーネントまたはコンポーネント・スタブのそれぞれについて、オブジェクトの一例であるセクション・タイトル５１２Ａ〜Ｂおよびレイアウト・ペイン５１４Ａ〜Ｂを、表示されたレイアウト・コンテナ５１０内に表示させる。
【００２９】
レイアウト・コンテナ５１０は、メッセージ処理部１６０の機能を実現することにより、メッセージを受けたときに、対応するコンポーネントのセクション・タイトル５１２Ａ〜Ｂをハイライト表示等の強調表示をしてもよい。これによりレイアウト・コンテナ５１０は、表示されている複数のセクション・タイトル内の特定のセクション・タイトル５１２Ａ〜Ｂをユーザに知らせることができる。また、レイアウト・コンテナ５１０は、レイアウト・ペイン５１４Ａ〜Ｂを表示状態または非表示の状態にする。例えば、図２において、"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"セクション・タイトル５１２Ａに対応するレイアウト・ペイン５１４Ａは、表示状態である。一方、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"セクション・タイトル５１２Ｂに対応するレイアウト・ペイン５１４Ｂは、非表示の状態である。
【００３０】
ここで、セクション・タイトル５１２Ａ〜Ｂをユーザがクリックすると、実行処理部１３０は、対応するコンポーネント本体の実行コードが既にロードされて実行されているか否かを判定する。対応するコンポーネント本体の実行コードが実行されていないと判定すると、実行処理部１３０は、対応するコンポーネント本体の実行コードをロードし実行する。
【００３１】
さらに、レイアウト・コンテナ５１０によって実現される表示部１４０は、ユーザがセクション・タイトル５１２Ａ〜Ｂをクリックしたことに応じて、当該セクション・タイトルに対応するレイアウト・ペイン５１４Ａ〜Ｂの表示・非表示の状態を切り替えるセクション・リストを表示する。これに代えて、表示部１４０は、ユーザがアイコンをクリックすると、当該アイコンに対応するレイアウト・ペインを表示するアイコン・パネルを表示してもよい。また、表示部１４０は、ユーザがタブをクリックすると、当該タブに対応するレイアウト・ペインを表示するタブパネルを表示してもよい。
【００３２】
図６は、本実施形態に係るメッセージ格納部１１０、実行処理部１３０、およびメッセージ処理部１６０を実現するためのコンポーネント・スタブ６１０と、ソフトウエア・コンポーネントの一例であるコンポーネント６２０とを示す。コンポーネント・スタブ６１０は、コンポーネント・フレーム６１２と、コンポーネント・ベース６１４とを含む。
【００３３】
コンポーネント・フレーム６１２は、対応するコンポーネント本体の送信イベント定義、および受信イベント定義を行う。送信／受信イベントとは、対応するコンポーネントがメッセージを送信／受信したときに発生するイベントである。
【００３４】
コンポーネント・ベース６１４は、実行処理部１３０の機能を実現することによりマッシュアップ・アプリケーションの実行中において、一のコンポーネントの実行指示を受け取ったことに応じて、当該コンポーネント本体の実行コードをコンピュータ上にロードして実行させてもよい。ここで、コンポーネント・ベース６１４は、コンポーネント本体の実行コードを実行させるときに、当該コンポーネント本体を初期化してもよい。また、コンポーネント・ベース６１４は、コンポーネント本体を初期化するときに、当該コンポーネント本体をインスタンス化してもよい。コンポーネント・ベース６１４は、メッセージ格納部１１０内に格納されたメッセージを対応するコンポーネント本体に処理させてもよい．また，その後に、メッセージ格納部１１０内に格納された処理済のメッセージをクリアしてもよい。
【００３５】
更に、コンポーネント・ベース６１４は、メッセージ処理部１６０の機能を実現することにより、メッセージ６１６を受信し、メッセージ６１６をメッセージ格納部１１０内に格納し、レイアウト・コンテナへメッセージ６１６の受信を通知してもよい。ここで、メッセージ６１６は、他のコンポーネントにより送信されてもよく、またはＯＳおよび／またはハードウエア等の送信元により送信されてもよい。
【００３６】
コンポーネント・ベース６１４によって実現される実行処理部１３０がコンポーネント本体のインスタンスを生成してコンポーネント・スタブ６１０に組み込むと、コンポーネント・スタブ６１０は、コンポーネント６２０として機能するようになる。コンポーネント６２０は、コンポーネント・フレーム６１２、コンポーネント本体のインスタンス６２２、およびコンポーネント・ベース６２４を含む。ここで、コンポーネント本体のインスタンス６２２は、コンポーネント・フレーム６１２の送信／受信イベント定義に従って、メッセージ６２６を送信してもよい。
【００３７】
コンポーネント・ベース６２４は、メッセージ６２８を受信し、メッセージ６２８をコンポーネント本体のインスタンス６２２に転送し、レイアウト・コンテナ５１０へメッセージ６２８の受信を通知してもよい。ここで、コンポーネント・ベース６２４は、コンポーネント・フレーム６１２の送信／受信イベント定義に従って、メッセージ６２８をコンポーネント本体のインスタンス６２２へ転送してもよい。
【００３８】
図７Ａ、図７Ｂ、図７Ｃ、および図７Ｄは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の一例を示す。レイアウト・コンテナ７１０Ａは、マッシュアップ・アプリケーションが起動されて表示画面７２０Ａが表示された状態におけるレイアウト・コンテナの一例である。レイアウト・コンテナ７１０Ａは、"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"コンポーネントに対応するコンポーネント・スタブ７１２、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントに対応するコンポーネント・スタブ７１４、およびその他のコンポーネントに対応するコンポーネント・スタブを有している。この時点では、いずれのコンポーネント本体の実行コードもロードされておらず、いずれのコンポーネント本体も初期化されていない。
【００３９】
次に、ユーザが表示画面７２０Ａ内の"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"コンポーネントに対応するセクション・タイトル７２２をクリックすると、入力部１５０は、この操作を検知する。続いて、コンポーネント・スタブ７１２のコンポーネント・ベースによって実現される実行処理部１３０は、対応する"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"コンポーネントの本体の実行コードが既にロードされているか否かを判定する。この時点では、"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"コンポーネントの本体の実行コードはロードされていないので、実行処理部１３０は"Ｃｏｎｔａｃｔ  Ｌｉｓｔ" コンポーネントの本体の実行コードをロードして実行させて、"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"コンポーネントの本体を初期化する。この結果、実行処理部１３０は、コンポーネント・スタブ７１２を、コンポーネント７１６に変更するので、レイアウト・コンテナ７１０Ａは、レイアウト・コンテナ７１０Ｂに変更される。
【００４０】
次に、レイアウト・コンテナ７１０Ａによって実現される表示部１４０は、"Ｃｏｎｔａｃｔ  Ｌｉｓｔ"セクション・タイトル７２２に対応する非表示の状態のレイアウト・ペイン７２４を表示状態とし、表示画面７２０Ａを表示画面７２０Ｂに変更する。この時点では、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体の実行コードはロードされておらず、対応するコンポーネント本体も初期化されていない。
【００４１】
ここで、ユーザがレイアウト・ペイン７２４内のアイテムを選択すると、対応するコンポーネント７１６は、予め"Ｃｏｎｔａｃｔ Ｌｉｓｔ"コンポーネントのアイテム選択イベントを受信するように定義されている"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントのコンポーネント・スタブ７１４にメッセージ７１７を送信する。ここで、メッセージ７１７は、選択されたアイテムに対応する氏名および電話番号等の情報を含んでいてもよい。
【００４２】
次に、コンポーネント・スタブ７１４のコンポーネント・ベースによって実現されるメッセージ処理部１６０は、メッセージ７１７を受信したと判定する。続いて、メッセージ処理部１６０は、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体の実行コードがロードされていないと判定し、メッセージ７１７をメッセージ格納部１１０内に格納する。これにより、レイアウト・コンテナ７１０Ｂは、レイアウト・コンテナ７１０Ｃへと遷移する。
【００４３】
次に、コンポーネント・スタブ７１４のコンポーネント・ベースによって実現されるメッセージ処理部１６０は、メッセージ７１７の受信を示すことを目的として、メッセージ７１７に対応する"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"セクション・タイトル７２６をハイライト表示させる。これにより、表示画面７２０Ｂは、表示画面７２０Ｃに変更される。この時点でも、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体の実行コードはロードされておらず、対応するコンポーネント本体も初期化されていない。
【００４４】
ここで、ユーザが表示画面７２０Ｃ内の"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"セクション・タイトル７２６をクリックすると、入力部１５０は、この操作を検知する。続いて、コンポーネント・スタブ７１４のコンポーネント・ベースによって実現される実行処理部１３０は、対応する"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体が既に実行されているか否かを判定する。この時点では、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ" コンポーネントの本体は実行されていないので、実行処理部１３０は、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体の実行コードをロードして実行させる。この結果、実行処理部１３０は、コンポーネント・スタブ７１４をコンポーネント７１８に変更するので、レイアウト・コンテナ７１０Ｃは、レイアウト・コンテナ７１０Ｄに変更される。
【００４５】
次に、実行処理部１３０は、 "Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体を初期化して、既にメッセージ格納部１１０内に格納されたメッセージ７１７を、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体に処理させる。また、実行処理部１３０は、メッセージ７１７を、メッセージ格納部１１０からクリアする。ここで、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"コンポーネントの本体は、実行開始時の処理パラメータとして、メッセージ７１７内の氏名および電話番号等の情報を受け取ってもよい。続いて、レイアウト・コンテナ７１０Ｄによって実現される表示部１４０は、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"セクション・タイトル７２６に対応する非表示の状態のレイアウト・ペイン７２８を表示状態とし、表示画面７２０Ｃを表示画面７２０Ｄに変更する。このように、コンポーネント本体の実行コードをロードして実行する前に、メッセージ格納部１１０が当該コンポーネント本体に対応するコンポーネント宛のメッセージ７１７を一時的に保存することにより、情報処理装置１００は、マッシュアップ・アプリケーション起動時に各コンポーネントに対応するコンポーネント本体の実行コードをロードする負荷を軽減しつつ、コンポーネント間連携を実現する。
【００４６】
図８Ａ、図８Ｂ、図８Ｃ、および図８Ｄは、本実施形態に係るレイアウト・コンテナおよび対応する表示画面の他の一例を示す。図８Ａの表示画面８２０Ａにおいて、レイアウト・コンテナ８１０Ａ〜Ｄによって実現される表示部１４０は、複数のコンポーネント・スタブにそれぞれ対応する複数のアイコンを並べて表示している点で、図７Ａと異なる。
【００４７】
また、図８Ｃの表示画面８２０Ｃにおいて、メッセージ処理部１６０は、"Ｃｌｉｃｋ  Ｔｏ  Ｄｉａｌ"アイコン８２２を振動させている点で図７Ｃと異なる。
【００４８】
図９は、本実施形態に係る情報処理装置１００のレイアウト・コンテナおよびレイアウト・ペインの擬似プログラム・コードの一例を示す。レイアウト・ペインの擬似プログラム・コード内の関数ｏｎＯｐｅｎは、図２のステップＳ２３０で実行処理部１３０が行う処理の一部分に対応する。図１０は、本実施形態に係るコンポーネント本体の擬似プログラム・コードの一例を示す。図１０内のコンポーネント本体の擬似プログラム・コード内の関数ｃｒｅａｔｅは、図２のステップＳ２３０で実行処理部１３０が行う処理の一部分に対応する。
【００４９】
図１１は、本実施形態に係る情報処理装置１００のコンポーネント・フレームの擬似プログラム・コードの一例を示す。コンポーネント・フレームを定義することにより、ソフトウエア・コンポーネントの作成者は、当該ソフトウエア・コンポーネントが送受信するメッセージを簡便に定義することができる。こうすると、対応するコンポーネントがどのメッセージを送信するか、およびどのメッセージを受信するかを簡単に定義することができる。
【００５０】
図１２は、本実施形態に係る情報処理装置１００のコンポーネント・ベース・モジュールの擬似プログラム・コードの一例を示す。メッセージ処理部１６０および実行処理部１３０は、複数のソフトウエア・コンポーネントに対して共通のコンポーネント・ベース・モジュールをコンピュータ上で動作させることにより実現されてもよい。こうすると、情報処理装置１００は、複数のソフトウエア・コンポーネントに対して、１つのコンポーネント・ベース・モジュールをコンピュータのメモリ上にロードすればよいので、メモリ使用量を節約できる。また、それぞれのソフトウエア・コンポーネントに対して別々にコンポーネント・ベースに対応するプログラムを作成しなくてもよくなり、開発効率が上がる。
【００５１】
また、メッセージ処理部１６０は、ソフトウエア・コンポーネント本体の実行コードがロードされたことに応じて、ソフトウエア・コンポーネント宛のメッセージをメッセージ格納部１１０に格納するメッセージ受信ルーチンを、当該メッセージをソフトウエア・コンポーネント本体へ転送するメッセージ受信ルーチンに入れ替えることができる。これにより、ソフトウエア・コンポーネントは、受信したメッセージを、外部から直接送られたメッセージとして処理することができる。なお、図９〜１２の擬似プログラム・コードは、一例としてＪａｖａＳｃｒｉｐｔ（登録商標）言語を使用して記述されているが、他の任意のプログラム言語で記述されてもよい。
【００５２】
図１３は、本実施形態に係るコンピュータ１９００のハードウエア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００５３】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００５４】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００５５】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウエアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００５６】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００５７】
コンピュータ１９００にインストールされ、コンピュータ１９００を情報処理装置１００として機能させるプログラムは、メッセージ格納モジュール、コンポーネント本体格納モジュール、実行処理モジュール、入力モジュール、表示モジュール、およびメッセージ処理モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、メッセージ格納部１１０、コンポーネント本体格納部１２０、実行処理部１３０、表示部１４０、入力部１５０、およびメッセージ処理部１６０としてそれぞれ機能させる。
【００５８】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウエア資源とが協働した具体的手段であるメッセージ格納部１１０、コンポーネント本体格納部１２０、実行処理部１３０、表示部１４０、入力部１５０、およびメッセージ処理部１６０として機能する。そして、これらの具体的手段によって、コンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置１００が構築される。
【００５９】
一例では、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＤＶＤ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００６０】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００６１】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００６２】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００６３】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ２０９５の他に、ＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００６４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６５】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【００６６】
また、本明細書においては、マッシュアップ・アプリケーションを全体アプリケーションの一例として説明した。しかしながら、全体アプリケーションは、例えば、ユーザがアイコンをクリックすると、当該アイコンに関連付けられたアプリケーションを起動するアプリケーション・ランチャー等であってもよい。
【符号の説明】
【００６７】
１００  情報処理装置、１１０  メッセージ格納部、１２０  コンポーネント本体格納部、１３０  実行処理部、１４０  表示部、１５０  入力部、１６０  メッセージ処理部、５００  表示画面、５１０  レイアウト・コンテナ、５１２Ａ〜Ｂ  セクション・タイトル、５１４Ａ〜Ｂ  レイアウト・ペイン、６１０  コンポーネント・スタブ、６１２  コンポーネント・フレーム、６１４  コンポーネント・ベース、６１６  メッセージ、６２０  コンポーネント、６２２  インスタンス、６２４  コンポーネント・ベース、６２６  メッセージ、６２８  メッセージ、７１０Ａ〜Ｄ  レイアウト・コンテナ、７１２  コンポーネント・スタブ、７１４  コンポーネント・スタブ、７１６  コンポーネント、７１７  メッセージ、７１８  コンポーネント、７２０Ａ〜Ｄ  表示画面、７２２  セクション・タイトル、７２４  レイアウト・ペイン、７２６  セクション・タイトル、７２８  レイアウト・ペイン、８１０Ａ〜Ｄ  レイアウト・コンテナ、８２０Ａ〜Ｄ  表示画面、８２２  アイコン、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ
【図１】
2010267122.tif 000003
【図２】
2010267122.tif 000004
【図３】
2010267122.tif 000005
【図４】
2010267122.tif 000006
【図５】
2010267122.tif 000007
【図９】
2010267122.tif 000008
【図１０】
2010267122.tif 000009
【図１１】
2010267122.tif 000010
【図１２】
2010267122.tif 000011
【図１３】
2010267122.tif 000012
【図６】
2010267122.tif 000013
【図７Ａ】
2010267122.tif 000014
【図７Ｂ】
2010267122.tif 000015
【図７Ｃ】
2010267122.tif 000016
【図７Ｄ】
2010267122.tif 000017
【図８Ａ】
2010267122.tif 000018
【図８Ｂ】
2010267122.tif 000019
【図８Ｃ】
2010267122.tif 000020
【図８Ｄ】
2010267122.tif 000021