(57)【要約】【課題】  開発支援装置に、ＭＢｅａｎなどの単位オブジェクトを管理するオブジェクト管理機能を組み込んで、注釈情報をＭＢｅａｎ等に付与可能とし、これを解析して拡張機能オブジェクト、ＭＢｅａｎＩｎｆｏ等の生成を可能とする。【解決手段】  開発支援装置に、所定の処理を実行する単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段と、クラスを読み込んで単位オブジェクトを生成する手段と、クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段とを有するオブジェクト管理手段と、クラスに含まれる注釈情報を解析する注釈解析手段とを備え、オブジェクト生成手段が、拡張機能を実行するための注釈情報が存在する場合、注釈情報の解析結果にもとづき拡張機能オブジェクトを生成し、単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、拡張機能実行手段が拡張機能オブジェクトを実行する。【選択図】      図１９
2010250378.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段と、前記クラスを読み込んで前記単位オブジェクトを生成するオブジェクト生成手段と、前記クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段とを有するオブジェクト管理手段と、
前記クラスに含まれる注釈情報を解析する注釈解析手段と、を備え、
前記オブジェクト生成手段が、前記単位オブジェクトの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成し、
前記単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、前記拡張機能実行手段が、前記拡張機能オブジェクトを実行する
ことを特徴とするソフトウェア開発支援装置。
【請求項２】
前記オブジェクト生成手段が、前記単位オブジェクトの生成にあたり、前記注釈解析手段の解析の結果、所定の注釈情報が含まれている場合、この注釈情報を含み、前記ソフトウェア開発支援装置に接続された端末における所定のアプリケーションにより参照される注釈情報オブジェクトを生成する
ことを特徴とする請求項１記載のソフトウェア開発支援装置。
【請求項３】
請求項１又は２記載のソフトウェア開発支援装置が、ジャバマネージメントエクステンションズ（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）エージェントを備え、前記オブジェクト管理手段及び前記注釈解析手段が、前記ジャバエクステンションマネージメントエージェント内に備えられ、
前記単位オブジェクトが、エムビーン（ＭＢｅａｎ）であり、
前記クラス記憶手段が、所定の処理を実行する一又は二以上のエムビーンを生成するためのエムビーンクラスを記憶し、
前記オブジェクト生成手段が、前記クラスを読み込んで前記エムビーンを生成し、
前記オブジェクト生成手段が、前記エムビーンの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成する
ことを特徴とするソフトウェア開発支援装置。
【請求項４】
前記注釈情報オブジェクトが、エムビーンインフォ（ＭＢｅａｎＩｎｆｏ）であることを特徴とする請求項３記載のソフトウェア開発支援装置。
【請求項５】
前記拡張機能を実行するための注釈情報が、少なくとも経過時間の監視機能、割り込み機能、引数値の確認機能、変更情報の同期化機能のいずれかであり、
前記オブジェクト生成手段が、前記注釈情報の解析結果にもとづいて、対応する機能を実行するための前記拡張機能オブジェクトを生成する
ことを特徴とする請求項１〜４のいずれかに記載するソフトウェア開発支援装置。
【請求項６】
前記エムビーンが、前記ソフトウェア開発支援装置に接続されたユーザ端末における業務用のアプリケーションにより呼び出されるエンタープライズジャバビーンズ（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ(R)  Ｂｅａｎｓ）又はサーブレット（Ｓｅｒｖｌｅｔ）を生成する他のオブジェクト管理手段からの各種情報を入力するためのオブジェクトである
ことを特徴とする請求項３〜５のいずれかに記載するソフトウェア開発支援装置。
【請求項７】
所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段と、前記クラスを読み込んで前記単位オブジェクトを生成するオブジェクト生成手段と、前記クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段とを有するオブジェクト管理手段と、
前記クラスに含まれる注釈情報を解析する注釈解析手段と、を備えたソフトウェア開発支援装置と、
前記ソフトウェア開発支援システムに接続された端末と、を有し、
前記オブジェクト生成手段が、前記単位オブジェクトの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成し、
前記端末における所定のアプリケーションにより、前記単位オブジェクトが呼び出されて実行されると、前記拡張機能実行手段が、前記拡張機能オブジェクトを実行する
ことを特徴とするソフトウェア開発支援システム。
【請求項８】
前記オブジェクト生成手段が、前記単位オブジェクトの生成にあたり、前記注釈解析手段の解析の結果、所定の注釈情報が含まれている場合、この注釈情報を含み、前記端末における前記所定のアプリケーションにより参照される注釈情報オブジェクトを生成する
ことを特徴とする請求項７記載のソフトウェア開発支援システム。
【請求項９】
前記ソフトウェア開発支援装置が、ジャバマネージメントエクステンションズ（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）エージェントを備え、前記オブジェクト管理手段及び前記注釈解析手段が、前記ジャバマネージメントエクステンションズ内に備えられ、
前記単位オブジェクトが、エムビーン（ＭＢｅａｎ）であり、
前記クラス記憶手段が、所定の処理を実行する一又は二以上のエムビーンを生成するためのエムビーンクラスを記憶し、
前記オブジェクト生成手段が、前記クラスを読み込んで前記エムビーンを生成し、
前記オブジェクト生成手段が、前記エムビーンの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成する
ことを特徴とする請求項７又は８記載のソフトウェア開発支援システム。
【請求項１０】
前記注釈情報オブジェクトが、エムビーンインフォ（ＭＢｅａｎＩｎｆｏ）であることを特徴とする請求項９記載のソフトウェア開発支援システム。
【請求項１１】
所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶し、
前記単位オブジェクトの生成にあたり、前記クラスを読み込んで、前記クラスに含まれる注釈情報を解析し、前記注釈情報の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき拡張機能オブジェクトを生成し、
前記単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、前記拡張機能オブジェクトが実行される
ことを特徴とするソフトウェア開発支援装置の機能拡張方法。
【請求項１２】
前記単位オブジェクトの生成にあたり、前記注釈情報の解析の結果、所定の注釈情報が含まれている場合、この注釈情報を含み、前記ソフトウェア開発支援装置に接続された端末における所定のアプリケーションにより参照される注釈情報オブジェクトを生成する
ことを特徴とする請求項１１記載のソフトウェア開発支援装置の機能拡張方法。
【請求項１３】
前記ソフトウェア開発支援装置が、ジャバマネージメントエクステンションズ（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）エージェントを備え、
前記単位オブジェクトが、エムビーン（ＭＢｅａｎ）であり、
前記クラスが、所定の処理を実行する一又は二以上のエムビーンを生成するためのエムビーンクラスであり、
前記ソフトウェア開発支援装置が、前記エムビーンの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成する
ことを特徴とする請求項１１又は１２記載のソフトウェア開発支援装置の機能拡張方法。
【請求項１４】
前記注釈情報オブジェクトが、エムビーンインフォ（ＭＢｅａｎＩｎｆｏ）であることを特徴とする請求項１３記載のソフトウェア開発支援装置の機能拡張方法。
【請求項１５】
ソフトウェア開発支援装置を、
所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段、
前記クラスを読み込んで前記単位オブジェクトを生成するオブジェクト生成手段、
前記クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段、及び、
前記クラスに含まれる注釈情報を解析する注釈解析手段として機能させ、
前記オブジェクト生成手段に、前記単位オブジェクトの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成させ、
前記単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、前記拡張機能実行手段に、前記拡張機能オブジェクトを実行させる
ことを特徴とするソフトウェア開発支援装置の機能拡張プログラム。
【請求項１６】
前記オブジェクト生成手段に、前記単位オブジェクトの生成にあたり、前記注釈解析手段の解析の結果、所定の注釈情報が含まれている場合、この注釈情報を含み、前記ソフトウェア開発支援装置に接続された端末における所定のアプリケーションにより参照される注釈情報オブジェクトを生成させる
ことを特徴とする請求項１５記載のソフトウェア開発支援装置の機能拡張プログラム。
【請求項１７】
前記ソフトウェア開発支援装置が、ジャバマネージメントエクステンションズ（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）エージェントを備え、前記クラス記憶手段、前記オブジェクト生成手段、前記拡張機能実行手段、及び前記注釈解析手段が、前記ジャバマネージメントエクステンションズエージェント内に備えられ、前記単位オブジェクトが、エムビーン（ＭＢｅａｎ）であり、
前記クラス記憶手段に、所定の処理を実行する一又は二以上のエムビーンを生成するためのエムビーンクラスを記憶させ、
前記オブジェクト生成手段に、前記クラスを読み込んで前記エムビーンを生成させ、
前記オブジェクト生成手段に、前記エムビーンの生成にあたり、前記注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき前記拡張機能オブジェクトを生成させる
ことを特徴とする請求項１５又は１６記載のソフトウェア開発支援装置の機能拡張プログラム。
【請求項１８】
前記注釈情報オブジェクトが、エムビーンインフォ（ＭＢｅａｎＩｎｆｏ）であることを特徴とする請求項１７記載のソフトウェア開発支援装置の機能拡張プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｊａｖａ（登録商標）を使用したアプリケーションやシステムデバイスの監視・管理のための標準仕様であるＪＭＸ（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）等の機能拡張を行うソフトウェア開発支援装置、ソフトウェア開発支援システム、ソフトウェア開発支援装置の機能拡張方法、及びソフトウェア開発支援装置の機能拡張プログラムに関する。
【背景技術】
【０００２】
近年、ＪＭＸというＪａｖａ(R)アプリケーションの実装及び運用管理に対する汎用的なフレームワークが登場したことにより、様々なＪａｖａ(R)アプリケーションを汎用的なＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）で監視・管理することができるようになった。
すなわち、この仕様により、これまでＪａｖａ(R)アプリケーションが独自に運用管理のために提供していたＡＰＩや機能を使用せずに、どのようなＪａｖａ(R)アプリケーションからでも共通した手法で監視・管理対象にアクセスすることが可能となっている。
しかしながら、これらの汎用的なＡＰＩの仕様にはまだ基本的なものが多く、共通化されている部分は管理情報へのアクセス、オペレーションの実行、イベントの通知といった基本的な運用処理だけである。
【０００３】
一方、企業向けの大規模なサーバアプリケーションを管理するためのシステム開発にＪＭＸを用いる場合、管理対象を効率よく、かつきめ細やかに管理可能とするためには、ＪＭＸをそのまま使用するだけでは十分ではなく、ＪＭＸに様々な追加実装を行うためのコードを、ＭＢｅａｎ（Ｍａｎａｇｅｄ  Ｂｅａｎ）に対して記述する必要がある。
例えば、アプリケーションサーバやプロセス監視、コンピュータ監視等を行うサーバアプリケーションにＪＭＸを適用する場合、監視・管理対象となるＪａｖａ(R)オブジェクトであるＭＢｅａｎの初期化処理や状態監視、更新された情報を他のＭＢｅａｎと同期化するための機能などについては、自前で用意しなければならない。
【０００４】
また、ＪＭＸ仕様でのＭＢｅａｎには幾つかのタイプが存在するが、ＭＢｅａｎによっては、自身が管理する情報のメタデータ（項目名など）を保有させ、これを所定のアプリケーションから参照可能とするためのＭＢｅａｎＩｎｆｏと呼ばれるオブジェクトの定義を開発者が全て自作する必要があり、この定義は多い時で数十行〜数百行にも及ぶ。
また、このような追加実装は、各々のＭＢｅａｎで共通している部分も多く、ＭＢｅａｎの開発者が、それぞれ独自に同様のコードを記述することは望ましくない。さらに、ＪＭＸの仕様化はごく最近のことであり、ＡＰＩを利用して実装を行える開発者はまだ多くはない。
【０００５】
これらのことから、開発者は本質的な運用管理ロジックの実装に注力することができず、規模が大きくなればなるほど開発効率が上がりにくくなるという問題があった。
これは、ＪＭＸで高度な運用管理を実現する場合に必ず直面する問題であり、ＪＭＸを適用する範囲が大きくなればなるほど、その実装量も多くなり、結果的に作業量、レベル共にＪＭＸ導入以前と変わらない場合がある。これでは、ＪＭＸを適用することによる優位性が薄れてしまうことになる。
【０００６】
このような状況において、現在、Ｊａｖａ(R)に対してＥｏＤ（Ｅａｓｅ  ｏｆ  Ｄｅｖｅｌｏｐｍｅｎｔ）という考え方が広まりつつある。ＥｏＤとは、Ｊａｖａ(R)開発を誰もが容易に行えるようにするというＪａｖａ(R)の仕様方針である。特に、ＥＪＢ（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ(R)  Ｂｅａｎｓ）やＳｅｒｖｌｅｔ（サーブレット）のようなビジネスロジックを組み込むアプリケーションの実装部分については、注釈（アノテーション）情報をフル活用して開発者の作業を可能な限り簡易化し、軽量化するための仕様が提供され始めている。
例えば、ＥＪＢやＳｅｒｖｌｅｔによれば、ＪＮＤＩ（Java(R)  Naming  and  Directory  Interface）名前サービスからの必要なオブジェクトの取得、トランザクション制御、データベースに対するリレーション定義とＪａｖａ(R)オブジェクトとの関連付けを行うなどの作業を軽量化することが可能となっている。
【０００７】
これにより、開発者は今までよりも少ないコード量でこれまでと同様の機能を実装することができるようになっている。しかし、この注釈情報を活用する仕組みはアプリケーションの監視・管理向けにはまだ不十分であり、運用管理アプリケーションなどを開発する場合にこれらの恩恵を受けることは少ない。また、幾つかのオープンソースではＪＭＸの開発を効率化するためのツールやＡＰＩが提供されてはいるが、十分には普及していない状況である。
ＪＭＸによるプログラムは、全ての業務アプリケーションの初期化等のライフサイクル処理と関係を持ち、それらはアプリケーション実行基盤の基礎として動作するため、アプリケーション開発者ができるだけＪＭＸ層（下位層）におけるオブジェクトの振る舞いを意識せずに運用管理機能を実装できることが望ましい。
【０００８】
ここで、注釈情報を活用する仕組みに関連する技術としては、例えば特許文献１に記載のデバッグ支援方法や、特許文献２に記載の言語解釈表示方法を挙げることができる。
特許文献１に記載のデバッグ支援方法によれば、ソースコード中のメソッド定義部に埋め込まれた注釈情報を解析装置が抽出し、その情報をデバッガ上で評価可能な形式に変換する構成となっている。これによって、特定の条件式を注釈情報として定義することで、プログラムにおける異常発生時のデバッグ作業を効率化することが可能となっている。
また、特許文献２に記載の言語解釈表示方法によれば、ＨＴＭＬに埋め込まれた注釈情報を解析装置が抽出し、その情報に基づき画面のカスタマイズを表示装置が行う構成となっている。これによって、下位互換性を保ちつつ、特定の注釈情報が解析可能な表示装置では、注釈情報に基づく表示のカスタマイズを行うことが可能とされている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−２１００５９号公報
【特許文献２】特開平０９−２２２９７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載のデバッグ支援方法によれば、メソッド定義部に埋め込まれた注釈情報を抽出して解析することはできるが、解析結果にもとづき注釈情報をデバッガ上で評価可能な形式に変換するものであり、ＪＭＸを使用したプログラム量の削減や監視・管理のための処理の自動化等には適用することができず、ＪＭＸ等に関連するコーディングの簡略化を図ることはできない。
また、特許文献２に記載の言語解釈表示方法によれば、ＨＴＭＬに埋め込まれた注釈情報を抽出して解析することはできるが、解析した注釈情報にもとづき画面表示のカスタマイズを行うものであり、同様に、ＪＭＸを使用したプログラム量の削減や監視・管理のための処理の自動化等には適用することができず、ＪＭＸ等に関連するコーディングの簡略化を図ることができるものではない。
【００１１】
本発明は、上記の事情にかんがみなされたものであり、ソフトウェア開発支援装置に、監視・管理に関連するＭＢｅａｎなどの単位オブジェクトに対するコンテナ機能を組み込んで、専用の注釈情報をＭＢｅａｎ等に付与可能にし、これを解析することで、拡張機能オブジェクトやＭＢｅａｎＩｎｆｏ等を生成し、これによって、ＪＭＸ等に関連するコーディングの簡略化を図るとともに、ＪＭＸ仕様よりも高度できめ細やかなカスタマイズを施した処理を行わせることが可能なソフトウェア開発支援装置、ソフトウェア開発支援システム、ソフトウェア開発支援装置の機能拡張方法、及びソフトウェア開発支援装置の機能拡張プログラムの提供を目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のソフトウェア開発支援装置は、所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段と、クラスを読み込んで単位オブジェクトを生成するオブジェクト生成手段と、クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段とを有するオブジェクト管理手段と、クラスに含まれる注釈情報を解析する注釈解析手段とを備え、オブジェクト生成手段が、単位オブジェクトの生成にあたり、注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき拡張機能オブジェクトを生成し、単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、拡張機能実行手段が、拡張機能オブジェクトを実行する構成としてある。
【００１３】
また、本発明のソフトウェア開発支援システムは、所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段と、クラスを読み込んで単位オブジェクトを生成するオブジェクト生成手段と、クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段とを有するオブジェクト管理手段と、クラスに含まれる注釈情報を解析する注釈解析手段と、を備えたソフトウェア開発支援装置と、ソフトウェア開発支援システムに接続された端末とを有し、オブジェクト生成手段が、単位オブジェクトの生成にあたり、注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき拡張機能オブジェクトを生成し、端末における所定のアプリケーションにより、単位オブジェクトが呼び出されて実行されると、拡張機能実行手段が、拡張機能オブジェクトを実行する構成としてある。
【００１４】
また、本発明のソフトウェア開発支援装置の機能拡張方法は、所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶し、単位オブジェクトの生成にあたり、クラスを読み込んで、クラスに含まれる注釈情報を解析し、注釈情報の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき拡張機能オブジェクトを生成し、単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、拡張機能オブジェクトが実行される方法としてある。
【００１５】
また、本発明のソフトウェア開発支援装置の機能拡張プログラムは、ソフトウェア開発支援装置を、所定の処理を実行する一又は二以上の単位オブジェクトを生成するためのクラスを記憶するクラス記憶手段、クラスを読み込んで単位オブジェクトを生成するオブジェクト生成手段、クラスに対応する拡張機能オブジェクトを実行する拡張機能実行手段、及び、クラスに含まれる注釈情報を解析する注釈解析手段として機能させ、オブジェクト生成手段に、単位オブジェクトの生成にあたり、注釈解析手段の解析の結果、拡張機能を実行するための注釈情報が含まれている場合、当該注釈情報の解析結果にもとづき拡張機能オブジェクトを生成させ、単位オブジェクトが所定のアプリケーションから呼び出されて実行されると、拡張機能実行手段に、拡張機能オブジェクトを実行させる構成としてある。
【発明の効果】
【００１６】
本発明によれば、ソフトウェア開発支援装置に、監視・管理に関連するＭＢｅａｎなどの単位オブジェクトの機能を拡張する拡張機能オブジェクトやＭＢｅａｎＩｎｆｏ等を生成することができ、より少ないコード量で、ＪＭＸ仕様よりも高度できめ細やかなカスタマイズを施した処理を行わせることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一実施形態のソフトウェア開発支援システムの構成を示すブロック図である。
【図２】本発明の第一実施形態のソフトウェア開発支援システムにおけるソフトウェア開発支援装置の構成を示すブロック図である。
【図３】本発明の第一実施形態のソフトウェア開発支援システムにおけるクラスを説明するための図である。
【図４】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎのインスタンス化を示す図である。
【図５】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎコンテナの構成を示すブロック図である。
【図６】本発明の第一実施形態のソフトウェア開発支援システムにおける注釈ファイルの例１を示す図である。
【図７】本発明の第一実施形態のソフトウェア開発支援システムにおける注釈ファイルの例２を示す図である。
【図８】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎクラスのコード例を示す図である。
【図９】従来のＭＢｅａｎクラスのコード例を示す図である。
【図１０】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎ生成の概略処理手順（前半）を示すフローチャートである。
【図１１】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎ生成の概略処理手順（後半）を示すフローチャートである。
【図１２】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの生成処理手順を示すフローチャートである。
【図１３】本発明の第一実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの呼び出し処理手順を示すフローチャートである。
【図１４】本発明の第一実施形態のソフトウェア開発支援システムにおける変更情報の同期化の機能拡張処理手順を示すフローチャートである。
【図１５】本発明の第二実施形態のソフトウェア開発支援装置の構成を示すブロック図である。
【図１６】本発明の第二実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの生成処理手順を示すフローチャートである。
【図１７】本発明の第二実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの呼び出し処理手順を示すフローチャートである。
【図１８】本発明の第三実施形態のソフトウェア開発支援システムの構成を示すブロック図である。
【図１９】本発明の第三実施形態のソフトウェア開発支援システムにおけるコンテナの構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明のソフトウェア開発支援装置、ソフトウェア開発支援システム、ソフトウェア開発支援装置の機能拡張方法、及びソフトウェア開発支援装置の機能拡張プログラムの好ましい実施形態について、図面を参照しつつ説明する。
なお、以下の実施形態に示す本発明のソフトウェア開発支援装置は、プログラムに制御されたコンピュータにより動作するようになっている。コンピュータのＣＰＵは、プログラムにもとづいてコンピュータの各構成要素に指令を送り、ソフトウェア開発支援装置の動作に必要となる所定の処理、例えば、単位オブジェクトの生成処理、クラスに含まれる注釈情報の解析処理、注釈情報の解析結果にもとづき拡張機能オブジェクトを生成する処理、拡張機能オブジェクトの実行処理等を行わせる。このように、本発明のソフトウェア開発支援装置における各処理，動作は、プログラムとコンピュータとが協働した具体的手段により実現できるものである。
【００１９】
プログラムは予めＲＯＭ，ＲＡＭ等の記録媒体に格納され、コンピュータに実装された記録媒体から当該コンピュータにプログラムを読み込ませて実行されるが、例えば通信回線を介してコンピュータに読み込ませることもできる。
また、プログラムを格納する記録媒体は、例えば半導体メモリ，磁気ディスク，光ディスク、その他任意のコンピュータで読取り可能な任意の記録手段により構成できる。
【００２０】
［第一実施形態］
本発明の第一実施形態は、Ｊａｖａ(R)を使用したアプリケーションやシステムデバイスの監視・管理のための標準仕様であるＪＭＸの機能拡張を行うソフトウェア開発支援装置、ソフトウェア開発支援システム、ソフトウェア開発支援装置の機能拡張方法、及びソフトウェア開発支援装置の機能拡張プログラムに関するものである。
【００２１】
まず、本実施形態の構成について、図１〜図９を参照して説明する。図１は、本実施形態のソフトウェア開発支援システム（Ｊａｖａ(R)運用管理システム）の構成を示すブロック図である。図２は、本実施形態のソフトウェア開発支援装置（Ｊａｖａ(R)運用管理装置）の構成を示すブロック図である。図３は、Ｊａｖａ(R)におけるクラスを説明するための図である。図４は、本実施形態におけるＭＢｅａｎのインスタンス化を示す図である。図５は、本実施形態のＭＢｅａｎコンテナの構成を示すブロック図である。図６、図７は、本実施形態における注釈ファイルの例を示す図である。図８は、本実施形態におけるＭＢｅａｎクラスのコード例を示す図であり、図９は、従来のＭＢｅａｎクラスのコード例を示す図である。
【００２２】
本実施形態のソフトウェア開発支援システムは、Ｊａｖａ(R)運用管理システムとして使用されるものであり、図１に示すように、ソフトウェア開発支援装置（Ｊａｖａ(R)運用管理装置）１０ａと管理者端末６０を有している。また、ユーザ端末７０における業務用アプリケーション７１が、ソフトウェア開発支援装置１０ａにおけるＥＪＢやＳｅｒｖｌｅｔにアクセスする構成となっている。
そして、ソフトウェア開発支援装置１０ａにおけるＭＢｅａｎ５０ａ（５０ａ−１，５０ａ−２，・・・）は、管理者端末６０における運用管理アプリケーション６１から呼び出され、ＥＪＢコンテナ８１やＷｅｂコンテナ９１から各種情報を入力する。これにより、ＥＪＢやＳｅｒｖｌｅｔを管理する構成となっている。
【００２３】
本実施形態では、このようなＭＢｅａｎ５０ａを生成するにあたって、ＭＢｅａｎクラス４０ａにおける注釈情報を注釈解析手段３０により解析し、ＭＢｅａｎ５０ａの拡張機能を自動生成して、ＭＢｅａｎコンテナ２０ａにより、ＭＢｅａｎ５０ａの呼び出し時に実行可能にする。
また、図２に示すように、ＭＢｅａｎコンテナ２０ａによって、ＭＢｅａｎ５０ａの生成時に、ＭＢｅａｎ５０ａに対応するＭＢｅａｎＩｎｆｏ５１ａ（５１ａ−１，５１ａ−２，・・・）を、注釈情報を用いて自動生成して、管理者端末６０における運用管理アプリケーション６１からその注釈情報を参照可能とし、ＭＢｅａｎ５０ａを容易に管理可能としている。
【００２４】
本実施形態のソフトウェア開発支援装置（Ｊａｖａ(R)運用管理装置）１０ａは、アプリケーションサーバやプロセス監視、コンピュータ監視等を行うサーバアプリケーションを管理するための、サーバ側の情報処理装置により構成することができる。例えば、Ｊａｖａ(R)ベースのＷｅｂサーバ、アプリケーションサーバ等により、本実施形態のソフトウェア開発支援装置１０ａを構成することができ、Ｊａｖａ(R)仮想マシンとしての役割を果たす。
【００２５】
このソフトウェア開発支援装置１０ａには、ＪＭＸエージェント（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）１１ａが備えられている。
ＪＭＸエージェント１１ａは、ＭＢｅａｎ５０ａに対して総合的なサービスを提供し、ソフトウェア開発支援装置１０ａ内で実行される管理エンティティであり、ＭＢｅａｎ５０ａと、業務アプリケーション７１やこれにより呼び出されるＥＪＢ８２、Ｓｅｒｖｌｅｔ９２等との間のパイプ役として機能する。
【００２６】
ＪＭＸエージェント１１ａ内には、図２に示すように、ＭＢｅａｎサーバ１２ａと、一又は二以上のサービス１３ａ（同図の例では、１３ａ−１，・・・，１３ｄ−１）が備えられている。
ＭＢｅａｎサーバ１２ａは、ＭＢｅａｎ５０ａを管理するためのものであり、ＪＭＸエージェント１１ａのコアコンポーネントである。管理者端末６０における運用管理アプリケーション６１からＭＢｅａｎ５０ａにアクセスできるようにするためのＭＢｅａｎ５０ａのリポジトリとして機能する。
【００２７】
サービス１３ａは、所定の汎用機能を実行する手段であり、ＪＭＸ仕様により、ＪＭＸエージェント１１ａ内において、規定数設ける必要がある。
このサービス１３ａは、本実施形態においては、例えばＭＢｅａｎ５０ａの生成時に同時に生成された他の専用ＭＢｅａｎ等を、ＭＢｅａｎサーバ１２ａ内における所定の記憶手段に格納する処理を実行する。
【００２８】
ＭＢｅａｎ５０ａは、ＭＢｅａｎコンテナ２０ａによって、ＭＢｅａｎクラス４０ａにもとづいて生成されるＭＢｅａｎインスタンスであり、ＪＭＸ  ＡＰＩに準拠した管理対象の単位オブジェクトである。図１の例では、ＭＢｅａｎ５０ａは、ＥＪＢコンテナ８１、Ｗｅｂコンテナ９１からの情報を入力する構成としてある。この情報としては、例えば、業務用アプリケーション７１からの要求にもとづく各種処理のログ情報、ＥＪＢ８２やＳｅｒｖｌｅｔ９２等の現在のオブジェクト数やその呼び出し回数等を挙げることができる。
ＪＭＸ仕様では、ソフトウェア開発支援装置１０ａの所定のＭＢｅａｎ記憶手段にＭＢｅａｎ５０ａが格納された時点で、ＪＭＸクライアントからの要求にもとづいて、そのＭＢｅａｎ５０ａを実行することが可能となる。なお、このＭＢｅａｎ記憶手段は、図示しておらず、ＭＢｅａｎコンテナ２０ａ上にＭＢｅａｎ５０ａを表現しているが、このＭＢｅａｎ５０ａを格納するＭＢｅａｎ記憶手段は、ＭＢｅａｎコンテナ２０ａの外部に構成しても内部に構成してもかまわない。
【００２９】
ＭＢｅａｎクラス４０ａは、ＭＢｅａｎ５０ａを生成するためのものであり、ＭＢｅａｎコンテナ２０ａは、ＭＢｅａｎクラス４０ａを読み込んで、対応する一又は二以上のＭＢｅａｎ５０ａを生成する。
ここで、Ｊａｖａ(R)における「クラス」とは、図３に示すように、一般的に次の２つのいずれかを意味している。
【００３０】
（１）人間が判読可能な形式で、Ｊａｖａ(R)言語の仕様に従ってクラス定義が記述（コード化）されたテキスト形式のファイル（ファイル名が*.javaとなる）。
（２）上記のファイルを、「コンパイラ」というツールを使用してＪａｖａ(R)仮想マシン上で実行可能なバイナリ形式に変換（翻訳）されたデータファイル（ファイル名が*.classとなる）。本ファイルは、Ｊａｖａ(R)のクラスローダによってＪａｖａ(R)プロセス内に取り込まれる。
【００３１】
クラスローダは、Ｊａｖａ(R)の仕様で任意のクラスファイル内のデータをＪａｖａ(R)プロセス内に取り込み、そのインスタンス化や初期化を行えるようにするための一連の機能を持つ。また、読み込んだクラスデータを全て記憶し、管理するための役割も持つ。本実施形態では、このクラスローダにおける記憶手段を、ＭＢｅａｎクラス記憶手段２１ａとしている。
【００３２】
また、「コンパイラ」による実行可能な形式への変換作業は、一般的に、「コンパイル」と呼ばれ、Ｊａｖａ(R)においては、主に次の２種類のコンパイル方式がある。
（１）予め開発者がコンパイラツールを使用して変換する。
（２）サーバ（Ｊａｖａ(R)仮想マシン）内で、変換前のテキストファイルを読み込んで動的にコンパイル処理を行い、実行可能な形式のファイルに変換する。
【００３３】
なお、実行可能な形式のファイルにおいても、注釈情報等はデータ内に組み込まれ、本実施形態における注釈解析手段３０による解析が可能である。本実施形態では、（１）のコンパイル方法を用いることを想定しているが、これに限定されるものではない。
【００３４】
図４は、ＭＢｅａｎクラス４０ａが、ＭＢｅａｎコンテナ２０ａにより読み込まれてインスタンス化され、ＭＢｅａｎ５０ａが生成されるとともに、ＭＢｅａｎＩｎｆｏ５１ａが生成される様子を示している。同図に示されているように、ＭＢｅａｎクラス４０ａには、注釈情報が含まれており、ＭＢｅａｎコンテナ２０ａは、ＭＢｅａｎ５０ａを生成する際、注釈解析手段３０によりＭＢｅａｎクラス４０ａにおける注釈情報を解析させ、この注釈情報を含むＭＢｅａｎＩｎｆｏ５１ａを生成する。
【００３５】
この注釈情報には、ＭＢｅａｎ５０ａの構成を示す情報、ＭＢｅａｎ５０ａの属性及び操作を示す情報等を含めることができる。ＭＢｅａｎ５０ａの属性を示す情報（属性情報）とは、ｇｅｔｔｅｒメソッドやｓｅｔｔｅｒメソッドによって更新可能な情報である。これらの情報はいずれもｐｕｂｌｉｃメソッド情報である。
【００３６】
ＭＢｅａｎＩｎｆｏ５１ａは、ＭＢｅａｎ５０ａの生成にあたって、ＭＢｅａｎ５０ａとともにそれぞれに対応づけて同時に生成されるオブジェクトであり、管理対象であるＭＢｅａｎ５０ａの構成、属性、操作等に関する情報を保有する。管理者端末６０における運用管理アプリケーション６１は、このＭＢｅａｎＩｎｆｏ５１ａにアクセスして、その内容を参照することができる。
これによって、ＭＢｅａｎ５０ａを管理することができ、これを通じて、ＭＢｅａｎ５０ａの管理対象であるＥＪＢ８２やＳｅｒｖｌｅｔ９２を管理することが可能となっている。
【００３７】
ＭＢｅａｎコンテナ２０ａは、各種オブジェクトの生成、記憶、及びこれらのオブジェクトやその属性データ等に対する各種操作を行うオブジェクト管理手段である。
ＭＢｅａｎコンテナ２０ａは、ＭＢｅａｎクラス４０ａにもとづきＭＢｅａｎ５０ａ及びＭＢｅａｎＩｎｆｏ５１ａを生成するとともに、ＭＢｅａｎ５０ａに対応する拡張機能オブジェクトを生成し、これを実行する。
ＭＢｅａｎコンテナ２０ａは、図５に示すように、ＭＢｅａｎクラス記憶手段２１ａ、ＭＢｅａｎ生成手段２２ａ、注釈情報記憶手段２３ａ、拡張機能記憶手段２４ａ、ＭＢｅａｎ拡張機能対応テーブル２５ａ、及び拡張機能実行手段２６ａを備えている。
【００３８】
ＭＢｅａｎクラス記憶手段２１ａは、ＭＢｅａｎクラス４０ａを記憶する。このＭＢｅａｎクラス記憶手段２１ａは、上述したように、クラスローダを用いることができる。
【００３９】
ＭＢｅａｎ生成手段２２ａは、ＭＢｅａｎクラス記憶手段２１ａからＭＢｅａｎクラス４０ａを読み込んで、これに対応するＭＢｅａｎ５０ａを生成する。
また、ＭＢｅａｎ生成手段２２ａは、注釈解析手段３０により、ＭＢｅａｎクラス４０ａに含まれている注釈情報を解析し、この注釈情報を含むＭＢｅａｎＩｎｆｏ５１ａを生成する。
【００４０】
このとき、注釈解析手段３０は、ＭＢｅａｎコンテナ２０ａにおける注釈情報記憶手段２３ａを参照し、この注釈情報記憶手段２３ａに記憶されている注釈情報が、ＭＢｅａｎクラス４０ａに存在するか否かを判定する。
注釈情報記憶手段２３ａは、注釈情報を記憶する手段であり、例えば図６，７に示すような注釈情報を有する注釈ファイルを記憶している。
【００４１】
これらの図において、「@」に連続する文字列と括弧書き部分の文字列が注釈情報（同図の下線部）であり、その他の部分は、注釈解析により拡張機能オブジェクトの生成などのために利用されるコードである。この注釈情報には、ＭＢｅａｎ５０ａの構成を示す情報、ＭＢｅａｎ５０ａの属性及び操作を示す情報等を含めることができるが、これらの図の例では、「@StandardMBean」，「@Constructor」は、ＭＢｅａｎ５０ａの構成を示す情報であり、「@Attribute」，「@Monitor」，「@DependenceAttribute」は、ＭＢｅａｎ５０ａの属性を示す情報であり、「@Operation」は、ＭＢｅａｎ５０ａの操作を示す情報であり，「@Interceptors」，「@AroundInvoke」，「@Validate」は、ＭＢｅａｎ５０ａの属性及び操作を示す情報である。
そして、ＭＢｅａｎクラス４０ａにこのような注釈情報が含まれている場合、注釈解析手段３０ａは、その注釈情報をＭＢｅａｎ生成手段２２ａに出力する。
【００４２】
ＭＢｅａｎ生成手段２２ａは、注釈解析手段３０ａから注釈情報を入力すると、この注釈情報に拡張機能の定義情報が含まれているかを確認する。図６の例では、「@Monitor」及び「@Interceptors」が、拡張機能の定義情報に相当する。
そして、拡張機能の定義情報が含まれている場合、この注釈情報にもとづき一又は二以上の拡張機能オブジェクトを生成して、これを拡張機能記憶手段２４ａに格納するとともに、ＭＢｅａｎ５０ａと拡張機能オブジェクトとの対応付け情報をＭＢｅａｎ拡張機能対応テーブル２５ａに格納する。
【００４３】
拡張機能記憶手段２４ａは、ＭＢｅａｎ生成手段２２ａにより生成された拡張機能オブジェクトを記憶する。
ＭＢｅａｎ拡張機能対応テーブル２５ａは、ＭＢｅａｎ５０ａの識別情報と、これに対応する拡張機能オブジェクトの識別情報とを、対応づけて記憶する。
【００４４】
拡張機能実行手段２６ａは、ＭＢｅａｎ５０ａが運用管理アプリケーション６１から呼び出されるのを監視する。
そして、ＭＢｅａｎ５０ａが運用管理アプリケーション６１から呼び出されると、拡張機能実行手段２６ａは、当該ＭＢｅａｎ５０ａに対応する拡張機能オブジェクトを、ＭＢｅａｎ拡張機能対応テーブル２５ａを参照して特定し、特定した拡張機能オブジェクトを拡張機能記憶手段２４ａから取得して、これを実行する。
この実行タイミングとしては、ＭＢｅａｎ５０ａが呼び出されると直ちに行うことも、その後に所定のタイミングで実行させるようにすることもできる。
【００４５】
また、本実施形態では、上記の通り、拡張機能実行手段２６ａは、ＭＢｅａｎ拡張機能対応テーブル２５ａを参照することで、運用管理アプリケーション６１から呼び出されたＭＢｅａｎ５０ａに対応する拡張機能オブジェクトを特定する構成としているが、これに限定されるものではない。例えば、拡張機能記憶手段２４ａに、拡張機能オブジェクトを、対応するＭＢｅａｎ５０ａの識別情報とともに記憶させることで、ＭＢｅａｎ拡張機能対応テーブル２５ａを省略することもできる。
【００４６】
注釈解析手段３０は、ＭＢｅａｎ生成手段２２ａからの要求にもとづいて、ＭＢｅａｎ５０ａの生成にあたり、ＭＢｅａｎクラス４０ａに含まれている注釈情報を解析し、その解析結果をＭＢｅａｎ生成手段２２ａに返却する。この解析結果には、ＭＢｅａｎクラス４０ａに注釈情報が含まれている場合には、その注釈情報が含められる。
そして、ＭＢｅａｎ生成手段２２ａは、ＭＢｅａｎ５０ａを生成するとともに、注釈情報を含むＭＢｅａｎＩｎｆｏ５１ａを生成することができる。また、注釈情報に対応する拡張機能を実行する拡張機能オブジェクトを生成し、これを拡張機能記憶手段２４ａに記憶させることができる。
【００４７】
図８は、注釈情報を含めてコード化されたＭＢｅａｎクラス４０ａのコード例を示している。従来は、図９の下線部分に示すように、拡張機能オブジェクトを生成するために、それ自体について独自にコーディングする必要があった。
これに対し、本実施形態によれば、これを省略してＭＢｅａｎクラス４０ａに対応する注釈情報を含め、このような注釈情報を使用したＭＢｅａｎクラス４０ａを用いてＭＢｅａｎ５０ａを生成する。
これによって、ＭＢｅａｎコンテナ２０ａは、ＭＢｅａｎ５０ａの生成の際に、拡張機能オブジェクトも併せて自動生成することができる。図８の例では、拡張機能オブジェクトは、@Monitor(type＝CounterMonitor.class,  granularityPeriod＝“10000”)に基づき生成されるモニター専用ＭＢｅａｎ（ＪＭＸモニターＭＢｅａｎ）である。このモニター専用ＭＢｅａｎの生成については、後述する。
【００４８】
また、注釈情報を含むＭＢｅａｎＩｎｆｏ５１ａもＭＢｅａｎ５０ａと共に生成される。図８の例では、@StandardMBean、@Attribute、@Monitor、@Operationに関する注釈情報がＭＢｅａｎクラス４０ａに含まれている。これらの注釈情報は注釈解析手段３０により順に解析されて、抽出される。
【００４９】
この注釈情報には、上記の定義情報部分と、getSampleValue、setSampleValue、resetという3つのメソッド情報部分から構成されている。そして、これらの注釈情報を、運用管理アプリケーション６１からＭＢｅａｎ５０ａに対応する公開情報として参照可能にするため、ＭＢｅａｎＩｎｆｏ５１ａが生成される。
このように、本実施形態のソフトウェア開発支援装置１０ａによれば、より少ないコード量で、ＪＭＸ仕様よりも高度できめ細やかなカスタマイズを施したＭＢｅａｎ等を生成することが可能となっている。
【００５０】
次に、本実施形態のソフトウェア開発支援システムにおける処理手順について、図１０及び図１１を参照して説明する。これらは、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎ生成の概略処理手順を示すフローチャートである。
【００５１】
まず、ＭＢｅａｎ５０ａの生成処理手順について説明する。
ＭＢｅａｎコンテナ２０ａにおけるＭＢｅａｎクラス記憶手段２１ａ（クラスローダ）には、予め生成の対象となるＭＢｅａｎ５０ａに対応するＭＢｅａｎクラス４０ａを記憶させておく。
具体的には、図１０に示すように、クラスローダにより、ＭＢｅａｎクラス４０ａのバイナリファイルを入力して、記憶させておくことができる。
【００５２】
次に、ＭＢｅａｎ生成手段２２ａは、このクラスローダからＭＢｅａｎクラス４０ａを読み込む（ステップ１０）。
そして、注釈解析手段３０により、このＭＢｅａｎクラス４０ａに含まれる注釈情報を解析する（ステップ１１）。
【００５３】
次に、ＭＢｅａｎ生成手段２２ａは、注釈情報に拡張機能の定義情報が含まれている場合、この注釈情報にもとづいて、対応する拡張機能オブジェクト（追加のＪａｖａ(R)インスタンス）を生成して、拡張機能記憶手段２４ａに格納するとともに、ＭＢｅａｎ５０ａと拡張機能オブジェクトとの対応付け情報をＭＢｅａｎ拡張機能対応テーブル２５ａに記憶する（ステップ１２）。
これをＭＢｅａｎクラス４０ａに含まれる全ての注釈情報について行う。
【００５４】
さらに、ＭＢｅａｎ生成手段２２ａは、ＭＢｅａｎ５０ａを生成するとともに、ＭＢｅａｎ５０ａに対応するＭＢｅａｎＩｎｆｏ５１ａを生成する。
このとき、ＭＢｅａｎ生成手段２２ａは、ＭＢｅａｎクラス４０ａに含まれている注釈情報を、ＭＢｅａｎＩｎｆｏ５１ａに保有させ、このＭＢｅａｎＩｎｆｏ５１ａを完成させる（ステップ１３）。
なお、ステップ１２における拡張機能オブジェクトの生成と、ステップ１３におけるＭＢｅａｎ５０ａ、ＭＢｅａｎＩｎｆｏ５１ｂの生成の順番は、入れ替えてもかまわない。
【００５５】
次に、本実施形態のソフトウェア開発支援システムにおける処理手順について、図１２〜図１４を参照して、さらに詳細に説明する。これらは順に、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの生成処理手順を示すフローチャート、ＭＢｅａｎの呼び出し処理手順を示すフローチャート、変更情報の同期化の機能拡張処理手順を示すフローチャートである。
【００５６】
本実施形態のソフトウェア開発支援システムにおける処理に先立ち、開発者は、予めＪＭＸ  ＡＰＩ（Ｊａｖａ(R)  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）に従って、任意のＭＢｅａｎクラスを作成する。
その際、拡張機能を開発者がコード化する代わりに、それぞれの機能に対応する任意の注釈情報を、ＭＢｅａｎクラス４０ａ内に（メソッド、フィールド、コンストラクタ等において）コード化する。
【００５７】
図８には、このようにしてコード化されたＭＢｅａｎクラスのコードの例が示されている。同図において、「@Attribute」のような「@」に連続する文字列は、注釈情報における注釈定義である。また、注釈定義に連続してコードされている「（description  =  “The  sample  value  of  this  MBean.”）」のような括弧書き部分の文字列は、注釈情報の本文である。
本実施形態では、注釈定義、注釈情報本文を総称して注釈情報と呼んでいる。
【００５８】
そして、このようにして開発者により作成されたＭＢｅａｎクラス４０ａが、ＭＢｅａｎ生成手段２２ａによりインスタンス化されてＭＢｅａｎ５０ａが生成され、ＪＭＸエージェント１１ａ内のＭＢｅａｎサーバ１２ａにおけるＭＢｅａｎ記憶手段（以下、単にＭＢｅａｎ記憶手段と称する）に記憶される。そして、ＭＢｅａｎ記憶手段におけるＭＢｅａｎ５０ａは、運用管理アプリケーション６１からの要求にもとづいて、ＭＢｅａｎ実行手段２７ａにより実行される。なお、図１等において、ＭＢｅａｎ記憶手段は、省略している。
【００５９】
ＭＢｅａｎ５０ａの生成にあたり、ＭＢｅａｎ生成手段２２ａは、ＭＢｅａｎクラス記憶手段２１ａからＭＢｅａｎクラス４０ａを読み込んで（ステップ３０）、これに対応するＭＢｅａｎ５０ａとＭＢｅａｎＩｎｆｏ５１ａを生成する（ステップ３１）。このとき、ＭＢｅａｎＩｎｆｏ５１ａにはまだ注釈情報が含まれていない。
【００６０】
次に、ＭＢｅａｎ生成手段２２ａは、注釈解析手段３０によりＭＢｅａｎクラス４０ａに注釈情報が含まれているか否かを判定する（ステップ３２）。そして、ＭＢｅａｎクラス４０ａに注釈情報が含まれていない場合（ステップ３２のＮＯ）、規定の基本情報のみをＭＢｅａｎＩｎｆｏ５１ａに追加した後、処理を終了する。
【００６１】
ＭＢｅａｎクラス４０ａに注釈情報が含まれている場合（ステップ３２のＹＥＳ）、注釈情報の解析処理を実行する（ステップ３３〜ステップ３７）。この注釈情報の解析処理は、メソッド数分繰り返し実行する。
このとき、ＭＢｅａｎ生成手段２２ａは、注釈情報を注釈解析手段３０ａにより解析し、注釈情報に、ＭＢｅａｎ５０ａの構成、属性、操作等に関する情報が含まれているか否かを判定する（ステップ３４）。
【００６２】
そして、注釈情報に、ＭＢｅａｎ５０ａの構成、属性、操作等に関する情報が含まれていない場合（ステップ３４のＮＯ）、規定の基本情報のみをＭＢｅａｎＩｎｆｏ５１ａに追加した後、処理を終了する。
一方、注釈情報に、これらの情報が含まれている場合（ステップ３４のＹＥＳ）、ＭＢｅａｎ生成手段２２ａは、注釈情報に拡張機能の定義情報が含まれていると、これに対応する一又は二以上の拡張機能オブジェクトを生成して、拡張機能記憶手段２４ａに記憶する（ステップ３５）。
【００６３】
また、ＭＢｅａｎ生成手段２２ａは、注釈情報をＭＢｅａｎＩｎｆｏ５１ａに追加する（ステップ３６）。
ステップ３４からのステップ３６までの処理を、ＭＢｅａｎクラス４０ａの注釈情報における各メソッドについて行った後（ステップ３７）、規定の基本情報のみをＭＢｅａｎＩｎｆｏ５１ａに追加した後、処理を終了する。
【００６４】
また、ステップ３４において、注釈情報に情報監視のための拡張機能の定義情報（図６の注釈ファイル１０２参照）が含まれている場合、ＭＢｅａｎ生成手段２２ａは、モニター専用ＭＢｅａｎ（ＪＭＸモニターＭＢｅａｎ）を生成して、拡張機能記憶手段２４ａに記憶させる。
そして、対応するＭＢｅａｎ５０ａが運用管理アプリケーション６１から呼び出されると、拡張機能実行手段２６ａは、モニター専用ＭＢｅａｎを実行する。
【００６５】
次に、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの呼び出し処理について、図１３を参照して説明する。同図は、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの呼び出し処理手順を示すフローチャートである。
【００６６】
管理者端末６０の運用管理アプリケーション６１から、ＭＢｅａｎ実行手段２７ａを介してＭＢｅａｎ５０ａが呼び出されると、ＭＢｅａｎ実行手段２７ａは、ＭＢｅａｎ５０ａが呼び出されたことを示す情報を拡張機能実行手段２６ａに出力してこれを通知し、当該ＭＢｅａｎ５０ａを実行する。
【００６７】
このとき、ＭＢｅａｎ５０ａに対応する拡張機能として、ＭＢｅａｎ５０ａによる処理の前に行うための割り込み処理（インターセプター）が存在する場合（ステップ５０のＹＥＳ）、拡張機能実行手段２６ａは、ＭＢｅａｎ５０ａに対応する、当該割り込み処理を実行するための拡張機能オブジェクトを、ＭＢｅａｎ拡張機能対応テーブル２５ａを参照して特定する。そして、特定した拡張機能オブジェクトを拡張機能記憶手段２４ａから取得して、当該拡張機能オブジェクトを実行することにより、割り込み処理を実行する（ステップ５１）。
【００６８】
ＭＢｅａｎ５０ａに対応する拡張機能として、割り込み処理が存在するか否かの判定は、ＭＢｅａｎ実行手段２７ａが、ＭＢｅａｎＩｎｆｏ５１ｂを参照して、当該拡張機能を定義する注釈情報が存在するか否かを確認すること等により行うことができる。その他の拡張機能についても同様である。なお、このような判定は、拡張機能実行手段２６ａにより行うことも可能である。
【００６９】
次に、ＭＢｅａｎ実行手段２７ａは、ＭＢｅａｎ５０ａに対して与えられる引数の値（「ｓｅｔｔｅｒメソッド」又は「操作メソッド」の引数に渡された値）が有効であるか否かを確認し（ステップ５２）、値が無効であれば（ステップ５２のＮＯ）、ＪＭＸ例外を発行して（運用管理アプリケーション６１にＪＭＸ仕様で規定された適切な例外であるエラー情報等を返却して）処理を終了する（ステップ５３）。
値が有効であれば（ステップ５２のＹＥＳ）、当該ＭＢｅａｎ５０ａに含まれる所定のメソッドが呼び出されて実行される（ステップ５４）。
【００７０】
次に、ＭＢｅａｎ５０ａに対応する拡張機能として、同期化処理が存在する場合（ステップ５５のＹＥＳ）、拡張機能実行手段２６ａは、ＭＢｅａｎ５０ａに対応する、当該同期化処理を実行するための拡張機能オブジェクトを、ＭＢｅａｎ拡張機能対応テーブル２５ａを参照して特定する。そして、特定した拡張機能オブジェクトを拡張機能記憶手段２４ａから取得して、当該拡張機能オブジェクトを実行することにより、同期化処理を実行する（ステップ５６）。
この同期化処理は、図１４に示すように、同期化の対象の属性に対するＳｅｔｔｅｒメソッドの呼び出しを、その属性数分繰り返すことによって行われる。これによって、依存関係の属性、操作に対する管理情報が、拡張機能実行手段２６ａにより更新される。図７の注釈ファイル１０５の例では、対象の属性である「SampleValue2」が、「sampleValue」で更新されて、同期化が図られる。
【００７１】
次に、ＭＢｅａｎ５０ａに対応する拡張機能として、ＭＢｅａｎ５０ａによる処理の後に行うための割り込み処理が存在する場合（ステップ５７のＹＥＳ）、拡張機能実行手段２６ａは、ＭＢｅａｎ５０ａに対応する、当該割り込み処理を実行するための拡張機能オブジェクトを、ＭＢｅａｎ拡張機能対応テーブル２５ａを参照して特定する。そして、特定した拡張機能オブジェクトを拡張機能記憶手段２４ａから取得して、当該拡張機能オブジェクトを実行することにより、割り込み処理を実行する（ステップ５８）。
【００７２】
これにより、ＪＭＸクライアントである管理者端末６０の運用管理アプリケーション６１からＭＢｅａｎ５０ａが呼び出され、ＭＢｅａｎ５０ａの管理対象の情報（ＥＪＢコンテナ８０ａやＷｅｂコンテナ９０ａ）に対する更新や操作等の処理が実行される。
【００７３】
以上説明したように、本実施形態のソフトウェア開発支援装置、ソフトウェア開発支援システム、ソフトウェア開発支援装置の機能拡張方法、及びソフトウェア開発支援装置の機能拡張プログラムによれば、ＭＢｅａｎ５０ａに対し、ＪＭＸ仕様よりも高度で一層きめ細やかなカスタマイズを施した処理を実行可能な拡張機能を付与することが可能となる。
その理由は、既存のＪＭＸ仕様を拡張する形でコンテナの概念をＭＢｅａｎに適用することで、初期化処理やパラメータチェック、ＭＢｅａｎ間の整合性の確保といった監視・管理アプリケーションに特有の作業を、サーバ側で共通化して実行できるようになるためである。このことは、大規模アプリケーション等で統一化した運用制御を行う場合には特に適用効果が高い。
【００７４】
また、本実施形態によれば、開発者のコード作成量を大幅に減少することができる。
その理由は、これまで開発者自身で作成する必要があった管理情報の初期値定義やパラメータチェック処理、情報の同期化に対して、相当の処理を行う注釈情報を新たに定義し、それをＭＢｅａｎコンテナ側で管理・制御することで、開発者は運用管理のための本質的なコードのみを記述すればよいからである。
【００７５】
さらに、本実施形態によれば、運用管理アプリケーション６１ａやＭＢｅａｎ５０ａに対する評価作業を容易化することができる。
その理由は、これまでＭＢｅａｎ５０ａを生成するコードをテストするためには、専用のＭＢｅａｎサーバ１２ａ上で動作させる必要があったが、注釈情報を用いることで、これまで開発者自身で作成していた管理情報の初期値定義や永続化処理、同期化等の特有のコードをＭＢｅａｎクラス内の実装ロジックから取り除くことができ、単体テストやＪＵｎｉｔ等のテストフレームワークからでも容易に評価が行えるようになるためである。また、ＭＢｅａｎメソッドの割り込み処理を行う注釈情報を用いることで、例えばログ出力や性能測定といった横断的で共通な処理を容易に実装、確認することができるためである。
【００７６】
［第二実施形態］
次に、本発明の第二実施形態について、図１５を参照して説明する。同図は、本実施形態のソフトウェア開発支援装置の構成を示すブロック図である。
本実施形態は、ＪＭＸ仕様におけるＭＢｅａｎのタイプとしてＭｏｄｅｌＭＢｅａｎ（Ｄｙａｍｉｃ  ＭＢｅａｎの一種）を使用している点で第一実施形態と異なる。その他の点については、第一実施形態と同様である。
【００７７】
ＭｏｄｅｌＭＢｅａｎでは、既存の（ＪＭＸに準拠していない）Ｊａｖａ(R)オブジェクト５２ｂ（５２ｂ−１，５２ｂ−２，・・）を、ＭＢｅａｎのようにモデル化して管理することができる。
すなわち、図１５に示すように、既存のＪａｖａ(R)オブジェクト５２ｂは、ＭＢｅａｎ５０ｂの一部に含められ、ＭＢｅａｎ５０ｂに対応するＭＢｅａｎＩｎｆｏ５１ｂ（５１ｂ−１，５１ｂ−２，・・）にディスクリプタ領域５３ｂ（５３ｂ−１，５３ｂ−２，・・）を保有させることが可能となっている。
【００７８】
このように、ＭＢｅａｎＩｎｆｏ５１ｂ内にディスクリプタ領域５３ｂを設けることで、運用管理アプリケーション用の表示方式に関する情報（displayName、visibility）や、データの初期値に関する情報（default）、データの永続性に関する情報（persistPolicy）等の補足情報を、ディスクリプタ領域５３ｂに保有させることができるようになっている。
そして、属性情報や操作情報といった管理情報に加えて、さらにこれらの補足情報を、ＭＢｅａｎＩｎｆｏ５１の構成要素として使用することが可能となっている。
【００７９】
また、本実施形態では、第一実施形態における構成に加えて、これらの補足情報もＭＢｅａｎクラス４０ｂに注釈情報として保有され、ＭＢｅａｎ５０ｂの生成時に、ＭＢｅａｎ生成手段２２ａが、この注釈情報をディスクリプタ領域に追加更新することで、ＭＢｅａｎＩｎｆｏ５１ｂを作成する。
さらに、本実施形態では、補足情報を含むＭＢｅａｎ５０ｂについての管理情報を、情報格納装置１３ｂに永続化して、当該インスタンスの状態を半永久的に保存し、ＭＢｅａｎＩｎｆｏ５１ｂやＭＢｅａｎ５０ｂをいつでも復元することが可能となっている。
【００８０】
次に、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの生成処理について、図１６を参照して説明する。図１６は、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの生成処理手順を示すフローチャートである。
【００８１】
本実施形態では、運用管理対象のＭＢｅａｎ５０ｂを生成するために、既存のＭＢｅａｎクラス４０ｂを使用することができる。
ＪＭＸ仕様には、この既存のＭＢｅａｎクラスとして、ＲｅｑｕｉｒｅｄＭｏｄｅｌＭＢｅａｎという標準のＭｏｄｅｌＭＢｅａｎクラスが用意されている。本実施形態では、このＲｅｑｕｉｒｅｄＭｏｄｅｌＭＢｅａｎを利用するか、このサブクラスを作成して用いることが可能である。
【００８２】
その際、運用管理における拡張機能を開発者がコード化する代わりに、それぞれの機能に対応する注釈情報を、上記既存のＭＢｅａｎクラス４０ｂにおけるメソッドや、フィールド、コンストラクタに追加することで、第一実施形態と同様に、この既存のＭＢｅａｎクラス４０ｂにもとづきＭＢｅａｎ５０ｂ及びＭＢｅａｎＩｎｆｏ５１ｂを生成することが可能となっている。
【００８３】
すなわち、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎ５０ｂの生成処理手順は、ＭＢｅａｎクラス４０ｂの読み込み処理から、注釈情報の存在確認処理まで（ステップ７０〜ステップ７２）と、注釈情報解析ループ（ステッ７６〜ステップ８０）については、第一実施形態のソフトウェア開発支援システムにおける処理（ステップ３０〜ステップ３２、ステップ３３〜ステップ３７）と同様である。
【００８４】
一方、本実施形態では、ＭＢｅａｎ生成手段２２ｂは、例えば図７の注釈ファイル１０６，１０７の注釈情報において定義される、上述した補足情報を、ＭＢｅａｎＩｎｆｏ５１ｂに保有させる注釈の詳細情報の初期値として、ディスクリプタ領域５３ｂ−１に格納する（ステップ７３）。
【００８５】
また、本実施形態では、ＭＢｅａｎ５０ｂについての管理情報の永続化が行われるため、永続化された管理情報が情報格納装置１３ｂに存在している場合（ステップ７４のＹＥＳ）、ＭＢｅａｎ生成手段２２ｂは、ＭＢｅａｎＩｎｆｏ５１ｂの注釈情報を、この永続化された管理情報により更新する。このとき、ディスクリプタ領域５３ｂ−１に格納されている初期値は、その永続化された管理情報における補足情報により更新される（ステップ７５）。
【００８６】
なお、本実施形態のＭＢｅａｎ５０ｂの生成処理におけるその他の注釈情報にもとづく処理、すなわち、ＪＭＸモニター機能による情報監視処理、割り込み処理（インターセプター）、ｓｅｔｔｅｒメソッド又は操作メソッド実行時の引数の有効性チェック処理、および変更情報の同期化処理については、第一実施形態における処理と同様に行うことができる。
【００８７】
次に、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの呼び出し処理について、図１７を参照して説明する。図１７は、本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎの呼び出し処理手順を示すフローチャートである。
【００８８】
本実施形態のソフトウェア開発支援システムにおけるＭＢｅａｎ５０ｂの呼び出し処理手順については、ステップ９５におけるＭＢｅａｎ管理情報の永続化処理以外（ステップ９０〜ステップ９４、ステップ９６〜ステップ９９）は、第一実施形態のソフトウェア開発支援システムにおける処理（ステップ５０〜ステップ５４、ステップ５６〜ステップ５５）と同様である。
【００８９】
一方、本実施形態では、ＭＢｅａｎ５０ｂについての管理情報等を永続化するため、ｓｅｔｔｅｒメソッド又は操作メソッドなどの対象メソッドが実行されると、ＭＢｅａｎコンテナ２０ｂにおける永続化手段２７ｂが、ＭＢｅａｎＩｎｆｏ５１ｂの管理情報を含む注釈情報を、情報格納装置１３ｂに保存する（ステップ９５）。例えば、図７の注釈ファイル１０５にもとづき同期化が行われた場合などに、更新されたＭＢｅａｎＩｎｆｏ５１ｂにおける注釈情報が、情報格納装置１３ｂに保存される。
そして、この永続化された管理情報が存在する場合、上述したように、ＭＢｅａｎ５０ｂの生成処理において、ＭＢｅａｎＩｎｆｏ５１ｂは、この管理情報を用いて更新され、ディスクリプタ領域５３ｂ−１に格納されている補足情報も更新される。
【００９０】
以上説明したように、本実施形態のソフトウェア開発支援装置、ソフトウェア開発支援システム、ソフトウェア開発支援装置の機能拡張方法、及びソフトウェア開発支援装置の機能拡張プログラムによれば、既存のＪａｖａ(R)オブジェクトを含むＭＢｅａｎ５０ｂを生成するにあたり、第一実施形態における場合と同様に、注釈情報を用いて拡張機能オブジェクトを生成することができ、注釈情報を備えたＭＢｅａｎＩｎｆｏ５１ｂを生成することもできる。
また、ＭＢｅａｎＩｎｆｏ５１におけるディスクリプタ領域５３ｂ−１に、注釈情報における補足情報を保有させることができ、これらの注釈情報の永続化を行うこともできる。そして、この永続化した注釈情報を用いて、ＭＢｅａｎＩｎｆｏ５１ｂの注釈情報を更新することができる。
【００９１】
［第三実施形態］
次に、本発明の第三実施形態について、図１８、図１９を参照して説明する。図１８は、本実施形態のソフトウェア開発支援システムの構成を示すブロック図であり、図１９は、同システムにおけるコンテナの構成を示すブロック図である。
【００９２】
本実施形態は、第一実施形態のＪａｖａ(R)運用管理システムとして構成されたソフトウェア開発支援システムを、Ｊａｖａ(R)以外のオブジェクト指向プログラミング言語によるプログラムの実行及び開発環境に適用したものである。すなわち、本実施形態は、用いられるオブジェクト指向プログラミング言語がＪａｖａ(R)に限定されない点を除いては、第一実施形態と同様である。
【００９３】
本実施形態のソフトウェア開発支援システムは、図１８に示すように、システム管理装置１０と、管理者端末６０とを有している。
このシステム管理装置１０は、第一実施形態におけるＪａｖａ(R)運用管理装置１０ａに相当し、コンテナ２０、注釈解析手段３０、単位オブジェクト５０（５０−１，５０−２，・・・）を備えている。これらは、それぞれ第一実施形態におけるＭＢｅａｎコンテナ２０ａ、注釈解析手段３０ａ、ＭＢｅａｎ５０ａに相当するものである。
【００９４】
コンテナ２０は、各種オブジェクトの生成、記憶、及びこれらのオブジェクトやその属性データ等に対する各種操作を行うオブジェクト管理手段である。
コンテナ２０は、単位オブジェクト５０を生成するためのクラス４０を保有しており、このクラス４０を用いて、対応する単位オブジェクト５０を生成する。また、この単位オブジェクト５０の生成にあたって、注釈解析手段３０により、クラス４０に含まれている注釈情報を解析して、拡張機能オブジェクトを生成し、これを実行する。
【００９５】
コンテナ２０は、図１９に示すように、クラス４０を記憶するクラス記憶手段２１、単位オブジェクト５０を生成するオブジェクト生成手段２２、注釈解析手段３０による解析に用いられる注釈情報を記憶する注釈情報記憶手段２３、オブジェクト生成手段２２により生成される拡張機能オブジェクトを記憶する拡張機能記憶手段２４、単位オブジェクト５０と拡張機能オブジェクトとの対応関係を記憶するオブジェクト拡張機能対応テーブル２５、及び拡張機能オブジェクトを実行する拡張機能実行手段２６を備えている。
【００９６】
また、単位オブジェクト５０は、図１９に示すように、注釈情報オブジェクト５１を備えている。この注釈情報オブジェクト５１は、第一実施形態におけるＭＢｅａｎＩｎｆｏ５１ｂに相当するものであり、オブジェクト生成手段２２によって、単位オブジェクト５０の生成と同時に生成される。
【００９７】
本実施形態における単位オブジェクト５０の機能は、特に限定されるものではないが、例えば、所定の管理対象機能実行手段８０，９０における各種情報を更新したり、操作したり、あるいはこれらの情報を取得等することができる。図１８の例では、管理対象機能実行手段８０，９０は、ユーザ端末７０における業務アプリケーション７１からの要求にもとづいて、管理対象機能オブジェクトを実行するものである。
【００９８】
すなわち、本実施形態では、システム管理装置１０におけるオブジェクト生成手段２２が、単位オブジェクト５０の生成に際して、注釈解析手段３０によりクラス４０に含まれる注釈情報を解析し、この注釈情報に拡張機能を実行するための注釈情報が含まれている場合は、当該注釈情報に定義されている拡張機能オブジェクトを生成する。また、この注釈情報を含む注釈情報オブジェクト５１を生成する。
【００９９】
この注釈情報オブジェクト５１は、システム管理装置１０に接続された管理者端末６０における運用管理アプリケーション６１により参照することができる。
そして、単位オブジェクト５０が運用管理アプリケーション６１から呼び出されて、単位オブジェクト実行手段２７により実行されると、拡張機能実行手段２４は、その単位オブジェクト５０に対応する拡張機能オブジェクトを、オブジェクト拡張機能対応テーブル２５を参照して特定し、特定した拡張機能オブジェクトを拡張機能記憶手段２４から取得して実行する。
【０１００】
このような本実施形態によれば、第一実施形態と同様に、ソフトウェア開発支援装置によって、単位オブジェクトの機能を拡張する拡張機能オブジェクトや、注釈情報オブジェクトを生成することができ、より少ないコード量で、高度できめ細やかな機能を備えた単位オブジェクト及び拡張機能オブジェクト等を生成することが可能となる。
【０１０１】
なお、本実施形態のソフトウェア開発支援システムにおいて、第二実施形態におけるＪａｖａ(R)運用管理システムと同様に、注釈情報オブジェクトにディスクリプタ領域を設けるとともに、コンテナに永続化手段を備えて、補足情報をディスクリプタ領域に保有させ、管理情報の永続化を行うようにすることも可能である。
【０１０２】
本発明は、以上の実施形態に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、上記各実施形態では、ＭＢｅａｎなどの単位オブジェクトへのアクセスを、管理者端末における運用管理アプリケーションから呼び出す構成としてあるが、これに限定されるものではなく、一般のユーザ端末におけるその他のアプリケーションから呼び出す構成とするなど適宜変更することが可能である。
【産業上の利用可能性】
【０１０３】
本発明は、監視や管理を行うサーバアプリケーションに対して、ＪＭＸ仕様よりも高度で一層きめ細やかなカスタマイズを施したい場合、特に、大規模アプリケーション等で統一化した運用制御を行う場合などに好適に利用することが可能である。例えばアプリケーションサーバやプロセス監視、コンピュータ管理のためのサーバアプリケーションを開発する製品プロジェクトに本発明を適用すれば、各開発者は、初期化処理やパラメータチェック、情報の同期化、情報監視等のために必要な、共通的でかつ複雑な実装を一から作成する必要がなく、運用管理上必要なロジックのみの実装に注力することが可能となる。
また、ＩＤＥ（統合開発環境）と呼ばれる製品において、本発明を適用すれば、コードの補完や関連ソースの自動生成が行えるようになり、より効率化した運用管理アプリケーション開発のための環境を提供することが可能となる。
【符号の説明】
【０１０４】
１０  ソフトウェア開発支援装置（システム管理装置）
１０ａ，１０ｂ  ソフトウェア開発支援装置（Ｊａｖａ(R)運用管理装置）
１１ａ，１１ｂ  ＪＭＸエージェント
１２ａ，１２ｂ  ＭＢｅａｎサーバ
１３ｂ  情報格納装置
２０  コンテナ
２０ａ，２０ｂ  ＭＢｅａｎコンテナ
２１  クラス記憶手段
２１ａ  ＭＢｅａｎクラス記憶手段
２２  オブジェクト生成手段
２２ａ  ＭＢｅａｎ生成手段
２３，２３ａ  注釈情報記憶手段
２４，２４ａ  拡張機能記憶手段
２５  オブジェクト拡張機能対応テーブル
２５ａ  ＭＢｅａｎ拡張機能対応テーブル
２６，２６ａ  拡張機能実行手段
２７  単位オブジェクト実行手段
２７ａ  ＭＢｅａｎ実行手段
２８ｂ  永続化手段
３０，３０ａ，３０ｂ  注釈解析手段
４０  所定の処理を実行する単位オブジェクトのクラス
４０ａ，４０ｂ  ＭＢｅａｎクラス
５０（５０−１，５０−２）  単位オブジェクト
５０ａ（50a-1,50a-2,・・），５０ｂ（50b-1,50b-2,・・）  ＭＢｅａｎ
５１  注釈情報オブジェクト
５１ａ（51a-1,51a-2,・・），５１ｂ（51b-1,51b-2,・・）  ＭＢｅａｎＩｎｆｏ
５２ｂ（52b-1,52b-2,・・）  ＪＭＸに準拠していないＪａｖａ(R)オブジェクト
５３ｂ（53b-1,53b-2,・・）  ディスクリプタ領域
６０  管理者端末
６１  運用管理アプリケーション
【図１】
2010250378.tif 000003
【図２】
2010250378.tif 000004
【図３】
2010250378.tif 000005
【図４】
2010250378.tif 000006
【図５】
2010250378.tif 000007
【図６】
2010250378.tif 000008
【図７】
2010250378.tif 000009
【図８】
2010250378.tif 000010
【図９】
2010250378.tif 000011
【図１０】
2010250378.tif 000012
【図１１】
2010250378.tif 000013
【図１２】
2010250378.tif 000014
【図１３】
2010250378.tif 000015
【図１４】
2010250378.tif 000016
【図１５】
2010250378.tif 000017
【図１６】
2010250378.tif 000018
【図１７】
2010250378.tif 000019
【図１８】
2010250378.tif 000020
【図１９】
2010250378.tif 000021