O blog da AWS

Habilitando a criação e implantação automatizada de código do mainframe para Instituições Financeiras utilizando os serviços AWS e soluções da Micro Focus

Por João Paulo Aragão Pereira, Arquiteto de Soluções especialista na Indústria de Serviços Financeiros e Modernização de Mainframe, AWS LATAM

Por Luiz Henrique Gomes, Arquiteto de Soluções e especialista em DevOps, AWS Brasil

 

Os mainframes são utilizados por Instituições Financeiras para aplicativos críticos, processamento de dados em lote e processamento de transações online, além de cargas de trabalho simultâneas mistas. Os mainframes têm requisitos não funcionais como desempenho, segurança e disponibilidade de recursos para processar todas as cargas de trabalho. No entanto, uma possível redução de recursos e paralelismo pode ocorrer durante o desenvolvimento de novos programas e testes subsequentes.

Assim, a ideia desse blogpost é apresentar uma solução para a questão de disponibilidade de recursos, no processo de desenvolvimento COBOL, utilizando serviços de Integração Contínua/Implantação Contínua (CI/CD) da AWS conectados a um IDE, como Eclipse ou Visual Studio. Na mesma esteira de desenvolvimento, pode-se conectar a solução da Micro Focus chamada Enterprise Developer, para o passo de compilação e execução de testes unitários e funcionais.

Micro Focus é um Parceiro de Tecnologia de nível Avançado na Rede de Parceiros AWS. Assim, com as soluções da AWS e da Micro Focus, as Instituições Financeiras podem migrar cargas de trabalho dos mainframes para a AWS ou implantar o portfólio das soluções de nuvem da Micro Focus.

 

Benefícios para as Instituições Financeiras

Seguem alguns benefícios interessantes para as Instituições Financeiras através da abordagem de parceria entre a AWS e Micro Focus para desenvolvimento ágil, mesmo com linguagens de programação legadas, como COBOL:

1)    Possibilidade da criação um pipeline CI/CD fora do ambiente mainframe legado, para cada projeto.

2)    As instâncias EC2 podem rodar como instância Spot ou como instância Reservada, para redução de custo.

3)    Maior autonomia para desenvolvimento paralelo de novos programas e recursos, evitando potencial redução de recursos e paralelismo.

4)    Melhoria na produtividade do desenvolvedor.

5)    Possibilidade de escalar horizontalmente o número de times de desenvolvimento.

6)    Redução de uma quantidade significativa de MIPS usado, reduzindo custos da infraestrutura do mainframe.

7)    Automação de testes: possibilidade de testes funcionais e unitários fora do ambiente mainframe.

8)    Revisão automatizada do código e seu impacto, usando a solução da Micro Focus Analyzer.

9)  Facilidade em alcançar o Time-to-Market (TTM) com agilidade no desenvolvimento.

 

DevOps e CI/CD utilizando serviços AWS­­

A AWS disponibiliza um conjunto de serviços flexíveis criados para permitir que as Instituições Financeiras criem e distribuam produtos mais rápido e com maior segurança usando as práticas da AWS e de DevOps. Esses serviços simplificam o provisionamento e o gerenciamento da infraestrutura, a implantação do código do aplicativo, a automação dos processos de lançamento de software e o monitoramento do desempenho do seu aplicativo e da sua infraestrutura.

O DevOps é a combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma Instituição Financeira de distribuir aplicativos e serviços em alta velocidade: otimizando e aperfeiçoando produtos em um ritmo mais rápido do que outras que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura. Essa velocidade permite que as Instituições Financeiras atendam melhor aos seus clientes e compitam de modo mais eficaz no mercado.

As ferramentas para desenvolvedores da AWS ajudam a armazenar e a fazer o controle de versão do código-fonte de aplicações com segurança, além de criar, testar e implantar automaticamente aplicações na AWS. A figura 1 mostra as etapas de liberação do software que utilizamos nesta solução.

Figura 1 – Etapas de liberação de software

 

1- O AWS CodeCommit é um serviço de controle de código-fonte totalmente gerenciado que hospeda repositórios protegidos baseados em Git. Ele permite que desenvolvedores, por exemplo da linguagem procedural COBOL, tenham facilidade para colaborar nos códigos em um ecossistema seguro e altamente escalável. O AWS CodeCommit elimina a necessidade de operar seu próprio sistema de controle de código-fonte ou a preocupação com a escalabilidade da infraestrutura. Com o serviço AWS CodeCommit, o desenvolvedor COBOL pode armazenar com segurança qualquer item, desde código-fonte a arquivos binários. Outra facilidade é utilizar os IDEs Eclipse ou Visual Studio para fazer alterações de código diretamente em um repositório do AWS CodeCommit. A integração com esses toolkits foram desenvolvidas para funcionar com credenciais do Git e um usuário do Identity & Access Management (IAM).

2- O AWS CodeBuild é um serviço totalmente gerenciado que compila o código-fonte, roda testes e produz pacotes de software prontos para implantação. Com o AWS CodeBuild, o desenvolvedor COBOL não precisa provisionar, gerenciar e escalar seus próprios servidores do build. O AWS CodeBuild escala continuamente e processa múltiplas compilações ao mesmo tempo, o que evita que elas fiquem esperando em uma fila. De maneira opcional, durante o processo do CodeBuild, o usuário pode incluir ferramentas de terceiros para testar a qualidade do código, como o SonarQube. Com esta opção, evita-se a compilação desnecessária de códigos não aprovados.

3- O AWS CodeDeploy automatiza as implantações de código para qualquer instância, inclusive instâncias do Amazon EC2 e servidores locais. O AWS CodeDeploy facilita o lançamento rápido de novos recursos, ajuda a evitar tempo de inatividade durante a implantação de aplicativos COBOL e lida com a complexidade de atualizá-los.

4- O AWS CodePipeline é um serviço de integração contínua e entrega contínua para atualizações rápidas e confiáveis de aplicações e infraestruturas. O CodePipeline cria, testa e implanta código sempre que ocorrer uma alteração de código, de acordo com modelos de processo de lançamento definidos. Isso permite disponibilizar recursos e atualizações de forma rápida e confiável.

5- O Amazon CloudWatch é um serviço de monitoramento e observação criado para engenheiros de DevOps, desenvolvedores, etc. O CloudWatch fornece dados e insights práticos para monitorar aplicativos, responder às alterações de performance em todo o sistema, otimizar a utilização de recursos e obter uma visualização unificada da integridade operacional, durante todo o processo de desenvolvimento de novos programas, módulos ou recursos usando a linguagem de programação COBOL.

 

Micro Focus Enterprise Developer

O Micro Focus Enterprise Developer fornece um conjunto de desenvolvimento contemporâneo para o desenvolvimento e manutenção de aplicativos de mainframe, independentemente da implantação de destino estar dentro ou fora do mainframe. Com esta arquitetura, oferece o desenvolvimento de programas COBOL fora do mainframe, visando autonomia para o desenvolvedor COBOL e redução do consumo de MIPS/MSU no mainframe.

O Micro Focus Enterprise Developer é para Instituições Financeiras que procuram desenvolver e modernizar aplicativos de mainframe em um ambiente de desenvolvimento produtivo e moderno baseado em Windows, como Amazon EC2. Os desenvolvedores podem escolher entre o Visual Studio ou o IDE baseado em Eclipse, e as ferramentas de desenvolvimento e teste são fornecidas para todos os ambientes de destino atualmente suportados pela Micro Focus.

Os benefícios do produto Micro Focus incluem:

1- Suporte completo ao ciclo de vida de desenvolvimento de aplicativos na Área de Trabalho: desde o design inicial do aplicativo até a análise, desenvolvimento, compilação, teste e depuração da unidade, e suporte a COBOL e PL/1 (Programming Language 1).

2- Análise de código e verificação de padrões: Integrado diretamente ao IDE (figura 2) no ponto de mudança, os desenvolvedores podem fazer alterações nos programas existentes com mais confiança.

Figura 2 – IDEs compatíveis (Eclipse e Visual Studio)

 

3- Integração de controle de fonte de mainframe: incluso no Micro Focus ChangeMan ZMF. Os desenvolvedores têm acesso total às ferramentas e projetos dentro e fora do mainframe, a partir de um único ambiente de desenvolvimento.

4- Trabalho em equipe e colaboração eficazes: O agrupamento de trabalho de aplicativos permite que os desenvolvedores compartilhem códigos-fonte, dados e executáveis de programas. Isso garante um gerenciamento seguro e centralizado de equipes e aplicativos e simplifica bastante a tarefa de configurar um ambiente de desenvolvimento compartilhado para vários usuários.

5- Compatibilidade abrangente com mainframe: Permitir que aplicativos de mainframe sejam desenvolvidos e testados no Sistema Operacional Windows sem depender do mainframe. O suporte é fornecido para vários dialetos COBOL de mainframe da IBM, incluindo suporte para o Enterprise COBOL 6.2.

6- Extenso suporte para dados de mainframe: Para edição, acesso e transformação de diferentes tipos de dados do mainframe. Os desenvolvedores podem acessar localmente seus próprios conjunto de dados como QSAM e VSAM, Generation Data Groups (GDGs), IMSDB e emuladores de banco de dados DB2 para teste.

7- Modernização eficiente de aplicações: Ferramentas e processos para suportar modernização de aplicações, capazes de estender aplicações via J2EE, COM, Web Services e SOA.

 

Visão geral da solução

O usuário pode efetuar o download do Toolkit for Eclipse, por exemplo, para se conectar ao repositório AWS CodeCommit. Utilize sua chave de acesso e a chave secreta do seu usuário registrado no AWS IAM. Após instalado e configurado, o desenvolvedor pode clonar um repositório do CodeCommit no Eclipse ou criar um repositório do CodeCommit a partir do Eclipse, conforme figura 3, via aba AWS Explorer.

Figura 3 – Repositório no CodeCommit criados via IDE Eclipse

 

O processo de compilação automatizado utiliza como ambiente um servidor EC2, para execução e para que esse servidor seja configurado automaticamente, o processo utiliza-se da funcionalidade de modelos de execução (launch templates). Os modelos de execução permitem que você armazene parâmetros de execução de modo que não precise especificá-los cada vez que executar uma instância. Por exemplo, um modelo de execução pode conter o Sistema Operacional, o tipo de instância, permissões e as configurações de rede que você geralmente usa para executar instâncias. A figura 4 mostra um exemplo desse modelo utilizado no processo. Um exemplo de buildspec para esse processo de compilação automatizado está disponível aqui (buildspec.yaml).

Figura 4 – Modelo de execução de instâncias

 

Utilizando o modelo de execução descrito acima, o processo cria uma instância EC2 conforme figura 5, a qual será utilizada no processo de compilação dos códigos e também na emulação do ambiente mainframe. Essa instância EC2 tem instalado o Micro Focus Enterprise Developer, que contém o compilador COBOL e o Enterprise Server para efetuar os testes necessários (funcionais e unitários). No anexo desse blogpost estão os principais comandos utilizados para compilação do código COBOL.

Figura 5 – Instância EC2 criada com o modelo de execução

 

O processo lança a instância EC2 utilizando o modelo de execução e aguarda até que essa nova instância esteja conectada à plataforma de gerenciamento AWS System Manager. Quando a conexão à plataforma de gerenciamento estiver concluída, o processo utiliza a funcionalidade de execução remota de comandos  para iniciar a fase de validação e compilação do código COBOL. A figura 6 mostra o registro desse processo, no Amazon CloudWatch, o qual é realizado com a utilização de código executado na plataforma serverless da AWS, chamada AWS Lambda. Um exemplo desse código Lambda está disponível aqui (lambda_ssm.py).

Figura 6 – Log de execução da instância EC2

 

A execução remota de comandos, utilizada para executar o processo de validação e compilação do código COBOL, pode enviar os registros para a plataforma de gestão de eventos da AWS (CloudWatch), mantendo, assim, os registros de execução do processo na mesma plataforma, unificando e simplificando o processo de monitoramento e de solução de problemas, como mostra a figura 7. Um exemplo para a automação desse processo, utilizando um arquivo batch está disponível aqui (build_ssm.bat).

Figura 7 – Log de execução dos comandos dentro da instância EC2

 

Quando o processo é finalizado, o script envia os arquivos compilados e registros de processamento para um bucket do Amazon Simple Storage Service (Amazon S3). Dessa forma, outros processos podem utilizar estas informações para processamento. Esses arquivos estão listados na figura 8.

Figura 8 – Bucket do S3 com os artefatos resultantes do processo

 

A próxima etapa do processo é aguardar que o usuário execute os seus testes unitários e funcionais, com o Micro Focus Enterprise Developer acessando a instância EC2 que já se encontra em execução e com a configuração do ambiente de emulação pronta, inclusive com a versão da aplicação recém-compilada. Para que isso seja possível, o desenvolvedor recebe um comunicado por e-mail (figura 9) enviado pela plataforma Amazon Simple Notification System (SNS) em conjunto com o Amazon Simple Email System (SES).

Figura 9 – Notificação de conclusão do processo de compilação e deploy

 

Uma das funcionalidades que o CodePipeline disponibiliza é pausar a execução do pipeline aguardando a aprovação do usuário (figura 10). Assim que o usuário aprovar, o pipeline continua a execução das próximas etapas.

Figura 10 – Pipeline aguardando aprovação do usuário

 

Todas as etapas do pipeline, assim como os seus status e tempos de execução ficam disponíveis para consulta e acompanhamento na console do CodePipeline (figura 11).

Figura 11 – Etapas do pipeline com status de execução

 

Na Figura 12, temos cada serviço da AWS da arquitetura proposta. O desenvolvedor pode utilizar IDEs compatíveis com Git, como Eclipse ou Visual Studio, para fazer alterações no código COBOL. Como alternativa aos desktops locais, o desenvolvedor pode usar instâncias do Amazon EC2 com o sistema operacional desejado ou o Amazon WorkSpaces (Desktop como um serviço) que é um serviço gerenciado da AWS. Nesse caso, cada desenvolvedor pode ter seu próprio desktop seguro, escalável e elástico para instalar os IDEs de desenvolvimento COBOL preferenciais.

Figura 12 – Arquitetura da solução proposta

 

A seguir tem o resumo do fluxo de execução:

1- O usuário conecta e confirma alterações no repositório do AWS CodeCommit.

2- O AWS CodePipeline inicia o pipeline de construção.

3- O AWS CodeBuild envia instruções de construção para uma função AWS Lambda (anexo).

4- O AWS Lambda armazena o código-fonte em um bucket Amazon S3.

5- O AWS Lambda inicia uma instância Amazon EC2.

6- O AWS Lambda envia instruções de construção para o AWS Systems Manager (anexo).

7- O AWS System Manager envia as instruções de construção da instância Amazon EC2 (anexo).

8- A instância Amazon EC2 efetua o download do código-fonte vindo do bucket Amazon S3.

9- A instância Amazon EC2 constrói artefatos de volta ao bucket Amazon S3.

10- A instância Amazon EC2 envia o status de construção para o AWS CodeBuild.

11- O AWS CodePipeline envia um e-mail via Amazon SNS para informar ao desenvolvedor que o build está completo e o IP da instância EC2 para se conectar.

12- O AWS CodePipeline inicia o processo de implantação.

13- O AWS CodeDeploy envia o código-fonte aprovado para o bucket S3.

 

Com o código-fonte aprovado, o desenvolvedor pode retorná-lo para o mainframe afim de executar a recompilação final, através da conexão com o Micro Focus Changeman ZMF, por exemplo. A outra alternativa é utilizar o Micro Focus Enterprise Test Server para executar testes de integração, antes de retorná-lo para o mainframe.

 

POR QUE USAR A AWS PARA DEVOPS COBOL?

Um pilar do desenvolvimento de aplicativos modernos, a Entrega Contínua expande a Integração Contínua, implantando todas as alterações de código em um ambiente de teste e/ou em um ambiente de produção após o estágio de construção. Quando implementados adequadamente, os desenvolvedores sempre tem um artefato de construção pronto para implantação que passou por um processo de teste padronizado.

Executando na AWS, a Entrega Contínua permite que os desenvolvedores COBOL automatizem os testes, além de apenas executar testes unitários, para que possam verificar as atualizações de aplicativos em várias dimensões antes de implantar em produção. Com a AWS, é fácil e econômico automatizar a criação e replicação de vários ambientes para teste, o que antes era difícil de ser realizado localmente.

As principais vantagens do desenvolvimento de aplicativos COBOL na AWS são:

1.       Atualize aplicativos e programas rapidamente;

2.      Reduzir o impacto nas alterações de código;

3.       Padronizar e automatizar as operações de entrega;

4.      Simplificar o gerenciamento da infraestrutura de gerenciamento;

5.      Opere e gerencie sua infraestrutura e processos de desenvolvimento em escala;

6.      Crie equipes mais eficazes sob um modelo cultural do DevOps, que enfatize valores como propriedade e responsabilidade;

7.       Mova-se rapidamente, mantendo o controle e preservando a conformidade. Você pode adotar um modelo de DevOps sem sacrificar a segurança usando políticas de conformidade automatizadas, controles refinados e técnicas de gerenciamento de configuração.

Além disso, o AWS Well-Architected Framework foi desenvolvido para ajudar os arquitetos de nuvem a criar uma infraestrutura com os mais altos níveis de segurança, desempenho, resiliência e eficiência possíveis para seus aplicativos, baseado em 5 pilares (Tabela 1): Excelência Operacional, Segurança, Confiabilidade, Eficiência de Desempenho e Otimização de Custos.

O AWS Well-Architected Framework fornece uma abordagem consistente para que as Instituições Financeiras avaliem arquiteturas e implementem designs que serão escalados ao longo do tempo, com a capacidade de exceder as necessidades dos aplicativos de mainframe mais exigentes, em ambiente de produção ou de desenvolvimento.

 

Tabela 1 – Os pilares do AWS Well-Architected Framework

Nome Descrição
Excelência Operacional A capacidade de executar e monitorar sistemas para agregar valor aos negócios e melhorar continuamente os processos e procedimentos de suporte.
Segurança A capacidade de proteger informações, sistemas e ativos, ao mesmo tempo em que agrega valor aos negócios por meio de avaliações de risco e estratégias de mitigação.
Confiabilidade A capacidade de um sistema se recuperar de interrupções de infraestrutura ou serviço, adquirir dinamicamente recursos de computação para atender à demanda e mitigar interrupções.
Eficiência de Desempenho A capacidade de usar recursos de computação com eficiência para atender aos requisitos do sistema e manter essa eficiência à medida que a demanda muda e as tecnologias evoluem.
Otimização de Custos A capacidade de executar sistemas para fornecer valor comercial ao menor preço.

 

Excelência Operacional

Dos seis princípios de design para excelência operacional na AWS, pelo menos três foram usados ​​na solução proposta:

1)      Executar operações como código: executando no ambiente de desenvolvimento COBOL da AWS para mainframe, o usuário pode aplicar a mesma disciplina de engenharia usada para o código do aplicativo em todo o ambiente. O desenvolvedor COBOL pode criar um script para seus procedimentos de operações e automatizar sua execução acionando-os em resposta a eventos. Para pipelines de automação, Infraestrutura como código e CI/CD, AWS CloudFormation descreve e fornece recursos, o Amazon Machine Images (AMI) pode pré-configurar o Enterprise Developer nas instâncias da AWS.

2)      Faça alterações frequentes, pequenas e reversíveis: projete cargas de trabalho de desenvolvimento para permitir que os componentes sejam atualizados regularmente para aumentar o fluxo de alterações benéficas. Faça alterações em pequenos incrementos, que podem ser revertidos se eles não ajudarem na identificação e resolução de problemas introduzidos no seu ambiente de desenvolvimento COBOL.

3)      Antecipe a falha: com o pipeline completo em execução na AWS adicionado às soluções Micro Focus, o desenvolvedor COBOL pode testar seus cenários de falha e validar sua compreensão do impacto deles. Teste seus procedimentos de resposta para garantir que sejam eficazes e que as equipes estejam familiarizadas com sua execução.

 

Segurança

A segurança é a principal prioridade da AWS, e uma das vantagens da nuvem da AWS é que as instituições financeiras herdam as melhores práticas de políticas e processos operacionais projetados para atender aos requisitos de segurança das Instituições Financeiras.

O desenvolvedor do COBOL, em vez de se concentrar apenas na proteção de uma única camada externa, aplica uma abordagem de defesa profunda com outros controles de segurança como Amazon Virtual Private Cloud (VPC), subnets and network access control lists (ACL).

Para destacar a integração do desenvolvedor corporativo à nuvem da AWS por meio do AWS IAM, o usuário pode implementar o princípio do menor privilégio e impor a separação de tarefas com a autorização apropriada para cada interação com os recursos da AWS. Além disso, pode aproveitar a auditoria completa via AWS CloudTrail e notificações com Amazon CloudWatch Alarms.

 

Confiabilidade

 

Um ambiente de desenvolvimento que é quase o mesmo que um ambiente de produção deve ter reliability. Para alcançá-lo, o ambiente deve ter uma base e um monitoramento bem planejados, com mecanismos para lidar com mudanças na demanda ou nos requisitos. O sistema deve ser projetado para detectar falhas e retornar automaticamente.

Para gerenciamento de alterações, AWS CloudTrail registra as chamadas da API da AWS para sua conta e fornece arquivos de log para auditoria. O AWS Auto Scaling é um serviço que fornecerá um gerenciamento de demanda automatizado para uma carga de trabalho implantada. O Amazon CloudWatch oferece a capacidade de alertar sobre métricas, incluindo métricas personalizadas. O Amazon CloudWatch também possui um recurso de registro que pode ser usado para agregar arquivos de registro dos seus recursos.

Ao configurar um pipeline de Integração Contínua e Entrega Contínua (CI/CD) na AWS para COBOL, o usuário pode parar de adivinhar a capacidade, que é uma causa comum de falha nos sistemas locais devido à saturação de recursos. Assim, executando na AWS, o usuário pode monitorar a demanda e a utilização do sistema e automatizar a adição ou remoção de recursos para manter o nível ideal para satisfazer a demanda sem excesso ou sub-provisionamento.

 

Eficiência de Desempenho

Dos cinco princípios de design para eficiência de desempenho na AWS, o desenvolvedor do COBOL pode tirar proveito de pelo menos três princípios:

1)    Democratize tecnologias avançadas: tecnologias difíceis de implementar podem se tornar mais fáceis de consumir, empurrando esse conhecimento e complexidade para o domínio do fornecedor da nuvem. Na AWS, essas tecnologias se tornam serviços que a equipe de desenvolvedores pode consumir. Isso permite que sua equipe se concentre no desenvolvimento de produtos, e não no provisionamento e gerenciamento de recursos.

2)      Seja global em minutos: Implante facilmente o pipeline para desenvolvimento em várias Regiões da AWS em todo o mundo com apenas alguns cliques. Isso permite fornecer menor latência e uma melhor experiência para os desenvolvedores a um custo mínimo.

 

3)      Experimente com mais frequência: com recursos virtuais e automatizáveis, o usuário pode executar rapidamente testes comparativos usando diferentes tipos de instâncias ou configurações.

 

Otimização de Custos

O uso das instâncias e recursos apropriados para sua carga de trabalho é essencial para economia de custos. A AWS oferece on-demand, pré-pago, permitindo que o usuário obtenha o melhor retorno do seu investimento para cada caso de desenvolvimento específico. Os serviços da AWS não possuem dependências complexas ou requisitos de licenciamento, para que você possa obter exatamente o que precisa para criar soluções inovadoras e econômicas usando a tecnologia mais recente.

O Amazon EC2 e o Amazon S3 são serviços conhecidos como blocos de construção da AWS, enquanto o AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy e AWS CodePipeline são serviços gerenciados. O desenvolvedor do COBOL, selecionando os blocos de construção e serviços gerenciados apropriados, pode otimizar a carga de trabalho de desenvolvimento para reduzir custos. Na arquitetura proposta, usando os serviços gerenciados para CI/CD, é possível reduzir ou remover grande parte das despesas administrativas e operacionais, liberando o desenvolvedor para trabalhar no desenvolvimento de novos aplicativos.

Outra possibilidade de reduzir custos é aplicar tags aos recursos da AWS (como instâncias do EC2 ou buckets S3). A AWS gera um relatório de custo e uso com o seu uso e suas tags. Você pode aplicar tags que representam categorias da organização (como centros de custo, programas, projetos, nomes de carga de trabalho ou proprietários) para organizar seus custos em vários serviços.

 

Recursos

  • Todos os recursos da Arquitetura demonstrada (figura 12) estão disponíveis no GitHub, incluindo código Lambda, script batch e buildspec utilizados no processo de build e deploy automatizado.
  • Requisite também uma licença do Micro Focus Enterprise Developer para compilar e executar todos os testes unitários e funcionais. Para testes de integração entre programas, pode-se utilizar o Micro Focus Enterprise Test Server.

Micro Focus – Destaques do parceiro da APN

Micro Focus é um Parceiro de Competência. Eles permitem que as Instituições Financeiras utilizem novas soluções tecnológicas, maximizando o valor de seus investimentos em infraestrutura crítica de TI e aplicativos de negócios.

Contate a Micro Focus Overview da Solução

*Já trabalhou com Micro Focus? Classifique esse Parceiro.

 

###ANEXO###

INSTRUÇÕES PARA COMPILAÇÃO DE CÓDIGO COBOL:

Seguem os comandos que o desenvolvedor pode utilizar para compilar programas COBOL via linha comando, usando o compilador implícito do Micro Focus Enterprise Developer. Todos os comandos foram inseridos no script de build do CodeBuild:

Para Windows:

> cobol <nome-programa>.cbl,,, preprocess(EXCI) USE(diretivas_compilacao.dir);

O comando acima faz referência ao arquivo chamado “diretivas_compilacao.dir”. Este arquivo deve possuir as diretivas de compilação necessárias para os programas COBOL/CICS, por exemplo, do servidor BANKDEMO.

Abaixo está o conteúdo do arquivo diretivas_compilacao.dir:

Se usar o Sistema Operacional Windows, o desenvolvedor precisa executar o comando cobol no diretório onde estão os códigos-fontes. O desenvolvedor precisa copiar para o mesmo diretório os copybooks usados por estes programas (arquivos de extensão .cpy) ou apontar para o diretório que contém os copybooks, através da variável de ambiente COBCPY.

No script de build está inserido as variáveis de ambiente necessárias para executar o servidor BANKDEMO:

Para alguns programas que não são COBOL/CICS, como o UDATECNV.CBL e SSSECUREP.CBL do BANKDEMO, basta executar os comandos sem a diretiva “preprocess(EXCI)”. Esta diretiva é a responsável pela chamada do pré-compilador do CICS.

 

COMANDOS PARA GERAÇÃO DOS ARQUIVOS DLLs:

O desenvolvedor deve executar a linkedição dos programas, através do comando “cbllink”. Exemplo:

C:\>cbllink -d name_pgm.obj

O parâmetro “-d” indica que é gerado um arquivo .DLL. A saída da compilação “name_pgm.obj” será usada como entrada para a linkedição.

Após isso, o desenvolvedor precisa copiá-los para o diretório destino (…\loadlib) somente o produto da linkedição, isto é, o arquivo name_pgm.DLL.

 

COMANDOS PARA INICIAR OS SERVIÇOS MICRO FOCUS:

Após os arquivos serem compilados, pode-se iniciar os serviços Micro Focus e o servidor BANKDEMO na instância EC2, afim de executar os testes com o Enterprise Server.

Os serviços Micro Focus CES daemon e Directory Server devem ser iniciados:

Foram inseridas as linhas de comandos para ativar o servidor, por exemplo o BANKDEMO, no script de build. O comando basicamente é: > casstart /r <nome-do-servidor>. No caso do exemplo BANKDEMO, o comando utilizado é: > casstart /rBANKDEMO

Segue link para a documentação que dá mais detalhes sobre as linhas comandos.

Verifique se o servidor BANKDEMO está inicializado no browser (https://localhost:86).

Configure a estrutura de diretórios com os campos “Transaction Path” e “Map Path”, no caso de programas CICS e o campo “JES Program path” no caso de programas Batch (figura X). Nestes campos, o desenvolvedor precisa apontar para os diretórios onde copiou os arquivos .DLLs dos programas.

 


 

Sobre os autores

 

João Paulo Aragão Pereira é um arquiteto de soluções da AWS focado na Indústria de Serviços Financeiros e na modernização de sistemas legados. Trabalho com arquitetura em bancos e seguradoras, armazenamento de dados e inteligência artificial desde 2009.

 

 

 

 

Luiz Henrique Gomes é arquiteto de soluções da AWS, focado no segmento Enterprise, trabalhando com clientes no mercado financeiro. Com mais de 20 anos de experiência em arquitetura e desenvolvimento de soluções envolvendo sistemas empresariais e de missão crítica.