A modernização de COBOL refere-se ao processo de atualização ou transformação de aplicações COBOL, que normalmente são consideradas sistemas legados, mas continuam sendo vitais para as operações empresariais. O processo de modernização de aplicações inclui a adoção das práticas mais recentes de desenvolvimento de software, refatoração do código COBOL para linguagens de programação mais modernas ou migração para plataformas mais novas.
Modernizar os sistemas COBOL pode ajudar a preservar a lógica de negócios de missão crítica e a funcionalidade enquanto melhora a manutenção, aprimora a interoperabilidade com o ambiente híbrido complexo de hoje, aumenta a escalabilidade e reduz os custos operacionais.
A modernização do COBOL envolve mais do que apenas traduzir código COBOL para uma linguagem de programação mais nova. O mainframe ou plataforma distribuída onde esse código reside e é executado, e a stack com a qual ele interage, devem ser cuidadosamente consideradas. É um trabalho de engenharia em nível de sistema que incorpora não apenas tradução de código, mas também integração de aplicações, recriação da arquitetura de dados, substituição em tempo de execução, integridade e segurança do processamento de transações, entre outros fatores.
Common business-oriented language, ou COBOL, é uma das linguagens mais amplamente utilizadas para programação de mainframes. Foi criado especificamente para as necessidades de processamento de dados de negócios.
A primeira versão do COBOL foi lançada em 1960. Décadas depois, sua presença persiste em cerca de 250 bilhões de linhas de código em uso na produção em setores tão variados quanto serviços financeiros, governo, logística, fabricação e varejo.1 E com os sistemas de mainframe continuando como pilares para empresas ao redor do mundo, o COBOL continua relevante.
As aplicações baseadas em COBOL são conhecidas por seus recursos excepcionais de manipulação de dados e processamento de arquivos e seu desempenho confiável e estável. No entanto, as empresas podem considerar a possibilidade de modernizar as aplicações para aumentar a interoperabilidade entre sistemas e fontes de dados, manter os padrões regulatórios ou de conformidade e garantir o sucesso no longo prazo com os recursos existentes. Quando gerenciado com uma visão estratégica, o processo de modernização pode oferecer uma oportunidade para avaliar código e sistemas, fornecer explicação para o código existente, validar requisitos e determinar fluxos de trabalho eficientes para o futuro.
Conformidade e segurança
Interoperabilidade
Capacidade de manutenção
O código legado do COBOL pode não seguir os controles e políticas atuais de privacidade de dados ou não ser regularmente implementado com os patches de segurança mais recentes. Isso o torna vulnerável a ataques cibernéticos e violações de dados. Como sistemas mais antigos, esses sistemas podem não ser capazes de acompanhar os requisitos sofisticados por trás das regulamentações em constante mudança.
Integrar aplicações COBOL obsoletas com a infraestrutura contemporânea pode ser uma tarefa complicada. Essa falta de interoperabilidade pode desacelerar a inovação e o crescimento dos negócios, fazendo com que as empresas fiquem para trás em relação à concorrência.
As bases de código COBOL podem ser verbosas e complexas, com documentação insuficiente ou desatualizada. Como os componentes são fortemente acoplados, fica difícil realizar a depuração, além de ser um desafio adicionar novos recursos ou atualizar funcionalidades existentes. Dessa forma, muitas vezes dificultam a eficiência e a produtividade das equipes que trabalham com esses sistemas e os mantêm.
Mantenha-se atualizado sobre as tendências mais importantes (e intrigantes) do setor em IA, automação, dados e muito mais com o boletim informativo Think. Consulte a Declaração de privacidade da IBM.
Ao embarcar na jornada de modernização do COBOL, as empresas podem seguir um ou mais desses caminhos:
Encapsulamento
Aplicação de práticas de DevOps
Refatoração de código
Essa abordagem de modernização converte programas COBOL monolíticos em microsserviços modulares. As funções de negócios são encapsuladas em microsserviços e, em seguida, expostas como interfaces de programação de aplicativos (APIs) .
O encapsulamento permite uma modernização rápida, pois não exige alterações no sistema COBOL subjacente. Dessa forma, minimiza as interrupções e, ao mesmo tempo, integra-se com arquiteturas e fluxos de trabalho nativos da nuvem.
As organizações podem configurar um pipeline de integração contínua/entrega contínua (CI/CD) para programas COBOL. O pipeline de CI/CD engloba testes e implementação automatizados, além de repositórios centrais gerenciados por sistemas de controle de versão. Também funciona em conjunto com o encapsulamento, implementando microsserviços em ambientes conteinerizados.
Esse fluxo de trabalho de DevOps agiliza a implementação e a entrega de aplicações COBOL. As empresas podem reduzir os ciclos de produção e acelerar o lançamento de novas funcionalidades para os clientes.
A migração é outra estratégia para modernizar sistemas COBOL legados. Geralmente envolve a transferência de determinadas cargas de trabalho do mainframe para plataformas de computação em nuvem, como Amazon AWS ou Microsoft Azure.
Esse processo de modernização do mainframe geralmente requer algumas mudanças, como alterar o acesso aos dados, instalar middleware ou recompilar aplicações COBOL para serem executadas em seus novos ambientes. Os provedores também podem oferecer serviços de modernização para compatibilidade com a rehospedagem ou reformulação de cargas de trabalho e fornecer ferramentas para monitoramento de desempenho e segurança em tempo real.
A refatoração de código reestrutura programas COBOL no nível do código-fonte. Ela visa reduzir a dívida técnica que frequentemente acompanha o código legado, que precisa ser “paga” ao longo do tempo por meio de manutenção contínua. As organizações podem optar por otimizar o código COBOL existente ou transformá-lo em uma linguagem de programação mais nova, como C#, Java ou .NET.
A otimização começa com a análise do código e um plano detalhado para lidar com ineficiências, diminuir dependências e remover redundâncias. O plano pode incluir a padronização de estruturas de dados definidas em copybooks, o desenvolvimento de um design mais modular e a simplificação de lógicas de negócios complexas.
A transformação de grandes bases de código COBOL para outra linguagem de programação pode ser demorada. Em vez de uma reescrita manual completa, as equipes de desenvolvimento podem empregar automação (incluindo ferramentas de conversão ou tradução de código impulsionadas por IA) para ajudar a economizar tempo e minimizar o esforço de modernização necessário.
Os projetos de modernização tendem a ser empreendimentos enormes e assustadores. Aqui estão algumas dicas para um caminho mais tranquilo pela frente:
Avalie e planeje
Comece pequeno
Escale gradualmente
Teste e documente
Avaliar as bases de código COBOL é um passo fundamental para verificar o estado do código e sua complexidade, identificar áreas onde a modernização pode causar impacto significativo e determinar a melhor abordagem a seguir. As equipes devem, então, criar um plano que descreva o processo de modernização, incluindo escopo e cronogramas.
Começar de forma pequena ajuda a gerenciar os riscos dos esforços de modernização. Por exemplo, as empresas podem inicialmente enfrentar tarefas simples de otimização ou refatoração ou começar a encapsular ou migrar funções de negócios menores. Isso mantém os componentes críticos funcionando, minimiza o downtime e limita os efeitos de quaisquer problemas que surjam.
As organizações podem, então, expandir para módulos mais cruciais de sistemas COBOL, aplicando as lições aprendidas com as iterações anteriores. Isso permite que elas modernizem aplicações legadas em um ritmo constante e sustentável, além de lhes dar a experiência necessária para lidar com transformações mais complexas.
Testes completos devem ser realizados para validar os recursos e a funcionalidade e garantir que o sistema modernizado ainda funcione conforme o esperado. Além disso, todas as alterações devem ser documentadas, seja novo código ou configurações, definições de APIs ou fluxos de trabalho de DevOps.
A inteligência artificial pode complementar o processo de modernização do COBOL. As ferramentas de IA generativa, em particular, são impulsionadas por grandes modelos de linguagem (LLMs), que foram treinados ou ajustados em linguagens de programação como COBOL, permitindo-lhes analisar código de mainframe.
No entanto, a IA não elimina a necessidade de sistemas de mainframe — ela a aumenta ainda mais. Embora a IA acelere a modernização do COBOL e preencha lacunas de habilidades à medida que os desenvolvedores COBOL se aposentam, os mainframes continuam essenciais como plataformas que exibem confiabilidade, escalabilidade e resiliência transacional em meio a todas as melhorias que a IA traz. As escolhas estratégicas feitas ao abordar a modernização podem determinar o quão tranquilo será o processo e o sucesso dos programas.
Aqui estão algumas tarefas de modernização em que a IA pode ajudar:
Compreensão e explicação de código
Geração e refatoração de código
Conversão e otimização de código
Geração de testes e documentação de código
A plataforma de compreensão de aplicações da Swimm, por exemplo, combina análise estática com LLMs para extrair business rules e identificar dependências e fluxos variáveis para cada elemento nas telas de usuários COBOL. Enquanto isso, o IBM Watsonx Code Assistant for Z emprega agentes de IA para entender e criar explicações em linguagem natural do código e documentação técnica do mainframe.
Alguns aplicativos respaldados por de IA possuem interfaces de chatbot para gerar novo código com base em prompts de linguagem natural. Outros se misturam a IDEs (ambientes de desenvolvimento integrados) para produzir sugestões de código inline em tempo real. O IBM watsonx Code Assistant for Z vai um passo além, refatorando automaticamente as aplicações COBOL em serviços de negócios modulares.
Sistemas multiagente, como um desenvolvido pela Persistent Systems, usam múltiplos agentes de IA para transformar código COBOL em uma linguagem de programação moderna como o Java. Um agente codificador conduz a tradução, enquanto um agente avaliador verifica o código convertido em busca de erros ou oportunidades de otimização e refinamento.
Ferramentas impulsionadas por IA podem gerar testes automaticamente para comparar a equivalência semântica do novo código com o código COBOL original. Também podem produzir comentários no código para documentar a função de determinados fragmentos de código.
Como acontece com qualquer aplicação de IA, as equipes ainda precisam ter cuidado, verificando a precisão das saídas e testando qualquer código gerado, correções ou alterações sugeridas.
O IBM zSystems é uma linha de hardware z/Architecture moderna que executa software z/OS, Linux, z/VSE, z/TPF, z/VM e zSystems.
Criado para lidar com cargas de trabalho de missão crítica, mantendo a segurança, a confiabilidade e o controle de toda a sua infraestrutura de TI.
Acelere a transformação digital modernizando suas aplicações de mainframe com a IBM.
1. Special Report: COBOL Survey Results Prove Pervasiveness, Value and a Bright Future, TechChannel, 11 de outubro de 2021