Geração de código para Z

Um fluxograma com várias formas e símbolos
Geração de código para Z

O IBM watsonx Code Assistant (WCA) para Z é uma solução de modernização de aplicações de mainframe auxiliada por IA que facilita a tarefa dos desenvolvedores ao modernizar e refatorar gradativamente os serviços de negócios em COBOL e transformar de forma seletiva em código Java de alta qualidade, otimizado para o IBM Z. Com o watsonx Code Assistant for Z, os clientes poderão utilizar a IA generativa e ferramentas automatizadas, para acelerar a jornada de solução de modernização de aplicativos com a solução de aprendizado de máquina, enquanto lidam com os principais desafios referentes às habilidades dos desenvolvedores e o time to value.

 

Visão geral da solução

Um fluxograma ilustrando o processo de refatoração do código COBOL, da linguagem de origem à linguagem de destino
Os principais componentes e suas conexões na arquitetura da solução de geração de código para Z.

O IBM watsonx Code Assistant for Z é composto pelos seguintes componentes principais (mostrados no diagrama acima):

  1. O IBM Application Discovery and Delivery Intelligence (ADDI) escaneia o código-fonte das aplicações para descobrir e entender as relações entre os programas em um sistema de aplicações. O ADDI também oferece a capacidade de visualizar e relatar essas dependências, bem como pesquisar a base de código.

     

  2. O banco de dados de metadados contém os resultados do processo de compreensão e refatoração do COBOL realizado pelo ADDI. Os dados do banco de dados de metadados são usados pelo IBM watsonx Code Assistant para permitir a refatoração de grandes sistemas de software compostos por vários programas COBOL, copybooks etc.

     

  3. Uma ferramenta de gerenciamento de controle de origem COBOL (SCM) fornece controle de origem para o código COBOL a ser convertido. O repositório SCM também está associado a um projeto ADDI, de modo que novos serviços COBOL podem ser verificados, e os metadados, enviados para o banco de dados de metadados.

     

  4. O Refactoring Assistant é uma "ponte" entre o ADDI e o serviço IBM watsonx Code Assistant. O Refactoring Assistant se conecta ao ADDI e extrai os serviços de negócios COBOL identificados para refatoração e conversão para código Java.

     

  5. O IBM watsonx Code Assistant Service (WCA for Z) é uma aplicação do IBM watsonx.ai que recebe prompts do Microsoft Visual Studio Code (VS Code) e realiza a correspondência com um grande modelo de linguagem (LLM). O WCA for Z analisa parágrafos COBOL e classes Java e gera propostas de código que seguem as principais práticas.

     

  6. O Code Large Language Model (LLM) é um modelo de base de IA generativa para geração de código baseado no modelo IBM Granite para Z. Também pode ser treinado para incluir código COBOL adicional gerado por fornecedores ou por usuários corporativos.

     

  7. Os Programas COBOL são programas autônomos e/ou componentes de um sistema de software maior que podem ser refatorados em serviços Java.

     

  8. Java Code é um código gerado pelo WCA for Z que replica o comportamento do programa COBOL de entrada.

Uso e passo a passo
Diagrama do IBM Cloud ilustrando o processo de refatoração de aplicações COBOL para código Java
Um passo a passo da arquitetura da solução mostrando as interações dos componentes e o fluxo de informações para gerar código Java a partir da fonte COBOL.

O diagrama acima ilustra como os componentes do WCA for Z trabalham juntos para permitir que os desenvolvedores convertam o código-fonte COBOL em Java.

  1. Um arquiteto usa as funções do ADDI para entender o código COBOL. Este produto é executado em uma VM Windows e verifica o código-fonte para fornecer insights sobre a aplicação aos arquitetos. A análise do código-fonte é armazenada em um projeto que um arquiteto pode acessar a partir de uma ferramenta baseada no Eclipse. Essa ferramenta permite que um arquiteto execute diferentes tarefas, inclusive visualizando as relações entre diferentes programas, executando relatórios e pesquisando código. Um arquiteto pode usar essa ferramenta para começar a modernizar uma aplicação COBOL monolítica, identificando possíveis serviços de negócios para refatorar, com a opção de convertê-los para Java usando IA generativa.

     

  2. O ADDI envia os resultados de sua análise para o banco de dados de metadados, que por sua vez são adicionados ao conjunto de dados usado pelo IBM watsonx Code Assistant Service.

     

  3. O desenvolvedor COBOL usa o Refactoring Assistant para começar a extrair o serviço de negócios COBOL que o arquiteto identificou em uma aplicação monolítica. O Refactoring Assistant é um produto baseado em contêineres que é executado em uma VM Linux. Ele possui uma IU da web para que os desenvolvedores visualizem e selecionem o código relevante para criar um novo serviço COBOL que compreende uma função de negócios de vários programas existentes diferentes. O Refactoring Assistant se conecta ao ADDI de forma segura para acessar a análise da aplicação COBOL no banco de dados do ADDI.

     

  4. Depois que o desenvolvedor COBOL selecionar todo o código, poderá exportar o novo programa COBOL para sua estação de trabalho para continuar desenvolvendo em um ambiente de desenvolvimento integrado (IDE).

     

  5. Os parágrafos COBOL refatorados são armazenados no Repositório de Serviços e disponibilizados aos desenvolvedores Java para conversão.

     

  6. O desenvolvedor Java usa o Z Open Editor no VS Code para se conectar ao serviço WCA for Z no IBM Cloud. Esse serviço é provisionado por meio de uma conta do IBM Cloud e fornece acesso ao modelo de base de IA. O Z Open Editor possibilita que o desenvolvedor Java converta e gere código da seguinte forma:

    1. Primeiro, um desenvolvedor Java seleciona um parágrafo COBOL no VS Code e envia seu conteúdo para o serviço WCA for Z para conversão em definições de classes Java.

    2. Posteriormente, no VS Code, um desenvolvedor Java seleciona classes Java individuais para as quais o serviço WCA for Z deve gerar linhas de código Java.

       

  7. Em ambos os casos acima, o serviço WCA for Z utiliza seu Code LLM para gerar conteúdo. O Code LLM é um modelo de base de IA generativa, treinado em muitas linguagens de programação e ajustado para converter COBOL em Java.

     

  8. O WCA for Z envia respostas geradas por IA de volta para o VS Code, e o desenvolvedor Java pode usar as principais práticas para revisar e compilar o código para concluir o serviço Java.

Pré-requisitos

  • Microsoft VS Code
  • SDK IBM Semeru Java 17 LTS
  • Extensão IBM Z Open Editor for VS Code
  • Compatibilidade com linguagens para Java pela extensão Red Hat para VS Code
  • Conta do GitHub.com
  • Conexão com o IBM Watson Code Assistant
Próximas etapas

Fale com nossos especialistas sobre como implementar um padrão de implementação de nuvem híbrida.

Colaboradores

Al HamidPete Nuwayser, Chris Kirby, Mihai Criveti 

Atualizado em: 5 de dezembro de 2023