(57)【要約】【課題】ロードされたプログラムを用いて開発者インタフェースを生成する方法およびシステムが開示される。【解決手段】複数のコンポーネントから構成されるプログラム（１）をロードするステップと、前記ロードされたプログラム（１）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネントを用いてプログラム（３）を生成するステップと、を含むことを特徴とする開発者インタフェース提供方法。前記ロードされたプログラム（１）およびコンポーネントを共有する１つ以上のプログラム（２）をロードするステップをさらに含んでもよい。【選択図】図２
2012014700.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンポーネントから構成されるプログラム（１）をロードするステップと、
前記ロードされたプログラム（１）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネントを用いてプログラム（３）を生成するステップと、
を含むことを特徴とする開発者インタフェース提供方法。
【請求項２】
前記ロードされたプログラム（１）およびコンポーネントを共有する１つ以上のプログラム（２）をロードするステップをさらに含むことを特徴とする請求項１に記載の開発者インタフェース提供方法。
【請求項３】
前記プログラム（３）を生成するステップは、前記プログラム（１）を構成する少なくとも１つのコンポーネントと前記プログラム（２）を構成する少なくとも１つのコンポーネントを用いて前記プログラム（３）を生成することを特徴とする請求項２に記載の開発者インタフェース提供方法。
【請求項４】
前記ロードしたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントを開発者インタフェースによって露出するステップをさらに含むことを特徴とする請求項２に記載の開発者インタフェース提供方法。
【請求項５】
前記プログラム（３）を生成するステップは、
前記開発者インタフェースによって露出されたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネント選択が入力されるステップと、
前記選択の入力された少なくとも１つのコンポーネントを結合して前記プログラム（３）を生成するステップと、
を含むことを特徴とする請求項４に記載の開発者インタフェース提供方法。
【請求項６】
前記開発者インタフェースは、ＸＭＬベースの動的開発者インタフェースであることを特徴とする請求項４に記載の開発者インタフェース提供方法。
【請求項７】
前記コンポーネントのタイプは、動的リンクライブラリおよび実行プログラムのうちいずれか１つであることを特徴とする請求項１に記載の開発者インタフェース提供方法。
【請求項８】
請求項１乃至請求項７のいずれかに記載の方法を実行するためのプログラムが記録されたコンピュータで読み出し可能な記録媒体。
【請求項９】
複数のコンポーネントから構成されるプログラム（１）をロードするプログラムロード部と、
前記ロードされたプログラム（１）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネントを用いてプログラム（３）を生成する生成部と、
を備えることを特徴とする開発者インタフェースシステム。
【請求項１０】
前記プログラムロード部は、前記ロードされたプログラム（１）およびコンポーネントを共有する１つ以上のプログラム（２）をロードすることを特徴とする請求項９に記載の開発者インタフェースシステム。
【請求項１１】
前記生成部は、前記プログラム（１）を構成する少なくとも１つのコンポーネントと前記プログラム（２）を構成する少なくとも１つのコンポーネントを用いて前記プログラム（３）を生成することを特徴とする請求項１０に記載の開発者インタフェースシステム。
【請求項１２】
前記ロードしたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントを開発者インタフェースによって露出するインタフェース露出部をさらに備えることを特徴とする請求項１０に記載の開発者インタフェースシステム。
【請求項１３】
前記生成部は、
前記開発者インタフェースによって露出されたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネント選択が入力されるコンポーネント選択部と、
前記選択の入力された少なくとも１つのコンポーネントを結合して前記プログラム（３）を生成するプログラム生成部と、
を備えることを特徴とする請求項１２に記載の開発者インタフェースシステム。
【請求項１４】
前記開発者インタフェースは、ＸＭＬベースの動的開発者インタフェースであることを特徴とする請求項１２に記載の開発者インタフェースシステム。
【請求項１５】
前記コンポーネントのタイプは、動的リンクライブラリおよび実行プログラムのうちいずれか１つであることを特徴とする請求項１０に記載の開発者インタフェースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発者インタフェース提供方法およびシステムに関し、より具体的には、コミュニケーションバスを用いて登録されたコンポーネントの実行による開発者インタフェースを提供する方法およびシステムに関する。
【背景技術】
【０００２】
ソフトウェアの開発において極めて強調されていることの１つがリユース（ｒｅｕｓｅ）性である。開発を完了したソフトウェアを他の様々なソフトウェアにおいてリユースすることは追加開発を必要としないことによる費用減少、既に使用していることによる安定性の確保など、数多い長所がある。
【０００３】
過去にソフトウェアのリユースは、コードまたはコンパイルが完了した状態のバイナリのリユースに限定されていた。プログラムの開発者は、他の開発者が製作したコードをリユースするためにソースファイルを用いて自身のプログラムと共にコンパイルしたり、プログラムファイル（ｅｘｅファイル、ｄｌｌファイル）をリユースするためにそのファイルをコピーして自身のプログラムでリユースしたりしていた。
【０００４】
しかし、必要に応じて、コード自体やｄｌｌファイルに含まれる開発が完了したコードを超えて、既にメモリにロードされ、起動している他のプログラムをリユースすることができると、より優れたリユース性を提供することができる。
【０００５】
例えば、メッセンジャープログラムが動作している状態において、ゲームプログラムがこのメッセンジャープログラムをリユースすると、ゲームプログラムがメッセンジャープログラムの中にあるログインしているユーザのユーザ情報を用いてゲームの中でログイン中のユーザ情報を活用し、ゲームの中に当該ユーザを招待することもできる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、コミュニケーションバスを用いて登録された複数のコンポーネントの間のデータを共有する方法およびシステムを提供することにある。
【０００７】
本発明の他の目的は、登録された複数のコンポーネントを実行しながら新規コンポーネントを追加する方法およびシステムを提供することにある。
【０００８】
本発明の他の目的は、コミュニケーションバスを用いて登録中であるコンポーネントの登録を取り消す方法およびシステムを提供することにある。
【０００９】
本発明の他の目的は、開発者インタフェースを活用して既にロードされたプログラムを構成するコンポーネントを用いて新しいプログラムを生成する方法およびシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係る開発者インタフェース提供方法は、複数のコンポーネントから構成されるプログラム（１）をロードするステップと、前記ロードされたプログラム（１）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネントを用いてプログラム（３）を生成するステップとを含んでもよい。
【００１１】
また、前記ロードされたプログラム（１）およびコンポーネントを共有する１つ以上のプログラム（２）をロードするステップをさらに含んでもよい。
【００１２】
また、前記プログラム（３）を生成するステップは、前記プログラム（１）を構成する少なくとも１つのコンポーネントと前記プログラム（２）を構成する少なくとも１つのコンポーネントを用いて前記プログラム（３）を生成してもよい。
【００１３】
また、前記ロードしたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントを開発者インタフェースによって露出するステップをさらに含んでもよい。
【００１４】
また、前記プログラム（３）を生成するステップは、前記開発者インタフェースによって露出されたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネント選択が入力されるステップと、前記選択の入力された少なくとも１つのコンポーネントを結合して前記プログラム（３）を生成するステップとを含んでもよい。
【００１５】
ここで、前記開発者インタフェースは、ＸＭＬベースの動的開発者インタフェースであってもよい。
【００１６】
また、前記コンポーネントのタイプは、動的リンクライブラリおよび実行プログラムのうちいずれか１つであってもよい。
【００１７】
また、本発明の一実施形態に係る開発者インタフェースシステムは、複数のコンポーネントから構成されるプログラム（１）をロードするプログラムロード部と、前記ロードされたプログラム（１）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネントを用いてプログラム（３）を生成する生成部とを備えてもよい。
【００１８】
また、前記プログラムロード部は、前記ロードされたプログラム（１）およびコンポーネントを共有する１つ以上のプログラム（２）をロードしてもよい。
【００１９】
前記生成部は、前記プログラム（１）を構成する少なくとも１つのコンポーネントと前記プログラム（２）を構成する少なくとも１つのコンポーネントを用いて前記プログラム（３）を生成してもよい。
【００２０】
また、前記ロードしたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントを開発者インタフェースによって露出するインタフェース露出部をさらに備えてもよい。
【００２１】
また、前記生成部は、前記開発者インタフェースによって露出されたプログラム（１）およびプログラム（２）を構成する複数のコンポーネントのうち少なくとも１つのコンポーネント選択が入力されるコンポーネント選択部と、前記選択の入力された少なくとも１つのコンポーネントを結合して前記プログラム（３）を生成するプログラム生成部とを備えてもよい。
【発明の効果】
【００２２】
本発明の一実施形態によると、コミュニケーションバスを用いて開発者インタフェースシステムに登録された複数のコンポーネントの間のデータを共有することができる。
【００２３】
本発明の一実施形態によると、開発者インタフェースシステムに登録された複数のコンポーネントを実行しながら新規コンポーネントを追加することができる。
【００２４】
本発明の一実施形態によると、コミュニケーションバスを用いて開発者インタフェースシステムに登録したコンポーネントの登録を取り消すことができる。
【００２５】
本発明の一実施形態によると、コミュニケーションバスを用いて開発者インタフェースシステムに登録したコンポーネントを調整することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態に係るコミュニケーションバスを用いてコンポーネントを登録する過程を説明するために提供される図である。
【図２】本発明の一実施形態に係る本発明の一実施形態に係る開発者インタフェースシステムの構成を示す図である。
【図３】本発明の一実施形態に係る開発者インタフェースシステムにおける生成部の細部構成を示す図である。
【図４】本発明の一実施形態によってロードされたプログラムを構成するコンポーネントを用いて新しいプログラムを生成する方法を説明するために提供されるフローチャートである。
【図５】本発明の一実施形態によりコミュニケーションバスを介して共有される複数のコンポーネントを用いて新しいプログラムを生成する方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態を図面を参照しながら詳細に説明する。
【００２８】
図１は、本発明の一実施形態に係るコミュニケーションバスを用いてコンポーネントを開発者インタフェースシステムに登録する過程を説明するために提供される図である。
【００２９】
図１において、コンポーネント（１）３０、コンポーネント（２）４０、およびコンポーネント（４）６０は、コミュニケーションバス２０を用いて既に開発者インタフェースシステム１０に登録された状態であり、コンポーネント（３）５０を登録しようとする場合、開発者インタフェースシステム１０は、コミュニケーションバス２０を用いてコンポーネント（３）５０を登録してもよい。
【００３０】
ここで、開発者インタフェースシステム１０は、コンポーネント（３）５０が新規に登録されたことをコンポーネント（１）３０、コンポーネント（２）４０、およびコンポーネント（４）６０に通知してもよい。これによって、コミュニケーションバス２０を介して既に開発者インタフェースシステム１０登録されたコンポーネント（１）３０、コンポーネント（２）４０、およびコンポーネント（４）６０と、新規に開発者インタフェースシステム１０に登録されたコンポーネント（３）５０が互いに共有してもよい。一例として、コンポーネント（１）、コンポーネント（２）、およびコンポーネント（４）を構成している各データと新規に登録されたコンポーネント（３）５０を構成しているデータとをコミュニケーションバス２０を介して互いに共有してもよい。ここで、コンポーネント（１）３０〜コンポーネント（４）６０を構成するデータはＸＭＬ形式のデータであってもよい。ここで、ＸＭＬ形式のデータは、ＤＴＤ（Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）を用いて定義される。
【００３１】
図２は、本発明の一実施形態に係る開発者インタフェースシステムの構成を示す図である。
【００３２】
図２に示すように、開発者インタフェースシステム２００は、コンポーネント登録部２１０、コンポーネント共有部２２０、登録取消し部２３０、プログラムロード部２４０、および生成部２５０を備えてもよい。
【００３３】
コンポーネント登録部２１０は、コミュニケーションバス（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｕｓ）３００を用いて１つ以上のコンポーネントを開発者インタフェースシステム２００に登録してもよい。ここで、コンポーネントは、クライアントで動作する複数のサービスに該当するプログラムを構成するモジュールである。すなわち、プログラムは、複数のコンポーネントで構成してもよい。ここで、プログラムはゲーム、メッセンジャー、ブログなどを含み、コンポーネントはゲーム、メッセンジャー、ブログなどのプログラムを構成するためのウェブページ、アバター、背景、テキスト、音楽、およびゲームアイテムなどのモジュールを備えてもよい。
【００３４】
一例として、コンポーネント（１）４１０およびコンポーネント（２）４２０はプログラム（１）を構成するモジュールであり、コンポーネント（３）４３０およびコンポーネント（４）４４０はプログラム（２）を構成するモジュールであってもよい。ここで、コンポーネント（１）４１０およびコンポーネント（２）４２０は既に登録されており、コンポーネント（３）４３０を新規に登録する場合、コンポーネント登録部２１０は、コミュニケーションバス３００を用いてコンポーネント（３）４３０を新規に登録してもよい。そして、コンポーネント登録部２１０は、コンポーネント（３）４３０が新規に登録されたことをコミュニケーションバス３００を用いてコンポーネント（１）４１０、コンポーネント（２）４２０に通知してもよい。
【００３５】
また、コンポーネント登録部２１０は、登録された少なくとも１つのコンポーネントが実行中である場合に、新規コンポーネントを追加してもよい。
【００３６】
これによって、コンポーネント共有部２２０は、コミュニケーションバス３００を用いて開発者インタフェースシステム２００に登録されたコンポーネントを互いに共有してもよい。一例として、コンポーネント共有部２２０は、登録されたコンポーネントを構成するＸＭＬ形式のデータをコミュニケーションバス３００を介して共有してもよい。図２によると、コンポーネント共有部２２０は、１つのランチャー（ｌａｕｎｃｈｅｒ）でコンポーネント（１）４１０〜コンポーネント（４）４４０が有するデータをコミュニケーションバス３００を用いて共有してもよい。このために、コンポーネント共有部２２０は、登録されたコンポーネントから受信したデータをコミュニケーションバス３００を介して他のコンポーネントに送信してもよい。
【００３７】
一例として、ゲームのプログラム（１）４１００を構成するコンポーネント（１）４１０およびコンポーネント（２）４２０とメッセンジャー（ｍｅｓｓｅｎｇｅｒ）のプログラム（２）４２００を構成するコンポーネント（３）４３０およびコンポーネント（４）４４０がコミュニケーションバス３００を介して共有される場合、開発者インタフェースシステム２００は、メッセンジャーにユーザがログインしたことをゲーム上に表示してもよい。ここで、コンポーネント（３）４３０はメッセンジャーログ情報に該当するモジュールであり、コンポーネント（４）４４０はメッセンジャー顔文字、フォントに該当するデザインモジュールである場合、コンポーネント（３）４３０は、メッセンジャーに登録されたユーザがメッセンジャーにログインするたびにメッセンジャーログ情報をコミュニケーションバス３００にブロードキャストしてもよい。これによって、コンポーネント（３）４３０は、ユーザがメッセンジャーにログインするたびにメッセンジャー情報をコンポーネント（１）４１０およびコンポーネント（２）４２０に送信する場合にコンポーネント（３）を修正する必要がない。
【００３８】
そして、コンポーネント共有部２２０は、コミュニケーションバス３００を介して受信したメッセンジャーログ情報をコミュニケーションバス３００を用いてコンポーネント（１）４１０およびコンポーネント（２）４２０に送信してもよい。これによって、ゲーム上にメッセンジャーへとユーザがログインしたことに関する情報を表示してもよい。これによって、コンポーネント（１）４１０およびコンポーネント（２）４２０は、提供されるライブラリをそのまま用いてメッセンジャー情報を受信してもよい。すなわち、コンポーネント（１）４１０およびコンポーネント（２）４２０から構成されたプログラム（１）４１００は、メッセンジャーログ情報を受信するためのプロトコルを設計したり、あるいはコードを開発したりしなくてもよい。
【００３９】
他の例として、ゲームのプログラム（１）４１００がコンポーネント（１）４１０およびコンポーネント（２）４２０に構成され、ブログのプログラム（３）とコンポーネントを共有する場合、コンポーネント（１）４１０は、動作しているゲームの現在の画面をキャプチャー（ｃａｐｔｕｒｅ）してコミュニケーションバス３００に送信してもよい。これによって、コンポーネント共有部２２０は、受信したキャプチャー画面をコミュニケーションバス３００を用いてプログラム（３）を構成しているコンポーネントに送信してもよい。これによって、ブログにはキャプチャー画面がアップロードされてもよい。
【００４０】
また他の例として、ゲームのプログラム（１）４１００とウェブページのプログラム（４）を構成しているコンポーネントが共有される場合、プログラム（１）４１００を構成するコンポーネント（１）４１０は、クエスト（ｑｕｅｓｔ）実行に関連するウェブページ要求データをコミュニケーションバス３００に送信してもよい。これによって、コンポーネント共有部２２０は、コミュニケーションバス３００を介してウェブページ要求データを受信し、受信したウェブページ要求データをコミュニケーションバス３００を用いてプログラム４を構成するコンポーネントに送信してもよい。そして、コンポーネント共有部２２０は、プログラム（４）でコミュニケーションバス３００を介して受信したウェブページをコミュニケーションバス３００を用いてプログラム（１）４１００を構成するコンポーネント（１）４１０およびコンポーネント（２）４２０のうち少なくとも１つに送信してもよい。これによって、ゲーム上にクエスト実行に関連するウェブページが表示されてもよい。
【００４１】
登録取消し部２３０は、登録されている新規コンポーネントの登録取消しが要求されると、新規コンポーネントの登録を取り消してもよい。ここで、新規コンポーネントの登録が取消されても、実行されているコンポーネントについては実行を終了することなく引き続き実行される。
【００４２】
プログラムロード部２４０は、登録されたコンポーネントを構成するプログラムをロードしてもよい。ここで、プログラムロード部２４０は、登録されたコンポーネントを構成するプログラムのうちいずれか１つのプログラムをロードした状態で、他の登録コンポーネントを構成しているプログラムをロードしてもよい。ここで、登録されたコンポーネントは、コミュニケーションバス３００を介して共有されるため、プログラムロード部２４０は、コミュニケーションバス３００を介して第１プログラム４１００とコンポーネントを共有する１つ以上のプログラムをロードしてもよい。
【００４３】
一例として、プログラムロード部２４０は、ゲームのプログラム（１）４１００をロードしている状態で、メッセンジャーのプログラム（２）４２００をロードしてもよい。ここで、プログラム（１）４１００がメインに実行される状態において、プログラム（２）４２００はプログラム（１）４１００に従属して実行されてもよい。すなわち、プログラム（１）をメインとする１つのランチャーで複数のプログラムが実行されてもよい。
【００４４】
生成部２５０は、ロードされたプログラムを構成するコンポーネントを用いて新しいプログラムを生成してもよい。一例として、プログラム（１）４１００がロードされた場合、生成部２５０は、プログラム（１）４１００を構成するコンポーネント（１）４１０およびコンポーネント（２）４２０のうち少なくとも１つを用いてプログラム（３）を生成してもよい。
【００４５】
また、複数のプログラムがロードされた場合、生成部２５０は、複数のプログラムを構成するコンポーネントを用いて新しいプログラムを生成してもよい。
【００４６】
一例として、プログラム（１）４１００およびプログラム（２）４２００がロードされた場合、生成部２５０は、プログラム（１）４１００を構成する複数のコンポーネントおよびプログラム（２）４２００を構成する複数のコンポーネントのいずれか１つ以上のコンポーネントを選択してもよい。そして、生成部２５０は、選択したコンポーネントを結合して新しいプログラム（３）を生成してもよい。
【００４７】
ここで、生成部２５０は、プログラム（３）を生成するために求められる１つ以上の新規コンポーネントを生成してもよい。これによって、生成部２５０は、生成した新規コンポーネントと選択したコンポーネントとを結合してプログラム（３）を生成してもよい。
【００４８】
以下では図３を参照して、ロードされたプログラムを構成するコンポーネントを用いて新しいプログラムを生成する過程について詳説する。
【００４９】
図３は、本発明の一実施形態に係る開発者インタフェースシステムにおける生成部の細部構成を示す図である。
【００５０】
図３を参照すると、生成部２５０は、インタフェース露出部２５１、コンポーネント選択部２５２、プログラム生成部２５３を備えてもよい。
【００５１】
インタフェース露出部２５１は、ロードされた１つ以上のプログラムを構成するコンポーネントを開発者インタフェースによって開発者に露出してもよい。ここで、プログラムを構成するコンポーネントのタイプは、動的リンクライブラリ（Ｄｙｎａｍｉｃ  Ｌｉｎｋｅｄ  Ｌｉｂｒａｒｙ：ＤＬＬ）および実行プログラム（Ｅｘｅｃｕｔｅ  Ｐｒｏｇｒａｍ：ＥＸＥ）のうちのいずれか１つであってもよい。
【００５２】
一例として、プログラムロード部２４０においてプログラム（１）４１００をロードする場合、インタフェース露出部２５１は、プログラム（１）４１００を構成する複数のコンポーネントを開発者インタフェースによって露出してもよい。すなわち、インタフェース露出部２５１は、開発者インタフェースによってコンポーネント（１）４１０およびコンポーネント（２）４２０を露出してもよい。
【００５３】
他の例として、プログラムロード部２４０においてプログラム（１）およびプログラム（２）をロードする場合、インタフェース露出部２５１は、プログラム（１）４１００およびプログラム（２）４２００を構成する複数のコンポーネントを開発者インタフェースによって露出してもよい。すなわち、インタフェース露出部２５１は、開発者インタフェースによってコンポーネント（１）４１０〜コンポーネント（４）４４０を開発者に露出してもよい。
【００５４】
コンポーネント選択部２５２は、開発者インタフェースによって露出されたコンポーネントのいずれか１つ以上のコンポーネントを選択してもよい。ここで、コンポーネント選択部２５２は、露出されたコンポーネントのうち新しいプログラム（３）を生成するために必要なコンポーネント選択を開発者から入力されてもよい。ここで、開発者インタフェースとしてＸＭＬベースの動的開発者インタフェースを用いてもよい。
【００５５】
一例として、コンポーネント（１）４１０はゲームのプログラム（１）４１００のウェブ制御モジュールであり、コンポーネント（２）４２０はプログラム（１）４１００の画面大きさ調整モジュールであり、コンポーネント（３）４３０はメッセンジャーのプログラム（２）４２００のメッセンジャーログ情報に対するモジュールであり、コンポーネント（４）４４０はプログラム（２）４２００のデザインモジュールである場合、コンポーネント選択部２５２は、開発者インタフェースによって露出されたコンポーネント（１）４１０〜コンポーネント（４）４４０のうち、コンポーネント（２）４２０およびコンポーネント（４）４４０の選択が入力されてもよい。
【００５６】
これによって、プログラム生成部２５３は、選択されたコンポーネント（２）４２０とコンポーネント（４）４４０とを結合して新しいプログラム（３）を生成してもよい。
【００５７】
図４は、本発明の一実施形態によってロードされたプログラムを構成するコンポーネントを用いて新しいプログラムを生成する方法を説明するためのフローチャートである。
【００５８】
まず、プログラムロード部２４０は、開発者インターフェースシステムに登録されたコンポーネントを構成する１つ以上のプログラムをロードしてもよい。一例として、プログラム（１）４１００およびプログラム（２）４２００が登録された場合、プログラムロード部２４０は、プログラム（１）をロードしてもよい（Ｓ５１０）。ここで、プログラム（１）４１００は、コンポーネント（１）４１０およびコンポーネント（２）４２０で構成され、プログラム（２）４２００はコンポーネント（３）４３０およびコンポーネント（４）４４０で構成されてもよい。ここで、登録されたコンポーネント（１）４１０〜コンポーネント（４）４４０をコミュニケーションバス３００を介して共有してもよい。
【００５９】
次に、インタフェース露出部２５１は、ロードされたプログラムを構成するコンポーネントを開発者インタフェースによって開発者に露出してもよい（Ｓ５２０）。一例として、インタフェース露出部２５１は、プログラム（１）４１００を構成するコンポーネント（１）４１０およびコンポーネント（２）４２０を開発者インタフェースによって露出されてもよい。
【００６０】
そして、コンポーネント選択部２５２は、露出されたコンポーネントのうち１つ以上のコンポーネント選択を入力してもよい。一例として、コンポーネント選択部２５２は、露出されたコンポーネント１および２４１０，４２０のうち、コンポーネント（２）４２０の選択を開発者から入力されてもよい。
【００６１】
これによって、プログラム生成部２５３は、選択されたコンポーネントを用いて新しいプログラムを生成してもよい。一例として、プログラム生成部２５３は、選択されたコンポーネント（２）４２０を用いて新しいプログラム（３）を生成してもよい（Ｓ５３０）。ここで、複数のコンポーネント選択が入力された場合、プログラム生成部２５３は、選択された複数のコンポーネントを結合して新しいプログラム（３）を生成してもよい。
【００６２】
また、プログラム生成部２５３は、プログラム（３）を生成するために必要な１つ以上の新規コンポーネントを生成してもよい。これによって、プログラム生成部２５３は、生成した新規コンポーネントと選択されたコンポーネントとを結合して新しいプログラム（３）を生成してもよい。
【００６３】
上記において、図４を参照して１つのプログラムがロードされた場合に開発者インタフェースによって新しいプログラムを生成する過程について説明した。以下では、図５を参照して、複数のプログラムがロードされた場合に開発者インタフェースによって新しいプログラムを生成する過程について説明する。
【００６４】
図５は、本発明の一実施形態によってコミュニケーションバスを介して共有される複数のコンポーネントを用いて新しいプログラムを生成する方法を説明するためのフローチャートである。
【００６５】
図５によると、プログラムロード部２４０は、登録されたコンポーネントにより構成される複数のプログラムをロードしてもよい。一例として、プログラム（１）４１００がロードされた場合、プログラムロード部２４０は、プログラム（１）４１００にプログラム（２）４２００をロードしてもよい（Ｓ６１０）。すなわち、プログラムロード部２４０は、プログラム（１）４１００をメインにして実行するランチャーでプログラム（２）４２００を付加的に実行してもよい。
【００６６】
これによって、インタフェース露出部２５１は、ロードされたプログラム（１）４１００を構成しているコンポーネントとプログラム（２）４２００を構成するコンポーネントとを開発者インタフェースによって露出してもよい（Ｓ６２０）。ここで、開発者インタフェースでは、ＸＭＬベースの動的開発者インタフェースを用いてもよい。
【００６７】
一例として、インタフェース露出部２５１は、第１コンポーネント４１０〜第４コンポーネント４４０を開発者インタフェースによって開発者に露出してもよい。ここで、露出されるコンポーネントのタイプは、動的ライブラリ（ＤＬＬ）および実行プログラム（ＥＸＥ）のうちのいずれか１つであってもよい。
【００６８】
次に、コンポーネント選択部２５２は、露出されたコンポーネントのうち１つ以上のコンポーネント選択が入力されてもよい。
【００６９】
これによって、プログラム生成部２５２は、選択されたコンポーネントを用いて新しいプログラムを生成してもよい（Ｓ６３０）。一例として、コンポーネント（２）およびコンポーネント（３）が選択された場合、プログラム生成部２５２はコンポーネント（２）およびコンポーネント（３）を結合してプログラム（３）を生成してもよい。
【００７０】
ここで、プログラム生成部２５２は、プログラム（３）を生成するために必要な新規コンポーネントを生成してもよい。これによって、プログラム生成部２５３は、生成した新規コンポーネントと選択されたコンポーネントとを結合して新しいプログラム（３）を生成してもよい。これによって、開発者が実行中であるプログラムにロードされたコンポーネントを制御する開発者インタフェースを提供し、開発者インタフェースによって選択されたコンポーネントを結合して新しいプログラムを生成することでコンポーネントをリユースすることができる。
【００７１】
以上、上記に説明したように、プログラムを構成するコンポーネントは、ウェブ制御、画面大きさ調整、メッセンジャーログ情報、デザインに対するモジュールにより構成されるだけではなく、背景音楽の制御（ｍｕｓｉｃ  ｃｏｎｔｒｏｌ）、画面のスキン（ｓｋｉｎ）変更、ボタン制御（ｂｕｔｔｏｎ  ｃｏｎｔｒｏｌ）、テキスト制御（ｔｅｘｔ  ｃｏｎｔｒｏｌ）、およびタブ制御（ｔａｂ  ｃｏｎｔｒｏｌ）に対するモジュールにより構成されてもよい。これによって、開発者が希望するコンポーネントを選択して結合することにより、新しいプログラムを容易かつ迅速に生成することができる。
【００７２】
一方、本発明の一実施形態に係る開発者インタフェースシステム２００において、登録されたコンポーネントのデータを直列化（ｓｅｒｉａｌｉｚｅ）または暗号化し、コミュニケーションバス３００を介してコンポーネント共有部２２０に送信してもよい。これによって、コンポーネント共有部２２０は、直列化または暗号化されたデータを他のコンポーネントに送信してもよい。ここで、コミュニケーションバス３００を介して直列化または暗号化されたデータを受信したコンポーネントのデータの直列化を解除したり、あるいは解読することができる。
【００７３】
他方において、以上では新規にコンポーネントを登録し、コミュニケーションバスを用いて登録されたコンポーネントと既に登録されたコンポーネントとの間でデータを共有する過程について説明したが、その他に、本発明の一実施形態に係る開発者インタフェースシステム２００は、既に登録されたコンポーネントのうち、登録解除を要求したコンポーネントを解除するコンポーネント登録解除部をさらに備えてもよい。これによって、既に登録されたコンポーネントは、登録を解除されたコンポーネントとの間では登録解除後はデータを共有しないよう構成してもよい。
【００７４】
本発明の実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態において実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などの単独または組み合わせたものを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるような機械語コード（ｍａｃｈｉｎｅ  ｃｏｄｅ）だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード（ｈｉｇｈｅｒ  ｌｅｖｅｌ  ｃｏｄｅ）を含む。上述したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェア階層で作動するように構成されてもよい。
【００７５】
上述したように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【００７６】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによっても定められるものである。
【符号の説明】
【００７７】
２００      開発者インタフェースシステム
２１０      コンポーネント登録部
２２０      コンポーネント共有部
２３０      登録取消し部
２４０      プログラムロード部
２５０      生成部
２５１      インタフェース露出部
２５２      コンポーネント選択部
２５３      プログラム生成部
３００      コミュニケーションバス
【図１】
2012014700.tif 000003
【図２】
2012014700.tif 000004
【図３】
2012014700.tif 000005
【図４】
2012014700.tif 000006
【図５】
2012014700.tif 000007