KR20210059386A - 소프트웨어의 효율적인 통합 관리 시스템 - Google Patents

소프트웨어의 효율적인 통합 관리 시스템 Download PDF

Info

Publication number
KR20210059386A
KR20210059386A KR1020190146767A KR20190146767A KR20210059386A KR 20210059386 A KR20210059386 A KR 20210059386A KR 1020190146767 A KR1020190146767 A KR 1020190146767A KR 20190146767 A KR20190146767 A KR 20190146767A KR 20210059386 A KR20210059386 A KR 20210059386A
Authority
KR
South Korea
Prior art keywords
software
subsystem
software product
package
distribution
Prior art date
Application number
KR1020190146767A
Other languages
English (en)
Inventor
박종필
Original Assignee
박종필
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 박종필 filed Critical 박종필
Priority to KR1020190146767A priority Critical patent/KR20210059386A/ko
Publication of KR20210059386A publication Critical patent/KR20210059386A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 구성 관리 및 버전 제어, 변경 및 문제 관리, 구축, 패키징, 그리고 배포 및 설치 서브프로세스를 포함하는 소프트웨어 배송 프로세스에 관한 것이다. 상기 프로세스는 구성 관리 서브시스템, 변경 및 문제 관리 서브시스템, 구축 서브시스템, 패키징 서브시스템, 배포 서브시스템 및 추적 서브시스템을 포함하는 통합 관리 시스템에 의해 구현된다. 상기 서브시스템은 생산에 있어 개발시부터 설치시까지 소프트웨어의 전체 수명 주기동안 소프트웨어를 관리하도록 통합된다. 상기 추적 서브시스템은 상기 프로세스의 모든 단계에 걸쳐 배송 상태에 관한 정보를 다른 서브시스템으로부터 포착 및 통합시킨다.

Description

소프트웨어의 효율적인 통합 관리 시스템{Software efficient integrated management system}
본 발명은 일반적으로 소프트웨어 배송(software delivery) 분야에 관한 것이며, 특히 소프트웨어의 수명 주기 동안 소프트웨어 제품을 관리하도록 구성된 종단간(end-to-end) 소프트웨어 배송 프로세스를 개발시부터 설치시까지 전체적으로 관리하는 통합 시스템에 관한 것이다.
오늘날 대부분 기업의 업무 프로세스는 다양한 소프트웨어 애플리케이션에 의해 상당 부분 지원된다.
업무 프로세스는 새로운 업무 요구 사항에 적응하도록 꾸준히 진보하므로, 기업의 업무 프로세스를 지원하는 소프트웨어 시스템 및 애플리케이션의 구성요소(component)는 자주 변경되어야 하고, 새로운 요구 사항을 구현하도록 동
적으로 발전해야 한다.
이러한 변화하는 동적 환경에 있어서, 소프트웨어 배송 프로세스는 소프트웨어 애플리케이션 개발 영역에서뿐만 아니라 기업의 여러 상이한 영역, 활동 및 업무 프로세스에 있어서 중요한 역할을 한다.
결과적으로, 소프트웨어 배송 관리는 기업 시스템 관리 내의 소프트웨어 엔 지니어링 분야로서 발전해 왔으며, 이는 소프트웨어의 개선 및 소프트웨어 시스템 변경의 실시를 제어하는 데 초점이 맞추어져 있다.
소프트웨어 배송 관리의 주목적은 상이한 환경(예컨대 시험, 교육, 생산 환경 등)에서 새로운 소프트웨어를 정확히 설치하는 것뿐만 아니라, 이미 설치된 소프트웨어 애플리케이션에 적용될 변경 및 수정 사항의 제어를 가능하게 하는 것이다. 실제로, 소프트웨어 배송은 소프트웨어 애플리케이션의 새로운 개정판(release) 또는 버전(version)의 배치(즉 설치 및 실행), 기존 애플리케이션이 봉착한 버그나 문제를 극복하기 위한 수정판 및 패치의 배포 및 설치, 그리고 중앙화된 단일 관리 지점으로부터의 소프트웨어 시스템 구성 변경을 가능하게 한다. 소프트웨어 배송은 또한 시스템 고장 후에 현장에 방문하지 않고도 시스템을 재설치 및 재구성할 수 있게 해 준다.
실제로, 소프트웨어 배송은 단일 파일의 배포에서 소프트웨어 시스템 전체의 교체까지 아우를 수 있는, 복잡하고 섬세하며 시간이 드는 작업이다.
소프트웨어 시스템에 적용할 변경의 정도에 비례하여, 설치 도중에 에러 발생하거나 또는 기존에 설치된 소프트웨어와 충돌할 가능성이 증가한다. 소프트웨어 배송에 의해 동시에 많은 수의 시스템에 대하여 변경 사항을 적용할 수 있으므로, 이러한 변경이 시스템에 악영향을 미치지 않도록 하는 것이 매우 중요하다. 그렇지 않으면 이로 인해 대규모의 사용 중지, 또는 업무 손실까지도 야기될 수 있다.
일반적으로 말해서, 소프트웨어 배송 프로세스는 몇 가지 행위를 포함한다. 이러한 행위에는 예컨대, 배송될 소프트웨어 제품의 여러 구성요소(예컨대 소스 코 드 모듈, 이진 및 실행 파일, 구성 파일, 인터페이스, 데이터 모델, 데이터구조, 객체, 설치 및 구성 스크립트와 같은 프로시저, 사용자 가이드와 같은 문서 등)의 식별, 소프트웨어 제품 구성요소의 상이한 개정판 또는 버전의 관리, 소프트웨어 제품이 배송될 소프트웨어 시스템을 구성하는 요소 사이의 종속 관계 식별, 목표 시스템(즉 목표 환경 및 플랫폼)에서 소프트웨어를 실행시키는 데 필요한 아이템의 생성, 목표 플랫폼에 소프트웨어 제품을 설치하는 데 필요한 파일, 데이터, 스크립트 및 유틸리티를 포함하는 소프트웨어 패키지의 생성, 목표 시스템으로의 소프트웨어 패키지 배포, 배포된 소프트웨어 패키지를 목표 시스템에 설치하는 것이 포함된다.
앞서 약술한 전체 배송 프로세스의 일부 또는 서브 프로세스를 구현하기 위한 몇 가지 상이한 방법이 제안된 바 있다.
몇 가지 알려진 방법의 예를 이하 설명하기로 한다.
데이비스(Davis) 등의 미국 특허 제5,742,829호, 'Automatic software installation on heterogeneous networked client computer systems'에서는 이종 클라이언트 컴퓨터 시스템상에 소프트웨어를 자동으로 설치하는 방법을 제공한다.
콜린스 3세(Collins III) 등의 미국 특허 제 5,845,090호, 'System for software distribution in a digital computer network'에서는 소프트웨어 및 데이터를 프로그램 및 데이터{메소드(method)라고도 알려짐}와 함께 패키지라 불리는 단일 객체로 결합시킴으로써 네트워크에서 소프트웨어 및 데이터를 배포하고, 특정 기술을 이용하여 패키지를 한 컴퓨터에서 다른 컴퓨터로 전송하는 프로세스를 개시 하고 있다. 상기 프로세스는 배포 패키지(프로그램 및 데이터 설치), 수집 패키지(데이터 수집 메소드) 및 명령 패키지(시스템 관리 작업 메소드)의 전송을 위한 서브 프로세스를 포함한다.
글로우니(Glowny)의 미국 특허 제5,805,897호, 'System and method for remote software configuration and distribution'에서는 원격 소프트웨어 설치 및 유지 시스템 및 방법을 다루고 있다.
닐(Neal)의 미국 특허 제6,192,518호, 'Method for distributing software over network links via electronic mail'에서는 네트워크에서 전자 메일을 통해 소프트웨어 애플리케이션을 배포하는 방법, 장치 및 제품에 관하여 개시하고 있다.
홈즈(Holmes)의 미국 특허 제6,226,784호, 'Reliable and repeatable process for specifying, developing, distributing and monitoring a software system in a dynamic environment'에서는 프로젝트 관리 목적을 위한 일반적인 프로세스에 관하여 설명하고 있다. 상기 프로세스는 실험실 환경에 있어서 소프트웨어 개발 동안에만 소프트웨어의 수명 주기를 관리하는 것에 한정된 것이다.
상기 언급된 미국 특허는 본 명세서에 그 전체가 참조로서 포함되어 있다.
종래 기술에서 설명된 시스템 및 방법의 또 다른 예로서는, IBM 사의 국제 기술 지원 기구(International Technical Support Organization)에서 편찬한 'The Software Distribution Process'(SG24550400, 1999년 9월)에 설명되어 있는 소프트웨어 배포 및 설치 서브 프로세스가 있다. 이것이 어떻게 언제 구현되어 있는지에 관하여 매 단계별로 상세히 설명되어 있다. 그러나 소프트웨어 배포 프로세스에 포함되는 그 밖의 서브 프로세스에 대해서는 전체적으로 다루지 않았다.
기존의 방법 중 대부분은 전체 소프트웨어 배송 프로세스의 특정 서브 프로세스, 예컨대 배포 서브 프로세스 및/또는 원격 설치 서브 프로세스만을 다루는 것에 한정되어 있다. 그 밖의 기존 방법은 소프트웨어 프로젝트 관리라는 특정한 필요를 위한 것이며, 소프트웨어 제품의 개발부터 생산에 이르기까지 소프트웨어 제품의 전체 수명 주기에 걸쳐 업무환경에서의 소프트웨어 배송 프로세스를 구현하는 데 적용될 수는 없다.
종래 기술의 시스템 및 방법을 실제로 구현하기 위해, 대다수 기업의 정보기술(IT) 조직은 전체 소프트웨어 배송 프로세스의 특정 서브 프로세스를 구현하기 위한 여러 가지 별개의, 고립된 이종 서브시스템을 설치해 왔다. 예컨대, 특정구성 관리 시스템(또는 애플리케이션)을 이용하여 상이한 버전의 코드를 제어할 수 있고, 무관한 시스템(또는 애플리케이션)을 이용하여 변경 사항을 관리할 수 있고, 그 밖의 시스템을 이용하여 소프트웨어 제품 및 이들의 솔루션에 있어서의 문제를 추적할 수 있고, 또 다른 별개의 툴을 사용하여 소프트웨어 제품을 상이한 환경에 배포할 수 있다.
적절한 종단간 소프트웨어 배송 프로세스의 부족, 또는 고립된 독립 시스템에 의한 프로세스의 구현으로 인해 종종 저질 소프트웨어 제품의 생산, 배송 계획의 차질, 비용 초과, 또는 소비자 수요 충족 불능이 야기된다.
본 발명의 출원인은 현재의 방법으로는 소프트웨어 애플리케이션의 상이한 구성요소에 대한 변경 사항의 특징, 이들 간의 종속성 및 관계, 이들이 실행되는 복 수의 플랫폼, 이들의 복수의 버전 및 상이한 환경(예컨대 개발, 구축, 유닛테스트, 기능 테스트, 통합 테스트, 회귀 테스트, 시스템 테스트 및 생산)을 통한 개선 사항을 포괄하지 못한다. 따라서 개발에서부터 제품 설치에 이르기까지 수명 주기 전체에 걸쳐 소프트웨어 시스템을 관리할 수 있는 종단간 소프트웨어 배송 프로세스의 필요성이 대두된다.
이러한 필요에 성공적으로 대처하기 위해, 전체 종단간 소프트웨어 배송 프로세스를 이루는 여러 가지 행위는 서로 독립적이거나 고립된 것이 아니어야 한다. 반대로, 이들 전부는 아니더라도 대부분은 서로 연관되어 있어야 한다. 사실, 각 행위는 다른 행위가 필요로 하는 출력을 생성하므로, 이러한 행위들은 연결되어야 한다. 또한 종단간 소프트웨어 배송 프로세스는 새로운 소프트웨어 제품(예컨대 새로운 애플리케이션)의 전체 수명 주기에 걸쳐 상기 제품을 전체적으로 관리하며, 프로세스 전반에 걸쳐 상기 제품의 통일성을 유지시켜야 한다. 또한 소프트웨어 배송 프로세스는, 동일한 또는 상이한 목표 시스템에서 실행되는 그 밖의 구성요소 및 소프트웨어 제품과도 관련된, 상이하지만 상호연관된 부분을 포함하는 소프트웨어 제품을 고려해야 한다.
따라서, 앞서 언급한 모든 요구 사항을 충족시키는 전체적인 솔루션에 대한 필요성은 물론, 상이한 상호 관련 부분으로 이루어진 소프트웨어 제품을 고려하고 그 통일성을 유지하면서 제품의 전체 수명 주기동안 이를 전체적으로 관리하는 통합 관리 시스템에 기초한 종단간 소프트웨어 배송 프로세스에 대한 필요성이 존재한다.
발명의 상세한 설명 본 발명은 앞서 언급한 문제의 해결을 지향한다
도 1은 일반 기업의 정보 인프라스트럭처를 간략하게 나타낸 도면.
도 2는 본 발명의 바람직한 실시예에 따른 소프트웨어 배송 통합 관리 시스템의 블록도.
도 3은 본 발명의 바람직한 실시예에 있어서, 도 2의 통합 관리 시스템에 의해 종단간 배송 프로세스를 구현하는 방법의 주요 단계를 도식적으로 나타낸 흐름도.
도 4는 도 2의 통합 관리 시스템 및 이것의 추적 서브시스템에 의해 구현된 소프트웨어 배송 프로세스의 서브프로세스간의 정보 교환을 도식적으로 나타낸 개략도.
본 발명은 앞서 언급한 문제의 해결을 지향한다.
특히, 본 발명의 목적은 충족되어야 할 주요 요건에 부응하면서 현재의 소프트웨어 제품 배송 시스템 및 방법을 개선하는 것이다.
본 발명의 첫 번째 태양에 의하면, 네트워크 환경에서 목표 소프트웨어 제품 실행 유닛으로의 소프트웨어 제품 배송 프로세스를 관리하기 위한 통합 데이터 처리 시스템이 제공되며, 여기서 목표 유닛은 소프트웨어 제품 테스트 환경, 소프트웨어 제품 사용자 교육 환경, 또는 네트워크 환경 내의 생산 환경에 속한 것일 수 있다. 통합 데이터 처리 시스템은, 적어도 하나의 소프트웨어 제품의 소프트웨어 구성요소를 저장하기 위한 중앙 저장소와, 상기 중앙 저장소 내의 배송될 소프트웨어 제품의 소프트웨어 구성요소를 식별하기 위한 제1 서브시스템과, 상기 제1 서브시스템에 의해 식별된 소프트웨어 구성요소로부터 적어도 하나의 소프트웨어 제품 패키지를 생성하기 위한 제2 서브시스템과, 상기 제 2 서브시스템에 의해 생성된 적어도 하나의 소프트웨어 제품을 목표 소프트웨어 제품 실행 유닛에 배포하기 위한 제3 서브시스템을 포함한다.
소프트웨어 제품 패키지가 배포될 목표 실행 유닛은 상기 제2 서브시스템에 의해 상기 적어도 하나의 소프트웨어 패키지에 할당된 역할을 나타내는 표시에 따라 판정된다.
바람직한 실시예에 있어서, 통합 데이터 처리 시스템은 상기 식별된 소프트웨어 구성요소로부터 상기 제2 서브시스템에 의해 생성되고 상기 제3 서브시스템에 의해 배포되는 적어도 하나의 소프트웨어 제품 패키지를 저장하기 위한 소프트웨어 배포 저장소를 포함한다.
상기 제1 서브시스템은 또한 배송될 소프트웨어 제품의 소프트웨어 구성요소의, 상기 중앙 저장소에 있는 스토리지(storage)를 관리한다.
통합 데이터 처리 시스템은, 배송될 소프트웨어 제품의 식별된 소프트웨어 구성요소 중 소프트웨어 코드 구성요소 구축 프로세스를 수행하기 위한 제4 서브시스템을 더 포함하는 것이 바람직하다.
바람직한 실시예에 있어서, 통합 데이터 처리 시스템은 이미 배송된 소프트웨어 제품에 변경 및/또는 수정 사항을 적용하는 프로세스를 관리하기 위한 제5 서브시스템 및 소프트웨어 제품의 배송 도중 통합 데이터 처리 시스템의 기타 서브시스템에 의해 제공되는 정보를 기록하기 위한 제6 서브시스템을 더 포함하는 것이 바람직하다.
본 발명의 또 다른 태양은, 네트워크 환경에서 목표 소프트웨어 제품 실행 유닛으로 소프트웨어 제품을 배송하는 방법이다. 상기 방법은, 중앙 저장소에 적어도 하나의 소프트웨어 제품의 소프트웨어 구성요소를 저장하는 단계와, 상기 중앙 저장소에 저장된 소프트웨어 구성요소 중 배송될 소프트웨어 제품의 소프트웨어 구성요소를 식별하는 단계와, 식별된 소프트웨어 구성요소로부터 적어도 하나의 배포 가능한 소프트웨어 제품 패키지를 생성하는 단계와, 목표 소프트웨어 제품 실행 유닛에 상기 소프트웨어 제품 패키지를 배포하고 이를 설치하는 단계를 포함한다.
본 발명의 특징 및 장점은, 본 발명을 한정하는 것이 아닌 실시예 및 첨부된 도면에 의해 제공되는 바람직한 실시예의 상세한 설명에 의해 더욱 자명해 질 것이다.
실시예
본 발명은 정보 인프라스트럭처를 갖는 일반 기업 내에서 전체적인 종단간 소프트웨어 배송 프로세스를 구현하기 위한 통합 관리 시스템 및 방법을 제공한다.
일반 기업의 정보 인프라스트럭처를 도 1에 도시하였다. 참조 번호 101로 포괄적으로 나타낸 인프라스트럭처는 예컨대 LAN, WAN 또는 이들의 조합이나 기타 종류의 네트워크인 네트워크(105)에 의해 네트워킹된 개인용 컴퓨터, 워크스테이션, 서버 등 상이한 속성의 복수의 플랫폼(103)을 포함한다. 플랫폼(103)은 예컨대 소프트웨어 제품이 테스트되는 테스트 환경(TEST), 소프트웨어 제품의 최종 사용자가 사용 교육을 받는 교육 환경(TRAIN), 기업의 일상적인 업무 관리에 쓰이도록 소프트웨어 제품이 실행되는 생산 환경(PROD)과 같은 다수의 상이한 환경에 속한 것일 수 있다.
기업은 또한 기업 정보 인프라스트럭처를 관리하는 기능을 갖는 정보 기술 조직(IT_ORG)을 갖는다. IT 조직은 일반적으로 예컨대 새로운 소프트웨어 또는 기존 소프트웨어 제품의 새 개정판이나 버전의 개발을 담당하는 소프트웨어제품 개발 팀(DEV), 소프트웨어 코드로부터 시작하여 목표 환경에서 소프트웨어를 실행시키는 데 필요한 모든 아이템을 구축하는 프로세스를 담당하는 소프트웨어 제품 구축팀(BUILD), 정해진 환경 내의 목표 플랫폼(103)에 배포될 소프트웨어 패키지의 생성을 담당하는 소프트웨어 패키지 생성 팀(PACK) 및 정해진 환경 내의 정해진 목표 플랫폼에 대한 소프트웨어 배포 및 설치를 담당하는 소프트웨어 패키지 배포팀(DISTR)과 같은 여러 팀을 포함한다. 여러 팀의 구성원들은 통합 서버(109)에 네트워킹되고, 다시 기업 네트워크(105)에 연결된 플랫폼(107)에서 운영된다.
본 발명에 있어서 적절한 전체적인 종단간 소프트웨어 배송 프로세스는 이하의 서브 프로세스, 즉 구성 관리 및 버전 제어, 변경 및 문제 관리, 구축, 패키징, 배포 및 설치를 포함할 수 있다.
구성 관리 및 버전 제어 서브프로세스는 예컨대 소스 코드 모듈, 이진 및 실행 파일, 구성 파일, 인터페이스, 데이터 모듈, 데이터 구조, 객체, 프로시저(설치 및 구성 스크립트) 및 문서와 같은 소프트웨어 제품의 구성 요소를 식별할 수 있도록 해 준다. 또한 이 서브프로세스는 개발 수명 주기동안 소프트웨어 제품 구성요 소의 상이한 개정판 및 버전을 관리하고 이들의 개선 사항을 파악해 놓는다. 이는 또한 소프트웨어 제품이 배송될 목표 소프트웨어 시스템(예컨대 플랫폼, 운영 체제, 미들웨어, 네트워크 고려 사항 등)의 요소간의 가능한 의존 관계를 식별할 수 있도록 해 주며, 또한 이러한 모든 요소를 함께 모아 전체적으로 관리할 수 있도록 해 준다. 따라서 이 서브프로세스는 특정 환경 및 국면(phase)에서 목표 소프트웨어 시스템의 상태를 임의의 시점에서 판정하는 것을 가능하게 한다.
변경 및 문제 관리 서브프로세스는 코드를 개선하도록 구현된 변경 사항 또는 직면한 오류를 해결하도록 개발된 수정사항을 제어할 수 있게 해 준다. 변경 또는 버그 수정을 구현하도록 개발팀에 의해 생성 또는 수정된 소프트웨어 구성요소를 식별 및 제어해야 하므로, 이러한 서브프로세스는 구성 관리 및 버전 제어 서브프로세스와 완전히 일체로 동작할 수 있다.
구축 서브프로세스는 특정 목표 시스템, 즉 특정 목표 환경 및 플랫폼에서 소프트웨어 제품을 실행시키는 데 필요한 아이템을 생성시킨다. 이러한 서브프로세스의 성공적인 구현에는 구성 관리 및 버전 제어 서브프로세스의 정확한 구현이 필요하다. 이를 위해, 구축 서브프로세스에서는 무엇이 변경될 필요가 있고, 구축 프로세스에 쓰이는 요소를 어디서 찾을 수 있으며, 어느 프로시저가 트리거되어야 하는지 알아야만 소프트웨어 제품의 새로운 버전을 성공적으로 생산할 수 있다.
패키징 서브프로세스는 설치 서브프로세스를 지원하는 데 필요한 파일, 데이터, 스크립트 및 유틸리티를 포함하는 설치 가능한 형식의 소프트웨어 패키지를 생성한다. 설치 서브 프로세스의 정확성을 보장하기 위해, 필수적으로는 아니더라도 자동으로(즉 최종 사용자의 개입 없이) 설치가 이루어지는 것이 바람직하다. 이를 위해, 생성된 패키지는 설치 서브 프로세스동안 요청되는 파라미터, 옵션 또는 가능한 응답의 값이 정확히 기록될 수 있는, 필요한 응답 파일을 또한 포함할 수 있다.
배포 서브프로세스는 패키징 서브프로세스에서 생성된 소프트웨어 패키지가 목표 시스템에 설치 및 사용될 수 있도록 준비시킨다.
마지막으로, 설치 서브프로세스는 배포된 소프트웨어 패키지를 목표 시스템, 즉 대응 환경(예컨대 테스트, 생산, 교육 등)의 정해진 목표 플랫폼에 설치한다. 이 서브프로세스는 또한 소프트웨어 패키지 설치의 결과 목표 시스템에 가해진 변화를 기입한 로그(log) 파일을 생성시킨다. 설치 서브프로세스는 또한 성공적이고 정확한 설치의 완료를 배포 관리팀에 알리거나, 또는 설치가 실패한 경우의 동작을 트리거할 수 있다.
본 발명의 바람직한 실시예에 따른 통합 관리 시스템은 소프트웨어 배송 프로세스를 이루는 상이한 서브프로세스를 구현하는 복수의 상이한 서브시스템을 포함한다.
특히, 본 발명의 바람직한 실시예에 따른 통합 관리 시스템은 구성 관리 및 버전 제어 서브프로세스를 구현시키는 구성 관리 서브시스템, 변경 및 문제 관리 서브프로세스를 구현하는 변경 및 문제 관리 서브시스템, 구축 서브프로세스를 구현하는 구축 서브시스템, 패키징 서브프로세스를 구현하는 패키징 서브시스템 및 배포 및 설치 서브프로세스를 구현하는 배포 서브시스템을 포함한다.
각 서브시스템은 소프트웨어 배송 프로세스의 하나 또는 그 이상의 특정 서브프로세스를 수행한다. 서브시스템은 고립된 것이 아닌, 개발부터 설치에 이르기까지 소프트웨어 제품의 전체 수명 주기에 걸쳐 이를 관리하기 위해 통합 및 상호 관련되어 있는 것이다.
또한, 본 발명의 바람직한 실시예에 따른 통합 관리 시스템은 다른 서브시스템에 통합 및 상호 연관된 추적 서브시스템을 포함한다. 추적 서브시스템은 소프트웨어 배송 프로세스의 여러 국면에 걸쳐 다른 서브시스템으로부터 소프트웨어 배송 상태에 관한 정보를 포착 및 통합시킨다. 프로세스의 국면 및 국면 내에서 탐지된 이슈(issue)가 추적 서브시스템에 기록될 수 있다. 또한 추적 서브시스템은 IT 조직 내의 다양한 팀의 구성원에게 이들의 조직 내에서의 역할 및 책임에 따라 소프트웨어 배송 프로세스에 관한 정보를 알려줄 수 있다.
도 2는 본 발명의 바람직한 실시예에 따른 종단간 소프트웨어 배송 통합 관리 시스템의 블록도를 나타내고 있다. 통합 관리 시스템은 전체적으로 참조 번호 201로 표시되며, 구성요소 서브시스템은 기능 블록으로서 표시되었다. 특히 구성 관리 서브시스템은 블록(203)(CMss), 구축 서브시스템은 블록(205)(Bss), 패키징 서브시스템은 블록(207)(Pss), 배포 서브시스템은 블록(209)(Dss), 변경 및 문제 관리 서브시스템은 블록(211)(Camp;PMss)으로 나타내었다. 또한 추적 서브시스템은 블록(213)(Tss)으로 나타내었다.
기업 IT 조직의 개발팀(DEV)과 상호작용하는 구성 관리 서브시스템(203)은 관련된 안전한 중앙 저장소(CR)(215)를 가지며, 구축 서브시스템(205), 패키징 서 브시스템(207) 및 변경 및 문제 관리 서브시스템(211)과 상호작용을 한다.
다시, 패키징 서브시스템(207)은 배포 서브시스템(209)과 상호작용한다. 본 발명의 바람직한 실시예에 있어서, 배포 서브시스템(209)은 관련 소프트웨어 배포 저장소(DR)(217)를 갖는다. 패키징 서브시스템(207)은 소프트웨어 배포 저장소(217)를 액세스할 수 있다.
배포 서브시스템(209)은 예컨대 생산 환경(PROD) 및 테스트 환경(TEST)과 같은 정해진 환경의 정해진 목표 플랫폼(103)에 대해 이후의 설치를 위해 소프트웨어 제품 설치를 배포할 수 있다.
변경 및 문제 관리 서브시스템(211)은 소프트웨어 제품이 설치된 여러 환경의 목표 플랫폼으로부터 피드백을 수신한다.
IT 조직의 개발팀(DEV)은 설치된 소프트웨어 제품의 문제에 대한 변경 및 수정 사항의 개발 국면에 변경 및 문제 관리 서브시스템(211)과 상호작용한다. 변경 및 문제 관리 서브시스템은 설치된 소프트웨어 제품에 필요한 변경 및 수정 사항을 개발팀에게 알린다.
구성 관리 서브시스템(103), 구축 서브시스템(105), 패키징 서브시스템(107), 배포 서브시스템(109) 및 변경 및 문제 관리 서브시스템(111)은 모두 추적 서브시스템(113)과 상호작용할 수 있다.
도 2에서, 서브시스템, 저장소, 목표 환경 및 개발팀간의 기능적 상호작용이 간략한 선으로 도시되어 있다.
앞서 설명한 서브 시스템을 구현하고 이들이 통합 관리 시스템을 형성하도록 서로 통합시키기 위해서는, 프로젝트의 요구 사항에 따라 기존의 소프트웨어 제품 및 툴은 물론 이러한 목적을 위해 특정하게 개발된 소프트웨어 구성요소를 사용할 수 있다.
다양한 서브시스템의 특정 기능에 대해 이하 더욱 상세히 설명하기로 한다.
일반적으로 말해, 구성 관리 서브시스템(203)은 소프트웨어 배송 프로세스의 구성 관리 및 버전 제어 서브프로세스를 구현한다. 특히, 이 서브시스템은 예컨대 소스 코드 모듈, 빌드 스크립트(즉 메이크파일), 이진 및 실행 파일, 인터페이스, 데이터 모델, 데이터 구조, 객체, 구성 파일, 설치 스크립트 및 응답 파일, 구성 스크립트 및 문서 구성요소(예컨대 배송 정보, 구축 가이드, 관리 가이드, 작동 가이드 및 사용자 가이드 등)와 같은 소프트웨어 제품 구성요소의 식별, 조직 및 제어 작업을 수행한다.
소프트웨어 제품의 상기 구성요소는 예컨대 개발팀에 의해 개발되거나 소프트웨어 벤더(vendor)로부터 구입할 수 있으며, 개발팀에 의해 구성 관리 서브시스템(203)에 제공될 수 있다.
구성 관리 서브시스템(203)은 관련 안전 중앙 저장소(215)에 소프트웨어 구성요소를 저장시킨다.
또한, 구성 관리 서브시스템(203)은 소프트웨어 구성요소의 전체 수명 주기에 걸쳐 이들의 버전을 제어 및 관리하며, 이들의 개선 사항을 파악하거나(상태 판정 준비를 가능하게 함) 또는 특정 환경에서의 코드 버전을 파악한다.
구성 관리 서브시스템(203)은 소프트웨어 제품을 이루는 소프트웨어 구성요 소간의 의존성 및 관계를 기록할 수 있도록 해주며, 이들을 모두 모아 전체적으로 관리할 수 있도록 한다.
따라서, 구성 관리 서브시스템(203)은 소프트웨어 제품의 통일성을 보장할 뿐만 아니라, 전체 시스템의 통일성도 보장한다. 이러한 모든 기능으로 인해 복잡도가 감소되고 구현 시간이 줄어들게 되며, 소프트웨어 생산 프로세스의 품질 및 생산성을 향상시키며, 이전 소프트웨어 버전의 재활용을 용이하게 한다.
변경 및 문제 관리 서브시스템(211)은 소프트웨어 배송 프로세스의 변경 및 문제 관리 서브프로세스를 구현한다. 특히, 이 서브시스템은 이하의 기능을 수행한다.
·소프트웨어 제품에 대한 변경 구현 및 오류 해결의 제어
·변경 및 문제 관리 서브프로세스의 단계들을 지원. 이러한 단계에는 예컨대 테스트, 교육, 또는 생산 환경 중 하나에 이미 설치된 소프트웨어 제품의 문제점 탐지, 변경 승인, 출력 검증, 변경 또는 버그 수정의 구현 등이 포함된다.
·변경 및 문제를 파악하고, 변경 및 문제 관리 서브 프로세스가 성공적으로 구현되고 변경이 적절하게 인증되었는지를 확인
·의사 결정, 비용, 노력 및 시간 절감이 가능하도록 변경 및 문제의 영향을 평가
·본 서브시스템 내에서 기록 및 관리되는 유사한 오류에 근거하여 문제 판정 프로세스를 촉진
·어느 코드 요소가 애플리케이션 문제의 근원인지, 또는 변경을 구현하기 위해 어느 코드 요소가 수정되어야 하는지를 식별
·새로운 버전의 소프트웨어 제품에서 해결된 문제들을 제작된 변경 및 수정 사항과 연관시킴으로써 복수의 버전 및 환경에 걸쳐 특정 소프트웨어 요소에 대한 이들의 격리를 가능하게 함
정확한 문제 및 변경 관리를 달성하기 위해, 강력하고 적절한 구성 관리뿐만 아니라 효율적인 버전 제어가 필요하다. 이를 위해, 변경 및 문제 관리 서브시스템(211)은 구성 관리 서브시스템(203)에 완전히 통합될 수 있다. 완전한 통합이라 함은 최종 사용자가 버전 및 개정판을 판정할 수 있고, 중앙 저장소(215)에 있는 변경될 소프트웨어 구성요소의 기타 성질을 판정할 수 있다. 구성 관리 서브시스템(203)과 변경 및 문제 관리 서브시스템(211)은 단일 서브시스템으로 간주될 수 있으며, 구성 기능, 버전 제어, 변경 및 문제 관리를 구현한다.
구축 서브시스템(205)은 소프트웨어 배송 프로세스의 구축 서브프로세스를 구현한다. 특히, 이 서브시스템은 중앙 저장소(215)에 저장된 소스 코드가 정확히 구축되었는지를 확인하는 기능 및 목표 시스템 상에서 소프트웨어 제품을 실행시키는 데 필요한 이진 파일을 생성하는 기능을 갖는다. 이 서브시스템은 또한 이진 파일이 어느 소스 코드로부터 생성되었는지를 식별할 수 있도록 해 준다.
더욱 상세히 말하자면, 구성 관리 서브시스템(203)의 제어 하에서 구축 서브시스템(205)은 필요한 소스 코드 구성요소를 중앙 저장소(215)로부터 자동으로 추출하며, 소프트웨어 제품을 구축하는 데 필요한 스크립트 및 기타 요소를 구축한다. 다음으로, 이 서브 시스템은 이들 구성요소를 적절한 구축 시스템에 전송한다. 소스 코드의 종류에 따라 구축 서브시스템(205)은 적합한 구축 스크립트, 구축 시스템 및 목표 실행 플랫폼 및 환경을 트리거시킴으로써 대응되는 버전의 소프트웨어를 얻게 된다.
그 후 서브시스템(205)은 생성된 이진 파일을 중앙 저장소(215)에 자동으로 저장하며, 이들이 어느 소스로부터 생성되었는지를 파악해 놓는다.
소프트웨어 시스템이 IT 조직의 내부에서 개발된 것이 아니고 소프트웨어 벤더로부터 구입한 것인 경우, 대부분의 경우 이진 파일만이 전송될 뿐 생성되는 것이 아니다. 이러한 경우, 구축 서브프로세스는 수행될 필요가 없다. 기업 IT조직의 개발팀은 소프트웨어 벤더가 제공하는 이진 파일을 구성 관리 서브시스템에 공급하고, 공급된 파일은 소프트웨어 제품의 기타 구성요소와 함께 중앙 저장소(215)에 저장된다.
패키징 서브시스템(207)은 소프트웨어 배송 프로세스의 패키징 서브프로세스를 구현하며, 정해진 환경의 목표 플랫폼에 배포 및 설치될 수 있도록 준비된 소프트웨어 제품의 패키지를 생성한다. 더욱 상세히 말하자면, 패키징 서브시스템(207)은 배포에 대비하여 압축된 소프트웨어 패키지를 생성한다. 이러한 패키지는 구축 서브프로세스에서 생성되거나 또는 소프트웨어 벤더가 제공한 소프트웨어 제품의 이진 파일 및 그 밖의 필요한 파일(예컨대 구성 파일, 목표 플랫폼상의 자동 설치에 필요한 초기화 파일 및 응답 파일, 또는 최종 사용자 문서 등)을 포함한다. 이러한 파일들은 중앙 저장소(215)에 저장된 소프트웨어 제품을 이루는 구성요소를 식별하는 구성 관리 서브시스템(203)의 제어 하에 중앙 저장소(215)로부터 패키징 서브시스템에 의해 자동으로 추출된다. 패키지의 내용은 애플리케이션 코드 및 목표 실행 플랫폼(하드웨어, 운영 체제, 미들웨어)의 종류에 따라 다르지만, 패키징 서브 프로세스 및 패키지 형식은 패키지내용과 무관할 수 있다.
그 후 IT 조직의 패키징 팀이 제공하고 추적 서브시스템에 기록된 정보에 기초하여, 패키징 서브시스템(207)은 소프트웨어 제품이 최종적으로 설치될 목표 시스템의 역할에 부합해야 하는 역할을 생성된 소프트웨어 패키지에 할당한다. 예컨대 목표 시스템의 역할은 윈도우 NI SQL 서버, MQ 시리즈 클라이언트, SAP NT 서버 등일 수 있다.
패키징 서브시스템(207)은 생성된 소프트웨어를 소프트웨어 배포 서브시스템(209)의 소프트웨어 배포 저장소(217)에 저장시키는 것이 바람직하다. 이로 인해, 추적 서브시스템(213)이 제공하는 정보를 활용하여 각 플랫폼상의 소프트웨어 제품의 모든 구성요소를 용이하게 식별할 수 있으며, 이에 의해 이들 구성요소 각각의 정확한 버전을 포함하는 설치 가능한 대응 패키지를 소프트웨어 배포 저장소(217)로부터 가져올 수 있다. 또한 소프트웨어 애플리케이션의 각 버전은 오직 한 번 구축 및 패키징될 수 있고 추후 수정될 수 있는 바, 상기 패키지는 소프트웨어 배포 서브시스템(209)의 소프트웨어 배포 저장소(217)에 저장되기 때문이며, 설치 결과가 목표 환경(예컨대 유닛 테스트 환경, 기능 테스트 환경, 통합 테스트 환경, 회귀 테스트 환경, 시스템 테스트 환경 또는 생산 등)에 관계없이 동일하게 되도록 보장한다.
소프트웨어 배포 서브시스템(209)은 소프트웨어 배송 프로세스의 배포 및 설 치 서브프로세스를 구현하며, 정해진 환경의 정확한 목표 플랫폼에 대한 소프트웨어 패키지의 배포 및 설치를 수행한다. 소프트웨어 배포 저장소(217)에 저장될 수 있는, 배포될 소프트웨어 패키지는 소프트웨어 제품의 이진 파일 및 그 밖의 필요한 파일(예컨대 구성 파일, 자동 설치에 필요한 초기화 파일 및 응답 파일 등)을 포함하며, 따라서 통합 관리 시스템이 요구하거나 목표 플랫폼이 강제하는 패키지 설치가 일단 개시된 후에는 사용자의 개입이 필요하지 않게 되어 정확한 설치 프로세스를 보장하게 된다.
소프트웨어 패키지의 배포 및 설치는 통상의 배포 방법 중 어느 하나, 예컨대 직접 액세스 배포, 스트리밍 배포, 재지정 배포, 직렬 배포, 웹 서버로의 출판 배포, 또는 이메일을 통한 전달 배포 등에 따라 수행될 수 있다. 이러한 모든 방법은 서로 상이함에도 불구하고 '풀(pull)' 배포 기술이나 '푸시(push)' 배포 기술, 또는 이들의 조합('푸시-풀' 배포 기술) 중 하나를 이용한다. 풀 배포 기술에서는, 목표 플랫폼 상에 소프트웨어를 설치하고자 하는 최종 사용자에 의해 소프트웨어 패키지의 배포가 트리거된다. 푸시 배포 기술에서는, 소프트웨어 배포 저장소(217)로부터 목표 플랫폼으로 소프트웨어 패키지를 내려보내는 소프트웨어 배포 서브시스템(209)에 의해 배포가 개시된다. 푸시-풀 배포 기술에서는 소프트웨어 패키지의 배고파 푸시 및 풀 기술의 조합에 의해 수행된다. 상이한 환경에 따라 이들 기술 중 어느 하나를 구현 및 적용할 수 있다.
프로젝트 지령에 따라 소프트웨어 패키지의 설치가 인증되면, 추적 서브시스템(213)은 이를 테스트 팀, 기술팀, 최종사용자, 또는 임의의 관련 전문가(목표 환경에 따라 다름)에게 통지할 수 있다.
배포 서브시스템(209)은 패키징 서브시스템(207)이 할당한 역할에 따라 소프트웨어 패키지를 배포한다.
추적 서브시스템(213)은 엄밀히 말해 소프트웨어 배송 프로세스 중 어느 특정한 서브프로세스를 구현해야하는 것은 아니다. 오히려 이 서브시스템은 다른 서브시스템으로부터 수집된, 일반 소프트웨어 제품의 배송 프로세스 상태에 관한 정보를 편집한다. 수행되는 모든 프로세스 단계, 모든 세부 사항 및 통합 관리 시스템에서 탐지되는 모든 이벤트마다 추적 서브시스템(213)에 의해 기록될 수 있다. 예컨대 정보 툴로서 이 서브시스템은 상이한 소프트웨어 제품의 배송 및 소프트웨어 레벨, 구축 결과, 배포 또는 설치 결과 및 배송 상태에 관한 정보를 제공할 수 있다.
본 발명의 바람직한 실시예에 있어서, 추적 서브시스템(213)은 전자 메일(e-mail) 툴을 포함하며, 예컨대 배송 상태의 변화가 생긴 경우와 같은 정해진 이벤트가 발생하면 상기 툴은 배송 프로세스에 관련된 전문가에게 전자 메일 메시지 통지의 형태로 이를 자동으로 통지한다. 전자 메일 메시지에 의한 자동 통지에 의해 팀의 구성원은 적합한 시기에 배송 상태에 관한 정보를 알게 된다. 특히 이 서브시스템은 배포를 담당하는 팀에게 소프트웨어 패키지의 배송에 관해 알려준다.
앞서 설명한 통합 관리 시스템은 이하의 단계를 포함하는 종단간 소프트웨어 배송 방법을 수행한다.
·중앙 저장소(215)에 소스 코드 일부를 적재하면서, 구성 관리 서브시스템(203)의 제어 하에 IT 조직의 팀(예컨대 구성 관리 팀)이 소프트웨어 제품의 버전을 버전 번호, 플랫폼, 언어, 개발팀 등의 관련 세부 사항을 포함하여 추적 서브시스템(213)에 기록하는 단계
·버전 번호를 할당하고, 코드를 저장하며, 수반되는 문서를 제어하는 구성 관리 서브시스템(203) 내의 소스 코드를 관리하는 단계
·소프트웨어 벤더가 제공하지 않는 경우, 구성 관리 서브시스템(203)의 제어 하에 구축 서브시스템(205)에 의해 중앙 저장소(215)에 저장된 소스 코드로부터 이진 파일을 구축하는 단계
·구성 관리 서브시스템(203)의 제어 하에, 생성된 이진 파일 및 소프트웨어 제품의 기타 구성요소(예컨대 구성 및 설치 스크립트)를 중앙 저장소(215)에 적재하는 단계
·구성 관리 서브시스템(203)의 제어 하에 중앙 저장소(215)로부터 이진 파일, 문서, 구성 및 설치 스크립트를 추출하고, 패키징 서브시스템(207)에 의해 배포될 소프트웨어 패키지를 생성하는 단계
·정해진 목표 환경의 정해진 목표 플랫폼에 소프트웨어 패키지를 배포하기 위해, 생성된 소프트웨어 패키지를 배포서브시스템(209)에 전달하는 단계
·배포 서브시스템(209)의 제어 하에, 정해진 환경의 목표 플랫폼에 소프트웨어를 배포 및 설치하는 단계
·프로세스 도중에 상기 단계 및 이슈를 추적 서브시스템에 기록하여 추적 서브시스템을 갱신하는 단계
또한, 상기 방법은 변경 및 문제 관리 서브시스템(211)의 제어 하에, 이미 배송된 소프트웨어 제품에 대한 소프트웨어 변경 및 수정 사항의 관리를 제공한다.
이제 도 3을 참조하면, 앞서 설명한 통합 소프트웨어 배송 시스템에 의해 본 발명에 따라 종단간 배송 프로세스를 구현하는 방법의 바람직한 실시예를 간단한 흐름도로 나타내고 있다.
이후 설명할 방법의 실시예는 새로운 소프트웨어 제품이 기업 IT 조직의 개발팀에 의해 완전히 내부적으로 개발된 경우를 참조한다. 그러나 본 발명에 따른 방법은 소프트웨어 제품이 내부적으로 개발되는지 또는 소프트웨어 벤더에 의해 제공되는 지와 무관하게 전체 종단간 소프트웨어 배송 프로세스를 구현하도록 되어 있다. 후자의 경우, 상기 방법의 일부 단계(구축 프로세스와 관련된 단계)는 실행될 필요가 없다.
상기 방법은 IT 조직의 개발팀이 새로운 소프트웨어 제품을 개발하기로 결정하거나, 또는 버그 수정이나 일부 변경을 위해 기존의 소프트웨어의 새로운 개정판이나 버전을 개발하기로 결정한 경우에 바로 개시된다.
우선 개발팀은 개발되는 소프트웨어 제품의 관련 세부 사항을 추적 서브시스템(213)에 기록한다(블록 301) 기록되는 정보에는 예컨대 소프트웨어 제품의 명칭, 개정판/버전 번호, 개발팀장의 성명, 목표 실행 플랫폼의 명칭, 언어 코드, 제품 참조 문헌, 수정된 문제점, 구현된 변경 사항 등이 포함될 수 있다.
다음으로 구성 관리 서브시스템(203)의 제어 하에, 개발팀은 소프트웨어 제품의 구축 및 실행에 필요한 소프트웨어 제품의 구성요소를 중앙 저장소(215)에 적 재시킨다. 이러한 요소에는 예컨대 소스 코드 모듈, 빌드 스크립트(즉 메이크파일), 빌드 문서, 인터페이스, 데이터 모듈, 데이터 구조, 객체, 구성 스크립트 또는 파일, 자동 설치를 위한 설치 스크립트 및 응답 파일 등과 함께, 배송 정보(애플리케이션, 날짜, 수정된 문제점, 적용된 변경 사항 등), 구축 가이드, 관리 가이드, 작동 가이드, 사용자 가이드 등의 문서가 포함될 수 있다(블록 303)블록(305)에 의해 나타낸 바와 같이, 구성 관리 서브시스템(203)은 중앙 저장소(215)에 저장된 소프트웨어의 구성요소 및 이들의 버전을 제어한다. 이를 위해, 개발팀은 구성 관리 서브시스템(203)이 상기 제어의 수행을 위해 사용하는 정보를 저장소 구성요소 또는 소스 코드를 포함하는 구성요소의 명칭을 포함하여 추적 서브시스템(213)에 기록한다.
일단 개발 국면이 완료되면, 개발팀은 추적 서브시스템(213)을 이용하여 소프트웨어 제품의 가용 여부를 IT 조직에서 소프트웨어 배송을 담당하는 기능을 하는 쪽에 보고한다(블록 307)다음으로 구축팀은 생성된 구축 스크립트 및 문서가 정확한지 체크한다(블록 309) 생성된 구축 스크립트 및/또는 문서에서 체크 도중 오류를 발견한 경우, 구축팀은 이러한 이벤트를 추적 서브시스템(213)에 기록하며, 개발팀은 오류 수정의 필요를 통보받게 된다. 개발팀이 오류를 수정한 후, 적어도 변경된 소프트웨어 구성요소에 대해서 선행 단계가 반복된다.
다음으로, 소프트웨어 제품이 제대로 실행되는 데 필요한 이진 파일을 생성하도록 소프트웨어 제품을 구축한다. 블록(311)으로 나타낸 바와 같이, 이들 이진 파일은 구성 관리 서브시스템(203)의 제어 하에 중앙 저장소(215)에 저장된 소스 코드로부터 구축 서브시스템(205)에 의해 생성된다.
다음으로 구축 서브시스템(205)은 이전 단계에서 생성된 이진 파일을 중앙 저장소(215)에 저장시킨다(블록 313)다음 단계로서(블록 315), 구축팀은 블록(309, 311 및 313)의 단계 실행과 관련된 정보 또는 이슈(적용 가능한 경우), 예컨대 완료 성공 또는 실패, 관련 문제, 필요한 문서의 부족 등을 추적 서브시스템(213)에 기록한다. 추적 서브시스템(213)은 필요한 경우 자동 통지를 예컨대 전자 메일 메시지의 형태로 구축팀의 구성원에게 전달한다.
이 시점에서, 소프트웨어 애플리케이션의 구축이 완료된다. 패키징 서브시스템(207)에 의해 패키징 팀은 설치 가능한 대응 소프트웨어 패키지를 생성한다(블록 317) 구성 관리 및 버전 제어 서브시스템(203)의 제어 하에 패키징 서브시스템(207)은 정해진 목표 플랫폼 상에 소프트웨어 제품을 배치(즉 설치 및 실행)하는 데 필요한 소프트웨어 구성요소를 중앙 저장소(215)로부터 추출한다. 이러한 구성요소에는 이진 및 실행 파일, 설치 스크립트(필요한 경우), 자동 설치를 위한 응답 파일, 구성 스크립트(필요한 경우), 구성 문서(필요한 경우), 최종 사용자의 문서(즉 사용자 가이드), 관리 및 작동 문서와 같은 아이템은 물론, 정해진 환경에서 정해진 목표 플랫폼에 소프트웨어 제품을 배치하는 데 필요할 가능성이 있는 그 밖의 소프트웨어 제품 구성요소가 포함될 수 있다.
구축 서브프로세스 동안에 생성된 모든 요소가 소프트웨어 패키지에 포함되 어야 하므로, 구축 서브시스템(205)의 출력은 구성 관리 서브시스템(203)의 중앙 저장소(215)에 저장되며, 패키징 서브시스템(207)에 대한 입력으로서 공급된다. 일반적으로 소프트웨어 패키지 각각은 자체로 완비된 것이어야 하지만, 애플리케이션의 특정한 설계 및 설치요구 사항에 따라, 설치될 소프트웨어 제품 당 하나 이상의 패키지가 사용될 수 있다.
일단 소프트웨어 패키지가 생성되면, 배포 준비가 완료된다. 따라서 생성된 소프트웨어 패키지는 배포 서브시스템(209)에 공급될 준비가 된 것이다. 이를 위해, 패키징 서브시스템(207)은 소프트웨어 패키지를 배포 서브시스템(209)의 소프트웨어 배포 저장소(217)에 저장함으로써 배포를 가능하게 한다(블록 319).
다음으로 패키징 팀은 블록(317 및 319)의 단계와 관련된 정보 또는 이슈를 추적 서브시스템(213)에 기록한다(단계 321). 추적 서브시스템은 필요한 경우 팀의 구성원에게 자동 통지를 전달 및 배포한다.
배포 서브시스템(209)을 이용하여, 배포 및 설치 팀은 목표 환경의 목표 플랫폼에 소프트웨어 패키지를 전달 및 설치한다(블록 323). 배포 및 설치 팀은 또한 이러한 단계와 관련된 정보 또는 이슈를 추적 서브시스템(213)에 기록하고, 이는 필요한 경우 팀의 구성원에게 자동 통지를 전달한다. 기업 IT 조직의 정책에 따르면, 목표 환경에 애플리케이션 패키지를 설치하기 위해서는 관리팀의 승인을 받는 것이 바람직하다.
블록(325)에 의해 나타낸 바와 같이, 설치된 소프트웨어 제품의 개선 사항 및 애플리케이션 버그의 해결에 필요한 수정 사항은 변경 및 문제 관리 서브시스템(211)에 의해 관리되며, 이 서브시스템은 구성 관리 시스템(203)에 완전히 통합될 수 있다. 소프트웨어 변경 및 문제 수정은 IT 조직이 정해 놓은 프로세스를 따라야 한다. 애플리케이션 변경 및 버그와 관련된 정보는 변경 및 문제 관리 서브시스템(211)에 기록된다. 변경의 경우 변경을 요청한 자가 이러한 작업을 수행하며, 오류의 경우 이러한 작업의 기록은 이를 발견한 조직에 의해 이루어진다.
기존에 설치된 소프트웨어 제품에 대한 변경의 구현 또는 버그의 수정을 위해 생성된 코드 버전의 배송을 위한 프로세스 및 방법은 기본적으로 그 밖의 배송 아이템과 동일하다. 사실상, 일단 새로운 코드 버전의 개발이 시작되면 이는 추적 서브시스템(213)에 기록된다. 또한 구성 관리 서브시스템(203)의 변경 또는 수정 식별자는 배송 정보의 일부로서 기록되어야 한다.
소프트웨어 제품이 기업 IT 조직에 의해 내부적으로 개발된 것이 아닌, 소프트웨어 벤더에 의해 제공된 것인 경우, 소프트웨어 배송 프로세스는 벤더로부터 소프트웨어를 수신한 때에 개시된다. 소프트웨어 배송 프로세스를 담당하는 스태프에게 이것이 통지되며, 배송 사실이 추적 서브시스템(213)에 기록된다. 이러한 경우 설치 가능한 형식의 이진파일만이 배송되어야 하고, 구성 관리 서브시스템 내에 소스 코드가 저장 또는 관리되어서는 안되기 때문에, 구축 서브프로세스를 건너뛰게 된다.
도 4는 소프트웨어 배송 프로세스의 주요 단계가 어떻게 추적 서브시스템(213)에 기록된 배송 상태 정보를 제공하는지를 나타내는 개략도를 나타내고 있다. 추적 서브시스템(213)은 배송 프로세스에 의해 생성된 정보를 통합하 고 배송 상태를 추적하는 중심 지점으로서 작용한다. 이러한 단계에서 기록된 정보는 이하와 같이 요약된다.
소프트웨어 제품의 새로운 개정판이나 버전, 또는 기존 소프트웨어 제품에 대한 수정 또는 변경 사항의 개발을 개시하는 경우, 개발팀은 예컨대 제품 명칭, 버전 번호, 개발팀 식별자, 목표 실행 플랫폼, 언어 코드, 소프트웨어 제품 참조 문헌, 구성 관리 서브시스템(203)에 관한 정보(소스 코드를 포함하는 중앙 저장소 구성요소의 명칭), 수정된 문제 또는 구현된 변경 사항과 같은 관련 세부 사항을 추적 서브시스템(213)에 기록한다. 소프트웨어 제품이 내부적으로 개발된 것이 아닌 소프트웨어 벤더로부터 구입한 것인 경우, 앞서 언급한 바처럼 통상적으로 이진 파일만이 배송되어야 한다. 이러한 경우에도, 공급되는 소프트웨어는 배송 프로세스 흐름을 따라야 하며, 소프트웨어 배송 프로세스를 담당하는 기능은 벤더 배송 정보를 추적 서브시스템(213)에 기록해야 한다.
개발 국면이 종료되면, 애플리케이션의 실행에 필요한 이진 파일을 생성하도록 애플리케이션이 생성된다(블록 413).
다음으로 코드 구축을 담당하는 구축팀(또는 IT 조직에 그러한 담당 부서가 없는 경우 개발팀 자신)은 프로세스의 이러한 단계와 관련된 정보를 추적 서브시스템(213)에 기록한다. 기록되는 정보의 종류의 예로서는, 대응 이진 파일이
생성되는 소스 코드를 포함하는 중앙 저장소(215) 구성요소의 명칭, 생성된 이진 파일을 포함하는 중앙 저장소(215) 구성요소의 명칭, 구축 스크립트 및 문서(개발팀이 제공함)를 포함하는 중앙 저장소(215) 구성요소의 명칭, 의존 관계 또는 전제 조건{인터버저닝(inter-versioning), 코드 세트 버전 등}에 관한 정보 등의 구성 관리 서브시스템 정보 및 구축 날짜, 구축 이슈(존재하는 경우) 등이 있다.
일단 소프트웨어 제품이 구축되면, 설치 가능한 대응 패키지가 패키지 서브시스템(207)에 의해 생성된다(블록 415).
다음으로, 소프트웨어 패키징을 담당하는 패키징 팀은 이 단계에 관한 정보를 추적 서브시스템(213)에 기록한다. 기록되는 정보의 종류의 예로서는, 설치에 필요한 스크립트 및 응답 파일을 포함하는 소프트웨어 배포 저장소(217) 구성요소의 명칭, 애플리케이션 패키지를 포함하는 소프트웨어 배포 저장소(217)의 명칭과 같은 구성 관리 서브시스템 정보, 패키지 명칭, 목표 실행 플랫폼의 역할, 패키징 날짜 및 패키징 이슈(존재하는 경우) 등이 있다.
일단 소프트웨어 패키지가 생성되면, 배포 준비가 완료된다(블록 417). 다음으로, 패키징 팀은 패키지의 새로운 상태(배포 준비 완료)를 추적 서브시스템(213)에 기록한다.
승인이 필요한 경우 승인 후에, 배포 및 설치를 위해 소프트웨어 패키지의 배포가 요청되면(블록 419) 소프트웨어 패키지는 자신의 역할 또는 기능에 따라 정확한 목표 시스템에 할당되어야 한다. 소프트웨어 배포 서브시스템(209)은 목표 플랫폼으로의 소프트웨어 패키지 배송을 수행하고, 패키지 배포를 담당하는 배포팀은 설치된 패키지의 새로운 상태(설치된 상태)를 추적 서브시스템에 기록한다.
본 발명에 따른 종단간 소프트웨어 배송 통합 관리 시스템 및 방법의 가장 현저하고 유익한 특징은 다음과 같다.
소프트웨어 제품의 전체 수명 주기가, 종래 기술에서와 같이 무관하고 독립 적인 집합으로서가 아닌, 단일 프로세스로서 관리된다.
본 발명의 통합 관리 소프트웨어 시스템은 전체 소프트웨어 배송 프로세스를 지원하는 고유하고 포괄적인 관리 시스템이다. 통합 관리 시스템의 서브시스템은 서로 통합되어 있으며, 이들 각각은 소프트웨어 배송 프로세스의 특정한 서브프로세스를 구현한다.
본 발명에 따른 통합 관리 시스템은 특정한 구현예에 이용되는 플랫폼, 동작 시스템, 저장소, 또는 데이터베이스와 무관하다. 또한, 통합 관리 시스템은 상이한 소프트웨어 구성요소 및 문서간의 의존성 및 관계를 추적 및 제어함으로써 중복을 피하고 모든 부분이 필요에 따라 함께 동작하게 함으로써, 소프트웨어 시스템의 통일성 및 이들의 정확한 수행을 보장한다.
새로운 소프트웨어 제품 또는 기존 소프트웨어의 새로운 개정판이나 버전(예컨대 이미 설치된 소프트웨어에 대한 수정 또는 변경)이 구성 관리 서브시스템의 제어 하에 중앙 저장소로부터 구축된다.
설치 가능한 소프트웨어 패키지가 패키지 내용 및 목표 시스템과 무관하게 생성 및 배포되며, 자동 프로시저에 의해 설치될 수 있다.
바람직하게도, 새로운 소프트웨어 버전(완성판 또는 개선판)이 일단 구축되고 패키징된 후 배포 서브시스템의 소프트웨어 배포 저장소에 저장됨으로써 상이한 환경에서 설치 패키지를 재활용할 수 있게 된다.
또한, 통합 관리 시스템은 자동 설치를 위해 소프트웨어 패키지가 자동으로 추출될 수 있도록 하고, 그 역할에 따라 정확한 목표 시스템에 정확한 패키지가 설 치되도록 하며, 임의의 특정한 환경 및 국면에 있어서 소프트웨어 시스템의 전체 상태 정보를 임의의 시점에 검색할 수 있도록 한다.
또한 통합 관리 시스템은 상이한 플랫폼 상의 동일한 소프트웨어의 상이한 버전 또는 레벨간의 동기화는 물론, 원격지에 있는 전문가에 의해 매우 종종 소유 및 관리되고 이종 환경에서 병렬 실행되는 동시 애플리케이션간의 동기화를 보증한다.
상기 시스템은 또한 소프트웨어 상태의 회계 내역을 추적할 수 있도록 한다.
본 명세서에서 설명한 소프트웨어 배송 프로세스 및 이의 구현을 위한 시스템 및 방법은 관리 시스템에 의해 지원되는 소프트웨어 배송 프로세스의 구현 문제에 직면한 임의의 기업, 사업체, 또는 IT 조직에 대해 적용될 수 있다는 점을 강조해 두고자 한다. 사실상, 본 발명에서 설명된 시스템의 요구 사항 및 주요 특징은 일반적인 것으로 특정 실시예와 무관하다.
일정 기업 또는 조직의 특정 요구 사항에 따라서 기타 실시예가 이용될 수 있으며, 본 발명의 범주에 벗어남이 없이 첨부된 청구항에 의해 한정되는 범위에 따라 구조 변경이 이루어질 수 있다는 점을 알아두어야 하겠다.

Claims (11)

  1. 네트워크 환경의 목표 소프트웨어 제품 실행 유닛에 소프트웨어 제품을 배송하는 프로세스를 관리하기 위한 통합 데이터 처리 시스템에 있어서,
    적어도 하나의 소프트웨어 제품의 소프트웨어 구성요소를 저장하기 위한 중앙 저장소와,
    배송될 소프트웨어 제품의 소프트웨어 구성요소를 상기 중앙 저장소 내에서 식별하기 위한 제1 서브시스템과,
    상기 제1 서브시스템에 의해 식별된 소프트웨어 구성요소로부터 적어도 하나의 소프트웨어 제품 패키지를 생성하기 위한 제2 서브시스템과,
    상기 제2 서브시스템에 의해 생성된 상기 적어도 하나의 소프트웨어 제품 패키지를 상기 목표 소프트웨어 제품 실행 유닛에 배포하기 위한 제3 서브시스템
    을 포함하는 통합 데이터 처리 시스템.
  2. 제1항에 있어서, 상기 제2 서브시스템에 의해 상기 식별된 소프트웨어 구성요소로부터 생성된 상기 적어도 하나의 소프트웨어 제품 패키지를 저장하기 위한 소프트웨어 패키지 배포 저장소를 더 포함하는 통합 데이터 처리 시스템.
  3. 제1항에 있어서, 상기 제3 서브시스템은 상기 적어도 하나의 소프트웨어 제품 패키지를, 상기 제2 서브시스템에 의해 상기 적어도 하나의 소프트웨어 제품 패 키지에 할당된 적어도 하나의 역할에 따라, 적어도 하나의 환경에 속하는 목표 소프트웨어 제품 실행 유닛에 배포하는 것인 통합 데이터 처리 시스템.
  4. 제1항에 있어서, 상기 제1 서브시스템은 배송될 소프트웨어 제품의 소프트웨어 구성요소의, 상기 중앙 저장소 내의 스토리지를 관리하는 것인 통합 데이터 처리 시스템.
  5. 제1항에 있어서, 배송될 소프트웨어 제품의 식별된 소프트웨어 구성요소 중 소프트웨어 코드 구성요소의 구축 프로세스를 수행하는 제4 서브시스템을 더 포함하고, 상기 제4 서브시스템은 상기 구축 프로세스의 결과를 상기 중앙 저장소에 저장하는 것인 통합 데이터 처리 시스템.
  6. 제1항에 있어서, 이미 배송된 소프트웨어 제품에 대한 변경 사항을 적용하는 프로세스를 관리하기 위한 제5 서브시스템을 더 포함하는 통합 데이터 처리 시스템.
  7. 제1항에 있어서, 상기 소프트웨어 제품의 배송 도중에 상기 통합 데이터 처리 시스템의 상기 제1 내지 제5 서브시스템 중 적어도 하나에 의해 제공되는 정보를 기록하기 위한 제6 서브시스템을 더 포함하는 통합 데이터 처리 시스템.
  8. 네트워크 환경의 목표 소프트웨어 제품 실행 유닛에 소프트웨어 제품을 배송하는 방법에 있어서,
    적어도 하나의 소프트웨어 제품의 소프트웨어 구성요소를 중앙 저장소에 저장하는 단계와,
    상기 중앙 저장소에 저장된 소프트웨어 구성요소 중 배송될 소프트웨어 제품의 소프트웨어 구성요소를 식별하는 단계와,
    상기 식별된 소프트웨어 구성요소 중 적어도 하나를 포함하는 적어도 하나의 소프트웨어 제품 패키지를 생성하는 단계와,
    상기 목표 소프트웨어 제품 실행 유닛에 상기 소프트웨어 제품 패키지를 배포 및 설치하는 단계
    을 포함하는 소프트웨어 제품 배송 방법.
  9. 제8항에 있어서, 적어도 하나의 소프트웨어 제품 패키지를 생성하는 상기 단계는,
    상기 소프트웨어 제품이 배포될 목표 소프트웨어 제품 실행 유닛을 식별하기 위한 역할 표시를 상기 적어도 하나의 소프트웨어 제품 패키지에 할당하는 단계와,
    상기 역할 표시에 따라 상기 적어도 하나의 소프트웨어 제품 패키지를 배포하는 단계
    를 포함하는 것인 소프트웨어 제품 배송 방법.
  10. 제8항에 있어서, 상기 적어도 하나의 소프트웨어 제품 패키지를 소프트웨어 배포 저장소에 저장하는 단계를 더 포함하는 소프트웨어 제품 배송 방법.
  11. 제10항에 있어서, 상기 중앙 저장소에 저장된, 배송될 소프트웨어 제품의 식별된 소스 코드 구성요소를 구축하는 단계와, 상기 구축 결과를 상기 중앙 저장소에 저장하는 단계를 더 포함하는 소프트웨어 제품 배송 방법.
KR1020190146767A 2019-11-15 2019-11-15 소프트웨어의 효율적인 통합 관리 시스템 KR20210059386A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190146767A KR20210059386A (ko) 2019-11-15 2019-11-15 소프트웨어의 효율적인 통합 관리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190146767A KR20210059386A (ko) 2019-11-15 2019-11-15 소프트웨어의 효율적인 통합 관리 시스템

Publications (1)

Publication Number Publication Date
KR20210059386A true KR20210059386A (ko) 2021-05-25

Family

ID=76145542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190146767A KR20210059386A (ko) 2019-11-15 2019-11-15 소프트웨어의 효율적인 통합 관리 시스템

Country Status (1)

Country Link
KR (1) KR20210059386A (ko)

Similar Documents

Publication Publication Date Title
KR100702424B1 (ko) 소프트웨어 배포를 위한 통합 관리 시스템 및 방법
CN110532189B (zh) 一种持续集成系统、方法及装置
US7761851B2 (en) Computer method and system for integrating software development and deployment
US8037453B1 (en) System and method for continuous software configuration, test and build management
US8745585B2 (en) Meta-data for single development test environment
US20040060035A1 (en) Automated method and system for building, deploying and installing software resources across multiple computer systems
US20130174124A1 (en) Version numbering in single development and test environment
US20130174117A1 (en) Single development test environment
CA3094320A1 (en) Unified test automation system
US10901728B1 (en) Enhancing DevOps workflows in enterprise information technology organizations
CN111324522A (zh) 一种自动化测试系统及方法
US9542173B2 (en) Dependency handling for software extensions
EP2503449A2 (en) Single development test environment
Railić et al. Architecting continuous integration and continuous deployment for microservice architecture
US20220261240A1 (en) Agile, automotive spice, dev ops software development and release management system
EP2913757A1 (en) Method, system, and computer software product for test automation
US9760364B2 (en) Checks for software extensions
US20100042659A1 (en) Deployment overview management system, apparatus, and method
KR20210059386A (ko) 소프트웨어의 효율적인 통합 관리 시스템
EP2503450A2 (en) Version numbering in single development and test environment
CN113485759A (zh) 微服务配置信息管理系统、方法、电子设备及存储介质
Kaplan et al. Implementing SAP Enhancement Packages
AU2002337039A1 (en) Integrated management system and method for distributing software
Karalar Selecting a Deployment Automation Tool for CRM Software in Elisa Oy
Zhang et al. Automated workplace design and reconfiguration for evolving business processes.