(57)【特許請求の範囲】
【請求項１】
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御プログラム。
【請求項２】
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
請求項１記載の制御プログラム。
【請求項３】
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
請求項１又は請求項２記載の制御プログラム。
【請求項４】
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定し、
該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定した場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
請求項１から請求項３の何れか１項記載の制御プログラム。
【請求項５】
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶する記憶制御部と、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記記憶制御部により記憶された呼出処理実行ファイルの命令を抽出する抽出部と、
を含む制御装置。
【請求項６】
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、制御装置、及び制御方法に関する。
【背景技術】
【０００２】
近年、単体のプログラムで顧客から要求される機能を全て実現することは困難な場合が多く、他のプログラムと連携して該機能を満たす場合が多い。
【０００３】
このような連携に関する技術として、実行ファイルとDynamic Link Library（ＤＬＬ）ファイルの少なくとも１つを含むマルチファイルで構成されたコンテンツを保存し、該マルチファイルに対するパッケージリスト情報を生成する技術が知られている。また、ＤＬＬファイルをバージョン毎に異なるディレクトリにインストールする技術も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００８−５１２７６４号公報
【特許文献２】特開２００４−０７０６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来、例えばJava（登録商標） Virtual Machine（ＪＶＭ）等のプログラムを実行する実行基盤プログラム（以下、「実行基盤」という。）は、Java等で作成されたプログラムの起動時に実行されるものであった。すなわち、実行基盤は、実行されるまで起動対象とするプログラムの格納場所等の情報を保持していないものであった。この結果、プログラムの開発者が他のプログラムと連携する機能を使用したい場合に、他のプログラムの格納場所等を知ることができず、該機能を使用できない場合があった。
【０００６】
本発明は、一つの側面として、簡易に他のプログラムと連携可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、一つの側面として、プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで実行ファイル群が生成されている。また、生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶する。そして、外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する。
【発明の効果】
【０００８】
一つの側面として、簡易に他のプログラムと連携することができる、という効果を有する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る制御装置の概略構成を示すブロック図である。
【図２】実施形態に係る端末の概略構成を示す機能ブロック図である。
【図３】実施形態に係る実行ファイル群の一例を示す図である。
【図４】外部プログラムに呼び出される命令を考慮しない場合の実行ファイル群の一例を示す図である。
【図５】プログラムＢの一例を示す図である。
【図６】実施形態に係る制御装置の概略構成を示す機能ブロック図である。
【図７】呼出処理実行ファイルの記憶先の一例を示す図である。
【図８】命令が置き換えられたプログラムＢの一例を示す図である。
【図９】入力画面の一例を示す図である。
【図１０】選択画面の一例を示す図である。
【図１１】実施形態に係る端末として機能するコンピュータの概略構成を示すブロック図である。
【図１２】実施形態に係る制御装置として機能するコンピュータの概略構成を示すブロック図である。
【図１３】実施形態に係る生成処理の一例を示すフローチャートである。
【図１４】実施形態に係る記憶処理の一例を示すフローチャートである。
【図１５】実施形態に係る抽出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。なお、本実施形態では、一例として図１に示すように、各々制御装置１０の実行基盤１２上で実行されるプログラムＡ１４の機能をプログラムＢ１６から使用する形態例について説明する。具体的には、一例として、プログラムＡ１４として銀行口座を利用するためのアプリケーション・プログラムを適用し、プログラムＢ１６として家計簿を作成するためのアプリケーション・プログラムを適用した形態例について説明する。そして、一例として、プログラムＢ１６からプログラムＡ１４の機能を使用して、銀行振り込みや銀行口座の残高照会等の処理を行う形態例について説明する。なお、制御装置１０の一例としてはスマートフォンやパーソナル・コンピュータ等が挙げられ、実行基盤１２の一例としてはJava（登録商標） Virtual Machine（ＪＶＭ）や．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ（登録商標）等が挙げられる。
【００１１】
まず、図２を参照して、プログラムＡ１４の開発者ＡがプログラムＡ１４の開発を行う端末２０の構成について説明する。
【００１２】
図２に示すように、端末２０は生成部２２を備えている。生成部２２は、開発者Ａにより作成され、プログラムＡ１４のソースコードが記載されたソースファイル２４から実行ファイル群２６を生成する。なお、ソースファイル２４には、開発者Ａにより、例えばJavaDoc等の予め定められた書式でソースファイル２４に記載されている各命令（メソッド）と、各命令の処理内容及び引数等とが関連付けられたコメントが記載されているものとする。
【００１３】
具体的には、一例として図３に示すように、生成部２２は、ソースファイル２４をコンパイルすることによって、プログラムＡ１４本体の実行ファイル２８を含む実行ファイル群２６を生成する。また、生成部２２は、実行ファイル２８とは別のファイルとして、外部に公開する命令のみを含めた呼出処理実行ファイル３０も含めて実行ファイル群２６を生成する。より具体的には、生成部２２は、実行ファイル２８から外部に公開する命令であることを示す情報を有する命令のみを抽出して呼出処理実行ファイル３０を生成する。なお、本実施形態では、外部に公開する命令であることを示す情報を有する命令として、アクセス修飾子が「public」とされた命令（図２に示す破線で囲まれた命令）を適用しているが、これに限定されない。例えば、外部に公開する命令であることを示す情報を有する命令として、インタフェースとして宣言されている命令を適用する形態としてもよい。
【００１４】
なお、生成部２２は、ソースファイル２４から外部に公開する命令であることを示す情報を有する命令のみを抽出したファイルを生成し、生成したファイルをコンパイルすることによって呼出処理実行ファイル３０を生成してもよい。
【００１５】
また、本実施形態に係る生成部２２は、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報として、呼出処理実行ファイル３０のファイル名に所定の文字列（本実施形態では、「.api」）を付与する。なお、生成部２２は、例えば、呼出処理実行ファイル３０の属性等のファイル名以外の部分に、上記特定する情報を付与してもよい。
【００１６】
さらに、本実施形態に係る生成部２２は、上記コメントに基づいて、「振り込み」等の処理内容を示す情報３２Ａと、命令３２Ｂ及び命令３２Ｂを呼び出すために必要な情報３２Ｃとを関連付けた定義ファイル３２も含めて実行ファイル群２６を生成する。ここで、本実施形態では、生成部２２は、外部に公開する命令であることを示す情報を有する命令について、上記コメントに基づいて定義ファイル３２を生成する。一例として図３に示すように、本実施形態に係る定義ファイル３２は、命令を呼び出すために必要な情報３２Ｃとして、命令を使用する際の引数の内容、及び引数の型を含む。なお、生成部２２は、定義ファイル３２にも、呼出処理実行ファイル３０と同様に、定義ファイルであることを特定する情報を付与する。このように、本実施の形態では、情報３２Ａに一種類の処理内容を示す情報を含めているが、これに限定されない。例えば、命令３２Ｂが複数種類の処理を行う命令である場合等は、情報３２Ａに複数種類の処理内容を示す情報を含めてもよい。
【００１７】
例えば、外部プログラムに呼び出される命令を考慮しない場合には、図４に示すように、ソースファイル２４に対応する実行ファイル２８が含まれる実行ファイル群２６Ａが生成される。これに対し、本実施形態では、生成部２２により、実行ファイル２８に加え、呼出処理実行ファイル３０及び定義ファイル３２を含む実行ファイル群２６が生成される。従って、開発者Ａは、従来と開発の手法を変えることなく、実行ファイル群２６を生成することができる。また、本実施形態では、外部に公開される命令のみがプログラム本体とは別ファイルとなることによって該命令を含むファイルのサイズが小さくなるため、該命令を呼び出す際の性能が向上する。
【００１８】
次に、図５を参照して、プログラムＢ１６の開発者Ｂが開発するプログラムＢ１６について説明する。図５に示すように、開発者ＢはプログラムＢ１６の開発にあたり、外部の命令（プログラムＡ１４により公開されている命令）を使用する際は、外部の命令を検索することを示す命令１６Ａを記載する。なお、命令１６Ａの第１引数は、検索対象とする処理内容を示す情報であり、第２引数以降の引数は、該処理内容を実行するために必要な情報である。また、図５では、一例として、命令１６Ａとして、銀行番号が「１００」で、口座番号が「２０１１３３３４４」で、口座の種別が「普通口座」である銀行口座に対して銀行振り込みを行う命令を適用した場合を示している。また、命令１６Ａの各引数は、プログラムＢ１６がインストールされた端末をユーザが操作して入力すること等によって定まるものである。
【００１９】
次に、図６を参照して、制御装置１０の構成について説明する。図６に示すように、制御装置１０は、特定部４０、判定部４２、記憶制御部４４、抽出部４６、及び実行部４８を備えている。また、制御装置１０の所定の記憶領域には、プログラムＡ記憶部５０、及びApplication Programming Interface（ＡＰＩ）記憶部５２が設けられている。
【００２０】
特定部４０は、プログラムＡ記憶部５０に記憶（インストール）されたプログラムＡ１４の実行ファイル群２６の各ファイルのうち、ファイル名に「.api」との文字列が含まれているファイルを呼出処理実行ファイル３０として特定する。また、特定部４０は、呼出処理実行ファイル３０と同様に、実行ファイル群２６の各ファイルから定義ファイル３２を特定する。
【００２１】
判定部４２は、特定部４０により特定された呼出処理実行ファイル３０と同一のファイルがＡＰＩ記憶部５２に記憶されているか否かを判定する。具体的には、判定部４２は、ＡＰＩ記憶部５２に呼出処理実行ファイル３０が記憶され、かつ該呼出処理実行ファイル３０と特定部４０により特定された呼出処理実行ファイル３０とのファイルのサイズが同一であるか否かを判定する。
【００２２】
なお、判定部４２は、上記同一のファイルであるか否かの判定を、ファイルのサイズではなく、ファイルのタイムスタンプ、又はＭＤ５ＳＵＭ等のチェックサムを用いて行ってもよい。また、判定部４２は、上記同一のファイルであるか否かの判定を、ファイルのサイズ、タイムスタンプ、及びチェックサム等のうちの複数を用いて行ってもよい。また、判定部４２は、呼出処理実行ファイル３０と同様に、特定部４０により特定された定義ファイル３２と同一のファイルがＡＰＩ記憶部５２に記憶されているか否かを判定する。
【００２３】
記憶制御部４４は、判定部４２により、特定部４０により特定された呼出処理実行ファイル３０と同一のファイルがＡＰＩ記憶部５２に記憶されていないと判定された場合は、該呼出処理実行ファイル３０をＡＰＩ記憶部５２に記憶（更新）する。
【００２４】
本実施形態では、ＡＰＩ記憶部５２は、実行基盤１２により参照可能な記憶領域とされている。具体的には、一例として図７に示すように、記憶制御部４４は、呼出処理実行ファイル３０を、実行基盤１２がインストールされているディレクトリ５２Ａの配下のディレクトリ５２Ｂに記憶する。ディレクトリ５２Ａの配下のディレクトリ５２Ｂは、実行基盤１２により参照可能な記憶領域（図６に示すＡＰＩ記憶部５２）の一例である。なお、図７では、ディレクトリ５２Ａの一例として、「C:\Program Files\Java\jdk」を適用し、ディレクトリ５２Ｂの一例として、「api」を適用した場合について示している。
【００２５】
一方、記憶制御部４４は、判定部４２により、特定部４０により特定された呼出処理実行ファイル３０と同一のファイルがＡＰＩ記憶部５２に記憶されていると判定された場合は、該呼出処理実行ファイル３０をＡＰＩ記憶部５２に記憶しない。また、記憶制御部４４は、呼出処理実行ファイル３０と同様に、定義ファイル３２をＡＰＩ記憶部５２に記憶する。
【００２６】
なお、本実施の形態では、以上説明した特定部４０、判定部４２、及び記憶制御部４４により行われる各処理は、プログラムＡ１４が起動される際に実行される例について説明するが、これに限定されない。例えば、特定部４０、判定部４２、及び記憶制御部４４により行われる各処理を、プログラムＡ１４のインストール時にプログラムＡ１４をバックグラウンドで起動して実行してもよい。
【００２７】
抽出部４６は、ユーザの操作により、プログラムＢ１６の命令１６Ａを実行する旨の指示が入力されると、命令１６Ａの引数とＡＰＩ記憶部５２に記憶された定義ファイル３２とに基づいて、以下の処理を行う。
【００２８】
抽出部４６は、命令１６Ａの第１引数に対応する情報３２Ａが定義ファイル３２に存在する場合、定義ファイル３２から該情報３２Ａと関連付けられている命令３２Ｂ及び情報３２Ｃを抽出する。この場合、次に抽出部４６は、命令１６Ａの第２引数以降の引数の個数と情報３２Ｃの引数の個数とが一致しているか否かを検査する。また、抽出部４６は、これらの引数の個数が一致している場合、命令１６Ａの第２引数以降の引数の型と抽出した情報３２Ｃの引数の型とが整合しているか否かを検査する（所謂型チェックを行う）。
【００２９】
そして、抽出部４６は、これらの引数の型が整合している場合、ＡＰＩ記憶部５２に記憶された呼出処理実行ファイル３０から、命令３２Ｂに対応する命令を抽出する。さらに、抽出部４６は、一例として図８に示すように、プログラムＢ１６の命令１６Ａを、抽出した命令を用いて命令１６Ｂに置き換える。図８には、図５に示す命令１６Ａが、該命令１６Ａに対応する命令１６Ｂ（transferMoney）に置き換えられた例が示されている。図８に示すように、本実施形態では、命令１６Ａが、命令１６Ａの第１引数の処理内容に対応する命令であり、かつ命令１６Ａの第２引数以降の引数が引数とされた命令１６Ｂに置き換えられる。
【００３０】
一方、抽出部４６は、上記引数の個数、又は上記引数の型が整合していない場合、抽出した情報３２Ｃに基づいて、ユーザに引数を入力させる入力画面を表示装置に表示する。図９に入力画面５６の一例を示す。図９に示すように、本実施形態に係る入力画面５６は、ユーザに対して命令１６Ａの実行に必要な情報の入力を促すメッセージ５６Ａ、該情報の入力欄５６Ｂ、及びユーザが該情報の入力後に指定するボタン５６Ｃを含む。
【００３１】
ユーザは、入力画面５６が表示装置に表示されると、入力欄５６Ｂに情報を入力し、ボタン５６Ｃを指定する。抽出部４６は、ユーザによりボタン５６Ｃが指定されると、入力欄５６Ｂに入力された情報と、抽出した情報３２Ｃとに基づいて、前述した引数の個数を検査する処理を行う。さらに、抽出部４６は、入力欄５６Ｂに入力された情報と、抽出した情報３２Ｃとに基づいて、前述した型チェック処理、及び前述した命令１６Ａを命令１６Ｂに置き換える処理を行う。
【００３２】
また、抽出部４６は、命令１６Ａの第１引数に対応する情報３２Ａが、定義ファイル３２に存在しない場合、定義ファイル３２から情報３２Ａを抽出して、ユーザに実行対象とする処理を選択させる選択画面を表示装置に表示する。図１０に選択画面５８の一例を示す。
【００３３】
図１０に示すように、本実施形態に係る選択画面５８は、ユーザに対して実行対象とする処理の選択を促すメッセージ５８Ａ、及び定義ファイル３２から抽出された情報３２Ａに対応する処理をユーザが選択するためのボタン５８Ｂを含む。ユーザは、選択画面５８が表示装置に表示されると、実行対象とする処理に対応するボタン５８Ｂを指定する。抽出部４６は、ユーザによりボタン５８Ｂが指定されると、指定されたボタン５８Ｂに対応する処理を実行する命令の引数を入力させる入力画面５６（図９参照）を表示装置に表示する。以降の処理は前述した処理と同様であるため、ここでの説明は省略する。なお、抽出部４６は、命令１６Ａの第１引数に対応する情報３２Ａが、定義ファイル３２に複数存在する場合に、定義ファイル３２から複数の情報３２Ａを抽出して、ユーザに実行対象とする処理を選択させる選択画面を表示装置に表示してもよい。また、抽出部４６は、定義ファイル３２から複数の情報３２Ａを抽出した場合は、所定のロジックに従って、１つの情報３２Ａを選択してもよい。この場合のロジックの一例として、例えば、命令１６Ａの第２引数以降の引数の個数と同じ個数の引数を有する情報３２Ｃに対応する情報３２Ａを選択するというロジックが挙げられる。
【００３４】
実行部４８は、抽出部４６により置き換えられた命令１６Ｂを実行する。
【００３５】
端末２０は、例えば図１１に示すコンピュータ６０で実現することができる。コンピュータ６０はCentral Processing Unit（ＣＰＵ）６１、一時記憶領域としてのメモリ６２、及び不揮発性の記憶部６３を備えている。また、コンピュータ６０は、入出力装置６４、記録媒体６８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部６５、及びインターネット等のネットワークに接続されるネットワークＩ／Ｆ６６を備えている。ＣＰＵ６１、メモリ６２、記憶部６３、入出力装置６４、Ｒ／Ｗ部６５、及びネットワークＩ／Ｆ６６は、バス６７を介して互いに接続されている。
【００３６】
記憶部６３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部６３には、コンピュータ６０を端末２０として機能させるための生成プログラム７０が記憶される。生成プログラム７０は、生成プロセス７１を有する。
【００３７】
ＣＰＵ６１は、生成プログラム７０を記憶部６３から読み出してメモリ６２に展開し、生成プログラム７０が有するプロセスを実行する。ＣＰＵ６１は、生成プロセス７１を実行することで、図２に示す生成部２２として動作する。これにより、生成プログラム７０を実行したコンピュータ６０が、端末２０として機能することになる。
【００３８】
制御装置１０は、例えば図１２に示すコンピュータ８０で実現することができる。コンピュータ８０はＣＰＵ８１、一時記憶領域としてのメモリ８２、及び不揮発性の記憶部８３を備えている。また、コンピュータ８０は、入出力装置８４、記録媒体８８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部８５、及びインターネット等のネットワークに接続されるネットワークＩ／Ｆ８６を備えている。ＣＰＵ８１、メモリ８２、記憶部８３、入出力装置８４、Ｒ／Ｗ部８５、及びネットワークＩ／Ｆ８６は、バス８７を介して互いに接続されている。
【００３９】
記憶部８３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部８３には、コンピュータ８０を制御装置１０として機能させるための制御プログラム９０及び実行基盤１２が記憶される。制御プログラム９０は、特定プロセス９１、判定プロセス９２、記憶制御プロセス９３、及び抽出プロセス９４を有する。実行基盤１２は、実行プロセス９５を有する。また、記憶部８３は、プログラムＡ記憶部５０として機能するプログラムＡ記憶領域９６、及びＡＰＩ記憶部５２として機能するＡＰＩ記憶領域９７を有する。
【００４０】
ＣＰＵ８１は、制御プログラム９０を記憶部８３から読み出してメモリ８２に展開し、制御プログラム９０が有するプロセスを順次実行する。また、ＣＰＵ８１は、実行基盤１２を記憶部８３から読み出してメモリ８２に展開し、実行基盤１２が有するプロセスを順次実行する。
【００４１】
ＣＰＵ８１は、特定プロセス９１を実行することで、図６に示す特定部４０として動作する。また、ＣＰＵ８１は、判定プロセス９２を実行することで、図６に示す判定部４２として動作する。また、ＣＰＵ８１は、記憶制御プロセス９３を実行することで、図６に示す記憶制御部４４として動作する。また、ＣＰＵ８１は、抽出プロセス９４を実行することで、図６に示す抽出部４６として動作する。また、ＣＰＵ８１は、実行プロセス９５を実行することで、図６に示す実行部４８として動作する。これにより、制御プログラム９０及び実行基盤１２を実行したコンピュータ８０が、制御装置１０として機能することになる。
【００４２】
なお、本実施形態では、制御プログラム９０が実行基盤１２とは別に開発され、実行基盤１２のアドインとして提供される場合について説明するが、これに限定されない。例えば、制御プログラム９０により実現される各機能部の機能を、実行基盤１２自体を修正することによって実現する形態としてもよい。この形態例の場合、実行基盤１２を実行したコンピュータ８０が、制御装置１０として機能することになる。
【００４３】
また、生成プログラム７０及び制御プログラム９０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００４４】
次に、本実施形態に係る端末２０の作用について説明する。端末２０において、開発者Ａによりソースファイル２４が作成された後に、実行ファイル群２６を生成する旨の指示が入力されると、端末２０が生成プログラム７０を実行することで、図１３に示す生成処理を実行する。
【００４５】
図１３に示す生成処理のステップ１００で、生成部２２は、ソースファイル２４をコンパイルすることによって、実行ファイル２８を生成する。次のステップ１０２で、生成部２２は、ステップ１００で生成された実行ファイル２８から外部に公開する命令であることを示す情報を有する命令のみを抽出して呼出処理実行ファイル３０を生成する。
【００４６】
次のステップ１０４で、生成部２２は、ソースファイル２４に含まれるコメントに基づいて、情報３２Ａと、命令３２Ｂ及び命令３２Ｂを呼び出すために必要な情報３２Ｃとを関連付けた定義ファイル３２を生成する。次のステップ１０６で、生成部２２は、ステップ１００〜１０４で生成された実行ファイル２８、呼出処理実行ファイル３０、及び定義ファイル３２を１つのファイルにまとめた実行ファイル群２６を生成した後、本生成処理を終了する。本生成処理で生成された実行ファイル群２６（プログラムＡ１４）が制御装置１０にインストールされることで、実行ファイル群２６がプログラムＡ記憶部５０に記憶される。なお、実行ファイル２８、呼出処理実行ファイル３０、及び定義ファイル３２を生成する順番は以上説明した例に限定されず、順番を入れ替えて生成してもよい。
【００４７】
次に、本実施形態に係る制御装置１０の作用について説明する。制御装置１０において、ユーザによりプログラムＡ１４を起動する旨の指示が入力され、実行基盤１２の起動が開始されると、制御装置１０が制御プログラム９０を実行することで、図１４に示す記憶処理を実行する。
【００４８】
図１４に示す記憶処理のステップ１３０で、特定部４０は、前述したように、プログラムＡ記憶部５０に記憶された実行ファイル群２６の各ファイルから、呼出処理実行ファイル３０及び定義ファイル３２を特定する。
【００４９】
次のステップ１３２で、判定部４２は、前述したように、ステップ１３０で特定された呼出処理実行ファイル３０と同一のファイルがＡＰＩ記憶部５２に記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップ１３４に移行する一方、肯定判定となった場合は、処理はステップ１３６に移行する。ステップ１３４で、記憶制御部４４は、ステップ１３０で特定された呼出処理実行ファイル３０をＡＰＩ記憶部５２に記憶（更新）する。
【００５０】
ステップ１３６で、記憶制御部４４は、ステップ１３２と同様に、ステップ１３０で特定された定義ファイル３２と同一のファイルがＡＰＩ記憶部５２に記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップ１３８に移行する。ステップ１３８で、記憶制御部４４は、ステップ１３０で特定された定義ファイル３２をＡＰＩ記憶部５２に記憶（更新）する。一方、ステップ１３６の判定が肯定判定となった場合は、本記憶処理は終了する。
【００５１】
一方、制御装置１０において、ユーザによりプログラムＢ１６を起動する旨の指示が入力され、実行基盤１２の起動が開始されると、制御装置１０が制御プログラム９０を実行することで、図１５に示す抽出処理を実行する。
【００５２】
ユーザは、プログラムＢ１６が起動されると、制御装置１０を操作する。そこで、図１５に示す抽出処理のステップ１４０で、抽出部４６は、プログラムＢ１６から、外部に公開されている命令の検索が要求されたか否かを判定する。ユーザによって制御装置１０が操作され、プログラムＢ１６の命令１６Ａを実行する機能が使用されると、ステップ１４０が肯定判定となり、処理はステップ１４２に移行する。
【００５３】
ステップ１４２で、抽出部４６は、命令１６Ａの第１引数に対応する情報３２Ａが定義ファイル３２に存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップ１４４に移行する一方、肯定判定となった場合は、処理はステップ１４８に移行する。ステップ１４４で、抽出部４６は、前述したように、選択画面５８を表示装置に表示する。
【００５４】
ユーザは、選択画面５８が表示装置に表示されると、実行対象とする処理に対応するボタン５８Ｂを指定する。そこで、ステップ１４６で、抽出部４６は、ユーザによりボタン５８Ｂが指定されるまで待機する。ユーザによりボタン５８Ｂが指定されると、指定されたボタン５８Ｂに対応する処理を検索する命令１６Ａが入力され、ステップ１４６が肯定判定となり、処理はステップ１４８に移行する。なお、以下では、ここで入力される命令１６Ａは、第１引数がユーザにより指定されたボタン５８Ｂに対応する処理内容を示す情報であり、第２引数以降の引数の個数が０（零）であるものとして説明する。
【００５５】
ステップ１４８で、抽出部４６は、命令１６Ａの第１引数に対応する情報３２Ａと関連付けられている命令３２Ｂ及び情報３２Ｃを定義ファイル３２から抽出する。次のステップ１５０で、抽出部４６は、命令１６Ａの第２引数以降の引数の個数と、ステップ１４８で抽出された情報３２Ｃの引数の個数とが一致しているか否かを判定する。この判定が否定判定となった場合は、処理はステップ１５４に移行する一方、肯定判定となった場合は、処理はステップ１５２に移行する。
【００５６】
ステップ１５２で、抽出部４６は、命令１６Ａの第２引数以降の引数の型とステップ１４８で抽出された情報３２Ｃの引数の型とが整合しているか否かを判定する。この判定が否定判定となった場合は、処理はステップ１５４に移行する一方、肯定判定となった場合は、処理はステップ１５８に移行する。
【００５７】
ステップ１５４で、抽出部４６は、前述したように、入力画面５６を表示装置に表示する。ユーザは、入力画面５６が表示装置に表示されると、入力欄５６Ｂに情報を入力し、ボタン５６Ｃを指定する。そこで、ステップ１５６で、抽出部４６は、ユーザによりボタン５６Ｃが指定されるまで待機する。ユーザによりボタン５６Ｃが指定されると、入力欄５６Ｂに入力された情報を第２引数以降の引数とする命令１６Ａが入力され、ステップ１５６が肯定判定となり、処理はステップ１５０に戻る。
【００５８】
一方、ステップ１５８で、抽出部４６は、ＡＰＩ記憶部５２に記憶された呼出処理実行ファイル３０から、ステップ１４８で抽出された命令３２Ｂに対応する命令を抽出する。そして、抽出部４６は、プログラムＢ１６の命令１６Ａを、抽出した命令を用いて命令１６Ｂに置き換える。次のステップ１６０で、実行部４８は、ステップ１５８で置き換えられた命令１６Ｂを実行した後、ステップ１４０に戻る。
【００５９】
一方、ステップ１４０の判定が否定判定となった場合は、処理はステップ１６２に移行する。ステップ１６２で、判定部４２は、予め定められた終了タイミングが到来したか否かを判定する。本実施形態では、判定部４２は、例えばプログラムＢ１６の実行を終了する旨の指示が入力された場合に、上記終了タイミングが到来したと判定する。本ステップ１６０の判定が否定判定となった場合は、処理はステップ１４０に戻る一方、肯定判定となった場合は、本制御処理は終了する。
【００６０】
以上説明したように、本実施形態によれば、記憶制御部４４が、呼出処理実行ファイル３０を、実行基盤１２が参照可能なＡＰＩ記憶部５２に記憶している。これにより、簡易に他のプログラムと連携することができる。
【００６１】
また、本実施形態によれば、記憶制御部４４が、呼出処理実行ファイル３０を実行基盤１２がインストールされているディレクトリ５２Ａ配下のディレクトリ５２Ｂに記憶している。これにより、オペレーティング・システムの環境変数の設定や実行基盤１２の設定等を行わなくても、実行基盤１２が呼出処理実行ファイル３０に含まれる命令を実行することができる。
【００６２】
また、本実施形態によれば、記憶制御部４４が、特定部４０により特定された呼出処理実行ファイル３０と同一のファイルがＡＰＩ記憶部５２に記憶されている場合は、呼出処理実行ファイル３０をＡＰＩ記憶部５２に記憶しない。これにより、制御装置１０による処理の負荷を低減することができる。
【００６３】
また、本実施形態によれば、呼出処理実行ファイル３０のファイル名に、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報が含まれている。これにより、簡易に呼出処理実行ファイルであることを特定することができる。
【００６４】
なお、上記実施形態では、プログラムＡ１４として銀行口座を利用するためのアプリケーション・プログラムを適用し、プログラムＢ１６として家計簿を作成するためのアプリケーション・プログラムを適用した場合について説明したが、これに限定されない。プログラムＢ１６からプログラムＡ１４の機能を使用することが可能であれば、プログラムＡ１４及びプログラムＢ１６として他のアプリケーション・プログラムを適用してもよい。
【００６５】
また、上記実施の形態では、プログラムＡ１４とプログラムＢ１６とが１対１で対応する場合について説明したが、これに限定されない。例えば、複数の異なるプログラムＡ１４の各々の機能を１つのプログラムＢ１６が使用する形態としてもよい。また、例えば、１つのプログラムＡ１４の機能を複数の異なるプログラムＢ１６が使用する形態としてもよいし、複数の異なるプログラムＡ１４の各々の機能を複数の異なるプログラムＢ１６が使用する形態としてもよい。
【００６６】
また、上記実施の形態では、記憶制御部４４が、呼出処理実行ファイル３０を実行基盤１２がインストールされているディレクトリ５２Ａ配下のディレクトリ５２Ｂに記憶する場合について説明したが、これに限定されない。記憶制御部４４が、呼出処理実行ファイル３０を、実行基盤１２が参照可能な他の記憶領域に記憶する形態としてもよい。この形態例の場合、呼出処理実行ファイル３０の記憶先をオペレーティング・システムの環境変数や実行基盤１２の設定ファイル等に設定すればよい。
【００６７】
また、上記実施形態では、定義ファイル３２を用いて情報３２Ａと命令３２Ｂ及び情報３２Ｃとを関連付ける場合について説明したが、これに限定されない。例えば、情報３２Ａと命令３２Ｂ及び情報３２Ｃとが関連付けられた検索サービスを用いる形態としてもよい。この形態例の場合、抽出部４６は、検索サービスを用いて、命令１６Ａの第１引数に対応する情報３２Ａと関連付けられている命令３２Ｂ及び情報３２Ｃを抽出すればよい。なお、この形態例では、実行ファイル群２６に定義ファイル３２は含まれていなくてもよい。また、例えば、定義ファイル３２と同じ情報を呼出処理実行ファイル３０に含めて、定義ファイル３２を生成しない形態としてもよい。
【００６８】
また、上記実施形態では、生成プログラム７０が記憶部６３に予め記憶（インストール）されている態様を説明したが、これに限定されない。生成プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【００６９】
また、上記実施形態では、制御プログラム９０及び実行基盤１２が記憶部８３に予め記憶（インストール）されている態様を説明したが、これに限定されない。本発明に係る制御プログラム、又は本発明に係る制御プログラムにより実現される機能に基づく修正を加えた実行基盤は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【００７０】
以上の実施形態に関し、更に以下の付記を開示する。
【００７１】
（付記１）
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御プログラム。
【００７２】
（付記２）
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
付記１記載の制御プログラム。
【００７３】
（付記３）
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
付記１又は付記２記載の制御プログラム。
【００７４】
（付記４）
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定し、
該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定した場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
付記１から付記３の何れか１項記載の制御プログラム。
【００７５】
（付記５）
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを、ファイルのサイズ、ファイルのタイムスタンプ、及びファイルのチェックサムの少なくとも一つを用いて判定する、
付記４記載の制御プログラム。
【００７６】
（付記６）
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶する記憶制御部と、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記記憶制御部により記憶された呼出処理実行ファイルの命令を抽出する抽出部と、
を含む制御装置。
【００７７】
（付記７）
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
付記６記載の制御装置。
【００７８】
（付記８）
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
付記６又は付記７記載の制御装置。
【００７９】
（付記９）
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定する判定部をさらに含み、
前記記憶制御部は、前記判定部により、該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定された場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
付記６から付記８の何れか１項記載の制御装置。
【００８０】
（付記１０）
前記判定部は、前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを、ファイルのサイズ、ファイルのタイムスタンプ、及びファイルのチェックサムの少なくとも一つを用いて判定する、
付記９記載の制御装置。
【００８１】
（付記１１）
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御方法。
【００８２】
（付記１２）
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
付記１１記載の制御方法。
【００８３】
（付記１３）
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
付記１１又は付記１２記載の制御方法。
【００８４】
（付記１４）
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定し、
該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定した場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
付記１１から付記１３の何れか１項記載の制御方法。
【００８５】
（付記１５）
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを、ファイルのサイズ、ファイルのタイムスタンプ、及びファイルのチェックサムの少なくとも一つを用いて判定する、
付記１４記載の制御方法。
【００８６】
（付記１６）
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御プログラムを記憶した記憶媒体。
【符号の説明】
【００８７】
１０  制御装置
１２  実行基盤
１４  プログラムＡ
１６  プログラムＢ
２０  端末
２２  生成部
２４  ソースファイル
２６  実行ファイル群
２８  実行ファイル
３０  呼出処理実行ファイル
３２  定義ファイル
４０  特定部
４２  判定部
４４  記憶制御部
４６  抽出部
４８  実行部
５０  プログラムＡ記憶部
５２  ＡＰＩ記憶部
５６  入力画面
５８  選択画面
６０  コンピュータ
６１  ＣＰＵ
６２  メモリ
６３  記憶部
６８  記録媒体
７０  生成プログラム
８１  ＣＰＵ
８２  メモリ
８３  記憶部
８８  記録媒体
９０  制御プログラム
【図１】
0006597356.tif 000002
【図２】
0006597356.tif 000003
【図３】
0006597356.tif 000004
【図４】
0006597356.tif 000005
【図５】
0006597356.tif 000006
【図６】
0006597356.tif 000007
【図７】
0006597356.tif 000008
【図８】
0006597356.tif 000009
【図９】
0006597356.tif 000010
【図１０】
0006597356.tif 000011
【図１１】
0006597356.tif 000012
【図１２】
0006597356.tif 000013
【図１３】
0006597356.tif 000014
【図１４】
0006597356.tif 000015
【図１５】
0006597356.tif 000016