Rational DOORS の OSLC DXL サービス

OSLC DXL サービスを使用すると、HTTP または HTTPS 通信プロトコルを使用して IBM® Rational® DOORS® DXL スクリプトを実行できます。
注: OSLC DXL サービス・ユーティリティーを使用して、DXL ファイルをサービスとしてインストールするときの手順が、こので説明されています。 このユーティリティーは、Rational DOORS バージョン 9.6.1.3 以降で用意されています。 このユーティリティーなしで DXL ファイルをインストールするには、旧リリースの資料を参照してください。

Rational では、Open Services for Lifecycle Collaboration (OSLC) に基づくテクノロジーを採用して、Rational アプリケーションとその他の IBM およびサード・パーティー・ツールとの統合を改善しています。 OSLC サービス・ディスカバリーは拡張可能です。 そのため、実装された標準では現在使用できないサービスや、現行および将来のバージョンに組み込むには特殊すぎると見なされるサービスを、Rational およびサード・パーティーの開発者が追加できます。

OSLC Requirements Management (RM) 仕様バージョン 2 の Rational DOORS 実装環境には、HTTP または HTTPS プロトコルを使用して Rational DOORS DXL スクリプトを実行するために使用可能な API が組み込まれています。 この API は、ユーザーが安全に Rational DOORS データにアクセスし、操作できるようにするため、統合に付加価値を追加します。 これは、DXL スクリプト・ライブラリーの概念に基づいています。 OSLC DXL サービス・ユーザー・インターフェースを使用することによって、管理者は簡単に DXL スクリプトを追加、編集、および削除できます。

以下の手順は、OSLC DXL サービスを使用するときのプロセスを示しています。
  1. OSLC DXL スクリプトを探します。
  2. スクリプトを呼び出して、必須パラメーターを OSLC コールに組み込みます。 DXL サービス URI の GET 要求を送信すると、応答に、作成者によって提供されたスクリプトのヘルプ情報が含まれます。DXL サービス URI の PUT 要求を、オプション・パラメーターを指定して送信すると、サービスが実行されます。
  3. スクリプトが相互協調処理サーバーで実行されます。
  4. 結果が通知されます。

スクリプトは、サービス・インターフェースで使用可能な DXL スクリプトを決定できる Rational DOORS 管理者によって制御およびカスタマイズされます。 管理者は、「runDXL」などの、潜在的なセキュリティー・リスクとみなされる可能性のある特定の機能を呼び出す機能をロックできます。 ユーザー・インターフェース・ウィジェットなどの特定の DXL はサポートされません。

サービス・ディスカバリーは OAuth によって保護されているため、OSLC DXL サービスを使用する場合は、ユーザー名とパスワードを入力して認証を行う必要があります。

OSLC DXL サービスを使用するときの標準的な手順:
  1. DXL スクリプトを作成します。
  2. DXL スクリプトをサービスとしてインストールします。
  3. サービス・ディスカバリーを使用してサービスを見つけます。
  4. このサービスを呼び出します。
  5. 応答から戻り値を抽出します。

  1. 以下のコードを含む helloWorld.inc という DXL ファイルを作成します。
    void getHelloString(string language)
    {
    	string hello = null
    
    	if ("French" == language)
    	{
    		hello = "Bonjour le monde"
    	} 
    	else if ("Finnish" == language)
    	{
    		hello = "Hei maailma"
    	} 
    	else if ("Latin" == language)
    	{
    		hello = "Ave mundi"
    	}
    	else 
    	{
    		hello = "Hello world"
    	}
    
    	setDxlServiceResult hello
        
    	print hello "¥n"
    }
  2. helloWorld.inc ファイルを /addins/services ディレクトリーにコピーします。このディレクトリーのデフォルトの場所は、C:¥Program Files¥IBM¥Rational¥DOORS¥9.version¥lib¥dxl¥addins¥services です。
  3. Rational DOORS クライアントを開いて、管理者としてログインします。
  4. DXL をインストールするには、「ファイル」 > 「OSLC」 > 「DXL サービス」をクリックします。
  5. 「OSLC DXL サービス」ウィンドウで「追加」をクリックします。
  6. 「OSLC DXL サービスの追加」ウィンドウで、以下の値を入力します。
    • 名前: helloWorld
    • 説明: Hello world in several languages
    • DXL: #include <addins/services/helloWorld.inc>
    • 関数名: getHelloString
    helloWorld という名前のサービスが作成されます。
    OSLCDXLService os = null
    string err = null
    
    string dxlCode = "#include <addins/services/helloWorld.inc>¥n"  
    err = addOrUpdateOSLCDXLService("helloWorld", "Hello world in several languages", dxlCode, "getHelloString")  
    if (!null err) 
    { 
    	print err 
    }  
    else  
    { 
    	print "Installed Service¥n" 
    }
  7. このサービスを呼び出します。 URI は、http://servername:portnumber/dwa/rm/dxl/helloWorld のようになります。
  8. accept および content-type の両ヘッダーを、application/rdf+xml と入力して設定します。
  9. 要求コンテンツが以下のコードのようになっていることを確認します。
    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
      <doors:Arguments>
      <doors:arguments>English</doors:arguments>
      </doors:Arguments>
    </rdf:RDF>
  10. 引数をサービスに渡すには、<doors:arguments> エレメントを使用します。 必須の引数を表す文字列をエレメント・テキストに入力します。 DXL サービスは、その文字列を、サービス DXL 関数で必要とされる引数に変換します。前の例では、English というパラメーターが 1 つ指定されているだけであり、このパラメーターは、getHelloString 関数に渡されます。DXL 関数で 2 つのパラメーターが予期されている場合には、要求は以下の例のようになります。
    <doors:Arguments>
    <doors:arguments>English,French</doors:arguments>
    </doors:Arguments>
    受信側の DXL サービスは、コンマ区切りのリストを EnglishFrench の別々の文字列に分割します。
  11. 文字列型以外の引数が使用されている場合には、DXL を使用してそれらの引数を適切な型に変換する必要があります。例えば、引数が整数の場合は、intOf 演算子を使用して、コンマ区切りのリストから抽出された文字列を int 型の値に変換することができます。その後、その値をメソッドに渡します。
    応答コンテンツは、以下のコードのようになっています。
    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
      <doors:DxlServiceResult rdf:about="http://my-desktop:8080/dwa/rm/dxl/helloWorld>
      <doors:result>Hello world</doors:result>
      </doors:DxlServiceResult>
    </rdf:RDF>

サービスではマーシャルは行われません。 引数を 1 つのストリングとして指定します。 DXL スクリプトは、そのストリングの値を解析して抽出してから、予期される個別のパラメーターに変換します。

Rational DOORS クライアントのインストール済み環境にはサンプル・ファイルが用意されています。 サンプル・ファイル hierarchy.dxl は、モジュール階層に関する情報を取得するための OSLC DXL サービスの使用方法を示します。

フィードバック