JP5292670B2 - 開発支援プログラム、開発支援方法、及び開発支援装置 - Google Patents

開発支援プログラム、開発支援方法、及び開発支援装置 Download PDF

Info

Publication number
JP5292670B2
JP5292670B2 JP2006045610A JP2006045610A JP5292670B2 JP 5292670 B2 JP5292670 B2 JP 5292670B2 JP 2006045610 A JP2006045610 A JP 2006045610A JP 2006045610 A JP2006045610 A JP 2006045610A JP 5292670 B2 JP5292670 B2 JP 5292670B2
Authority
JP
Japan
Prior art keywords
application
file
data
source file
development support
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.)
Expired - Fee Related
Application number
JP2006045610A
Other languages
English (en)
Other versions
JP2007226431A (ja
Inventor
義孝 保西
外喜夫 中山
義春 鎌田
慎也 末松
豪一 日高
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 JP2006045610A priority Critical patent/JP5292670B2/ja
Priority to US11/438,871 priority patent/US8347323B2/en
Publication of JP2007226431A publication Critical patent/JP2007226431A/ja
Application granted granted Critical
Publication of JP5292670B2 publication Critical patent/JP5292670B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

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

Description

この発明は、仲介プログラム開発支援プログラム、仲介プログラム開発支援方法および仲介プログラム開発支援装置に関する。
従来より、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現することを目的として、ミドルウェア基盤技術(例えば、CORBA(Common Object Request Broker Architecture)など)を利用し、このミドルウェア基盤上にアプリケーションを配備する方法が知られている。このCORBAの仕様には、サーバアプリケーションおよびクライアントアプリケーションを作成するための仕組みや、作成されたこれらのアプリケーションを動作させるための仕組みなどが規定されているので、サーバアプリケーションおよびクライアントアプリケーションは、この仕様に従って開発される必要がある。
具体的に説明すると、CORBAの仕様に従ってアプリケーションが開発されるには、図23に示すように、まず、開発者によって、サーバアプリケーションおよびクライアントアプリケーションの設計が行われる(図23の(1)を参照)。次に、開発者によってサーバアプリケーションのインタフェース定義情報が記述され、IDL(Interface Definition Language)ファイルが作成される(図23の(2)を参照)。そして、開発者によって、サーバアプリケーションおよびクライアントアプリケーションのソースファイルが記述される(図23の(3)を参照)。
ここで、図23の(3)に示す「サーバアプリケーション、クライアントアプリケーションのソースファイルを記述」についてより具体的に説明すると、例えば、静的起動インタフェースを使用する方法(サーバアプリケーションの関数を直接クライアントアプリケーションの中から呼び出す方法)によるクライアントアプリケーションのソースファイルは、図24に示すように、一般に、ORB(Object Request Broker)の初期化、ネーミングサービスのオブジェクトリファレンスの獲得、サーバアプリケーションのオブジェクトリファレンスの獲得、サーバアプリケーションのオペレーション呼び出しの順で記述される(図24の(1)〜(4)を参照)。そして、図24においては、クライアントアプリケーションが開発者によってC言語で記述された場合のソースファイルが示されているが、随所に、CORBAに依存した記述が存在している。なお、図示してはいないが、開発者によって記述されるサーバアプリケーションのソースファイルについても同様に、随所に、CORBAに依存した記述が存在する。
続いて、図23に戻ると、図23の(2)で開発者によって作成されたIDLファイルは、サーバアプリケーション側およびクライアントアプリケーション側のIDLコンパイラでコンパイルされることで、スケルトン、スタブと呼ばれるアプリケーション間の連携を仲介するためのプログラムとなる(図23の(4)を参照)。そして、生成されたスケルトンと、図23の(3)で開発者によって記述されたサーバアプリケーションのソースファイルとをコンパイルおよびリンクすると、実行形式のサーバアプリケーションが生成される(図23の(5)を参照)。また、生成されたスタブと、図23の(3)で開発者によって記述されたクライアントアプリケーションのソースファイルとをコンパイルおよびリンクすると、実行形式のクライアントアプリケーションが生成される(図23の(6)を参照)。
このように、CORBAの仕様に従ってアプリケーションが開発されるには、開発者によって、サーバアプリケーションおよびクライアントアプリケーションのソースファイルが記述される段階(図23の(3)を参照)で、CORBAに依存した記述がなされなければならず(図24を参照)、すなわち、開発者にCORBAに関する知識が必要とされる結果、開発者側の負担が大きくなる。
そこで、例えば、特許文献1では、開発者によって、サーバアプリケーションおよびクライアントアプリケーションのソースファイルが記述される段階で、CORBAに依存した記述が不要な方法が提案されている。具体的には、CORBA独自の仕様による処理、設定、データの型変換などを、アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成する連携用アダプタに代行させ、この連携用アダプタがCORBAオブジェクト(機能ごとに分割されたアプリケーション)にアクセスすることで、アプリケーション間の連携実行を実現する方法である。
この連携用アダプタは、特許文献1の段落番号[0041]に記述されるように、複数のCORBAオブジェクトのクラス(IDLにおけるインタフェース)ごとに生成されて、任意のCORBAオブジェクトにアクセスする場合や、特許文献1の段落番号[0093]に記述されるように、ひとつの連携用汎用アダプタによって任意のCORBAオブジェクトにアクセスする場合など、種々の実施形態において提案されている。
そして、いずれの場合においても、連携用アダプタは、複数存在するCORBAオブジェクトを識別しなければならないので、ネーミングサービス機能などを利用することによって、CORBAオブジェクトを一意に識別している。例えば、図25に示すように、CORBAオブジェクトの識別子と、これに対応するオブジェクト情報とをネーミングサービス機能としてアプリケーションサーバ(アプリケーション間の連携実行を実現することを目的としたミドルウェアの一種)が保持し、連携用アダプタがこれらの情報を参照することによって、CORBAプロキシを生成する。そして、連携アダプタは、ネーミングサービス機能を参照することによって生成されたCORBAプロキシを用いて、CORBAオブジェクトにアクセスする。
特開2003−157242号公報
ところで、上記した従来の技術では、連携用アダプタは、ネーミングサービス機能などを利用することによって、CORBAオブジェクトを一意に識別しなければならないので、ネーミングサービス機能を利用するための手段などを連携用アダプタ自身が備えなければならず、連携用アダプタの機構が大きくなり、処理における負荷が大きくなるおそれがある。また、ネーミングサービス機能などを利用すると、その処理自体に時間を要し、処理が遅くなるおそれがある。これらのことから、上記した従来の技術では、複数のアプリケーション間の連携実行環境の性能が低下するおそれがあるという課題があった。
このような課題を解決するため、ミドルウェア基盤自体をひとつのCORBAオブジェクトとみなす方法を提案する。具体的に説明すると、このミドルウェア基盤は、図26に示すように、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現するもので、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体を当該ミドルウェア基盤に配備されるアプリケーションとのインタフェースとする。ミドルウェア基盤がこのような固有のインタフェースを提供することで、アプリケーションは、ミドルウェア基盤自体をひとつのCORBAオブジェクトとみなすことが可能になる。
したがって、この提案によれば、アプリケーション間の連携を仲介するための仲介プログラムが、CORBAオブジェクトを識別するためのネーミングサービス機能などを利用しないので、ネーミングサービス機能を利用するための手段などを仲介プログラムが備える必要がなく、仲介プログラムの機構を小さくし、処理における負荷を小さくすることが可能になる。また、ネーミングサービス機能などを利用しないので、その処理自体にかかる時間を削減することが可能になる。これらのことから、上記の提案によれば、複数のアプリケーション間の連携実行環境の性能を向上させることが可能になる。
しかしながら、この提案によっても、ミドルウェア基盤上に配備される複数のアプリケーションは、当該ミドルウェア基盤によって提供される固有のインタフェースの仕様に従って、開発者によって記述されなければならない。すなわち、開発者に当該ミドルウェア基盤によって提供される固有のインタフェースの仕様に関する知識が必要とされる結果、結局、開発者側の負担が大きくなるという課題が生じる。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、開発者にミドルウェア基盤によって提供される固有のインタフェースの仕様に関する知識が必要とされる場合に比較して、複数のアプリケーション間の連携実行環境を、開発から運用に至るまで効率的に行わせることが可能な仲介プログラム開発支援プログラム、仲介プログラム開発支援方法および仲介プログラム開発支援装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現するミドルウェア基盤に配備され、前記アプリケーション間の連携を仲介する仲介プログラムの開発を支援する方法をコンピュータに実行させる仲介プログラム開発支援プログラムであって、CORBAを吸収隠蔽した前記ミドルウェア基盤に配備され、バイナリ形式でデータを格納する構造体を当該ミドルウェア基盤とのインタフェースとして前記アプリケーション間の連携を仲介する仲介プログラムを、当該アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成する仲介プログラム生成手順をコンピュータに実行させることを特徴とする。
また、本発明は、上記の発明において、前記ミドルウェア基盤から前記アプリケーションを呼び出すために必要となるアプリケーション呼び出し定義情報を生成するアプリケーション呼び出し定義情報生成手順と、前記アプリケーションに係る関数のインタフェース定義情報を示すアプリケーションインタフェース定義情報を生成するアプリケーションインタフェース定義情報生成手順と、をさらにコンピュータに実行させることを特徴とする。
また、本発明は、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現するミドルウェア基盤に配備され、前記アプリケーション間の連携を仲介する仲介プログラムの開発を支援する仲介プログラム開発支援方法であって、CORBAを吸収隠蔽した前記ミドルウェア基盤に配備され、バイナリ形式でデータを格納する構造体を当該ミドルウェア基盤とのインタフェースとして前記アプリケーション間の連携を仲介する仲介プログラムを、当該アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成する仲介プログラム生成工程を含んだことを特徴とする。
また、本発明は、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現するミドルウェア基盤に配備され、前記アプリケーション間の連携を仲介する仲介プログラムの開発を支援する仲介プログラム開発支援装置であって、CORBAを吸収隠蔽した前記ミドルウェア基盤に配備され、バイナリ形式でデータを格納する構造体を当該ミドルウェア基盤とのインタフェースとして前記アプリケーション間の連携を仲介する仲介プログラムを、当該アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成する仲介プログラム生成手段を備えたことを特徴とする。
本発明によれば、CORBAを吸収隠蔽したミドルウェア基盤に配備され、バイナリ形式でデータを格納する構造体をミドルウェア基盤とのインタフェースとしてアプリケーション間の連携を仲介する仲介プログラムを、アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成するので、開発者にミドルウェア基盤によって提供される固有のインタフェースの仕様に関する知識が必要とされる場合に比較して、IDLファイルなどの基本的な情報が用意されれば仲介プログラムが生成されることから、開発者側の負担が小さくなるとともに、複数のアプリケーション間の連携実行環境の性能も向上する結果、複数のアプリケーション間の連携実行環境を、開発から運用に至るまで効率的に行わせることが可能になる。
また、本発明によれば、ミドルウェア基盤からアプリケーションを呼び出すために必要となるアプリケーション呼び出し定義情報を生成し、アプリケーションに係る関数のインタフェース定義情報を示すアプリケーションインタフェース定義情報を生成するので、ミドルウェア基盤上に複数のアプリケーションが配備されている場合であっても、目的のアプリケーションおよびアプリケーションに係る関数を適切に選択し、実行することができる結果、複数のアプリケーション間の連携実行環境を、確実に実現することが可能になる。
以下に添付図面を参照して、この発明に係る仲介プログラム開発支援プログラム、仲介プログラム開発支援方法および仲介プログラム開発支援装置の実施例を詳細に説明する。なお、以下では、本実施例で用いる主要な用語、本実施例に係る仲介プログラム開発支援装置の概要および特徴、仲介プログラム開発支援装置の構成および処理の流れ、本実施例の効果を順に説明し、最後に本実施例に対する種々の変形例を説明する。
[用語の説明]
まず最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「サーバアプリケーション(特許請求の範囲に記載の「複数のアプリケーション」に対応する)」とは、ネットワークに接続されたコンピュータ上で動作し、サービス機能を提供するアプリケーションソフトウェアである。例えば、企業における人事システムや経理システムを運営する基幹系の業務アプリケーションサーバ、大量のデータを保有し各種問い合わせに応じて情報を提供するデータベースサーバ、またはインターネットやイントラネットに接続して各種情報を提供するWWWサーバなどのアプリケーションソフトウェアである。このようなサーバアプリケーションは、各種プログラミング言語(例えば、C、Java(登録商標)など)で記述されたプログラムとして、コンピュータ上にインストールされる。
また、「クライアントアプリケーション(特許請求の範囲に記載の「複数のアプリケーション」に対応する)」とは、ネットワークに接続されたコンピュータ上で動作し、上記したサーバアプリケーションから提供されるサービス機能を利用するアプリケーションである。例えば、基幹系業務アプリケーションサーバから提供される人事システムや経理システムを扱うアプリケーションソフトウェア、データベースサーバに問い合わせをして情報を検索するアプリケーションソフトウェア、またはWWWサーバにアクセスして各種情報を取得するアプリケーションソフトウェアなどである。このようなクライアントアプリケーションは、各種プログラミング言語で記述されたプログラムとして、コンピュータ上にインストールされる。
また、上記した各種プログラミング言語のひとつである「C(特許請求の範囲に記載の「プログラミング言語」に対応する)」とは、豊富な HYPERLINK "http://e-words.jp/w/E6BC94E7AE97E5AD90.html" 演算子、データ型、および制御構造を持ち、構造化プログラミングに適したプログラミング言語のことである。また、「Java(登録商標)(特許請求の範囲に記載の「プログラミング言語」に対応する)」とは、オブジェクト指向性を備えたプログラミング言語のことである。
次に、本実施例で用いる「ミドルウェア基盤(特許請求の範囲に記載の「ミドルウェア基盤」に対応する)とは、図26に示すように、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現する基盤型のソフトウェアである。すなわち、CやJava(登録商標)などで記述されたサーバアプリケーションと、CやJava(登録商標)などで記述されたクライアントアプリケーションとの間、もしくは、CやJava(登録商標)などで記述されたサーバアプリケーション同士の間で複数のアプリケーション間の連携実行を実現するための仕組みを有するソフトウェアである。また、ミドルウェア基盤では配備される各種プログラミング言語で記述されたアプリケーションの言語に固有な処理(例えば、COBOL実行環境の開設・閉鎖など)を実行し、どの言語のアプリケーションを配備するかを配備時に意識させないことを特徴としている。
そして、本実施例で用いる「CORBA(Common Object Request Broker Architecture:特許請求の範囲に記載の「CORBA」に対応する)」とは、このようなミドルウェア基盤のひとつの仕様であり、サーバアプリケーションおよびクライアントアプリケーションを作成するための仕組みや、作成されたこれらのアプリケーションを動作させるための仕組みなどが規定されている。
そして、上記したミドルウェア基盤上にサーバアプリケーションやクライアントアプリケーションを配備するにあたっては、一般に、図26に示すように、アプリケーション間の連携を仲介するための仲介プログラムが必要となる。本実施例で用いる「C固有処理ソースファイル(特許請求の範囲に記載の「仲介プログラム」に対応する)」とは、Cで記述されたアプリケーションと、他のプログラミング言語で記述されたアプリケーションとの連携を仲介する仲介プログラムであり、本実施例で用いる「Java(登録商標)Beanソースファイル(特許請求の範囲に記載の「仲介プログラム」に対応する)」と「Java(登録商標)構造体ソースファイル(特許請求の範囲に記載の「仲介プログラム」に対応する)」とは、Java(登録商標)で記述されたアプリケーションと、他のプログラミング言語で記述されたアプリケーションとの連携を仲介する仲介プログラムである。
[仲介プログラム開発支援装置の概要および特徴]
続いて、図1を用いて、本実施例に係る仲介プログラム開発支援装置の概要および特徴を説明する。図1は、実施例1に係る仲介プログラム開発支援装置の概要および特徴を説明するための図である。なお、以下では、Cで記述されたサーバアプリケーションと、Java(登録商標)で記述されたクライアントアプリケーションとの連携を仲介する仲介プログラム(C固有処理ソースファイル、Java(登録商標)Beanソースファイル、およびJava(登録商標)構造体ソースファイル)の開発を支援する場合を説明する。
実施例1に係る仲介プログラム開発支援装置は、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現するミドルウェア基盤に配備され、前記アプリケーション間の連携を仲介する仲介プログラムの開発を支援することを概要とし、複数のアプリケーション間の連携実行環境を、開発から運用に至るまで効率的に行わせることを可能にしている点に主たる特徴がある。
この主たる特徴について簡単に説明すると、図1に示すように、実施例1に係る仲介プログラム開発支援装置では、サーバアプリケーションに係るインタフェース定義情報(例えば、サーバアプリケーションに係るパラメータのデータ型など)が、開発者によってIDL(Interface Definition Language)で記述されたIDLファイルをIDLファイル記憶部に記憶する(図1の(1)を参照)。また、仲介プログラム開発支援装置では、アプリケーションに係る情報(例えば、サーバアプリケーション名、ライブラリ名など)が開発者によって記述されたアプリケーション情報入力ファイルをアプリケーション情報入力ファイル記憶部に記憶する(図1の(1)を参照)。なお、IDLファイルとは、特許請求の範囲に記載の「IDLファイル」に対応する。
そして、実施例1に係る仲介プログラム開発支援装置は、仲介プログラム開発支援装置を動作させるための仲介プログラム生成指示を受け付ける(図1の(2)を参照)。次に、仲介プログラム開発支援装置は、IDLファイルを用いて、仲介プログラムであるC固有処理ソースファイルを生成し、C固有処理ソースファイル記憶部に記憶する(図1の(3)を参照)。具体的には、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体をインタフェースとするミドルウェア基盤とサーバアプリケーションとを連携することを目的として、仲介プログラム開発支援装置は、C固有処理生成部においてIDLファイルの解析を行い、サーバアプリケーションに係るパラメータをCのデータ型に変換するための関数を記述するなどして、C固有処理ソースファイルを生成する。
例えば、IDLファイルに、サーバアプリケーションの関数名を示すIDLのオペレーション名「op」が記述されている場合には、仲介プログラム開発支援装置のC固有処理生成部は、C固有処理ソースファイルに「apfwskel_op」という名前の関数を記述する。なお、複数のアプリケーション間の連携実行環境においては、この関数によってミドルウェア基盤からサーバアプリケーションの呼び出しが行われると、ミドルウェア基盤においてバイナリ形式で構造体に格納されていたデータは、Cのデータ型に変換されてサーバアプリケーションに渡される。
続いて、仲介プログラム開発支援装置は、IDLファイルおよびアプリケーション情報入力ファイルを用いて、ミドルウェア基盤からアプリケーションを呼び出すために必要となるアプリケーション呼び出し定義情報を生成し、アプリケーション呼び出し定義ファイルとしてアプリケーション呼び出し定義ファイル記憶部に記憶する(図1の(3)を参照)。具体的には、仲介プログラム開発支援装置は、C固有処理生成部においてIDLファイルおよびアプリケーション情報入力ファイルの解析を行い、クライアントアプリケーションなどから呼び出されるサーバアプリケーションのサーバアプリケーション名の定義、サーバアプリケーションが存在するライブラリ名の定義、サーバアプリケーションの関数名の定義などを記述する。
例えば、IDLファイルに、サーバアプリケーションの関数名を示すIDLのオペレーション名「op」が記述されている場合には、仲介プログラム開発支援装置のC固有処理生成部は、アプリケーション呼び出し定義情報として「<func name="op"/>」を記述する。なお、複数のアプリケーション間の連携実行環境においては、ミドルウェア基盤からサーバアプリケーションの関数の呼び出しが行われる時には、「apfwskel_op」という関数名で呼び出され、バイナリ形式で構造体に格納されたデータをCのデータ型に変換した上で、「op」というアプリケーション呼び出し定義に記述された関数名で呼び出される。
一方、アプリケーション情報入力ファイルに、オペレーション名「op」に対してサーバアプリケーションのサーバアプリケーション名「apl」と、サーバアプリケーションが存在するライブラリ名「libserverapl.so」とが記述されている場合には、仲介プログラム開発支援装置のC固有処理生成部は、アプリケーション呼び出し定義情報として、「<target name="apl">」と、「<library name="libserverapl.so"/>」とを記述する。なお、複数のアプリケーション間の連携実行環境においては、ミドルウェア基盤からサーバアプリケーションの呼び出しが行われる時には、サーバアプリケーション名「apl」が指定された場合に「libserverapl.so」というライブラリに存在する「apfwskel_op」という関数名で呼び出される。
また、仲介プログラム開発支援装置は、IDLファイルおよびアプリケーション情報入力ファイルを用いて、アプリケーションに係る関数のインタフェース情報を示すアプリケーションインタフェース定義情報を生成し、アプリケーションインタフェース定義ファイルとしてアプリケーションインタフェース定義ファイル記憶部に記憶する(図1の(3)を参照)。具体的には、仲介プログラム開発支援装置は、C固有処理生成部においてIDLファイルおよびアプリケーション情報入力ファイルの解析を行い、サーバアプリケーションの関数名、関数の戻り値、パラメータの方向、パラメータのデータ型、およびパラメータ名などを記述する。
例えば、IDLファイルに、「void op(in long indata)」と記述されている場合には、仲介プログラム開発支援装置のC固有処理生成部は、アプリケーションインタフェース定義情報として、「<func name="op">」、「<return type="void"/>」、および「<param name="indata" type="long" direction="IN"/>」を記述する。なお、複数のアプリケーション間の連携実行環境においては、ミドルウェア基盤からサーバアプリケーションの関数の呼び出しが行われると、呼び出しは「op」という関数名、関数の戻り値は「void」、パラメータの方向は「in」、パラメータのデータ型は「long」、およびパラメータ名は「indata」となる。
次に、仲介プログラム開発支援装置は、IDLファイルを用いて、仲介プログラムであるJava(登録商標)BeanソースファイルおよびJava(登録商標)構造体ソースファイルを生成し、Java(登録商標)Beanソースファイル記憶部およびJava(登録商標)構造体ソースファイル記憶部にそれぞれ記憶する(図1の(4)を参照)。具体的には、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体をインタフェースとするミドルウェア基盤とクライアントアプリケーションとを連携することを目的として、仲介プログラム開発支援装置は、Java(登録商標)Bean生成部においてIDLファイルの解析を行い、サーバアプリケーションに係るパラメータをJava(登録商標)のデータ型に変換するための関数を記述するなどして、Java(登録商標)BeanソースファイルおよびJava(登録商標)構造体ソースファイルを生成する。
なお、このようにして仲介プログラム開発支援装置が生成したC固有処理ソースファイルは、開発者が別途作成するCサーバアプリケーションソースファイルとともにコンパイルおよびリンクされることで、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体をインタフェースとするミドルウェア基盤に配備されるサーバアプリケーションとなる。また、同様に、仲介プログラム開発支援装置が生成したJava(登録商標)BeanソースファイルおよびJava(登録商標)構造体ソースファイルは、開発者が別途作成するJava(登録商標)クライアントアプリケーションソースファイルとともにコンパイルおよびリンクされることで、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体をインタフェースとするミドルウェア基盤に配備されるクライアントアプリケーションとなる。
このようなことから、実施例1に係る仲介プログラム開発支援装置は、開発者にミドルウェア基盤によって提供される固有のインタフェースの仕様に関する知識が必要とされる場合に比較して、IDLファイルなどの基本的な情報が用意されれば仲介プログラムが生成されることから、開発者側の負担が小さくなるとともに、複数のアプリケーション間の連携実行環境の性能も向上する結果、複数のアプリケーション間の連携実行環境を、開発から運用に至るまで効率的に行わせることが可能になる。
[仲介プログラム開発支援装置の構成]
続いて、図2〜図18用いて、実施例1に係る仲介プログラム開発支援装置の構成を説明する。図2は、実施例1に係る仲介プログラム開発支援装置の構成を示すブロック図であり、図3および図4は、IDLファイル記憶部を説明するための図であり、図5は、アプリケーション情報入力ファイル記憶部を説明するための図であり、図6〜図11は、C固有処理ソースファイル記憶部を説明するための図であり、図12は、アプリケーション呼び出し定義ファイル記憶部を説明するための図であり、図13は、アプリケーションインタフェース定義ファイル記憶部を説明するための図であり、図14および図15は、Java(登録商標)Beanソースファイル記憶部を説明するための図であり、図16〜図18は、Java(登録商標)構造体ソースファイル記憶部を説明するための図であり、図19は、実施例1に係るC固有処理生成部の構成を示すブロック図である。
図2に示すように、仲介プログラム開発支援装置10は、入力部11と、出力部12と、入出力制御IF部13と、記憶部20と、制御部30とから構成される。
入力部11は、制御部30による各種処理に用いるデータや、各種処理をするための操作指示などを、キーボード、記憶媒体、または通信などによって入力する入力手段である。具体的には、アプリケーションに係るインタフェース定義情報(例えば、アプリケーションに係るパラメータのデータ型など)が開発者によってIDLで記述されたIDLファイルと、アプリケーションに係る情報(例えば、サーバアプリケーション名、ライブラリ名など)が開発者によって記述されたアプリケーション情報入力ファイルと、仲介プログラム生成指示など各種操作指示とを入力する。なお、入力部11によって入力されたIDLファイルは、後述するIDLファイル記憶部21に記憶され、アプリケーション情報入力ファイルは、後述するアプリケーション情報入力ファイル記憶部22に記憶される。
出力部12は、制御部30による各種処理の結果や、各種処理をするための操作指示などを、モニタ、プリンタ、またはスピーカーなどに出力する出力手段である。具体的には、各種処理の過程を示すログ情報、入力部11から入力される各種操作指示、または生成されたファイルの一覧などを出力する。
入出力制御IF部13は、入力部11および出力部12と、記憶部20および制御部30との間におけるデータ転送を制御する手段である。
記憶部20は、制御部30による各種処理に用いるデータを記憶する記憶手段であり、特に本発明に密接に関連するものとしては、図2に示すように、IDLファイル記憶部21と、アプリケーション情報入力ファイル記憶部22と、C固有処理ソースファイル記憶部23と、アプリケーション呼び出し定義情報ファイル記憶部24と、アプリケーションインタフェース定義ファイル記憶部25と、Java(登録商標)Beanソースファイル記憶部26と、Java(登録商標)構造体ソースファイル記憶部27とを備える。
かかる記憶部20のなかで、IDLファイル記憶部21は、仲介プログラム開発支援装置10が仲介プログラムを生成するために必要となる情報であって、入力部11によって入力されたIDLファイルを記憶する記憶手段である。具体的には、図3および図4に例示するように、アプリケーションに係るインタフェース定義情報が、開発者によってIDLで記述されたIDLファイルを記憶する。例えば、図3に示す「interface apfw_inf」という記述は、サーバアプリケーションのインタフェース名が「apfw_inf」であることがIDLで記述されたものであり、また、「void op(in long indata)」という記述は、サーバアプリケーションの関数名が「op」、関数の戻り値が「void」、パラメータの方向が「in」、パラメータのデータ型が「long」、およびパラメータ名が「indata」であることがIDLで記述されたものである。
同様に、図4においても、サーバアプリケーションのインタフェース名が「apfwinf」、サーバアプリケーションの関数名が「sampleop1」、関数の戻り値が「void」であること、パラメータ名「indata」のパラメータの方向が「in」で、データ型が「sample_struct1」であること、パラメータ名「outdata」のパラメータ方向が「out」で、データ型が「sample_struct1」であることなどの情報が、IDLで記述されている。
アプリケーション情報入力ファイル記憶部22は、仲介プログラム開発支援装置10が仲介プログラムを生成するために必要となる情報であって、入力部11によって入力されたアプリケーション情報入力ファイルを記憶する記憶手段である。具体的には、図5に例示するように、アプリケーションに係る情報が開発者によって記述されたアプリケーション情報入力ファイルを記憶する。例えば、図5に示す「<target name="apl"/>」という記述は、サーバアプリケーション名が「apl」であることが記述されたものであり、「<library name="libserverapl.so"/>」という記述は、サーバアプリケーションが存在するライブラリ名が「libserverapl.so」であることが記述されたものである。なお、図5では、アプリケーション情報入力ファイルの記述言語として、XML(eXtensible Markup Language)を用いる場合を例示したが、本発明はこれに限定されるものではなく、SGML(Standard Generalized Mark-up Language)を用いるなど、文書を記述する言語であれば、いずれでもよい。
C固有処理ソースファイル記憶部23は、後述するC固有処理生成部31によって生成されたC固有処理ソースファイルを記憶する記憶手段である。具体的には、図6〜図11に例示するように、Cで記述された仲介プログラムのソースファイルを記憶する。例えば、「apfwskel_sampleop1」という記述は、サーバアプリケーションの関数名であり、複数のアプリケーション間の連携実行環境においては、この関数によってミドルウェア基盤からサーバアプリケーションの呼び出しが行われると、ミドルウェア基盤においてバイナリ形式で構造体に格納されていたデータは、Cのデータ型に変換されてサーバアプリケーションに渡される。なお、C固有処理ソースファイルは、開発者によって別途作成されるCサーバアプリケーションソースファイルとともにコンパイルおよびリンクされることで、ミドルウェア基盤に配備されるアプリケーションとなる。
アプリケーション呼び出し定義ファイル記憶部24は、後述するC固有処理生成部31によって生成されたアプリケーション呼び出し定義情報を、アプリケーション呼び出し定義ファイルとして記憶する記憶手段である。具体的には、図12に例示するように、ミドルウェア基盤からアプリケーションを呼び出すために必要となるアプリケーション呼び出し定義情報を主に記憶する。例えば、図12に示す「<target name="apl">」という記述は、サーバアプリケーション名が「apl」であることが記述されたものであり、「<library name="libserverapl.so"/>」という記述は、サーバアプリケーションが存在するライブラリ名が「libserverapl.so」であることが記述されたものであり、「<func name="op">/」という記述は、サーバアプリケーションの関数名が「op」であることが記述されたものである。なお、図12では、アプリケーション呼び出し定義ファイルの記述言語として、XML(eXtensible Markup Language)を用いる場合を例示したが、本発明はこれに限定されるものではなく、SGML(Standard Generalized Mark-up Language)を用いるなど、文書を記述する言語であれば、いずれでもよい。
アプリケーションインタフェース定義ファイル記憶部25は、後述するC固有処理生成部31によって生成されたアプリケーションインタフェース定義情報を、アプリケーションインタフェース定義ファイルとして記憶する記憶手段である。具体的には、図13に例示するように、アプリケーションに係る関数のインタフェース情報を示すアプリケーションインタフェース定義情報を主に記憶する。例えば、図13に示す「<func name="op">」という記述は、サーバアプリケーションの関数名が「op」であることが記述されたものであり、「<return type="void"/>」という記述は、関数の戻り値が「void」であることが記述されたものであり、「<param name="indata" type="long" direction="in"/>」は、サーバアプリケーションに係るパラメータ名が「indata」であること、パラメータのデータ型が「long」であること、パラメータの方向が「in」であることが記述されたものである。なお、図13では、アプリケーションインタフェース定義ファイルの記述言語として、XML(eXtensible Markup Language)を用いる手段を例示したが、本発明はこれに限定されるものではなく、SGML(Standard Generalized Mark-up Language)を用いるなど、文書を記述する言語を用いる手段であれば、いずれの手段でもよい。
Java(登録商標)Beanソースファイル記憶部26は、後述するJava(登録商標)Bean生成部32によって生成されたJava(登録商標)Beanソースファイルを記憶する記憶手段である。具体的には、図14および図15に例示するように、Java(登録商標)で記述された仲介プログラムのソースファイルを記憶する。例えば、「public class sampleop1Bean」という記述は、Java(登録商標)のソースファイルを構成する単位であるクラスの定義を行うことを意味している。なお、Java(登録商標)Beanソースファイルは、開発者によって別途作成されるJava(登録商標)クライアントアプリケーションソースファイルとともにコンパイルおよびリンクされることで、ミドルウェア基盤に配備されるアプリケーションとなる。
Java(登録商標)構造体ソースファイル記憶部27は、後述するJava(登録商標)Bean生成部32によって生成されたJava(登録商標)構造体ソースファイルを記憶する記憶手段である。具体的には、図16〜図18に例示するように、Java(登録商標)で記述された仲介プログラムのソースファイルを記憶する。例えば、「final public class sample_str1」という記述は、クラスの定義を行うことを意味し、「public Java(登録商標).lang.String sample_picx;」という記述は、データ型がstring型である「sample_picx」というパラメータ名のパラメータを定義している。なお、Java(登録商標)構造体ソースファイルは、開発者によって別途作成されるJava(登録商標)クライアントアプリケーションソースファイルとともにコンパイルおよびリンクされることで、ミドルウェア基盤に配備されるアプリケーションとなる。
制御部30は、仲介プログラム開発支援装置10を制御して各種処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図2に示すようにC固有処理生成部31と、Java(登録商標)Bean生成部32とを備える。
かかる制御部30のなかで、C固有処理生成部31は、C固有処理ソースファイルと、アプリケーション呼び出し定義ファイルと、アプリケーションインタフェース定義ファイルとを生成する処理部である。具体的には、IDLファイル記憶部21に記憶されているIDLファイルと、アプリケーション情報入力ファイル記憶部22に記憶されているアプリケーション情報入力ファイルとを用いて、C固有処理ソースファイルと、アプリケーション呼び出し定義ファイルと、アプリケーションインタフェース定義ファイルとを生成し、C固有処理ソースファイル記憶部23と、アプリケーション呼び出し定義ファイル記憶部24と、アプリケーションインタフェース定義ファイル記憶部25とに、それぞれ記憶させる。
ここで、C固有処理生成部31の構成を、図19を用いて具体的に説明する。C固有処理生成部31は、図19に示すように、C固有処理ソースファイル生成部31aと、アプリケーション呼び出し定義情報生成部31bと、アプリケーションインタフェース定義情報生成部31cとを備える。なお、C固有処理ソースファイル生成部31aは、特許請求の範囲に記載の「仲介プログラム生成手順」に対応し、アプリケーション呼び出し定義情報生成部31bは、特許請求の範囲に記載の「アプリケーション呼び出し定義情報生成手順」に対応し、アプリケーションインタフェース定義情報生成部31cは、特許請求の範囲に記載の「アプリケーションインタフェース定義情報生成手順」に対応する。
かかるC固有処理生成部31を具体的に説明すると、C固有処理ソースファイル生成部31aは、CORBAを吸収隠蔽したミドルウェア基盤に配備され、バイナリ形式でデータを格納する構造体をミドルウェア基盤とのインタフェースとしてアプリケーション間の連携を仲介する仲介プログラムを、アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成する処理部である。具体的には、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体をインタフェースとするミドルウェア基盤とサーバアプリケーションとを連携することを目的として、C固有処理ソースファイル生成部31aは、IDLファイルの解析を行い、サーバアプリケーションに係るパラメータをCのデータ型に変換するための関数を記述するなどして、C固有処理ソースファイルを生成する。
例えば、図4に示すように、IDLファイルに、サーバアプリケーションの関数名を示すIDLのオペレーション名「sampleop1」が記述されている場合、C固有処理ソースファイル生成部31aは、図6に示すように、C固有処理ソースファイルに「apfwskel_sampleop1」という名前の関数を記述する。なお、複数のアプリケーション間の連携実行環境においては、この関数によってミドルウェア基盤からサーバアプリケーションの呼び出しが行われると、ミドルウェア基盤においてバイナリ形式で構造体に格納されていたデータは、Cのデータ型に変換されてサーバアプリケーションに渡される。
アプリケーション呼び出し定義情報生成部31bは、ミドルウェア基盤からアプリケーションを呼び出すために必要となるアプリケーション呼び出し定義情報を生成する処理部である。具体的には、アプリケーション呼び出し定義情報生成部31bは、IDLファイルおよびアプリケーション情報入力ファイルの解析を行い、クライアントアプリケーションなどから呼び出されるサーバアプリケーションのサーバアプリケーション名の定義、サーバアプリケーションが存在するライブラリ名の定義、サーバアプリケーションの関数名などを記述する。
例えば、図3に示すように、IDLファイルに、サーバアプリケーションの関数名を示すIDLのオペレーション名「op」が記述されている場合、アプリケーション呼び出し定義情報生成部31bは、図12に示すように、アプリケーション呼び出し定義情報として「<func name="op"/>」を記述する。なお、複数のアプリケーション間の連携実行環境においては、ミドルウェア基盤からサーバアプリケーションの関数の呼び出しが行われる時には、「apfwskel_op」という関数名で呼び出され、バイナリ形式で構造体に格納されたデータをCのデータ型に変換した上で、「op」というアプリケーション呼び出し定義に記述された関数名で呼び出される。
一方、図5に示すように、アプリケーション情報入力ファイルに、オペレーション名「op」に対してサーバアプリケーションのサーバアプリケーション名「apl」と、サーバアプリケーションが存在するライブラリ名「libserverapl.so」とが記述されている場合、アプリケーション呼び出し定義情報生成部31bは、図12に示すように、アプリケーション呼び出し定義情報として、「<target name="apl">」と、「<library name="libserverapl.so"/>」とを記述する。なお、複数のアプリケーション間の連携実行環境においては、ミドルウェア基盤からサーバアプリケーションの呼び出しが行われる時には、サーバアプリケーション名「apl」が指定された場合に「libserverapl.so」というライブラリに存在する「apfwskel_op」という関数名で呼び出される。
アプリケーションインタフェース定義情報生成部31cは、アプリケーションに係る関数のインタフェース定義情報を示すアプリケーションインタフェース定義情報を生成する処理部である。具体的には、アプリケーションインタフェース定義情報生成部31cは、IDLファイルおよびアプリケーション情報入力ファイルの解析を行い、サーバアプリケーションの関数名、関数の戻り値、パラメータの方向、パラメータのデータ型、およびパラメータ名などを記述する。
例えば、図3に示すように、IDLファイルに、「void op(in long indata)」と記述されている場合、アプリケーションインタフェース定義情報生成部31cは、図13に示すように、アプリケーションインタフェース定義情報として、「<func name="op">」、「<return type="void"/>」、および「<param name="indata"type="long"direction="IN"/>」を記述する。なお、複数のアプリケーション間の連携実行環境においては、ミドルウェア基盤からサーバアプリケーションの関数の呼び出しが行われると、呼び出しは「op」という関数名、関数の戻り値は「void」、パラメータの方向は「in」、パラメータのデータ型は「long」、およびパラメータ名は「indata」となる。
ここで、図2に戻ると、Java(登録商標)Bean生成部32は、Java(登録商標)Beanソースファイルと、Java(登録商標)構造体ソースファイルとを生成する処理部である。具体的には、IDLファイル記憶部21に記憶されているIDLファイルを用いて、Java(登録商標)Beanソースファイルと、Java(登録商標)構造体ソースファイルとを生成し、Java(登録商標)Beanソースファイル記憶部26と、Java(登録商標)構造体ソースファイル記憶部27とに、それぞれ記憶させる。なお、Java(登録商標)Bean生成部32は、特許請求の範囲に記載の「仲介プログラム生成手順」に対応する。
かかるJava(登録商標)Bean生成部32は、CORBAを吸収隠蔽し、バイナリ形式でデータを格納する構造体をインタフェースとするミドルウェア基盤とクライアントアプリケーションとを連携することを目的として、IDLファイルの解析を行い、サーバアプリケーションに係るパラメータをJava(登録商標)のデータ型に変換するための関数を記述するなどして、Java(登録商標)BeanソースファイルおよびJava(登録商標)構造体ソースファイルを生成する。例えば、図4に示すように、IDLファイルに、サーバアプリケーションの関数名を示すIDLのオペレーション名「sampleop1」が記述されている場合、Java(登録商標)Bean生成部32は、図14に示すように、Java(登録商標)Beanソースファイルに「public class sampleop1Bean」とクラスを定義する。なお、複数のアプリケーション間の連携実行環境においては、この関数によってミドルウェア基盤からサーバアプリケーションの呼び出しが行われると、ミドルウェア基盤においてバイナリ形式で構造体に格納されていたデータは、Java(登録商標)のデータ型に変換されてクライアントアプリケーションに渡される。
[仲介プログラム開発支援装置による処理]
次に、図20および図21を用いて、実施例1における仲介プログラム開発支援装置による処理を説明する。図20は、実施例1における仲介プログラム開発支援処理の手順を示すフローチャートであり、図21は、実施例1におけるC固有処理生成処理の手順を示すフローチャートである。
図20に示すように、仲介プログラム開発支援装置10において、仲介プログラム開発支援装置を動作させるための仲介プログラム生成指示を入力部11から受け付けた場合に(ステップS2001肯定)、C固有処理生成部31は、IDLファイル記憶部21に記憶されたIDLファイルと、アプリケーション情報入力ファイル記憶部22に記憶されたアプリケーション情報入力ファイルとを用いて、C固有処理ソースファイルと、アプリケーション呼び出し定義ファイルと、アプリケーションインタフェース定義ファイルとを生成し、C固有処理ソースファイルをC固有処理ソースファイル記憶部23に、アプリケーション呼び出し定義ファイルをアプリケーション呼び出し定義ファイル記憶部24に、アプリケーションインタフェース定義ファイルをアプリケーションインタフェース定義ファイル記憶部25に記憶させる(ステップS2002)。
そして、Java(登録商標)Bean生成部32は、IDLファイル記憶部21に記憶されたIDLファイルと、アプリケーション情報入力ファイル記憶部22に記憶されたアプリケーション情報入力ファイルとを用いて、Java(登録商標)Beanソースファイルと、Java(登録商標)構造体ソースファイルとを生成し、Java(登録商標)BeanソースファイルをJava(登録商標)Beanソースファイル記憶部26に、Java(登録商標)構造体ソースファイルをJava(登録商標)構造体ソースファイル記憶部27に記憶させる(ステップS2003)。
ここで、C固有処理生成処理の手順を、図21を用いて具体的に説明する。図21に示すように、まず、C固有処理ソースファイル生成部31aは、IDLファイル記憶部21に記憶されたIDLファイルの解析を行い、サーバアプリケーションに係るパラメータをCのデータ型に変換するための関数を記述するなどして、C固有処理ソースファイルを生成し、C固有処理ソースファイル記憶部23に記憶させる(ステップS2101)。
そして、アプリケーション呼び出し定義情報生成部31bは、IDLファイル記憶部21に記憶されたIDLファイルおよびアプリケーション情報入力ファイル記憶部22に記憶されたアプリケーション情報入力ファイルの解析を行い、クライアントアプリケーションなどから呼び出されるサーバアプリケーションのサーバアプリケーション名の定義、サーバアプリケーションが存在するライブラリ名の定義、サーバアプリケーションの関数名などを記述して、アプリケーション呼び出し定義情報を生成し、アプリケーション呼び出し定義情報ファイルとしてアプリケーション呼び出し定義ファイル記憶部24に記憶させる(ステップS2102)。
そして、アプリケーションインタフェース定義情報生成部31cは、IDLファイル記憶部21に記憶されたIDLファイルおよびアプリケーション情報入力ファイル記憶部22に記憶されたアプリケーション情報入力ファイルの解析を行い、サーバアプリケーションの関数名、関数の戻り値、パラメータの方向、パラメータのデータ型、およびパラメータ名などを記述して、アプリケーションインタフェース定義情報を生成し、アプリケーションインタフェース定義情報ファイルとして、アプリケーションインタフェース定義ファイル記憶部25に記憶させる(ステップS2103)。
なお、上述した仲介プログラム開発支援装置による処理では、IDLファイルおよびアプリケーション情報入力ファイルを用いて、C固有処理ソースファイル、アプリケーションインタフェース定義ファイル、アプリケーション呼び出し定義ファイル、Java(登録商標)Beanソースファイル、およびJava(登録商標)構造体ソースファイルを生成する場合を説明したが、仲介プログラム開発支援装置10としては、C固有処理ソースファイルのみを生成したり、アプリケーション呼び出し定義情報ファイルのみを生成するなど、生成するファイルが選択されることも、それに応じて、入力を受け付けるファイルを選択することも可能である。
[実施例1の効果]
上述してきたように、実施例1によれば、CORBAを吸収隠蔽したミドルウェア基盤に配備され、バイナリ形式でデータを格納する構造体をミドルウェア基盤とのインタフェースとしてアプリケーション間の連携を仲介する仲介プログラムを、アプリケーションに係るインタフェース定義情報を示すIDLファイルを用いて生成するので、開発者にミドルウェア基盤によって提供される固有のインタフェースの仕様に関する知識が必要とされる場合に比較して、IDLファイルなどの基本的な情報が用意されれば仲介プログラムが生成されることから、開発者側の負担が小さくなるとともに、複数のアプリケーション間の連携実行環境の性能も向上する結果、複数のアプリケーション間の連携実行環境を、開発から運用に至るまで効率的に行わせることが可能になる。
また、実施例1によれば、ミドルウェア基盤からアプリケーションを呼び出すために必要となるアプリケーション呼び出し定義情報を生成し、アプリケーションに係る関数のインタフェース定義情報を示すアプリケーションインタフェース定義情報を生成するので、ミドルウェア基盤上に複数のアプリケーションが配備されている場合であっても、目的のアプリケーションおよびアプリケーションに係る関数を適切に選択し、実行することができる結果、複数のアプリケーション間の連携実行環境を、確実に実現することが可能になる。
ところで、これまで実施例1に係る仲介プログラム開発支援装置について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例2に係る仲介プログラム開発支援装置として、異なる実施例を説明する。
[他のプログラミング言語]
上記の実施例1では、サーバアプリケーションがCで記述され、クライアントアプリケーションがJava(登録商標)で記述された場合を説明したが、本発明はこれに限定されるものではなく、サーバアプリケーションがCOBOLで記述され、クライアントアプリケーションがJava(登録商標)で記述された場合や、サーバアプリケーションがJava(登録商標)で記述され、クライアントアプリケーションがCで記述された場合など、サーバアプリケーションとクライアントアプリケーションとが他のプログラミング言語で記述された場合にも、本発明を同様に適用することができる。
[他の処理方式]
上記の実施例1では、サーバアプリケーションとクライアントアプリケーションとの連携実行を実現する場合を説明したが、本発明はこれに限定されるものではなく、サーバアプリケーション同士の連携実行を実現する場合や、非同期方式のシステムとの連携を実現する場合など、複数のアプリケーションが他の処理方式で構築される場合にも、本発明を同様に適用することができる。
[コンピュータ]
ところで、上記の実施例1で説明した各種の処理は、あらかじめ用意されたプログラムやパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図22を用いて、上記の実施例1と同様の機能を有する仲介プログラム開発支援プログラムを実行するコンピュータの一例を説明する。図22は、仲介プログラム開発支援プログラムを実行するコンピュータを示す図である。
図22に示すように、仲介プログラム開発支援装置(コンピュータ)40は、キャッシュ41、RAM42、HDD43、ROM44、およびCPU45をバス46で接続して構成される。ここで、ROM44には、上記の実施例1と同様の機能を発揮する仲介プログラム開発支援プログラム、つまり、図22に示すように、C固有処理生成プログラム44aと、Java(登録商標)Bean生成プログラム44bとがあらかじめ記憶されている。
そして、CPU45は、これらのプログラム44aおよび44bを読み出して実行することで、図22に示すように、各プログラム44aおよび44bは、C固有処理生成プロセス45aおよびJava(登録商標)Bean生成プロセス45bとなる。なお、各プロセス45aおよび45bは、図2に示した、C固有処理生成部31およびJava(登録商標)Bean生成部32にそれぞれ対応する。
また、図22に戻ると、HDD43には、IDLファイルテーブル43a、アプリケーション情報入力ファイルテーブル43b、C固有処理ソースファイルテーブル43c、アプリケーション呼び出し定義ファイルテーブル43d、アプリケーションインタフェース定義ファイルテーブル43e、Java(登録商標)Beanソースファイルテーブル43f、およびJava(登録商標)構造体ソースファイルテーブル43gが設けられる。なお、各テーブル43a、43b、43c、43d、43e、43f、および43gは、図2に示したIDLファイル記憶部21、アプリケーション情報入力ファイル記憶部22、C固有処理ソースファイル記憶部23、アプリケーション呼び出し定義ファイル記憶部24、アプリケーションインタフェース定義ファイル記憶部25、Java(登録商標)Beanソースファイル記憶部26、およびJava(登録商標)構造体ソースファイル記憶部27にそれぞれ対応する。
ところで、上記した各プログラム44aおよび44bについては、必ずしもROM44に記憶させておく必要はなく、例えば、コンピュータ40に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、または、コンピュータ40の内外に備えられるハードディスクドライブ(HDD)などの「固定用物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ40に接続される「他のコンピュータ(またはサーバ)」に記憶させておき、コンピュータ40がこれらからプログラムを読み出して実行するようにしてもよい。
[システム構成等]
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
以上のように、本発明に係る仲介プログラム開発支援プログラム、仲介プログラム開発支援方法および仲介プログラム開発支援装置は、各種プログラミング言語で記述された複数のアプリケーション間の連携実行を実現するミドルウェア基盤に配備され、前記アプリケーション間の連携を仲介する仲介プログラムの開発を支援することに有用であり、特に、複数のアプリケーション間の連携実行環境を、開発から運用に至るまで効率的に行わせることに適する。
実施例1に係る仲介プログラム開発支援装置の概要および特徴を説明するための図である。 実施例1に係る仲介プログラム開発支援装置の構成を示すブロック図である。 IDLファイル記憶部を説明するための図である。 IDLファイル記憶部を説明するための図である。 アプリケーション情報入力ファイル記憶部を説明するための図である。 C固有処理ソースファイル記憶部を説明するための図である。 C固有処理ソースファイル記憶部を説明するための図である。 C固有処理ソースファイル記憶部を説明するための図である。 C固有処理ソースファイル記憶部を説明するための図である。 C固有処理ソースファイル記憶部を説明するための図である。 C固有処理ソースファイル記憶部を説明するための図である。 アプリケーション呼び出し定義ファイル記憶部を説明するための図である。 アプリケーションインタフェース定義ファイル記憶部を説明するための図である。 Java(登録商標)Beanソースファイル記憶部を説明するための図である。 Java(登録商標)Beanソースファイル記憶部を説明するための図である。 Java(登録商標)構造体ソースファイル記憶部を説明するための図である。 Java(登録商標)構造体ソースファイル記憶部を説明するための図である。 Java(登録商標)構造体ソースファイル記憶部を説明するための図である。 実施例1に係るC固有処理生成部の構成を示すブロック図である。 実施例1における仲介プログラム開発支援処理の手順を示すフローチャートである。 実施例1におけるC固有処理生成処理の手順を示すフローチャートである。 仲介プログラム開発支援プログラムを実行するコンピュータを示す図である。 CORBAに従うアプリケーション開発の流れを説明するための図である。 CORBAに従うアプリケーションのソースファイルを説明するための図である。 背景技術を説明するための図である。 ミドルウェア基盤を説明するための図である。
符号の説明
10 仲介プログラム開発支援装置
11 入力部
12 出力部
13 入出力制御IF部
20 記憶部
21 IDLファイル記憶部
22 アプリケーション情報入力ファイル記憶部
23 C固有処理ソースファイル記憶部
24 アプリケーション呼び出し定義ファイル記憶部
25 アプリケーションインタフェース定義ファイル記憶部
26 Java(登録商標)Beanソースファイル記憶部
27 Java(登録商標)構造体ソースファイル記憶部
30 制御部
31 C固有処理生成部
31a C固有処理ソースファイル生成部
31b アプリケーション呼び出し定義情報生成部
31c アプリケーションインタフェース定義情報生成部
32 Java(登録商標)Bean生成部
40 仲介プログラム開発支援装置(コンピュータ)
41 キャッシュ
42 RAM
43 HDD
44 ROM
45 CPU
46 バス

Claims (8)

  1. 所定の形式でデータを格納する構造体を、前記所定の形式と異なるプログラミング言語で記述されたアプリケーションとのインタフェースとするミドルウェア基盤と、前記アプリケーションとの連携を支援する方法をコンピュータに実行させる開発支援プログラムであって、
    記憶手段に記憶された前記アプリケーションに係るデータ形式を含むデータファイルに基づいて、前記ミドルウェア基盤から前記アプリケーションを呼び出すために必要となる情報である呼び出し定義情報を生成する呼び出し定義情報生成手順と、
    前記アプリケーションが呼び出された場合に、前記ミドルウェア基盤と前記アプリケーションとを仲介するための仲介ソースファイルを、呼び出された前記アプリケーションに対応する前記データファイルと、前記呼び出し定義情報とに基づいて、読み出したデータファイルに示されるデータ形式と前記所定の形式との交換を行うコードを用いて生成する仲介ソースファイル生成手順と、
    呼び出された前記アプリケーションに対応する前記仲介ソースファイルと、呼び出された前記アプリケーションのソースファイルとをコンパイルして呼び出された前記アプリケーションを生成するアプリケーション生成手順と、
    をコンピュータに実行させることを特徴とする開発支援プログラム。
  2. 前記アプリケーションに係る関数のインタフェース定義情報を示すアプリケーションインタフェース定義情報を生成するアプリケーションインタフェース定義情報生成手順をさらにコンピュータに実行させることを特徴とする請求項1に記載の開発支援プログラム。
  3. 前記データファイルはさらに、前記アプリケーションの名称と、前記アプリケーションが存在するライブラリ名とを含むことを特徴とする請求項1または2に記載の開発支援プログラム。
  4. 所定の形式でデータを格納する構造体を、前記所定の形式と異なるプログラミング言語で記述されたアプリケーションとのインタフェースとするミドルウェア基盤と、前記アプリケーションとの連携を支援する開発支援方法であって、
    記憶手段に記憶された前記アプリケーションに係るデータ形式を含むデータファイルに基づいて、前記ミドルウェア基盤から前記アプリケーションを呼び出すために必要となる情報である呼び出し定義情報を生成する呼び出し定義情報生成工程と、
    前記アプリケーションが呼び出された場合に、前記ミドルウェア基盤と前記アプリケーションとを仲介するための仲介ソースファイルを、呼び出された前記アプリケーションに対応する前記データファイルと、前記呼び出し定義情報とに基づいて、読み出したデータファイルに示されるデータ形式と前記所定の形式との交換を行うコードを用いて生成する仲介ソースファイル生成工程と、
    呼び出された前記アプリケーションに対応する前記仲介ソースファイルと、呼び出された前記アプリケーションのソースファイルとをコンパイルして呼び出された前記アプリケーションを生成するアプリケーション生成工程と、
    を含んだことを特徴とする開発支援方法。
  5. 所定の形式でデータを格納する構造体を、前記所定の形式と異なるプログラミング言語で記述されたアプリケーションとのインタフェースとするミドルウェア基盤と、前記アプリケーションとの連携を支援する開発支援装置であって、
    記憶手段に記憶された前記アプリケーションに係るデータ形式を含むデータファイルに基づいて、前記ミドルウェア基盤から前記アプリケーションを呼び出すために必要となる情報である呼び出し定義情報を生成する呼び出し定義情報生成手段と、
    前記アプリケーションが呼び出された場合に、前記ミドルウェア基盤と前記アプリケーションとを仲介するための仲介ソースファイルを、呼び出された前記アプリケーションに対応する前記データファイルと、前記呼び出し定義情報とに基づいて、読み出したデータファイルに示されるデータ形式と前記所定の形式との交換を行うコードを用いて生成する仲介ソースファイル生成手段と、
    呼び出された前記アプリケーションに対応する前記仲介ソースファイルと、呼び出された前記アプリケーションのソースファイルとをコンパイルして呼び出された前記アプリケーションを生成するアプリケーション生成手段と、
    を備えたことを特徴とする開発支援装置。
  6. コンピュータに、
    所定のデータ形式で記述されたデータを受け渡すプログラムであって、アプリケーションプログラム間の連携処理を行うプログラムの制御対象である少なくとも1つのアプリケーションプログラムの処理で前記所定のデータ形式で記述されたデータが用いられるときのデータ形式を示す情報と、当該アプリケーションの呼び出しに用いる呼び出し定義情報とを含むデータファイルを記憶した記憶部から前記少なくとも1つのアプリケーションプログラムに対応するデータファイルを読み出し、
    読み出した前記データファイルに含まれる前記情報に示されるデータ形式と前記呼び出し定義情報とに基づいて前記情報に示されるデータ形式と前記所定のデータ形式との間でデータの変換処理を行い、前記所定の形式で記述されたデータを前記情報に示されるデータ形式で用いるための仲介ソースファイルを生成し、
    生成した該仲介ソースファイルと、前記少なくとも1つのアプリケーションプログラムに対応するソースファイルとをコンパイルしてアプリケーションを生成する、
    ことを実行させることを特徴とする開発支援プログラム。
  7. 前記コンピュータに
    前記アプリケーションに係る関数のインタフェース定義情報を示すアプリケーションインタフェース定義情報を生成する、
    ことをさらに実行させることを特徴とする請求項6に記載の開発支援プログラム。
  8. 前記データファイルはさらに、前記アプリケーションの名称と、前記アプリケーションが存在するライブラリ名とを含むことを特徴とする請求項6または7に記載の開発支援プログラム。
JP2006045610A 2006-02-22 2006-02-22 開発支援プログラム、開発支援方法、及び開発支援装置 Expired - Fee Related JP5292670B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006045610A JP5292670B2 (ja) 2006-02-22 2006-02-22 開発支援プログラム、開発支援方法、及び開発支援装置
US11/438,871 US8347323B2 (en) 2006-02-22 2006-05-23 Method and apparatus for supporting development of broker program, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006045610A JP5292670B2 (ja) 2006-02-22 2006-02-22 開発支援プログラム、開発支援方法、及び開発支援装置

Publications (2)

Publication Number Publication Date
JP2007226431A JP2007226431A (ja) 2007-09-06
JP5292670B2 true JP5292670B2 (ja) 2013-09-18

Family

ID=38472784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006045610A Expired - Fee Related JP5292670B2 (ja) 2006-02-22 2006-02-22 開発支援プログラム、開発支援方法、及び開発支援装置

Country Status (2)

Country Link
US (1) US8347323B2 (ja)
JP (1) JP5292670B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484627B2 (en) * 2008-01-31 2013-07-09 Ncr Corporation Interoperability method and software
JP4980267B2 (ja) * 2008-02-26 2012-07-18 新日本製鐵株式会社 システム構築支援装置、方法及びプログラム
KR100918658B1 (ko) * 2009-01-30 2009-09-22 (주)티비스톰 다중 어플리케이션을 실행하기 위한 미들웨어 장치
JP5215908B2 (ja) * 2009-02-27 2013-06-19 ドコモ・テクノロジ株式会社 情報処理装置及びプログラム実行方法
US8863060B2 (en) * 2011-09-07 2014-10-14 Samsung Electronics Co., Ltd. Programmable intelligent storage architecture based on application and business requirements
CN104283919B (zh) * 2013-07-05 2019-11-05 中兴通讯股份有限公司 一种接口调用系统及方法
CN111309304B (zh) * 2020-02-11 2023-07-11 北京字节跳动网络技术有限公司 一种生成idl文件的方法、装置、介质和电子设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913061A (en) * 1997-01-08 1999-06-15 Crossroads Software, Inc. Modular application collaboration
JPH10254689A (ja) * 1997-03-14 1998-09-25 Hitachi Ltd クライアント・サーバシステムのアプリケーション構成設計支援方式
JP3597356B2 (ja) * 1997-10-20 2004-12-08 富士通株式会社 通信連携情報生成装置、3階層クライアント/サーバシステムおよび通信連携情報生成プログラムを記録した媒体
GB2332288A (en) * 1997-12-10 1999-06-16 Northern Telecom Ltd agent enabling technology
JP4319706B2 (ja) * 1998-04-10 2009-08-26 株式会社日立製作所 プログラム開発支援ツール
US6336118B1 (en) * 1998-12-03 2002-01-01 International Business Machines Corporation Framework within a data processing system for manipulating program objects
US6385769B1 (en) * 1999-02-03 2002-05-07 International Business Machines Corporation Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats
JP4040256B2 (ja) * 1999-03-17 2008-01-30 富士通株式会社 サーバシステム及び記録媒体
US7152228B2 (en) * 1999-07-08 2006-12-19 Science Applications International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6609158B1 (en) * 1999-10-26 2003-08-19 Novell, Inc. Component architecture in a computer system
US6947965B2 (en) * 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6728788B1 (en) * 1999-12-16 2004-04-27 International Business Machines Corporation Method and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling client
US7150010B1 (en) * 2000-07-06 2006-12-12 Microsoft Corporation Unification of a programming language and a definition language
US7100153B1 (en) * 2000-07-06 2006-08-29 Microsoft Corporation Compiler generation of a late binding interface implementation
US6775680B2 (en) * 2000-08-08 2004-08-10 International Business Machines Corporation High level assembler metamodel
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US6934709B2 (en) * 2001-03-26 2005-08-23 Matrixone, Inc. Interface definition language compiler
JP2002342078A (ja) * 2001-05-17 2002-11-29 Hitachi Ltd プログラム開発システム及び方法
JP4536292B2 (ja) * 2001-06-14 2010-09-01 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体
US20030093551A1 (en) * 2001-10-17 2003-05-15 Graham Taylor Adaptive software interface
JP2003157242A (ja) 2001-11-20 2003-05-30 Toshiba Corp 分散処理システム及び連携用アダプタ並びに分散処理システムにおける連携方法及びプログラム
US7707594B1 (en) * 2002-08-20 2010-04-27 At&T Intellectual Property I, L.P. System and method for providing a routing service in distributed computing environment
US7356562B2 (en) * 2003-04-30 2008-04-08 International Business Machines Corporation Dynamic generator for fast-client static proxy from service interface definition document
US7308679B2 (en) * 2003-09-26 2007-12-11 International Business Machines Corporation Method and computer program product for providing a meta-data programming language level interface

Also Published As

Publication number Publication date
US8347323B2 (en) 2013-01-01
US20070209044A1 (en) 2007-09-06
JP2007226431A (ja) 2007-09-06

Similar Documents

Publication Publication Date Title
JP5292670B2 (ja) 開発支援プログラム、開発支援方法、及び開発支援装置
US7614044B2 (en) Attempting runtime retranslation of unresolvable code
US7475391B2 (en) System and method for revealing remote object status in an integrated development environment
US7065756B2 (en) Optimization of portable operations in a client-server environment
US20030018950A1 (en) Dynamic redeploying environment for the rapid iterative development of software applications
US6877163B1 (en) Method and system for dynamic proxy classes
JP5396979B2 (ja) ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム
US8141070B2 (en) Bridging class loader name spaces
KR19980086685A (ko) 원격으로 오브젝트를 실행하는 방법
US20080271004A1 (en) Computer-implemented method, system, and program product for optimizing a distributed application
US20070198705A1 (en) System and method for integrating resources in a network
US20110067013A1 (en) Systems and methods for deferring software implementation decisions until load time
US20050028151A1 (en) Module symbol export
US8359579B2 (en) Monitoring dynamic aspect oriented applications at execution time
Krishna et al. Context-specific middleware specialization techniques for optimizing software product-line architectures
Wiil et al. A development environment for building component-based open hypermedia systems
JP2007226743A (ja) 仲介プログラム開発支援プログラム、仲介プログラム開発支援方法および仲介プログラム開発支援装置
JP2005078178A (ja) コンピュータシステム及びソフトウェア管理方法
US20060010421A1 (en) Methods and apparatus for portable object-oriented components
Elsman et al. Experience report: Type-safe multi-tier programming with Standard ML modules
Wood et al. Triton: a domain specific language for cyber-physical systems
Maia et al. OiL: An object request broker in the Lua language
Sato et al. Loosely-separated “sister” namespaces in java
EP2138936A1 (en) A method for testing a system and a corresponding testing system
Riccobene et al. Specifying formal executable behavioral models for structural models of service-oriented components

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120709

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130408

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130419

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: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

Ref document number: 5292670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees