Implantando o BAC - AWS Modernização do mainframe

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implantando o BAC

O BAC está disponível como um único aplicativo web seguro, usando o formato de arquivamento web (.war). Ele deve ser implantado junto com o aplicativo BluAge Gapwalk, em um servidor de aplicativos Apache Tomcat, mas também pode ser implantado como um aplicativo independente. Ele BAC herda o acesso ao armazenamento Blusam da configuração do aplicativo Gapwalk, se presente.

O BAC tem seu próprio arquivo de configuração dedicado, chamadoapplication-bac.yml. Para obter detalhes de configuração, consulteBACarquivo de configuração dedicado.

O BAC está protegido. Para obter detalhes sobre a configuração de segurança, consulteConfigurando a segurança para o BAC.

BACarquivo de configuração dedicado

Implantação autônoma: Se o Gapwalk-Application BAC for implantado sozinho, a conexão com o armazenamento Blusam deverá ser configurada no arquivo de configuração application-bac.yml.

Os valores padrão para a configuração dos conjuntos de dados usados para procurar registros do conjunto de dados devem ser definidos no arquivo de configuração. Consulte Navegando registros de um conjunto de dados. A página de navegação de registros pode usar um mecanismo de máscara opcional que possibilita mostrar uma visualização estruturada do conteúdo de um registro. Algumas propriedades afetam a visualização dos registros quando as máscaras são usadas.

As propriedades configuráveis a seguir devem ser definidas no arquivo de configuração. O BAC aplicativo não assume nenhum valor padrão para essas propriedades.

Chave Tipo Descrição
bac.crud.limit inteiro Um valor inteiro positivo que fornece o número máximo de registros retornados ao navegar pelos registros. Usar 0 significa ilimitado. Valor recomendado: 10 (em seguida, ajuste o valor definido por conjunto de dados na página de navegação, de acordo com suas necessidades).
bac.crud.encoding string O nome padrão do conjunto de caracteres, usado para decodificar bytes de registros como conteúdo alfanumérico. O nome do conjunto de caracteres fornecido deve ser compatível com java (consulte a documentação do java para ver os conjuntos de caracteres compatíveis). Valor recomendado: o conjunto de caracteres legado usado na plataforma antiga de onde vêm os conjuntos de dados; essa será uma EBCDIC variante na maioria das vezes.
bac.crud.initCharacter string O caractere padrão (byte) usado para iniciar itens de dados. Dois valores especiais podem ser usados: "LOW-VALUE" o byte 0x00 (valor recomendado) e "HI-VALUE" o byte 0xFF. Usado quando as máscaras são aplicadas.
bac.crud.defaultCharacter string O caractere padrão (byte), como uma cadeia de caracteres de um caractere, usado para preencher registros (à direita). Valor recomendado: " " (espaço). Usado quando as máscaras são aplicadas.
bac.crud.blankCharacter string O caractere padrão (byte), como uma cadeia de caracteres de um caractere, usado para representar espaços em branco nos registros. Valor recomendado: (espaço). " " Usado quando as máscaras são aplicadas.
bac.crud.strictZoned boolean Um sinalizador para indicar qual modo zoneado é usado para o registro. Setrue, o modo de zona estrita será usado; sefalse, o modo zoneado modificado será usado. Valor recomendado:true. Usado quando as máscaras são aplicadas.
bac.crud.decimalSeparator string O caractere usado como separador decimal em campos numéricos editados (usado quando as máscaras são aplicadas).
bac.crud.currencySign string O caractere padrão, como uma cadeia de caracteres de um caractere, usado para representar moeda em campos numéricos editados, quando a formatação é aplicada (usado quando máscaras são aplicadas).
bac.crud.pictureCurrencySign string O caractere padrão, como uma sequência de um caractere, usado para representar moeda em imagens de campos numéricos editados (usado quando máscaras são aplicadas).

O exemplo a seguir é um trecho do arquivo de configuração.

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: "$"

Configurando a segurança para o BAC

A configuração da segurança do BAC depende dos mecanismos detalhados nesta página de documentação. O esquema de autenticação éOAuth2, e os detalhes de configuração do Amazon Cognito ou Keycloak são fornecidos.

Embora a configuração geral possa ser aplicada, alguns detalhes sobre a BAC necessidade devem ser detalhados aqui. O acesso aos BAC recursos é protegido usando uma política baseada em funções e depende das seguintes funções.

  • ROLE_USER:

    • Função básica do usuário

    • Não é permitida a importação, exportação, criação ou exclusão de conjuntos de dados

    • Sem controle sobre as políticas de armazenamento em cache

    • Nenhum recurso de administração é permitido

  • ROLE_ADMIN:

    • Herda ROLE _ USER permissões

    • Todas as operações de conjunto de dados permitidas

    • Administração de políticas de cache permitida

Instalando as máscaras

No armazenamento Blusam, os registros dos conjuntos de dados são armazenados em uma coluna de matriz de bytes no banco de dados, para considerações de versatilidade e desempenho. Ter acesso a uma visão estruturada, usando campos, dos registros comerciais, com base no ponto de vista da aplicação, é um recurso conveniente doBAC. Isso depende das SQL máscaras produzidas durante o processo de modernização BluAge impulsionado.

Para que as SQL máscaras sejam geradas, certifique-se de definir a opção relevante (export.SQL.masks) na configuração do Centro de BluInsights Transformação como verdadeira:

Property set configuration with export.sql.masks option set to true and boolean type.

As máscaras fazem parte dos artefatos de modernização que podem ser baixados BluInsights para um determinado projeto. São SQL scripts, organizados por programas modernizados, que dão o ponto de vista aplicativo sobre registros de conjuntos de dados.

Por exemplo, usando o aplicativo de AWS CardDemo amostra, você pode encontrar nos artefatos baixados do resultado da modernização desse aplicativo as seguintes SQL máscaras para o programa CBACT 04c.CBL:

List of SQL mask files for CBACT04C program, including account, discrep, and transaction records.

Cada nome de SQL máscara é a concatenação do nome do programa e do nome da estrutura de registro de um determinado conjunto de dados dentro do programa.

Por exemplo, examinando o programa [CBACT04c.CBL], a entrada de controle de arquivo fornecida:

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.

está associado à definição de registro FD fornecida

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

A SQL máscara correspondente nomeada cbact04c_fd_tran_cat_bal_record.SQL é a máscara que fornece o ponto de vista do programa CBACT 04C.CBL no registro FD nomeado. FD-TRAN-CAT-BAL-RECORD

Seu conteúdo é:

-- Generated by Blu Age 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));

As máscaras são armazenadas no armazenamento Blusam usando duas tabelas:

  • máscara: usada para identificar máscaras. As colunas da tabela de mapas são:

    • nome: usado para armazenar a identificação da máscara (usado como chave primária, portanto, deve ser exclusivo)

    • comprimento: tamanho em bytes da máscara de registro

  • mask_item: usado para armazenar detalhes da máscara. Cada campo elementar de uma definição de registro FD produzirá uma linha na tabela mask_item, com detalhes sobre como interpretar a parte do registro em questão. As colunas da tabela mask_item são:

    • nome: nome do campo de registro, com base no nome elementar, usando letras minúsculas e substituindo traço por sublinhado

    • c_offset: deslocamento baseado em 1 da subparte do registro, usado para o conteúdo do campo

    • comprimento: comprimento em bytes da subparte do registro, usado para o conteúdo do campo

    • skip: sinalizador para indicar se a parte do registro fornecida deve ser ignorada ou não, na apresentação da visualização

    • tipo: o tipo de campo (com base em sua cláusula de imagem antiga)

    • opções: opções de tipo adicionais -- dependentes do tipo

    • mask_fk: referência ao identificador da máscara ao qual anexar este item

Observe o seguinte:

  • SQLas máscaras representam um ponto de vista de um programa em registros de um conjunto de dados: vários programas podem ter um ponto de vista diferente sobre um determinado conjunto de dados; instale somente as máscaras que você achar relevantes para sua finalidade.

  • Uma SQL máscara também pode representar o ponto de vista de um programa com base em uma estrutura de dados 01 da WORKING STORAGE seção, não apenas em um registro FD. As SQL máscaras são organizadas em subpastas de acordo com sua natureza:

    • As máscaras baseadas em registros FD estarão localizadas na subpasta chamada file

    • 01 máscaras baseadas na estrutura de dados estarão localizadas na subpasta chamada working

    Embora as definições de registros FD sempre correspondam ao conteúdo do registro de um conjunto de dados, 01 estrutura de dados pode não estar alinhada ou representar apenas um subconjunto de um registro do conjunto de dados. Antes de usá-los, inspecione o código e entenda as possíveis falhas.