(57)【要約】【課題】  例えばＣＯＲＢＡのプログラミングなどに詳しくない試験者であっても、ＣＯＲＢＡサーバオブジェクトの試験を容易に行うことを可能とする。【解決手段】  ＧＵＩを介してユーザとの対話的操作に基づくコンピュータ処理でＣＯＲＢＡサーバにアクセスするＣＯＲＢＡクライアントシステムであって、ＣＯＲＢＡサーバのＩＤＬファイル１からインタフェース情報を取得して記憶装置に記憶するインタフェース管理部２と、ＣＯＲＢＡサーバのオブジェクト参照の情報を取得して記憶装置に記憶するオブジェクト取得部５オブジェクト取得部５で取得し記憶したオブジェクト参照の情報およびインタフェース管理部２で取得し記憶したインタフェース情報とに基づき、ＧＵＩを生成するユーザインタフェース構成部８と、ユーザインタフェース構成部８で生成したＧＵＩを画面表示して、このＧＵＩを介してのユーザの対話的操作に基づき、指定のオブジェクトに対するオペレーションを実行するオペレーション実行部１０とを有する構成とする。【選択図】        図１
2005078396.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩを介してユーザとの対話的操作に基づくコンピュータ処理でＣＯＲＢＡサーバにアクセスするＣＯＲＢＡクライアントシステムであって、
上記ＣＯＲＢＡサーバのＩＤＬファイルからインタフェース情報を取得して記憶装置に記憶するインタフェース管理手段と、
上記ＣＯＲＢＡサーバのオブジェクト参照の情報を取得して記憶装置に記憶するオブジェクト取得手段と、
該オブジェクト取得手段で取得し記憶したオブジェクト参照の情報および上記インタフェース管理手段で取得し記憶したインタフェース情報とに基づき、上記ＧＵＩを生成するユーザインタフェース構成手段と、
該ユーザインタフェース構成手段で生成したＧＵＩを画面表示して、該ＧＵＩを介してのユーザの対話的操作に基づき、指定のオブジェクトに対するオペレーションを実行する実行手段と
を有することを特徴とするＣＯＲＢＡクライアントシステム。
【請求項２】
請求項１に記載のＣＯＲＢＡクライアントシステムであって、
上記実行手段は、上記ＩＤＬファイルをコンパイルして生成されたスタブファイルにリフレクションすることで、上記ＣＯＲＢＡサーバへのアクセスを行うことを特徴とするＣＯＲＢＡクライアントシステム。
【請求項３】
請求項１もしくは請求項２のいずれかに記載のＣＯＲＢＡクライアントシステムであって、
入力されたシナリオファイルに基づいて、上記ユーザインタフェース構成手段による上記ＧＵＩの生成および上記実行手段による実行を行うことを特徴とするＣＯＲＢＡクライアントシステム。
【請求項４】
請求項３に記載のＣＯＲＢＡクライアントシステムであって、
ＩＤＬファイルを扱えるＵＭＬ開発ツールを用いてシーケンス図を使って作成された上記シナリオファイルを入力することを特徴とするＣＯＲＢＡクライアントシステム。
【請求項５】
請求項１から請求項４のいずれかに記載のＣＯＲＢＡクライアントシステムであって、
インタフェース毎に、新しいオブジェクトに対する命名を、予めユーザが選択した命名規則に従って行う手段を有することを特徴とするＣＯＲＢＡクライアントシステム。
【請求項６】
請求項５に記載のＣＯＲＢＡクライアントシステムであって、
上記命名規則は、インタフェース毎の新しいオブジェクトに通し番号で命名する第１の規則と、新しいオブジェクトが得られる度に実行するオペレーションの結果もしくは属性で命名する第２の規則の少なくともいずれかを含むことを特徴とするＣＯＲＢＡクライアントシステム。
【請求項７】
請求項１から請求項６のいずれかに記載のＣＯＲＢＡクライアントシステムであって、
上記ユーザインタフェース構成手段は、
当該インタフェースにアクセスするための引数を設定するＧＵＩを、オペレーションのステップの数だけ生成することを特徴とするＣＯＲＢＡクライアントシステム。
【請求項８】
コンピュータを、請求項１から請求項７のいずれかに記載のＣＯＲＢＡクライアントシステムにおける各手段として機能させるためのプログラム。
【請求項９】
ユーザがＵＭＬのシーケンス図で記述したＣＯＲＢＡサーバオブジェクトに対する試験手順を入力する手順と、
上記シーケンス図の内容に基づき、ユーザが指定した試験オペレーションを実行するオブジェクトのインタフェースの情報、試験するオブジェクトの名前、試験を行う順番を含む情報を決定する手順と、
決定した情報に基づき、当該インタフェースにアクセスするための引数を設定するＧＵＩを、オペレーションのステップの数だけ生成する手順と、
ユーザが指定したオブジェクトの名前とネームサーバに登録された実在のオブジェクトを対応付ける手順と、
生成したＧＵＩ群を、上記試験手順で指定された順番に並べ、個別もしくは一括して試験を実行する手順と
を有することを特徴とするＣＯＲＢＡ試験システムの構成方法。
【請求項１０】
請求項９に記載のＣＯＲＢＡ試験システムの構成方法において、
上記シーケンス図に記述されているアクセスすべきオブジェクトが、試験時に動的に生成または試験システムに認識される場合、試験システム側で当該オブジェクトが生成されるタイミングで名前を与える手順を有し、当該オブジェクトを事前に指定された試験手順どおりにアクセスすることを特徴とするＣＯＲＢＡ試験システムの構成方法。
【請求項１１】
請求項９もしくは請求項１０のいずれかに記載のＣＯＲＢＡ試験システムの構成方法において、
アクセスするインタフェース名を上記シーケンス図から取り出した際に、当該インタフェース名に対応するインタフェースの詳細な仕様をインタフェース定義ファイルから取り出す手順と、
上記インタフェース定義ファイルに記されている任意の構造型に対し、テーブル型に構造を展開してユーザに提示し、ユーザからの任意の型のデータを入力する手順とを有し、
上記ＧＵＩを動的に構成することを特徴とするＣＯＲＢＡ試験システムの構成方法。
【請求項１２】
ＣＯＲＢＡクライアントにおけるオブジェクトのオペレーション呼出方法であって、
オブジェクトのインタフェース情報とオブジェクト名、およびオブジェクトに対するオペレーション呼出のシーケンスを含む情報を入力し、該情報に基づいて、インタフェースにアクセスするための引数を設定するグラフィカルユーザインタフェースを、オペレーションのステップの数だけ生成し、上記グラフィカルユーザインタフェースを介してユーザが指定した引数を入力し、ユーザ指定されたオブジェクト名とネームサーバに登録された実在のオブジェクト参照を対応付け、オペレーション呼出を実行することを特徴とするＣＯＲＢＡクライアントによるオブジェクトのオペレーション呼出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＯＲＢＡ（Common Object Request Broker Architecture）技術に係わり、特に、任意のＣＯＲＢＡサーバにアクセスするのに好適なＣＯＲＢＡクライアントシステムに関するものである。
【背景技術】
【０００２】
分散オブジェクト間通信の標準規格であるＣＯＲＢＡは、汎用的な分散オブジェクトのためのプロトコルとして設計された経緯上、多数のベンダから入手可能で、開発コストも安価なため、例えば、金融システムやチケット予約システム、ネットワーク管理用システムのようなオンラインシステム等に広く利用されている。
【０００３】
このような大規模なＣＯＲＢＡシステムの開発においては、サーバとクライアントはそれぞれ別のグループで開発が行われる。ＣＯＲＢＡでは、サーバ・クライアント間のインタフェースがＩＤＬ（Interface Definition Language、インタフェース定義言語）で記述され、サーバ実装者もクライアント実装者も、まず、ＩＤＬファイルを作成する。
【０００４】
そして、次に、それぞれのＩＤＬファイルをコンパイルして、各々の実装する言語（例えば「ＪＡＶＡ（登録商標）」用のスタブファイルやスケルトンファイルを生成し、当該言語でスタブファイルを利用してクライアント・プログラムを作成し、スケルトンファイルを利用してサーバ・プログラムを作成し、作成したクライアント・プログラムおよびサーバ・プログラムをコンパイルする手順で開発が行われる。
【０００５】
このような開発手法では、クライアントのユーザインタフェースをサーバへのオペレーションに最適な形で作成するのに便利である。しかし、例えばネットワーク管理用システムなどの既存のあるいは新規に開発されたＣＯＲＢＡサーバオブジェクトの動作試験を行う場合には問題がある。
【０００６】
すなわち、試験対象のサーバへのアクセスには、そのサーバのＩＤＬファイルからスタブファイルを生成し、それを実装するクライアントプログラムを最初から開発する必要があり、その際、サーバへの接続には専門的なプログラミングの知識が必要となる。その結果、ＣＯＲＢＡサーバはＨＴＴＰ（HyperText Transfer Protocol）サーバ等に比べて、アクセスできるようになるまでに時間と手間がかかる。
【０００７】
例えば、ネットワーク管理用システムなどのＣＯＲＢＡサーバオブジェクトの動作試験を行うには、従来は、事前に準備された管理インタフェースおよび管理システム設計書（動作手順を含む）を、試験システム作成者が自分で読み込み、それに基づいて試験用クライアントシステム（一般に、操作用ユーザインタフェースおよび管理インタフェースアクセスプログラムから構成される）を別個に作成する必要があり、さらに、サーバオブジェクト本体へアクセスするプログラムを作成しなければならないという、本来の試験とは関係のない手順をふむ必要があるため、試験を行う者にとっては負担となる。
【０００８】
このようなＣＯＲＢＡサーバの試験を行うための従来技術としては、例えば、特許文献１に記載のものがある。この技術では、異なるＩＤＬに基づくインタフェース機能を有する複数のＣＯＲＢＡサーバについて、そのサーバが利用するＩＤＬに即したインタフェースが正しく実装されているかどうかの適合性試験を、１つの試験装置で行うことを可能とすることができる。
【０００９】
この従来技術においては、インタフェースリポジトリ（Interface Repository）と称されるインタフェース情報格納手段において、各ＣＯＲＢＡサーバのＩＤＬファイルから得られた、各オブジェクトに含まれる属性の名前またはデータ型、メソッドに関するインスタンス情報を予め記憶しておき、また、試験対象のＣＯＲＢＡサーバが利用するＩＤＬに対応するために、ＣＯＲＢＡスタブではなくＤＩＩ（動的起動インタフェース）を用いて、インタフェース情報格納手段（インタフェースリポジトリ）からＩＤＬのインスタンス情報を取得する構成とすることで、インタフェースリポジトリから取得するＩＤＬのインスタンス情報を変更することにより、様々なＣＯＲＢＡサーバの試験に柔軟に対応することが可能となる。
【００１０】
具体的には、ＣＯＲＢＡネーミングサービスからインスタンスの名前木情報を取得する名前木情報取得手段と、この名前木情報に基づきインタフェースリポジトリから当該ＩＤＬのインスタンス情報を取得するインタフェース情報取得手段と、このインスタンス情報に基づいてＣＯＲＢＡサーバを試験する試験実行手段とからなるＣＯＲＢＡクライアント、および、このＣＯＲＢＡクライアントと通信インタフェース部との間にＤＩＩ（動的起動インタフェース手段）を設け、ＣＯＲＢＡクライアントにおいて名前目情報を木構造状に一覧表示し、利用者がその部分木を選択する（オブジェクトの絞り込みをする）と、インスタンス情報取得手段が、選択された部分木の配下に存在する名前木情報に基づくインスタンス情報を取得し、このインスタンス情報に基づいて、試験実行手段が、属性取得及び設定の要求と操作実行要求とをＣＯＲＢＡサーバに送信し、その応答の成否により試験を行う。
【００１１】
このように、この従来技術においては、インタフェースリポジトリから取得するＩＤＬのインスタンス情報を変更することにより、１つの試験装置で、様々なＣＯＲＢＡサーバの試験に柔軟に対応することが可能となる。
【００１２】
また、この従来技術においては、試験シナリオ作成・実行手段を設け、この手段により、ユーザは、ＧＵＩ（Graphical User Interface）を通じて、属性設定、属性取得、メソッド実行、及び予め用意された制御コマンドを組み合わせることにより、試験内容を一連のシナリオとして作成することができ、ＣＯＲＢＡクライアントの試験実行手段による試験を、試験内容のシーケンスを指定したシーケンスシナリオに基づいて行うことができる。これにより、試験内容を自由に作成し実行することができ、自由度の高い試験を行うことが可能となる。更にまた、一度作成したシナリオを別のシナリオの一部とする、部分的な利用も可能である。
【００１３】
しかし、この従来技術においては、（１）複雑な構造体を持つＩＤＬについて考慮しておらず、その引数の入力には、単純な型しか想定していない。すなわち、ＣＯＲＢＡの引数にはUnion, Sequence, Anyなどのような、複数のパターンから型を選択するような構造を入れ子にすることができるが、このようなＣＯＲＢＡの引数特有の困難さについては言及していないので、試験対象には相当の制限がある。また、（２）名前については、ネーミングサービスを用いることを主眼においているため、実行時に動的に生成されたオブジェクトに対するアクセス手段を備えていない。すなわち、オブジェクトの動的命名規則が備わっていない。
【００１４】
このように、特許文献１の技術は、所定の制限に基づいて、試験のシナリオ化を実現しているにすぎず、その制限では不可能なサーバの試験には適用できず、そのようなサーバの試験には、専用のプログラムが必要になる。
【特許文献１】特開２００３−０６７２６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
解決しようとする問題点は、従来の技術では、ネットワーク管理用システムなどのＣＯＲＢＡサーバオブジェクトの動作試験を行うには、事前に準備された管理インタフェースおよび管理システム設計書（動作手順を含む）を、試験システム作成者が自分で読み込み、それに基づいて試験用クライアントシステム（一般に、操作用ユーザインタフェースおよび管理インタフェースアクセスプログラムから構成される）を別個に作成する必要があり、サーバオブジェクト本体へアクセスするプログラムを作成しなければならないという、本来の試験とは関係のない手順をふむ必要があるため、試験を行う者にとっては負担となっていた点である。また、ＣＯＲＢＡには動的な呼出を実現するために、ＤＩＩ（Dynamic Invocation Interface）という枠組みが提供されているが、このＤＩＩを使うにはインタフェースリポジトリ等の準備が必要で、ユーザの負担が重く気軽には使えない。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明では、試験者は、例えばＵＭＬ（Unified Modeling Language）等のオブジェクト指向のシステム開発用の表記ツールを用いて、サーバオブジェクトの試験手順を、シーケンス図で記述する。その際、各オブジェクトに名前をつける必要があるが、試験開始時に生成されているオブジェクトの名前については、ＵＲＬ（Uniform Resource Locator）やネーミングサービスのオブジェクト名を使い、試験開始時に生成されていないオブジェクトに関しては、予め用意された命名規則に基づいてオブジェクト名を設定する。この命名規則とは、インタフェース毎に別途定義するオブジェクトの命名手順を示すものであり、例えば、オブジェクトが生成される度に通し番号で当該オブジェクトの名前を付ける、あるいは、オブジェクトの属性から名前を付けるなどの方針を事前に定めておき、必要に応じて表示出力して試験者に示す。また、表記ツールとして、ＩＤＬをサポートしているＵＭＬ作成ツールを使うと、試験者は、シーケンス図を描く際に、ＩＤＬファイルに記述されたインタフェースやオペレーションから、自分の目的にあったものを選択できるので、素早く試験手順のシーケンス図を作ることができる。
試験者は、試験手順のシーケンス図を作成した後、試験システムを起動し、必要ならば事前に定めておいた命名規則を試験システムに入力する。その後、インタフェース定義ファイルおよび試験手順を出力したシナリオファイルを試験システムに読み込ませる。
これにより、試験システムは、そのシナリオファイルに書かれた順番に、オペレーション項目をオペレーションメニューに並べて表示装置に表示する。そして、試験者がオペレーション項目を個別に選択すると、そのオペレーションを行うための引数の入力を促すパネルを表示する。このオペレーションの引数が、Union, Sequence, Anyなどのような、選択肢を含む構造を持つ場合は、試験者は、自分の入力したいインタフェースの形態を選択することで、自分に最適な入力形態を作り出し、パラメータを入力する。
パラメータが、他のオペレーションの実行結果である場合は、実行結果を表示するテーブルにおいて、引数に使う型名をコピーし、あらためてオペレーションのパラメータ部分にペーストすることで、他のオペレーションの実行結果をそのまま、オペレーションの引数にする。
そして、試験者が、実行したいオペレーション名をリストから（必要なら一括して）選択し、オペレーションのオペレーション実行ボタンを押すことで、オペレーションを実行する。
尚、入力形態・入力値・実行結果は全て、外部ファイルに保存し、後日再び読み込み直すことができる。
オペレーションの実行の結果、それまで知られていない新しいオブジェクトが返された場合、命名規則によって自動的に付与される名前と、事前の設計時に指定した名前との間でマッチングが行われる。マッチングが成功したら、この名前とオブジェクトの結びつきが行われ、以降、試験手順書において、この名前で指定されたオブジェクトに対するオペレーションは、対応する実在オブジェクトに対するオペレーションとなる。
【発明の効果】
【００１７】
本発明によれば、例えばＣＯＲＢＡサーバオブジェクトの試験を行うに際して試験者は、ＣＯＲＢＡのクライアントのプログラミングを一切行うことなく当該ＣＯＲＢＡサーバオブジェクトの試験を行うことができるので、ＣＯＲＢＡのプログラミングなどに詳しくない試験者であっても、ＣＯＲＢＡサーバオブジェクトの試験を行うことが可能である。
【発明を実施するための最良の形態】
【００１８】
以下、図を用いて本発明を実施するための最良の形態例を説明する。
【実施例】
【００１９】
図１は、本発明に係わるＣＯＲＢＡクライアントシステムの構成例を示すブロック図である。
【００２０】
図１におけるＣＯＲＢＡクライアントシステムは、ＧＵＩを介してユーザとの対話的操作に基づくコンピュータ処理でＣＯＲＢＡサーバにアクセスするシステムであって、プログラムに基づくＣＰＵの処理で実現される機能として、ＩＤＬファイル１を入力してインタフェースを管理するインタフェース管理部２、ＣＯＳ（Common Object Service）ネーミングサービス３およびＵＲＬ４等を通してオブジェクトを取得するオブジェクト取得部５、オブジェクトに対し識別名を付与し管理するオブジェクト識別名管理部６、オブジェクト参照とインタフェース情報およびシナリオファイル７に基づいてＧＵＩ（グラフィカルユーザインタフェース）を生成するユーザインタフェース構成部８、生成されたグラフィカルユーザインタフェースを画面表示等して提示しユーザとの対話的入出力操作処理を行うユーザインタフェース処理部（図中、「構成されたユーザインタフェース」と記載）９、グラフィカルユーザインタフェースを介してのユーザかの指示に応じてオブジェクトに対してＪＡＶＡ（登録商標）のリフレクションを用いてオペレーションを実行するオペレーション実行部１０を具備する。
【００２１】
本例のＣＯＲＢＡクライアントシステムが汎用的に十分に使いやすいものとなるためには、ＩＤＬファイル１に記述されているサーバに関する情報を最大限、ユーザインタフェースの構成に反映する必要がある。しかし、ＩＤＬコンパイラで生成したスタブファイル１１の内容をリフレクションで調べても、引数の名前やTypedefされた型の関係などの情報等を取得できない。そのため、本例のＣＯＲＢＡクライアントシステムは、インタフェース管理部２において、ＩＤＬファイル１をパーズ（解析）し、その内容を正確に把握する。このことにより、ユーザインタフェース構成部８に、サーバの詳細なインタフェース情報を渡すことができる。
【００２２】
また、本例のＣＯＲＢＡクライアントシステムでは、オブジェクト取得部５において、サーバのオブジェクト参照（ＩＯＲ、Interoperable Object Reference）を、ＵＲＬ４またはＣＯＳネーミングサービス３を通して取得する。取得したオブジェクト参照に対して、ユーザは、識別名を付与する。ＵＲＬやネーミングサービスのコンテキスト名から、オブジェクト名として適切と思われる文字列を抽出した場合は、その名前をデフォルトで設定する。この名前は、オブジェクト識別名管理部６で登録し、以降は、オブジェクトをその名前で参照する。
【００２３】
ＣＯＲＢＡオペレーションを実行した結果、サーバの新しいオブジェクト参照（ＩＯＲ）がクライアントに返されることがある。このようなＩＯＲ（オブジェクト参照）をユーザが適切に識別できるよう、オブジェクト識別名管理６において、識別名の命名を行う。本例では、オブジェクト識別名管理６は、新しいオブジェクトの識別名を、（ａ）通し番号、（ｂ）オブジェクトのオペレーションの結果、（ｃ）オブジェクトの属性、（ｄ）ユーザによる手動等により命名し、ＩＤＬファイル１で定義されているインタフェース毎に、自由にユーザがカスタマイズできる。
【００２４】
例えば、インタフェース「Accountinfo」のオブジェクト生成に対して、上記（ａ）通し番号による命名を行う場合は、新しい生成オブジェクトは「Accountinfo−１」、「Accountinfo−２」、「Accountinfo−３」、…というように連番で番号付けして命名する。新たに命名するオブジェクトには、既に使われた通し番号の中で最大のものより１つ多い番号を使う。そのため、例えば「Accountinfo−２」が消滅したとしても、その番号は再利用せず、ユーザに混乱は生じない。
【００２５】
また、オブジェクトに対するオペレーションに基づく命名をユーザが選択した場合は、新しいオブジェクトが得られる度に実行するオペレーションに基づいて名前を付ける。例えば、後述の図６では、新しく得られたオブジェクトに対し、オペレーション「add」を実行し、その返り値を名前とするように指定している。属性による命名も同様に指定可能である。
【００２６】
このような識別名に関する命名規則、および識別名とオブジェクト参照（ＩＯＲ）は、全て例えばＸＭＬ（eXtensible Markup Language）形式のファイルとして外部（図中、「識別名・命名方式のファイルへの入出力」と記載）１２に保存し、後で再利用する。また、外部１２から読み込まれたと内部の識別名との間に重複がある場合には、衝突を回避して適切に命名する。
【００２７】
ユーザインタフェース構成部８は、オブジェクトに対しオペレーションを行うためのＧＵＩを生成・構成するものであり、本例のクライアントシステムの使い易さを左右する重要な機能である。
【００２８】
このユーザインタフェース構成部８により、例えば図８に示す内容のＩＤＬファイル１のインタフェース情報から、図９や図１０に示す表テーブルの形のグラフィカルユーザインタフェース（ＧＵＩ）を生成・構成する。
【００２９】
図１０に示すように、本例のグラフィカルユーザインタフェースでは、配列やsequence,structなどの構造型データは、表テーブルの左側から右側に向かって、より詳細な内容へと展開される。Unionやanyのように、複数の候補から選択できるような型の場合は、コンボボックスを出現させ、そこからユーザが必要な型を選択すると、それに応じて右側に展開されるデータ構造が動的に変わり、ユーザは、ＩＤＬファイル１の内容と付け合わせることで、サーバへのオペレーションに対して任意のパラメータを設定できる。また、図中のポップアップメニューに示すように、シーケンス型では各要素の削除や挿入が任意の場所で可能で、その他のデータ型でも、個別にデータをファイルに保存したり読み込める。
【００３０】
このようにして、ユーザインタフェース構成部８が生成したＧＵＩを、ユーザインタフェース処理部９により、ユーザが見える画面上に、図７に示す形で表示出力する。各オペレーションに対応する画面では、テーブル型のインタフェースが、オペレーションの入力パラメータ、出力パラメータの双方に現れる。尚、オペレーションが実行されるまでは、画面には、出力パラメータは現れない。
【００３１】
画面では、オペレーションを行うオブジェクトの識別名、インタフェース名、そしてオペレーション名が現れる。また、この画面でユーザが入力した内容や、オペレーションの実行結果を外部ファイル（図中、「パラメータのファイルへの入出力」と記載）１３に保存し、また保存された外部ファイルを読み込む。そのためのボタン（「保存」、「読み込み」）が図７のＧＵＩ上に用意されている。
【００３２】
実行に際しては、実行時刻および実行所要時間が記録され表示されるようにする。実行結果も表テーブルで表示され、返り値のデータ構造が一目で分かるようにする。また、実行の結果、ＩＤＬで定義された例外が発生し、その例外自身が構造型データを持つ場合は、例外の種類やそのデータの内容も結果表示部分に同様に表示する。
【００３３】
シナリオがあれば、各ステップのオペレーション用のＧＵＩを、シナリオで定義された順番に並べて表示する。これにより、ユーザが現在の手順で次に何をすれば良いのかが一目で分かり、途中で手戻りが生じても、簡単に前の任意の手順まで戻って、オペレーションの実行手順をやり直すことができる。入力するシナリオファイルのフォーマットについては、将来の変更や拡張を考慮し、ＸＭＬ形式で定める。
【００３４】
シナリオ自身のユーザ入力は、ＩＤＬファイルを扱えるＵＭＬ設計ツール上で、シーケンス図を使って行う。これにより、ユーザは、既存の設計や、クラス名、オペレーション名を持つＩＤＬファイを利用してシナリオをデザインできる。
【００３５】
また、本例のシステムの実装には、ＪＡＶＡ（登録商標）開発キット（ＪＤＫ）version1.4を使用し、ＸＭＬデータの入出力機能や正規表現処理機能を利用する。これにより、迅速・正確なシステムの実装が可能である。また、全ての画面やユーザインタフェースは、ＪＡＶＡ（登録商標）のSwingを用いて実装し、表テーブルに関してはセルの統合が簡単に行えるよう独自のライブラリを構築する。
【００３６】
以下、本例のＣＯＲＢＡクライアントシステムを、既存のＣＯＲＢＡサーバに対する試験に適用する際の例を説明する。
【００３７】
従来、ネットワーク管理用システムなどのＣＯＲＢＡサーバオブジェクトの動作試験を行うには、事前に準備された管理インタフェースおよび管理システム設計書（動作手順を含む）を、試験システム作成者が自分で読み込み、それに基づいて試験用クライアントシステム（一般に、操作用ユーザインタフェースおよび管理インタフェースアクセスプログラムから構成される）を別個に作成する必要があり、さらに、サーバオブジェクト本体へアクセスするプログラムを作成しなければならないという、本来の試験とは関係のない手順をふむ必要があるため、試験を行う者にとっては負担となる。
【００３８】
本例では、このような問題を解決するために、ＧＵＩ（グラフィカルユーザインタフェース）を介してユーザとの対話的操作に基づくコンピュータ処理でＣＯＲＢＡサーバにアクセスするＣＯＲＢＡクライアントシステムとして、図１に示すように、ＣＯＲＢＡサーバのＩＤＬファイル１からインタフェース情報を取得して記憶装置に記憶するインタフェース管理部２と、ＣＯＲＢＡサーバのオブジェクト参照の情報を取得して記憶装置に記憶するオブジェクト取得部５と、オブジェクト取得部５で取得し記憶したオブジェクト参照の情報およびインタフェース管理部２で取得し記憶したインタフェース情報とに基づき、ＧＵＩを生成するユーザインタフェース構成部８と、ユーザインタフェース構成部８で生成したＧＵＩを画面表示して、このＧＵＩを介してのユーザの対話的操作に基づき、指定のオブジェクトに対するオペレーションを実行するオペレーション実行部１０とを設ける。
【００３９】
尚、ＩＤＬファイル１は図８に示す内容で記述され、オペレーション実行部１０は、ＩＤＬファイル１をコンパイルして生成されたスタブファイル１１にリフレクションすることで、ＣＯＲＢＡサーバへのアクセスを行う。
【００４０】
また、ユーザインタフェース構成部８は、入力されたシナリオファイル７に基づいて、ＧＵＩを生成し、オペレーション実行部１０は、シナリオファイル７に記述された手順でオペレーションを実行する。尚、このシナリオファイル７の作成には、ＩＤＬファイルを扱えるＵＭＬ開発ツールが用いられる、
【００４１】
このような構成の本例のＣＯＲＢＡクライアントシステムは、ユーザがＵＭＬのシーケンス図で記述したＣＯＲＢＡサーバオブジェクトに対する試験手順を入力し、このシーケンス図の内容に基づき、ユーザが指定した試験オペレーションを実行するオブジェクトのインタフェースの情報、試験するオブジェクトの名前、試験を行う順番を含む情報を決定し、決定した情報に基づき、当該インタフェースにアクセスするための引数を設定するＧＵＩを、オペレーションのステップの数だけ生成し、ユーザが指定したオブジェクトの名前とネームサーバに登録された実在のオブジェクトを対応付け、生成したＧＵＩ群を、試験手順で指定された順番に並べ、個別もしくは一括して試験を実行するＣＯＲＢＡ試験システムとして構成する。
【００４２】
また、シーケンス図に記述されているアクセスすべきオブジェクトが、試験時に動的に生成または試験システムに認識される場合、試験システム側で当該オブジェクトが生成されるタイミングで名前を与え、当該オブジェクトを事前に試験手順で指定された名前どおりにアクセスするよう構成する。
【００４３】
また、アクセスするインタフェース名をシーケンス図から取り出した際に、当該インタフェース名に対応するインタフェースの詳細な仕様をインタフェース定義ファイルから取り出し、インタフェース定義ファイルに記されている任意の構造型に対し、テーブル型に構造を展開してユーザに提示し、ユーザからの任意の型のデータを入力し、ＧＵＩを動的に構成する。
【００４４】
このＣＯＲＢＡクライアントによるオブジェクトのオペレーション呼出は以下のように行う。すなわち、オブジェクトのインタフェース情報とオブジェクト名、およびオブジェクトに対するオペレーション呼出のシーケンスを含む情報を入力し、この情報に基づいて、インタフェースにアクセスするための引数を設定するグラフィカルユーザインタフェースを、オペレーションのステップの数だけ生成し、グラフィカルユーザインタフェースを介してユーザが指定した引数を入力し、ユーザ指定されたオブジェクト名とネームサーバに登録された実在のオブジェクト参照を対応付け、オペレーション呼出を実行する。
【００４５】
図２は、本例のＣＯＲＢＡクライアントシステムによる試験手順例を示す説明図である。
【００４６】
図２のフェーズ１では．ＵＭＬツールによる試験手順およびシナリオファイルの作成を行う。試験対象ＣＯＲＢＡサーバオブジェクトを提供する側は、ＩＤＬファイル１も同時に提供するため、試験者はＩＤＬファイル１を用意しているとする。
【００４７】
試験者は、そのＩＤＬファイル１をＵＭＬツールに読み込ませ、試験を行う手順に沿って図３に例示するようにしてシーケンス図の描画（シナリオファイル７の作成）を行う。このシーケンス図で、アクセスするオブジェクトを指定する際は、通常、そのクラスのクラス名とオブジェクト名が指定される。
【００４８】
その際、すでにネームサーバなどに登録され、参照可能な名前をもつオブジェクトについては、その名前をネームサーバの登録名やＵＲＬで記述する。しかし、設計時には試験システムからは認識されない（存在しない）が、試験実行時に生成されるオブジェクトについては、そのオブジェクトに対して、命名規則から妥当な名前を付ける。
【００４９】
尚、命名規則を具体的に定める作業は、次の段階（フェーズ２）において、試験システム上にて定める。基本的に、個別のオブジェクトはたいてい、自分を他とUniqueに識別し、かつ人間にわかりやすい名前を提供するための枠組みがあるという想定のもと、命名規則には「オペレーションを実行しての返り値」、「オブジェクトの属性値」、「通し番号」などがある。
【００５０】
ＵＭＬにおける試験手順の記述が終わったら、ＵＭＬに付随するツールを使って、実行するオペレーションの順番、オブジェクトの種類などを記述したシナリオファイル７を出力する。シナリオファイル７は、図４の例に示すようなＸＭＬ書式で構成される。
【００５１】
このようなシナリオファイル７が入力されると、実行プログラムはobj_nameがオブジェクト参照を取得すべき名前ならば（下記「注１」参照）、そこからオブジェクト参照を取得する。一般的にobj_nameはそのまま識別名として扱われる。ただし、前後に空白がある場合は、それらはトリミングされる。
【００５２】
「注１」  obj_nameの文字列が、"corbaname："、"file："、"http://"、"ftp：//"で始まる場合は、オブジェクト参照を取得すべき名前とする。また、IOR：で始まる文字列や空白で構成される文字列、"〜"で始まる文字列をオブジェクト名として指定すると、シナリオ読み込みエラーとなる。シナリオ中で複数の異なるインタフェースをもつオブジェクトが同じ識別名を使っている場合も同様にシナリオ読み込みエラーとなる。
【００５３】
次に、図２におけるフェーズ２の試験システムにおける試験オペレーションの引数の設定について説明する。
【００５４】
試験者は、試験システムを起動した後、ＩＤＬファイル１などから各モジュールのオペレーションなどの情報を取得する。その後で、ソフトウェアのメニュー（図５における識別名の命名規則一覧）から「命名規則の設定」を選択し、命名規則の設定を行う。
【００５５】
図５に示すように、表の左側には、ＩＤＬファイル１に記述されたインタフェース名の一覧が、また、その右側には、それぞれに対して、新しいオブジェクトが現れたときにどのような命名規則が適用されるかが記述してある。
【００５６】
試験者（ユーザ）は、この表の列を選択し、「設定」ボタンを押すことによって、各インタフェースに対して、命名規則を設定する。図６に示すように、命名規則には、「命名をしない」、「手動入力」、「インタフェースに通し番号をつける」、「インタフェース名に属性を付加」、「オペレーションの実行結果を識別名とする」などが用意されている。試験者は、ここから、先のＵＭＬ設計時に、ネーミングサービスなどに登録されていないオブジェクトに対して付けた名前と一致する命名規則を選びだし、設定を行う。
【００５７】
命名規則の設定と前後して、先の段階（フェーズ１）で記述したシーケンス図による試験手順の内容を出力したシナリオファイル７を読み込む。このシナリオファイル７で記述された、各オペレーションの一つ一つに対して、オペレーションを実行するためのユーザインタフェースが構成され、図７に示すように、それらがリストボックスでオペレーションの順番にまとめられる。
【００５８】
図７において試験者がリストボックスを選択すると、そのリストボックスにあるオペレーションを実行するためのグラフィカルユーザインタフェース（ＧＵＩ）が、画面右側に表示される。このグラフィカルユーザインタフェース（ＧＵＩ）には、「引数入力パネル」、「結果表示パネル」、「実行ボタン」が含まれる。
【００５９】
リストボックスにあるオペレーション名のうち、オペレーション対象となるオブジェクトをまだ試験システムが取得していないものについては、リストボックスでは斜体で表示され、そのリストボックスを選択して表示されるＧＵＩ（グラフィカルユーザインタフェース）では、実行ボタンは無効になる（引数の入力などは可能である）。
【００６０】
このリストボックスの各項目を選択して、ユーザは、（１）自分の行いたい入力方法の選択と、（２）具体的な値の入力、または別のオペレーションの実行結果の参照の入力を行う。例として、図８にインタフェース定義ファイル（ＩＤＬファイル）を示し、図９および図１０において、そこから生成されるＧＵＩ（グラフィカルユーザインタフェース）例を示す。
【００６１】
図８のＩＤＬファイルにおいて、method1オペレーション用のグラフィカルユーザインタフェースとして最初に生成されるのは、図９のような形のテーブルである。このテーブルにおける２つの行は、それぞれ、method1の入力引数であるin aと、inout cを表す。それぞれ、型としてDDUniが指定されており、ＩＤＬのDDUniはunion構造体であるため、最初のcase 1が選ばれた状態である。
【００６２】
また、図９のテーブルにおける表の右端の列は引数を入力する部分であり、ここは現在、String引数を入れることができる。しかし、もしこれから、union選択肢のcase 2やcase 3が選ばれた形（該当セルをマウスでクリックすると、ポップアップして好きな型を選ぶことができる）にすると、図１０に示すように、入力テーブルの構造は変化する。
【００６３】
本図１０では、inout cに対して、Eseq（＝Sequence＜long＞）が選ばれた状態を示している。ここでsequenceは任意長なので、ポップアップメニューで好きなサイズを指定できる（ここでは８個）。このようにして、自分の入力したい形にテーブルを変化させていくことで、グラフィカルユーザインタフェースのカスタマイズを行っていく。そして、必要なカスタマイズが終わると、今度は各行の最右列の部分で、値を入力したり選択することで、引数の入力を行っていく。
【００６４】
図８に示すように、ＣＯＲＢＡオペレーションの引数の型には、union，any，Sequenceのように、引数の型や数が一定でないものがネストしている。これら、引数の型や数が一定でなく、クライアントで選択しなければいけない種類の入力に対しては、従来の技術では、用途にあわせて型を事前に選択した専用のユーザインタフェースをもつＣＯＲＢＡクライアントが個別に作成されていた。
【００６５】
しかし、これでは、クライアントは汎用性にかけるため、いちいち、各選択に応じて、ばらばらにクライアントを作るか、または全ての入力パターンを網羅しようとすると、入力する引数は膨大になり、ユーザに大きな負担を与える可能性がある。
【００６６】
本例におけるグラフィカルユーザインタフエースの例は図１０に示すように、引数の型の入力は、左から右に型情報が展開するようにし、選択肢が発生する展開部分は、コンボボックスやポップアップメニューなどで試験者（ユーザ）が自分の好きな入力形態を選択でき、その選択に応じて、即座に表の右側における型の展開が切り替わるようにする。試験者（ユーザ）は、このようにして行った型の選択情報を別途保存して、いつでも読み込める。これによって、専用のクライアントを作ることなく、任意の型をユーザが選べる、汎用ＣＯＲＢＡクライアントを実現する。
【００６７】
このようにして入力する型の選択が終わった後で、試験者は、テーブル構造の各行の一番右端にあるボックスで、具体的な値を入力する。整数やオクテット、文字列などの場合は、具体的な値を入力、または外部からコピーし、オブジェクトの場合はオブジェクト名を選択するか、または手で入力する。このようにして、すべての入力フィールドが埋まると、試験者が実行ボタンを押すことでオペレーションの実行が可能になる。
【００６８】
次に、図１のフェーズ３での試験システムにおける試験オペレーションの逐次・一括実行について説明する。
【００６９】
試験オペレーション用の引数の入力が終わると、試験者は試験を開始する。試験は、逐次的にも、また一括しても実行できる。一括実行の場合は、試験者は、図７に示すＧＵＩにおけるリストボックスから一括実行したいオペレーションをマウスで選択し、一括実行ボタンを押す。また、逐次実行したい場合、試験者は、各オペレーション用のパネルにある「実行」ボタンを押す。
【００７０】
結果は、全て同じパネル内で記録され、その内容は、後に、外部ファイル（「パラメータのファイルへの入出力」）１３に書き出して解析などに用いることが可能となっている。
【００７１】
また、試験の途中で、サーバの中で新しいオブジェクトが生成されるなどの理由により、クライアントによってそれが新しいオブジェクトとして認識された場合、そのオブジェクトはクライアント内で、命名規則に従った名前を付けられる。その名前が事前にＵＭＬなどの設計で使われている名前と一致した場合、そのオブジェクト名を使ったオペレーションの「実行」ボタンは、（これまでは押すことができなかったのが）押すことができるようになる。
【００７２】
次に、図１１を用いて、本システムの動作の流れを説明する。尚、以下の説明文の中で、カギ括弧で示している単語は、図中の同じ単語が現れる部分に対応する。
【００７３】
試験者は最初に、「ＩＤＬファイル」を設計者から受け取る。そして試験者は「ＩＤＬファイル」を「ＵＭＬツール」にインポートし、そこでシーケンス図によるシナリオの描画を行う。その際、試験者は、シナリオを本試験システムで読めるような形にするのに、ＵＭＬツールに組み込む独自「プラグイン」を使用する。
【００７４】
一方、試験システムを起動する前に、試験者は事前に使用するＯＲＢに応じて、それぞれのＯＲＢから提供されている「ＩＤＬコンパイラ」を用いて、ＩＤＬファイルを「スタブファイル」にコンパイルする。
【００７５】
試験システムは、ＣＯＲＢＡサーバへのアクセスを、「スタブファイル」をリフレクション（ＪＡＶＡ（登録商標）機能）することで行う。これによって、ＯＲＢ間の非互換性の問題を回避することが可能になると同時に、インタフェース・リポジトリが不要となり、容易かつ高速なアクセスが可能となる。
【００７６】
本試験システムの「汎用ＣＯＲＢＡクライアントシステム」は、ＩＤＬファイル１、シナリオファイル７を読み込み、それに基づいて「ユーザインタフェース構成部８」が、「グラフィカルユーザインタフェース（図７参照）」を生成し、それを試験者（ユーザ）が操作することで、「クライアント側ＯＲＢ」を経由して、サーバへのアクセスを行う。
【００７７】
以上、図１〜図１１を用いて説明したように、本例では、ユーザから「ＩＤＬファイル１」を「インタフェース管理部２」に、および「シナリオファイル７」を「ユーザインタフェース構成部８」に入力することで、グラフィカルユーザインタフェース（ＧＵＩ）を構成する。インタフェースがアクセスする対象となるＣＯＲＢＡオブジェクトの取得は、「オブジェクト取得部５」が行う。
【００７８】
「オブジェクト取得部５」は、「ＣＯＳネーミングサービス３」から名前でＣＯＲＢＡオブジェクトを取得するか、ＵＲＬ４などで指定されたＩＯＲ参照からＣＯＲＢＡオブジェクトを取得する。また、本例のシステムでは、ＣＯＲＢＡオブジェクトには名前をつけて管理することができ、その名前の管理は「オブジェクト識別名管理部６」が行う。
【００７９】
試験者は、「ユーザインタフェース構成部８」により構成され「ユーザインタフェース処理部９」で表示されたグラフィカルユーザインタフェースを介して、必要となる引数の設定などを行い、グラフィカルユーザインタフェースにある実行ボタンを押す。
【００８０】
この押下操作により、「オペレーション実行部１０」が、グラフィカルユーザインタフェースによって入力された値から、オペレーションに必要な引数を構成し、「スタブファイル１１」に対してリフレクションを経由してオペレーションを実行する。その結果、新しいＣＯＲＢＡオブジェクトが確認されると、そのオブジェクトのインタフェースが、命名規則を持っていれば、その命名規則に従って、新たな名前がそのＣＯＲＢＡオブジェクトに対して命名される。
【００８１】
このＣＯＲＢＡオブジェクトの参照（ＩＯＲ）と実際の名前の組み合わせの管理もまた、「オブジェクト識別名管理部６」が行う。このオブジェクト識別名管理部６は、事前にシナリオファイル７で定義されている名前とのマッチングを確認し、今まで名前だけで実体がなかったオブジェクトと、もし一致するものであれば、これらに対する操作を有効にする。すなわち、図７の実行ボタンを受け付け可とし、この実行ボタンが受け付けられると、オペレーション呼出が実行される。
【００８２】
これら、オブジェクト識別名のデータおよびグラフィカルユーザインタフェースでユーザが入力した引数パラメータなどは、外部ファイル１３においてＸＭＬフォーマットで保存し、後で再ロードしたり、別のＸＭＬ対応ソフトなどを使ってデータの解析や別のフォーマットへの変換が可能である。
【産業上の利用可能性】
【００８３】
尚、本発明は、図１〜図１１を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、既存のＣＯＲＢＡサーバの試験を目的とした試験クライアントシステムを例に示しているが、当該ＣＯＲＢＡサーバに簡易にアクセスするためのクライアントシステムの構成にも適用できる。
【００８４】
また、本例では、ＪＡＶＡ（登録商標）を用いた例を示しているが、他の言語によるシステムにも適用可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明に係わるＣＯＲＢＡクライアントシステムの構成例を示すブロック図である。
【図２】本例のＣＯＲＢＡクライアントシステムによる試験手順例を示す説明図である。
【図３】ＵＭＬツールによるシーケンス図の描画例を示す説明図である。
【図４】シナリオファイルのＸＭＬ書式での構成例を示す説明図である。
【図５】命名規則の設定選択に用いるソフトウェアにおける識別名の命名規則一覧パネルの構成例を示す説明図である。
【図６】命名規則の設定選択に用いるパネルの構成例を示す説明図である。
【図７】図１におけるＣＯＲＢＡクライアントシステムで生成するグラフィカルユーザインタフェース（ＧＵＩ）の第１の構成例を示す説明図である。
【図８】図１におけるＩＤＬファイルの構成例を示す説明図である。
【図９】図１におけるＣＯＲＢＡクライアントシステムで生成するグラフィカルユーザインタフェース（ＧＵＩ）の第２の構成例を示す説明図である。
【図１０】図１におけるＣＯＲＢＡクライアントシステムで生成するグラフィカルユーザインタフェース（ＧＵＩ）の第３の構成例を示す説明図である。
【図１１】図１におけるＣＯＲＢＡクライアントシステムの動作例を示す説明図である。
【符号の説明】
【００８６】
１：ＩＤＬファイル、２：インタフェース管理部、３：ＣＯＳネーミングサービス、４：ＵＲＬ、５：オブジェクト取得部、６：オブジェクト識別名管理部、７：シナリオファイル、８：ユーザインタフェース構成部、９：ユーザインタフェース処理部（「構成されたユーザインタフェース」）、１０：オペレーション実行部、１１：スタブファイル、１２：外部（「識別名・命名方式のファイルへの入出力」）、１３：外部ファイル（「パラメータのファイルへの入出力」）。
【図１】
2005078396.tif 000003
【図２】
2005078396.tif 000004
【図３】
2005078396.tif 000005
【図４】
2005078396.tif 000006
【図５】
2005078396.tif 000007
【図６】
2005078396.tif 000008
【図７】
2005078396.tif 000009
【図８】
2005078396.tif 000010
【図９】
2005078396.tif 000011
【図１０】
2005078396.tif 000012
【図１１】
2005078396.tif 000013