(57)【要約】      （修正有）【課題】アプリケーションプログラムが指定した入力パラメータを、ＡＰＩの最新の規約に従った実行パラメータとして構築した上で、ＡＰＩ関数を呼び出すＡＰＩインタフェース管理プログラムを提供する。【解決手段】アプリケーションは、所定の規約に従い、求める処理に対応したコマンド及び入力パラメータを、ＩＦ管理プログラム１７に通知する。ＩＦ管理テーブル１８は、各コマンドに対応したＡＰＩ名，コマンドの入力パラメータが夫々ＡＰＩの実行パラメータ中の何番目のパラメータに相当するかを定義している。ＩＦ管理プログラム１７は、ＩＦ管理テーブル１８を参照して、アプリケーションから通知されたコマンドに対応したＡＰＩ名及び順番情報を読み出すとともに、アプリケーションから通知された入力パラメータを、順番に並べ替えることにより実行パラメータを作成し、前記ＡＰＩ名が示すＡＰＩを呼び出して前記実行パラメータを指定する。【選択図】図１
2007219857.tif 000002
【特許請求の範囲】
【請求項１】
ＡＰＩを実装したＡＰＩ実装プログラムに従った処理，及び、このＡＰＩ実装プログラムに対して所定の処理を要求するために、所定の規約に従って、求める処理に対応したコマンド及び入力パラメータとしての複数のパラメータを通知するアプリケーションプログラムに従った処理を、夫々実行するコンピュータに対して、
個々の前記コマンド毎に、そのコマンドに対応した処理を前記ＡＰＩ実装プログラムに実行させるＡＰＩ関数を呼び出すためのＡＰＩ名，そのコマンドに応じた前記規約が定める入力パラメータを構成する各パラメータが夫々前記ＡＰＩ関数に指定可能な実行パラメータ中の何番目のパラメータに相当するかを定義する順番情報が記述されているテーブルを、記憶手段に記憶させ、
前記アプリケーションプログラムにより生成された前記コマンド及び入力パラメータを取り込ませ、
前記テーブルから、前記コマンドに対応したＡＰＩ名及び順番情報を読み出させ、前記入力パラメータ中の各パラメータを、前記順番情報が定義する順番の位置に並べ替えさせることにより実行パラメータを作成させ、
前記ＡＰＩ名が示すＡＰＩ関数を呼び出させて、前記実行パラメータを指定することにより、前記コマンドに対応した処理を前記ＡＰＩ実装プログラムに実行させる
ことを特徴とするＡＰＩインタフェース管理プログラム。
【請求項２】
前記テーブルには、更に、個々の前記コマンド毎に、そのコマンドに対応した処理を前記ＡＰＩ実装プログラムに実行させるＡＰＩ関数に指定可能な実行パラメータ中の各パラメータについて、その満たすべき条件が記述されており、
前記コンピュータに対して、前記実行パラメータを作成させるのに際して、前記入力パラメータ中の各パラメータが、夫々に対応する前記実行パラメータ中の各パラメータについて前記テーブル中に記述された条件を満たすか否かをチェックさせ、全てのパラメータが条件を満たす場合にのみ、前記実行パラメータを作成させる
ことを特徴とする請求項１記載のＡＰＩインタフェース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムとＡＰＩ（Application Programming Interface）との間において、ＡＰＩのインタフェースが必要とする実行パラメータを構築するためのＡＰＩインタフェース管理プログラムに、関する。
【背景技術】
【０００２】
ＡＰＩは、ＯＳ（Operating System）やミドルウェアがアプリケーションプログラム向けに提供している機能を利用するための命令や関数の集合であり、アプリケーションプログラムは、あるＡＰＩの機能を利用する場合には、そのＡＰＩの規約に従ったパラメータ（引数）を指定してそのＡＰＩの関数（以下、「ＡＰＩ関数」という）を呼び出すことにより、その機能を実現する処理をＯＳ又はミドルウェアに依頼することができる。
【０００３】
そのため、アプリケーションプログラムのソースにおけるＡＰＩ参照箇所（参照モジュール）には、そのＡＰＩ関数の名称（ＡＰＩ名）及び指定を要するパラメータが、以下のように、記述されている（但し、option１，option2は、夫々、当該ＡＰＩ名が示すＡＰＩ関数が必要とするパラメータである。）。
ＡＰＩ名（option１，option2）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＡＰＩのインタフェースは、ＯＳやミドルウェアのようなＡＰＩの実装プログラムがバージョンアップされるに伴って、変更されることがある。例えば、あるＡＰＩ関数に指定可能なパラメータの数が２個から３個に増える場合がある。その場合には、アプリケーションが指定する各パラメータが、夫々、変更後における何番目のパラメータであるかが分かるようになってなければならないので、アプリケーションプログラムのソースにおける当該ＡＰＩ関数についてのすべての参照モジュールを、書き換えなければならない。例えば、先の例において、指定可能な新たなパラメータが３番目のパラメータとして追加された場合には、その３番目のパラメータとして指定する意義のある具体値があれば、その具体値を３番目のパラメータとして追記する必要があるし、３番目のパラメータとして指定する意義のある具体値がないのであれば、ＮＵＬ値を３番目のパラメータとして指定する（ないし、３番目のパラメータとして何ら具体値を指定しないことを明示する）必要がある。
【０００５】
このような参照モジュールの書き換えは、インタフェースが変更となった全てのＡＰＩ関数について、これを利用する全てのアプリケーションにおける全ての参照モジュールにおいてなされなければならない。しかも、ＡＰＩの実装の開発業者と、アプリケーションの開発業者とが異なる場合には、他社に対して参照モジュールの書き換えを要求しなければならないので、事実上の困難が伴っていた。
【０００６】
また、従来、アプリケーションがＡＰＩ関数を呼び出すために指定する各パラメータが、当該ＡＰＩ関数についての規約に従っているかをチェックするためには、ＡＰＩ関数毎にチェックロジックを作成しておかなければならなかったので、ＡＰＩのインタフェースの変更に伴って、これらのチェックロジックも、個別に変更しなければならなかった。
【０００７】
本発明は、このような問題に鑑みてなされたものであり、その課題は、アプリケーションプログラムとＡＰＩとの間において、アプリケーションプログラムが指定した入力パラメータを、ＡＰＩの最新の規約に従った実行パラメータとして構築した上で、ＡＰＩ関数を呼び出すことができるＡＰＩインタフェース管理プログラムを、提供することである。
【課題を解決するための手段】
【０００８】
このような課題を解決するために案出された本発明によるＡＰＩインタフェース管理プログラムは、ＡＰＩを実装したＡＰＩ実装プログラムに従った処理，及び、このＡＰＩ実装プログラムに対して所定の処理を要求するために、所定の規約に従って、求める処理に対応したコマンド及び入力パラメータとしての複数のパラメータを通知するアプリケーションプログラムに従った処理を、夫々実行するコンピュータに読み込まれて実行される。そして、このコンピュータに対して、個々の前記コマンド毎に、そのコマンドに対応した処理を前記ＡＰＩ実装プログラムに実行させるＡＰＩ関数を呼び出すためのＡＰＩ名，そのコマンドに応じた前記規約が定める入力パラメータを構成する各パラメータが夫々前記ＡＰＩ関数に指定可能な実行パラメータ中の何番目のパラメータに相当するかを定義する順番情報が記述されているテーブルを、記憶手段に記憶させ、前記アプリケーションプログラムにより生成された前記コマンド及び入力パラメータを取り込ませ、前記テーブルから、前記コマンドに対応したＡＰＩ名及び順番情報を読み出させ、前記入力パラメータ中の各パラメータを、前記順番情報が定義する順番の位置に並べ替えさせることにより実行パラメータを作成させ、前記ＡＰＩ名が示すＡＰＩ関数を呼び出させて、前記実行パラメータを指定することにより、前記コマンドに対応した処理を前記ＡＰＩ実装プログラムに実行させることを、特徴とする。
【０００９】
このように構成されると、ＡＰＩインタフェースプログラムは、アプリケーションプログラムがコマンド及び入力パラメータを通知すると、これらコマンド及び入力パラメータを取り込み、このコマンドに対応したＡＰＩ名及び順番情報を記憶装置上のテーブルから読み出す。そして、入力パラメータ中の各パラメータを、順番情報が示す位置に並べ替えることにより、実行パラメータを作成する。以上の後に、ＡＰＩインタフェースプログラムは、ＡＰＩ名が示すＡＰＩ関数を呼び出し、実行パラメータを指定することにより、上記コマンドに対応した処理をＡＰＩ実装プログラムに実行させる。
【００１０】
本発明において、テーブルには、更に、個々の前記コマンド毎に、そのコマンドに対応した処理を前記ＡＰＩ実装プログラムに実行させるＡＰＩ関数に指定可能な実行パラメータ中の各パラメータについて、その満たすべき条件が記述されていても良い。その場合、ＡＰＩインタフェース管理プログラムは、実行パラメータの作成に際して、入力パラメータ中の各パラメータが、夫々に対応する前記実行パラメータ中の各パラメータについて前記テーブル中に記述された条件を満たすか否かをチェックさせ、全てのパラメータが条件を満たす場合にのみ、実行パラメータを作成すればよい。処理の順番を変えて、実行パラメータを作成してから、この実行パラメータ中の各パラメータが、夫々の条件を満たすか否かをチェックしても良い。
【発明の効果】
【００１１】
以上のように構成された本発明によると、アプリケーションプログラムとＡＰＩとの間において、アプリケーションプログラムが指定した入力パラメータを、ＡＰＩの最新の規約に従った実行パラメータとして構築した上で、ＡＰＩ関数を呼び出すことができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を、図面を参照して説明する。
【００１３】
＜システム構成＞
図１は、本発明によるＡＰＩインタフェース管理プログラムの実施の形態であるＩＦ管理プログラム１７及びＩＦ管理テーブル１８がインストールされているコンピュータ（サーバマシン１）及び端末２が、ネットワークＮを通じて通信可能に接続されてなるコンピュータシステムを示す、ブロック図である。
【００１４】
サーバマシン１は、クラスサーバ，ウェブサーバとしての業務を実行するコンピュータであり、かかるサーバとして通常有するハードウェア構成及びソフトウェア構成を、備えている。概略的に説明すると、このサーバマシン１の内部回路は、プログラムに従った処理を実行する処理装置であるＣＰＵ（Central Processing Unit）１０と、バスＢを通じて、このＣＰＵ１０に接続されているハードディスク１１，ＲＡＭ１２，通信アダプタ１９及びＲＯＭ２０を、備えている。
【００１５】
ＲＡＭ１１は、ＣＰＵ１０が処理を実行するに際してプログラムやデータをハードディスク１２やＲＯＭ２０から読み込んで（キャッシュして）データ処理を行うる作業領域が展開される主記憶装置である。
【００１６】
ハードディスクに格納されて上述したようにＲＡＭ１２に読み出されるプログラムには、上述したＩＦ管理プログラム１７の他、ＷＷＷサーバプログラム１３，業務アプリケーションプログラム１４，ＯＳ・ミドルウェア等のプログラム１６が、含まれている。また、ハードディスクに格納されて上述したようにＲＡＭ１２に読み出されるデータ（ライブラリ）には、ＯＳ・ミドルウェア等のプログラム１６に実装されたＡＰＩ１５が、含まれている。即ち、ＯＳ・ミドルウェア等のプログラム１６は、ＡＰＩの実装プログラムである。また、ＲＯＭ２０に格納されて上述したようにＲＡＭ１２に読み出されるデータには、上述したＩＦ管理テーブル１８が、含まれている。
【００１７】
ＷＷＷサーバプログラム１３は、端末２上で実行されているアプリケーションプログラムであるクライアントプログラム２１（を実行している端末２の図示せぬプロセッサ）と通信を行う。そして、このクライアントプログラム２１から各種リクエストを受信し、リクエストにＯＳ・ミドルウェア等のプログラム１６の機能を利用するためのＡＰＩ１５の呼び出しが含まれている場合には、当該ＡＰＩ１５の呼び出しをＩＦ管理プログラム１７に転送し、最終的に、そのリクエストに対するレスポンスをクライアントプログラム１６に応答する。
【００１８】
業務アプリケーションプログラム１４は、各種業務を実行するためのアプリケーションプログラムであり、ＯＳ・ミドルウェア等のプログラム１６の機能を利用する必要がある場合には、当該ＡＰＩ１５の呼び出しをＩＦ管理プログラム１７に依頼する。
【００１９】
上述した各種プログラムのうち、クライアントプログラム２１及び業務アプリケーションプログラム１４が、ＯＳ・ミドルウェア等の等のプログラム１６を開発した業者とは異なる業者によって開発され、ＯＳ・ミドルウェア等の等のプログラム１６の機能を利用するアプリケーションプログラムである。これらアプリケーションプログラム２１，１４のソースには、ＩＦ管理プログラム１７に対してＡＰＩ１５の呼び出しを依頼するためのＡＰＩの参照モジュールが含まる。その参照モジュールの記述形式は、例えば、以下の通りである。
【００２０】
ohpa_exec(入力パラメータ)
このうち、「ohpa_exec」は、ＩＦ管理プログラム１７を呼び出すための関数である。また、呼び出されたＩＦ管理プログラム１７に渡される入力パラメータの記述形式は、例えば、以下の通りである。
【００２１】
コマンド名（項目１，項目２，項目３，・・・・）
このうち、「コマンド名」は、ＩＦ管理プログラム１７に依頼される処理の内容を指定する記述である。即ち、ＩＦ管理プログラム１７に依頼される処理は、特定のＡＰＩ関数について、当該アプリケーション開発時（若しくはバージョンアップ時）における規約により指定可能であったパラメータの数，内容及び順序を、最新の規約により指定可能となったパラメータの数，内容及び順序に、整合させることである。よって、同じＡＰＩ関数に関する処理であっても、アプリケーションプログラム２１，１４の開発時におけるＡＰＩの規約に依って、ＩＦ管理プログラム１７に依頼すべき処理の内容，即ち、コマンド名が、異なることになる。また、「項目１」，「項目２」，「項目３」，・・・には、基本的には、当該アプリケーションプログラム２１，１４の開発時（若しくはバージョンアップ時）におけるＡＰＩ１５の規約に従った数，内容及び順序で、複数のパラメータが夫々記述される。但し、ＡＰＩ１５の仕様が公表されていない場合には、当初より、ＩＦ管理プログラム１７の利用を前提として、ＡＰＩの規約とは異なる規約に従って、各項目へのパラメータの記述が求められている場合もある。
【００２２】
以上により、ＣＰＵ１０は、ＡＰＩ１５を実装したＡＰＩ実装プログラム１６に従った処理，及び、このＡＰＩ実装プログラム１６に対して所定の処理を要求するために、所定の規約に従って、求める処理に対応したコマンド及び入力パラメータとしての複数のパラメータを生成するアプリケーションプログラム２１，１４に従った処理を、夫々実行するコンピュータに、相当する。
【００２３】
ＩＦ管理テーブル１８は、アプリケーションプログラム２１，１４によって呼び出されたＩＦ管理プログラム１７によって参照されるテーブルであり、各コマンド名毎に、そのコマンドに対応したＡＰＩ関数のＡＰＩ名と、入力パラメータにおける各項目のパラメータとＡＰＩ関数に対して指定すべきパラメータ（実行パラメータ）との相関と、ＡＰＩ関数に対して指定可能なパラメータの条件（チェック内容）とを定義したレコード（スタイルシート）が、登録されている。即ち、各スタイルシートは、そのスタイルシートに対応したコマンド名を定義する「コマンド名」欄，そのコマンド名に対応したＡＰＩ関数のＡＰＩ名（コマンドに対応した処理をＡＰＩ実装プログラムに実行させるＡＰＩ関数を呼び出すためのＡＰＩ名）を定義する「ＡＰＩ名」欄，入力パラメータにおける各項目が実行パラメータにおける何番目のパラメータ（option）に相当するかを定義する「引数順番」欄，実行パラメータにおける１番目のパラメータ（option１）が満たすべき条件を定義する「option１のチェック内容」欄，実行パラメータにおける２番目のパラメータ（option２）が満たすべき条件を定義する「option２のチェック内容」欄，実行パラメータにおける３番目のパラメータ（option３）が満たすべき条件を定義する「option３のチェック内容」欄，・・・から、構成されている。なお、引数順序「３，２，１」とは、入力パラメータにおける項目１のパラメータを実行パラメータにおけるoption３とし、項目２のパラメータをoption２とし、項目３のパラメータをoption１とすべきことを、意味している（即ち、入力パラメータを構成する各パラメータが夫々前記ＡＰＩ関数に指定可能な実行パラメータ中の何番目のパラメータに相当するかを定義する順番情報に相当する）。また、等式又は不等式により定義されている「〜チェック内容」は、そのパラメータが整数又はアドレス値であり、且つ、その等式又は不等式を満たすことを、条件としている。また、文字により定義されている「〜チェック内容」は、そのパラメータが、当該文字であることを条件としている。また、“−”は、そのoptionが新たに指定可能になったパラメータであって、それに該当する入力パラメータの項目がないことを示している。
【００２４】
ＩＦ管理プログラム１７は、アプリケーションプログラム２１，１４がohpa_execを実行することによって呼び出されると、図３のフローチャートに示す処理を実行する。即ち、先ず、最初のＳ１において、ＩＦ管理プログラム１７は、項目分解処理を実行する。即ち、アプリケーションプログラム２１，１４から渡された入力パラメータを解析して、各要素毎に分解し、図４に示すように、コマンド名，空欄，空欄，項目１，項目２，項目３，・・・の順番に、並べる。
【００２５】
次のＳ２では、ＩＦ管理プログラム１７は、スタイルシート項目分解処理を実行する。即ち、ＩＦ管理プログラム１７は、Ｓ１において解析した「コマンド名」に相当するスタイルシートをＩＦ管理テーブル１８から読み込んで、各欄毎に分解し、図５に示すように、コマンド名，ＡＰＩ名，引数順番，引数順番において項目１に対応付けられたoptionのチェック内容，項目２に対応付けられたoptionのチェック内容，項目３に対応付けられたoptionのチェック内容，・・・の順に並べる。
【００２６】
次のＳ３では、ＩＦ管理プログラム１７は、Ｓ１にて並べた入力パラメータの各要素と、Ｓ２にて並べたスタイルシートの各欄の内容とを対比させ、各項目のパラメータが、対応する位置に並べられているチェック内容を満たしているかどうかを、チェックする。例えば、引数順番が「３，２，１」と定義されている場合には、項目１のパラメータが「oprion３のチェック内容」を満たしているか、項目２のパラメータが「option２のチェック内容」を満たしているか、項目３のパラメータが「option１のチェック内容」を満たしているかを、チェックする。そして、何れかの項目のパラメータが対応する「〜チェック内容」を満たしていない場合には、ＩＦ管理プログラム１７は、呼び出し元のアプリケーションに対して、エラーメッセージを応答する。これに対して、全項目のパラメータが夫々対応する「〜チェック内容」を満たしている場合には、ＩＦ管理プログラム１７は、処理をＳ４へ進める。
【００２７】
次のＳ４では、ＩＦ管理プログラム１７は、実行パラメータ作成処理を実行する。即ち、Ｓ２にて分解された要素中のＡＰＩ名，Ｓ１にて分解された各項目のパラメータに基づいて、実行パラメータを作成する。この際、ＩＦ管理プログラム１７は、Ｓ２にて分解された要素中の引数順番に従って、各項目のパラメータを、夫々に対応するoptionの位置に並べ替える。
【００２８】
例えば、今、入力パラメータが、
$xxx（１，６４，１２８）
であったならば、それに対応するスタイルシートは図２に示すＩＦ管理テーブル１８の先頭行の通りであるので、引数順番は「３，２，１」であるから、実行パラメータは、
opm_yyy（１２８，６４，１）
となる。
【００２９】
また、入力パラメータが、
$ccc（１８，１）
であったならば、それに対応するスタイルシートは図２に示すＩＦ管理テーブル１８の４行目の通りであるので、引数順番は「２，３」であるから、実行パラメータは、
opm_ccc（，１８，１）
となる。この場合、option１に対応する項目がないので、option１の位置にはＮＵＬ値が設定されることになる。
【００３０】
次のＳ５では、ＩＦ管理プログラム１７は、Ｓ４にて作成した実行パラメータをマクロ実行することにより、そのＡＰＩ名が示すＡＰＩ関数を呼び出して、option 1以下のパラメータを指定する。このように指定された各パラメータは、当該ＡＰＩ関数の最新の規約を満たしていることが保証されているので、呼び出されたＡＰＩ関数が実行されることにより、ＯＳ・ミドルウェア等のプログラム１６は、そのＡＰＩ関数に対応した処理を、各パラメータに基づいて実行し、その結果（戻り値）をＩＦ管理プログラム１７に応答する。この戻り値は、ＩＦ管理プログラム１７から、呼び出し元のアプリケーションプログラムに応答される。
【００３１】
以上のように構成されるため、ＡＰＩ１５の実装であるＯＳ・ミドルウェア等のプログラム１６のバージョンアップ等に伴ってＡＰＩ１５の規約が変更された場合には、当該プログラム１６の開発業者は、新たなＡＰＩ１５の規約に応じて、ＩＦ管理プログラム１７によって作成される実行パラメータが新たなＡＰＩの規約を満たすものになるように、ＩＦ管理テーブル１８を書き換える。そして、書換後のＩＦ管理テーブル１８を、当該プログラム１６のユーザに配布し、そのサーバマシン１のハードディスク１１に上書きしてもらう。若しくは、自ら、サーバマシン１を操作して、書換後のＩＦ管理テーブル１８をハードディスク１１に上書きする。その結果、アプリケーションプログラム２１，１４におけるＡＰＩの参照モジュールを何等書き換えることなく、最新のＡＰＩ１５を使用させることが可能となるのである。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態であるサーバマシンの構成を示すブロック図
【図２】ＩＦ管理テーブルのデータ構造を示す表
【図３】ＩＦ管理プログラムによる処理内容を示すフローチャート
【図４】項目分解処理の結果例を示す図
【図５】スタイルシート項目分解処理の結果例を示す図
【符号の説明】
【００３３】
１    サーバマシン
１０    ＣＰＵ
１１    ハードディスク
１２    ＲＡＭ
１４    業務アプリケーション
１５    ＡＰＩ
１６    ＯＳ・ミドルウェア等のプログラム
１７    ＩＦ管理プログラム
１８    ＩＦ管理テーブル
２０    ＲＯＭ
２１    クライアントプログラム
【図１】
2007219857.tif 000003
【図２】
2007219857.tif 000004
【図３】
2007219857.tif 000005
【図４】
2007219857.tif 000006
【図５】
2007219857.tif 000007