KR20040111162A - 종속성 기반 패키지 배치 - Google Patents

종속성 기반 패키지 배치 Download PDF

Info

Publication number
KR20040111162A
KR20040111162A KR1020040045487A KR20040045487A KR20040111162A KR 20040111162 A KR20040111162 A KR 20040111162A KR 1020040045487 A KR1020040045487 A KR 1020040045487A KR 20040045487 A KR20040045487 A KR 20040045487A KR 20040111162 A KR20040111162 A KR 20040111162A
Authority
KR
South Korea
Prior art keywords
package
dependency
component
dependencies
data
Prior art date
Application number
KR1020040045487A
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 마이크로소프트 코포레이션
Publication of KR20040111162A publication Critical patent/KR20040111162A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

패키지 및 이들의 종속성 배치를 제공한다. 실시예에서, 인터페이스는 패키지의 구성 요소를 노출하도록 그리고 그 구성 요소의 종속성을 결정하도록 동작한다. 동작시에, 패키지 구성 요소 상에서 스캔을 수행하여 구성 요소가 의존하는 소자들을 식별한다. 스캔 결과는 배치되는 패키지에서 발견된 구성 요소의 종속성 리스트이다. 예시적인 인터페이스는 또한 배치할 패키지의 모든 구성 요소 및 이들의 종속성을 집합 및 병합하도록 동작한다. 일단 배치되면, 인터페이스는 새롭게 배치된 환경에서 실행되어 패키지를 확장하고 구성 요소와 이들의 종속성을 새로운 환경에 둔다. 패키지 어셈블리의 일부로서 결정된 종속성 및 배치를 이용하여, 인터페이스는 구성 요소가 적절히 위치하고 동작하는 것을 보장하게 된다.

Description

종속성 기반 패키지 배치{DEPENDENCY BASED PACKAGE DEPLOYMENT}
본 발명은 일반적으로 컴퓨팅 애플리케이션 구성 요소의 배치에 관한 것으로서, 보다 상세하게는, 적절한 동작을 보장하도록 패키지의 관련 구성 요소가 동시에 배치되는 방식으로 종속성을 이용하는 패키지 배치에 관한 것이다.
컴퓨팅 및 통신 기술이 진보함에 따라, 시장, 사업 확장, 및 공기업 등이 글로벌화되고 있다. 오랜 기간에 걸쳐 데이터 및 정보를 공유하는 지리적 제한은 과거의 일일 뿐이다. 또한, 이러한 기술의 향상에 의해, 한 때 독립형 머신 상에서 사용할 예정이었던 컴퓨팅 애플리케이션은, 방대한 컴퓨팅 환경 네트워크 및 플랫폼에 걸쳐 종종 배치되고 있다. 더 많은 데이터 및 컴퓨팅 애플리케이션이 공유됨에 따라, 집적도 및 재유용성을 보장하도록 이 데이터 및 애플리케이션의 배치를 관리 및 제어할 필요가 있다.
많은 조직에서는 데이터를 집중시켜 기업 의사 결정을 개선할 필요가 있다. 그러나, 이 데이터는 다양한 포맷 및 상이한 위치에 저장될 수 있다. 데이터 변환 서비스(DTS)는, 다른 소스로부터 DTS 접속성에 의해 지원되는 하나의 또는 다중 수신지로의 데이터 추출, 변환, 및 통합이 가능한 한 세트의 툴을 제공함으로써 그러한 중요 기업 요구에 중점을 둔다. DTS 툴을 이용하여 DTS 패키지를 그래픽으로 구축하거나 DTS 오브젝트 모델로 패키지를 프로그래밍함으로써, 조직이 필요로 하는 특정한 기업 요구에 해당하는 통상의 데이터 이동 솔루션을 생성할 수 있다.
DTS 패키지는, 접속, DTS 태스크, DTS 변환, 및 다양한 동조 컴퓨팅 애플리케이션이나 구조화된 저장 파일에 대하여 프로그래밍가능하거나 DTS 툴과 함께 조립된 워크플로우 제약의 조직화된 컬렉션이다. 일반적으로, 각 패키지는 실행될 때 순차적으로 또는 병렬로 실행되는 하나 이상의 단계를 포함한다. 패키지가 실행될 때, 이 패키지는 정확한 데이터 소스에 접속하여, 데이터 및 데이터베이스 오브젝트를 카피하고, 데이터를 변환하며, 다른 사용자들에게 통지하거나 이벤트를 처리한다. 패키지는 편집될 수 있고, 패스워드로 보호될 수 있으며, 실행용으로 스케쥴링될 수 있고, 버전 검색될 수 있다.
기업들에겐 패키지가 항상 이동되는 것이 놀랍지 않다. 패키지가 이동될 때, 대부분의 경우, 시스템 갱신 또는 개발 머신으로부터 테스트 머신으로의 시스템 이동이 필요하다. 과거에는, 많은 시행착오 없이 그러한 프로세스를 성공적으로 달성하기 어려웠다. 특히, DTS는 플러그가능한 구성 요소 아키텍쳐이며 제삼자는 어느 구성 요소가 어느 패키지에 속하는지를 즉시 확인하는 것을 어렵게 하는 구성 요소를 생성할 수 있다. 또한, DTS 셋업의 현재의 구현으로는 디폴트 구성 요소만을 설치하며 이처럼 패키지가 의존하는 모든 아이템을 확인 및 배치하는 것을 어렵게 한다.
현재, 패키지를 배치하고자 하는 사람은 주어진 패키지의 모든 구성 요소를 위한 모든 종속성을 수동으로 집합한다. 이러한 프로세스는 시간과 인력을 소모하게 되고 파일, 테이블, 다른 태스크, 및/또는 임의의 특정한 구성 요소가 의존하는 다른 패키지의 모두를 식별한다. 이러한 정보는 임의의 누락된 요소(즉, 간과된 종속성)가 존재한다면 패키지의 성공적인 배치에 중대한 것이며, 배치된 패키지는 새롭게 배치된 환경에서 적절하게 동작하지 않을 것이다. 일단 수집 및 집합되면,그 패키지를 조립하고 배치하는 사람은 모든 구성 요소(예를 들어, 파일, 테이블, 및 다른 종속성)를 배치용 패키지 내로 병합해야 한다. 일단 배치되면, 패키지가 적절하게 동작하는 것을 보장하도록 동일한 프로세스를 새롭게 배치된 환경에서 역으로 수행해야 한다. 간략하게, 기존의 방식은 불충분하며 에러가 발생 및 전달될 수 있는 상당한 여지를 남긴다.
상기한 바로부터, 종래 기술의 문제점을 해결할 수 있는 시스템 및 방법이 필요함을 알 수 있다.
패키지 및 이들의 구성 요소들의 배치가 제공된다. 실시예에서, 인터페이스는 패키지의 구성 요소를 노출하고 구성 요소의 종속성을 결정하도록 동작한다. 동작시, 패키지 구성 요소 상에 스캔을 수행하여 구성 요소가 의존하는 요소를 식별한다. 스캔 결과는 배치되는 패키지에서 발견되는 구성 요소용 종속성 리스트이다. 또한, 예시적인 인터페이스는 모든 구성 요소 및 배치용 패키지의 종속성을 집합 및 병합하도록 동작한다. 일단 배치되면, 인터페이스는 새롭게 배치된 환경에서 실행되어 패키지가 확장되고 구성 요소 및 이들의 종속성이 새로운 환경에 배치된다. 패키지 조립 및 배치의 일부로서 결정된 종속성을 이용하여, 인터페이스는 구성 요소가 적절히 위치하고 적절히 동작하는 것을 보장한다.
본 발명의 다른 양태는 후술한다.
도 1 및 도 2는 예시적인 네트워크화 컴퓨팅 환경을 도시하는 도2와 함께, 본 발명에 적절한 예시적인 컴퓨팅 환경을 개략적으로 도시하는 도면.
도 3은 본 발명의 시스템 및 방법에 따라 종속성 기반 패키지 배치를 이용하는 예시적인 컴퓨팅 환경의 블록도.
도 4는 종속성 기반 패키지 배치를 수행할 때 예시적인 데이터 흐름의 블록도.
도 5는 패키지를 배치하도록 준비하는데 수행되는 예시적인 처리의 흐름도.
도 6은 일단 배치된 패키지를 확장하는데 수행되는 예시적인 처리의 흐름도.
* 도면의 주요 부분에 대한 부호 설명 *
400 종속성 패키지 배치 시스템
420 스톡 인스톨러
425 병합 모듈
430 패키지
440 실행가능 셋업
첨부 도면을 참조하여 종속성 기반 패키지 배치용 시스템 및 방법을 설명한다.
흔히, 데이터 변환에 의해, 종속성 패키지는 배치하기 어려우며, 특히 하나의 머신으로부터 다른 머신으로의 배치가 어려우며, 그 이유는 패키지가 의존하는 아이템이 패키지와 함께 팔리지 않거나 팔리지 않았을 수 있기 때문이다. 본 명세서에서의 시스템 및 방법은 종속성 패키지 배치를 제공한다. 동작시에, 패키지 구성 요소는, 모든 파일이 성공적으로 실행되도록 요청하는 그 모든 파일을 계산하는 인터페이스를 이용할 수 있다. 또한, 배치하는 동안 구성 요소 및 이들의 종속성을 병합하는데 사용되는 병합 모듈이 제공된다. 배치하는 동안, 패키지는 관련된 병합 모듈을 위한 병합 모듈 캐시를 들여다 본다. 이 정보를 이용하여, 셋업 번들은, 패키지가 의존하는 구성 요소를 갖는 병합 모듈을 배치 번들 또는 셋업 파일 내로 포함하도록 구축된다. 실제로, 셋업은 배치 환경과 통신되어 패키지가 배치 환경 내에 설치될 수 있다.
본 명세서에서 시스템 및 방법이 종속성 패키지의 배치 컨텍스트라는 점에서 설명되었으며 배치 기술은 제시된 예의 범위를 벗어나는 다양한 방식으로 활용될 수 있음을 이해할 것이다.
A. 예시적인 컴퓨팅 환경
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 구성 요소들 중의 임의의 하나또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 다른 범용 또는 특수목적 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령과 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 구성 요소, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크된 원격 프로세싱 장치에 의해 태스크를 수행하는 분산형 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈 및 그외 데이터는 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 구성 요소들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 구성 요소를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 구성 요소 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(140), 분리형 비휘발성자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 구성 요소는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
B. 예시적인 네트워크화 컴퓨팅 환경
상기한 컴퓨터 환경(100)은 컴퓨터 네트워크의 일부로서 이용될 수 있다. 일반적으로, 상기한 컴퓨터 설명은 네트워크 환경에서 이용되는 서버 컴퓨터 및 클라이언트 컴퓨터에 모두 적용된다. 도 2는, 본 발명을 이용할 수 있는, 네트워크를 통해 클라이언트 컴퓨터와 통신하는 서버를 갖는 예시적인 네트워크 환경을 나타낸다. 도 2에 도시한 바와 같이, 다수의 서버(10a, 10b, 등)은, 다수의 클라이언트 컴퓨터(20a, 20b, 20c), 또는 이동 전화(15), 유선 전화(16), 및 휴대 정보 단말기(PDA; 17)와 같은 컴퓨팅 장치를 구비한 (LAN, WAN, 인트라넷, 인터넷, 또는 다른 컴퓨터 네트워크일 수 있는) 통신 네트워크(14)를 통해 상호접속된다. 예를 들어 통신 네트워크(160)가 인테넷인 네트워크 환경에서, 서버(10)는 하이퍼텍스트틀내스퍼 프로토콜(HTTP) 또는 무선 애플리케이션 프로토콜(WAP)과 같이 다수의 알려져 있는 프로토콜중 임의의 것을 통해 클라이언트(20)가 통신하는 웹 서버일 수 있다. 각 클라이언트 컴퓨터(20)에는 서버(10)에 액세스할 수 있는 브라우저(180a)가 구비되어 있을 수 있다. 유사한 방식으로, 휴대 정보 단말기(17)에는 브라우저(180b)가 구비되고 이동 전화(15)에는 브라우저(180c)가 구비되어 다양한 데이터를 송수신할 수 있다.
동작시에, 사용자(도시하지 않음)는 종속성 기반 패키지 배치를 수행하는 클라이언트 컴퓨팅 장치 상에서 실행되는 컴퓨팅 애플리케이션과 연동할 수 있다. 보고는 서버 컴퓨터 상에 저장될 수 있으며 통신 네트워크(14)에서의 클라이언트 컴퓨팅 장치를 통해 연동 사용자와 통신될 수 있다.
따라서, 본 발명은, 네트워크에 액세스하고 연동하기 위한 클라이언트 컴퓨팅 장치 및 클라이언트 컴퓨터와 연동하기 위한 서버 컴퓨터를 구비하는 컴퓨터 네트워크 환경에서 이용될 수 있다. 그러나, 본 발명의 시스템 및 방법은 다양한 네트워크 기반 아키텍쳐로 구현될 수 있으며, 따라서 도시한 예로 한정되지 않는다. 본 발명의 시스템 및 방법을 도시한 구현예를 참조하여 보다 상세히 설명한다.
C. 패키지 배치 - 종속성 기반 - 병합 모듈
종속성 기반 패키지 배치는 구성 요소가 의존하는 파일을 설명하여 이러한 파일들이 패키지와 함께 팔릴 수 있다. 실제로, 구성 요소는 모든 파일이 성공적으로 실행되길 요청하여 그 모든 파일을 계산하는 인터페이스를 구현할 수 있다. 실제로, 병합 모듈은 종속성 파일 및 구성 요소를 배치용 패키지 내에 병합하는데사용된다. 특히, 병합 모듈에 의해 재사용가능 셋업 구성 요소를 생성할 수 있다. 병합 모듈에 의해 동조 인스톨러 간에 셋업 코드를 공유할 수 있다.
실제 구현예에 있어서, 병합 모듈(.msm 파일)은, 파일, 리소스, 레지스트리 엔트리, 및 구성 요소를 설치할 셋업 로직을 포함하는 단일 패키지이다. 동작시에, 일반적으로 병합 모듈은 단독으로 설치될 수 없지만, 인스톨러 파일(.msi)의 컨텍스트 내에서 대신 사용된다. 병합 모듈에 의해 특정 구성 요소를 위한 모든 종속성을 캡쳐할 수 있으며, 정확한 버전이 설치되는 것을 보증한다. 병합 모듈은 강력하며, 그 이유는 일단 병합 모듈이 분포되면 수정이 안되고, 대신에 구성 요소의 연속 버전 각각을 위한 새로운 병합 모듈이 생성된다.
비교해 보면, 인스톨러는 애플리케이션 및 파일을 다른 컴퓨터 상에 설치할 때 사용되며, 병합 모듈은, 다중 애플리케이션에 의해 공유되는 구성 요소를 설치하는데 사용된다. 일반적으로, 2개 타입 간의 주요 구별은 타겟 오디언스에 있다. 애플리케이션(실행가능 파일, 문서, HTML 페이지)의 최종 사용자에 의해 직접 사용될 임의의 것을 인스톨러 내에 패키징해야 한다. 개발자에 의해서만 사용될 수 있는 임의의 것(DLLs, 제어, 리소스)은 병합 모듈 내에 패키징되고, 이것은 최종 사용자에게 배포하기 위한 인스톨러에 개발자에 의해 패키징될 수 있다. 또한, 한 애플리케이션 이상에 의해 공유되는 (또는 공유될 가능성을 갖는) 구성 요소는 자신의 고유 병합 모듈 내에 위치하게 된다.
도 3은 패키지 배치의 예시적인 개념의 블록도이다. 도시한 바와 같이, 제1 컴퓨팅 환경은 예시적인 패키지(310)를 포함한다. 이 패키지(310) 내에는,태스크(325), 커스텀 파일(315), 플랫 파일(320), ftp 파일(330), 및 DTS 파일(335)이 존재한다. 점선으로 표시한 바와 같이, 패키지 및 그 구성 요소는 집합되고 이후 화살표로 표시된 바와 같이 제2 컴퓨팅 환경과 통신한다. 본 발명에서, 패키지는 태스크와 그 구성 요소 간의 종속성 리스트를 유지한다. 이 정보는, 패키지가 제2 컴퓨팅 환경에서 성공적으로 실행되고 동작될 수 있는 방식으로 (화살표로 표시한 바와 같이) 배치의 일부로서 통신된다.
제시한 예에서, 태스크(325)는, 회사 세일의 계산, 추적, 관리, 저장, 및 통신하기 위한 회계 태스크를 포함할 수 있다. 따라서, 태스크(325)는, 플랫 파일(320)에서 발견될 수 있는 히스토리컬 세일 정보를 이용하도록 요청받을 수 있다. 또한, 태스크(325)는 DTS.DLL(335)를 이용하는 데이터 저장 패키지로서 다른 패키지와 동조할 수 있다.
또한, 태스크(325)는 세일 계산 및 다양한 국제 통화를 위한 세일 환산을 수행하도록 요청받을 수 있다. 이 컨텍스트에서, 태스크(325)는 이러한 동작을 수행하도록 Cust.DLL(315)와 같은 커스텀 파일을 호출할 수 있다. 마지막으로, 태스크(325)는 파일 트랜스퍼 프로토콜(ftp) (또는 다른 통신 프로토콜) 을 이용하여 세일 정보를 제2 컴퓨팅 환경과 통신하도록 요청받을 수 있다. 이 컨텍스트에서, 태스크(325)는 ftp 타입 통신을 위해FTP.DLL(330)을 호출한다.
많은 기능을 수행하는 태스크(325)는 다른 파일, 테이블, 및 구성 요소에 의존한다는 것을 알 수 있다. 또한, (점선 박스로 나타낸 바와 같이) 패키지(310)용 파일, 테이블, 및 구성 요소는 태스크(325)에 의한 배타적 사용을 위해서는 생성되지 않지만, 제1 컴퓨팅 환경에서의 다른 구성 요소, 패키지, 태스크에 의해 사용될 수 있음을 알 수 있다. 발생을 공유함으로써, 패키지 생성에서 혼란을 완화하고 에러를 줄이기 위해 종속성의 적절한 식별이 바람직하다.
예시적인 패키지가 특정 종속성을 갖는 특정 구성 요소를 포함하는 것으로 설명되었지만, 이러한 설명은 단지 예일 뿐이며 본 발명은, 다양한 구성, 구성 요소, 및 구성 요소 종속성을 갖는 다양한 패키지를 생성하는데 적용될 수 있다.
도 4는 종속성 패키지 배치 시스템(400)의 블록도이다. 도시한 바와 같이, 종속성 패키지 배치 시스템(400)은 병합 모듈(435)을 포함한다. 병합 모듈은, 스톡 인스콜러(420), 패키지(30), 구성 파일(435), 병합 기반 테이블과 파일(410), 및 파일(415)과 동조한다. 병합 기반 테이블과 파일(410), 및 파일(415)은 블록(405)에서 수행되는 기존의 병합 기반 테이블과 파일을 스캔함으로써 발생한다. 병합 모듈(425)은, 스톡 인스톨러(420), 패키지(430), 구성 파일(435), 병합 기바 테이블과 파일(410), 및 파일(415)과 동조하여 종속성 실장된 패키지 및 실행가능 셋업(440)을 생성하고, 이것은 화살표로 표시한 바와 같이, 제2 환경에 배치가능하다.
동작시에, 기존의 병합 기반 테이블과 파일은 스캐닝되어 패키지(430)에 추가되어야 하는 임의의 종속성을 패키지(430)의 구성 요소가 구비하는지를 결정한다. 스캔에 의해 병합 기반 테이블과 파일(410) 및 다른 종속성 파일(415)이 발생하게 된다. 병합 기판 테이블과 파일 및 다른 종속성 파일의 리스트는 병합 모듈(425)로의 하나의 입력 역할을 한다. 또한, 병합 모듈(425)은 모든 패키지 구성 요소 및 이들의 종속성 파일과 테이블을 집합하고 이들을 스톡 인스톨러(420)과 일부 구성 파일과 함께 병합하여 실행가능 셋업(440)을 생성하게 된다. 실행가능 셋업(440)은, 제2 환경에서 실행될 때, 패키지(330)에 자신의 모든 종속성 파일 및 구성 요소를 제공할 것이다.
구현 예에서, 종속성 패키지 배치 시스템(400)은 셋업 파일과 패키저 리스트(440)를 생성할 때 MICROSOFTVisual Studio의 병합 모듈 종속성 아키텍쳐(예를 들어, 병합 모듈 및 관련 파일)를 이용한다. 특히, 이 컨텍스트에서, 패키지(330)는 디폴트 DTS 구성 요소를 포함한다. 기존의 MSM 테이블과 파일을 스캔하는 것은 블록(405)에서 수행되어 패키지(330)의 넌-디폴트(예를 들어, 제삼자가 생성한) 구성 요소용 파일 및 테이블 종속성을 결정한다. 이러한 프로세스는, 패키지 태스크가 자신의 종속성을 노출하고 이러한 종속성을 노출하도록 그 태스크가 인터페이스와 통신할 수 있는 프로세스의 결과임을 이해할 수 있다. Visual Studio의 컨텍스트에서, 인터페이스는 패키지를 조립 및 배치하는데 사용되는 패키지 배치 마법사(wizard)이다. 식별된 MSM(410) 및 다른 파일(415)은, MSI 리스트 및 실행가능 셋업(440)을 생성하도록 스톡 MSI 인스톨러, 패키지 규정(예를 들어, 디폴트 패키지 구성 요소), 및 구성 파일(435)을 갖는 Visual Studio의 표준 병합 모듈에 의해 병합된다.
도 5는 패키지 및 그 종속성을 생성하고 처리할 때 수행되는 프로세싱을 도시한다. 도시한 바와 같이, 프로세싱은 블록(500)에서 시작하여 패키지 태스크가 동조 인터페이스에 자신의 종속성을 노출하는 블록(505)으로 진행된다. 여기서부터, 프로세싱은 노출된 종속성이 집합되는 블록(510)으로 진행된다. 이후, 종속성은 블록(515)에서 배치용 디폴트 패키지 구성 요소와 병합된다. 이후, 패키지는 블록(520)에서 배치되어 프로세싱이 블록(525)에서 종료된다.
도 6은 패키지가 배치 환경에 배치될 때 수행되는 프로세싱을 도시한다. 도시한 바와 같이, 프로세싱은 블록(500)에서 시작하여 (배치된 패키지 및 그 종속성을 포함하는) 통신된 셋업 파일이 실행되는 블록(505)으로 진행된다. 이후, 셋업 파일에서 발견된 패키지는 블록(510)에서 확장된다. 이후, 패키지 종속성은 블록(515)에서 배치되고 블록(520)에서 패키지 태스크가 실행되어 적절한 배치를 검증한다. 여기로부터 블록(525)에서 프로세싱이 종료된다.
D. 결론
본 발명의 시스템 및 방법은, 종속성 기반 패키지 배치를 제공한다. 그러나, 본 발명의 구성은 다양하게 수정 및 대체될 수 있음을 이해할 수 있다. 본 명세서에 기재된 특정 구성으로 본 발명이 제한되지는 않는다. 본 발명은 본 발명의 사상 및 범위 내의 모든 수정, 대체 구성, 및 등가물을 포함한다.
본 발명은 (유선 및 무선 컴퓨터 환경을 포함한) 다양한 컴퓨터 환경, 부분적 컴퓨팅 환경, 및 실제 환경에서 구현될 수 있음을 주목하길 바란다. 본 명세서에서의 다양한 기술은 하드웨어 또는 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 바람직하게, 이러한 기술들은, 각각이 프로세서, (휘발성 및 비휘발성 메모리 및/또는 저장 소자를 포함한) 프로세서에 의해 판독가능한 저장 매체, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함하는 프로그래밍가능한 컴퓨터 상에서 실행되는 컴퓨터 프로그램에서 구현된다. 프로그램 코드는 입력 장치를 이용하여 입력되는 데이터에 적용되어 상기한 기능을 수행하고 출력 정보를 생성하게 된다. 출력 정보는 하나 이상의 출력 장치에 인가된다. 각 프로그램은 바람직하게 고레벨 절차 또는 오브젝트 형 프로그래밍 언어에서 컴퓨터 시스템과 통신하도록 구현된다. 그러나, 프로그램은 필요시 어셈블리 또는 기계 언어로 구현될 수 있다. 어떠한 경우에서든, 언어는 컴파일된 또는 인터프리트된 언어일 수 있다. 이러한 컴퓨터 프로그램의 각각은 상기한 프로시저를 수행하기 위해 저장 매체 또는 장치가 컴퓨터에 의해 판독될 때 컴퓨터를 구성 및 동작하도록 바람직하게 저장 매체, 또는 범용이나 특정 프로그래밍 가능한 컴퓨터에 의해 판독가능한 장치(예를 들어, ROM 또는 자기 디스크) 상에 저장된다. 또한, 시스템은, 컴퓨터 프로그램으로 구성된 컴퓨터 판독가능 저장 매체로서 구현되는 것으로 고려될 수 있으며, 그렇게 구성된 저장 매체에 의해 컴퓨터는 특정 방식 및 소정의 방식으로 동작할 수 있다.
본 발명의 예시적인 구현예를 설명하였지만, 당업자는 본 발명의 신규한 교시 및 이점으로부터 벗어나지 않고 예시적인 실시예에서 많은 추가 수정이 가능하다는 것을 쉽게 이해할 수 있다. 따라서, 이러한 모든 수정은 본 발명의 범위 내에 포함된다. 본 발명의 범위는 다음에 따르는 청구범위에 의해서 규정된다.
인터페이스는 새롭게 배치된 환경에서 실행되어 패키지를 확장하고 구성 요소와 이들의 종속성을 새로운 환경에 둔다. 패키지 어셈블리의 일부로서 결정된종속성 및 배치를 이용하여, 인터페이스는 구성 요소가 적절히 위치하고 동작하는 것을 보장하게 된다.

Claims (22)

  1. 구성 요소를 배치하는 방법에 있어서,
    구성 요소의 종속성 - 상기 구성 요소의 종속성은 동조 인터페이스에 노출됨 - 을 규정하는 단계와,
    규정된 종속성 리스트를 생성하는 단계와,
    상기 규정된 종속성과 관련된 파일을 식별하는 단계와,
    배치가능 번들을 생성하도록 상기 규정된 종속성 리스트 및 식별된 파일을 처리하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 배치가능 번들을 동조 환경과 통신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 배치가능 번들을 생성하도록 상기 종속성 리스트, 상기 식별된 파일, 및 디폴트 구성 요소를 병합하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    디폴트 소자 및 넌-디폴트 소자를 식별하도록 구성 요소를 스캐닝하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 배치가능 번들 내에 포함하기 위한 인스톨러 구성 요소를 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 배치가능 번들을 컴퓨팅 환경에 설치함으로써 상기 배치가능 번들을 검증하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 배치가능 번들에 포함하기 위한 구성 파일을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 처리 단계는, 상기 배치가능 번들을 생성하도록 상기 종속성 리스트, 상기 식별된 파일, 및 디폴트 구성 요소를 병합하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 배치가능 번들을 생성하도록 상기 종속성 리스트, 상기 식별된 파일, 및 디폴트 구성 요소 소자의 병합을 수행하기 위한 병합 모듈을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 컴퓨터 판독가능 명령을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    자신의 종속성을 동조 인터페이스에 노출하는 구성 요소에 의해 종속성을 규정하고,
    규정된 종속성 리스트를 생성하고,
    상기 규정된 종속성 리스트와 관련된 파일을 식별하고,
    배치가능 번들을 생성하도록 상기 규정된 종속성 리스트와 식별된 파일을 처리하는
    명령을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
  11. 배치용 패키지 생성에 사용되는 데이터 구조에 있어서,
    패키지의 구성 요소를 나타내는 데이터를 포함하는 데이터 필드와,
    상기 패키지 구성 요소가 의존하는 아이템을 식별하도록 제1 필드를 스캐닝함으로써 상기 패키지의 구성 요소를 나타내는 데이터를 포함하는 필드로부터 도출된 종속성 데이터를 포함하는 데이터 필드와,
    상기 데이터 구조의 종료를 정하도록 하는 기능에 대한 필드
    를 포함하는 것을 특징으로 하는 데이터 구조.
  12. 제11항에 있어서,
    상기 구성 요소 종속성을 상기 패키지 구성 요소를 나타내는 데이터와 병합함으로써 종속성을 포함하는 상기 데이터 필드로부터 도출된 필드를 더 포함하는 것을 특징으로 하는 데이터 구조.
  13. 제12항에 있어서,
    상기 병합된 데이터를 포함하는 상기 필드는, 상기 패키지를 이용하는 방식에 대한 구성 정보를 나타내는 데이터를 포함하는 것을 특징으로 하는 데이터 구조.
  14. 제11항에 있어서,
    인스톨레이션 프로그램에게 패킷을 설치할 것을 지시하는 필드를 포함하는 것을 특징으로 하는 데이터 구조.
  15. 종속성을 갖는 패키지를 이용하는 시스템에 있어서,
    상기 패키지의 구성 요소의 종속성을 나타내는 종속성 데이터와,
    상기 종속성 데이터와, 상기 패키지의 구성 요소를 병합하여 배치가능 번들을 생성하도록 동작하는 병합 모듈
    을 포함하는 것을 특징으로 하는 시스템.
  16. 제15항에 있어서,
    인스톨러를 더 포함하고,
    상기 인스톨러는 상기 배치가능 번들을 생성하도록 상기 병합 모듈에 의해 병합되는 것을 특징으로 하는 시스템.
  17. 제16항에 있어서,
    구성 정보를 더 포함하고,
    상기 구성 정보는 상기 배치가능 번들을 생성하도록 상기 병합 모듈에 의해 병합되는 것을 특징으로 하는 시스템.
  18. 제17항에 있어서,
    디폴트 패키지 구성 요소를 더 포함하고,
    상기 디폴트 패키지 구성 요소는 상기 배치가능 번들을 생성하도록 상기 병합 모듈에 의해 병합되는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 배치가능 번들을 동조 컴퓨팅 환경과 통신하여 사용하기 위한 통신 수단을 더 포함하는 것을 특징으로 하는 시스템.
  20. 제19항에 있어서,
    상기 패키지의 적절한 배치를 검증하는 검증 수단을 더 포함하는 것을 특징으로 하는 시스템.
  21. 종속성을 갖는 구성 요소의 배치에 이용하는 시스템에 있어서,
    상기 구성 요소의 종속성을 결정하는 수단 - 상기 구성 요소는 상기 종속성을 상기 수단에 노출함 - 과,
    배치가능 번들을 생성하도록 상기 구성 요소의 종속성을 상기 구성 요소와 병합하는 수단
    을 포함하는 것을 특징으로 하는 시스템.
  22. 제21항에 있어서,
    상기 배치가능 번들을 설치하도록 상기 병합 수단과 동조하는 설치 수단을 더 포함하는 것을 특징으로 하는 시스템.
KR1020040045487A 2003-06-20 2004-06-18 종속성 기반 패키지 배치 KR20040111162A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/600,178 US20040261060A1 (en) 2003-06-20 2003-06-20 Dependency based package deployment
US10/600,178 2003-06-20

Publications (1)

Publication Number Publication Date
KR20040111162A true KR20040111162A (ko) 2004-12-31

Family

ID=33418563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040045487A KR20040111162A (ko) 2003-06-20 2004-06-18 종속성 기반 패키지 배치

Country Status (5)

Country Link
US (1) US20040261060A1 (ko)
EP (1) EP1492002A3 (ko)
JP (1) JP2005011359A (ko)
KR (1) KR20040111162A (ko)
CN (1) CN1573692A (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074201B2 (en) * 2002-07-10 2011-12-06 National Instruments Corporation Deployment and execution of a program on an embedded device
JP4209789B2 (ja) * 2003-03-19 2009-01-14 株式会社リコー ファイル作成方法、サーバ、記録媒体及びプログラム追加システム
US7526734B2 (en) * 2004-04-30 2009-04-28 Sap Ag User interfaces for developing enterprise applications
US20060048140A1 (en) * 2004-08-31 2006-03-02 International Business Machines Corporation Method, system and article for generating installation merge packages
US8140816B2 (en) * 2005-05-12 2012-03-20 International Business Machines Corporation Utilizing partition resource requirements from workload estimation to automate partition software configuration and validation
US20060271924A1 (en) * 2005-05-27 2006-11-30 International Business Machines Corporation Method and apparatus for automating updates to dependencies
US8639652B2 (en) * 2005-12-14 2014-01-28 SAP France S.A. Apparatus and method for creating portable ETL jobs
US8341622B1 (en) 2005-12-15 2012-12-25 Crimson Corporation Systems and methods for efficiently using network bandwidth to deploy dependencies of a software package
US7950007B2 (en) * 2006-06-15 2011-05-24 International Business Machines Corporation Method and apparatus for policy-based change management in a service delivery environment
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7496893B2 (en) * 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US7567984B1 (en) * 2006-08-31 2009-07-28 Symantec Operating Corporation Operating system and application deployment based on stored user state and organizational policy
US20080104022A1 (en) 2006-10-31 2008-05-01 Bank Of America Corporation Document indexing and delivery system
US8229778B2 (en) 2006-11-16 2012-07-24 International Business Machines Corporation Constructing change plans from component interactions
US8266578B2 (en) * 2007-01-10 2012-09-11 Angela Bazigos Virtual validation of software systems
US7860900B2 (en) * 2008-02-25 2010-12-28 Microsoft Corporation Consistently signaling state changes
KR20100071483A (ko) * 2008-12-19 2010-06-29 한국전자통신연구원 묶음 소프트웨어의 배포 방법 및 시스템
US8930880B2 (en) * 2010-09-29 2015-01-06 Rockwell Automation Technologies, Inc. Development of functional modules using a module bus
US9116707B2 (en) * 2010-10-18 2015-08-25 Oracle International Corporation Dependency resolution in polyphasic modules
US8612963B2 (en) * 2010-12-02 2013-12-17 International Business Machines Corporation Guided problem resolution in deploying an application
US9383985B2 (en) * 2011-06-10 2016-07-05 Unisys Corporation Automated modification of pre-generated MSI packaged applications
US9052961B2 (en) * 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9003355B2 (en) * 2013-02-20 2015-04-07 Bank Of America Corporation Decentralized workflow management system
US9323514B2 (en) * 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9274784B2 (en) * 2014-06-02 2016-03-01 Sap Se Automatic deployment and update of hybrid applications
US9519505B1 (en) 2015-07-06 2016-12-13 Bank Of America Corporation Enhanced configuration and property management system
JP6904364B2 (ja) * 2016-11-01 2021-07-14 日本電気株式会社 システム構築支援装置、方法およびプログラム
CN109683945A (zh) * 2018-12-12 2019-04-26 泰康保险集团股份有限公司 程序接口处理方法与系统、其计算器可读介质及电子设备
US11093256B2 (en) * 2019-09-12 2021-08-17 Dell Products L.P. System and method for dynamically installing driver dependencies
US11275571B2 (en) 2019-12-13 2022-03-15 Sap Se Unified installer
CN112596753A (zh) * 2020-12-29 2021-04-02 上海瑞家信息技术有限公司 依赖包安装方法、装置、电子设备和计算机可读介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189030B1 (en) * 1996-02-21 2001-02-13 Infoseek Corporation Method and apparatus for redirection of server external hyper-link references
US5721824A (en) * 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5950010A (en) * 1996-11-25 1999-09-07 J.D. Edwards World Source Co. System and method for customized application package building and installation
GB2325063B (en) * 1997-05-08 2001-11-21 Ibm Method of installing and configuring an application program within a computer system, and application program for facilitating the method
US6117187A (en) * 1997-09-30 2000-09-12 Hewlett-Packard Company Automatic generation of a software installation package
US5996073A (en) * 1997-12-18 1999-11-30 Tioga Systems, Inc. System and method for determining computer application state
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6237144B1 (en) * 1998-09-21 2001-05-22 Microsoft Corporation Use of relational databases for software installation
US6983315B1 (en) * 2000-01-18 2006-01-03 Wrq, Inc. Applet embedded cross-platform caching
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US20030172135A1 (en) * 2000-09-01 2003-09-11 Mark Bobick System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks
US20020147972A1 (en) * 2001-01-31 2002-10-10 Olmeda Hector M. System and method for configuring an application environment on a computer platform
US6847970B2 (en) * 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US7069553B2 (en) * 2003-03-03 2006-06-27 Computer Associates Think, Inc. Universal deployment tool
US7735057B2 (en) * 2003-05-16 2010-06-08 Symantec Corporation Method and apparatus for packaging and streaming installation software

Also Published As

Publication number Publication date
CN1573692A (zh) 2005-02-02
EP1492002A3 (en) 2010-02-17
EP1492002A2 (en) 2004-12-29
JP2005011359A (ja) 2005-01-13
US20040261060A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
KR20040111162A (ko) 종속성 기반 패키지 배치
US20020144256A1 (en) Method of deployment for concurrent execution of multiple versions of an integration model on an integration server
US8739150B2 (en) Systems and methods for dynamically replacing code objects via conditional pattern templates
US8122106B2 (en) Integrating design, deployment, and management phases for systems
US8706771B2 (en) Systems and methods for analyzing and transforming an application from a source installation to a target installation
US20080229303A1 (en) Method, system and computer program for distributing customized software products
CN109918435A (zh) 一种业务接口的处理方法及系统
US20050251783A1 (en) Settings and constraints validation to enable design for operations
CN101866315B (zh) 软件开发工具的测试方法及系统
US20030140126A1 (en) Method of deployment for concurrent execution of multiple versions of an integration model
US8250226B2 (en) Generating one or more clients for generating one or more synthetic transactions with one or more web service operations
Kazhamiakin et al. Analysis of realizability conditions for web service choreographies
Breu et al. Key issues of a formally based process model for security engineering
AU2017276243B2 (en) System And Method For Generating Service Operation Implementation
US20090013305A1 (en) Generating a subset model from a model
US10656922B2 (en) Systems and methods for providing an application transformation tool
US11210110B2 (en) Application library analytics tool
US20070074164A1 (en) Systems and methods for information brokering in software management
US7743130B2 (en) Exposing logic flows of web services and permitting logic flow modifications
Zúñiga-Prieto et al. An incremental and model driven approach for the dynamic reconfiguration of cloud application architectures
Sanchez-Cid et al. Serenity pattern-based software development life-cycle
WO2011041246A1 (en) Systems and methods for analyzing and transforming an application from a source installation to a target installation
Joukov et al. Built-to-order service engineering for enterprise IT discovery
Constantinides A case study on making the transition from functional to fine-grained decomposition
KR102602534B1 (ko) 시스템 온 칩 설계 검증을 위한 테스트 자동화 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application