다양한 도형과 기호가 포함된 흐름도
Z용 코드 생성

IBM watsonx Code Assistant(WCA) for Z는 AI 기반의 메인프레임 애플리케이션 현대화 솔루션으로, 개발자가 COBOL 비즈니스 서비스를 점진적으로 현대화하고 IBM Z에 최적화된 Java 코드로 선택적으로 변환할 수 있도록 지원합니다. 고객은 IBM watsonx Code Assistant for Z를 통해 생성형 AI와 자동화된 툴을 활용하여 메인프레임 애플리케이션 현대화를 가속화하고, 개발자 기술 및 가치 실현 시간과 관련된 주요 과제를 해결할 수 있습니다.

 

솔루션 개요

소스 언어에서 대상 언어로 COBOL 코드를 리팩터링하는 과정을 보여주는 흐름도
Code Generation for Z 솔루션 아키텍처 내 주요 구성 요소와 그 연결 관계입니다.

IBM watsonx Code Assistant for Z는 다음 주요 구성 요소로 이루어져 있습니다(위의 다이어그램 참조).

  1. IBM® Application Discovery and Delivery Intelligence (ADDI)는 애플리케이션 소스 코드를 스캔하여 애플리케이션 시스템 내 프로그램 간의 관계를 발견하고 이해합니다. 또한 ADDI는 이러한 종속성을 시각화하고 보고하는 기능과 코드베이스를 검색하는 기능도 제공합니다.

     

  2. 메타데이터 데이터베이스에는 ADDI가 수행한 COBOL 이해 및 리팩터링 과정의 결과가 포함됩니다. 메타데이터 데이터베이스의 데이터는 IBM watsonx Code Assistant가 여러 COBOL 프로그램, copybook 등으로 구성된 대규모 소프트웨어 시스템을 리팩터링할 수 있도록 하는 데 사용됩니다.

     

  3. COBOL 소스 제어 관리(SCM) 툴은 변환될 COBOL 코드에 대한 소스 제어 기능을 제공합니다. SCM 저장소는 ADDI 프로젝트와도 연결되어 있어 새로운 COBOL 서비스를 스캔하고 메타데이터를 메타데이터 데이터베이스로 전송할 수 있습니다.

     

  4. Refactoring Assistant는 ADDI와 IBM watsonx Code Assistant 서비스 사이의 "브리지" 역할을 합니다. Refactoring Assistant는 ADDI에 연결되어 식별된 COBOL 비즈니스 서비스를 추출하여 리팩터링하고 Java 코드로 변환합니다.

     

  5. IBM watsonx Code Assistant Service(WCA for Z)는 Microsoft Visual Studio Code (VS Code)에서 전달된 프롬프트 요청을 받아 Code Large Language Model (LLM)과 매칭을 수행하는 IBM watsonx.ai 애플리케이션입니다. WCA for Z는 COBOL 단락과 Java 클래스를 분석하여 선도적인 개발 관행을 따르는 코드 제안을 생성합니다.

     

  6. 코드 대규모 언어 모델(LLM)은 Z용 IBM Granite 모델을 기반으로 한 코드 생성용 생성형 AI 파운데이션 모델입니다. 또한 공급업체나 기업 사용자가 생성한 추가 COBOL 코드를 포함하도록 학습될 수도 있습니다.

     

  7. COBOL Programs는 독립 실행 프로그램이거나 더 큰 소프트웨어 시스템의 구성 요소로, Java 서비스로 리팩터링될 수 있습니다.

     

  8. Java Code는 WCA for Z가 생성한 코드로 입력된 COBOL 프로그램의 동작을 재현합니다.

사용 및 워크스루
COBOL 애플리케이션을 Java 코드로 리팩터링하는 과정을 보여주는 IBM Cloud 다이어그램
COBOL 소스에서 Java 코드를 생성하기 위한 구성 요소 간 상호 작용과 정보 흐름을 보여주는 솔루션 아키텍처 워크스루입니다.

위의 다이어그램은 WCA for Z의 구성 요소들이 어떻게 함께 작동하여 개발자가 COBOL 소스 코드를 Java로 변환할 수 있도록 하는지를 보여줍니다.

  1. 아키텍트는 ADDI의 기능을 사용하여 COBOL Code를 이해합니다. 이 제품은 Windows VM에서 실행되며 소스 코드를 스캔하여 아키텍트에게 애플리케이션 인사이트를 제공합니다. 소스 코드 분석 결과는 아키텍트가 Eclipse 기반 툴에서 접근할 수 있는 프로젝트에 저장됩니다. 이 툴을 사용하면 아키텍트는 서로 다른 프로그램 간 관계 시각화, 보고서 실행, 코드 검색 등 다양한 작업을 수행할 수 있습니다. 아키텍트는 이 툴을 사용해 리팩터링할 잠재적인 비즈니스 서비스를 식별함으로써 모놀리식 COBOL 애플리케이션의 현대화를 시작할 수 있으며 생성형 AI를 사용해 Java로 변환하는 옵션도 사용할 수 있습니다.

     

  2. ADDI는 분석 결과를 메타데이터 데이터베이스로 전송하며 이 데이터는 IBM watsonx Code Assistant Service에서 사용하는 데이터 세트에 추가됩니다.

     

  3. COBOL 개발자는 Refactoring Assistant를 사용하여 아키텍트가 모놀리식 애플리케이션에서 식별한 COBOL 비즈니스 서비스를 추출하기 시작합니다. Refactoring Assistant는 Linux VM에서 실행되는 컨테이너 기반 제품입니다. 이 제품은 개발자가 여러 기존 프로그램에서 비즈니스 기능을 구성하는 새로운 COBOL 서비스를 만들기 위해 관련 코드를 시각화하고 선택할 수 있는 웹 UI를 제공합니다. Refactoring Assistant는 ADDI 데이터베이스에 있는 COBOL 애플리케이션 분석 결과에 안전하게 접근하기 위해 ADDI에 연결됩니다.

     

  4. COBOL 개발자가 모든 코드를 선택하면 새로운 COBOL 프로그램을 워크스테이션으로 내보내 통합 개발 환경(IDE)에서 계속 개발할 수 있습니다.

     

  5. 리팩터링된 COBOL 단락은 Services Repo에 저장되며 Java 개발자가 변환 작업에 사용할 수 있도록 제공됩니다.

     

  6. Java 개발자는 VS Code의 Z Open Editor를 사용하여 IBM Cloud의 WCA for Z 서비스에 연결합니다. 이 서비스는 IBM® Cloud 계정을 사용하여 프로비저닝되며 AI 파운데이션 모델에 대한 접근을 제공합니다. Z Open Editor를 사용하면 Java 개발자는 다음과 같이 코드를 변환하고 생성할 수 있습니다.

    1. 먼저 Java 개발자는 VS Code에서 COBOL 단락을 선택하고 해당 내용을 WCA for Z 서비스로 전송하여 Java 클래스 정의로 변환합니다.

    2. 이후 VS Code에서 Java 개발자는 WCA for Z 서비스가 Java 코드 줄을 생성할 개별 Java 클래스를 선택합니다.

       

  7. 위 두 경우 모두에서 WCA for Z 서비스는 Code LLM을 사용하여 콘텐츠를 생성합니다. Code LLM은 여러 프로그래밍 언어로 학습된 생성형 AI 파운데이션 모델이며 COBOL을 Java로 변환하도록 미세 조정되었습니다.

     

  8. WCA for Z는 AI가 생성한 응답을 VS Code로 다시 전송하며 Java 개발자는 선도적인 개발 관행을 사용해 코드를 검토하고 컴파일하여 Java 서비스를 완성할 수 있습니다.

전제조건

  • Microsoft VS Code
  • IBM® Semeru Java 17 LTS SDK
  • IBM® Z Open Editor Extension for VS Code
  • Language Support for Java by Red Hat extension for VS Code
  • GitHub.com 계정
  • IBM® Watson Code Assistant에 연결
다음 단계

하이브리드 클라우드 배포 패턴 구현에 대해 전문가와 상담하세요.

기고자

Al HamidPete Nuwayser, Chris Kirby, Mihai Criveti 

업데이트 날짜: 2023년 12월 5일