KR100877470B1 - 소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체 - Google Patents

소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체 Download PDF

Info

Publication number
KR100877470B1
KR100877470B1 KR1020060107740A KR20060107740A KR100877470B1 KR 100877470 B1 KR100877470 B1 KR 100877470B1 KR 1020060107740 A KR1020060107740 A KR 1020060107740A KR 20060107740 A KR20060107740 A KR 20060107740A KR 100877470 B1 KR100877470 B1 KR 100877470B1
Authority
KR
South Korea
Prior art keywords
license
server
license server
backup
main
Prior art date
Application number
KR1020060107740A
Other languages
English (en)
Other versions
KR20070054094A (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 KR20070054094A publication Critical patent/KR20070054094A/ko
Application granted granted Critical
Publication of KR100877470B1 publication Critical patent/KR100877470B1/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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level

Abstract

본 발명은 높은 가용성의 라이센스 관리 시스템을 위한 방법 및 그 대응 장치를 제공한다. 이러한 시스템은 어떠한 가능한 부당한 사용을 방지하는 것과 동시에 연속적인 서비스를 보장하는 라이센스 백업 서버를 구비한다. 본 발명에 따르면, 안전한 시스템을 구현하는 데 있어서 오로지 2개의 서버만이 요구된다. 제 1 서버는 라이센스 서버(A)(303) 및 에이전트(C)(305)를 호스팅한다. 라이센스 서버(A)(303)는 모든 이용 가능 라이센스에 대한 인증서를 포함한다. 제 2 서버는 라이센스 서버(A)의 동일한 라이센스를 포함하는 백업 서버(B)(309)를 호스팅한다. 에이전트(C)는 동작을 모니터링하여, 라이센스 서버(A)가 실행 상태인 동안에 백업 서버(B)가 어떠한 라이센스도 승인하지 않도록 보장한다.

Description

소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체{METHOD, SYSTEM AND COMPUTER PROGRAM FOR A SECURE BACKUP LICENSE SERVER IN A LICENSE MANAGEMENT SYSTEM}
도 1은 본 발명의 방법이 적용될 수 있는 컴퓨터 네트워크를 도시하는 개략적인 블록도.
도 2는 시스템의 범용 컴퓨터의 기능 블록을 도시하는 도면.
도 3은 본 발명의 방법을 실행하는 데 이용될 수 있는 주요 구성 요소를 도시하는 도면.
도 4는 본 발명의 방법에 대한 예시적인 구현에 관련된 동작의 흐름을 나타내는 도면.
도면의 주요 부분에 대한 부호의 설명
101, 303 : 라이센스 서버 110 : 네트워크
103 : 클라이언트 노드 305 : 에이전트
309 : 백업 라이센스 서버
기술 분야
본 발명은 데이터 처리 분야에 관한 것이다. 보다 구체적으로, 본 발명은 라이센스 관리 시스템을 위한 방법에 관한 것이다. 특히, 본 발명에 따르면 부당한 사용을 방지하는 백업 시스템의 보안이 제공된다. 본 발명은 또한 이러한 방법을 실행하는 컴퓨터 프로그램 및 그 프로그램을 내장하는 제품에 관련된다. 또한, 본 발명은 그에 대응하는 장치에 관련된다.
종래 기술
컴퓨터 소프트웨어의 라이센싱(licensing)은 통상적으로 해당 소프트웨어를 사용하도록 허가된 각 컴퓨터에 대해 소프트웨어의 복사본 및 라이센스를 제공함으로써 이루어져왔다. 소프트웨어는 일반적으로 해당 컴퓨터로부터 삭제되어 그 라이센스와 함께 다른 컴퓨터에 이전되지 않는 한, 해당 컴퓨터 상에서만 사용될 수 있다. 광범위 컴퓨터 네트워크의 출현으로, 보다 효과적인 해결책이 요구되었다. 라이센스 관리 시스템은 사용자가 네트워크의 N개의 노드에 소프트웨어 프로그램의 복사본을 설치하도록 허용하지만, 오로지 한정된 n개의 라이센스만을 획득하도록 허용하는데, 이 경우에 임의의 시점에서 오로지 최대 n개의 해당 프로그램의 복사본이 해당 네트워크 상에서 동시에 실행될 수 있다. 모든 이용 가능 라이센스가 할당될 때, 해당 소프트웨어의 사용을 요청하는 추가적인 사용자는 라이센스가 이 용 가능하게 될 때까지 대기해야만 한다. 이러한 종류의 라이센스 관리 시스템은 소프트웨어 판매자 및 사용자 모두에게 많은 이점을 제공하는데, 이것은 사용자에게는 진실로 필요로 하는 라이센스만을 모두 구매할 수 있게 하는 한편, 판매자에게는 소프트웨어 표절에 대처할 수 있게 하기 때문이다.
시장에서 입수 가능한 최신식 라이센스 관리 시스템의 일례로는 인터내셔널 비지네스 머신즈 코포레이션의 라이센스 사용 관리 제품(License Use Management product)이 존재한다.
도 1에 도시된 바와 같은 라이센스 관리 시스템을 갖는 상호 접속형 컴퓨터의 전형적인 네트워크에서, 하나 이상의 노드(101)는 라이센스 서버로서 기능하는 한편, 복수의 노드(103)는 라이센스 서버의 클라이언트로서 기능한다. 라이센스 서버(101)에 의해 그 클라이언트(103)에 제공되는 서비스는, 라이센스 서버 데이터베이스 내의 라이센스 기록의 이용 가능성에 따라서, 또한 라이센스 기록 자체 내에 인코딩된 조항 및 조건에 따라서, 주어진 소프트웨어 프로그램의 실행 허가를 승인 또는 승인 거부하는 것이다. 라이센스 서버는 일반적으로 소프트웨어 판매자에 의해 제공되고, 자신과 관련된 소프트웨어 프로그램을 보완하는 라이센스 인증서 파일을 처리할 때, 라이센스 데이터베이스 내에 라이센스 기록을 생성 및 저장한다. 이러한 라이센스 데이터베이스는 라이센스 서버(하드웨어+소프트웨어)의 특정 인스턴스에 대해 소정의 방식으로 차단되어, 부당한 사용자가 라이센스 데이터베이스를 다른 라이센스 서버 머신으로 복사하는 것과, 라이센스 데이터베이스 내에 포함된 모든 소프트웨어 제품의 개수를 증대하는 것을 방지해야만 한다. 라이 센스 인증서 파일은 라이센스 서버가 그 인증성 및 무결성을 검증하도록 허용하는 소정의 암호화 또는 체크섬(checksum) 정보를 포함할 수 있다.
라이센스 관리 시스템이 주어진 소프트웨어 프로그램의 사용을 제어한다는 사실은 가능한 한 해당 소프트웨어 프로그램의 사용자에게 인식되지 않아야 하는 반면, 해당 소프트웨어 프로그램 및 다른 소프트웨어 프로그램에 대한 라이센스의 관리자에게 있어서 명확하고 유용해야만 한다. 이러한 고려 사항은 라이센스 관리 시스템에 있어서 신뢰성 및 성능과 관련된 강한 요구 사항을 부여한다. 이상적인 라이센스 관리 시스템은 소프트웨어 프로그램 장애를 유발하지 않는 것이어야 한다. 백업 시스템이 반드시 제공되어, 라이센스 서버의 장애가 발생한 경우에 백업 서버가 서비스의 중단 없는 연속성을 보장할 수 있게 해야 한다.
라이센스 관리 시스템에서, "가용성"은 해당 시스템이 제공되는 환경에 의해 설정된 시간 한도 내에서 입력되는 요청을 처리(실행 허가에 대한 승인 또는 승인 거부) 및 만족시킬 수 있는 정도에 대한 척도이다. 높은 가용성의 시스템은 장애의 발생 인자를 최소화하고 장애가 발생했을 때 복원 시간을 최소화함으로써 특정 작동 윈도우(operational window) 내에서 연속적인 서비스를 제공하도록 시도한다. 일반적으로, 이것은 시스템 부품 내에서 높은 수준의 리던던시를 요구하므로, 전체 시스템의 연속 동작은 어떠한 단일 부품의 장애로부터 보호된다. 궁극적인 목적은 시스템 내에서 모든 단일 장애 포인트를 제거하는 것이다. 이것은 여분의 부품 또는 시스템을 구비하고, 장애가 발생할 때 서비스를 이러한 여분의 부품으로 전달하는 것을 자동화할 수 있는 "가용성 관리 기법"을 구비하는 것에 의해 이루어질 수 있다. 라이센스 관리 시스템의 하나 이상의 라이센스 서버의 공급 정지로 인해 라이센스 획득에 장애를 초래하여 여러 사용자가 그의 중요한 애플리케이션을 실행하는 것이 방해될 수 있으므로, 가용성은 라이센스 관리 시스템의 중요한 특징이다. 우수한 가용성을 보장하는 명확한 해결책으로는 잘 알려진 클러스터링 기법의 사용이 존재한다. 네트워크 데이터 처리 분야에서, 클러스터는 네트워크에 걸쳐 접속된 독립형 프로세서(노드)의 세트이다. 클러스터는 최종 사용자에게 특정한 서비스를 제공하는 일종의 "블랙 박스(black box)"를 구성한다. 임의의 이상적인 블랙 박스 시스템과 마찬가지로, 최종 사용자는 자신이 클러스터 내의 어떤 노드에 접속되었는지 인식할 필요가 없다. 그러나, 서버 리던던시를 통해 시스템의 전체 가용성을 증가하는 것을 목표로 하는 일반적인 클러스터링 기법은 라이센스 관리 시스템에 직접적으로 적용될 수 없는데, 이는 라이센스 제공 환경의 보안성 때문이다. 여분의 라이센스 서버는 단순하게 다른 장애 서버에 의해 제공되는 전체 라이센스를 인계받을 수 없고, 어떤 경우에도 동시에 제공되는 전체 라이센스의 개수가 전체 이용 가능한(즉, 구매된) 라이센스의 개수를 초과하지 않도록 보장되어야 한다.
"과반수" 또는 "정족수(quorum)"로 지칭되는 방법에 기초한 이러한 문제에 대한 해결책이 알려져 있는데, 여기에서는 소정 개수의 라이센스 서버가 공동으로 작동하도록 구성된다. 이러한 서버의 과반수가 실행되고 서로 통신하는 한 모든 라이센스는 이용 가능하지만, 동작 중인 라이센스 서버의 개수가 과반수 미만이 되면 모든 서버는 라이센스 공급을 중단한다.
상술된 IBM 라이센스 사용 관리 제품은 소정 수준의 유연성을 허용하는 추가 적인 보안 척도, 즉 시스템의 보안을 보장하면서 클러스터에 새로운 서버를 추가할 가능성을 갖는 유사한 종류의 "클러스터" 백업 방법을 구현한다. 이러한 해결책은 매우 효과적이기는 하지만, 많은 개수의 라이센스 서버(적어도 3개)의 이용 가능성을 요구한다. 몇몇 경우에, 이것은 너무 가격이 비싸고 복잡할 수 있으므로 단순화된 방법이 바람직할 것이다.
본 발명의 목적은 상기 단점을 완화하는 방법 및 시스템을 제공하는 것이다.
본 발명에 따르면 복수의 클라이언트 워크스테이션을 포함하는 시스템 내에서 소프트웨어 제품의 사용을 제어하는 방법을 제공하는데, 이러한 시스템은 메인 라이센스 서버를 호스팅(hosting)하여 적어도 하나의 제품에 대한 한정된 개수의 동시적 인스턴스의 사용을 승인하는 제 1 데이터 처리 유닛과, 백업 라이센스 서버를 호스팅하는 제 2 데이터 처리 유닛을 적어도 포함하고, 상기 방법은 메인 라이센스 서버 및 백업 라이센스 서버 상에 적어도 하나의 제품에 대한 라이센스의 세트를 기입(enrolling)하는 단계와, 메인 라이센스 서버가 활성화되는 동안에 백업 라이센스 서버가 임의의 라이센스를 승인하는 것을 방지하는 단계와, 백업 라이센스 서버의 동작을 모니터링하는 단계와, 백업 라이센스 서버의 장애 검출에 응답하여, 백업 라이센스 서버의 동작이 복원될 때까지 상기 메인 라이센스 서버의 동작을 보류하는 단계를 포함한다.
본 발명의 다른 측면은 상술된 방법을 실행하는 컴퓨터 프로그램을 제공한 다.
본 발명의 또 다른 측면은 이러한 프로그램을 내장하는 프로그램 제품을 제공한다.
또한, 본 발명의 다른 측면은 상기 방법을 구현하는 대응 장치를 제공한다.
본 발명의 특성으로 간주되는 새로운 특징은 첨부된 청구항에 제시되어 있다. 그러나, 본 발명의 이러한 관련 목적 및 이점과 다른 관련 목적 및 이점뿐만 아니라 본 발명 자체는 첨부된 도면과 관련하여 서술되는 이하의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
상술된 바와 같이, 도 1은 본 발명을 구현할 수 있는 라이센스 관리 시스템을 이용한 컴퓨터(100)의 전형적인 네트워크를 나타낸다. 서버(101)는 예를 들면 인터내셔널 비지네스 머신즈 코포레이션에 의해 생산되어 운영 시스템으로서 AIX 5.3을 실행하는 IBM 7029-6E3 등의 RISC 서버일 수 있다. 클라이언트 노드(103)는 시장에서 입수 가능한 임의의 퍼스널 컴퓨터 또는 워크스테이션일 수 있는데, 예를 들면 AIX 5.3을 실행하는 RISC 클라이언트 7043-150 또는 윈도우즈 XP를 실행하는 IBM 씽크센터(ThinkCenter)일 수 있다. 서버 및 클라이언트 노드(103)는 네트워크(110)(예를 들면 근거리 네트워크)를 통해 접속된다.
도 2에 도시된 바와 같이, 시스템(워크스테이션 또는 라이센스 서버)의 범용 컴퓨터는 참조 부호(150)로 표시되어 있다. 컴퓨터(150)는 시스템 버스(153)에 병 렬로 접속된 여러 유닛에 의해 형성된다. 세부적으로, 하나 이상의 마이크로프로세서(μP)(156)는 컴퓨터(150)의 동작을 제어하고, RAM(159)은 마이크로프로세서(156)에 의해 작동 메모리로서 직접 사용되고, ROM(162)은 컴퓨터(150)의 부트스트랩(bootstrap)을 위한 기본 코드를 저장한다. 주변 장치는 (각각의 인터페이스를 이용하여) 로컬 버스(165) 주위에 밀집된다. 특히, 대량 메모리(mass memory)는 하드-디스크(168)와, CD-ROM(174)을 판독하기 위한 드라이브(171)로 이루어져 있다. 또한, 컴퓨터(150)는 입력 장치(177)(예를 들면, 키보드 및 마우스 등) 및 출력 장치(180)(예를 들면, 모니터 및 프린터 등)를 포함한다. 네트워크 인터페이스 카드(Network Interface Card : NIC)(183)는 컴퓨터(150)를 네트워크에 접속하는 데 이용된다. 브리지 유닛(186)은 시스템 버스(153)와 로컬 버스(165)를 인터페이싱한다. 각각의 마이크로프로세서(156) 및 브리지 유닛(186)은 정보를 전송하기 위해 시스템 버스(153)에 대한 액세스를 요청하는 마스터 에이전트로서 동작할 수 있다. 아비터(arbiter)(189)는 시스템 버스(153)에 대해 상호 배제 기법(mutual exclusion)으로 액세스의 승인을 관리한다.
시스템이 상이한 토폴로지를 갖거나, 다른 네트워크에 기초하는 경우에 유사한 고려 사항을 적용한다. 이와 다르게, 컴퓨터는 상이한 구조를 갖거나, 그와 대등한 장치를 포함하거나, 다른 데이터 처리 개체(PDA, 이동 전화기 등)로 이루어진다. 어떠한 경우라도, 본 발명의 해결책은 또한 워크스테이션의 제어가 분산되어 있는 시스템 내에서 사용하기에 적합하다.
다음으로 도 3을 참조하면, 본 발명의 바람직한 실시예에서의 방법을 실행하 기 위해 이용될 수 있는 주요 구성 요소가 도시되어 있다. 정보(프로그램 및 데이터)는 전형적으로 서로 다른 컴퓨터의 하드-디스크에 저장되고, 프로그램이 실행될 때 대응하는 작동 메모리에 (적어도 부분적으로) 로딩된다.
본 발명의 바람직한 실시예에 따르면, 서버(301)는 라이센스 서버(A)(303) 및 에이전트(C)(305)를 호스팅한다. 라이센스 서버(A)(303)는 모든 구매된 인증서에 대응하는 다수의 라이센스를 포함한다. 본 발명의 바람직한 실시예에 따르면, 라이센스 서버는 소프트웨어 제품에 대한 라이센스를 관리하는 라이센스 서비스를 제공하는 프로세스이다. 라이센스 서버는 일반적으로 라이센스 클라이언트(즉 라이센스 허가형 애플리케이션)와 접속하는 데 이용되는 통신 계층(communication layer)과, 모든 중요한 정보를 저장하는 물리적 장소인 라이센스 데이터베이스(전형적으로 하드 디스크 상에 상주함)와, 라이센스 데이터베이스의 메모리 내의 이미지인 캐시(성능을 가속하기 위해 필요함)와, 클라이언트/관리자 요청을 만족시키기 위해 요구되는 콜백(callbacks)의 세트와, 보안 목적을 위해 필요한 암호화/해독화 엔진을 포함한다. 라이센스 서버의 내부 로직은 라이센스 인증서 내에 기술된 라이센스 정책을 지원해야 한다.
라이센스는 라이센스 서버 상에 라이센스 요청을 충족하는 이용 가능한 라이센스가 존재할 때에만 승인된다. 라이센스가 획득되면, 클라이언트는 그 라이센스를 "사용 중(in use)"으로 유지할 책임이 있고, 다시 말해서 서버가 해당 라이센스가 사용 중이이므로 다른 사용자에게 할당되어서는 안된다는 것을 인식하게 해야 한다. 본 발명의 바람직한 실시예에 따르면, 이것은 라이센스 서버에 그 활성 상 태(하트비트(heartbeat))를 주기적으로 통신함으로써 실행될 수 있다.
서버(307)는 라이센스 서버(A)(303)의 모든 라이센스의 백업을 포함하는 백업 라이센스 서버(B)(309)를 호스팅한다.
라이센스 서버(A)가 개시될 때, 에이전트(C)는 백업 라이센스 서버(B)에게 모든 가능한 라이센스를 요청하고, 그 라이센스를 "사용 중"으로 유지(예를 들면 주기적 하트비트를 이용함)하는 라이센스 클라이언트로서 기능하므로, 백업 라이센스 서버(B)가 임의의 라이센스를 실제 애플리케이션에 대해 승인하는 것이 방지된다. 이러한 방식으로 서버(A)가 실행되는 동안에 백업 라이센스 서버(B)에 의해 호스팅되는 복제된 라이센스의 어떠한 부당한 사용도 방지된다. 라이센스 서버(A)가 어떠한 원인에 의해 고장나거나 중단된 경우에, 에이전트(C)가 백업 라이센스 서버(B)의 모든 라이센스를 "해제(frees)"하면, 이 라이센스는 사용을 위해 이용 가능하게 된다. 다른 가능한 시나리오로는 서버(A)가 계속 실행 중이지만 에이전트(C)가 계속 실행되지 않는 경우가 있다. 이러한 경우에 서버(A)가 자신을 "중지"하고, 그 라이센스를 "사용 중"으로 유지하여야 하는데, 이는 백업 라이센스 서버(B)가 에이전트(C)로부터 하트비트를 수신하지 않는 것에 의해 백업 라이센스 서버(B) 상의 라이센스가 모두 이용 가능해지는 것을 고려해야 하기 때문이다. 에이전트(C)가 라이센스 서버(A)의 동일 머신 상에 상주하여, 라이센스 서버(A)를 격리(예를 들면 방화벽(firewall)으로 격리)하지 못하게 하고, 백업 라이센스 서버(B)가 라이센스를 승인하는 동안에 라이센스가 복제되지 않도록 하는 것이 중요하다.
정규 동작, 즉 라이센스 서버(A)가 실행되는 동안에, 에이전트(C)는 백업 서버(B)의 정확한 동작을 모니터링하여 서버(B)의 어떠한 중단도 즉시 검출되게 한다. 이러한 경우에, 에이전트(C)는 그 중단이 서버(B)의 문제에 기인한 것인지 이용 가능 라이센스의 복제하기 위해 서버를 격리(예를 들면 방화벽으로 격리)하는 부당한 시도에 기인한 것인지 판정할 수 없다. 그러므로, 에이전트(C)는 서버(A)의 동작도 중지시킨다. 이러한 방식으로 관리자는 서버(B)를 재시작(또는 재접속)하도록 강요되고, 그렇게 하지 않으면 서버(A)의 라이센스는 이용 불가능 상태로 유지될 것이다. 본 발명의 방법은 백업 서버(B)가 언제나 실행 중이도록 요구한다는 것을 유의하라. 서비스 중단의 원인이 될 수 있으므로 서버(B)의 장애는 허용되지 않지만, 이것은 백업 서버의 장애가 비교적 발생되지 않는 것으로서 고려될 수 있다.
상술된 실시예에 따르면, 라이센스 서버(A) 및 에이전트(C)는 2개의 별도의 프로세스이다. 그러나 본 발명의 방법은 라이센스 서버(A) 및 에이전트(C)의 기능을 모두 제공하는 단일 프로세스로 구현될 수 있다. 예를 들면 에이전트(C)는 단지 라이센스 서버(A)의 스레드(thread) 또는 작업에 불과할 수 있다. 중요한 특징은 서버(A)가 정확하게 작동하는 동안에 백업 서버(B)가 라이센스를 승인하는 것이 방지되는 한편, 백업 서버(B)의 장애가 검출될 때 라이센스 서버(A)가 자신을 "자체 중지"하는 것이다.
다음으로 도 4를 참조하면, 본 발명의 일실시예에 따른 안전한 백업을 갖는 라이센스 관리 프로세스의 로직 흐름을 방법(400)으로 나타내었다. 이 방법은 참 조 부호(401)의 흑색 원형으로 된 시작 블록에서 개시된다. 단계(403)에서, 라이센스는 메인 라이센스 서버(라이센스 서버(A)) 및 백업 라이센스 서버(백업 서버(B)) 내에 기입(enrolled)된다. 블록(405)으로 진행하면 라이센스 서버(A)가 실행 중인지 여부가 검사된다. 본 발명의 바람직한 실시예에 따르면 이러한 검사는 에이전트(C)에 의해 실행되지만, 이것은 예를 들면 서버(A)에서 자체적으로 실행될 수 있다. 검사 결과가 "예"이면, 제어는 단계(407)로 진행되어 백업 서버(B)를 모니터링하여 실행 중인지 검증한다. 이러한 경우에 백업 서버(B)에서 이용 가능한 모든 라이센스가 (예를 들면 에이전트(C)에 의해) 요청되어 이러한 라이센스는 실제 애플리케이션에 의해 이용될 수 없다(단계(409)). 본 발명의 바람직한 실시예에 따르면, 에이전트(C)는 실제 라이센스 허가형 애플리케이션인 것처럼 백업 서버(B)에 "하트비트"를 주기적으로 전달하여, 백업 서버(B)가 라이센스를 "사용 중"으로 유지하도록 강제, 즉 어떠한 다른 애플리케이션에서 이용될 수 없도록 강제한다. 다른 한편으로, 백업 서버(B)의 장애가 검출될 때, 이것이 실제 장애에 기인한 것인지 아니면 부당한 사용의 시도에 기인한 것인지 판정할 수 없으므로, 라이센스 서버(A)는 중지되어 백업 서버(B)가 복원될 때까지 라이센스 서버(A)에 의해 임의의 라이센스가 승인되는 것을 방지한다(단계(411)). 검사 단계(405)로 되돌아가서, 그 결과가 "아니오"일 때 에이전트(C)는 백업 서버(B)에 "하트비트"를 전달하는 것을 중단한다. 물론 백업 서버(B)가 어떠한 "하트비트"도 수신하지 않으면 에이전트(C) 또는 라이센스 서버(A)가 적절히 작동하지 않는다고 간주되므로 에이전트(C)에 의해 사용 중인 것으로 유지되었던 라이센스를 해제하여 이 라이센스가 다른 클라이언트에 의해 사용 가능하게 한다. 본 발명의 바람직한 실시예에 따르면, 라이센스 서버(A)는 또한 소프트웨어 에이전트(C)의 활성 상태를 제어하는 역할을 한다. 에이전트(C)가 아예 개시되지 않는 경우에, 라이센스 서버(A)는 에이전트(C)를 개시하게 만드는 역할을 한다. 에이전트(C)가 개시된 후 라이센스 서버(A)는 하트비트 또는 핑 유사(ping-like) 메커니즘을 이용하여 주기적으로 에이전트(C)의 활성 상태를 검사한다(이들이 동일 머신 상에 상주하기 때문에 이들은 통신을 위해 예를 들면 IPC 프로토콜을 이용할 수 있음). 이러한 2개의 작업은 라이센스 서버(A)가 개시되자마자, 또는 제 1 라이센스가 기입되자마자(즉 라이센스 데이터베이스 상에 등록되면) 개시될 수 있다. 라이센스가 기입되자마자, 라이센스 서버(A)는 또한 에이전트(C)가 백업 서버(B)로부터 라이센스를 요청할 수 있도록 허용하기 위해서, 해당 라이센스에 관한 모든 관련 정보(예를 들면 판매자 식별자, 제품 식별자, 라이센스 식별자)를 에이전트(C)와 공유하는 것을 담당한다. 백업 서버(B) 상의 라이센스 데이터베이스 및 캐시는 기입 시간(enrollment time)에 2가지 방식, 즉 기입 툴(enrollment tool)이 라이센스 서버(A) 및 백업 서버(B) 모두에 라이센스를 동시에 기입하거나, 라이센스 서버(A)가 라이센스 정보를 백업 서버(B)로 전달하는 방식으로 보존될 수 있다.
보안 목적을 위해서, 라이센스는 라이센스 서버(A) 및 백업 서버(B) 모두에 대해 고유 식별자로 한정되어야 하고, 서버(A, B)는 라이센스 인증서에 삽입된 고유 식별자가 그 자신의 식별자와 일치하는지 여부를 검사하는 것을 담당한다. 다음에 에이전트(C)는 기입된 라이센스 내에 저장된 전체 라이센스 용량을 백업 서 버(B)에 대해 요청한다. 상술된 바와 같이, 백업 서버(B)는 모든 라이센스를 "사용 중"으로 표시하여 라이센스 허가형 애플리케이션이 그것을 사용할 수 없게 한다. 라이센스 서버(A)의 장애가 발생한 경우에, 에이전트(C)는 더 이상 하트비트를 수신하지 않고, 그에 따라 그 자신의 하트비트를 백업 서버(B)에 전달하는 것을 중단한다. 다음에 백업 서버(B)는 "사용 중"인 라이센스를 해제하고, 그러면 이 라이센스는 라이센스 허가형 애플리케이션에게 이용 가능하게 된다. 다음에 라이센스 허가형 애플리케이션은 백업 서버(B)로부터 라이센스를 요청할 수 있다. 라이센스 서버(A)가 복원되자마자, 라이센스 서버(A)는 에이전트(C)에 대한 하트비트의 전달을 재시작하고, 이것은 라이센스 허가형 애플리케이션에게 승인된 라이센스를 해제하고, 이 라이센스가 에이전트(C)를 위해 "사용 중"인 것으로 유지하도록 백업 서버(B)를 강제한다. 다음에 라이센스 허가형 애플리케이션은 다시 라이센스를 요청해야 한다. 이 때 그 요청은 라이센스 서버(A)에 의해 승인될 것이다. 이러한 라이센스를 요청하는 데 있어서 서버(A)와 서버(B) 사이의 전환 메커니즘은 라이센스 허가형 애플리케이션 내에서 이루어져야 하고, 최종 사용자에게 인식되지 않을 수 있다.
에이전트(C)의 장애가 발생한 경우에, 라이센스 서버(A)는 더 이상 그 하트비트를 성공적으로 전달할 수 없으므로, 보안의 노출에 대해 의심하면서 라이센스 허가형 애플리케이션에 대한 그 자신의 라이센스를 거부/철회한다. 사실상 서버(B)는 에이전트(C)의 하트비트를 수신할 수 없으므로 라이센스를 공급할 수 있다.
프로그램 및 데이터가 서로 상이한 방식으로 구성되거나, 다른 모듈 또는 기능이 제공되거나, 정보가 대등한 메모리 구조 내에 저장된다면 유사한 고려 사항을 적용한다.
이러한 방법이 대등하거나 추가적인 단계를 포함한다면 유사한 고려 사항을 적용한다.
본 발명은 그에 대한 바람직한 실시예(들)를 참조하여 소정 세부 사항을 가지고 상술되어 있으나, 다른 실시예뿐만 아니라 그 형태 및 세부 사항에서의 여러 변경도 가능하다는 것을 이해할 것이다. 특히, 동일 결과를 획득하기 위해서 동일한 방식으로 실질적으로 동일한 기능을 실행하는 구성 요소 및/또는 방법 단계의 모든 조합은 본 발명의 범주에 속하도록 의도된 것임이 명확하다. 예를 들어 상술된 바람직한 실시예에 따르면 라이센스 서버(A) 및 에이전트(C)가 동일한 데이터 처리 유닛 상에서 실행되는 상이한 프로세스인 것으로 설명되어 있으나, 상술된 바와 같이 라이센스 서버(A) 및 에이전트(C)는 단일 프로세스가 될 수 있다.
어떠한 경우에도, 본 발명의 방법은 임의의 종류의 소프트웨어 제품(비디오 게임, 멀티미디어 제작품 등)의 사용을 제어하기 위해 이용될 수 있다.
또한, 프로그램은 임의의 다른 컴퓨터 판독 가능 매체(하나 이상의 DVD 등) 상에 분포되거나, 이와 다르게 프로그램은 하드-디스크에 사전 로딩(pre-loaded)되거나, 컴퓨터로 전달되거나, 브로드캐스팅(broadcast)되거나, 보다 일반적으로 컴퓨터의 작동 메모리 내에 직접 로딩 가능한 임의의 다른 형태로 제공될 수 있다.
더욱이, 당업자라면 추가적인 이점을 제공하는 부가적인 특징부가 본 발명을 실행하는 데 있어서 필수적이지는 않고, 생략되거나 다른 특징부로 대체될 수 있다는 것을 인식할 것이다.
어떠한 경우에도, 본 발명에 따른 방법은 또한 하드웨어 구조물(예를 들면, 반도체 재료의 칩 내에 집적됨)로 구현되거나 소프트웨어 및 하드웨어의 조합으로 구현되는 데 적합하다.
당연히, 특수하고 특정한 요구 조건을 충족하기 위해서 당업자는 상술된 해결책에 대해 여러 수정 및 변경을 적용할 수 있지만, 그 모든 수정 및 변경은 이하의 청구항에 정의된 바와 같은 본 발명의 보호 범주 내에 속한다.
본 발명은 라이센스 관리 시스템에 관한 것으로서 부당한 사용을 방지함으로써 백업 시스템의 보안을 제공하는 라이센스 관리 방법과, 이러한 방법을 실행하는 컴퓨터 프로그램 및 그 프로그램을 내장하는 제품을 제공한다.

Claims (9)

  1. 복수의 클라이언트 데이터 처리 유닛을 포함하고, 적어도 하나의 제품에 대한 한정된 개수의 동시적 인스턴스(concurrent instances)의 사용을 승인하는 메인 라이센스 서버를 호스팅(hosting)하는 적어도 하나의 제 1 서버 데이터 처리 유닛과, 백업 라이센스 서버를 호스팅하는 제 2 서버 데이터 처리 유닛을 적어도 포함하는 시스템 내에서, 소프트웨어 제품의 사용을 제어하는 방법으로서,
    상기 메인 라이센스 서버 및 상기 백업 라이센스 서버 상에 적어도 하나의 제품에 대한 라이센스의 세트를 기입(enrolling)하는 단계와,
    상기 메인 라이센스 서버가 활성화되는 동안에 상기 백업 라이센스 서버가 임의의 라이센스를 승인하는 것을 방지하는 단계와,
    상기 백업 라이센스 서버의 동작을 모니터링하는 단계와,
    상기 백업 라이센스 서버의 장애 검출에 응답하여, 상기 백업 라이센스 서버의 동작이 복원될 때까지 상기 메인 라이센스 서버의 동작을 보류하는 단계를 포함하는
    소프트웨어 제품 사용 제어 방법.
  2. 제 1 항에 있어서,
    상기 기입 단계는 각각의 적어도 하나의 제품에 대한 라이센스 정보를 등록 하는 단계를 포함하되,
    상기 라이센스 정보는 상기 시스템 상에서 실행되도록 허용되는 상기 제품의 동시적 인스턴스의 최대 개수를 포함하는
    소프트웨어 제품 사용 제어 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 방지 단계, 상기 모니터링 단계 및 상기 보류 단계는 상기 메인 라이센스 서버에 의해 실행되는
    소프트웨어 제품 사용 제어 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 방지 단계, 상기 모니터링 단계 및 상기 보류 단계는 상기 제 1 서버 데이터 처리 유닛에서 호스팅되는 제어 에이전트에 의해 실행되는
    소프트웨어 제품 사용 제어 방법.
  5. 제 4 항에 있어서,
    상기 방지 단계는,
    상기 제어 에이전트가 모든 이용 가능한 라이센스를 상기 백업 라이센스 서버에 대해 요청하는 단계와,
    상기 제어 에이전트가 상기 백업 라이센스 서버에 주기적 하트비트(periodic heartbeat)를 전달하여 상기 백업 라이센스 서버가 상기 제어 에이전트를 위해 보유된 모든 상기 이용 가능 라이센스를 유지하는 단계를 포함하는
    소프트웨어 제품 사용 제어 방법.
  6. 제 5 항에 있어서,
    상기 제어 에이전트가 메인 라이센스 서버의 동작을 모니터링하는 단계와,
    상기 메인 라이센스 서버의 장애 검출에 응답하여, 상기 제어 에이전트가 상기 백업 라이센스 서버에 대한 상기 주기적 하트비트를 보류함으로써, 상기 메인 라이센스 서버의 동작이 복원될 때까지 상기 백업 라이센스 서버가 등록된 라이센스 정보에 따라서 상기 라이센스를 승인할 수 있게 하는 단계를 포함하는
    소프트웨어 제품 사용 제어 방법.
  7. 제 4 항에 있어서,
    상기 메인 라이센스 서버가 상기 제어 에이전트의 동작을 모니터링하는 단계와,
    상기 제어 에이전트의 장애 검출에 응답하여 상기 메인 라이센스 서버가 상기 메인 라이센스 서버의 승인 동작을 보류하는 단계를 포함하는
    소프트웨어 제품 사용 제어 방법.
  8. 제 1 항 또는 제 2 항에 기재된 방법의 각각의 단계를 수행하기 위한 프로그램 코드를 포함하는
    컴퓨터 판독 가능한 저장 매체.
  9. 복수의 클라이언트 데이터 처리 유닛을 포함하는 시스템 내에서, 소프트웨어 제품의 사용을 제어하는 시스템으로서,
    적어도 하나의 제품에 대한 한정된 개수의 동시적 인스턴스의 사용을 승인하는 메인 라이센스 서버를 호스팅하는 적어도 하나의 제 1 서버 데이터 처리 유닛과,
    백업 라이센스 서버를 호스팅하는 제 2 서버 데이터 처리 유닛과,
    상기 메인 라이센스 서버 및 상기 백업 라이센스 서버 상에 적어도 하나의 제품에 대한 라이센스의 세트를 기입(enrolling)하는 수단과,
    상기 메인 라이센스 서버가 활성화되는 동안에 상기 백업 라이센스 서버가 임의의 라이센스를 승인하는 것을 방지하는 수단과,
    상기 백업 라이센스 서버의 동작을 모니터링하는 수단과,
    상기 백업 라이센스 서버의 장애 검출에 응답하여, 상기 백업 라이센스 서버의 동작이 복원될 때까지 상기 메인 라이센스 서버의 동작을 보류하는 수단을 포함하는
    소프트웨어 제품 사용 제어 시스템.
KR1020060107740A 2005-11-22 2006-11-02 소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체 KR100877470B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05111071.6 2005-11-22
EP05111071 2005-11-22

Publications (2)

Publication Number Publication Date
KR20070054094A KR20070054094A (ko) 2007-05-28
KR100877470B1 true KR100877470B1 (ko) 2009-01-07

Family

ID=38054939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060107740A KR100877470B1 (ko) 2005-11-22 2006-11-02 소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체

Country Status (3)

Country Link
US (1) US7856664B2 (ko)
KR (1) KR100877470B1 (ko)
CN (1) CN1971577B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252441B (zh) * 2008-02-20 2010-06-02 深圳市永达电子股份有限公司 基于可设定信息安全目标的获得性安全保障方法及系统
US8365259B2 (en) * 2008-05-28 2013-01-29 Zscaler, Inc. Security message processing
JP2010086461A (ja) * 2008-10-02 2010-04-15 Sony Corp ライセンス管理装置およびライセンス管理方法、ならびに、ライセンス管理システム
KR101190060B1 (ko) * 2008-12-12 2012-10-11 한국전자통신연구원 아이덴티티 데이터 관리 장치 및 방법
CN101651564B (zh) * 2009-09-08 2011-07-06 杭州华三通信技术有限公司 一种许可证检测方法、分布式网管系统和服务器
US9065825B2 (en) * 2010-02-05 2015-06-23 International Business Machines Corporation Method and system for license management
US20120131684A1 (en) * 2010-11-19 2012-05-24 Mark Lynch Automatic backup license to avoid service interruptions in continuous service, high reliability systems
US9239749B2 (en) * 2012-05-04 2016-01-19 Paraccel Llc Network fault detection and reconfiguration
US9047161B1 (en) * 2013-01-16 2015-06-02 Sprint Communications Company L.P. Discovery, consolidation, and archival of multiple operating system software licenses
US9176974B1 (en) 2013-01-18 2015-11-03 Sprint Communications Company L.P. Low priority, multi-pass, server file discovery and management
US20150242599A1 (en) * 2014-02-26 2015-08-27 Schlumberger Technology Corporation Cluster license server
CN108933646B (zh) * 2018-06-14 2021-09-28 艾普阳科技(深圳)有限公司 一种授权许可服务的控制方法、客户端及备用服务器端
CN115630341B (zh) * 2022-12-22 2023-03-10 湖南国科亿存信息科技有限公司 高可用存储设备中软件许可授权管控方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040027826A (ko) * 2004-03-08 2004-04-01 최철 컴퓨터 파일 변형을 이용한 소프트웨어 보호 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390297A (en) * 1987-11-10 1995-02-14 Auto-Trol Technology Corporation System for controlling the number of concurrent copies of a program in a network based on the number of available licenses
CN1109416A (zh) 1994-03-31 1995-10-04 陈端生 准确椭圆抛物线规
GB2346989A (en) * 1999-02-19 2000-08-23 Ibm Software licence management system uses clustered licence servers
US7020695B1 (en) * 1999-05-28 2006-03-28 Oracle International Corporation Using a cluster-wide shared repository to provide the latest consistent definition of the cluster (avoiding the partition-in time problem)
US6842896B1 (en) * 1999-09-03 2005-01-11 Rainbow Technologies, Inc. System and method for selecting a server in a multiple server license management system
US6757836B1 (en) * 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6728896B1 (en) * 2000-08-31 2004-04-27 Unisys Corporation Failover method of a simulated operating system in a clustered computing environment
US6785678B2 (en) * 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function
US6910150B2 (en) * 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
US6915278B1 (en) * 2002-03-22 2005-07-05 Borland Software Corporation License management method and system
US7966520B2 (en) 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7478263B1 (en) * 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040027826A (ko) * 2004-03-08 2004-04-01 최철 컴퓨터 파일 변형을 이용한 소프트웨어 보호 방법

Also Published As

Publication number Publication date
US20070118911A1 (en) 2007-05-24
US7856664B2 (en) 2010-12-21
CN1971577B (zh) 2011-08-17
KR20070054094A (ko) 2007-05-28
CN1971577A (zh) 2007-05-30

Similar Documents

Publication Publication Date Title
KR100877470B1 (ko) 소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체
US7379918B2 (en) Method and system for single reactivation of software product licenses
US9426147B2 (en) Protected device management
JP3963385B2 (ja) ディジタル・エンコードされた製品の使用を制御する方法およびシステム
US6986042B2 (en) Computer system operable to revert to a trusted state
JP4883459B2 (ja) ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行
US7895124B2 (en) Method for protecting sensitive data during execution
GB2346989A (en) Software licence management system uses clustered licence servers
Aguilera et al. The impact of RDMA on agreement
KR20110093816A (ko) 플러그인들의 샌드박스 실행
US11416617B2 (en) Computing apparatus
EP2819048B1 (en) Virtualized host ID key sharing
US20100070776A1 (en) Logging system events
EP2637120B1 (en) Enterprise license registrar anchor point
CN113536237A (zh) 一种license控制方法及装置
US20200272708A1 (en) Computer system, computer apparatus, and license management method
US7730122B2 (en) Authenticating a node requesting another node to perform work on behalf of yet another node
JP2004005377A (ja) 多重システム停止の再発防止方法
US9602546B2 (en) Accurate license counting in synchronized servers
CN117521035A (zh) 软件离线授权管理方法、装置、电子设备及存储介质
Ezhilchelvan et al. Proactive Fortification of Fault-Tolerant Services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee