KR100702424B1 - 소프트웨어 배포를 위한 통합 관리 시스템 및 방법 - Google Patents

소프트웨어 배포를 위한 통합 관리 시스템 및 방법 Download PDF

Info

Publication number
KR100702424B1
KR100702424B1 KR1020037017249A KR20037017249A KR100702424B1 KR 100702424 B1 KR100702424 B1 KR 100702424B1 KR 1020037017249 A KR1020037017249 A KR 1020037017249A KR 20037017249 A KR20037017249 A KR 20037017249A KR 100702424 B1 KR100702424 B1 KR 100702424B1
Authority
KR
South Korea
Prior art keywords
software
subsystem
software product
package
distribution
Prior art date
Application number
KR1020037017249A
Other languages
English (en)
Other versions
KR20040033288A (ko
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20040033288A publication Critical patent/KR20040033288A/ko
Application granted granted Critical
Publication of KR100702424B1 publication Critical patent/KR100702424B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

소프트웨어 배포를 위한 통합 관리 시스템 및 방법 {INTEGRATED MANAGEMENT SYSTEM AND METHOD FOR DISTRIBUTING SOFTWARE}
본 발명은 일반적으로 소프트웨어 배송(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"(SG24.5504.00, 1999년 9월)에 설명되어 있는 소프트웨어 배포 및 설치 서브 프로세스가 있다. 이것이 어떻게 언제 구현되어 있는지에 관하여 매 단계별로 상세히 설명되어 있다. 그러나 소프트웨어 배포 프로세스에 포함되는 그 밖의 서브 프로세스에 대해서는 전체적으로 다루지 않았다.
기존의 방법 중 대부분은 전체 소프트웨어 배송 프로세스의 특정 서브 프로세스, 예컨대 배포 서브 프로세스 및/또는 원격 설치 서브 프로세스만을 다루는 것에 한정되어 있다. 그 밖의 기존 방법은 소프트웨어 프로젝트 관리라는 특정한 필요를 위한 것이며, 소프트웨어 제품의 개발부터 생산에 이르기까지 소프트웨어 제품의 전체 수명 주기에 걸쳐 업무 환경에서의 소프트웨어 배송 프로세스를 구현하는 데 적용될 수는 없다.
종래 기술의 시스템 및 방법을 실제로 구현하기 위해, 대다수 기업의 정보기술(IT) 조직은 전체 소프트웨어 배송 프로세스의 특정 서브 프로세스를 구현하기 위한 여러 가지 별개의, 고립된 이종 서브시스템을 설치해 왔다. 예컨대, 특정 구성 관리 시스템(또는 애플리케이션)을 이용하여 상이한 버전의 코드를 제어할 수 있고, 무관한 시스템(또는 애플리케이션)을 이용하여 변경 사항을 관리할 수 있고, 그 밖의 시스템을 이용하여 소프트웨어 제품 및 이들의 솔루션에 있어서의 문제를 추적할 수 있고, 또 다른 별개의 툴을 사용하여 소프트웨어 제품을 상이한 환경에 배포할 수 있다.
적절한 종단간 소프트웨어 배송 프로세스의 부족, 또는 고립된 독립 시스템에 의한 프로세스의 구현으로 인해 종종 저질 소프트웨어 제품의 생산, 배송 계획의 차질, 비용 초과, 또는 소비자 수요 충족 불능이 야기된다.
본 발명의 출원인은 현재의 방법으로는 소프트웨어 애플리케이션의 상이한 구성요소에 대한 변경 사항의 특징, 이들간의 종속성 및 관계, 이들이 실행되는 복 수의 플랫폼, 이들의 복수의 버전 및 상이한 환경(예컨대 개발, 구축, 유닛 테스트, 기능 테스트, 통합 테스트, 회귀 테스트, 시스템 테스트 및 생산)을 통한 개선 사항을 포괄하지 못한다. 따라서 개발에서부터 제품 설치에 이르기까지 수명 주기 전체에 걸쳐 소프트웨어 시스템을 관리할 수 있는 종단간 소프트웨어 배송 프로세스의 필요성이 대두된다.
이러한 필요에 성공적으로 대처하기 위해, 전체 종단간 소프트웨어 배송 프로세스를 이루는 여러 가지 행위는 서로 독립적이거나 고립된 것이 아니어야 한다. 반대로, 이들 전부는 아니더라도 대부분은 서로 연관되어 있어야 한다. 사실, 각 행위는 다른 행위가 필요로 하는 출력을 생성하므로, 이러한 행위들은 연결되어야 한다. 또한 종단간 소프트웨어 배송 프로세스는 새로운 소프트웨어 제품(예컨대 새로운 애플리케이션)의 전체 수명 주기에 걸쳐 상기 제품을 전체적으로 관리하며, 프로세스 전반에 걸쳐 상기 제품의 통일성을 유지시켜야 한다. 또한 소프트웨어 배송 프로세스는, 동일한 또는 상이한 목표 시스템에서 실행되는 그 밖의 구성요소 및 소프트웨어 제품과도 관련된, 상이하지만 상호 연관된 부분을 포함하는 소프트웨어 제품을 고려해야 한다.
따라서, 앞서 언급한 모든 요구 사항을 충족시키는 전체적인 솔루션에 대한 필요성은 물론, 상이한 상호 관련 부분으로 이루어진 소프트웨어 제품을 고려하고 그 통일성을 유지하면서 제품의 전체 수명 주기동안 이를 전체적으로 관리하는 통합 관리 시스템에 기초한 종단간 소프트웨어 배송 프로세스에 대한 필요성이 존재한다.
본 발명은 앞서 언급한 문제의 해결을 지향한다.
특히, 본 발명의 목적은 충족되어야 할 주요 요건에 부응하면서 현재의 소프트웨어 제품 배송 시스템 및 방법을 개선하는 것이다.
본 발명의 첫 번째 태양에 의하면, 네트워크 환경에서 목표 소프트웨어 제품 실행 유닛으로의 소프트웨어 제품 배송 프로세스를 관리하기 위한 통합 데이터 처리 시스템이 제공되며, 여기서 목표 유닛은 소프트웨어 제품 테스트 환경, 소프트웨어 제품 사용자 교육 환경, 또는 네트워크 환경 내의 생산 환경에 속한 것일 수 있다. 통합 데이터 처리 시스템은, 적어도 하나의 소프트웨어 제품의 소프트웨어 구성요소를 저장하기 위한 중앙 저장소와, 상기 중앙 저장소 내의 배송될 소프트웨어 제품의 소프트웨어 구성요소를 식별하기 위한 제1 서브시스템과, 상기 제1 서브시스템에 의해 식별된 소프트웨어 구성요소로부터 적어도 하나의 소프트웨어 제품 패키지를 생성하기 위한 제2 서브시스템과, 상기 제2 서브시스템에 의해 생성된 적어도 하나의 소프트웨어 제품을 목표 소프트웨어 제품 실행 유닛에 배포하기 위한 제3 서브시스템을 포함한다.
소프트웨어 제품 패키지가 배포될 목표 실행 유닛은 상기 제2 서브시스템에 의해 상기 적어도 하나의 소프트웨어 패키지에 할당된 역할을 나타내는 표시에 따라 판정된다.
바람직한 실시예에 있어서, 통합 데이터 처리 시스템은 상기 식별된 소프트웨어 구성요소로부터 상기 제2 서브시스템에 의해 생성되고 상기 제3 서브시스템에 의해 배포되는 적어도 하나의 소프트웨어 제품 패키지를 저장하기 위한 소프트웨어 배포 저장소를 포함한다.
상기 제1 서브시스템은 또한 배송될 소프트웨어 제품의 소프트웨어 구성요소의, 상기 중앙 저장소에 있는 스토리지(storage)를 관리한다.
통합 데이터 처리 시스템은, 배송될 소프트웨어 제품의 식별된 소프트웨어 구성요소 중 소프트웨어 코드 구성요소 구축 프로세스를 수행하기 위한 제4 서브시스템을 더 포함하는 것이 바람직하다.
바람직한 실시예에 있어서, 통합 데이터 처리 시스템은 이미 배송된 소프트웨어 제품에 변경 및/또는 수정 사항을 적용하는 프로세스를 관리하기 위한 제5 서브시스템 및 소프트웨어 제품의 배송 도중 통합 데이터 처리 시스템의 기타 서브시스템에 의해 제공되는 정보를 기록하기 위한 제6 서브시스템을 더 포함하는 것이 바람직하다.
본 발명의 또 다른 태양은, 네트워크 환경에서 목표 소프트웨어 제품 실행 유닛으로 소프트웨어 제품을 배송하는 방법이다. 상기 방법은, 중앙 저장소에 적어도 하나의 소프트웨어 제품의 소프트웨어 구성요소를 저장하는 단계와, 상기 중앙 저장소에 저장된 소프트웨어 구성요소 중 배송될 소프트웨어 제품의 소프트웨어 구성요소를 식별하는 단계와, 식별된 소프트웨어 구성요소로부터 적어도 하나의 배포 가능한 소프트웨어 제품 패키지를 생성하는 단계와, 목표 소프트웨어 제품 실행 유닛에 상기 소프트웨어 제품 패키지를 배포하고 이를 설치하는 단계를 포함한다.
본 발명의 특징 및 장점은, 본 발명을 한정하는 것이 아닌 실시예 및 첨부된 도면에 의해 제공되는 바람직한 실시예의 상세한 설명에 의해 더욱 자명해 질 것이다.
도 1은 일반 기업의 정보 인프라스트럭처를 간략하게 나타낸 도면.
도 2는 본 발명의 바람직한 실시예에 따른 소프트웨어 배송 통합 관리 시스템의 블록도.
도 3은 본 발명의 바람직한 실시예에 있어서, 도 2의 통합 관리 시스템에 의해 종단간 배송 프로세스를 구현하는 방법의 주요 단계를 도식적으로 나타낸 흐름도.
도 4는 도 2의 통합 관리 시스템 및 이것의 추적 서브시스템에 의해 구현된 소프트웨어 배송 프로세스의 서브프로세스간의 정보 교환을 도식적으로 나타낸 개략도.
본 발명은 정보 인프라스트럭처를 갖는 일반 기업 내에서 전체적인 종단간 소프트웨어 배송 프로세스를 구현하기 위한 통합 관리 시스템 및 방법을 제공한다.
일반 기업의 정보 인프라스트럭처를 도 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)(C&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)과 상호작용한다. 변경 및 문제 관리 서브시스템은 설치된 소프트웨어 제품에 필요한 변경 및 수정 사항을 개발팀에게 알린다.
구성 관리 서브시스템(203), 구축 서브시스템(205), 패키징 서브시스템(207), 배포 서브시스템(209) 및 변경 및 문제 관리 서브시스템(211)은 모두 추적 서브시스템(213)과 상호작용할 수 있다.
도 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. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제10항에 있어서, 상기 중앙 저장소에 저장된, 배송될 소프트웨어 제품의 식별된 소스 코드 구성요소를 구축하는 단계와, 상기 구축 결과를 상기 중앙 저장소에 저장하는 단계를 더 포함하는 소프트웨어 제품 배송 방법.
KR1020037017249A 2001-08-30 2002-08-13 소프트웨어 배포를 위한 통합 관리 시스템 및 방법 KR100702424B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/943,563 US7735080B2 (en) 2001-08-30 2001-08-30 Integrated system and method for the management of a complete end-to-end software delivery process
US09/943,563 2001-08-30
PCT/EP2002/009683 WO2003021432A1 (en) 2001-08-30 2002-08-13 Integrated management system and method for distributing software

Publications (2)

Publication Number Publication Date
KR20040033288A KR20040033288A (ko) 2004-04-21
KR100702424B1 true KR100702424B1 (ko) 2007-04-04

Family

ID=25479866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037017249A KR100702424B1 (ko) 2001-08-30 2002-08-13 소프트웨어 배포를 위한 통합 관리 시스템 및 방법

Country Status (8)

Country Link
US (1) US7735080B2 (ko)
EP (1) EP1421485A1 (ko)
JP (1) JP2005502118A (ko)
KR (1) KR100702424B1 (ko)
CN (1) CN1277189C (ko)
CA (1) CA2457439A1 (ko)
IL (1) IL160612A0 (ko)
WO (1) WO2003021432A1 (ko)

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10839321B2 (en) 1997-01-06 2020-11-17 Jeffrey Eder Automated data storage system
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US6569012B2 (en) * 2001-01-09 2003-05-27 Topcoder, Inc. Systems and methods for coding competitions
US7937281B2 (en) * 2001-12-07 2011-05-03 Accenture Global Services Limited Accelerated process improvement framework
WO2003050997A1 (en) 2001-12-13 2003-06-19 Sony Computer Entertainment Inc. Methods and apparatus for secure distribution of program content
JP4294488B2 (ja) 2001-12-21 2009-07-15 株式会社ソニー・コンピュータエンタテインメント プログラムのセキュアな配布方法及び装置
US7921023B2 (en) * 2001-12-28 2011-04-05 Sap Aktiengesellschaft Portal for implementation of multiple software components
US20030131088A1 (en) * 2002-01-10 2003-07-10 Ibm Corporation Method and system for automatic selection of a test system in a network environment
US7065746B2 (en) * 2002-01-11 2006-06-20 Stone Bond Technologies, L.P. Integration integrity manager
CN1679034A (zh) * 2002-04-08 2005-10-05 托普科德公司 用于对软件开发服务征求建议的系统以及方法
US20060248504A1 (en) * 2002-04-08 2006-11-02 Hughes John M Systems and methods for software development
US8776042B2 (en) * 2002-04-08 2014-07-08 Topcoder, Inc. Systems and methods for software support
US7191435B2 (en) * 2002-06-07 2007-03-13 Sun Microsystems, Inc. Method and system for optimizing software upgrades
US7228541B2 (en) * 2003-01-17 2007-06-05 National Instruments Corporation Creation of application system installer
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
JP4209789B2 (ja) * 2003-03-19 2009-01-14 株式会社リコー ファイル作成方法、サーバ、記録媒体及びプログラム追加システム
US7506337B2 (en) * 2003-04-11 2009-03-17 Microsoft Corporation System and method for providing service of automated creation of computer software production images
US20050015762A1 (en) * 2003-06-09 2005-01-20 Steckler Steven James Methods and systems for deploying computer source code
US7562345B2 (en) * 2003-08-27 2009-07-14 Lucent Technologies, Inc. Firmware management tool
US7562346B2 (en) * 2003-09-02 2009-07-14 Microsoft Corporation Software componentization for building a software product
US7487161B2 (en) * 2003-09-12 2009-02-03 Sap Ag Distributing data
US20050080811A1 (en) * 2003-10-10 2005-04-14 Cendura Corporation Configuration management architecture
US20050097548A1 (en) * 2003-10-31 2005-05-05 Dillenburg Brian J. Systems and methods for developing and distributing software components
US7716663B2 (en) * 2004-02-26 2010-05-11 International Business Machines Corporation Method, system and program product for controlling native applications using open service gateway initiative (OSGi) bundles
US7478396B2 (en) * 2004-03-22 2009-01-13 International Business Machines Corporation Tunable engine, method and program product for resolving prerequisites for client devices in an open service gateway initiative (OSGi) framework
US7526734B2 (en) * 2004-04-30 2009-04-28 Sap Ag User interfaces for developing enterprise applications
US8156489B2 (en) * 2004-05-21 2012-04-10 Computer Associates Think, Inc. Distributed installation configuration system and method
US7503041B2 (en) * 2004-07-01 2009-03-10 International Business Machines Corporation Apparatus, system, and method for delivery of software
WO2006033419A1 (en) 2004-09-20 2006-03-30 Sony Computer Entertainment Inc. Methods and apparatus for distributing software applications
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US20060080257A1 (en) * 2004-10-08 2006-04-13 Level 3 Communications, Inc. Digital content distribution framework
JP4717426B2 (ja) * 2004-12-07 2011-07-06 キヤノン株式会社 情報処理装置及びその方法
KR100669604B1 (ko) 2004-12-17 2007-01-15 엘지전자 주식회사 형상 관리 시스템의 소프트웨어 통합 관리 시스템
US8489407B2 (en) 2005-01-04 2013-07-16 International Business Machines Corporation Method of evaluating business components in an enterprise
US7478283B2 (en) * 2005-01-22 2009-01-13 International Business Machines Corporation Provisional application management with automated acceptance tests and decision criteria
US7725735B2 (en) * 2005-03-29 2010-05-25 International Business Machines Corporation Source code management method for malicious code detection
US7640587B2 (en) * 2005-03-29 2009-12-29 International Business Machines Corporation Source code repair method for malicious code detection
JP3924306B2 (ja) 2005-07-20 2007-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・パッケージを再構築する方法
US20070028216A1 (en) * 2005-07-28 2007-02-01 Boss Gregory J Systems and methods for embedded application test suites
US20070038897A1 (en) * 2005-08-12 2007-02-15 Theresia Lainer Method and system for delivering a software product from a central computer to a target computer via a computer network
US7945531B2 (en) * 2005-09-16 2011-05-17 Microsoft Corporation Interfaces for a productivity suite application and a hosted user interface
US9274774B2 (en) * 2005-10-28 2016-03-01 Google Inc. Common installer server
US8261258B1 (en) 2005-10-28 2012-09-04 Google Inc. Common installer client
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
WO2007084720A2 (en) * 2006-01-20 2007-07-26 Topcoder, Inc. System and method for design development
US7873944B2 (en) * 2006-02-22 2011-01-18 International Business Machines Corporation System and method for maintaining and testing a software application
JP2007241610A (ja) * 2006-03-08 2007-09-20 Toshiba Corp ソフトウェア部品管理装置、ソフトウェア部品管理方法、およびソフトウェア部品
US20070220479A1 (en) * 2006-03-14 2007-09-20 Hughes John M Systems and methods for software development
US20070250378A1 (en) * 2006-04-24 2007-10-25 Hughes John M Systems and methods for conducting production competitions
US20080052146A1 (en) * 2006-05-01 2008-02-28 David Messinger Project management system
EP1860548A1 (de) * 2006-05-26 2007-11-28 Siemens Aktiengesellschaft Verfahren zur Versionsverwaltung von Automatisierungsdaten eines Kraftwerk-Automatisierungssystems
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
US20070289028A1 (en) * 2006-06-12 2007-12-13 Software Spectrum, Inc. Time Bound Entitlement for Digital Content Distribution Framework
US8650539B2 (en) * 2006-12-21 2014-02-11 Siemens Aktiengesellschaft Method for mapping the structure of a complex software product
US20080167960A1 (en) * 2007-01-08 2008-07-10 Topcoder, Inc. System and Method for Collective Response Aggregation
JP4905165B2 (ja) * 2007-02-07 2012-03-28 富士通株式会社 監視支援プログラム、監視方法および監視システム
US20080196000A1 (en) * 2007-02-14 2008-08-14 Fernandez-Lvern Javier System and method for software development
US20080222055A1 (en) * 2007-03-07 2008-09-11 Hughes John M System and Method for Creating Musical Works
US8073792B2 (en) 2007-03-13 2011-12-06 Topcoder, Inc. System and method for content development
US8307341B2 (en) * 2007-04-25 2012-11-06 International Business Machines Corporation Generating customized documentation for a software product
CN102006333B (zh) * 2007-06-11 2012-12-26 华为技术有限公司 安装软件组件的方法、系统及装置
DE102007028807A1 (de) * 2007-06-20 2008-12-24 Cebicon Gmbh Verfahren zur Erstellung eines automatisch verteilbaren Software-Pakets
US8621434B2 (en) * 2007-06-26 2013-12-31 Topcoder, Inc. System and method for distributed software testing
US8505005B1 (en) * 2007-07-24 2013-08-06 United Services Automobile Association (Usaa) Multi-platform network-based software distribution
US8682706B2 (en) * 2007-07-31 2014-03-25 Apple Inc. Techniques for temporarily holding project stages
US9003399B2 (en) * 2007-09-11 2015-04-07 International Business Machines Corporation Methods, systems and computer products for a dynamic repository
US20090192849A1 (en) * 2007-11-09 2009-07-30 Hughes John M System and method for software development
WO2009089447A1 (en) * 2008-01-11 2009-07-16 Topcoder, Inc. System and method for conducting competitions
US8132157B2 (en) * 2008-01-17 2012-03-06 International Business Machines Corporation Method of automatic regression testing
KR101470319B1 (ko) * 2008-02-15 2014-12-08 삼성전자주식회사 컴포넌트 모델 기반의 가상 소프트웨어 플랫폼을 생성하는방법, 이를 이용하여 소프트웨어 플랫폼 아키텍처를검증하는 방법 및 그 장치
US8776020B2 (en) * 2008-12-11 2014-07-08 Sap Ag Software configuration control wherein containers are associated with physical storage of software application versions in a software production landscape
KR20100071483A (ko) * 2008-12-19 2010-06-29 한국전자통신연구원 묶음 소프트웨어의 배포 방법 및 시스템
US8266477B2 (en) 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US8667479B2 (en) * 2009-01-19 2014-03-04 Telefonaktiebolaget L M Ericsson (Publ) Mobile specialized software code updated
US20100250316A1 (en) * 2009-03-26 2010-09-30 International Business Machines Corporation Developing a service oriented architecture shared services portfolio
CN101667131A (zh) * 2009-10-14 2010-03-10 中兴通讯股份有限公司 移动终端及其配置信息的更新方法
CN102073488B (zh) * 2009-11-20 2014-12-17 中兴通讯股份有限公司 一种软件集成方法、安装方法及软件集成装置、安装装置
US8843904B2 (en) * 2010-01-26 2014-09-23 International Business Machines Corporation Automated building and retargeting of architecture-dependent assets
WO2011155949A1 (en) 2010-06-11 2011-12-15 Hewlett-Packard Development Company, L.P. Method and system for defining packaging components using lifecycle analysis
US9003400B2 (en) * 2010-11-29 2015-04-07 Red Hat, Inc. Tracking computing systems utilizing software repositories
US9959113B2 (en) * 2011-03-01 2018-05-01 Red Hat, Inc. Managing versions of software packages
DE102012103654A1 (de) 2011-05-17 2012-11-22 International Business Machines Corp. Installieren und Prüfen einer Anwendung auf einer stark genutzten Computerplattform
US8839188B2 (en) * 2011-05-18 2014-09-16 International Business Machines Corporation Automated build process and root-cause analysis
US20130055202A1 (en) * 2011-08-25 2013-02-28 International Business Machines Corporation Identifying components of a bundled software product
WO2013160734A2 (en) * 2012-04-27 2013-10-31 Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi A method for dynamic configuration management and an apparatus thereof
US9223592B2 (en) 2012-08-09 2015-12-29 International Business Machines Corporation Configuring a system with various system components utilizing a configuration profile
US9342317B2 (en) * 2012-08-09 2016-05-17 International Business Machines Corporation Importing profiles for configuring specific system components into a configuration profile for the system
US9805319B2 (en) * 2012-09-28 2017-10-31 Bmc Software, Inc. Application of business process management standards for dynamic information technology management
EP2720146A1 (en) 2012-10-11 2014-04-16 Thomson Licensing Distributed application life-cycle management
US20140130037A1 (en) * 2012-11-08 2014-05-08 Gigaspaces Technologies Ltd. Computer application playlist and player
US8887128B2 (en) 2012-12-17 2014-11-11 Sas Institute Inc. Computer-implemented systems and methods for automated generation of a customized software product
US9665359B2 (en) 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US10026064B2 (en) * 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US20150082298A1 (en) * 2013-09-19 2015-03-19 Qiu Shi WANG Packaging and deploying hybrid applications
US9367299B2 (en) * 2013-12-31 2016-06-14 Google Inc. Preventing application downgrade in an application store
US9280331B2 (en) * 2014-05-09 2016-03-08 Sap Se Hash-based change tracking for software make tools
WO2015199677A1 (en) * 2014-06-25 2015-12-30 Hewlett Packard Development Company, L.P. Documentation notification
CN104598384B (zh) * 2015-02-06 2017-11-21 中国民生银行股份有限公司 代码检测方法及装置
US10002071B2 (en) 2016-03-23 2018-06-19 Wipro Limited Method and a system for automating test environment operational activities
CN106227657A (zh) * 2016-07-18 2016-12-14 浪潮(北京)电子信息产业有限公司 一种虚拟化云系统的持续集成方法和装置
US10642583B2 (en) * 2016-10-28 2020-05-05 International Business Machines Corporation Development data management for a stream computing environment
US11916994B1 (en) * 2016-12-15 2024-02-27 Blue Yonder Group, Inc. Extending RESTful web service resources in a JAVA-component-driven-architecture application
US10289409B2 (en) * 2017-03-29 2019-05-14 The Travelers Indemnity Company Systems, methods, and apparatus for migrating code to a target environment
US10318412B1 (en) * 2018-06-29 2019-06-11 The Travelers Indemnity Company Systems, methods, and apparatus for dynamic software generation and testing
CN109240757A (zh) * 2018-07-23 2019-01-18 武汉智领云科技有限公司 一种大数据组件集中配置管理系统和方法
US10929124B2 (en) * 2018-09-28 2021-02-23 Workday, Inc. Application release using integration into unified code system
US20230061121A1 (en) * 2019-05-15 2023-03-02 The Regents Of The University Of California Methods concerning ongoing treatment for cancer
US11222164B2 (en) * 2019-11-22 2022-01-11 International Business Machines Corporation Adding custom content to an existing documentation suite
US11200155B2 (en) * 2020-04-09 2021-12-14 The Toronto-Dominion Bank System and method for automated application testing
CN111625326B (zh) * 2020-05-13 2023-06-27 北京字节跳动网络技术有限公司 任务管线执行方法、装置及电子设备
US20230161693A1 (en) * 2021-11-23 2023-05-25 Jpmorgan Chase Bank, N.A. Method and system for integration test monitoring and management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0073901A2 (en) * 1981-09-08 1983-03-16 International Business Machines Corporation Method for evaluating boolean expressions in a data processing system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495610A (en) 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
US5805897A (en) 1992-07-31 1998-09-08 International Business Machines Corporation System and method for remote software configuration and distribution
US5845090A (en) 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
US6110228A (en) * 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
US5742829A (en) 1995-03-10 1998-04-21 Microsoft Corporation Automatic software installation on heterogeneous networked client computer systems
US5974454A (en) * 1997-11-14 1999-10-26 Microsoft Corporation Method and system for installing and updating program module components
US6035423A (en) * 1997-12-31 2000-03-07 Network Associates, Inc. Method and system for providing automated updating and upgrading of antivirus applications using a computer network
US6192518B1 (en) 1998-01-22 2001-02-20 Mis Only, Inc. Method for distributing software over network links via electronic mail
US6226784B1 (en) 1998-10-14 2001-05-01 Mci Communications Corporation Reliable and repeatable process for specifying developing distributing and monitoring a software system in a dynamic environment
US6532588B1 (en) 1998-10-21 2003-03-11 Xoucin, Inc. User centric program product distribution
US6427230B1 (en) * 1998-11-09 2002-07-30 Unisys Corporation System and method for defining and managing reusable groups software constructs within an object management system
US6223345B1 (en) * 1999-08-30 2001-04-24 J.D. Edwards World Source Company System and method for building client and server application packages

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0073901A2 (en) * 1981-09-08 1983-03-16 International Business Machines Corporation Method for evaluating boolean expressions in a data processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
0073901 *

Also Published As

Publication number Publication date
KR20040033288A (ko) 2004-04-21
EP1421485A1 (en) 2004-05-26
WO2003021432A1 (en) 2003-03-13
IL160612A0 (en) 2004-07-25
CA2457439A1 (en) 2003-03-13
CN1547700A (zh) 2004-11-17
JP2005502118A (ja) 2005-01-20
US7735080B2 (en) 2010-06-08
US20030046681A1 (en) 2003-03-06
CN1277189C (zh) 2006-09-27

Similar Documents

Publication Publication Date Title
KR100702424B1 (ko) 소프트웨어 배포를 위한 통합 관리 시스템 및 방법
US8037453B1 (en) System and method for continuous software configuration, test and build management
US7761851B2 (en) Computer method and system for integrating software development and deployment
US7949997B2 (en) Integration of software into an existing information technology (IT) infrastructure
US7194730B2 (en) System and method for the configuration of software products
EP1497721B1 (en) A software distribution method and system
US9063725B2 (en) Portable management
US8677348B1 (en) Method and apparatus for determining least risk install order of software patches
US20040060035A1 (en) Automated method and system for building, deploying and installing software resources across multiple computer systems
US20060048145A1 (en) Software distribution method and system with automatic prerequisite installation
US20040068713A1 (en) System and method for managing distributed software development
US20130104133A1 (en) Constructing change plans from component interactions
Railić et al. Architecting continuous integration and continuous deployment for microservice architecture
Jansen et al. A process model and typology for software product updaters
US7921417B2 (en) Method and computer system for activation of source files
US20060182253A1 (en) Unifying business process object modeling
US20100042659A1 (en) Deployment overview management system, apparatus, and method
KR20210059386A (ko) 소프트웨어의 효율적인 통합 관리 시스템
Kaplan et al. Implementing SAP Enhancement Packages
Bicevskis et al. A Practitioners Approach to Achieve Autonomic Computing Goals
AU2002337039A1 (en) Integrated management system and method for distributing software
US20090276458A1 (en) Adaptive Workflows Derived From Updates to Solution Building Block Architectures and Designs
Le Automated Jira backlog prosess using Python
US8805895B2 (en) Adaptive methodology for updating solution building block architectures and designs
Zhang et al. Automated workplace design and reconfiguration for evolving business processes.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110201

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee