JP2017142574A - 制御プログラム、制御装置、及び制御方法 - Google Patents

制御プログラム、制御装置、及び制御方法 Download PDF

Info

Publication number
JP2017142574A
JP2017142574A JP2016021954A JP2016021954A JP2017142574A JP 2017142574 A JP2017142574 A JP 2017142574A JP 2016021954 A JP2016021954 A JP 2016021954A JP 2016021954 A JP2016021954 A JP 2016021954A JP 2017142574 A JP2017142574 A JP 2017142574A
Authority
JP
Japan
Prior art keywords
program
file
execution file
instruction
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016021954A
Other languages
English (en)
Other versions
JP6597356B2 (ja
Inventor
敬史 酒井
Keiji Sakai
敬史 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016021954A priority Critical patent/JP6597356B2/ja
Priority to US15/361,548 priority patent/US10310871B2/en
Publication of JP2017142574A publication Critical patent/JP2017142574A/ja
Application granted granted Critical
Publication of JP6597356B2 publication Critical patent/JP6597356B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】簡易に他のプログラムと連携可能とする。【解決手段】記憶制御部44が、プログラムの実行ファイル28と、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する呼出処理実行ファイル30と、を含んで生成された実行ファイル群26のプログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイル30を、プログラムを実行する実行基盤プログラムが参照可能なAPI記憶部52に記憶し、抽出部46が、外部プログラムによる検索の要求に応じて、API記憶部52を参照して、前記要求に対応する呼出処理実行ファイル30の命令を抽出する。【選択図】図6

Description

本発明は、制御プログラム、制御装置、及び制御方法に関する。
近年、単体のプログラムで顧客から要求される機能を全て実現することは困難な場合が多く、他のプログラムと連携して該機能を満たす場合が多い。
このような連携に関する技術として、実行ファイルとDynamic Link Library(DLL)ファイルの少なくとも1つを含むマルチファイルで構成されたコンテンツを保存し、該マルチファイルに対するパッケージリスト情報を生成する技術が知られている。また、DLLファイルをバージョン毎に異なるディレクトリにインストールする技術も知られている。
特表2008−512764号公報 特開2004−070617号公報
ところで、従来、例えばJava(登録商標) Virtual Machine(JVM)等のプログラムを実行する実行基盤プログラム(以下、「実行基盤」という。)は、Java等で作成されたプログラムの起動時に実行されるものであった。すなわち、実行基盤は、実行されるまで起動対象とするプログラムの格納場所等の情報を保持していないものであった。この結果、プログラムの開発者が他のプログラムと連携する機能を使用したい場合に、他のプログラムの格納場所等を知ることができず、該機能を使用できない場合があった。
本発明は、一つの側面として、簡易に他のプログラムと連携可能とすることを目的とする。
本発明は、一つの側面として、プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで実行ファイル群が生成されている。また、生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶する。そして、外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する。
一つの側面として、簡易に他のプログラムと連携することができる、という効果を有する。
実施形態に係る制御装置の概略構成を示すブロック図である。 実施形態に係る端末の概略構成を示す機能ブロック図である。 実施形態に係る実行ファイル群の一例を示す図である。 外部プログラムに呼び出される命令を考慮しない場合の実行ファイル群の一例を示す図である。 プログラムBの一例を示す図である。 実施形態に係る制御装置の概略構成を示す機能ブロック図である。 呼出処理実行ファイルの記憶先の一例を示す図である。 命令が置き換えられたプログラムBの一例を示す図である。 入力画面の一例を示す図である。 選択画面の一例を示す図である。 実施形態に係る端末として機能するコンピュータの概略構成を示すブロック図である。 実施形態に係る制御装置として機能するコンピュータの概略構成を示すブロック図である。 実施形態に係る生成処理の一例を示すフローチャートである。 実施形態に係る記憶処理の一例を示すフローチャートである。 実施形態に係る抽出処理の一例を示すフローチャートである。
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。なお、本実施形態では、一例として図1に示すように、各々制御装置10の実行基盤12上で実行されるプログラムA14の機能をプログラムB16から使用する形態例について説明する。具体的には、一例として、プログラムA14として銀行口座を利用するためのアプリケーション・プログラムを適用し、プログラムB16として家計簿を作成するためのアプリケーション・プログラムを適用した形態例について説明する。そして、一例として、プログラムB16からプログラムA14の機能を使用して、銀行振り込みや銀行口座の残高照会等の処理を行う形態例について説明する。なお、制御装置10の一例としてはスマートフォンやパーソナル・コンピュータ等が挙げられ、実行基盤12の一例としてはJava(登録商標) Virtual Machine(JVM)や.NET Framework(登録商標)等が挙げられる。
まず、図2を参照して、プログラムA14の開発者AがプログラムA14の開発を行う端末20の構成について説明する。
図2に示すように、端末20は生成部22を備えている。生成部22は、開発者Aにより作成され、プログラムA14のソースコードが記載されたソースファイル24から実行ファイル群26を生成する。なお、ソースファイル24には、開発者Aにより、例えばJavaDoc等の予め定められた書式でソースファイル24に記載されている各命令(メソッド)と、各命令の処理内容及び引数等とが関連付けられたコメントが記載されているものとする。
具体的には、一例として図3に示すように、生成部22は、ソースファイル24をコンパイルすることによって、プログラムA14本体の実行ファイル28を含む実行ファイル群26を生成する。また、生成部22は、実行ファイル28とは別のファイルとして、外部に公開する命令のみを含めた呼出処理実行ファイル30も含めて実行ファイル群26を生成する。より具体的には、生成部22は、実行ファイル28から外部に公開する命令であることを示す情報を有する命令のみを抽出して呼出処理実行ファイル30を生成する。なお、本実施形態では、外部に公開する命令であることを示す情報を有する命令として、アクセス修飾子が「public」とされた命令(図2に示す破線で囲まれた命令)を適用しているが、これに限定されない。例えば、外部に公開する命令であることを示す情報を有する命令として、インタフェースとして宣言されている命令を適用する形態としてもよい。
なお、生成部22は、ソースファイル24から外部に公開する命令であることを示す情報を有する命令のみを抽出したファイルを生成し、生成したファイルをコンパイルすることによって呼出処理実行ファイル30を生成してもよい。
また、本実施形態に係る生成部22は、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報として、呼出処理実行ファイル30のファイル名に所定の文字列(本実施形態では、「.api」)を付与する。なお、生成部22は、例えば、呼出処理実行ファイル30の属性等のファイル名以外の部分に、上記特定する情報を付与してもよい。
さらに、本実施形態に係る生成部22は、上記コメントに基づいて、「振り込み」等の処理内容を示す情報32Aと、命令32B及び命令32Bを呼び出すために必要な情報32Cとを関連付けた定義ファイル32も含めて実行ファイル群26を生成する。ここで、本実施形態では、生成部22は、外部に公開する命令であることを示す情報を有する命令について、上記コメントに基づいて定義ファイル32を生成する。一例として図3に示すように、本実施形態に係る定義ファイル32は、命令を呼び出すために必要な情報32Cとして、命令を使用する際の引数の内容、及び引数の型を含む。なお、生成部22は、定義ファイル32にも、呼出処理実行ファイル30と同様に、定義ファイルであることを特定する情報を付与する。このように、本実施の形態では、情報32Aに一種類の処理内容を示す情報を含めているが、これに限定されない。例えば、命令32Bが複数種類の処理を行う命令である場合等は、情報32Aに複数種類の処理内容を示す情報を含めてもよい。
例えば、外部プログラムに呼び出される命令を考慮しない場合には、図4に示すように、ソースファイル24に対応する実行ファイル28が含まれる実行ファイル群26Aが生成される。これに対し、本実施形態では、生成部22により、実行ファイル28に加え、呼出処理実行ファイル30及び定義ファイル32を含む実行ファイル群26が生成される。従って、開発者Aは、従来と開発の手法を変えることなく、実行ファイル群26を生成することができる。また、本実施形態では、外部に公開される命令のみがプログラム本体とは別ファイルとなることによって該命令を含むファイルのサイズが小さくなるため、該命令を呼び出す際の性能が向上する。
次に、図5を参照して、プログラムB16の開発者Bが開発するプログラムB16について説明する。図5に示すように、開発者BはプログラムB16の開発にあたり、外部の命令(プログラムA14により公開されている命令)を使用する際は、外部の命令を検索することを示す命令16Aを記載する。なお、命令16Aの第1引数は、検索対象とする処理内容を示す情報であり、第2引数以降の引数は、該処理内容を実行するために必要な情報である。また、図5では、一例として、命令16Aとして、銀行番号が「100」で、口座番号が「201133344」で、口座の種別が「普通口座」である銀行口座に対して銀行振り込みを行う命令を適用した場合を示している。また、命令16Aの各引数は、プログラムB16がインストールされた端末をユーザが操作して入力すること等によって定まるものである。
次に、図6を参照して、制御装置10の構成について説明する。図6に示すように、制御装置10は、特定部40、判定部42、記憶制御部44、抽出部46、及び実行部48を備えている。また、制御装置10の所定の記憶領域には、プログラムA記憶部50、及びApplication Programming Interface(API)記憶部52が設けられている。
特定部40は、プログラムA記憶部50に記憶(インストール)されたプログラムA14の実行ファイル群26の各ファイルのうち、ファイル名に「.api」との文字列が含まれているファイルを呼出処理実行ファイル30として特定する。また、特定部40は、呼出処理実行ファイル30と同様に、実行ファイル群26の各ファイルから定義ファイル32を特定する。
判定部42は、特定部40により特定された呼出処理実行ファイル30と同一のファイルがAPI記憶部52に記憶されているか否かを判定する。具体的には、判定部42は、API記憶部52に呼出処理実行ファイル30が記憶され、かつ該呼出処理実行ファイル30と特定部40により特定された呼出処理実行ファイル30とのファイルのサイズが同一であるか否かを判定する。
なお、判定部42は、上記同一のファイルであるか否かの判定を、ファイルのサイズではなく、ファイルのタイムスタンプ、又はMD5SUM等のチェックサムを用いて行ってもよい。また、判定部42は、上記同一のファイルであるか否かの判定を、ファイルのサイズ、タイムスタンプ、及びチェックサム等のうちの複数を用いて行ってもよい。また、判定部42は、呼出処理実行ファイル30と同様に、特定部40により特定された定義ファイル32と同一のファイルがAPI記憶部52に記憶されているか否かを判定する。
記憶制御部44は、判定部42により、特定部40により特定された呼出処理実行ファイル30と同一のファイルがAPI記憶部52に記憶されていないと判定された場合は、該呼出処理実行ファイル30をAPI記憶部52に記憶(更新)する。
本実施形態では、API記憶部52は、実行基盤12により参照可能な記憶領域とされている。具体的には、一例として図7に示すように、記憶制御部44は、呼出処理実行ファイル30を、実行基盤12がインストールされているディレクトリ52Aの配下のディレクトリ52Bに記憶する。ディレクトリ52Aの配下のディレクトリ52Bは、実行基盤12により参照可能な記憶領域(図6に示すAPI記憶部52)の一例である。なお、図7では、ディレクトリ52Aの一例として、「C:\Program Files\Java\jdk」を適用し、ディレクトリ52Bの一例として、「api」を適用した場合について示している。
一方、記憶制御部44は、判定部42により、特定部40により特定された呼出処理実行ファイル30と同一のファイルがAPI記憶部52に記憶されていると判定された場合は、該呼出処理実行ファイル30をAPI記憶部52に記憶しない。また、記憶制御部44は、呼出処理実行ファイル30と同様に、定義ファイル32をAPI記憶部52に記憶する。
なお、本実施の形態では、以上説明した特定部40、判定部42、及び記憶制御部44により行われる各処理は、プログラムA14が起動される際に実行される例について説明するが、これに限定されない。例えば、特定部40、判定部42、及び記憶制御部44により行われる各処理を、プログラムA14のインストール時にプログラムA14をバックグラウンドで起動して実行してもよい。
抽出部46は、ユーザの操作により、プログラムB16の命令16Aを実行する旨の指示が入力されると、命令16Aの引数とAPI記憶部52に記憶された定義ファイル32とに基づいて、以下の処理を行う。
抽出部46は、命令16Aの第1引数に対応する情報32Aが定義ファイル32に存在する場合、定義ファイル32から該情報32Aと関連付けられている命令32B及び情報32Cを抽出する。この場合、次に抽出部46は、命令16Aの第2引数以降の引数の個数と情報32Cの引数の個数とが一致しているか否かを検査する。また、抽出部46は、これらの引数の個数が一致している場合、命令16Aの第2引数以降の引数の型と抽出した情報32Cの引数の型とが整合しているか否かを検査する(所謂型チェックを行う)。
そして、抽出部46は、これらの引数の型が整合している場合、API記憶部52に記憶された呼出処理実行ファイル30から、命令32Bに対応する命令を抽出する。さらに、抽出部46は、一例として図8に示すように、プログラムB16の命令16Aを、抽出した命令を用いて命令16Bに置き換える。図8には、図5に示す命令16Aが、該命令16Aに対応する命令16B(transferMoney)に置き換えられた例が示されている。図8に示すように、本実施形態では、命令16Aが、命令16Aの第1引数の処理内容に対応する命令であり、かつ命令16Aの第2引数以降の引数が引数とされた命令16Bに置き換えられる。
一方、抽出部46は、上記引数の個数、又は上記引数の型が整合していない場合、抽出した情報32Cに基づいて、ユーザに引数を入力させる入力画面を表示装置に表示する。図9に入力画面56の一例を示す。図9に示すように、本実施形態に係る入力画面56は、ユーザに対して命令16Aの実行に必要な情報の入力を促すメッセージ56A、該情報の入力欄56B、及びユーザが該情報の入力後に指定するボタン56Cを含む。
ユーザは、入力画面56が表示装置に表示されると、入力欄56Bに情報を入力し、ボタン56Cを指定する。抽出部46は、ユーザによりボタン56Cが指定されると、入力欄56Bに入力された情報と、抽出した情報32Cとに基づいて、前述した引数の個数を検査する処理を行う。さらに、抽出部46は、入力欄56Bに入力された情報と、抽出した情報32Cとに基づいて、前述した型チェック処理、及び前述した命令16Aを命令16Bに置き換える処理を行う。
また、抽出部46は、命令16Aの第1引数に対応する情報32Aが、定義ファイル32に存在しない場合、定義ファイル32から情報32Aを抽出して、ユーザに実行対象とする処理を選択させる選択画面を表示装置に表示する。図10に選択画面58の一例を示す。
図10に示すように、本実施形態に係る選択画面58は、ユーザに対して実行対象とする処理の選択を促すメッセージ58A、及び定義ファイル32から抽出された情報32Aに対応する処理をユーザが選択するためのボタン58Bを含む。ユーザは、選択画面58が表示装置に表示されると、実行対象とする処理に対応するボタン58Bを指定する。抽出部46は、ユーザによりボタン58Bが指定されると、指定されたボタン58Bに対応する処理を実行する命令の引数を入力させる入力画面56(図9参照)を表示装置に表示する。以降の処理は前述した処理と同様であるため、ここでの説明は省略する。なお、抽出部46は、命令16Aの第1引数に対応する情報32Aが、定義ファイル32に複数存在する場合に、定義ファイル32から複数の情報32Aを抽出して、ユーザに実行対象とする処理を選択させる選択画面を表示装置に表示してもよい。また、抽出部46は、定義ファイル32から複数の情報32Aを抽出した場合は、所定のロジックに従って、1つの情報32Aを選択してもよい。この場合のロジックの一例として、例えば、命令16Aの第2引数以降の引数の個数と同じ個数の引数を有する情報32Cに対応する情報32Aを選択するというロジックが挙げられる。
実行部48は、抽出部46により置き換えられた命令16Bを実行する。
端末20は、例えば図11に示すコンピュータ60で実現することができる。コンピュータ60はCentral Processing Unit(CPU)61、一時記憶領域としてのメモリ62、及び不揮発性の記憶部63を備えている。また、コンピュータ60は、入出力装置64、記録媒体68に対するデータの読み込みと書き込みとを制御するR/W部65、及びインターネット等のネットワークに接続されるネットワークI/F66を備えている。CPU61、メモリ62、記憶部63、入出力装置64、R/W部65、及びネットワークI/F66は、バス67を介して互いに接続されている。
記憶部63は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部63には、コンピュータ60を端末20として機能させるための生成プログラム70が記憶される。生成プログラム70は、生成プロセス71を有する。
CPU61は、生成プログラム70を記憶部63から読み出してメモリ62に展開し、生成プログラム70が有するプロセスを実行する。CPU61は、生成プロセス71を実行することで、図2に示す生成部22として動作する。これにより、生成プログラム70を実行したコンピュータ60が、端末20として機能することになる。
制御装置10は、例えば図12に示すコンピュータ80で実現することができる。コンピュータ80はCPU81、一時記憶領域としてのメモリ82、及び不揮発性の記憶部83を備えている。また、コンピュータ80は、入出力装置84、記録媒体88に対するデータの読み込みと書き込みとを制御するR/W部85、及びインターネット等のネットワークに接続されるネットワークI/F86を備えている。CPU81、メモリ82、記憶部83、入出力装置84、R/W部85、及びネットワークI/F86は、バス87を介して互いに接続されている。
記憶部83は、HDD、SSD、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部83には、コンピュータ80を制御装置10として機能させるための制御プログラム90及び実行基盤12が記憶される。制御プログラム90は、特定プロセス91、判定プロセス92、記憶制御プロセス93、及び抽出プロセス94を有する。実行基盤12は、実行プロセス95を有する。また、記憶部83は、プログラムA記憶部50として機能するプログラムA記憶領域96、及びAPI記憶部52として機能するAPI記憶領域97を有する。
CPU81は、制御プログラム90を記憶部83から読み出してメモリ82に展開し、制御プログラム90が有するプロセスを順次実行する。また、CPU81は、実行基盤12を記憶部83から読み出してメモリ82に展開し、実行基盤12が有するプロセスを順次実行する。
CPU81は、特定プロセス91を実行することで、図6に示す特定部40として動作する。また、CPU81は、判定プロセス92を実行することで、図6に示す判定部42として動作する。また、CPU81は、記憶制御プロセス93を実行することで、図6に示す記憶制御部44として動作する。また、CPU81は、抽出プロセス94を実行することで、図6に示す抽出部46として動作する。また、CPU81は、実行プロセス95を実行することで、図6に示す実行部48として動作する。これにより、制御プログラム90及び実行基盤12を実行したコンピュータ80が、制御装置10として機能することになる。
なお、本実施形態では、制御プログラム90が実行基盤12とは別に開発され、実行基盤12のアドインとして提供される場合について説明するが、これに限定されない。例えば、制御プログラム90により実現される各機能部の機能を、実行基盤12自体を修正することによって実現する形態としてもよい。この形態例の場合、実行基盤12を実行したコンピュータ80が、制御装置10として機能することになる。
また、生成プログラム70及び制御プログラム90により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
次に、本実施形態に係る端末20の作用について説明する。端末20において、開発者Aによりソースファイル24が作成された後に、実行ファイル群26を生成する旨の指示が入力されると、端末20が生成プログラム70を実行することで、図13に示す生成処理を実行する。
図13に示す生成処理のステップ100で、生成部22は、ソースファイル24をコンパイルすることによって、実行ファイル28を生成する。次のステップ102で、生成部22は、ステップ100で生成された実行ファイル28から外部に公開する命令であることを示す情報を有する命令のみを抽出して呼出処理実行ファイル30を生成する。
次のステップ104で、生成部22は、ソースファイル24に含まれるコメントに基づいて、情報32Aと、命令32B及び命令32Bを呼び出すために必要な情報32Cとを関連付けた定義ファイル32を生成する。次のステップ106で、生成部22は、ステップ100〜104で生成された実行ファイル28、呼出処理実行ファイル30、及び定義ファイル32を1つのファイルにまとめた実行ファイル群26を生成した後、本生成処理を終了する。本生成処理で生成された実行ファイル群26(プログラムA14)が制御装置10にインストールされることで、実行ファイル群26がプログラムA記憶部50に記憶される。なお、実行ファイル28、呼出処理実行ファイル30、及び定義ファイル32を生成する順番は以上説明した例に限定されず、順番を入れ替えて生成してもよい。
次に、本実施形態に係る制御装置10の作用について説明する。制御装置10において、ユーザによりプログラムA14を起動する旨の指示が入力され、実行基盤12の起動が開始されると、制御装置10が制御プログラム90を実行することで、図14に示す記憶処理を実行する。
図14に示す記憶処理のステップ130で、特定部40は、前述したように、プログラムA記憶部50に記憶された実行ファイル群26の各ファイルから、呼出処理実行ファイル30及び定義ファイル32を特定する。
次のステップ132で、判定部42は、前述したように、ステップ130で特定された呼出処理実行ファイル30と同一のファイルがAPI記憶部52に記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップ134に移行する一方、肯定判定となった場合は、処理はステップ136に移行する。ステップ134で、記憶制御部44は、ステップ130で特定された呼出処理実行ファイル30をAPI記憶部52に記憶(更新)する。
ステップ136で、記憶制御部44は、ステップ132と同様に、ステップ130で特定された定義ファイル32と同一のファイルがAPI記憶部52に記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップ138に移行する。ステップ138で、記憶制御部44は、ステップ130で特定された定義ファイル32をAPI記憶部52に記憶(更新)する。一方、ステップ136の判定が肯定判定となった場合は、本記憶処理は終了する。
一方、制御装置10において、ユーザによりプログラムB16を起動する旨の指示が入力され、実行基盤12の起動が開始されると、制御装置10が制御プログラム90を実行することで、図15に示す抽出処理を実行する。
ユーザは、プログラムB16が起動されると、制御装置10を操作する。そこで、図15に示す抽出処理のステップ140で、抽出部46は、プログラムB16から、外部に公開されている命令の検索が要求されたか否かを判定する。ユーザによって制御装置10が操作され、プログラムB16の命令16Aを実行する機能が使用されると、ステップ140が肯定判定となり、処理はステップ142に移行する。
ステップ142で、抽出部46は、命令16Aの第1引数に対応する情報32Aが定義ファイル32に存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップ144に移行する一方、肯定判定となった場合は、処理はステップ148に移行する。ステップ144で、抽出部46は、前述したように、選択画面58を表示装置に表示する。
ユーザは、選択画面58が表示装置に表示されると、実行対象とする処理に対応するボタン58Bを指定する。そこで、ステップ146で、抽出部46は、ユーザによりボタン58Bが指定されるまで待機する。ユーザによりボタン58Bが指定されると、指定されたボタン58Bに対応する処理を検索する命令16Aが入力され、ステップ146が肯定判定となり、処理はステップ148に移行する。なお、以下では、ここで入力される命令16Aは、第1引数がユーザにより指定されたボタン58Bに対応する処理内容を示す情報であり、第2引数以降の引数の個数が0(零)であるものとして説明する。
ステップ148で、抽出部46は、命令16Aの第1引数に対応する情報32Aと関連付けられている命令32B及び情報32Cを定義ファイル32から抽出する。次のステップ150で、抽出部46は、命令16Aの第2引数以降の引数の個数と、ステップ148で抽出された情報32Cの引数の個数とが一致しているか否かを判定する。この判定が否定判定となった場合は、処理はステップ154に移行する一方、肯定判定となった場合は、処理はステップ152に移行する。
ステップ152で、抽出部46は、命令16Aの第2引数以降の引数の型とステップ148で抽出された情報32Cの引数の型とが整合しているか否かを判定する。この判定が否定判定となった場合は、処理はステップ154に移行する一方、肯定判定となった場合は、処理はステップ158に移行する。
ステップ154で、抽出部46は、前述したように、入力画面56を表示装置に表示する。ユーザは、入力画面56が表示装置に表示されると、入力欄56Bに情報を入力し、ボタン56Cを指定する。そこで、ステップ156で、抽出部46は、ユーザによりボタン56Cが指定されるまで待機する。ユーザによりボタン56Cが指定されると、入力欄56Bに入力された情報を第2引数以降の引数とする命令16Aが入力され、ステップ156が肯定判定となり、処理はステップ150に戻る。
一方、ステップ158で、抽出部46は、API記憶部52に記憶された呼出処理実行ファイル30から、ステップ148で抽出された命令32Bに対応する命令を抽出する。そして、抽出部46は、プログラムB16の命令16Aを、抽出した命令を用いて命令16Bに置き換える。次のステップ160で、実行部48は、ステップ158で置き換えられた命令16Bを実行した後、ステップ140に戻る。
一方、ステップ140の判定が否定判定となった場合は、処理はステップ162に移行する。ステップ162で、判定部42は、予め定められた終了タイミングが到来したか否かを判定する。本実施形態では、判定部42は、例えばプログラムB16の実行を終了する旨の指示が入力された場合に、上記終了タイミングが到来したと判定する。本ステップ160の判定が否定判定となった場合は、処理はステップ140に戻る一方、肯定判定となった場合は、本制御処理は終了する。
以上説明したように、本実施形態によれば、記憶制御部44が、呼出処理実行ファイル30を、実行基盤12が参照可能なAPI記憶部52に記憶している。これにより、簡易に他のプログラムと連携することができる。
また、本実施形態によれば、記憶制御部44が、呼出処理実行ファイル30を実行基盤12がインストールされているディレクトリ52A配下のディレクトリ52Bに記憶している。これにより、オペレーティング・システムの環境変数の設定や実行基盤12の設定等を行わなくても、実行基盤12が呼出処理実行ファイル30に含まれる命令を実行することができる。
また、本実施形態によれば、記憶制御部44が、特定部40により特定された呼出処理実行ファイル30と同一のファイルがAPI記憶部52に記憶されている場合は、呼出処理実行ファイル30をAPI記憶部52に記憶しない。これにより、制御装置10による処理の負荷を低減することができる。
また、本実施形態によれば、呼出処理実行ファイル30のファイル名に、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報が含まれている。これにより、簡易に呼出処理実行ファイルであることを特定することができる。
なお、上記実施形態では、プログラムA14として銀行口座を利用するためのアプリケーション・プログラムを適用し、プログラムB16として家計簿を作成するためのアプリケーション・プログラムを適用した場合について説明したが、これに限定されない。プログラムB16からプログラムA14の機能を使用することが可能であれば、プログラムA14及びプログラムB16として他のアプリケーション・プログラムを適用してもよい。
また、上記実施の形態では、プログラムA14とプログラムB16とが1対1で対応する場合について説明したが、これに限定されない。例えば、複数の異なるプログラムA14の各々の機能を1つのプログラムB16が使用する形態としてもよい。また、例えば、1つのプログラムA14の機能を複数の異なるプログラムB16が使用する形態としてもよいし、複数の異なるプログラムA14の各々の機能を複数の異なるプログラムB16が使用する形態としてもよい。
また、上記実施の形態では、記憶制御部44が、呼出処理実行ファイル30を実行基盤12がインストールされているディレクトリ52A配下のディレクトリ52Bに記憶する場合について説明したが、これに限定されない。記憶制御部44が、呼出処理実行ファイル30を、実行基盤12が参照可能な他の記憶領域に記憶する形態としてもよい。この形態例の場合、呼出処理実行ファイル30の記憶先をオペレーティング・システムの環境変数や実行基盤12の設定ファイル等に設定すればよい。
また、上記実施形態では、定義ファイル32を用いて情報32Aと命令32B及び情報32Cとを関連付ける場合について説明したが、これに限定されない。例えば、情報32Aと命令32B及び情報32Cとが関連付けられた検索サービスを用いる形態としてもよい。この形態例の場合、抽出部46は、検索サービスを用いて、命令16Aの第1引数に対応する情報32Aと関連付けられている命令32B及び情報32Cを抽出すればよい。なお、この形態例では、実行ファイル群26に定義ファイル32は含まれていなくてもよい。また、例えば、定義ファイル32と同じ情報を呼出処理実行ファイル30に含めて、定義ファイル32を生成しない形態としてもよい。
また、上記実施形態では、生成プログラム70が記憶部63に予め記憶(インストール)されている態様を説明したが、これに限定されない。生成プログラムは、CD−ROM、DVD−ROM、USBメモリ等の記録媒体に記録された形態で提供することも可能である。
また、上記実施形態では、制御プログラム90及び実行基盤12が記憶部83に予め記憶(インストール)されている態様を説明したが、これに限定されない。本発明に係る制御プログラム、又は本発明に係る制御プログラムにより実現される機能に基づく修正を加えた実行基盤は、CD−ROM、DVD−ROM、USBメモリ等の記録媒体に記録された形態で提供することも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御プログラム。
(付記2)
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
付記1記載の制御プログラム。
(付記3)
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
付記1又は付記2記載の制御プログラム。
(付記4)
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定し、
該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定した場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
付記1から付記3の何れか1項記載の制御プログラム。
(付記5)
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを、ファイルのサイズ、ファイルのタイムスタンプ、及びファイルのチェックサムの少なくとも一つを用いて判定する、
付記4記載の制御プログラム。
(付記6)
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶する記憶制御部と、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記記憶制御部により記憶された呼出処理実行ファイルの命令を抽出する抽出部と、
を含む制御装置。
(付記7)
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
付記6記載の制御装置。
(付記8)
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
付記6又は付記7記載の制御装置。
(付記9)
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定する判定部をさらに含み、
前記記憶制御部は、前記判定部により、該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定された場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
付記6から付記8の何れか1項記載の制御装置。
(付記10)
前記判定部は、前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを、ファイルのサイズ、ファイルのタイムスタンプ、及びファイルのチェックサムの少なくとも一つを用いて判定する、
付記9記載の制御装置。
(付記11)
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御方法。
(付記12)
前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
付記11記載の制御方法。
(付記13)
前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
付記11又は付記12記載の制御方法。
(付記14)
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定し、
該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定した場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
付記11から付記13の何れか1項記載の制御方法。
(付記15)
前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを、ファイルのサイズ、ファイルのタイムスタンプ、及びファイルのチェックサムの少なくとも一つを用いて判定する、
付記14記載の制御方法。
(付記16)
コンピュータに、
プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
ことを含む処理を実行させる制御プログラムを記憶した記憶媒体。
10 制御装置
12 実行基盤
14 プログラムA
16 プログラムB
20 端末
22 生成部
24 ソースファイル
26 実行ファイル群
28 実行ファイル
30 呼出処理実行ファイル
32 定義ファイル
40 特定部
42 判定部
44 記憶制御部
46 抽出部
48 実行部
50 プログラムA記憶部
52 API記憶部
56 入力画面
58 選択画面
60 コンピュータ
61 CPU
62 メモリ
63 記憶部
68 記録媒体
70 生成プログラム
81 CPU
82 メモリ
83 記憶部
88 記録媒体
90 制御プログラム

Claims (6)

  1. コンピュータに、
    プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
    外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
    ことを含む処理を実行させる制御プログラム。
  2. 前記記憶領域は、前記実行基盤プログラムがインストールされているディレクトリの配下の領域である、
    請求項1記載の制御プログラム。
  3. 前記呼出処理実行ファイルは、前記特定する情報をファイル名に含む、
    請求項1又は請求項2記載の制御プログラム。
  4. 前記特定する情報に基づいて特定される呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されているか否かを判定し、
    該呼出処理実行ファイルと同一のファイルが前記記憶領域に記憶されていないと判定した場合に、該呼出処理実行ファイルを前記記憶領域に記憶する、
    請求項1から請求項3の何れか1項記載の制御プログラム。
  5. プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶する記憶制御部と、
    外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記記憶制御部により記憶された呼出処理実行ファイルの命令を抽出する抽出部と、
    を含む制御装置。
  6. コンピュータに、
    プログラムの実行ファイルと、外部プログラムに呼び出される命令を含む呼出処理実行ファイルであることを特定する情報を有する前記呼出処理実行ファイルと、を含んで生成された実行ファイル群の前記プログラムを起動する際に、前記特定する情報に基づいて特定される呼出処理実行ファイルを、前記プログラムを実行する実行基盤プログラムが参照可能な記憶領域に記憶し、
    外部プログラムによる検索の要求に応じて、前記記憶領域を参照して、前記要求に対応する前記呼出処理実行ファイルの命令を抽出する、
    ことを含む処理を実行させる制御方法。
JP2016021954A 2016-02-08 2016-02-08 制御プログラム、制御装置、及び制御方法 Active JP6597356B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016021954A JP6597356B2 (ja) 2016-02-08 2016-02-08 制御プログラム、制御装置、及び制御方法
US15/361,548 US10310871B2 (en) 2016-02-08 2016-11-28 Non-transitory computer-readable recording medium storing control program, control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016021954A JP6597356B2 (ja) 2016-02-08 2016-02-08 制御プログラム、制御装置、及び制御方法

Publications (2)

Publication Number Publication Date
JP2017142574A true JP2017142574A (ja) 2017-08-17
JP6597356B2 JP6597356B2 (ja) 2019-10-30

Family

ID=59498251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016021954A Active JP6597356B2 (ja) 2016-02-08 2016-02-08 制御プログラム、制御装置、及び制御方法

Country Status (2)

Country Link
US (1) US10310871B2 (ja)
JP (1) JP6597356B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110440910B (zh) * 2019-08-22 2022-02-01 西门子工厂自动化工程有限公司 振动监测方法、装置、驱动系统、工控设备及存储介质
CN113791838B (zh) * 2021-08-20 2024-04-23 深圳市元征科技股份有限公司 一种程序文件调用方法、装置以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206965A (ja) * 2006-02-01 2007-08-16 Canon Inc 情報処理装置及び当該装置におけるオブジェクト指向プログラムの実行方法とそのプログラム
JP2012173771A (ja) * 2011-02-17 2012-09-10 Hitachi Solutions Ltd プログラミング言語間でのライブラリ変換方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031437A1 (fr) * 1999-10-27 2001-05-03 Fujitsu Limited Procede de gestion de programmes pour ordinateur comportant un support d'enregistrement, ordinateur et support d'enregistrement
JP2004070617A (ja) 2002-08-06 2004-03-04 Ricoh Co Ltd データベースシステム
EP1869924B3 (en) 2005-04-15 2019-02-27 STD IP Holdings, Inc. Method for providing contents for mobile communication terminal
US8572187B2 (en) * 2009-04-27 2013-10-29 International Business Machines Corporation Automated duplicate message content detection
US8719223B2 (en) * 2010-05-06 2014-05-06 Go Daddy Operating Company, LLC Cloud storage solution for reading and writing files
US20170102925A1 (en) * 2014-03-26 2017-04-13 Syed Adeel Ali Automatch process and system for software development kit for application programming interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206965A (ja) * 2006-02-01 2007-08-16 Canon Inc 情報処理装置及び当該装置におけるオブジェクト指向プログラムの実行方法とそのプログラム
JP2012173771A (ja) * 2011-02-17 2012-09-10 Hitachi Solutions Ltd プログラミング言語間でのライブラリ変換方法及びプログラム

Also Published As

Publication number Publication date
US10310871B2 (en) 2019-06-04
US20170228243A1 (en) 2017-08-10
JP6597356B2 (ja) 2019-10-30

Similar Documents

Publication Publication Date Title
TWI581188B (zh) The way to load the driver and the embedded device
CN106775723B (zh) 基于Android平台的系统固件定制的方法和Android设备
CN105975311B (zh) 一种应用启动方法及装置
JP6996629B2 (ja) 検証自動化装置、検証自動化方法、およびプログラム
JP6070847B2 (ja) 検証方法、検証装置および検証プログラム
US20150242205A1 (en) Non-Transitory Computer-Readable Recording Medium Storing Application Development Support Program and Application Development Support System That Automatically Support Platform Version
CN112612502A (zh) 补丁生成方法、装置、设备及存储介质
JP6597356B2 (ja) 制御プログラム、制御装置、及び制御方法
JP2007226784A (ja) インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン
JP5720531B2 (ja) ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法
US20150178074A1 (en) Method, a system, and a non-transitory computer-readable medium for supporting application development
CN114020278B (zh) 数据处理方法、装置、设备及存储介质
KR101670916B1 (ko) 실행 파일 생성 방법 및 그 방법을 이용하는 시스템 장치
JP2015184824A (ja) 情報処理プログラム、情報処理方法および情報処理装置
JP6245028B2 (ja) 実行制御方法、実行制御プログラムおよび実行制御装置
JP5702265B2 (ja) プログラム自動生成装置およびプログラム自動生成方法
JP2013029999A (ja) テストコード生成装置、テストコード生成方法及びテストコード生成プログラム
JP6097231B2 (ja) プログラム生成装置および方法
JP2021103354A (ja) プログラムの試験方法
JP6116983B2 (ja) エントリーポイント抽出装置
JP4925514B2 (ja) 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体
JP2019046001A (ja) アプリケーション移植支援装置、アプリケーション移植支援プログラムおよびアプリケーション移植方法
CN116450535B (zh) 子应用调试方法、装置、计算机设备及存储介质
JP6639238B2 (ja) プログラムおよびコンピュータ
JP2023128865A (ja) インストール支援プログラム、インストール支援装置、及びインストール支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190916

R150 Certificate of patent or registration of utility model

Ref document number: 6597356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150