JP2003108370A - Application system construction framework - Google Patents
Application system construction frameworkInfo
- Publication number
- JP2003108370A JP2003108370A JP2001305275A JP2001305275A JP2003108370A JP 2003108370 A JP2003108370 A JP 2003108370A JP 2001305275 A JP2001305275 A JP 2001305275A JP 2001305275 A JP2001305275 A JP 2001305275A JP 2003108370 A JP2003108370 A JP 2003108370A
- Authority
- JP
- Japan
- Prior art keywords
- application system
- common interface
- middleware product
- function
- middleware
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、各種の機能を提供
する複数のミドルウェア製品を組み合わせることによっ
て構成されるアプリケーションシステム構築用フレーム
ワーク(アプリケーションシステム構築基盤)に係り、
とりわけ、ミドルウェア製品の変更や追加、削除等に対
して柔軟に対応することができる、汎用的でかつ機能分
割可能なアプリケーションシステム構築用フレームワー
クに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an application system construction framework (application system construction platform) configured by combining a plurality of middleware products that provide various functions.
In particular, it relates to a general-purpose and functionally partitionable application system construction framework that can flexibly deal with changes, additions, and deletions of middleware products.
【0002】[0002]
【従来の技術】エンタープライズシステムと呼ばれる大
規模な企業システムの開発では、アプリケーションシス
テム構築用フレームワークを利用してアプリケーション
システムを構築する手法がとられることが多い。2. Description of the Related Art In the development of a large-scale enterprise system called an enterprise system, a method of constructing an application system using a framework for constructing an application system is often adopted.
【0003】このようなアプリケーションシステム構築
用フレームワークは一般に、エンタープライズシステム
で共通的に利用される各種の機能(例えば、メッセージ
ング機能やトランザクション機能、セキュリティ機能
等)を提供する市販のミドルウェア製品を組み合わせる
ことによって構成されている。このようなフレームワー
クをあらかじめ用意しておくことにより、個々のアプリ
ケーションシステムを開発する度に基盤部分の整備や開
発等を行う必要がなくなり、各アプリケーションシステ
ムに固有の部分の開発のみに注力することができるた
め、システム全体の開発コストを軽減することができ
る。Such an application system construction framework is generally a combination of commercially available middleware products that provide various functions commonly used in enterprise systems (eg, messaging function, transaction function, security function, etc.). It is composed by. By preparing such a framework in advance, it is not necessary to maintain and develop the base part each time an individual application system is developed, and focus only on the development of the parts unique to each application system. Therefore, the development cost of the entire system can be reduced.
【0004】[0004]
【発明が解決しようとする課題】しかしながら、上述し
た従来のアプリケーションシステム構築用フレームワー
クでは、このフレームワークを用いて構築されるアプリ
ケーションシステムがミドルウェア製品の固有API(A
pplication Programming Interface)を直接利用するこ
とを前提として実装されているため、ミドルウェア製品
の変更(バージョンアップや別の製品への交換等)に伴
って、アプリケーションシステムにより利用されるAP
Iが変わってしまい、アプリケーションシステムの修正
が必要となるという問題がある。However, in the above-mentioned conventional framework for building an application system, the application system built using this framework is a unique API (A
Since it is implemented on the assumption that the pplication programming interface) is directly used, the AP used by the application system along with the change of middleware products (upgrading, replacement with another product, etc.)
There is a problem that I is changed and the application system needs to be modified.
【0005】また、上述したような従来のアプリケーシ
ョンシステム構築用フレームワークでは、その構成が固
定的であり、このフレームワークを用いて構築されるア
プリケーションシステムが必要とする機能に応じて、ミ
ドルウェア製品の追加や削除等を行うことができないた
め、構築されるアプリケーションシステムによっては、
必要のない機能を含んだ重装備なアプリケーションシス
テム構築用フレームワークを用いることになるという問
題がある。具体的には例えば、トランザクション機能が
必要でないアプリケーションシステムを構築する場合で
も、トランザクション機能を含んだアプリケーションシ
ステム構築用フレームワークを用いる必要があった。Further, the conventional framework for building an application system as described above has a fixed structure, and middleware products can be installed in accordance with the functions required by the application system built using this framework. Since it cannot be added or deleted, depending on the application system being built,
There is a problem of using a heavy-duty application system construction framework that includes unnecessary functions. Specifically, for example, even when building an application system that does not require a transaction function, it is necessary to use an application system building framework that includes a transaction function.
【0006】本発明はこのような点を考慮してなされた
ものであり、ミドルウェア製品の変更や追加、削除等に
対して柔軟に対応することができる、汎用的でかつ機能
分割可能なアプリケーションシステム構築用フレームワ
ークを提供することを目的とする。The present invention has been made in consideration of the above point, and is a general-purpose application system capable of function division, capable of flexibly responding to changes, additions, deletions, etc. of middleware products. It aims to provide a framework for construction.
【0007】[0007]
【課題を解決するための手段】本発明は、各種の機能を
提供するミドルウェア製品群と、前記ミドルウェア製品
群のそれぞれを利用するためのインタフェースを提供す
る共通インタフェース群と、前記ミドルウェア製品群の
それぞれに対応して実装され、前記共通インタフェース
群のそれぞれを介したアクセスに応じて、対応するミド
ルウェア製品の機能を実行する実装モジュール群とを備
えたことを特徴とするアプリケーションシステム構築用
フレームワークを提供する。According to the present invention, there are provided a middleware product group that provides various functions, a common interface group that provides an interface for using each of the middleware product groups, and a middleware product group. And an implementation module group that implements the functions of the corresponding middleware product in response to access via each of the common interface groups. To do.
【0008】なお、本発明において、前記共通インタフ
ェース群は、アプリケーションシステムで共通的に利用
される機能ごとに用意された複数の機能別共通インタフ
ェースを含み、それぞれの機能別共通インタフェースご
とに、前記各ミドルウェア製品に対応する実装モジュー
ルが設けられていることが好ましい。また、前記各機能
別共通インタフェースは、アプリケーションシステムで
利用されるプログラミング言語ごとに用意されているこ
とが好ましい。さらに、前記実装モジュール群は、異な
る実装技術を利用したアプリケーションシステム間の移
行処理を実現するための実装モジュールを含むことが好
ましい。In the present invention, the common interface group includes a plurality of function-specific common interfaces prepared for each function commonly used in the application system. It is preferable that a mounting module corresponding to the middleware product is provided. Further, it is preferable that the common interface for each function is prepared for each programming language used in the application system. Furthermore, it is preferable that the mounting module group includes a mounting module for realizing a migration process between application systems using different mounting technologies.
【0009】また、本発明は、各種の機能を提供するミ
ドルウェア製品群のそれぞれに対応して実装され、前記
ミドルウエア製品群のそれぞれを利用するためのインタ
ーフェースを提供する共通インターフェース群のそれぞ
れを介したアクセスに応じて、対応するミドルウェア製
品の機能を実行する実装モジュール群を備えたことを特
徴とするアプリケーションシステム構築用プログラムを
提供する。Further, the present invention is implemented corresponding to each of the middleware product groups that provide various functions, and through each of the common interface groups that provide an interface for using each of the middleware product groups. Provided is a program for building an application system, which is equipped with a mounting module group that executes the function of a corresponding middleware product in accordance with the accessed access.
【0010】本発明によれば、アプリケーションシステ
ムを構築するためのアプリケーションシステム構築用フ
レームワークに、ミドルウェア製品群のそれぞれを利用
するためのインタフェースを提供する共通インタフェー
ス群と、共通インタフェース群のそれぞれを介したアク
セスに応じて、対応するミドルウェア製品の機能を実行
する実装モジュール群とを設けているので、ミドルウェ
ア製品の変更が必要になった場合でも、共通インタフェ
ースを変更することなく実装モジュールを交換すること
のみによって対応することができる。このため、ミドル
ウェア製品の変更の影響がアプリケーションシステムに
及ぶことがなく、利用されるミドルウェア製品の変更を
容易に行うことができる。According to the present invention, a common interface group for providing an interface for using each of the middleware product groups to the application system construction framework for constructing the application system, and the common interface group respectively are provided. Depending on the access made, the mounting module group that executes the functions of the corresponding middleware product is provided, so even if the middleware product needs to be changed, the mounting module can be replaced without changing the common interface. Can only be dealt with. Therefore, the application system is not affected by the change of the middleware product, and the used middleware product can be easily changed.
【0011】また、本発明によれば、アプリケーション
システムで共通的に利用される機能ごとに複数の機能別
共通インタフェースを設け、さらに、それぞれの機能別
共通インタフェースごとに、各ミドルウェア製品に対応
する実装モジュールを設けるようにすることにより、ア
プリケーションシステム構築用フレームワークを機能ご
とに容易に分割することができる。このため、ミドルウ
ェア製品の追加や削除等に伴う、機能の追加や削除等を
容易に行うことができ、顧客に納品するアプリケーショ
ンシステムに必要な機能のみを選択した最適な構成のア
プリケーションシステム構築用フレームワークを提供す
ることができる。Further, according to the present invention, a plurality of function-specific common interfaces are provided for each function commonly used in the application system, and further, the implementation corresponding to each middleware product is provided for each function-specific common interface. By providing the module, the framework for building the application system can be easily divided for each function. For this reason, it is possible to easily add and delete functions accompanying the addition and deletion of middleware products, etc., and an application system construction frame with an optimal configuration that selects only the functions required for the application system delivered to the customer. Work can be provided.
【0012】さらに、本発明によれば、共通インタフェ
ース群の各機能別共通インタフェースを、アプリケーシ
ョンシステムで利用されるプログラミング言語ごとに用
意しているので、複数のプログラミング言語に対応した
汎用的なアプリケーションシステム構築用フレームワー
ク100を実現することができる。Further, according to the present invention, since the common interfaces for each function of the common interface group are prepared for each programming language used in the application system, a general-purpose application system corresponding to a plurality of programming languages is provided. The construction framework 100 can be realized.
【0013】さらにまた、本発明によれば、異なる実装
技術を利用したプログラム間の移行処理を行う移行モジ
ュールを実装モジュールとして設けているので、異なる
実装技術を利用したシステム間の移行において、アプリ
ケーションシステムの変更作業が不要となり、移行作業
の軽減を図ることができる。Furthermore, according to the present invention, since a migration module for performing migration processing between programs using different mounting technologies is provided as a mounting module, an application system can be used for migration between systems using different mounting technologies. Since the change work of No. is unnecessary, it is possible to reduce the migration work.
【0014】[0014]
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings.
【0015】第1の実施の形態
まず、図1および図2により、本発明によるアプリケー
ションシステム構築用フレームワークの第1の実施の形
態について説明する。First Embodiment First, referring to FIGS. 1 and 2, a first embodiment of an application system construction framework according to the present invention will be described.
【0016】図1に示すように、本発明の第1の実施の
形態に係るアプリケーションシステム構築用フレームワ
ーク100は、エンタープライズシステムに代表される
各種のアプリケーションシステムを構築するための構築
基盤として用いられるものであり、共通インタフェース
群101と、実装モジュール群105と、ミドルウェア
製品群111とを備えている。なお、ミドルウェア製品
群111は、エンタープライズシステム等で共通的に利
用される各種の機能(例えば、メッセージング機能やト
ランザクション機能、セキュリティ機能等)を提供する
ものである。As shown in FIG. 1, an application system construction framework 100 according to the first embodiment of the present invention is used as a construction base for constructing various application systems represented by an enterprise system. The common interface group 101, the mounting module group 105, and the middleware product group 111 are provided. The middleware product group 111 provides various functions commonly used in enterprise systems and the like (eg, messaging function, transaction function, security function, etc.).
【0017】このうち、共通インタフェース群101
は、ミドルウェア製品群111のそれぞれを利用するた
めのインタフェースを提供するものであり、アプリケー
ションシステム118を実装する際に利用されるもので
ある。なお、共通インタフェース群101は、アプリケ
ーションシステム118で共通的に利用される機能ごと
に用意されている。具体的には、メッセージング機能共
通インタフェース102、トランザクション機能共通イ
ンタフェース103およびセキュリティ機能共通インタ
フェース104等のように、いくつかの機能に分類され
て用意されている。Of these, the common interface group 101
Provides an interface for using each of the middleware product groups 111, and is used when implementing the application system 118. The common interface group 101 is prepared for each function commonly used by the application system 118. Specifically, the messaging function common interface 102, the transaction function common interface 103, the security function common interface 104, and the like are prepared by being classified into several functions.
【0018】ここで、このような機能分類は、後述した
ようにアプリケーションシステム構築用フレームワーク
100を機能ごとに容易に分割することができるよう、
ミドルウェア製品群111に含まれる各ミドルウェア製
品113,115,117により提供される機能に一致
するようにするとよい。一般には、ミドルウェア製品と
して、メッセージング機能を提供するミドルウェア製品
や、トランザクション機能を提供するミドルウェア製品
等が数多く市販されており、これらの市販されているミ
ドルウェア製品のカテゴリ分けに一致するようにすると
よい。Here, such function classification is performed so that the application system constructing framework 100 can be easily divided for each function as described later.
The functions provided by the middleware products 113, 115, 117 included in the middleware product group 111 may be matched. In general, as middleware products, many middleware products that provide a messaging function, middleware products that provide a transaction function, and the like are on the market, and it is advisable to match the categories of these commercially available middleware products.
【0019】一方で、このような機能分類の標準化も進
められており、CORBA(CommonObject Request Bro
ker Architecture)の周辺技術の仕様であるCORBA
Serviceや、J2EE(Java(登録商標)2 Platform,
Enterprise Edition)等では、各種の標準インタフェ
ースが提供されている。このため、共通インタフェース
として、このような標準インタフェースを採用するよう
にしてもよい。具体的には例えば、J2EEでは、メッ
セージング機能、トランザクション機能、データベース
アクセス機能および名前管理機能というような機能分類
が行われ、それぞれの標準インタフェースが提供されて
いるので、これらの標準インタフェースを共通インタフ
ェースとして採用するようにするとよい。On the other hand, standardization of such functional classification is also in progress, and CORBA (Common Object Request Brochure)
ker Architecture) peripheral technology specifications CORBA
Service, J2EE (Java (registered trademark) 2 Platform,
In Enterprise Edition), various standard interfaces are provided. Therefore, such a standard interface may be adopted as the common interface. Specifically, for example, J2EE classifies functions such as a messaging function, a transaction function, a database access function, and a name management function, and provides respective standard interfaces. Therefore, these standard interfaces are used as common interfaces. Adopt it.
【0020】また、実装モジュール群105は、共通イ
ンタフェース群101のそれぞれを介したアクセスに応
じて、対応するミドルウェア製品の機能を実行するもの
であり、ミドルウェア製品群111のそれぞれに対応し
て実装されている。なお、共通インタフェースと実装モ
ジュールとの関係は、オブジェクト指向におけるインタ
フェースクラスと実装クラスとの関係に相当する。従っ
て、アプリケーションシステム118から共通インタフ
ェースを利用すると、実際に動作するのは実装モジュー
ルということになる。このような仕組みは、オブジェク
ト指向プログラミング言語が標準的に備えているもので
あり、後述するように、オブジェクト指向プログラミン
グ言語の持つ機能をそのまま用いることによって、実装
モジュールを実現することができる。The mounting module group 105 executes the function of the corresponding middleware product in response to the access via each of the common interface group 101, and is mounted corresponding to each of the middleware product group 111. ing. Note that the relationship between the common interface and the mounting module corresponds to the relationship between the interface class and the mounting class in object orientation. Therefore, when the common interface is used from the application system 118, the mounted module actually operates. Such a mechanism is a standard feature of the object-oriented programming language, and as will be described later, the mounting module can be realized by using the functions of the object-oriented programming language as they are.
【0021】次に、図2により、図1に示すアプリケー
ションシステム構築用フレームワーク100のうちメッ
セージング機能に関する部分(メッセージング機能共通
インタフェース102およびその実装モジュール群)の
実現方法について説明する。Next, referring to FIG. 2, a method of implementing a portion related to the messaging function (messaging function common interface 102 and its mounted module group) in the application system construction framework 100 shown in FIG. 1 will be described.
【0022】なおここでは、メッセージング機能共通イ
ンタフェース102として、メッセージ送信を行うため
のメソッドであるsendMessage()が用いられ、ミドルウ
ェア製品として、ミドルウェア製品A1,A2,A3
(符号113、202,204)が用いられる場合を例
に挙げて説明する。Here, sendMessage (), which is a method for transmitting a message, is used as the messaging function common interface 102, and middleware products A1, A2, A3 are used as middleware products.
The case where (reference numerals 113, 202, 204) are used will be described as an example.
【0023】ここで、メッセージング機能共通インタフ
ェース102のsendMessage()メソッドは、送信する文
字列messageと、送信のためのオプションoptionとを引
数に持つメソッドであるとする。Here, it is assumed that the sendMessage () method of the messaging function common interface 102 has a character string message to be transmitted and an option option for transmission as arguments.
【0024】すなわち、 void sendMessage(String message, int option) という定義であるとする。That is, void sendMessage (String message, int option) Is defined as.
【0025】これに対し、ミドルウェア製品A1,A
2,A3のメッセージ送信を行うための固有APIが、
以下のようになっているものとする。なお、ミドルウェ
ア製品A3では、オプションの設定とメッセージの送信
とがそれぞれ別のメソッドで行われるようになってい
る。On the other hand, middleware products A1 and A
2, a unique API for sending A3 messages,
It is assumed that it is as follows. In the middleware product A3, option setting and message transmission are performed by different methods.
【0026】[ミドルウェア製品A1]void send(Stri
ng message, int option)
[ミドルウェア製品A2]void sendMessage(int optio
n, String message)
[ミドルウェア製品A3]void setOption(int option)
void sendMessage(String message)
この場合、各ミドルウェア製品A1,A2,A3用の実
装モジュール(すなわちsendMessage()メソッド)の実
装は、次のようにして実現することができる。[Middleware product A1] void send (Stri
ng message, int option) [Middleware product A2] void sendMessage (int optio
n, String message) [Middleware product A3] void setOption (int option) void sendMessage (String message) In this case, the implementation of the implementation module (that is, sendMessage () method) for each middleware product A1, A2, A3 is as follows. Can be realized in this way.
【0027】
[ミドルウェア製品A1用の実装モジュール106]
void sendMessage(String message, int option){
send(message, option); //A1の固有APIを呼び出す
}
[ミドルウェア製品A2用の実装モジュール107]
void sendMessage(String message, int option){
sendMessage(option, message); //A2の固有APIを呼び出す
}
[ミドルウェア製品A3用の実装モジュール108]
void sendMessage(String message, int option){
setOption(option); //A3の固有APIを呼び出す
sendMessage(message); //A3の固有APIを呼び出す
}
すなわち、
(1) ミドルウェア製品A1用の実装モジュール106
では、引数として受け取った値(messageとoption)を
そのまま渡して、ミドルウェア製品A1の固有APIで
あるsend()メソッドを実行する。[Mounting module 106 for middleware product A1] void sendMessage (String message, int option) {send (message, option); // Calls the unique API of A1} [Mounting module 107 for middleware product A2] void sendMessage (String message, int option) {sendMessage (option, message); // Calls the unique API of A2} [implementation module 108 for middleware product A3] void sendMessage (String message, int option) {setOption (option); // Call the A3 unique API sendMessage (message); // Call the A3 unique API} That is, (1) the mounting module 106 for the middleware product A1
Then, the values (message and option) received as arguments are passed as they are, and the send () method, which is the unique API of the middleware product A1, is executed.
【0028】(2) ミドルウェア製品A2用の実装モジ
ュール107では、引数として受け取った値(message
とoption)を順序を逆にして渡して、ミドルウェア製品
A2の固有APIであるsendMessageメソッドを実行す
る。(2) In the mounting module 107 for the middleware product A2, the value (message
And option) are passed in the reverse order, and the sendMessage method, which is a unique API of the middleware product A2, is executed.
【0029】(3) ミドルウェア製品A3用の実装モジ
ュール108では、引数として受け取った値(message
とoption)を、ミドルウェア製品A3の固有APIであ
るsetOption()メソッドとsendMessage()メソッドとに渡
して実行する。(3) In the mounting module 108 for the middleware product A3, the value (message
And option) are passed to the setOption () method and the sendMessage () method, which are the unique API of the middleware product A3, and executed.
【0030】ここで、引数optionは数値データとしてい
るが、同じ値であってもミドルウェア製品によって意味
が異なる場合がある。このような場合には、各実装モジ
ュールに変換表を持たせ、固有APIを実行するときに
値を変換して渡すようにするとよい。Here, the argument option is numerical data, but the meaning may differ depending on the middleware product even if the value is the same. In such a case, it is advisable to provide each mounted module with a conversion table so that the value is converted and passed when the specific API is executed.
【0031】なお、実装モジュールは、共通インタフェ
ースに対する実装クラスとして作成する。The mounting module is created as a mounting class for the common interface.
【0032】ここで、使用言語としてJava言語を想
定すると、メッセージング機能共通インタフェース10
2の定義は例えば次のようになる。Here, assuming that the Java language is used, the messaging function common interface 10 is used.
The definition of 2 is as follows, for example.
【0033】
public interface MessagingCommonInterface{
void sendMessage(String message, int option);
// この他のメソッドは、ここでは省略する
}
この場合、ミドルウェア製品A1用の実装モジュール1
06は、次のように定義することにより、上記共通イン
タフェース(MessagingCommonInterface)の実装クラス
とすることができる。Public interface MessagingCommonInterface {void sendMessage (String message, int option); // Other methods are omitted here} In this case, the mounting module 1 for the middleware product A1
06 can be an implementation class of the above-mentioned common interface (MessagingCommonInterface) by defining as follows.
【0034】
public class MessagingForA1 implements MessagingCommonInterface{
void sendMessage(String message, int option){
send(message, option);
}
//この他のメソッドは、ここでは省略する
}
このようにして作成された実装モジュールを構成するク
ラスファイル群は、Java言語の場合、一般に、JA
Rファイルという形式のアーカイブファイルにまとめて
提供される。ここで、ミドルウェア製品A1用の実装モ
ジュール106のアーカイブをAl.jarとすると、
Al.jarを所定のディレクトリに置くことにより、
Al.jarに含まれるクラス群がメッセージング機能
共通インタフェース102に対する実装クラスとして利
用できるようになる。すなわち、アプリケーションシス
テム118からメッセージング機能共通インタフェース
102にアクセスすることにより、Al.jarに含ま
れる実装クラス群のメソッドが起動され、これによりミ
ドルウェア製品A1が利用されるようになる。Public class MessagingForA1 implements MessagingCommonInterface {void sendMessage (String message, int option) {send (message, option);} // Omit the other methods here}} Implement the implementation module created in this way In the case of Java language, the constituent class files are generally JA
It is provided collectively as an R file format archive file. Here, the archive of the mounting module 106 for the middleware product A1 is set to Al. jar
Al. By putting the jar in the given directory,
Al. The class group included in jar can be used as an implementation class for the messaging function common interface 102. That is, by accessing the messaging function common interface 102 from the application system 118, the Al. The method of the implementation class group included in jar is activated, whereby the middleware product A1 is used.
【0035】一方、ミドルウェア製品A2用の実装モジ
ュール107のアーカイブをA2.jarとする。A
2.jarに含まれるクラス群もメッセージング機能共
通インタフェース102に対する実装クラスとして作成
されているため、A1.jarの代わりにA2.jar
を所定のディレクトリに置くことにより、A2.jar
に含まれるクラス群がメッセージング機能共通インタフ
ェース102に対する実装クラスとして利用できるよう
になる。すなわち、アプリケーションシステム118か
らメッセージング機能共通インタフェース102にアク
セスすることにより、A2.jarに含まれる実装クラ
ス群のメソッドが起動され、これによりミドルウェア製
品A2が利用されるようになる。On the other hand, the archive of the mounting module 107 for the middleware product A2 is A2. jar. A
2. Since the classes included in jar are also created as implementation classes for the messaging function common interface 102, A1. A2. jar
By placing A2. jar
The class group included in is available as an implementation class for the messaging function common interface 102. That is, by accessing the messaging function common interface 102 from the application system 118, A2. The method of the implementation class group included in jar is activated, and thereby the middleware product A2 is used.
【0036】従って、A1.jarをA2.jarに置
き換えるだけで、アプリケーションシステム118を何
ら変更することなく、実際に利用するミドルウェア製品
をA1からA2に切り替えることが可能となる。Therefore, A1. jar to A2. Only by replacing the middleware product with the jar, the middleware product actually used can be switched from A1 to A2 without changing the application system 118.
【0037】このように本発明の第1の実施の形態によ
れば、アプリケーションシステム118を構築するため
のアプリケーションシステム構築用フレームワーク10
0に、ミドルウェア製品群111のそれぞれを利用する
ためのインタフェースを提供する共通インタフェース群
101と、共通インタフェース群101のそれぞれを介
したアクセスに応じて、対応するミドルウェア製品の機
能を実行する実装モジュール群105とを設けているの
で、ミドルウェア製品の変更が必要になった場合でも、
共通インタフェースを変更することなく実装モジュール
を交換する(差し替える)ことのみによって対応するこ
とができる。このため、ミドルウェア製品の変更の影響
がアプリケーションシステム118に及ぶことがなく、
利用されるミドルウェア製品の変更を容易に行うことが
できる。As described above, according to the first embodiment of the present invention, the application system construction framework 10 for constructing the application system 118.
0, a common interface group 101 that provides an interface for using each of the middleware product groups 111, and an implementation module group that executes the function of the corresponding middleware product according to access through each of the common interface groups 101. Since 105 is provided, even if you need to change middleware products,
It can be dealt with only by exchanging (replacement) the mounted module without changing the common interface. Therefore, the change of the middleware product does not affect the application system 118,
The middleware product used can be easily changed.
【0038】また、本発明の第1の実施の形態によれ
ば、アプリケーションシステム118で共通的に利用さ
れる機能ごとに複数の機能別共通インタフェースを設
け、さらに、それぞれの機能別共通インタフェースごと
に、各ミドルウェア製品に対応する実装モジュールを設
けているので、アプリケーションシステム構築用フレー
ムワーク100を機能ごとに容易に分割することができ
る。このため、顧客に納品するアプリケーションシステ
ム118に必要な機能のみを選択した最適な構成のアプ
リケーションシステム構築用フレームワーク100を提
供することができ、小規模なシステムの構築のために必
要以上に重装備なアプリケーションシステム構築用フレ
ームワーク100を利用してしまいシステム全体の価格
が上昇してしまう、というような問題を解消することが
できる。具体的には例えば、トランザクション機能を必
要としないアプリケーションシステム118を構築する
場合には、アプリケーションシステム構築用フレームワ
ーク100から、図1に示すミドルウェア製品B1用実
装モジュール109とミドルウェア製品B2用実装モジ
ュール110とを切り離し、また、これに伴って、ミド
ルウェア製品B1とミドルウェア製品B2とをアプリケ
ーションシステム構築用フレームワーク100に付属さ
せないようにすることができる。従って、トランザクシ
ョン機能を削除したアプリケーションシステム構築用フ
レームワーク100を利用して構築されるアプリケーシ
ョンシステム118は、ミドルウェア製品B1,B2が
不要になる分だけシステム全体の価格(アプリケーショ
ンシステム118の価格と、アプリケーションシステム
構築用フレームワーク100の価格)を低くすることが
できる。また、汎用的なアプリケーションシステム構築
用フレームワーク100を一つだけ用意しておき、構築
対象となるアプリケーションシステム118に応じて必
要な部分のみを切り出して利用することが可能となるの
で、構築対象となるアプリケーションシステム118ご
とに最適なアプリケーションシステム構築用フレームワ
ーク100をその都度開発する場合に比べ、開発コスト
と開発期間とを軽減することができる。Further, according to the first embodiment of the present invention, a plurality of function-specific common interfaces are provided for each function commonly used in the application system 118, and further, each function-specific common interface is provided. Since the mounting module corresponding to each middleware product is provided, the application system construction framework 100 can be easily divided for each function. Therefore, it is possible to provide the application system construction framework 100 having an optimal configuration in which only the functions required for the application system 118 delivered to the customer are selected, and it is necessary to equip more than necessary for the construction of a small-scale system. It is possible to solve the problem that the price of the entire system increases due to the use of the application system construction framework 100. Specifically, for example, when building an application system 118 that does not require a transaction function, the middleware product B1 mounting module 109 and the middleware product B2 mounting module 110 shown in FIG. And the middleware product B1 and the middleware product B2 can be prevented from being attached to the application system construction framework 100. Therefore, the application system 118 constructed by using the application system construction framework 100 in which the transaction function is deleted is the entire system price (the price of the application system 118 and the application system 118 because the middleware products B1 and B2 are unnecessary). The price of the system construction framework 100 can be reduced. Also, since only one general-purpose application system construction framework 100 is prepared and only the necessary parts can be cut out and used according to the application system 118 to be constructed, The development cost and the development period can be reduced as compared with the case where the optimum application system construction framework 100 is developed for each application system 118.
【0039】さらに、本発明の第1の実施の形態によれ
ば、アプリケーションシステム構築用フレームワーク1
00の構成が機能ごとに独立しているので、アプリケー
ションシステム118の機能拡張に応じて、後から必要
な機能を追加していくことが容易である。具体的には例
えば、トランザクション機能が必要なかったため、トラ
ンザクション機能を削除したアプリケーションシステム
構築用フレームワーク100を利用して構築していたア
プリケーションシステム118を考える。このアプリケ
ーションシステム118の機能拡張を行うにあたり、ト
ランザクション機能が必要になったとする。この場合、
現在利用しているアプリケーションシステム構築用フレ
ームワーク100にトランザクション機能共通インタフ
ェース103に対応する実装モジュールを追加し、さら
に、トランザクション機能を提供するミドルウェア製品
を追加することにより、トランザクション機能を提供す
ることが可能になる。この場合、現在利用しているアプ
リケーションシステム構築用フレームワーク100全体
を置き換える必要ないので、基盤部分の移行に伴うコス
トは非常に小さいものとなる。Further, according to the first embodiment of the present invention, the application system construction framework 1
Since the configuration of 00 is independent for each function, it is easy to add necessary functions later according to the function expansion of the application system 118. Specifically, for example, consider an application system 118 that was constructed by using the application system construction framework 100 in which the transaction function is deleted because the transaction function is not required. It is assumed that a transaction function is required to expand the function of the application system 118. in this case,
A transaction function can be provided by adding an implementation module corresponding to the transaction function common interface 103 to the currently used application system construction framework 100 and further adding a middleware product that provides the transaction function. become. In this case, since it is not necessary to replace the entire application system construction framework 100 currently used, the cost associated with the migration of the base part becomes very small.
【0040】さらにまた、本発明の第1の実施の形態に
よれば、アプリケーションシステム構築用フレームワー
ク100の構成が機能ごとに独立しているので、将来新
しい技術やミドルウェア製品が出現した場合等に、アプ
リケーションシステム構築用フレームワーク100に新
しい機能を追加することが容易になる。すなわち、現在
利用しているアプリケーションシステム構築用フレーム
ワーク100に新しい機能を利用するための共通インタ
フェースを新たに定義し、さらに、これに対応する実装
モジュールを作成することにより、新しい機能を追加す
ることが可能になる。この場合、アプリケーションシス
テム構築用フレームワーク100のうち従来からある共
通インタフェースや実装モジュールについては変更が必
要ないため、アプリケーションシステム構築用フレーム
ワーク100を利用して構築している既存のアプリケー
ションシステム118には、変更の影響が及ばない。Furthermore, according to the first embodiment of the present invention, the configuration of the application system construction framework 100 is independent for each function, so that when a new technology or middleware product appears in the future, etc. It becomes easy to add a new function to the application system construction framework 100. That is, a new interface is added to the currently used application system construction framework 100 by newly defining a common interface for using the new function and further creating an implementation module corresponding to the common interface. Will be possible. In this case, since there is no need to change the conventional common interface and mounted module in the application system construction framework 100, the existing application system 118 constructed using the application system construction framework 100 does not need to be changed. , The effect of the change has no effect.
【0041】第2の実施の形態
次に、図3により、本発明によるアプリケーションシス
テム構築用フレームワークの第2の実施の形態について
説明する。なお、本発明の第2の実施の形態は、共通イ
ンタフェース群の各機能別共通インタフェースが、アプ
リケーションシステムで利用されるプログラミング言語
ごとに用意されている点を除いて、他は、図1および図
2に示す第1の実施の形態と略同一である。図3に示す
第2の実施の形態において、図1および図2に示す第1
の実施の形態と同一部分には同一符号を付して詳細な説
明は省略する。 Second Embodiment Next, a second embodiment of the application system construction framework according to the present invention will be described with reference to FIG. Note that the second embodiment of the present invention is similar to FIG. 1 and FIG. 1 except that a common interface for each function of the common interface group is prepared for each programming language used in the application system. It is almost the same as the first embodiment shown in FIG. In the second embodiment shown in FIG. 3, the first embodiment shown in FIGS. 1 and 2 is used.
The same parts as those in the embodiment will be designated by the same reference numerals and detailed description thereof will be omitted.
【0042】上述した第1の実施の形態においては、ア
プリケーションシステム118で利用されるプログラミ
ング言語については言及しなかったが、アプリケーショ
ンシステム構築用フレームワーク100を汎用的なもの
とするためには、アプリケーションシステム118で利
用される様々なプログラミング言語に対応できるものに
する必要がある。しかしながら、各プログラミング言語
の違い(例えば利用できるデータ型の違い等)により、
共通インタフェース群101をどのプログラミング言語
でも同じ利用方法(インタフェース)で利用できるよう
に定義することは困難である。In the above-described first embodiment, the programming language used in the application system 118 is not mentioned, but in order to make the application system construction framework 100 general-purpose, the application It should be able to support the various programming languages utilized by system 118. However, due to differences in each programming language (for example, differences in available data types)
It is difficult to define the common interface group 101 so that it can be used with the same usage (interface) in any programming language.
【0043】そこで、本発明の第2の実施の形態におい
ては、図3に示すように、共通インタフェース(ここで
はメッセージング機能共通インタフェース102を例に
挙げて説明する。)を各プログラミング言語用のインタ
フェースの集合として構成することとする。そして、実
装モジュールは、各ミドルウェア製品用にそれぞれ用意
するだけでなく、各プログラミング言語ごとにも用意す
る。すなわち、ミドルウェア製品A1をJava言語で
利用するための実装モジュール303、ミドルウェア製
品A1をC++言語で利用するための実装モジュール3
06、…、ミドルウェア製品A2をJava言語で利用
するための実装モジュール304、ミドルウェア製品A
2をC++言語で利用するための実装モジュール30
7、…、というようにそれぞれ用意する。Therefore, in the second embodiment of the present invention, as shown in FIG. 3, a common interface (here, the messaging function common interface 102 will be described as an example) is an interface for each programming language. It will be configured as a set of. Then, the mounting module is prepared not only for each middleware product but also for each programming language. That is, the mounting module 303 for using the middleware product A1 in Java language, and the mounting module 3 for using the middleware product A1 in C ++ language.
06, ..., Mounting module 304 for using middleware product A2 in Java language, middleware product A
Implementation module 30 for using 2 in C ++ language
7 ..., and so on.
【0044】なお、同一のプログラミング言語用の実装
モジュール、例えば、ミドルウェア製品A1をJava
言語で利用するための実装モジュール303と、ミドル
ウェア製品A2をJava言語で利用するための実装モ
ジュール306の作成および登録の方法は、上述した第
1の実施の形態で述べたとおりである。これはプログラ
ミング言語が違っても同じ方法で行うことができる。A mounting module for the same programming language, for example, middleware product A1 is Java.
The method of creating and registering the mounting module 303 for using the language and the mounting module 306 for using the middleware product A2 in the Java language are as described in the first embodiment. This can be done the same way in different programming languages.
【0045】一方、各プログラミング言語用の実装モジ
ュールは、実行ファイルの形態や実行できるように配備
するディレクトリの違い等から、複数の実装モジュール
がシステム内に混在していても、アプリケーションシス
テム118から利用するときに干渉し合うということは
ない。例えば、ミドルウェア製品A1をJava言語で
利用するための実装モジュールと、ミドルウェア製品A
1をC++言語で利用するための実装モジュールは、そ
れぞれの言語で定められた形態、すなわち、Java言
語においては、classファイルやそれをまとめたJ
ARアーカイブファイル、C++言語においてはダイナ
ミックリンクライブラリファイル等の形態で、所定のデ
ィレクトリに配備すればよい。これについても、上述し
た第1の実施の形態で述べたとおりである。On the other hand, the mounting module for each programming language is used by the application system 118 even if a plurality of mounting modules are mixed in the system due to the difference in the form of the execution file and the directory to be deployed so that the module can be executed. There is no mutual interference when doing. For example, an implementation module for using the middleware product A1 in Java language, and a middleware product A
The implementation module for using 1 in the C ++ language has a form defined in each language, that is, in the Java language, a class file or a J file that summarizes the class file.
It may be provided in a predetermined directory in the form of an AR archive file or a dynamic link library file in the C ++ language. This is also as described in the above-described first embodiment.
【0046】このように本発明の第2の実施の形態によ
れば、共通インタフェース群101の各機能別共通イン
タフェースを、アプリケーションシステム118で利用
されるプログラミング言語ごとに用意しているので、上
述した第1の実施の形態の作用効果を奏するとともに、
複数のプログラミング言語に対応した汎用的なアプリケ
ーションシステム構築用フレームワーク100を実現す
ることができる。As described above, according to the second embodiment of the present invention, the function-specific common interfaces of the common interface group 101 are prepared for each programming language used in the application system 118, and therefore, the above description has been made. In addition to the operational effects of the first embodiment,
It is possible to realize a general-purpose application system construction framework 100 compatible with a plurality of programming languages.
【0047】また、本発明の第2の実施の形態によれ
ば、アプリケーションシステム118で利用されるプロ
グラミング言語ごとに複数の言語別共通インタフェース
を設け、さらに、それぞれの言語別共通インタフェース
ごとに、各ミドルウェア製品に対応する実装モジュール
を設けているので、アプリケーションシステム構築用フ
レームワーク100をプログラミング言語ごとに容易に
分割することができる。このため、構築対象となるアプ
リケーションシステム118で利用しないプログラミン
グ言語用の実装モジュールを切り離して提供することが
可能となり、顧客に納品するアプリケーションシステム
118に応じて最適な構成のアプリケーションシステム
構築用フレームワーク100を提供することができる。In addition, according to the second embodiment of the present invention, a plurality of language-specific common interfaces are provided for each programming language used in the application system 118, and further, each language-specific common interface is provided with each interface. Since the mounting module corresponding to the middleware product is provided, the application system construction framework 100 can be easily divided for each programming language. Therefore, it is possible to separately provide an implementation module for a programming language that is not used by the application system 118 to be constructed, and the application system constructing framework 100 having an optimal configuration according to the application system 118 delivered to the customer. Can be provided.
【0048】さらに、本発明の第2の実施の形態によれ
ば、アプリケーションシステム構築用フレームワーク1
00の構成がプログラミング言語ごとに独立しているの
で、アプリケーションシステム118の拡張を行うにあ
たり、現在利用しているプログラミング言語以外のプロ
グラミング言語が必要になる場合、最初の納品時に切り
離して提供していたプログラミング言語用の実装モジュ
ールを追加することにより、そのような要求に対応する
ことができる。Further, according to the second embodiment of the present invention, the framework 1 for application system construction is provided.
Since the configuration of 00 is independent for each programming language, when expanding the application system 118, if a programming language other than the currently used programming language is required, it was provided separately at the time of first delivery. It is possible to meet such a demand by adding an implementation module for a programming language.
【0049】さらにまた、本発明の第2の実施の形態に
よれば、アプリケーションシステム構築用フレームワー
ク100の構成がプログラミング言語ごとに独立してい
るので、将来新しいプログラミング言語が出現した場合
にも、実装モジュールの追加等により、アプリケーショ
ンシステム構築用フレームワーク100を拡張していく
ことが可能になる。Furthermore, according to the second embodiment of the present invention, since the configuration of the application system construction framework 100 is independent for each programming language, even if a new programming language appears in the future, It becomes possible to expand the application system construction framework 100 by adding mounting modules.
【0050】第3の実施の形態
次に、図4により、本発明によるアプリケーションシス
テム構築用フレームワークの第3の実施の形態について
説明する。なお、本発明の第3の実施の形態は、実装モ
ジュール群が、異なる実装技術(分散コンピューティン
グ技術)を利用したアプリケーションシステム間の移行
処理を実現するための実装モジュールを含む点を除い
て、他は、図3に示す第2の実施の形態と略同一であ
る。図4に示す第3の実施の形態において、図3に示す
第2の実施の形態と同一部分には同一符号を付して詳細
な説明は省略する。 Third Embodiment Next, a third embodiment of the application system construction framework according to the present invention will be described with reference to FIG. Note that the third embodiment of the present invention is different in that the mounting module group includes a mounting module for realizing a migration process between application systems using different mounting technologies (distributed computing technology). Others are substantially the same as those of the second embodiment shown in FIG. In the third embodiment shown in FIG. 4, the same parts as those in the second embodiment shown in FIG. 3 are designated by the same reference numerals, and detailed description thereof will be omitted.
【0051】本発明が前提とする、エンタープライズシ
ステムに代表されるアプリケーションシステムは、異機
種分散システムとして構築される場合が多い。このよう
な異機種分散システムを構築するための技術としては、
CORBAや、Java言語の言語仕様に含まれるJa
va RMI(Remote Method Invocation)等がある。
一般に、これらの技術はそれぞれ適用される対象が異な
っており、CORBAは比較的大規模なシステムに適用
され、Java RMIは比較的小規模なシステムに適
用される場合が多い。従って、次のような移行作業が発
生することが考えられる。The application system represented by the enterprise system on which the present invention is based is often constructed as a heterogeneous distributed system. As a technology for constructing such a heterogeneous distributed system,
Java included in CORBA and Java language specifications
va RMI (Remote Method Invocation).
In general, these technologies are applied to different objects, and CORBA is often applied to a relatively large-scale system, and Java RMI is often applied to a relatively small-scale system. Therefore, the following migration work may occur.
【0052】(1) Java RMIを利用してプロト
タイプを作成し、これをCORBAベースに移植して最
終的なシステムを作成する。(1) A prototype is created using Java RMI, and this is ported to a CORBA base to create a final system.
【0053】(2) Java RMIを利用して作成し
たいくつかのサブシステムを統合して大規模なシステム
を構築する場合、各サブシステムをCORBAベースに
移植して、CORBAベースの大規模なシステムを作成
する。(2) When a large-scale system is constructed by integrating several subsystems created by using Java RMI, each subsystem is ported to a CORBA base and a large-scale CORBA-based system is constructed. To create.
【0054】(3) いくつかのサブシステムから構成さ
れる、CORBAベースの大規模なシステムが構築され
ている場合、このようなサブシステムのいくつかを独立
させ、小規模なシステムとして別の顧客に提供すること
がある。この場合、小規模なシステムなので、CORB
AベースではなくJava RMIベースに移植して提
供することが望まれる場合がある。(3) When a large-scale CORBA-based system consisting of several subsystems is built, some of these subsystems are made independent and another customer is provided as a small-scale system. May be provided to In this case, since it is a small system, CORB
It may be desirable to port and provide to Java RMI base instead of A base.
【0055】このように、CORBAベースのシステム
とJava RMIベースのシステムとの間の相互移行
の必要性は高い。この場合、その都度アプリケーション
システム118のソースコードを修正して移植すること
も考えられるが、共通インタフェース間の移行モジュー
ルを用意しておくことにより、共通インタフェースを利
用する部分のソースコードはそのままにして移行するこ
とが可能になり、移行コストの低減を図ることができ
る。Thus, there is a high need for mutual migration between CORBA-based systems and Java RMI-based systems. In this case, the source code of the application system 118 may be modified and ported each time, but by preparing a migration module between common interfaces, the source code of the part that uses the common interface is left unchanged. It becomes possible to make a transition, and the transition cost can be reduced.
【0056】CORBAを利用する場合には、まず、C
ORBA IDL(Interface Definition Language)
という言語を用いてインタフェースを定義する。次に、
この定義から、実装言語用のインタフェースを生成し、
実装言語を用いてプログラムを作成するという手順にな
る。実装言語としては、Javaや、C++、Smal
ltalk等を利用することができる。従って、COR
BA IDLは、実装言語に依存しないようなインタフ
ェース定義言語となっている。When using CORBA, first, C
ORBA IDL (Interface Definition Language)
Interface is defined using the language. next,
Generate the interface for the implementation language from this definition,
The procedure is to create a program using the implementation language. As the implementation language, Java, C ++, Smal
ltalk or the like can be used. Therefore, COR
BA IDL is an interface definition language that does not depend on the implementation language.
【0057】ここでは、実装言語としてJava言語を
利用する場合を想定して説明する。CORBA IDL
は、実装言語に依存しないように作られているため、J
ava言語で利用できるJava言語特有のデータ型や
機能が、CORBA IDLでは利用できない場合があ
る。主なものを挙げると、以下のようになる。Here, description will be made assuming that the Java language is used as the implementation language. CORBA IDL
Is designed to be independent of the implementation language, so J
Data types and functions specific to the Java language that can be used in the Java language may not be available in CORBA IDL. The main ones are as follows.
【0058】(1) 配列等のような、Java言語とC
ORBA IDLとの間で使用方法の異なるデータ型
(2) EnumerationやVectorのような、Java言語で用
意されているユーティリティクラス
(3) 内部にメソッドを持つ例外型(Exception)
(4) メソッドのオーバーローディング
上述した第2の実施の形態においては、実装言語ごとに
異なる共通インタフェースを定義するものとして説明し
たが、実装言語としてJava言語を用いる場合、分散
コンピューティング技術(実装技術)としてCORBA
を用いるか、Java RMIを用いるかによっても、
異なる共通インタフェースを定義する必要がある。従っ
て、上述したようにCORBAベースのシステムとJa
va RMIベースのシステムとの間で相互に移行処理
を行うような場合、共通インタフェースを用いる部分の
変換作業が必要となる。(1) Java language and C, such as array
Data types that are used differently from ORBA IDL (2) Utility classes prepared in Java language such as Enumeration and Vector (3) Exception type with methods inside (Exception) (4) Overflow of methods Loading In the above-described second embodiment, a common interface different for each implementation language is defined, but when the Java language is used as the implementation language, CORBA is used as the distributed computing technology (implementation technology).
Or Java RMI,
Different common interfaces need to be defined. Therefore, as mentioned above, CORBA-based systems and Ja
In the case where mutual migration processing is performed with a va RMI-based system, it is necessary to perform conversion work for a portion that uses a common interface.
【0059】そこで、本発明の第3の実施の形態におい
ては、このような変換作業の手間を軽減するため、図4
に示すように、共通インタフェース間の移行モジュール
を実装モジュールとして設ける。すなわち、CORBA
ベースのシステムとJavaRMIベースのシステムと
の間で相互移行が必要な場合、CORBA−Java移
行モジュール405とJava−CORBA移行モジュ
ール406とを用意する。CORBA−Java移行モ
ジュール405は、CORBA用共通インタフェース4
01の実装モジュールの一つとして実現される。同様
に、Java−CORBA移行モジュール406は、J
ava言語用共通インタフェ−ス301の実装モジュー
ルの一つとして実現される。また、Java RMI
は、Java言語の言語仕様に含まれているため、Ja
va RMI用の共通インタフェースを特別に用意する
必要はなく、Java言語用の共通インタフェース30
1を用いることになる。Therefore, in the third embodiment of the present invention, in order to reduce the trouble of such conversion work, FIG.
As shown in, a transition module between common interfaces is provided as a mounting module. That is, CORBA
If mutual migration is required between the base system and the Java RMI-based system, the CORBA-Java migration module 405 and the Java-CORBA migration module 406 are prepared. The CORBA-Java migration module 405 is a common interface 4 for CORBA.
It is realized as one of the 01 mounting modules. Similarly, the Java-CORBA migration module 406
It is realized as one of the mounting modules of the common interface 301 for the ava language. Also, Java RMI
Is included in the Java language specification, so Java
It is not necessary to prepare a common interface for va RMI, and a common interface for Java language 30
1 will be used.
【0060】次に、上述した移行モジュールの実現方法
の一例について、Java−CORBA移行モジュール
406を例に挙げて説明する。Next, an example of a method of implementing the above-mentioned migration module will be described by taking the Java-CORBA migration module 406 as an example.
【0061】Java−CORBA移行モジュール40
6では、Java言語用共通インタフェース301を介
して送られてきたデータ等を、CORBA用共通インタ
フェース401に適合する形に変換して、CORBA用
共通インタフェース401に渡す、という処理を行うこ
とになる。ここで行われる変換処理は、上述した、CO
RBA IDLでは利用できないJava言語特有のデ
ータ型や機能についての変換ということになる。Java-CORBA migration module 40
In 6, the process of converting the data or the like sent through the Java language common interface 301 into a form suitable for the CORBA common interface 401 and passing it to the CORBA common interface 401 is performed. The conversion process performed here is the above-mentioned CO
This means conversion of data types and functions peculiar to Java language that cannot be used in RBA IDL.
【0062】まず、1点目として、配列の取り扱いにつ
いて説明する。First, as a first point, the handling of arrays will be described.
【0063】CORBA IDLでは、配列は固定長と
してしか定義できない。しかし、Java言語では、
void sendByteMessage(byte[] message, int option)
のようなインタフェースを定義した場合、配列message
の大きさを実行時に決定することができる。すなわち、
このインタフェースでは、サイズ10のmessageもサイ
ズ100のmessageも送ることができる。しかし、CO
RBA IDLの配列では、IDL定義時に定めたサイ
ズの配列しか送ることができない。このようなことを行
う場合には、CORBA IDLでは、sequenceという
可変長の配列型を利用することになる。従って、移行モ
ジュールでは、配列の形で受け渡されたデータをsequen
ceに移し替えてCORBAのインタフェースに渡すとい
う処理を行う。In CORBA IDL, arrays can only be defined as fixed length. However, in the Java language, if an interface such as void sendByteMessage (byte [] message, int option) is defined, the array message
The size of can be determined at run time. That is,
This interface can send both size 10 and size 100 messages. But CO
With the RBA IDL array, only an array of the size defined when the IDL was defined can be sent. To do this, CORBA IDL uses a variable-length array type called sequence. Therefore, in the migration module, the data passed in the form of array is sequen
The process of transferring to ce and passing it to the interface of CORBA is performed.
【0064】2点目として、Java言語で用意されて
いるユーティリティクラスの取り扱いについて説明す
る。As a second point, the handling of utility classes prepared in Java language will be described.
【0065】Java言語では、EnumerationやVector
のようなユーティリティクラスが用意されており、複数
個のデータを返却するようなインタフェースにおいて利
用されることが多い。しかし、CORBA IDLでは
このようなクラスは用意されていないため、配列または
sequenceの形で返却するようにインタフェースを定める
必要がある。従って、移行モジュールでは、配列または
sequenceの形でCORBAのインタフェースから返却さ
れたデータをEnumeration(またはVector)に移し替
え、クライアントアプリケーションではEnumeration
(またはVector)としてデータを参照することができる
ようにする。In Java language, Enumeration and Vector
Utility classes such as are prepared and are often used in interfaces that return multiple data. However, CORBA IDL does not provide such a class, so an array or
It is necessary to define the interface so that it will be returned in the form of sequence. Therefore, in the migration module, the array or
Transfer the data returned from the CORBA interface in the form of sequence to Enumeration (or Vector) and use Enumeration in the client application.
Allow data to be referenced as (or Vector).
【0066】3点目として、例外型(Exception)の取
り扱いについて説明する。As a third point, handling of an exception type (Exception) will be described.
【0067】Java言語のExceptionは、通常のクラ
スと同様、内部にメソッドを定義することができるよう
になっている。しかし、CORBA IDLのExceptio
nではメソッドを定義することができず、データを保持
することのみができるようになっている。従って、移行
モジュールでは、CORBAのインタフェースか渡され
たExceptionに設定されているデータを取り出し、必要
に応じてオブジェクトを生成して値を設定する処理を行
う。The Java language Exception can be internally defined with a method, like a normal class. However, CORBA IDL Exceptio
In n, you cannot define a method, but only retain data. Therefore, the migration module takes out the data set in the Exception passed from the CORBA interface, creates an object as necessary, and sets the value.
【0068】4点目として、メソッドのオーバーローデ
ィングの取り扱いについて説明する。As a fourth point, handling of method overloading will be described.
【0069】Java言語ではメソッドのオーバーロー
ディング、すなわち、同一クラス内にて名前が同じで引
数が異なるメソッドを定義することが可能になってい
る。しかし、CORBA IDLではオーバーローディ
ングはサポートされていない。従って、Java言語用
の共通インタフェースでオーバーローディングが利用さ
れている場合、CORBA IDLではそれぞれのメソ
ッドの名前を変えるか、引数の個数の最も多いメソッド
を一つ定義してメソッドの内部で処理を分岐させるとい
う方法をとることになる。例えば、Java言語用の共
通インタフェースで、次の二つのメソッドが定義されて
いるものとする。In the Java language, it is possible to overload methods, that is, to define methods having the same name but different arguments in the same class. However, CORBA IDL does not support overloading. Therefore, when overloading is used in the Java language common interface, in CORBA IDL, the name of each method is changed or one method with the largest number of arguments is defined and processing is branched inside the method. I will take the method to let. For example, it is assumed that the following two methods are defined in the common interface for Java language.
【0070】void sendMessage(String message);
void sendMessage(String message, int option);
これに対して、CORBA IDLでは、
void sendMessage(String message, int option)
というメソッド1つに集約されるものとする。なお、こ
のメソッドでは、引数optionの値が−1の場合、デフォ
ルトのオプション設定でメッセージの送信を行うような
仕様とする。この場合、移行モジュールでは、2つの引
数を持つsendMessage()メソッドの場合はそのままCO
RBA IDLのメソッドを呼び出すが、1つの引数の
みを持つsendMessage()メソッドの場合には2番目の引
数を−1としてCORBA IDLのメソッドを呼び出
すという処理を行うことになる。Void sendMessage (String message); void sendMessage (String message, int option); On the other hand, in CORBA IDL, it is assumed that one method is called void sendMessage (String message, int option). In this method, when the value of the argument option is -1, the specification is such that the message is transmitted with the default option setting. In this case, in the migration module, if the sendMessage () method with two arguments
The RBA IDL method is called, but in the case of the sendMessage () method having only one argument, the CORBA IDL method is called with the second argument being -1.
【0071】以上のような処理を行う移行モジュール
を、メッセージング機能、トランザクション機能および
セキュリティ機能等の共通インタフェースごとに用意
し、それぞれの実装モジュールとして追加することによ
り、移行作業の軽減を図ることができる。By preparing a migration module for performing the above processing for each common interface such as a messaging function, a transaction function and a security function and adding them as respective mounting modules, migration work can be reduced. .
【0072】例えば、Java RMIを利用したアプ
リケーションシステム408をCORBAべースで動作
するように移行する場合、次のような流れで移行処理が
行われることになる。For example, when migrating the application system 408 using Java RMI to operate on the CORBA base, the migration process is performed in the following flow.
【0073】(1) Java RMIを利用するアプリ
ケーションシステム408が、Java言語用共通イン
タフェース301を呼び出す。(1) The application system 408 using Java RMI calls the Java language common interface 301.
【0074】(2) Java言語用共通インタフェース
301の実装クラスとして用意されている実装モジュー
ルが実行される。この場合、実行される実装モジュール
は、Java−CORBA移行モジュール406であ
る。(2) The mounting module prepared as the mounting class of the Java language common interface 301 is executed. In this case, the implemented module to be executed is the Java-CORBA migration module 406.
【0075】(3) Java−CORBA移行モジュー
ル406内でデータ型の変換等を行い、CORBA用共
通インタフェース401を呼び出す。(3) Data type conversion is performed in the Java-CORBA migration module 406, and the CORBA common interface 401 is called.
【0076】(4) CORBA用共通インタフェース4
01の実装クラスとして用意されている実装モジュール
が実行される。この場合、実行される実装モジュール
は、利用されるミドルウェア製品に対応した実装モジュ
ール、すなわちミドルウェア製品A2用実装モジュール
403である。(4) CORBA common interface 4
The mounting module prepared as the mounting class of 01 is executed. In this case, the mounting module to be executed is the mounting module corresponding to the middleware product to be used, that is, the mounting module 403 for middleware product A2.
【0077】(5) ミドルウェア製品A2用実装モジュ
ール403からミドルウェア製品A2の機能が呼び出さ
れ、Java RMIを利用するアプリケーションシス
テム408が要求する処理が実行される。(5) The function of the middleware product A2 is called from the mounting module 403 for middleware product A2, and the processing requested by the application system 408 using Java RMI is executed.
【0078】なお、以上においては、Java RMI
からCORBAに移行するための移行モジュールについ
て説明したが、CORBAからJava RMIへの移
行についても、以上に述べたことと逆の処理を行うこと
により実現できる。また、CORBAやJava RM
I以外の技術についても、同様にして移行モジュールを
作成することができる。In the above, Java RMI is used.
The migration module for migrating from CORBA to CORBA has been described, but the migration from CORBA to Java RMI can also be realized by performing the processing reverse to that described above. In addition, CORBA and Java RM
Migration technologies can be similarly created for technologies other than I.
【0079】本発明の第3の実施の形態によれば、異な
る分散コンピューティング技術(実装技術)を利用した
プログラム間の移行処理を行う移行モジュールを実装モ
ジュールとして設けているので、Java RMIベー
スのシステムとCORBAベースのシステムのように、
異なる分散コンピューティング技術(実装技術)を利用
したシステム間の移行において、アプリケーションシス
テムの変更作業(共通インタフェースを用いる部分のソ
ースコードの変換作業)が不要となり、移行作業の軽減
を図ることができる。このため、Java RMIを利
用して作成したプロトタイプシステムを、最終的にCO
RBAベースのシステムとして提供するような場合や、
いくつかのJava RMIベースのサブシステムを、
最終的にCORBAベースの大規模なシステムに統合す
るような場合等において、上述したようなシステムの開
発方法によって、異なる分散コンピューティング技術間
の相互移行を行うことができる。According to the third embodiment of the present invention, a migration module for performing migration processing between programs using different distributed computing technologies (mounting technologies) is provided as a mounting module. Like systems and CORBA-based systems,
When migrating between systems using different distributed computing technologies (implementation technologies), the work of changing the application system (the work of converting the source code of the part that uses the common interface) is unnecessary, and the migration work can be reduced. For this reason, the prototype system created using Java RMI is finally
When it is provided as an RBA-based system,
Several Java RMI-based subsystems,
In the case of finally integrating into a large-scale CORBA-based system, etc., mutual migration between different distributed computing technologies can be performed by the system development method as described above.
【0080】なお、上述した第1乃至第3の実施の形態
に係るアプリケーションシステム構築用フレームワーク
100は、例えば図5に示すようなコンピュータシステ
ム10上に実装されて用いられる。なお、アプリケーシ
ョンシステム構築用フレームワーク100は、フレキシ
ブルディスク21やCD−ROM22等のコンピュータ
読み取り可能な記録媒体に記録され、フレキシブルディ
スク21やCD−ROM22等を介して、コンピュータ
システム10上に実装することが可能である。The application system construction framework 100 according to the above-described first to third embodiments is used by being mounted on a computer system 10 as shown in FIG. 5, for example. The application system construction framework 100 is recorded on a computer-readable recording medium such as the flexible disk 21 or the CD-ROM 22, and is mounted on the computer system 10 via the flexible disk 21 or the CD-ROM 22. Is possible.
【0081】なお、コンピュータシステム10は、ミニ
タワー等の筐体に収納されたコンピュータ本体11と、
CRT(Cathode Ray Tube)等の表示装置12と、記録
出力装置としてのプリンタ13と、入力装置としてのキ
ーボード14およびマウス15と、記録媒体としてのフ
ロッピー(登録商標)ディスク21内の情報を読み出す
ためのフロッピーディスクドライブ装置16と、記録媒
体としてのCD−ROM12内の情報を読み出すための
CD−ROMドライブ装置17とを備えている。The computer system 10 includes a computer main body 11 housed in a casing such as a mini tower,
To read information from a display device 12 such as a CRT (Cathode Ray Tube), a printer 13 as a recording output device, a keyboard 14 and a mouse 15 as input devices, and a floppy (registered trademark) disk 21 as a recording medium. The floppy disk drive device 16 and the CD-ROM drive device 17 for reading information from the CD-ROM 12 as a recording medium.
【0082】なお、記録媒体としては、フレキシブルデ
ィスクやCD−ROMに限られず、磁気ディスク、内部
メモリ、ハードディスク、光ディスク(CD−R、DV
D(Digital Versatile Disk)等)、光磁気ディスク
(MO(Magneto Optical)等)、半導体メモリ等のよ
うに、フレームワークを記録でき、かつコンピュータが
読み取り可能な記録媒体であれば、その記録形式はいず
れの形式であってもよい。また、記録媒体としては、ネ
ットワーク上で伝送される際の搬送波や、情報伝達媒体
も含む。The recording medium is not limited to a flexible disk or a CD-ROM, but a magnetic disk, an internal memory, a hard disk, an optical disk (CD-R, DV).
As long as the recording medium can record the framework and can be read by the computer, such as a D (Digital Versatile Disk)), a magneto-optical disk (MO (Magneto Optical)), a semiconductor memory, etc., the recording format is Either format may be used. The recording medium also includes a carrier wave when transmitted on a network and an information transmission medium.
【0083】また、記録媒体は、コンピュータと独立し
た媒体に限らず、LANやインターネット等により伝送
されたフレームワークをダウンロードして記憶または一
時記憶した記録媒体も含まれる。Further, the recording medium is not limited to a medium independent of the computer, but includes a recording medium in which the framework transmitted by the LAN, the Internet or the like is downloaded and stored or temporarily stored.
【0084】さらにまた、記録媒体は1つに限らず、複
数の媒体上にフレームワークが記録されている場合も、
ここでいう記録媒体に含まれ、媒体構成はいずれの構成
であってもよい。Furthermore, the number of recording media is not limited to one, and when frameworks are recorded on a plurality of media,
The medium structure may be any as long as it is included in the recording medium here.
【0085】[0085]
【発明の効果】以上説明したように本発明によれば、ミ
ドルウェア製品の変更の影響がアプリケーションシステ
ムに及ぶことがなく、利用されるミドルウェア製品の変
更を容易に行うことができる。また、アプリケーション
システム構築用フレームワークを機能ごとに容易に分割
することができ、このため、ミドルウェア製品の追加や
削除等に伴う、機能の追加や削除等を容易に行うことが
できる。As described above, according to the present invention, it is possible to easily change the middleware product to be used, without the influence of the change of the middleware product affecting the application system. In addition, the framework for building an application system can be easily divided for each function, and therefore, it is possible to easily add or delete functions accompanying addition or deletion of middleware products.
【図1】本発明によるアプリケーションシステム構築用
フレームワークの第1の実施の形態を説明するためのブ
ロック図。FIG. 1 is a block diagram for explaining a first embodiment of a framework for building an application system according to the present invention.
【図2】図1に示すアプリケーションシステム構築用フ
レームワークのうちメッセージング機能に関する部分を
詳細化したブロック図。FIG. 2 is a detailed block diagram of a portion related to a messaging function of the application system construction framework shown in FIG.
【図3】本発明によるアプリケーションシステム構築用
フレームワークの第2の実施の形態を説明するためのブ
ロック図。FIG. 3 is a block diagram for explaining a second embodiment of a framework for building an application system according to the present invention.
【図4】本発明によるアプリケーションシステム構築用
フレームワークの第3の実施の形態を説明するためのブ
ロック図。FIG. 4 is a block diagram for explaining a third embodiment of an application system construction framework according to the present invention.
【図5】アプリケーションシステム構築用フレームワー
クが実装されるコンピュータシステムの一例を示すため
の図。FIG. 5 is a diagram showing an example of a computer system in which a framework for building an application system is installed.
100 アプリケーションシステム構築用フレームワー
ク
101 共通インタフェース群
102〜104、301,302,401 共通インタ
フェース
105 実装モジュール群
106〜111、303〜308,402〜404 実
装モジュール
406,407 移行モジュール(実装モジュール)
112,114,116,201,203 ミドルウェ
ア製品の固有API
113,115,117,202,204 ミドルウェ
ア製品
118,407,408 アプリケーションシステム100 application system construction framework 101 common interface group 102-104, 301, 302, 401 common interface 105 mounting module group 106-111, 303-308, 402-404 mounting module 406, 407 migration module (mounting module) 112, 114, 116, 201, 203 Unique API of middleware product 113, 115, 117, 202, 204 Middleware product 118, 407, 408 Application system
Claims (5)
と、 前記ミドルウェア製品群のそれぞれを利用するためのイ
ンタフェースを提供する共通インタフェース群と、 前記ミドルウェア製品群のそれぞれに対応して実装さ
れ、前記共通インタフェース群のそれぞれを介したアク
セスに応じて、対応するミドルウェア製品の機能を実行
する実装モジュール群とを備えたことを特徴とするアプ
リケーションシステム構築用フレームワーク。1. A middleware product group that provides various functions, a common interface group that provides an interface for using each of the middleware product groups, and a common interface group that is implemented corresponding to each of the middleware product groups. A framework for building an application system, comprising: an implementation module group that executes a function of a corresponding middleware product according to access via each of the common interface groups.
ションシステムで共通的に利用される機能ごとに用意さ
れた複数の機能別共通インタフェースを含み、それぞれ
の機能別共通インタフェースごとに、前記各ミドルウェ
ア製品に対応する実装モジュールが設けられていること
を特徴とする、請求項1記載のアプリケーションシステ
ム構築用フレームワーク。2. The common interface group includes a plurality of function-specific common interfaces prepared for each function commonly used in an application system, and each function-specific common interface corresponds to each middleware product. The application system construction framework according to claim 1, characterized in that a mounting module is provided.
リケーションシステムで利用されるプログラミング言語
ごとに用意されていることを特徴とする、請求項2記載
のアプリケーションシステム構築用フレームワーク。3. The framework for building an application system according to claim 2, wherein the common interface for each function is prepared for each programming language used in the application system.
を利用したアプリケーションシステム間の移行処理を実
現するための実装モジュールを含むことを特徴とする、
請求項1乃至3のいずれか記載のアプリケーションシス
テム構築用フレームワーク。4. The mounting module group includes a mounting module for realizing a migration process between application systems using different mounting technologies.
The framework for building an application system according to claim 1.
のそれぞれに対応して実装され、前記ミドルウエア製品
群のそれぞれを利用するためのインターフェースを提供
する共通インターフェース群のそれぞれを介したアクセ
スに応じて、対応するミドルウェア製品の機能を実行す
る実装モジュール群を備えたことを特徴とするアプリケ
ーションシステム構築用プログラム。5. According to access through each of common interface groups that are implemented corresponding to each of the middleware product groups that provide various functions and that provide an interface for using each of the middleware product groups. A program for building an application system, which is equipped with a group of mounting modules that execute the functions of the corresponding middleware products.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001305275A JP2003108370A (en) | 2001-10-01 | 2001-10-01 | Application system construction framework |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001305275A JP2003108370A (en) | 2001-10-01 | 2001-10-01 | Application system construction framework |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003108370A true JP2003108370A (en) | 2003-04-11 |
Family
ID=19125089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001305275A Pending JP2003108370A (en) | 2001-10-01 | 2001-10-01 | Application system construction framework |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003108370A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005129027A (en) * | 2003-10-23 | 2005-05-19 | Microsoft Corp | Design for application programming interface (api) |
JP2006309621A (en) * | 2005-04-28 | 2006-11-09 | Toshiba Corp | Plug-in method for software, and application system |
JP2010009326A (en) * | 2008-06-27 | 2010-01-14 | Hitachi Ltd | Built-in controller |
US7779180B2 (en) | 2005-04-26 | 2010-08-17 | Kabushiki Kaisha Toshiba | Semiconductor device and system for performing data processing |
JP2011514586A (en) * | 2008-02-08 | 2011-05-06 | エクリオ インコーポレイテッド | System, method, and apparatus for controlling multiple applications and services on a digital electronic device |
-
2001
- 2001-10-01 JP JP2001305275A patent/JP2003108370A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005129027A (en) * | 2003-10-23 | 2005-05-19 | Microsoft Corp | Design for application programming interface (api) |
US7779180B2 (en) | 2005-04-26 | 2010-08-17 | Kabushiki Kaisha Toshiba | Semiconductor device and system for performing data processing |
JP2006309621A (en) * | 2005-04-28 | 2006-11-09 | Toshiba Corp | Plug-in method for software, and application system |
JP2011514586A (en) * | 2008-02-08 | 2011-05-06 | エクリオ インコーポレイテッド | System, method, and apparatus for controlling multiple applications and services on a digital electronic device |
US8613002B2 (en) | 2008-02-08 | 2013-12-17 | Ecrio, Inc. | System, method and apparatus for controlling multiple applications and services on a digital electronic device |
US9348409B2 (en) | 2008-02-08 | 2016-05-24 | Ecrio, Inc. | System, method and apparatus for controlling multiple applications and services on a digital electronic device |
JP2010009326A (en) * | 2008-06-27 | 2010-01-14 | Hitachi Ltd | Built-in controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7111016B2 (en) | Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation | |
CA2316003C (en) | Accessing legacy applications from the internet | |
CN100456237C (en) | Method and device for accessing database | |
US5708828A (en) | System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields | |
US7546606B2 (en) | System and method using a connector architecture for application integration | |
US20040193616A1 (en) | Type bridges | |
US6356946B1 (en) | System and method for serializing Java objects in a tubular data stream | |
US20060271911A1 (en) | Generating executable objects implementing methods for an information model | |
US20140172886A1 (en) | System and method for conversion of jms message data into database transactions for application to multiple heterogeneous databases | |
US20090157596A1 (en) | System for converting message data into relational table format | |
JP2001502823A (en) | Method and apparatus for transporting data structures defined by an interface definition language between heterogeneous systems | |
JPH06231022A (en) | Apparatus and system for utilization of one part of name space used in computer system as one part of another name space | |
KR20080017351A (en) | Data centric workflows | |
US20070143758A1 (en) | Facilitating scheduling of jobs by decoupling job scheduling algorithm from recorded resource usage and allowing independent manipulation of recorded resource usage space | |
WO2003034183A2 (en) | System and method using a connector architecture for application integration | |
US5657447A (en) | Platform-transparent registration and build of stored procedures and user-defined functions | |
US6185521B1 (en) | System and method for emulating mainframe channel programs by open systems computer systems | |
JP3756407B2 (en) | Method for handling user-defined data type data items | |
JP2003108370A (en) | Application system construction framework | |
US6279121B1 (en) | Data processing method, recording medium and electronic apparatus for event handling of exceptions in application programs | |
CN111782882A (en) | TCP message conversion method, device, system and computer storage medium | |
US20200293383A1 (en) | System and Method for Developing Modularized Application | |
WO2022261810A1 (en) | Method and apparatus for constructing data acquisition system | |
CN108900568B (en) | Form transmission method, system and server | |
US20040010494A1 (en) | System and method for inputing data to a sort utility from a user program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041001 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070605 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071005 |