ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Enterprise Repository統合ガイド
11g リリース1 (11.1.1.7)
B72433-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 コード・コンプライアンス・インスペクタとの統合

この章では、概要について説明し、Oracle Enterprise Repository (OER)でコード・コンプライアンス・インスペクタ(CCI)を使用する方法について解説します。

この章では、次の項目について説明します。

5.1 概要

オープンな標準を遵守し、正しいコーディングを実行することは、SOAガバナンスの重要な原則です。コード・コンプライアンス・インスペクタは、両方のSOAスイート・プロジェクトで正しいコーディングが行われているかどうかをチェックするツールです。

CCIは、設計の一貫性、正しいコーディングとドキュメントをチェックするためのWeb Services Interoperability Organization Basic Profile (WS-I BP)に基づく事前定義済のアサーションのセットとともに提供されます。CCIでは、コードを、オープンな標準とベスト・プラクティスに対して、準拠性、一貫性、または完全な一貫性があると評価します。

結果はコード・コンプライアンス・レポートに表示されます。これには、コンプライアンスのレベルや合格と不合格の割合が示され、優先度とポリシーで結果をグループ分けするグラフィカルな棒グラフが表示されます。結果には、上位10の違反コンポジットも記載されます。SOAスイート・プロジェクトの全体のコンプライアンス・スコアは、レポートのヘッダー部分に表示されます。

コード・コンプライアンス・インスペクタは、Oracle Application Integration Architecture (AIA)統合プロジェクトで正しいコーディングが行われているかどうかをチェックするためにも使用できます。WS-I BPに基づくアサーションの他に、コード・コンプライアンス・インスペクタには、設計の一貫性とコーディングをチェックするためのAIA統合開発者のガイドラインに基づくアサーションも用意されています。CCIコンプライアンス結果およびレポートは、AIAコンポジットに対してもサポートされます。

コンポジットを開発し、コンプライアンスを確認するためのJDeveloper CCI拡張機能の使用の詳細は、Oracle Fusion Middlewareインフラストラクチャ・コンポーネントとユーティリティ・ユーザーズ・ガイドfor Oracle Application Integration Architecture Foundation Packのコード・コンプライアンス・インスペクタの使用に関する項を参照してください。

図5-1に、全体のコード・コンプライアンス・レポートの例を示します。このレポートは、OERの「レポート」ページを介してリンクされています。コンポジットをクリックすると、コンポジットの詳細を表示できます。OERの「アセット詳細」ページを使用すると、各コンポジットを個別に表示することもできます。さらに、レポート・ファイルをサーバーにポストし、同僚とコンプライアンスの結果を共有できます。

図5-1 全体のコード・コンプライアンス・レポート

この図については本文で説明しています。

5.1.1 CCIレポートを生成してOERに発行するための手順の概要

この項では、OERで収集済コンポジットに関連付けてOERユーザーに表示するために発行する準備が整ったCCIレポートを収集する手順について概説します。

OER用のCCIには、ビルド管理者がOERで発行可能なレポートを生成するために使用する、2つのコマンドライン・ユーティリティがあります。

  1. checkComplianceコマンドは、HTMLコンプライアンス・レポート・ファイルを作成します。

  2. cci-oerSynchコマンドは結果をリポジトリに同期し、ユーザーがOERコンソールからレポートにアクセスできるようにします。

次に手順の概要を示します

  1. OERアーティファクト・ストアを構成します。

    詳細は、5.2.1項「CCIレポート用のOERアーティファクト・ストアの構成」を参照してください。

  2. ご使用のビルド環境内で、cci-oerSynch.propertiesファイルを構成します。

    詳細は、5.2.2項「cci-oerSynch.propertiesファイルの構成」を参照してください。

  3. ご使用のビルド環境から、コマンドライン・コンプライアンス・スクリプトを実行してプロジェクトからCCIレポートを生成し、OERで発行できるようにします。コマンドライン・ツールを実行して、OERとの同期を可能にする必要があります。

    詳細は、5.2.3項「checkComplianceコマンドの実行」を参照してください。

  4. レポートの生成元のSOAまたはAIAプロジェクトが、OERに収集されていることを確認してください。

    収集の詳細は、Oracle Fusion Middleware Oracle Enterprise Repository構成ガイドの設計時環境およびランタイム環境での自動収集の構成と使用に関する項を参照してください。

  5. コンプライアンス・チェック・コマンドによって生成されたCCIレポートを含むビルド環境で、CCIとOERの同期コマンドを実行します。

    詳細は、5.2.5項「CCIとOERの同期コマンドの実行」を参照してください。

  6. 新たに生成されたCCIレポート・フォルダを、OERアーティファクト・ストアに関連付けられている物理的な場所にコピーします。この場所が元のレポート・フォルダと同じシステム上でホストされている場合、この処理はCCIとOERの同期によって自動化されます。それ以外の場合、これは手動による手順です。

    詳細は、5.2.6項「ファイルのコピー」を参照してください。

  7. OERのインストール中に、OERレポート・メニューからCCIレポートにアクセスできるようにコンプライアンス・レポートのプロパティ・ファイルを構成します。

    詳細は、5.3項「OERレポート・メニューからアクセスするようにレポートを構成」を参照してください。

5.2 コンプライアンスのチェックおよびOERのレポート・データの同期

CCIコマンドライン・ツールは、OERの<OER Oracle Home>/tools/solutions/<version>のComplianceInspector.zip内に配布されています。

zipファイルのコンテンツが、ビルド環境が存在するマシンにインストールされていることを確認します。

設定手順は、次のとおりです。

  1. コンプライアンス・インスペクタのzipファイルを一時フォルダにコピーします。

  2. コンプライアンス・インスペクタのzipファイルを解凍します。

  3. ComplianceInspector/config/cci-oerSynch.propertiesにあるコンプライアンス・インスペクタのcci-oerSynch.propertiesファイルを構成します。

    プロパティ・ファイルによって、環境の静的な情報を設定できます。


注意:

このファイルを解凍すると、常に、プロパティ・ファイルはComplianceInspectorディレクトリに対して相対的な位置にあり、configの下に置かれています。このディレクトリの名前を変更できます。この場所をComplianceInspector_Homeと呼びます。


5.2.1 CCIレポート用のOERアーティファクト・ストアの構成

  1. OER内で、適切なタイプ(HTTPなど)のアーティファクト・ストアを作成および構成します。

    アーティファクト・ストアの使用の詳細は、第1章「アーティファクト・ストアの構成」を参照してください。

  2. アーティファクト・ストアに目的に合った名前を付けます(CCI-Reports-Production)。

5.2.2 cci-oerSynch.propertiesファイルの構成

このコマンドは、指定したSOAまたはAIAプロジェクト・フォルダでコード・コンプライアンス・インスペクタを実行し、CCIレポートを含む新しいフォルダを作成します。

また、checkComplianceコマンドはcci-oerSynch.propertiesファイルを使用してOERインスタンスのURLを取得し、コンポジットのアセット・タイプIDと接続する際に使用するユーザー名の両方を検索します。

cci-oerSynch.propertiesファイル内のcompliance.report.web.rootプロパティの一部として、rep://<ARTIFACTSTORE-NAME>を使用します。

例: compliance.report.web.root=rep://CCI-Reports-Production/reports

レポートには次のURLパターンが含まれます。

rep://CCI-Reports-Production/reports/cci/AIADemo/reports/composites/AIADemoBatchJMSAdapter.html#hide_link

2番目のプロパティであるcompliance.report.web.rootは、コンプライアンス・レポートHTMLファイルを含むホストのベースURIを表します。このプロパティで指定されている値は、CCIとOERの同期ツールの実行時にinputDirパラメータと連結されます。連結されたこの値は、コンプライアンス・レポート・リンクのためにアセットのメタデータに埋め込まれる値です。

ほとんどの場合、compliance.report.web.rootプロパティの値は、5.2.1項で構成されたアーティファクト・ストアを指しています。

次に例を示します。

<a target="_blank" href="rep://CCI-REPORTS">rep://CCI-REPORTS</a>

5.2.3 checkComplianceコマンドの実行

次のスイッチを使用して、LinuxではcheckCompliance.shコマンドで、WindowsではcheckCompliance.batコマンドでCCIを起動します。

  • -inputDir {コンポジットが含まれるフォルダの絶対パス}

    これは、入力ディレクトリが存在する場所を指定する必須のスイッチです。-inputMetaFileスイッチを指定しない場合、これは必ずしもSOAスイート・プロジェクトを表しません。-inputMetaFileスイッチを指定すると、プロジェクトのルート・ディレクトリ(ComplianceInspector_Homeのプロジェクト・フォルダが含まれるソース・フォルダ)が指定されます。

  • -outputDir {コンプライアンス・レポートが生成される出力フォルダ}

    これは、出力レポートが格納される場所を指定するための必須のスイッチです。次に例を示します。

    コンポジットが/tmp/cci/composites/AIADemoにある場合

    および出力ディレクトリを/tmpとして渡す場合

    CCIでは、生成したファイルは/tmp/AIADemoに置かれます。

  • -policiesFile {ポリシー・ファイル名}

    このオプションのスイッチを使用して、CCIが実行されるポリシー・ファイルを指定します。たとえば、Policies-WS-I_11.x.xmlなどです。ファイルは、ComplianceInspector/libまたはComplianceInspector/config (ツール・クラス・パス)の下にあるか、compliance.policy.engine.jarに組み込まれています。

  • -policy {ポリシー名}

    これは、実行するポリシーを指定するためのオプションのスイッチです。指定しない場合、Policies.xmlのデフォルト・ポリシーが実行されます。

  • -assertion {アサーション名}

    このオプションのスイッチを使用して、CCIが実行されるアサーションを指定します。これは、定義済の特定のアサーション用のツールを実行します。たとえば、ABCSTargetNameSpacesCheckなどです。

  • -inputMetaFile {SOAスイート・プロジェクトのメタファイルの絶対パス}

    特定のSOAスイート・プロジェクトに対してレポートを実行する場合に、このオプションのスイッチを使用します。入力メタファイルには、出力結果がSOAスイート・プロジェクト固有になるように、コード・コンプライアンス・インスペクタがスキャンする必要がある、特定のディレクトリを指すパスが含まれています。このファイルには、指定されたSOAスイート・プロジェクトで使用されるすべてのサービスの名前が含まれています。このオプションを指定すると、入力メタファイルにこのルートに対する相対ディレクトリ・パスが含まれるので、-inputDirスイッチはプロジェクトのルート・ディレクトリを指します。次に、いくつかの例を示します。

    -inputMetaFile <ファイルのディレクトリ・パス>/GenerateScriptInput.xml

    -inputMetaFile <ファイルのディレクトリ・パス>/MyPIPDP.xml

  • -inputMetaFile ALL

    すべてのSOAスイート・プロジェクトに対してレポートを実行する場合に、このオプションのスイッチを使用します。このオプションを指定すると、入力メタファイルにこのルートに対する相対ディレクトリ・パスが含まれるので、-inputDirスイッチはプロジェクトのルート・ディレクトリを指します。

  • -version

    -versionフラグでは、使用しているCCI(CCIビルドの日時)のバージョン。これは、バージョン情報を示すオプションの引数です。

次に、コマンドラインからコード・コンプライアンス・インスペクタを起動する例を示します。

  • Windows: checkCompliance.bat -inputDir D:\composites\demo -outputDir D:\ComplianceOut

  • Linux: checkCompliance.sh -inputDir /composites/demo -outputDir /ComplianceOut

5.2.4 SOAまたはAIAプロジェクトのOERへの収集

収集の詳細は、Oracle Fusion Middleware Oracle Enterprise Repository構成ガイドの設計時環境およびランタイム環境での自動収集の構成と使用に関する項を参照してください。

5.2.5 CCIとOERの同期コマンドの実行

CCIとOERの同期により、OER内のコンポジット・アセットが関連付けられているCCIレポートへのリンクで更新されます。CCIとOERの同期コマンドを実行する前に、OERアーティファクト・ストアを構成しておくか、OERがレポートを発行する場所を決定しておく必要があります。

OERがレポートを発行するシステム上でCCIとOERの同期コマンドを実行する場合、oer.app.report.location propertyを使用してcci-oerSynch.propertiesファイル内にフォルダの場所を指定でき、コマンドにより入力フォルダから指定した場所にレポートが自動的に移動されます。

OERレポートの宛先の場所が異なるシステムにある場合、-reportLocation引数で指定されたフォルダをOERレポートの場所に手動で移動し、この場所のパス名がcompliance.report.web.rootプロパティで指定されたものと一致することを確認する必要があります。

例:

アーティファクト・ストアの場合:

compliance.report.web.root=rep\://INSTANCE/reports

ダイレクトHTTPリソースの場合:

compliance.report.web.root=http://www.example.com/CCI-REPORTS-Production

CCIとOERの同期の実行

  1. OERをインストールしたマシンの詳細情報で、ComplianceInspector/configディレクトリに存在するcci-oerSynch.propertiesファイルを更新します。

  2. ComplianceInspector/binディレクトリに存在する、cci-oerSynch.batまたはcci-oerSynch.shを実行します。表5-1に、渡すことができるコマンドラインの引数のリストを示します。

表5-1 OER同期のコマンドライン引数

引数 タイプ 説明

-url <OERのWebサービスのURL>

オプション

OERのWebサービスのURL。

次に例を示します。

http://example.com:port/oer/services

-user <OERのユーザー名>

オプション

有効なOERのユーザー・ログイン。このユーザーは、アセットのインスタンスを更新する権限を持っている必要があります。

-pwd <指定したユーザー名のパスワード>

オプション

OERのユーザー・ログインのパスワード。

-reportLocation <CCIで生成された出力ディレクトリのパス>

必須

CCI HTMLコンプライアンス・レポートの場所。OERに統合するコンプライアンス・インスペクタ・ツールによって作成されます。



注意:

コマンドラインのオプションの引数を指定しない場合、値はcci-oerSynch.propertiesファイルから取得されます。コマンドラインの引数は、cci-oerSynch.propertiesファイルで指定したプロパティよりも優先されます。また、コマンドラインの引数でパスワードを指定しない場合、入力するように要求されます。


5.2.6 ファイルのコピー

  1. 新たに生成されたCCIレポート・フォルダを、OERアーティファクト・ストアに関連付けられている物理的な場所にコピーします。

    この場所が元のレポート・フォルダと同じシステム上でホストされている場合、この処理はCCIとOERの同期によって自動化されます。それ以外の場合、これは手動による手順です。

  2. うまくいったかどうかを確認するために、リンクがOER内のコンポジット・アセットで作成されたことをチェックします。

5.3 OERレポート・メニューからアクセスするようにレポートを構成

CCIとOERの同期によってCCIレポートがOER内のコンポジット・アセットにリンクされると、レポートへのリンクがコンポジット詳細ページに表示されます。次の構成手順の実行後は、OERレポート・メニューからCCIレポートにアクセスできます。


注意:

ComplianceReport.xmlファイルのレポート要素の名前属性は、$OER_APP_HOME/oer-app/WEB-INF/config/reports/custom.tocファイル内で参照されます。これらの要素が一致しない場合、displayNameの値と説明要素はOERレポート・ページに表示されません。

$OER_APP_HOME/oer-app/WEB-INF/config/reports/custom.tocファイルでは、統合したOER外部のレポート・システムにURLパターンを追加できます。custom.tocファイルは、'カスタム'のレポート・グループ化情報を収集するためにアクセスしたその他のXMLファイルを示し、custom.tocファイルで参照している対応する情報を表示します。


コンプライアンス・レポートを追加および構成する手順

  1. アプリケーション・サーバーを停止します。

  2. $OER_APP_HOME/oer-app/WEB-INF/config/reports/ComplianceReport.xmlファイルを編集します。

    次に、すぐに使用できるComplianceReport.xmlの例を示します。

    <?xml version="1.0" ?>
    <reports>
        <report name="complianceReportDoc">
            <displayName>Compliance Report Documentation</displayName>
            <description>Documentation for setting up Compliance Reports.
            </description>
    <externalLink>http://www.example.com/pls/topic/lookup?ctx=as111170&
    id=OERIN851</externalLink>
        </report>
        <report name="complianceReport">
            <displayName>Compliance Report</displayName>
            <description>This is the index page for all technical compliance
    reports.</description>
            <!-- update the host and port, according the your http enabled server
    where you have hosted the compliance reports. Use the OER download servlet to
    map the OER artifact store URL for browser consumption. Example:
    <externalLink>http://server.example.com:7101/oer/com.flashline.cmee.
    servlet.enterprisetab.Download?path=rep://INSTANCE/reports/cci/FPDemo/
    index.html</externalLink> -->
      <externalLink>http://host.example.com/CCI/reports/index.html</externalLink>
        </report>
    </reports>
    
    
  3. 要約されているSOAスイート・プロジェクトが1つしかない場合、complianceReportという名前の既存のレポートを変更して、手順9に進みます。

    • OERアーティファクト・ストアを使用してレポートの場所を参照している場合(これをお薦めします)、次のURLパターンをCustomReport.xmlファイルのexternalLink要素の一部として使用する必要があります。

      http://host.example.com:port/oer/com.flashline.cmee.servlet.enterprisetab.Download?path=rep://<ARTIFACTSTORENAME>/relative_path/index.html

      アーティファクト・ストアが示す正しいURLをユーザーに提供するために、URLをデコードして再フォーマットするダウンロード・サーブレットが必要です。OERアーティファクト・ストアを使用すると、OER管理者は、複数のアセットの再同期または変更によってこれらの詳細情報を更新しないで、レポート・サーバーのホスト名/ポートおよびパスを変更できます。

  4. 2つ以上のSOAスイート・プロジェクトが要約される場合、チェック・コンプライアンス・ツールで報告されるプロジェクト数分、レポート・セクションを複製します。

  5. 各レポート要素の名前属性を意味のある名前(一意にする必要があります)に更新します。

  6. SOAスイート・プロジェクトの要約ページに適切なdisplayName、説明および外部リンク要素を更新し、編集内容を保存します。

  7. $OER_APP_HOME/oer-app/WEB-INF/config/reports/custom.tocファイルを編集します。

    例:

    <?xml version="1.0" ?>
    <reportSections>
            <reportSection name="Custom">
                    <summary></summary>
                    <description>Custom reports provide you with the flexibility
    to customize reports for your organization or build new reports that align
    your organizational metrics with your program goals.</description>
            </reportSection>
            <reportSection name="Compliance Reports">
                    <summary></summary>
                    <description>Code Compliance Inspector report for design-time
    compliance information</description>
                    <report name="complianceReportDoc"/>
                    <report name="complianceReport"/>
        </reportSection>
    </reportSections>
    
    
  8. CustomReport.xmlファイルに追加または変更したものと一致するように、レポート名要素を変更します。

  9. 図5-2に示すとおり、変更内容が反映されるようにOERアプリケーション・サーバーを再起動します。

図5-2 OERコンプライアンス・レポートのリンク

OERコンプライアンス・レポート

次に、ComplianceReport.xmlファイルの例を示します。ここでは、OERアーティファクト・ストアを使用して、コンプライアンス・レポートの要約ページに移動します。

<?xml version="1.0" ?>
<reports>
    <report name="complianceReport_project1">
        <displayName>Compliance Report (Project 1)</displayName>
        <description>This is the compliance report summary page for Composite
Project 1.</description>
        <!-- update the host and port, according the your http enabled server
where you have hosted the compliance reports -->
        <externalLink>http://host.example.com/CCI/reports/project1/index.html
</externalLink>
    </report>
    <report name="complianceReport_project2">
        <displayName>Compliance Report (Project 2)</displayName>
        <description>This is the compliance report summary page for Composite
Project 2.</description>
        <!-- update the host and port, according the your http enabled server
where you have hosted the compliance reports -->
        <externalLink>http://usclqaap04.us.example.com:8080/tr130107/com.flashline.cmee
.servlet.enterprisetab.Download?path=rep://INSTANCE/reports/cci/FPDemo/
index.html</externalLink>
    </report>
</reports>

この場所の実際のURLパスは、次のとおりです。

http://usclqaap04.example.com:8080/tr130107/reports/cci/FPDemo/index.html

前述のURLの斜体部分はレポート・ファイルの相対パスです。リポジトリ名の後ろが相対パスです。

5.3.1 レポートの確認

OERでは、図5-3に示すように、コンプライアンス・レポートのリンクをクリックして、図5-4に示す、すべてのコンポジットの全体のレポートを表示します。

図5-3 コンプライアンス・レポートのリンク

この図については本文で説明しています。

図5-4 全体のコード・コンプライアンス・レポート

この図については本文で説明しています。

図5-4に示すように、違反しているコンポジットをクリックして、違反の詳細を表示し、コンプライアンスの問題を修正します。

図5-5に示すように、OERで個々のコンポジットのコンプライアンス情報を表示することもできます。

図5-5 テクニカル・コンプライアンス・レポート

図5-5については周囲のテキストで説明しています。

「コンプライアンス・レポート」ボックスの「開く」リンクをクリックして、図5-6に示すような詳細な結果を表示します。

図5-6 コンポジットのコンプライアンス・レポート

この図については本文で説明しています。