プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Enterprise Repository管理者ガイド
12c リリース 1 (12.1.3)
E59479-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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

15.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コンポジットに対してもサポートされています。

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

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

図15-1の説明が続きます
「図15-1 全体のコード・コンプライアンス・レポート」の説明

15.1.1 CCIレポートの生成およびOERへの公開の手順の概要

この項では、OERで収集されたコンポジットと関連付け、OERユーザーによる表示用に公開する準備ができたCCIレポートを収集するために必要な手順の概要を説明します。

OERのCCIは、OERで公開できるレポートを生成するためにビルド管理者が使用する2つのコマンド行ユーティリティで構成されます。

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

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

概要手順

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

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

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

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

  3. ビルド環境から、コマンド行コンプライアンス・スクリプトを実行してプロジェクトのCCIレポートを生成し、OER公開用にレポートを準備します。コマンド行ツールを実行してOERとの同期を有効にする必要があります。

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

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

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

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

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

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

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

    アーティファクト・ストアの詳細は、9.3.3項「新しいアーティファクト・ストアの選択」を参照してください。

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

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

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

CCIコマンド行ツールは、OERの<OER_Home>/modules/tools/solutions/12.1.3.0.0のComplianceInspector.zip内に配布されています。

zipファイルの内容は、ビルド環境が存在するマシンにインストールされます。

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

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

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

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

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


注意:

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

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

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

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

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

15.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プロパティの値は、15.2.1項で構成されたアーティファクト・ストアを指します。

次に例を示します。

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

15.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

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

収集の詳細は、第8章「自動収集の構成および使用」を参照してください。

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

CCIとOERの同期では、OERのコンポジット・アセットが、関連付けられたCCIレポートへのリンクで更新されます。CCIとOERの同期コマンドを実行する前に、OERアーティファクト・ストアを構成しておくか、そうでない場合はOERによるレポートの公開元の場所を決定しておきます。

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

宛先の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を実行します。表15-1に、渡すことができるコマンド行の引数のリストを示します。

表15-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ファイルで指定したプロパティよりも優先されます。また、コマンド行の引数でパスワードを指定しない場合、入力するように要求されます。

15.2.6 ファイルのコピー

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

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

  2. これが実行されたことを確認するには、OERのコンポジット・アセットでリンクが作成されたことを確認します。

15.3 OERの「レポート」メニューからのアクセスに関するレポートの構成

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


注意:

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

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


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

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

  2. <OER_Home>/applications/oer/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>
        </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_Home>/applications/oer/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. 図15-2に示すとおり、変更内容が反映されるようにOERアプリケーション・サーバーを再起動します。

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

図15-2の説明が続きます
「図15-2 OERコンプライアンス・レポートのリンク」の説明

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

<?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://example.com:8080/tr130107/com.flashline.cmee
.servlet.enterprisetab.Download?path=rep://INSTANCE/reports/cci/FPDemo/
index.html</externalLink>
    </report>
</reports>

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

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

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

15.3.1 レポートの確認

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

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

図15-3の説明が続きます
「図15-3 コンプライアンス・レポートのリンク」の説明

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

図15-4の説明が続きます
「図15-4 全体のコード・コンプライアンス・レポート」の説明

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

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

図15-5 技術的なコンプライアンス・レポート

図15-5の説明が続きます
「図15-5 技術的なコンプライアンス・レポート」の説明

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

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

図15-6の説明が続きます
「図15-6 コンポジットのコンプライアンス・レポート」の説明