

AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) は、新規のお客様に公開されなくなりました。 AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) と同様の機能については、 AWS Mainframe Modernization Service (セルフマネージドエクスペリエンス) をご覧ください。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、[AWS 「 Mainframe Modernization の可用性の変更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# BAC のデプロイ
<a name="bac-deployment"></a>

BAC は、ウェブアーカイブ形式 (.war) を使用し、セキュアな単一のウェブアプリケーションとして使用されます。これは、Apache Tomcat アプリケーションサーバー内のメインフレーム Gapwalk-Application の AWS Transform と一緒にデプロイすることを目的としていますが、スタンドアロンアプリケーションとしてデプロイすることもできます。BAC は、存在する場合、Gapwalk-Application 設定からBlusamストレージへのアクセスを継承します。

BAC には、`application-bac.yml` という名前の BAC 専用設定ファイルがあります。詳細については、[BAC 専用設定ファイル](#ba-shared-bac-configuration-file) を参照してください。

BAC はセキュリティで保護されます。セキュリティ設定の詳細については、「[BAC のセキュリティ設定](#ba-shared-bac-securing)」を参照してください。

## BAC 専用設定ファイル
<a name="ba-shared-bac-configuration-file"></a>

スタンドアロンデプロイ: BAC が Gapwalk-Application のみにデプロイされる場合、Blusamストレージへの接続は application-bac.yml 設定ファイルで設定する必要があります。

データセットのレコードを参照するための各設定に対し、デフォルト値を設定ファイルに定義する必要があります。「[データセットからレコードを参照する](bac-usage.md#ba-shared-bac-read-dataset)」を参照してください。レコードを参照するページでオプションのマスクメカニズムを使用すると、レコードの内容を構造化されたビューで表示できます。プロパティによっては、マスク使用時のレコードの表示を変えるものもあります。

次のプロパティを設定ファイルに定義する必要があります。BAC アプリケーションでは、これらのプロパティに対するデフォルト値は想定されていません。


| Key | 型 | 説明 | 
| --- | --- | --- | 
| bac.crud.limit | integer | レコードを参照する際に返されるレコードの最大数を指定する正の整数値。0 を使用すると無制限になります。推奨値: 10 (参照ページでデータセットごとに、要件に合わせて値を調整します)。 | 
| bac.crud.encoding | string | レコードバイトを英数字コンテンツとしてデコードするためのデフォルトの文字セット名。文字セット名は java 互換である必要があります (サポートされる文字セットについては java ドキュメントを参照してください)。推奨値: レガシープラットフォーム (データセットの送信元) で使用される文字セット。ほとんどの場合は EBCDIC バリアントになります。 | 
| bac.crud.initCharacter | string | データ項目の初期化に使用するデフォルトの文字 (バイト)。指定できる値は "LOW-VALUE"、0x00 バイト (推奨値) と "HI-VALUE"、0xFF バイトの 2 つです。マスク適用時に使用します。 | 
| bac.crud.defaultCharacter | string | レコードのパディング (右側) に使用するデフォルトの文字 (バイト) を 1 文字の文字列として指定します。推奨値: " " (スペース)。マスク適用時に使用します。 | 
| bac.crud.blankCharacter | string | レコード内の空白を表すために使用するデフォルトの文字 (バイト) を 1 文字の文字列として指定します。推奨値: " " (スペース）。マスク適用時に使用します。 | 
| bac.crud.strictZoned | boolean | レコードに使用するゾーンモードを指定するフラグ。true の場合は Strict ゾーンモードが使用され、false の場合は Modified ゾーンモードが使用されます。推奨値: true。マスク適用時に使用します。 | 
| bac.crud.decimalSeparator | string | 数値編集フィールドで小数点として使用する文字 (マスク適用時に使用します)。 | 
| bac.crud.currencySign | string | 数値編集フィールドで書式設定を適用する場合に、通貨を表すために使用するデフォルト文字を 1 文字の文字列として指定します (マスク適用時に使用)。 | 
| bac.crud.pictureCurrencySign | string | 数値編集フィールドで通貨を表すために使用するデフォルト文字を 1 文字の文字列として指定します (マスク適用時に使用)。 | 

以下は、サンプルの設定ファイルです。

```
bac.crud.limit: 10
bac.crud.encoding: ascii
bac.crud.initCharacter: "LOW-VALUE"
bac.crud.defaultCharacter: " "
bac.crud.blankCharacter: " "
bac.crud.strictZoned: true
bac.crud.decimalSeparator: "."
bac.crud.currencySign: "$"
bac.crud.pictureCurrencySign: "$"
```

## BAC のセキュリティ設定
<a name="ba-shared-bac-securing"></a>

BAC のセキュリティ設定には、このドキュメントページで説明しているメカニズムの設定が使用されます。認証スキームは OAuth2 であり、Amazon Cognito または Keycloak から設定情報が提供されます。

汎用の設定が適用されますが、BAC のみに対して指定するものも存在するため、以降で説明します。BAC 機能へのアクセスは、ロールベースのポリシーを使用し、次のロールに基づいて保護されます。
+ ROLE\$1USER:
  + 基本的なユーザーロール
  + データセットのインポート、エクスポート、作成、削除が許可されない
  + キャッシュポリシーを制御できない
  + 管理機能を使用できない
+ ROLE\$1ADMIN:
  + ROLE\$1USER のアクセス許可を継承
  + すべてのデータセット操作が許可される
  + キャッシュポリシーの管理が許可される

## マスクのインストール
<a name="ba-shared-bac-masks"></a>

Blusam ストレージでは、データセットレコードはデータベースのバイト配列列に保存されるため、汎用性とパフォーマンスに関する考慮事項があります。BAC には、フィールドを使用してビジネスレコードを構造化し、アプリケーションの視点で表示できる便利な機能があります。これは、メインフレーム主導のモダナイゼーションプロセスのために AWS Transform 中に生成された SQL マスクに依存します。

SQL マスクを生成するには、メインフレームリファクタリング変換センターの AWS Transform の設定で関連するオプション (`export.SQL.masks`) を true に設定してください。

![\[Property set configuration with export.sql.masks option set to true and boolean type.\]](http://docs.aws.amazon.com/ja_jp/m2/latest/userguide/images/ba-bac-bluinsights-generate-masks-option.png)


マスクは、特定のプロジェクトのメインフレームリファクタリングのために AWS Transform からダウンロードできるモダナイゼーションアーティファクトの一部です。マスクはモダナイズされたプログラムにより編成される SQL スクリプトであり、データセットレコードを応用したアプリケーションの視点で表示できます。

例えば、[AWS CardDemo サンプルアプリケーション](https://github.com/aws-samples/aws-mainframe-modernization-carddemo/tree/main/app/cbl)を使用する場合は、このアプリケーションのモダナイゼーション結果からアーティファクトをダウンロードします。プログラム CBACT04C .cbl であれば次の SQL マスクがダウンロードされます:

![\[List of SQL mask files for CBACT04C program, including account, discrep, and transaction records.\]](http://docs.aws.amazon.com/ja_jp/m2/latest/userguide/images/ba-bac-sample-masks.png)


SQL マスクの名前はそれぞれ、プログラム名と、プログラムで指定したデータセットのレコード構造名を連結して作成されます。

例えば [[CBACT04C.cbl](https://github.com/aws-samples/aws-mainframe-modernization-carddemo/blob/main/app/cbl/CBACT04C.cbl) プログラムの場合、ファイルコントロールを次のように指定します:

```
    FILE-CONTROL.      
        SELECT TCATBAL-FILE ASSIGN TO TCATBALF   
               ORGANIZATION IS INDEXED
               ACCESS MODE  IS SEQUENTIAL
               RECORD KEY   IS FD-TRAN-CAT-KEY
               FILE STATUS  IS TCATBALF-STATUS.
```

これを、FD レコード定義を指定して関連付けると

```
       FILE SECTION. 
       FD  TCATBAL-FILE.  
       01  FD-TRAN-CAT-BAL-RECORD.  
           05 FD-TRAN-CAT-KEY.  
              10 FD-TRANCAT-ACCT-ID             PIC 9(11).  
              10 FD-TRANCAT-TYPE-CD             PIC X(02).
              10 FD-TRANCAT-CD                  PIC 9(04).  
           05 FD-FD-TRAN-CAT-DATA               PIC X(33).
```

`cbact04c_fd_tran_cat_bal_record.SQL` という名前の SQL マスクが生成され、名前が `FD-TRAN-CAT-BAL-RECORD` である FD レコードに対する CBACT04C.cbl プログラムの視点が付与されます。

その内容は次のとおりです:

```
-- Generated by AWS Transform for mainframe Velocity
-- Mask : cbact04c_fd_tran_cat_bal_record

INSERT INTO mask (name, length) VALUES ('cbact04c_fd_tran_cat_bal_record', 50);
  INSERT INTO mask_item (name, c_offset, length, skip, type, options, mask_fk) VALUES ('fd_trancat_acct_id', 1, 11, false, 'zoned', 'integerSize=11!fractionalSize=0!signed=false', (SELECT MAX(id) FROM mask));
  INSERT INTO mask_item (name, c_offset, length, skip, type, options, mask_fk) VALUES ('fd_trancat_type_cd', 12, 2, false, 'alphanumeric', 'length=2', (SELECT MAX(id) FROM mask));
  INSERT INTO mask_item (name, c_offset, length, skip, type, options, mask_fk) VALUES ('fd_trancat_cd', 14, 4, false, 'zoned', 'integerSize=4!fractionalSize=0!signed=false', (SELECT MAX(id) FROM mask));
  INSERT INTO mask_item (name, c_offset, length, skip, type, options, mask_fk) VALUES ('fd_fd_tran_cat_data', 18, 33, false, 'alphanumeric', 'length=33', (SELECT MAX(id) FROM mask));
```

マスクは、次の 2 つのテーブルを使用してBlusamストレージに保存されます。
+ mask: マスクを識別します。mas テーブルには次の列があります: 
  + name: マスク ID を格納します (プライマリキーとして使用されるため一意になります)
  + length: レコードマスクのサイズ (バイト単位)
+ mask\$1item: マスクの情報を格納します。FD レコード定義のすべての基本フィールドから mask\$1item テーブルに行が生成され、各レコード部分の解釈の方法について情報が入力されます。mask\$1item テーブルには次の列があります: 
  + name: 基本名に基づくレコードフィールドの名前。小文字を使用し、ダッシュはアンダースコアに置き換えられます
  + c\$1offset: フィールドコンテンツに使用されるレコードサブ部分の 1 ベースのオフセット
  + length: フィールドコンテンツに使用されるレコードサブ部分のバイト単位の長さ
  + skip: ビュープレゼンテーションで特定のレコード部分をスキップするかどうかを示すフラグ
  + type: フィールドの種類 (レガシーの picture 句がベースになります)
  + options: 追加のタイプオプション -- 型に依存します
  + mask\$1fk: この項目のアタッチ先であるマスク識別子への参照

次の点に注意してください:
+ SQL マスクは、データセットのレコードに対するプログラムの視点を表現します。多くのプログラムで、この視点がデータセットごとに変わる場合があるため、目的に合わせてマスクを選び、インストールする必要があります。
+ SQL マスクは、FD レコードだけでなく、WORKING STORAGE セクションの 01 データ構造に基づいて、プログラムの視点を表現することもできます。SQL マスクは、その特質に応じて異なるサブフォルダに編成されます:
  + FD レコードベースのマスクは、`file` という名前のサブフォルダに配置されます
  + 01 データ構造ベースのマスクは、`working` という名前のサブフォルダに配置されます 

  FD レコード定義は常にデータセットのレコード内容と一致しますが、01 データ構造の場合は一致しないことも、またはデータセットレコードのサブセットのみを表すこともあります。そのため、コードを精査し、欠点があればそれを理解してから使用する必要があります。