KR20070059966A - 소프트웨어 제품을 트라이얼 모드로 배포하는 방법, 시스템및 컴퓨터 프로그램 - Google Patents

소프트웨어 제품을 트라이얼 모드로 배포하는 방법, 시스템및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20070059966A
KR20070059966A KR1020060119318A KR20060119318A KR20070059966A KR 20070059966 A KR20070059966 A KR 20070059966A KR 1020060119318 A KR1020060119318 A KR 1020060119318A KR 20060119318 A KR20060119318 A KR 20060119318A KR 20070059966 A KR20070059966 A KR 20070059966A
Authority
KR
South Korea
Prior art keywords
software
software package
software product
mode
target entity
Prior art date
Application number
KR1020060119318A
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 KR20070059966A publication Critical patent/KR20070059966A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Abstract

소프트웨어 제품을 트라이얼 모드로 배포하기 위한 솔루션(300)이 제안된다. 이 솔루션은 소프트웨어 배포 인프라구조를 레버리징하는 사상에 기초한다. 이러한 목적으로, 트라이얼 모드로 배포될 임의의 소프트웨어 제품에 대해 (특정 속성에 의해 식별된) 트라이얼 소프트웨어 패키지가 제공된다(306~309). 트라이얼 소프트웨어 패키지가 배치되고(318~321), 소프트웨어 제품을 인스톨하는데 통상적으로 적용된다(324~330). 소프트웨어 배포 인프라구조의 부가적인 서비스는 (대응하는 트라이얼 소프트웨어 패키지의 다른 속성에서 정의되는) 소프트웨어 제품의 만료 기간의 도달을 모니터링한다(333~339). 이 만료 기간이 도달할 경우, 트라이얼 소프트웨어 패키지는 소프트웨어 제품을 임시로 제거하기 위해 다시 적용된다(342~345). 만약 동일한 소프트웨어 제품에 대한 라이센스가 추후에 구매되면(354), 대응하는 활성 소프트웨어 패키지가 배치되고(354~360) 적용된다(363). 차례로, 활성 소프트웨어 패키지는, 소프트웨어 제품이 영구히 복원되도록 트라이얼 소프트웨어 패키지의 애플리케이션을 야기한다(369~372).

Description

소프트웨어 제품을 트라이얼 모드로 배포하는 방법, 시스템 및 컴퓨터 프로그램{METHOD, SYSTEM AND COMPUTER PROGRAM FOR DISTRIBUTING SOFTWARE PRODUCTS IN TRIAL MODE}
도 1a는 본 발명의 일 실시예에 따른 솔루션이 적용가능한 데이터 프로세싱 시스템의 개략 블록 다이어그램이다.
도 1b는 그 시스템의 예시적인 컴퓨터의 기능 블록을 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 솔루션을 구현하는데 사용될 수 있는 메인 소프트웨어 컴포넌트를 도시한 것이다.
도 3a 및 3b는 본 발명의 일 실시예에 따른 솔루션의 구현에 관한 동작의 플로우를 설명한 다이어그램을 나타낸 것이다.
도면의 주요부분에 대한 부호의 설명
105: 준비 서버 110: 배포 서버
115: 배치 서비스 120: 게이트웨이
125: 인터넷 130: 엔드포인트
153: 시스템 버스 165: 로컬 버스
177: 입력 180: 출력
183: 네트워크 어댑터 186: 브리지
189: 아비터 205: 에디터
210: 레포지터리 215: 빌더
220: 배치 매니저 225: 소프트웨어 패키지
230: 웹 인터페이스 235: 웹 서버
240: 브라우저 245: 배포 에이전트
250: 소프트웨어 패키지 255: 애플리케이션 엔진
260: 소프트웨어 카탈로그 265: 소프트웨어 제품
270: 백업 영역 275: 트라이얼 제어기
본 발명은 정보 기술 분야에 관한 것이다. 더 상세하게, 본 발명은 소프트웨어 제품의 배포에 관한 것이다.
소프트웨어 제품은 현대 데이터 프로세싱 시스템에서 중요한 역할을 한다. 이러한 목적으로, 간단한 개인 유틸리티로부터 복잡한 기업 애플리케이션까지, 광범위한 소프트웨어 제품이 이용가능하다. 연속적으로 전달되는 매우 다수의 신규한 소프트웨어 제품 또는 그 신규한 버전을 갖는 대응하는 시장은 매우 동적이다.
이러한 경쟁장소에서, 소프트웨어 제품의 배포자들 간의 경쟁은 매우 격렬하 다. 따라서, 상이한 마케팅 전략이 판매량을 향상시킬 시도로 개발되었다. 특히, 일반적인 전략은 소프트웨어 제품을 트라이얼 모드(trial mode)로 제공하는 것이며, 이 모드에서는, 제한된 기간 동안 무료로 사용될 수 있으며, 이러한 방식으로, 임의의 잠재적인 소비자는 의무감없이 소프트웨어 제품을 평가(예를 들어, 그 적합성 또는 성능)하도록 허용된다. 이러한 평가 기간의 종료 시에, 소프트웨어 제품의 동작은 (그 비인증 사용을 방지하기 위해) 자동으로 디스에이블된다. 임의의 시간에, 각각의 소비자는 소프트웨어 제품의 무제한 사용에 대한 하나 이상의 라이센스를 구입할 것을 결정할 수도 있다. 결과적으로, 평가 기간이 이미 종료하였으면, 소프트웨어 제품은 다시 활성화되며, 어떠한 경우라도, 그 시간 제한은 소프트웨어 제품의 동작을 영구화(가능하게는 임의의 특정 사용 조건에 좌우됨)하기 위해 제거된다.
이러한 목적으로, 배포자는, 상술한 트라이얼 모드를 관리하는데 필요한 모든 로직을 프로그램 제품 자체에 제공해야 한다. 특히, 발생할 수도 있는 임의의 가능한 상황을 핸들링하기 위해 전용 코드가 임베딩되어야 하며, 예를 들어, 이러한 부가적인 코드는 평가 기간을 모니터링하고, 그 종료의 접근 시에 경고 메시지를 전송하고, 대응하는 라이센스가 구매될 경우에 소프트웨어 제품을 활성화하고, 소프트웨어 제품의 동작을 영구화하는 등을 행할 수 있어야 한다.
하지만, 이러한 접근법은 소프트웨어 제품을 직접 업데이트해야 할 것을 요청하기 때문에 매우 바람직하지 않다. 더욱이, 배포자는 각각의 소프트웨어 제품에 대한 상이한 솔루션을 개발해야 한다. 또한, 그 동작은 시간을 소모하며 에러 가 발생하기 쉬우며, 어떠한 경우라도, 업데이트된 소프트웨어 제품(트라이얼 모드를 관리하는 부가적인 코드를 포함함)은 그 발매 전에 항상 다시 테스트되어야 한다.
또한, 상술한 솔루션은 범용 적용 불가능함을 알아야 한다. 예를 들어, 소프트웨어 제품이 적은 개수의 파일 또는 객체로 이루어질 경우, 트라이얼 모드를 관리하는데 요구되는 코드를 부가하는 것은 불가능하다. 어떠한 경우라도, 소프트웨어 제품은 그 배포자에 의해서만 업데이트될 수 있기 때문에, 이러한 특성을 본래 지원하지 않으면 소프트웨어 제품을 트라이얼 모드로 제공하는 것은 불가능하다.
또한, 평가 기간의 종료는 소프트웨어 제품이 개시될 때마다 검증되어야 한다. 따라서, 이러한 동작은, 특히, 소프트웨어 제품이 매우 빈번히 계속 발생될 경우, 전체 시스템의 성능에 악영향을 미칠 수도 있다.
상술한 단점은 어떠한 소프트웨어 제품이 전달되었는지와는 무관하게 발생한다. 예를 들어, (트라이얼 모드의) 소프트웨어 제품은 인터넷의 웹 사이트로부터 다운로드되어야 하고, 잡지에 동봉될 수도 있고, 박람회 스탠드에 제공될 수도 있는 등이다. 다른 방법으로, 소프트웨어 제품은, IBM사의 "IBM Tivoli Configuration Manager(ITCM)"에 기초하는 것과 같이, 소프트웨어 배포 인프라구조에 의해 중앙 사이트로부터 다수의 엔드포인트까지 자동으로 배치될 수도 있다.
본 발명은 독립항에 기재된 바와 같은 솔루션을 제공한다. 본 발명의 바람직한 실시예는 종속항에 기재된다.
대체로, 본 발명은 만료 조건에 좌우되는 소프트웨어 제품을 제공하는 소프트웨어 배포 서비스를 레버리징하는 사상에 기초한다.
상세하게, 본 발명의 일 양태는 데이터 프로세싱 시스템에서 소프트웨어 제품을 배포하는 방법을 제안한다. 그 방법은 소프트웨어 제품에 대한 메인(또는 트라이얼) 소프트웨어 패키지를 배치하는 단계로 시작하며, 그 메인 소프트웨어 패키지는 시스템의 (게이트웨이와 같은) 소스 엔터티로부터 (다수의 엔터티와 같은) 하나 이상의 타겟 엔터티의 세트까지 배치된다. 메인 소프트웨어 패키지는, 소프트웨어 제품을 인스톨하기 위해 각각의 타겟 엔터티에 인스톨링 모드로 적용된다. 또한, 그 방법은 에이전트에 의해 각각의 타겟 엔터티에 대한 소프트웨어 제품의 만료 조건의 이행(fulfillment)을 모니터링하는 단계를 포함한다. 만료 조건의 이행에 응답하여, 메인 소프트웨어 패키지는, 소프트웨어 제품을 가역적으로 디스에이블하기 위해 타겟 엔터티에 디스에이블링 모드로 적용된다.
통상적으로, 트라이얼 소프트웨어 패키지는 (디스에이블된 소프트웨어 제품을 복원하기 위해) 복원 모드로 추후에 적용된다.
본 발명의 바람직한 실시예에서, 이 결과는 보조(활성) 소프트웨어 패키지에 의해 달성된다.
제안 구현예는 소프트웨어 패키지로의 제어 플래그의 부가와 관련되며, 이 제어 플래그는 상술한 모니터링을 인에이블 또는 디스에이블하기 위해 사용된다.
바람직하게, 만료 조건은 (인스톨 이후) 평가 기간의 종료로 설정되며, 이 또한 트라이얼 소프트웨어 패키지에 특정된다.
추가적인 개선예로서, 모니터링은 평가 기간에 의존하는 빈도에 따라 수행된다.
본 발명의 일 실시예에서, 디스에이블된 소프트웨어 제품은 클린업 요청에 응답하여 삭제된다.
그 솔루션을 더 개선시키기 위한 방법은 (디스에이블링으로부터) 클린업 지연 이후에 동작을 수행하는 것이며, 이는 평가 기간에 따라 설정된다.
본 발명의 다른 양태는 상기 방법을 수행하는 컴퓨터 프로그램을 제안한다.
본 발명의 또 다른 양태는 대응하는 시스템을 제안한다.
본 발명 자체뿐 아니라 그 추가적인 특징 및 이점은, 단지 비-제한적인 표시에 의해 제공되고 첨부 도면과 함께 판독될 다음의 상세한 설명을 참조하여 가장 잘 이해될 것이다.
도 1a를 상세히 참조하면, 배포 구조를 갖는 데이터 프로세싱 시스템(100)이 도시되어 있다.
시스템(100)은 (예를 들어, 상술한 ITCM에 기초한) 소프트웨어 배포 인프라 구조를 구현한다. 상세하게, 준비 서버(105)는 원하는 소프트웨어 구성을 강제하기 위해 사용되는 소프트웨어 패키지를 정의 및 테스트하기 위한 중앙 사이트로서 동작하며, 일반적으로, 소프트웨어 패키지는 (애플리케이션 프로그램과 같은) 소프트웨어 제품을 인스톨, 업그레이드, 구성 또는 제거를 허용한다.
배포 서버(110)는 실제 소프트웨어 배포 프로세스를 제어한다. 상세하게, 배포 서버(110)는 (예를 들어, IBM사의 "Tivoli Management Framework 또는 TMF"에 기초하는 "Multiplexed Distribution 또는 MDIST2" 서비스로 이루어진) 배치 서비스(115)에 의해 (요구된 소프트웨어 패키지를 제공하는 소스 호스트로서 기능하는) 준비 서버(105)로부터의 선택된 소프트웨어 패키지를 배치한다. 소프트웨어 패키지는 소프트웨어 배포 프로세스의 엔드포인트에 직접 (푸시 모드로) 제공될 수도 있으며, 여기서, 소프트웨어 패키지는 원하는 소프트웨어 구성을 강제하도록 적용되며, 이 결과는 접속해제 모드(여기서, 소프트웨어 패키지의 세트는 소정의 계획에 따라 선택된 엔드포인트에 배치됨)로, 또는 커맨드 라인 인터페이스(CLI)를 통해 입력된 특정 요청에 응답해 동작하여 달성된다.
또한, 도면에 도시된 바와 같이, 소프트웨어 패키지는 게이트웨이(120)에 제공될 수도 있으며, 이는 인증된 사용자(또는 사용자의 그룹)용으로 발행한다. 이러한 목적으로, 게이트웨이(120)는 인터넷(125)에서 웹 서버로서 기능하고, 인증된 사용자는 (클라이언트로서 기능하는) 대응하는 엔드포인트(130)에 의해 (인터넷(125)을 통해) 게이트웨이(120)에 액세스하며, 이러한 방식으로, 원하는 소프트웨어 패키지는 게이트웨이(120)로부터 (풀 모드(pull mode)로) 다운로드되고, 그 후, 엔드포인트(130)에 적용될 수도 있다.
상술한 구조는 (특히, 시스템(100)이 매우 다수의 엔드포인트(130)를 포함할 경우에) 소프트웨어 제품을 배치하는 프로세스를 매우 용이하게 하며, 더욱이, 모든 동작은 배포 서버(110)로부터 중앙 제어될 수 있다. 그러한 소프트웨어 배포 인프라구조 (그리고, 특히, 지원된 소프트웨어 패키지)의 일예는 WO-A-003085513에 개시되어 있으며, 이의 전체 개시물은 여기에서 참조로서 포함된다.
일반적으로, 각각의 소프트웨어 패키지(또한 소프트웨어 패키지 블록 또는 SPB로서도 알려짐)는 그 네임, 버전 등과 같은 소프트웨어 패키지의 상이한 속성을 포함하는 헤더로 시작한다. 또한, 소프트웨어 패키지는 원하는 소프트웨어 구성을 강제하기 위해 실행되는, 가능하게는 런-타임 파라미터로 조정되는 액션을 정의하는 액션 섹션을 포함하며, 또한, 소프트웨어 패키지는 (실행가능 모듈, 구성 파일, 데이터베이스, 아이콘 등과 같은) 임의의 요구된 리소스의 이미지를 포함하는 데이터 섹션을 포함한다.
각각의 엔드포인트에 대한 소프트웨어 패키지의 애플리케이션은 소프트웨어 패키지의 원하는 타겟 상태에 도달하도록 대응하는 액션의 실행과 관련되며, 예를 들어, 소프트웨어 패키지는 (대응하는 소프트웨어 제품을 인스톨하기 위한) "인스톨" 모드로 또는 (동일한 소프트웨어 제품을 제거하기 위한) "제거" 모드로 적용될 수도 있다. 또한, 소프트웨어 패키지의 애플리케이션은 (가역될 수 없을 경우에) "커미트(committed)" 모드 또는 (그 애플리케이션에 선행하는 상황을 복원하는 것이 가능할 경우) "되살리기 가능(undoable)" 모드에 있음을 특정하는 것 또한 가능 하며, 예를 들어, 소프트웨어 제품이 (예를 들어, 신규한 버전으로) 업그레이드될 경우, "인스톨 되살리기 가능" 모드가 공통으로 사용된다. 이러한 상황에서, 소프트웨어 패키지의 애플리케이션은 "되살리기" 모드로 적용함으로써 (예를 들어, 임의의 실패 때문에) 추후에 가역될 수도 있으며, 역으로, 소프트웨어 패키지의 애플리케이션은 "수용(accept)" 모드로의 그 애플리케이션에 의해 (예를 들어, 소프트웨어 제품의 신규한 버전의 성공적인 테스트 이후에) 영구화된다.
본 발명의 일 실시예에 따른 솔루션에서, 소프트웨어 배포 인프라구조 또한 소프트웨어 제품을 (예를 들어, 제한된 기간 동안 그 무료 평가를 위해) 트라이얼 모드로 제공하도록 사용된다. 이러한 목적으로, 2개의 신규한 속성이 소프트웨어 패키지의 헤더에 부가된다. 상세하게, 속성 "TrialFlag"는 부울(Boolean) 타입의 플래그로 이루어지며, 이는 대응하는 소프트웨어 제품이 트라이얼 모드로 배포되어야 하는 경우에 어서팅(assert)된다 (즉, "참"이 됨). 또 다른 속성 "Eval"은 (소프트웨어 제품이 무료로 사용될 수 있는 기간인) 평가 기간의 길이를 나타내며, 통상적으로, 속성 "Eval"은 소프트웨어 제품의 인스톨 이후 평가 기간의 날짜 수를 제공하는 정수이다.
소프트웨어 배포 인프라구조는, 이에 따라 설정된 속성 "TrialFlag" 및 "Eval"을 갖는 대응하는 소프트웨어 패키지(이하, 트라이얼 소프트웨어 패키지로 지칭함)에 의해, 통상적으로 트라이얼 모드로 배포되는 각각의 소프트웨어 제품의 인스톨을 제어한다. 다음에 상세히 설명되는 바와 같이, 동일한 소프트웨어 배포 인프라구조의 서비스는 트라이얼 모드의 각각의 소프트웨어 제품이 만료 기간에 도 달하였는지를 주기적으로 체크하며, 이는 대응하는 트라이얼 소프트웨어 패키지의 애플리케이션 이후 평가 기간의 종료에 의해 정의된다. 그럴 경우, 트라이얼 소프트웨어 패키지는 소프트웨어 제품을 디스에이블시키기 위해 다시 적용된다. 하지만, 소프트웨어 제품은 추가적인 소프트웨어 패키지(이하, 활성 소프트웨어 패키지라고 지칭함)에 의해 추후에 다시 활성화될 수도 있으며, 활성 소프트웨어 패키지는 신규한 활성 액션을 포함하고, 이는 대응하는 소프트웨어 제품을 복원하기 위해 동일한 트라이얼 소프트웨어 패키지의 애플리케이션을 야기한다.
제안된 기술은 (트라이얼 모드로 제공되는 모든 소프트웨어 제품에 적용하는 동일한 솔루션을 갖는) 소프트웨어 제품의 임의의 업데이트를 요구하지 않는다. 따라서, 어떠한 애드혹(ad-hoc) 코드도 상이한 소프트웨어 제품의 배포자에 의해 이러한 목적으로 개발되지 않아야 하며, 이는 시간을 절약하게 하고 (소프트웨어 제품의 임의의 부가적인 테스트의 필요성 없이도) 가능한 에러를 회피하게 한다.
상술한 솔루션은 범용 적용가능하다. 특히, 이제는 임의의 종류의 소프트웨어 제품을 트라이얼 모드로 제공하는 것이 가능하며, 예를 들어, 이것은 매우 간단한 소프트웨어 제품에도 적용된다 (여기서는, 어떠한 부가적인 코드의 임베딩도 지지되지 않음).
또한, 평가 기간의 종료는 소프트웨어 제품의 사용과 무관하게 검증될 수도 있음을 알아야 한다. 따라서, (예를 들어, 아이들 기간 동안에 동작을 실행함으로써) 시스템의 성능에 대한 영향을 최소로 감소시키는 것이 가능하다.
도 1b에 도시된 바와 같이, 그 시스템(준비 서버, 배포 서버, 게이트웨이, 또는 엔드포인트)의 일반 컴퓨터는 150으로 표시되어 있다. 컴퓨터(150)는, (상술한 시스템에서 컴퓨터(150)의 실제 기능에 따라 적절히 스케일링된 구조를 갖는) 시스템 버스(153)에 병렬로 접속된 수개의 유닛에 의해 형성된다. 상세하게, 하나 이상의 마이크로프로세서(μP; 156)는 컴퓨터(150)의 동작을 제어하고, RAM(159)은 마이크로프로세서(156)에 의해 워킹 메모리로서 직접 사용되며, ROM(162)은 컴퓨터(150)의 부트스트랩(bootstrap)에 대한 기본 코드를 저장한다. 주변 유닛은 (각각의 인터페이스에 의해) 로컬 버스(165) 근방에서 클러스터링된다. 특히, 대용량 메모리는 하드-디스크(168), 및 CD-ROM(174)을 판독하기 위한 드라이브(171)로 이루어진다. 또한, 컴퓨터(150)는 입력 디바이스(177; 예를 들어, 키보드 및 마우스) 및 출력 디바이스(180; 예를 들어, 모니터 및 프린터)를 포함한다. 어댑터(183)는 컴퓨터(150)를 네트워크에 접속시키기 위해 사용된다. 브리지 유닛(186)은 시스템 버스(153)를 로컬 버스(165)와 인터페이스시킨다. 각각의 마이크로프로세서(156) 및 브리지 유닛(186)은, 정보를 전송하기 위해 시스템 버스(153)로의 액세스를 요청하는 마스터 에이전트로서 동작할 수 있다. 아비터(arbiter; 189)는 시스템 버스(153)에의 상호 배제에 의한 액세스의 허여를 관리한다.
다음으로 도 2로 이동하면, 상술한 시스템 상에서 구동하는 메인 소프트웨어 컴포넌트가 전체적으로 도면부호 200으로 표시된다. 오퍼레이팅 시스템 및 다른 애플리케이션 프로그램(도면에는 도시되지 않음)과 함께 프로그램이 구동하고 있을 경우에, 통상적으로, 정보(프로그램 및 데이터)는 각각의 컴퓨터의 하드-디스크에 저장되고, 워킹 메모리에 (적어도 부분적으로) 로딩된다. 프로그램은, 예를 들어, CD-ROM으로부터 하드 디스크 상이 초기에 인스톨된다.
준비 서버(105)를 상세하게 참조하면, 에디터(205)는 소프트웨어 패키지를 정의하기 위한 그래픽 사용자 인터페이스(GUI)를 제공한다. 그렇게 획득된 소프트웨어 패키지, 또는 대응하는 리소스 이미지와 함께 그 정의는 리포지터리(repository; 210)에 저장되며, 리포지터리(210)는 또한 제3자에 의해 제공되는 (그 배포용으로 이미 완비된) 소프트웨어 패키지를 저장하기 위해 사용될 수도 있다. 해당 실시예에서, 트라이얼 모드로 배포될 각각의 소프트웨어 제품에 대해, 리포지터리(210)는 대응하는 트라이얼 소프트웨어 패키지(그 인스톨/제거용) 및 활성 소프트웨어 패키지(그 복원용)를 포함할 것이다. 리포지터리(210)는, 선택된 소프트웨어 패키지를 검색 또는 동적으로 발생시키는 빌더(builder; 215)에 의해 액세스된다. (배포 서버의 제어에 따른) 배치 매니저(220)는 (상이한 게이트웨이로의 그 배포를 위해) 그 소프트웨어 패키지를 배치 서비스에서 이용가능하게 한다.
일반 게이트웨이(120)에 제공된 모든 소프트웨어 패키지는 글로벌 리포지터리(225)에 저장된다. 글로벌 리포지터리(225)는, 상이한 엔드포인트로의 소프트웨어 패키지의 다운로드를 제어하는 웹 인터페이스(230)에 의해 액세스되며, 해당 실시예에서, 웹 인터페이스(230)는 ITCM의 "WebUI" 서비스로 이루어진다. 이러한 목적으로, 웹 인터페이스(230)는 엔드포인트의 각 사용자를 입증하고 그 인가를 검증하는 기능, 임의의 제출된 요청을 이행하는 기능, 타겟 소프트웨어 구성을 정의하 는 선택된 레퍼런스 모델과 각각의 엔드포인트를 동기화시키는 기능, 임의의 소프트웨어 패키지의 애플리케이션에 의해 관련된 동작의 실행을 승인하는 기능 등과 같은 다수의 기능을 구현한다. 웹 인터페이스(230)는, 요구된 모든 기본 서비스를 제공하는 웹 서버(235)를 통해 인터넷에 액세스가능하다.
다음으로, 일반 엔드포인트(130)를 고려하면, 브라우저(240)는 인터넷을 통해 서핑하기 위해 (특히, 상이한 게이트웨이로 액세스하기 위해) 사용된다. 브라우저(240)는, 소프트웨어 배포 프로세스를 국부적으로 제어하는 배포 에이전트(245)와 인터페이스한다. 특히, 배포 에이전트(245)는 게이트웨이로부터 다운로드된 모든 소프트웨어 패키지를 로컬 리포지터리(250)에 저장하며, 리포지터리(250) 내의 각각의 소프트웨어 패키지는 대응하는 원하는 타겟 상태와 관련된다.
로컬 리포지터리(250)는 (ITCM의 "소프트웨어 인스톨 엔진 또는 SIE" 서비스와 같은) 애플리케이션 엔진(255)에 의해 액세스되며, 이는 엔드포인트(130)에 대한 그 애플리케이션을 강제한다. 또한, 애플리케이션 엔진(255)은 소프트웨어 카탈로그(260)를 제어하며, 이 카탈로그는 (그 현재의 상태, 애플리케이션 타임스탬프 등과 같이) 엔드포인트(130)에 적용된 각각의 소프트웨어 패키지에 대한 정보를 저장하며, 부가적으로, 본 발명의 일 실시예에서, 소프트웨어 카탈로그(260)의 각 엔트리는 대응하는 소프트웨어 패키지의 속성 "TrialFlag" 및 "Eval"을 저장한다. 원하는 타겟 상태(소프트웨어 카탈로그(260)에 표시됨)에 아직 있지 않는 (로컬 리포지터리(250) 내의) 각각의 소프트웨어 패키지에 대해, 애플리케이션 엔진(255)은 이 타겟 상태에 도달하는데 요구되는 대응하는 액션의 실행을 야기하고, 그 후, 그 동작의 결과에 따라 소프트웨어 카탈로그(260)를 업데이트한다.
특히, 대응하는 소프트웨어 제품을 (표준 모드 또는 트라이얼 모드로) 배포하기 위해 형성된 일반 소프트웨어 패키지가 "인스톨" 모드에 적용될 경우, 그 소프트웨어 제품은 엔드포인트(130)에 인스톨된다 (여기서는, 전체적으로 참조부호 265로 표시됨). 특히, 엔드포인트(130)에 인스톨된 각각의 소프트웨어 제품(265)은 대응하는 리소스를 포함하고, 또한, 소프트웨어 제품(265)은 가능하면 (청취 포트의 번호, 원격 호스트의 네임 등과 같이) 엔드포인트(130)의 사용자에 의해 맞춤제작되는 임의의 구성 옵션을 포함한다. 역으로, 동일한 소프트웨어 패키지가 "제거" 모드로 적용될 경우, 대응하는 소프트웨어 제품(265)은 엔드포인트(130)로부터 제거된다. 소프트웨어 패키지의 애플리케이션이 "되살리기 가능" 모드에 있을 때마다, 애플리케이션 엔진(255)은 또한, 업데이트("인스톨 되살리기 가능" 모드)되거나 삭제("제거 되살리기 가능" 모드)되어야 하는 대응하는 소프트웨어 제품(265)의 객체(즉, 리소스 및/또는 구성 옵션)의 전용 영역(270)에 백업 카피를 생성한다. (카탈로그(260)에 등록된) 이들 소프트웨어 패키지 중 하나가 "되살리기" 모드로 추후에 다시 적용되면, 업데이트/삭제된 객체들은 (소프트웨어 패키지가 "인스톨" 모드 또는 "제거" 모드로 적용되기 전의 상황으로 복귀하도록) 백업 리포지터리(270)로부터 복원되며, 역으로, 동일한 소프트웨어 패키지가 "수용" 모드로 다시 적용되면, 백업 리포지터리(270) 내의 대응하는 객체는 영구적으로 삭제된다.
본 발명의 실시예에 따른 솔루션에서는, 트라이얼 제어기(275)가 부가된다. 트라이얼 제어기(275)는 소프트웨어 카탈로그(260)에 (예를 들어, 주기적으로) 액 세스한다. 트라이얼 모드(삽입된 속성 "TrialFlag")로 인스톨된 각각의 소프트웨어 제품(265; "인스톨"된 대응하는 소프트웨어 패키지)에 대해, 트라이얼 제어기(275)는 관련 만료 기간이 도달하였는지 여부를 (트라이얼 소프트웨어 패키지의 인스톨 타임스탬프 및 속성 "Eval"에 특정된 평가 기간에 따라) 검증한다. 그럴 경우, 트라이얼 제어기(275)는 애플리케이션 엔진(255)이 그 소프트웨어 제품(265)을 디스에이블하도록 지시하며, 이러한 목적으로, 애플리케이션 엔진(255)은 대응하는 트라이얼 소프트웨어 패키지를 "제거 되살리기 가능" 모드로 다시 적용한다.
또한, 활성 소프트웨어 패키지가 (게이트웨이(120)로부터) 다운로드될 때마다, 통상적으로 엔드포인트(130)에 적용되어, 그 활성 액션의 실행을 야기한다. 활성 액션은, 그 네임 및 버전에 의해 특정 트라이얼 소프트웨어 패키지를 식별하는 파라미터 쌍에 의해 정의된다. 차례로, 활성 액션의 실행은 이 트라이얼 소프트웨어 패키지의 애플리케이션을 "되살리기" 모드로 야기하여, (필요할 경우) 대응하는 소프트웨어 제품을 복원하며, 특히, 이러한 동작은 백업 리포지터리(270)로부터 그 객체(리소스 및/또는 구성 옵션)의 리로딩(reloading)을 발생시킨다. 어떠한 경우라도, 애플리케이션 엔진(255)은 또한 소프트웨어 카탈로그(260) 내의 트라이얼 소프트웨어 패키지의 속성 "TrialFlag"를 디어서팅하며, 이러한 방식으로, 엔드포인트(130)에 대한 소프트웨어 제품의 인스톨이 영구화된다.
도 3a 및 3b에 도시된 바와 같이, 일반 소프트웨어 제품을 트라이얼 모드로 배포하기 위한 상술한 시스템에서 구현될 수 있는 예시적인 프로세스의 로직 플로우가 방법(300)으로 도시된다. 방법(300)은 준비 서버의 스윔레인(swimlane)으로 블록 303에서 시작한다. 블록 306으로 진행하여, 솔루션 모델 엔지니어는, 원하는 소프트웨어 제품을 트라이얼 모드로 배포하는데 요구되는 트라이얼 소프트웨어 패키지를 생성한다. 그 후, 방법(300)은 블록 309로 진행하며, 여기서, 솔루션 모델 엔지니어는 (트라이얼 소프트웨어 패키지에 자격을 부여하기 위해) 대응하는 속성 "TrialFlag"를 어서팅하고, 동시에, 솔루션 모델 엔지니어는 속성 "Eval"을 평가 기간의 원하는 길이(예를 들어, 10~30일)로 설정한다. 다음으로, 블록 312를 참조하면, 솔루션 모델 엔지니어는 (해당 트라이얼 소프트웨어 패키지를 식별하는 그 활성 액션으로) 대응하는 활성 소프트웨어 패키지를 생성한다. 다음으로, 블록 315에서, 트라이얼 소프트웨어 패키지 및 액션 소프트웨어 패키지 양자는 (배포 서버의 제어에 따라) 원하는 게이트웨이에 준비 서버로부터 배치된다.
이와 관련하여, 디폴트로, 속성 "TrialFlag"가 디어서팅(즉, "거짓")되어, 제안된 솔루션은 소프트웨어 제품의 표준 배포에 대해 불명료하게 된다. 또한, 속성 "Eval"의 제공은 각각의 소프트웨어 제품의 평가 기간의 길이를 개별적으로 매우 간단한 방식으로 설정할 수 있게 한다.
일반 게이트웨이의 스윔-라인으로 이동하면, 블록 318에서, 솔루션 발매 엔지니어는 인증된 사용자에 대해 (준비 서버로부터 수신된) 트라이얼 소프트웨어 패키지를 발행한다. 블록 321로 진행하여, 이들 인증된 사용자 중 하나는 트라이얼 소프트웨어 패키지를 그 엔드포인트로 다운로드한다. 이에 응답하여, 블록 324에서, (대응하는 소프트웨어 제품을 엔드포인트에 인스톨하도록) 트라이얼 소프트웨어 패키지는 "인스톨" 모드로 적용된다. 그 후, 방법(300)은 블록 327로 진행하 며, 여기서, 트라이얼 소프트웨어 패키지에 대한 엔트리가 (그 속성 "TrialFlag" 및 "Eval"과 함께) 소프트웨어 카탈로그에 부가되고, 동시에, (그 애플리케이션으로부터 기인한) 트라이얼 소프트웨어 패키지의 애플리케이션 타임스탬프 및 현재 상태가 또한 부가된다. 다음으로, 블록 330을 고려하면, (트라이얼 제어기에 의한) 소프트웨어 패키지의 모니터링 빈도는 (속성 "Eval"에 특정된) 대응하는 소프트웨어 제품의 평가 기간에 따라 동적으로 설정되는 것이 바람직하며, 예를 들어, 모니터링 빈도는 평가 기간의 소정의 퍼센티지(예를 들어, 2~15%, 바람직하게는 5%와 같은 4~8%)의 역수로서 계산된다. 이러한 방식으로, 트라이얼 제어기의 행위(behavior)는 모니터링될 특정 소프트웨어 제품에 스스로 적응한다.
이 모니터링 빈도에 대응하는 타임-아웃이 만료(블록 333)할 때마다, 블록 336에서, 트라이얼 제어기는 소프트웨어 제품의 만료 시간이 도달하였는지 여부를 검증하며, 이러한 목적으로, 트라이얼 제어기는 (오퍼레이팅 시스템으로부터 획득된) 현재 시간과 (소프트웨어 카탈로그로부터 추출된) 대응하는 트라이얼 소프트웨어 패키지의 인스톨 타임스탬프와의 차이를 계산한다. 그 후, 동작 플로우는 그 검증의 결과에 따라 블록 339에서 분기한다. 이 차이가 (속성 "Eval"에 특정된) 평가 기간을 초과하면, 방법(300)은 블록 342로 내려가고, 이 단계에서, 트라이얼 소프트웨어 패키지는 (소프트웨어 제품을 엔드포인트로부터 임시로 제거하지만 그 관련 객체를 백업 레포지터리에 유지하도록) "제거 되살리기 가능" 모드로 다시 적용된다. 이에 따라, 블록 345에서, 트라이얼 소프트웨어 패키지의 현재 상태는 소프트웨어 카탈로그에서 업데이트되며, 동시에, 속성 "TrialFlag"는 트라이얼 소프 트웨어 패키지의 모니터링을 중지하도록 디어서팅된다. 이러한 방식으로, 엔드포인트의 사용자에 의해 맞춤제작된 임의의 구성 옵션이 (그 다음의 가능한 복원을 위해) 유지된다.
블록 348로 진행하여, 소프트웨어 제품의 제거를 영구화하는 클린업 지연이 동적으로 설정되고, 소프트웨어 카탈로그의 대응하는 트라이얼 소프트웨어 패키지와 관련되는 것이 바람직하다. 통상적으로, 클린업 지연은 소정의 배수(예를 들어 1~5배, 바람직하게는 3배와 같이 2~4배)와 동일하게, (속성 "Eval"에서 특정된) 소프트웨어 제품의 평가 기간에 따라 계산된다. 그 후, 방법(300)은 동기화 바(351)로 진행하며, 소프트웨어 제품의 만료 시간이 아직 도달하지 않았을 경우(이에 따라 변경되지 않은 채로 남겨질 경우), 동일한 포인트가 또한 블록 339로부터 직접 도달된다.
다음으로, 동작 플로우는 2개의 선택적인 브랜치로 분기한다. 제1브랜치는 블록 354~375로 이루어지며, 제2브랜치는 블록 378~381로 이루어진다.
상세하게, 소프트웨어 제품의 무제한 버전에 대한 라이센스가 구매되면(블록 354), 블록 357에서, 대응하는 활성 소프트웨어 패키지가 오직 요구된 요금을 지불한 사용자에 대해서만 발행된다. 블록 360으로 진행하여, 이들 사용자들 중 각 사용자는 활성 소프트웨어 패키지를 그 엔드포인트로 다운로드한다. 이에 응답하여, 블록 363에서, 활성 소프트웨어 패키지가 그 활성 액션의 실행을 야기하기 위해 적용된다. 결과로서, 프로세스는 블록 366으로 분기한다. (대응하는 소프트웨어 제품의 만료 시간에 도달한 후) 활성 액션에서 식별된 트라이얼 소프트웨어 패키지가 "제거" 모드로 이미 적용되었으면, 방법은 블록 369로 내려가고, 이 단계에서, 트라이얼 소프트웨어 패키지는 (백업 레포지터리로부터 구성 옵션을 포함하여 그 객체를 갖는 소프트웨어 제품을 복원시키도록) "되살리기" 모드로 다시 적용된다. 이에 따라, 블록 372에서, 트라이얼 소프트웨어 패키지의 현재 상태는 소프트웨어 카탈로그에서 업데이트된다. 그 후, 방법(300)은 블록 375로 진행하고, (소프트웨어 제품이 여전히 인스톨되어 있도록) 소프트웨어 제품의 만료 시간이 아직 도달하지 않았을 경우에, 동일 포인트가 또한 블록 366으로부터 직접 도달된다. 다음으로, 블록 375를 고려하면, 어떠한 경우라도, 트라이얼 소프트웨어 패키지의 속성 "TrialFlag"는, 소프트웨어 제품의 인스톨이 영구화되도록 소프트웨어 카탈로그에 디어서팅된다.
다른 방법으로, 클린업 지연에 의해 정의된 타임-아웃이 이전에 만료되면(블록 378), 프로세스는 블록 381로 진행한다. 이 단계에서, 트라이얼 소프트웨어 패키지는, (그 객체를 갖는) 대응하는 소프트웨어 제품을 엔드포인트로부터 영구히 삭제하도록 "수용" 모드로 적용된다. 이러한 방식으로, 더 이상 복원될 가능성이 없는 소프트웨어 제품에 대한 메모리 공간의 낭비를 회피할 수 있다. 또한, 클린업 지연을 동적으로 설정할 가능성은 이러한 특성을 (상이한 타입의 소프트웨어 제품에 따라) 스스로 적응하게 한다.
상술한 2개의 브랜치는 동기화 바 (384)에서 조인한다. 그 후, 프로세스는 동심의 흑백 중지 원(387)에서 종료한다.
물론, 국부적이고 특정한 요건을 만족시키기 위하여, 당업자는 상술한 솔루 션을 다수의 변형 및 변경예에 적용할 수도 있다. 상세하게, 본 발명이 그 바람직한 실시예(들)를 참조하여 일정한 상세 정도로 설명되었지만, 다른 실시예뿐 아니라 형태 및 세부사항에 있어서 다양한 생략, 대체, 및 변경이 가능함을 알아야 하며, 또한, 본 발명의 개시된 임의의 실시예와 함께 설명된 특정 엘리먼트 및/또는 방법 단계들은 설계 선택의 일반적인 문제로서 임의의 다른 실시예에 포함될 수도 있음이 명백히 의도된다.
예를 들어, 시스템이 상이한 구조를 갖거나 균등한 유닛을 포함할 경우에도 동일한 고려가 적용된다. 또한, 각각의 컴퓨터는 다른 구조를 가질 수도 있으며, 또는 (실행 동안 대용량 메모리로의 액세스를 감소시키기 위해 프로그램 또는 그 일부를 임시 저장하는 캐시 메모리와 같이) 동일한 엘리먼트를 포함할 수도 있으며, 어떠한 경우라도, 그 컴퓨터를 (PDA, 이동 전화 등과 같은) 임의의 코드 실행 엔터티로 대체 가능하다.
사용제한이 어떤 것인지간에 좌우되는 임의의 소프트웨어 제품의 배포에 더 일반적으로 적용될 수도 있는 본 발명의 솔루션으로, 상술한 트라이얼 모드는 단지 예시적인 것임을 명백히 알아야 한다.
비록 상기 설명에서는 특정 소프트웨어 배포 애플리케이션을 참조하였지만, 이것은 제한으로서 의도되지 않으며, 또한, 비록 제안된 메커니즘이 상술한 풀 모드에 가장 자연스럽게 이용되더라도, 어떠한 것도 또 다른 푸시 모드에의 그 사용을 방지할 수 없다. 더 일반적으로, 소프트웨어 배포 인프라구조에 의해 이용되는 서비스는 또한 (소프트웨어 제품을 일반 소스 엔터티로부터 하나 이상의 타겟 엔터 티까지 배포하기에 적합한) 임의의 다른 제공자에 의해 제어될 수도 있다. 유사하게, 트라이얼 소프트웨어 패키지는 임의의 다른 구조를 가질 수도 있으며, (다소 집중화된) 균등한 솔루션이 평가 기간의 종료, 또는 더 일반적으로 소프트웨어 제품의 임의의 다른 만료 조건의 이행을 모니터링하기 위해 사용될 수도 있다. 또한, 상이한 기술들이 소프트웨어 제품을 가역적으로 디스에이블하는데 사용될 수도 있으며, 예를 들어, 비록 이것이 임의의 구성 옵션을 유연하게 하는 것과 관련되더라도, 어떠한 것도 엔드포인트로부터 소프트웨어 제품의 실제 삭제를 방지하지 않는다 (다만, 트라이얼 소프트웨어 패키지를 그 가능한 리-인스톨용으로 유지함).
트라이얼 제어기가 부가적인 기능을 제공하면 유사한 고려가 적용되며, 예를 들어, 트라이얼 모드의 각 소프트웨어 제품이 (예를 들어, 10~20%와 같이 대응하는 평가 기간의 선택된 퍼센티지에 의해 정의된 타임-윈도우에서) 그 만료 기간에 근접할 때마다 경고 메시지를 엔드포인트의 사용자에게 전송하는 서비스를 구현하는 것이 가능하다.
다른 방법으로, 소프트웨어 제품은 다른 방식으로 (예를 들어, "되살리기" 모드로 트라이얼 소프트웨어 패키지의 애플리케이션을 직접 야기하는 커맨드에 의해) 복원될 수도 있으며, 또는 그 복원은 신규한 평가 기간을 개시할 수도 있다 (즉, 대응하는 모니터링을 디스에이블시키지 않고). 어떠한 경우라도, 이러한 동작은 (테스트 기간 이후 소프트웨어 제품을 특정 부문에서 이용가능하게 하는 판정과 같은) 임의의 다른 인증 조건에 의해 트리거링될 수도 있다.
또한, 임의의 균등한 활성 액션, 또는 동일한 구조를 갖는 임의의 다른 활성 소프트웨어 패키지를 이용하는 것이 가능하다.
(그 배포에 대한 상이한 커맨드와 같이) 트라이얼 소프트웨어 패키지를 표준 패키지로부터 분별하는 임의의 다른 기술을 이용하여 달성될 수도 있는 동일한 결과로, 속성 "TrialFlag"는 단지 예시적임을 명백히 알아야 한다.
다른 방법으로, 만료 기간이 상이한 방식으로 (예를 들어, 소프트웨어 제품의 실제 사용에 따라) 정의될 수도 있다.
모니터링 빈도를 동적으로 설정하는 특성은 반드시 필요한 것은 아니며, 일부 구현예에서 생략될 수도 있고, 이 경우, 모니터링 빈도는 (하루에 한번과 같이) 가능하면 맞춤제작가능한 값으로 미리 정의된다.
본 발명의 상이한 실시예에서, 클린업 지연은 모든 트라이얼 소프트웨어 패키지에 대해 정적으로 (예를 들어, 매월) 정의될 수도 있다. 하지만, (존재한다면) 소프트웨어 제품을 삭제하기 위한 표준 클린업 프로세스의 사용이 고려된다.
(본 발명의 각각의 실시예를 구현하기 위해 사용될 수도 있는) 프로그램이 상이한 방식으로 구조화되거나 부가적인 모듈 또는 기능이 제공되면 유사한 고려가 적용되며, 유사하게, 메모리 구조는 다른 타입일 수도 있거나 (반드시 물리적인 저장 매체로 이루어질 필요는 없이) 균등한 엔터티로 대체될 수도 있다. 또한, 제안된 솔루션은 (유사한 또는 부가적인 단계를 갖고도 상이한 순서로) 균등한 방법으로 구현되도록 한다. 어떠한 경우라도, 프로그램은 외부 또는 상주 소프트웨어, 펌웨어, 또는 (객체 코드 또는 소스 코드의) 마이크로코드와 같은 임의의 데이터 프로세싱 시스템에 의해 또는 그 시스템과 함께 사용되기에 적절한 임의의 형태를 취할 수도 있다. 또한, 프로그램은 임의의 컴퓨터-이용가능 매체에 제공될 수도 있으며, 그 매체는 프로그램을 수용, 저장, 통신, 전파, 또는 전달하기에 적절한 임의의 엘리먼트일 수 있다. 그러한 매체의 예로는 고정 디스크(여기서, 프로그램이 사전-로딩될 수 있음), 착탈형 디스크, 테이프, 카드, 와이어, 파이버, 무선 커넥션, 네트워크, 방송파 등이며, 예를 들어, 그 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 타입일 수도 있다.
어떠한 경우라도, 본 발명에 따른 솔루션은 (예를 들어, 반도체 재료의 칩에 집적된) 하드웨어로, 또는 소프트웨어와 하드웨어의 조합으로 실행되게 한다.
본 발명에 의하면, 소프트웨어 제품을 트라이얼 모드로 제공하여 소프트웨어 제품 개발에 있어서 시간을 절약할 수 있고, 소프트웨어 제품의 임의의 부가적인 테스트없이도 가능한 에러를 회피할 수 있으며, 범용으로 적용가능하다.

Claims (11)

  1. 데이터 프로세싱 시스템에서 소프트웨어 제품을 배포하는 방법으로서,
    상기 시스템의 소스 엔터티로부터 타겟 엔터티의 세트까지 소프트웨어 제품에 대한 메인 소프트웨어 패키지를 배치하는 단계와,
    상기 메인 소프트웨어 패키지를 각각의 타겟 엔터티에 인스톨링 모드로 적용하여 상기 소프트웨어 제품을 인스톨하는 단계와,
    에이전트에 의해 각각의 타겟 엔터티에 상기 소프트웨어 제품에 대한 만료 조건의 이행을 모니터링하는 단계와,
    상기 만료 조건의 이행에 응답하여, 상기 메인 소프트웨어 패키지를 상기 타겟 엔터티에 디스에이블링 모드로 적용하여 상기 소프트웨어 제품을 가역적으로 디스에이블하는 단계를 포함하는,
    배포 방법.
  2. 제 1 항에 있어서,
    인증 조건의 이행에 응답하여, 상기 방법은 상기 타겟 엔터티 중 적어도 선택된 타겟 엔터티에 대해,
    상기 메인 소프트웨어 패키지를 복원 모드로 적용하여 상기 디스에이블된 소프트웨어 제품을 복원하는 단계와,
    상기 모니터링을 디스에이블하는 단계를 더 포함하는,
    배포 방법.
  3. 제 2 항에 있어서,
    상기 메인 소프트웨어 패키지에 대한 보조 소프트웨어 패키지를 상기 소스 엔터티로부터 각각의 선택된 타겟 엔터티까지 배치하는 단계와,
    상기 보조 소프트웨어 패키지를 상기 선택된 타겟 엔터티에 적용하여, 상기 메인 소프트웨어 패키지의 애플리케이션을 상기 복원 모드로 야기하고 상기 모니터링의 디스에이블을 야기하는 단계를 더 포함하는,
    배포 방법.
  4. 제 1 항에 있어서,
    상기 메인 소프트웨어 패키지는 제어 플래그를 포함하며,
    상기 방법은,
    상기 제어 플래그에 따라 상기 모니터링을 인에이블 또는 디스에이블하는 단계를 더 포함하는,
    배포 방법.
  5. 제 1 항에 있어서,
    상기 메인 소프트웨어 패키지는 상기 소프트웨어 제품의 평가 기간의 표시를 포함하고,
    상기 만료 조건은 상기 인스톨링 모드로의 상기 메인 소프트웨어 패키지의 애플리케이션 이후에 상기 평가 기간의 종료로 이루어지는,
    배포 방법.
  6. 제 5 항에 있어서,
    상기 모니터링 단계는 모니터링 빈도에 따라 수행되며,
    상기 방법은,
    상기 평가 기간에 따라 상기 모니터링 빈도를 설정하는 단계를 더 포함하는,
    배포 방법.
  7. 제 1 항에 있어서,
    상기 디스에이블된 소프트웨어 제품을 클린업 요청에 응답하여 삭제하는 단계를 더 포함하는,
    배포 방법.
  8. 제 5 항에 있어서,
    상기 평가 기간에 따라 클린업 지연을 설정하는 단계와,
    상기 디스에이블링 모드로의 상기 소프트웨어 패키지의 애플리케이션으로부터 상기 클린업 지연 이후에 클린업 요청을 발행하는 단계와,
    상기 클린업 요청에 응답하여 상기 디스에이블된 소프트웨어 제품을 삭제하는 단계를 더 포함하는,
    배포 방법.
  9. 데이터 프로세싱 시스템에서 실행될 경우, 상기 시스템으로 하여금 소프트웨어 제품을 상기 시스템에서 배포하는 방법을 수행하게 하는 컴퓨터 프로그램을 수록하는 컴퓨터-이용가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 방법은,
    상기 시스템의 소스 엔터티로부터 타겟 엔터티의 세트까지 소프트웨어 제품에 대한 메인 소프트웨어 패키지를 배치하는 단계와,
    상기 메인 소프트웨어 패키지를 각각의 타겟 엔터티에 인스톨링 모드로 적용하여 상기 소프트웨어 제품을 인스톨하는 단계와,
    에이전트에 의해 각각의 타겟 엔터티에 상기 소프트웨어 제품에 대한 만료 조건의 이행을 모니터링하는 단계와,
    상기 만료 조건의 이행에 응답하여, 상기 메인 소프트웨어 패키지를 상기 타겟 엔터티에 디스에이블링 모드로 적용하여 상기 소프트웨어 제품을 가역적으로 디스에이블하는 단계를 포함하는,
    컴퓨터 프로그램 제품.
  10. 소프트웨어 제품을 배포하는 시스템으로서,
    상기 시스템의 소스 엔터티로부터 타겟 엔터티의 세트까지 소프트웨어 제품에 대한 메인 소프트웨어 패키지를 배치하는 수단과,
    상기 메인 소프트웨어 패키지를 각각의 타겟 엔터티에 인스톨링 모드로 적용하여 상기 소프트웨어 제품을 인스톨하는 수단과,
    각각의 타겟 엔터티에 상기 소프트웨어 제품에 대한 만료 조건의 이행을 모니터링하는 에이전트와,
    상기 만료 조건의 이행에 응답하여, 상기 메인 소프트웨어 패키지를 상기 타겟 엔터티에 디스에이블링 모드로 적용하여 상기 소프트웨어 제품을 가역적으로 디스에이블하는 수단을 구비하는,
    배포 시스템.
  11. 소프트웨어 제품을 배포하는 데이터 프로세싱 시스템으로서,
    소스 서버와,
    복수의 엔드포인트와,
    상기 소스 서버로부터 상기 엔드포인트의 세트까지 소프트웨어 제품에 대한 메인 소프트웨어 패키지를 배치하는 배치 서비스를 포함하며,
    각각의 엔드포인트는, 상기 메인 소프트웨어 패키지를 상기 엔드포인트에 인스톨링 모드로 적용하여 상기 소프트웨어 제품을 인스톨하는 애플리케이션 엔진과, 상기 소프트웨어 제품의 만료 조건의 이행을 모니터링하는 에이전트를 포함하며,
    상기 에이전트는, 상기 만료 조건의 이행에 응답하여, 상기 애플리케이션 엔진으로 하여금 상기 메인 소프트웨어 패키지를 상기 엔드포인트에 디스에이블링 모드로 적용하여 상기 소프트웨어 제품을 가역적으로 디스에이블하게 하는,
    데이터 프로세싱 시스템.
KR1020060119318A 2005-12-06 2006-11-29 소프트웨어 제품을 트라이얼 모드로 배포하는 방법, 시스템및 컴퓨터 프로그램 KR20070059966A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05111734A EP1796000A1 (en) 2005-12-06 2005-12-06 Method, system and computer program for distributing software products in trial mode
EP05111734.9 2005-12-06

Publications (1)

Publication Number Publication Date
KR20070059966A true KR20070059966A (ko) 2007-06-12

Family

ID=36337414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060119318A KR20070059966A (ko) 2005-12-06 2006-11-29 소프트웨어 제품을 트라이얼 모드로 배포하는 방법, 시스템및 컴퓨터 프로그램

Country Status (4)

Country Link
US (1) US20070130073A1 (ko)
EP (1) EP1796000A1 (ko)
KR (1) KR20070059966A (ko)
CN (1) CN100489876C (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5036475B2 (ja) * 2007-10-03 2012-09-26 キヤノン株式会社 プログラム制御装置及び方法とプログラム
US8978028B2 (en) * 2007-10-10 2015-03-10 Microsoft Technology Licensing, Llc Transactional multi-package installation
US8566818B2 (en) * 2007-12-07 2013-10-22 Roche Diagnostics Operations, Inc. Method and system for configuring a consolidated software application
US10643189B1 (en) * 2009-04-30 2020-05-05 Intuit Inc. Software product activation for on-line banking customers
JP5509754B2 (ja) * 2009-09-15 2014-06-04 株式会社リコー ソフトウェア管理装置、ソフトウェア配信システム、インストール方法およびプログラム
CN103189876B (zh) 2010-11-12 2016-09-14 惠普发展公司,有限责任合伙企业 基于第一和第二授权项来确定软件产品的授权
US20130067447A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation State Machine Based Package Installation
WO2014065784A1 (en) 2012-10-23 2014-05-01 Hewlett-Packard Development Company. L.P. Controlling distribution and use of a developer application in a network environment
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9766870B2 (en) 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
CN104426960B (zh) * 2013-08-29 2019-11-26 腾讯科技(深圳)有限公司 一种付费应用的试用方法及装置
US9454353B2 (en) 2013-10-01 2016-09-27 International Business Machines Corporation Initiating use of software as part of a messaging window
US20170024086A1 (en) * 2015-06-23 2017-01-26 Jamdeo Canada Ltd. System and methods for detection and handling of focus elements
JP2017204242A (ja) * 2016-05-13 2017-11-16 キヤノン株式会社 情報処理装置、プログラム可能デバイス、ライセンス管理システム、ライセンス管理方法およびプログラム
CN107092510A (zh) * 2017-04-19 2017-08-25 努比亚技术有限公司 移动终端及其固件升级方法与装置
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US11934493B2 (en) * 2021-06-17 2024-03-19 EMC IP Holding Company LLC Anti-piracy protection service-based software license management system to prevent usage of unlicensed software after the trial period
US11645056B2 (en) * 2021-07-15 2023-05-09 Intuit Inc. Capturing variable dependencies using a variable agnostic object
CN115357869A (zh) * 2022-10-19 2022-11-18 安徽华云安科技有限公司 一种基于多路径配置的软件激活方法和装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914657A (en) * 1987-04-15 1990-04-03 Allied-Signal Inc. Operations controller for a fault tolerant multiple node processing system
US5598470A (en) * 1994-04-25 1997-01-28 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block
US5689560A (en) * 1994-04-25 1997-11-18 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for allowing a try-and-buy user interaction
US5757907A (en) * 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
US5564038A (en) * 1994-05-20 1996-10-08 International Business Machines Corporation Method and apparatus for providing a trial period for a software license product using a date stamp and designated test period
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6317878B1 (en) * 1996-05-22 2001-11-13 Fujitsu Limited Information processing system and recording media
US6189048B1 (en) * 1996-06-26 2001-02-13 Sun Microsystems, Inc. Mechanism for dispatching requests in a distributed object system
CN1224517A (zh) * 1996-07-01 1999-07-28 北方电讯有限公司 软件产品的分发和受约束使用
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
WO2000075760A1 (en) * 1999-06-07 2000-12-14 Firepad, Inc. Method and system for preventing the unauthorized use of software
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
CA2313839A1 (en) * 1999-07-27 2001-01-27 Lucent Technologies Inc. Method of monitoring runtime usage of demo evaluation software
US6539539B1 (en) * 1999-11-16 2003-03-25 Lucent Technologies Inc. Active probes for ensuring software package compatibility
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
GB0017336D0 (en) * 2000-07-15 2000-08-30 Ibm Preferable modes of software package deployment
US7197431B2 (en) * 2000-08-22 2007-03-27 International Business Machines Corporation Method and system for determining the use and non-use of software programs
US6948166B2 (en) * 2001-04-05 2005-09-20 International Business Machines Corporation System and method for automatically de-installing previously installed software based on user defined preferences
US20040267590A1 (en) * 2003-06-30 2004-12-30 International Business Machines Corporation Dynamic software licensing and purchase architecture
EP1505797B1 (en) * 2003-08-04 2005-05-11 Alcatel A method, a communication network and a computer software product for distributing software packages or updates
US20050065953A1 (en) * 2003-09-19 2005-03-24 Bower Shelley K. System and method for changing defined elements in a previously compiled program using a description file
US7765592B2 (en) * 2004-01-10 2010-07-27 Microsoft Corporation Changed file identification, software conflict resolution and unwanted file removal

Also Published As

Publication number Publication date
CN100489876C (zh) 2009-05-20
US20070130073A1 (en) 2007-06-07
EP1796000A1 (en) 2007-06-13
CN1979512A (zh) 2007-06-13

Similar Documents

Publication Publication Date Title
KR20070059966A (ko) 소프트웨어 제품을 트라이얼 모드로 배포하는 방법, 시스템및 컴퓨터 프로그램
US7565650B2 (en) Method, apparatus and computer program product for deploying software via post-load images
JP4411076B2 (ja) ネットワーク中でファイルを配布するためのローカル化された読み込み専用記憶装置
JP4907876B2 (ja) ソフトウェア更新に対応するメタデータを通信するための方法
TWI430174B (zh) 使用基本輸入輸出系統來安裝軟體之方法
TWI446180B (zh) 一種控制一電腦程式之使用之方法、系統、及電腦程式產品
CN100524333C (zh) 防止非法使用软件的方法
US7890950B1 (en) Software uninstallation that integrates transfer activation
US20180136920A1 (en) Install File Size Optimization and Installation Verification System
JP2003114801A (ja) コンピュータサービスおよびプログラマブルデバイスの管理を自動化するシステムおよび方法
US20080040714A1 (en) Method and system for automatic computer and user migration
US8095987B2 (en) Software anti-piracy protection
US8494964B1 (en) Software as a service via virtualization
JP2006195999A (ja) ネットワーク修復システム及び修復システム
TW200813834A (en) Apparatus and methods for updating firmware
CN101390105B (zh) 软件利用控制方法以及许可证管理装置
US20080222043A1 (en) System and method for trans-vendor license registration and recovery
US20120174090A1 (en) Patch and dot release licensing
JP4981957B2 (ja) ライセンス外部メモリ
US9690913B2 (en) License management in a networked software application solution
US20060085685A1 (en) System and method for computer system rejuvenation
WO2009025444A1 (en) Method and apparutus for providing software security
US20060085686A1 (en) System and method for institutional computer restoration
US20050262500A1 (en) System and method for updating information handling system applications at manufacture
US20140304129A1 (en) Surrender and management of software licenses

Legal Events

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