

AWS Mainframe Modernization Service （受管執行期環境體驗） 不再開放給新客戶使用。對於與 AWS Mainframe Modernization Service （受管執行期環境體驗） 類似的功能，探索 AWS Mainframe Modernization Service （自我管理體驗）。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[AWS 大型主機現代化可用性變更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 部署 BAC
<a name="bac-deployment"></a>

BAC 以安全單一 Web 應用程式的形式提供，使用 Web 封存格式 (.war)。它旨在與大型主機 Gapwalk-Application 的 AWS 轉換一起部署在 Apache Tomcat 應用程式伺服器中，但也可以部署為獨立應用程式。如果存在，BAC 會從 Gapwalk-Application 組態繼承對Blusam儲存體的存取權。

BAC 有自己的專用組態檔案，名為 `application-bac.yml`。如需組態詳細資訊，請參閱 [BAC 專用組態檔案](#ba-shared-bac-configuration-file)。

BAC 是安全的。如需安全組態的詳細資訊，請參閱 [設定 BAC 的安全性](#ba-shared-bac-securing)。

## BAC 專用組態檔案
<a name="ba-shared-bac-configuration-file"></a>

獨立部署：如果 BAC 單獨部署為 Gapwalk-Application，則必須在 application-bac.yml 組態檔案中設定與Blusam儲存體的連線。

用於瀏覽資料集記錄的資料集組態預設值必須在組態檔案中設定。請參閱 [從資料集瀏覽記錄](bac-usage.md#ba-shared-bac-read-dataset)。記錄瀏覽頁面可以使用選用的遮罩機制，讓您可以在記錄的內容上顯示結構化檢視。使用遮罩時，某些屬性會影響記錄檢視。

下列可設定屬性必須在組態檔案中設定。BAC 應用程式不會擔任這些屬性的任何預設值。


| 金錀 | Type | 說明 | 
| --- | --- | --- | 
| bac.crud.limit | integer | 正整數值，提供瀏覽記錄時傳回的記錄數目上限。使用 0表示無限制。建議值：10（然後調整瀏覽頁面上資料集的值資料集，以符合您的需求）。 | 
| bac.crud.encoding | string | 預設字元集名稱，用於將記錄位元組解碼為英數字元內容。提供的字元集名稱必須與 Java 相容 （請參閱 Java 文件以取得支援的字元集）。建議值：用於資料集來自舊版平台上的舊版字元集；這在大多數情況下都是 EBCDIC 變體。 | 
| bac.crud.initCharacter | string | 用來初始化資料項目的預設字元 （位元組）。可使用兩個特殊值："LOW-VALUE"、0x00 位元組 （建議值） 和 "HI-VALUE"、0xFF 位元組。套用遮罩時使用。 | 
| bac.crud.defaultCharacter | string | 預設字元 （位元組），做為一個字元字串，用於填補記錄 （右側）。建議值： " " （空格）。套用遮罩時使用。 | 
| bac.crud.blankCharacter | string | 預設字元 （位元組） 做為一個字元字串，用於表示記錄中的空白。建議值：" "（空格）。套用遮罩時使用。 | 
| bac.crud.strictZoned | boolean | 指出用於記錄的分區模式的旗標。如果 true，則會使用嚴格區域模式；如果 false，則會使用修改的區域模式。建議值：true。套用遮罩時使用。 | 
| bac.crud.decimalSeparator | string | 在數值編輯欄位中用作小數分隔符號的字元 （套用遮罩時使用）。 | 
| bac.crud.currencySign | string | 套用格式時 （套用遮罩時使用），預設字元做為一個字元字串，用於表示數字編輯欄位中的貨幣。 | 
| bac.crud.pictureCurrencySign | string | 預設字元做為一個字元字串，用來代表數字編輯欄位圖片中的貨幣 （套用遮罩時使用）。 | 

下列範例是組態檔案程式碼片段。

```
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 轉換期間針對大型主機驅動的現代化程序所產生的 SQL 遮罩。

對於要產生的 SQL 遮罩，請務必在適用於大型主機重構轉換中心的 AWS 轉換組態中將相關選項 (`export.SQL.masks`) 設定為 true：

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


遮罩是現代化成品的一部分，可以從 AWS 轉換下載，用於特定專案的大型主機重構。它們是由現代化程式整理的 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/zh_tw/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).
```

名為 的相符 SQL 遮罩`cbact04c_fd_tran_cat_bal_record.SQL`是遮罩，可在名為 的 FD 記錄上提供程式 CBACT04C.cbl 的觀點`FD-TRAN-CAT-BAL-RECORD`。

其內容為：

```
-- 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));
```

遮罩會使用兩個資料表存放在Blusam儲存體中：
+ 遮罩：用於識別遮罩。質量資料表的資料欄為：
  + 名稱：用於存放遮罩識別 （用作主索引鍵，因此必須是唯一的）
  + 長度：記錄遮罩的大小，以位元組為單位
+ mask\$1item：用於存放遮罩詳細資訊。FD 記錄定義中的每個基本欄位都會在 mask\$1item 資料表中產生一列，其中包含如何解譯指定記錄部分的詳細資訊。mask\$1item 資料表的資料欄為：
  + name：記錄欄位的名稱，根據基本名稱，使用小寫並以底線取代破折號
  + c\$1offset：記錄子部分以 1 為基礎的偏移，用於欄位內容
  + length：記錄子部分的位元組長度，用於欄位內容
  + 略過：標記，指出是否應在檢視簡報中略過指定的記錄部分
  + 類型：欄位類型 （根據其舊版圖片子句）
  + 選項：其他類型選項 -- type-dependant
  + mask\$1fk：參考要將此項目附加至 的遮罩識別符

注意下列事項：
+ SQL 遮罩代表程式對資料集記錄的觀點：數個程式在指定資料集上可能會有不同的觀點；僅安裝您認為與您目的相關的遮罩。
+ SQL 遮罩也可以根據 WORKING STORAGE 區段中的 01 資料結構來表示程式的觀點，而不只是從 FD 記錄。SQL 遮罩會根據其性質組織成子資料夾：
  + FD 記錄型遮罩將位於名為 的子資料夾中 `file`
  + 01 資料結構型遮罩將位於名為 的子資料夾中 `working` 

  雖然 FD 記錄定義一律符合資料集的記錄內容，但 01 資料結構可能不會對齊，或可能僅代表資料集記錄中的子集。使用它們之前，請檢查程式碼並了解可能的缺點。