KR20100138980A - 어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템 - Google Patents

어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템 Download PDF

Info

Publication number
KR20100138980A
KR20100138980A KR1020107021661A KR20107021661A KR20100138980A KR 20100138980 A KR20100138980 A KR 20100138980A KR 1020107021661 A KR1020107021661 A KR 1020107021661A KR 20107021661 A KR20107021661 A KR 20107021661A KR 20100138980 A KR20100138980 A KR 20100138980A
Authority
KR
South Korea
Prior art keywords
application
identifier
selected receiving
receiving computers
software
Prior art date
Application number
KR1020107021661A
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 KR20100138980A publication Critical patent/KR20100138980A/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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/2135Metering

Abstract

바람직한 실시 예는 어플리케이션 가상 환경(APPLICATION VIRTUALIZATION ENVIRONMENT)이 사용될 때 머신 상에 물리적으로 설치되지 않은 소프트웨어의 설치를 라이센스 툴들(LICENSE TOOLS)로 하여금 검출 가능하도록 하는 메카니즘(MECHANISM)을 제공한다.
바람직한 실시 예는 또한 라이센트 둘들로 하여금 이 소프트웨어의 사용을 검출 가능하도록 하는 메카니즘을 제공한다.
이 목적을 위해, 이 바람직한 실시 예는 새로운 타입의 서명(SIGNATURE). 즉,가상 설치 서명을 정의한다.
바람직한 실시 예는 타겟 컴퓨터에 소프트웨어가 설치되어 있는지를 검출하기 위해서 타겟 머신 에 있는 에이전트(AGENT)를 이용하여 소프트웨어 어플리케이션의 가상 설치 서명을 잠재적 어플리케이션들의 로컬화(localized)된 목록과 비교한다.

Description

어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템{METHOD AND SYSTEM FOR DETECTING THE INSTALLATION AND USAGE OF SOFTWARE IN AN APPLICATION VIRTUALIZATION ENVIRONMENT}
본 발명은 어플리케이션 가상 환경에서 소프트웨어 설치를 검출하기 위한 방법, 시스템 및 컴퓨터 프로그램에 관한 것이다. 본 발명은 또한 그러한 소프트웨어의 사용을 검출하는 것(detecting)에 관한 것이다.
현재의 통상적인 생산 환경(production environment : 컴퓨터 프로그램의 동작 환경)에 배치되어 있는 모든 어플리케이션들은 공동 실행 환경(common runtime environment)에 반드시 공존(coexist)해 있어야 한다. 여기서 공동 실행환경이란 운영체제이며, 상기 모든 어플리케이션들은 이 운영체제에 설치되어있다. 그러나 새로운 어플리케이션의 설치는 통상적으로 기존의 환경을 훼손시킨다. 그 결과, 이미 테스트가 완료된(already-tested) 어플리케이션들도 잠재적으로 충돌(conflict)이 일어날 수 있다. 따라서 IT리소스(resource)들이 클 수록 새로운 제품이 설치 혹은 추가될 때마다 생산 환경을 검증하는 것이 요구된다.
이 문제는 부분적으로 운영체계 레벨(level)에서 가상화 기술(virtualization technology)(즉, VM웨어, MS가상 서버 등)의 사용으로 해결된다(addressed). 현재 상기 문제를 가상화의 접근(approach)방법 어플리케이션을 사용하여 해결하는 몇몇의 제품들로서 이용 가능한 것에는 IBM Progressive Development System (http://web.opensource.ibm.com/www/pds/)이나Microsoft Softricity (http://www.softricity.com)와 같이 것이 있다.
이러한 접근 방식 하에서는, 배치된(deployed) 어플리케이션들이 운영체제와 하드웨어 설정들(hardware settings)은 다른 어플리케이션들과 공유하지만, 이들 어플리케이션들은 또한 가상 환경(virtual environment)에서 실행(run)되며 어플리케이션 환경을 정의하는 자신만의 개별 가상 파일들 (private virtual files), 디렉터리들(directories), 및 레지스트리들(registries)에서 작업을 수행한다.
이들 어플리케이션들은, 모든 이용 가능한 어플리케이션들을 그들의 작업 환경(working environment)들과 함께 저장하고 있는 중앙 저장소 (repository)로부터 통상적으로 다운로드된다. 이 방식에서 각 제품에 대한 모든 테스트들과 유지 리소스들은 중앙 집중화(centralized)되지만 다른 배치된 어플리케이션들과는 무관하게된다(independent).
하지만, 이 새로운 접근 방식(approach)은 소프트웨어 제품들의 설치와 사용을 검출하는 라이센스 툴들(license tools)에 대해서는 문제를 일으킨다. 현재는 사용 서명(usage signature)이 어플리케이션이 타겟 머신(target machine)에서 동작하는지를 결정하기 위해서 사용되고, 설치 서명(installation signature)은 상기 제품이 단순히 타겟 머신에 설치되어 있는지를 결정하기 위해서 사용된다. 그러나, 어플리케이션 가상 환경을 생성하는 제품들은 설치된 어플리케이션을 운영체제에 등록하지(register)않는다(즉, 레지스트리 키들을 통해서); 또한 제품 설치를 추적할 수 있는 명백한 설치 작업(action)은 어떠한 종류도 실행(execute)하지 않는다. 이는(this behavior) 고전적인(classic) 측정되지 않은(not-instrumented) 라이선스 툴(license tools)들이 설치된 소프트웨어를 식별할 수 없게 한다. 또한(similarly), 어플리케이션 가상 환경을 생성하는 제품들은 보통(normal) 환경에서 실행하는 것과 같은 방식으로 어플리케이션 실행(executable) 파일이름 및 사이즈를 반드시 실행하지는 않는다. 이는(this behavior) 고전적인(classic) 측정되지 않은(not-instrumented) 라이선스 툴(license tools)들이 머신에 실행중인 소프트웨어를 식별할 수 없게 한다.
본 발명은 제 1 저장소에 저장되는 다수의 어플리케이션 콤포넌트 및 하나의 식별 콤포넌트를 포함하는 소프트웨어 어플리케이션의 설치를 어플리케이션 가상 환경에서 검출하는 방법을 제공하는 것이며, 상기 방법은 상기 식별 콤포넌트로부터 식별자(identifier)를 제 2 저장소에 저장하는 단계(storing) ; 로컬 식별자 저장소들을 형성하기 위하여, 상기 제 2 저장소의 사본을 다수의 수신 컴퓨터들에 제공하는 단계(providing) ; 상기 수신 컴퓨터들 중 하나 혹은 그 이상을 선택하는 단계(selecting) ; 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들의 상기 하나 혹은 그 이상의 로컬 식별자 저장소들로부터 상기 어플리케이션의 상기 식별자를 추출하는 단계(extracting) ; 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들이 상기 식별자의 매칭 사본(a matching copy)를 포함하는지를 확인하기 위하여 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들을 조회하는 단계(interrogating) ; 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들 상에서 상기 식별자의 매칭 사본이 발견되는 경우, 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들 상에 상기 소프트웨어 제품이 설치되었다고 결정하는 단계를 포함한다.
본 발명의 다른 목적은 전술한 방법을 수행하는 컴퓨터 프로그램을 제공하는 것이다.
본 발명의 또 다른 목적은 전술한 방법들의 단계들을 수행하도록 준비된 (adapted) 수단을 포함하는 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 전술한 방법들의 단계들을 수행하기 위한 데이터 처리 시스템에 배치된 서비스를 제공하는 것이다.
본 발명의 바람직한 실시 예는 어플리케이션 가상 환경이 사용될 때 머신에 물리적으로 설치되지 않은 소프트웨어의 설치를 라이센스 툴들이 검출할 수 있게 한다. 또한 본 발명의 바람직한 실시 예는 상기 소프트웨어의 사용을 라이센스 툴들이 검출할 수 있게 한다. 이 목적을 위해 본 발명의 바람직한 실시 예는 새로운 종류의 서명(signature) 즉, 가상(virtual) 설치 서명을 정의(define)한다. 상기 가상 설치 서명은 어플리케이션 가상 환경들 에서 다른 방식으로 수행된 설치들(즉, 왜냐하면 가상 설치의 비즈니스의 의미와 비용(cost)이 일반적인 것들과 다르기 때문에)을 보고(report) 하기 위해 라이센스 툴들에 의해 선택적으로 사용 될 수도 있다.
본 발명의 실시 예는 단지 본 발명의 예를 보여주기 위해서 제공되는 것이다;
도1은 라이센스 관리자 툴을 채용하는 네트워크의 블록 다이어그램이다;
도 2는 프로그레시브 다운로드 스킴(progressive download scheme) 내에서 바람직한 실시 예에 따른 설치된 소프트웨어를 검출하는 방법의 개략도이다;
도 3는 프로그레시브 다운로드 스킴(progressive download scheme) 내에서 바람직한 실시 예에 따른 소프트웨어 사용을 검출하는 방법의 개략도이다;
그리고
도면4는 바람직한 실시 예를 지원하기 위해(support) 준비된 컴퓨터 시스템의 블록 다이어그램이다,
1. 오버뷰(overview)
본 발명의 바람직한 실시 예는 어플리케이션 가상 환경의 기본 요소들(basic elements)을 최대한 이용하여(leverage) 소프트웨어의 설치 및 사용을 검출하는 것에 관한 전술한 문제들을 해결한다. 설명을 하기 위한 예로서, 바람직한 실시 예는 IBM progressive Deployment System을 참조하여 설명한다. 하지만, 여기서 설명되는 바람직한 실시 예는 또한 광범위한 어플리케이션 가상 환경들 적용 가능함을 이해해야 한다.
따라서 전술한 IBM Progressive Deployment System(PDS) 예를 사용할 경우, 바람직한 실시 예는 IBM Tivoli 라이선스 컴플라이언스 관리자 아키텍쳐(License Compliance Manager architecture)에 기초한다. 마찬가지로, IBM Tivoli 라이선스 관리자는 오직 예시의 목적으로만 사용된다. 특히 바람직한 실시 예는 결코 IBM Tivoli 라이선스 관리자에 한정되는 것이 아님을 이해해야 한다. 다시 말하면, 바람직한 실시 예는 모든 라이선스 관리자 툴에 대하여 동등하게 적용이 가능하다는 점을 이해해야 할 것이다. IBM Tivoli 라이선스 관리자는 분산 플랫폼들(distributed platforms) 상에서 소프트웨어 인벤토리(inventory), 사용측정(use metering), 그리고 라이센스 부여(allocation) 서비스를 제공하는 라이센스 툴(license tool)이다. 이들 모든 기능들은 소프트웨어 카탈로그 (catalog)에 정의된 정보 상에 설치된 혹은 사용 중인 소프트웨어 제품들에 관한 인식(recognition)을 기초로 한다.
도 1을 참조하면, 라이센스 관리자(10)을 채용하는 네트워크를 3 층으로된 아키텍쳐를 갖는데, 이는 관리 센터(administration center) (12) , 런타임 서버(run-time server)(14) 그리고 타겟(target) 컴퓨터 (16)을 포함한다. 관리 센터(12)는 설치 상세 정보들(즉, 레지스트리 키들) 및 사용 서명들(즉, 실행 가능한 파일들)을 기록하는(listing), 하나 또는 그 이상의 카탈로그들(catalogs)을 포함한다. 사용 중에는 상기 카탈로그들의 사본들은 타겟 컴퓨터들(16)으로 다운로드 된다(이는 상기 카탈로그(들)의 로컬 사본들을 형성하기 위해서이다). 각각의 타겟 컴퓨터(16) 적어도 하나의 에이전트(agent)를 포함하는데, 이는 소프트웨어를 상기 카탈로그의 로컬(local) 사본에 있는 상세정보들과 매칭 함으로써 소프트웨어 설치 및 사용을 검출한다.
어플리케이션 가상 환경에 관한 주요 원리들 중 하나는 어플리케이션이 하나의 또는 그 이상의 패키지들(PDS에서 애싯들로 불리운다("Assets" in PDS)) 로 패키지화될 수 있다는 아이디어에 기초한다는 것이다. 각각의 패키지는 상기 어플리케이션의 다수의 조각들(pieces)(PDS에서 샤드들로 불리운다(shards in PDS))을 포함하는데, 여기서 개별 조각(individual piece)은 다이스(dice)로 알려져 있다. 도2를 참조하면, 개별 다이스들은 샤드 저장소(shard repository) (22)에 저장된다(retained).그러므로, 사용 시에, 사용자는 상기 저장소에 저장된 어플리케이션 다이스들로부터 패키지들을 생성한다. 각각의 패키지는 또한 메인 다이스(main dice)를 포함하는데, 이는 자신이 표시하는(represent) 제품 및 다른 다이스들에 관한 관련 정보를 포함한다(PDS에서 상기 샤드들이 “샤드 저장소”에 저장될 때, 상기 메인 다이스는 루트 메타샤드(root metashard)라고 불린다). 상기 메인 다이스가 다른 모든 패키지된 어플리케이션들 중에서 유일하게(uniquely) 자신의 어플리케이션을 식별하는 것을 확실하게 하기 위해(to ensure), 상기 메인 다이스는 그 이름이 식별 서명(Identifying Signature)인 파일이 된다.
도1을 다시 참조하면, 프로그레시브(progressive) 다운로드는 상기 다이스들이, 관련 어플리케이션의 요건들에 따라, 하나씩(one by one) 타겟(target)컴퓨터(16)에 다운로드 되는 프로세스를 의미한다. 그런데, 타겟 컴퓨터(16)에 다운로드 되는데 있어서 상기 메인 다이스는 첫번째가 된다. 그 다음, 상기 메인 다이스는 파일로서 수신 타겟(target) 컴퓨터(16) 상에 로컬로 저장되며, 그 이름은 상기 메인 다이스 그 자신의 이름이 된다. 대부분의 어플리케이션 가상 환경들(PDS와 같은)에서,상기 실행 가능한 파일이 일단 실행되면, 네이티브(native) 어플리케이션으로서 실행 중인 다른 어플리케이션들에 의해서 하나의 프로세스로 관찰될 수(viewed) 있다(PDS에서 상기 프로세스의 이름은 pds-<name-of-the-exe-file>이 된다).
2. 구체적인 설명.
바람직한 실시 예는, 어플리케이션이 배치되어 실행될 때, 상기 어플리케이션의 설치를 식별하기 위해서 타겟 컴퓨터(16)에 존재하는, 메인 다이스의 상기 식별 서명을 사용한다. 특히, 바람직한 실시 예는 “가상 설치들”(Virtualized installations)을 식별하기 위해 상기 식별 서명을, 새로운 타입의 서명으로, 관리 센터 (12)에 있는 카달로그에 추가한다. 이러한 소위 가상 설치 서명 이라는 것은 어플리케이션이 가상적으로 타겟 컴퓨터에 설치되고 그 컴퓨터에서 실행되고 있음을 플래그(flag) 한다.따라서 처음으로 가상 어플리케이션이 타겟 머신에서 실행될 때,(그리고 메인 다이스가 다우로드 되어 파일로서 저장되어 있을 때), 상기 수신 타겟 머신에 있는 에이전트(agent)는 상기 가상 설치를 검출하기 위해 이 파일을 타겟 머신의 파일 시스템에서 발견하여(discover), 그것을 상기 카탈로그의 로컬 사본 내의 대응하는(corresponding) 엔트리(entry)와 매치 (match)시킬 수 있다.
도2를 참조하면, 사용시, 제 1 사용자(18)(예를 들어, 시스템 관리자)이 (예를 들어) 두 개의 어플리케이션들(App1, App2)을 두 개의 패키지들(asset1, asset2)로 변환하기 위해 (예를 들어) PDS 준비자(preparer)를 사용한다고 하자. 상기 패키지들 및 각각의 어플리케이션들(App1, App2)에 대한 연관된 메인 다이스들(Digest1, Digest2)은 저장소 (22)에 저장된다. 서버 카탈로그(예를 들어, TLCM 카탈로그 관리자)에는 두 개의 새로운 엔트리들이 제공되는데, 이들은 각각의 다이스들을 위한 것이며, 모니터링 되고 있는 제품들을 표시한다. 주기적 시간 간격(interval)으로, 상기 카탈로그의 사본들(그리고 상기 메인 다이스(Digest1, Digest2)의 연관된사본들(26))은 가능성이 있는(potential) 타겟 컴퓨터들(표시 되어있지 않음)에 대하여 어플리케이션들을 위해 복사된다.
사용시, 제 2 사용자(28)의 브라우저(browser)(타겟 머신에 있는)는 저장소(22)를 접속하여(directed), 제2 사용자 (28)에게 모든 이용 가능한 어플리케이션들의 목록 (30)을 보여준다. 사용자가 특정한 어플리케이션을 선택했을 때 그에 관련된 다이스들이 타겟 머신으로 다운로드 된다( 예를 들어, PDS 배달자 (PDS deliverer)를 통해서). 다이스들의 최소 필요 세트가 타겟 머신에 다운로드 되었을 때, 상기 어플리케이션은 거기서 실행될 수 있다. 타겟머신 상의 에이전트(32)는, 예를 들어, 타겟 머신의 TLCM소프트웨어 스캔(Scan)을 수행한다. 이 스캔 동안, 에이전트(32)는 상기 메인 다이스의 로컬로 저장된 사본을 서버 카탈로그(24) 로부터 다운로드된 카탈로그 안에 있는 식별 서명의 로컬 사본과 비교한다.
바람직한 실시 예는 또한 어플리케이션 가상 환경에서 소프트웨어 사용을 검출하기 위해 두 가지의 메카니즘(mechanism)을 제공한다. 도3을 참조하면, 제 1 메카니즘에서, 바람직한 실시 예는 가상 어플리케이션(virtualized application)을 네이티브 프로세스(native process)를 통해서 검출하는데, 이 프로세스에서 바람직한 실시 예는 그 이름이 상기 메인 다이스의 이름과 매치하는 어플리케이션을 (마스터 카탈로그(42)의 로컬(런타임) 사본 (40)에서) 찾기 위해서 상기 타겟 컴퓨터 상에서 실행되는 액티브 프로세스를 살핀다(즉, 타겟 컴퓨터(34) 상의 에이전트는 액티브 프로세스들의 목록을 획득한다). 그렇게 함에 있어서, 이 접근 방식은 특별 논리(special logic)를 사용하여 가상 환경 수정들(virtual environment modifications)의 효과를 제거한다(즉, PDS에서 "pds-" 잘라내어 오리지널 파일의 이름을 검색한다).
제 2 메카니즘에서는, 대상 어플리케이션(the application of interest)에 측정 장치가 제공된다(instrumented). 다시 말하면, 대상 어플리케이션은 벤더(vendor)에 의하여 수정되어 이 어플리케이션이 실행을 시작하면 이를 라이선스 관리자에게 알려준다. 그러므로 라이센스 관리자는 상기 어플리케이션이 실행 중인지를 결정하기 위해서 상기 프로세스 목록을 체크 할 필요가 없다.
범용 컴퓨터 시스템(Generic Computer System).
도 4를 참조하면, 본 발명의 바람직한 실시 예를 지원하기 위해 준비된 범용 컴퓨터 시스템 (50)은 시스템 버스(52)에 병렬로 연결된 여러 유닛(unit)에 의해 구성된다. 자세히 설명하면,하나 혹은 그 이상의 마이크로 프로세서들 (μp) (54)는 컴퓨터 (50) 동작(operation)을 제어하고; 램(RAM)(56)은 마이크로프로세서 (54)에 의해 직접적으로 작업 메모리(working memory)로서 사용되며, 그리고 롬(ROM)(58)은 컴퓨터(50)의 부트스트랩(bootstrap)을 위한 기본코드(Basic code)를 저장한다. 주변장치 유닛들은 로컬버스(60주변에 클러스터(cluster) 되어있다)(각각의 인터페이스(interface) 수단에 의해서). 특히, 대용량의 메모리는 하드디스크(64)와 시디롬(CD-ROMs)(66)을 읽기위한 드라이브(64)로 이루어져 있다. 게다가, 컴퓨터(50)은 입력장치들(68)(예를 들면 키보드 그리고 마우스)과, 출력장치들 (70)(예를 들어서 모니터와 프린터와 같은)을 포함한다.네트워크 인터페이스 카드(network interface card,(NIC))(72)는 컴퓨터 (50)을 네트워크에 연결하기 위해 사용된다.브리지(bridge) 유닛(74)는 시스템 버스(52)와 로컬 버스(60)을 인터페이스한다. 각각의 마이크로프로세서 (54)와 브리지 유닛 (74)는 정보를 전송하기 위해 시스템 버스 (52)에 대한 접근을 요청하는 마스터(master) 에이전트들로서 동작(operate)할 수 있다. 중재자(arbiter)(76)은 시스템 버스(52) 에 대한 접근 승인을 상호 배타(mutual exclusion)로 관리(managing)한다.
시스템이 다른 토폴러지(topology)을 가지고 있거나 혹은 다른 네트워크들에 기반을 두고 있더라도 비슷하게 적용할 수 있다. 또한 컴퓨터들은 다른 구조를 갖거나, 균등의 유닛들을 포함하거나 혹은 다른 데이터 프로세싱 실체들(data processing entities)들을 포함할 수 있다(예를 들어 PDA, 핸드폰, 이와 유사한 것).
수정들과 변경들이 본 발명의 범위(scope)를 벗어남이 없이 상기 실시 예에 대하여 만들어질 수 있다.

Claims (9)

  1. 제 1 저장소(22)에 저장되는 다수의 어플리케이션 콤포넌트 및 하나의 식별 콤포넌트를 포함하는 소프트웨어 어플리케이션의 설치를 어플리케이션 가상 환경에서 검출하는 방법에 있어서, 상기 방법은
    상기 식별 콤포넌트로부터 식별자(identifier)를 제 2 저장소(24)에 저장하는 단계(storing) ;
    로컬 식별자 저장소들을 형성하기 위하여, 상기 제 2 저장소(24)의 사본을 다수의 수신 컴퓨터들(16)에 제공하는 단계(providing) ;
    상기 수신 컴퓨터들(16) 중 하나 혹은 그 이상을 선택하는 단계(selecting) ;
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16)의 상기 하나 혹은 그 이상의 로컬 식별자 저장소들로부터 상기 어플리케이션의 상기 식별자를 추출하는 단계(extracting) ;
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들이 상기 식별자의 매칭 사본(a matching copy)를 포함하는지를 확인하기 위하여 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들을 조회하는 단계(interrogating) ;
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16) 상에서 상기 식별자의 매칭 사본이 발견되는 경우, 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16) 상에 상기 소프트웨어 제품이 설치되었다고 결정하는 단계를 포함하는 방법.
  2. 청구 항 1에서,
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16)의 상기 하나 혹은 그 이상의 로컬 식별자 저장소들로부터 상기 어플리케이션의 상기 식별자를 추출하는 단계(extracting) ;
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들이 상기 식별자의 매칭 사본(a matching copy)를 포함하는지를 확인하기 위하여 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들을 조회하는 단계(interrogating) ; 및
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16) 상에서 상기 식별자의 매칭 사본이 발견되는 경우, 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16) 상에 상기 소프트웨어 제품이 설치되었다고 결정하는 단계들은
    상기 선택된 수신 컴퓨터(16)에서의 에이젼트(32)에 의해서 이들 단계들을 실행하는 단계를 포함하는 방법.
  3. 청구 항 1혹은 청구 항 2에서,
    상기 식별 콤포넌트로부터 식별자(identifier)를 제 2 저장소(24)에 저장하는 단계(storing)는 상기 식별 콤포넌트의 이름으로부터 상기 식별자(identifier)를 형성하는 이전의 단계(preceding step)을 포함하는
    방법.
  4. 청구 항 1, 2, 3 중 어느 하나에 있어서,
    상기 어플리케이션을 다수의 어플리케이션 콤포넨트들로 분할하는 단계(dividing);
    상기 어플리케이션에 대해 식별 콤포넨트를 제공하는 단계;
    상기 어플리케이션 콤포넨트들 및 상기 식별 콤포넨트를 제1 저장소(22)에 저장하는 단계의 이전의 단계들을 포함하는 방법.
  5. 어플리케이션 가상 환경에서 소프트웨어 어플리케이션의 사용을 검출하는 방법에 있어서, 상기 방법은 :
    청구항 1에서 청구항 4까지의 청구항 중 어느 한 항에서 청구된 방법을 실행하는 단계를 포함 하되 ;
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들이 상기 식별자의 매칭 사본(a matching copy)를 포함하는지를 확인하기 위하여 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들을 조회하는 단계(interrogating) ; 및
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16) 상에서 상기 식별자의 매칭 사본이 발견되는 경우, 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(16) 상에 상기 소프트웨어 제품이 설치되었다고 결정하는 단계들을
    상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(34) 상에서 현재 실행중인 프로세스들의 목록이 상기 식별자의 매칭 사본(a matching copy)를 포함하는지를 확인하기 위하여 상기 목록을 조회하는 단계(interrogating) ; 및
    매칭 사본이 발견되는 경우, 상기 하나 혹은 그 이상의 선택된 수신 컴퓨터들(34) 이 현재 상기 소프트웨어 어플리케이션이 사용중임을 결정하는 단계들로 교체하는 단계(replacing)를 포함하는 방법.
  6. 청구항1에서 청구항 4까지의 청구항들 중 어느 하나에서 청구된 방법의 단계들을 수행하도록 구성된 콤포넨트들(components)을 포함하는 어플리케이션 가상 환경에서의 소프트웨어 설치를 검출하기 시스템.
  7. 청구항5에서 청구된 방법의 단계들을 수행하도록 구성된 콤포넨트들(components)을 포함하는 어플리케이션 가상 환경에서의 소프트웨어 설치를 검출하기 시스템.
  8. 청구항1에서 청구항 5까지의 청구항들 중 어느 하나에 따른 방법을 상기 컴퓨터가 수행하도록 하기 위한 컴퓨터로 판독 가능한 프로그램 수단을 구체적으로(tangibly) 채용하는 컴퓨터 프로그램 제품으로서, 컴퓨터 머신에 의해 판독될 수 있는 매체에 저장된 컴퓨터 프로그램 제품.
  9. 청구항1에서 청구항 5까지의 청구항들 중 어느 하나에 따른 방법을 수행하기 위한 데이터 처리 시스템에서 배치된(deployed) 서비스 .
KR1020107021661A 2008-03-20 2009-02-02 어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템 KR20100138980A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08153051 2008-03-20
EP08153051.1 2008-03-20

Publications (1)

Publication Number Publication Date
KR20100138980A true KR20100138980A (ko) 2010-12-31

Family

ID=40565228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107021661A KR20100138980A (ko) 2008-03-20 2009-02-02 어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템

Country Status (6)

Country Link
US (2) US8627293B2 (ko)
EP (1) EP2255284B1 (ko)
JP (1) JP5285761B2 (ko)
KR (1) KR20100138980A (ko)
CN (1) CN101978354B (ko)
WO (1) WO2009115367A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140044991A (ko) * 2012-09-25 2014-04-16 삼성전자주식회사 사용자 디바이스에서 어플리케이션 관리 방법 및 장치

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011069784A1 (en) 2009-12-11 2011-06-16 International Business Machines Corporation System and method of managing software content in virtual desktop environments
CN101789888B (zh) * 2010-01-12 2012-04-11 腾讯科技(深圳)有限公司 一种软件安装的检测方法和装置
US9176721B2 (en) * 2011-04-21 2015-11-03 Hewlett-Packard Development Company, L.P. Installing an application into a virtualized environment
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US9208041B2 (en) 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US8763159B1 (en) * 2012-12-05 2014-06-24 Parallels IP Holdings GmbH System and method for application license management in virtual environments
US9230069B2 (en) 2013-04-16 2016-01-05 International Business Machines Corporation Execution-based license discovery and optimization
US10129328B2 (en) * 2013-09-26 2018-11-13 Oracle International Corporation Centralized management of webservice resources in an enterprise
US10909551B2 (en) * 2013-12-23 2021-02-02 The Nielsen Company (Us), Llc Methods and apparatus to identify users associated with device application usage
CN105094862B (zh) * 2014-05-07 2019-04-09 阿里巴巴集团控股有限公司 检测应用程序是否安装的方法和浏览器
EP3035223A1 (en) * 2014-12-16 2016-06-22 SFNT Germany GmbH Method and control system for controlling an execution of a software application on an execution platform
US10089095B2 (en) * 2015-05-06 2018-10-02 Mcafee, Llc Alerting the presence of bundled software during an installation
CN106648835B (zh) * 2016-12-26 2020-04-10 武汉斗鱼网络科技有限公司 检测Android应用程序在安卓模拟器中运行的方法及系统
US11163557B2 (en) * 2019-11-08 2021-11-02 International Business Machines Corporation Automated techniques for detecting the usage of software applications in a computing environment using configuration objects
CN111538985A (zh) * 2020-01-22 2020-08-14 中国银联股份有限公司 Android应用运行环境检测方法及其装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2774495A (en) * 1994-06-14 1996-01-05 Edward A Smith Apparatus and method for controlling the registration, paid licensing and metered usage of software products
JP3540543B2 (ja) * 1996-05-20 2004-07-07 富士通株式会社 ソフトウェアコピー処理装置、ソフトウェアコピー処理方法およびソフトウェアをコピーするプログラムを記録したコンピュータ読み取り可能な記録媒体
US6453334B1 (en) * 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US20020124245A1 (en) * 2000-08-14 2002-09-05 Alvin Maddux Method and apparatus for advanced software deployment
AU2001294677A1 (en) * 2000-09-22 2002-04-02 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US8473922B2 (en) * 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US7313512B1 (en) * 2002-10-18 2007-12-25 Microsoft Corporation Software license enforcement mechanism for an emulated computing environment
JP3862652B2 (ja) * 2002-12-10 2006-12-27 キヤノン株式会社 印刷制御方法及び情報処理装置
US7814477B2 (en) * 2003-05-20 2010-10-12 Oracle International Corp. Packaging system for customizing software
US20050044546A1 (en) * 2003-07-03 2005-02-24 Euroform A/S Method of allowing printing from a network attached device
US20050108707A1 (en) * 2003-11-14 2005-05-19 Taylor Thomas M. Systems and methods for creating and managing a virtual retail store on end-user client computers within a network
US20060004667A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for collecting operating system license revenue using an emulated computing environment
US7487494B2 (en) * 2004-08-02 2009-02-03 International Business Machines Corporation Approach to monitor application states for self-managing systems
US7506338B2 (en) * 2004-08-30 2009-03-17 International Business Machines Corporation Method and apparatus for simplifying the deployment and serviceability of commercial software environments
US8819639B2 (en) * 2004-09-15 2014-08-26 Lakeside Software, Inc. System for selectively blocking execution of applications on a computer system
CN1755628B (zh) * 2004-09-30 2010-04-07 联想(北京)有限公司 操作系统启动过程中自动安装软件的方法
EP1834233A4 (en) * 2004-11-10 2009-04-22 Lehman Brothers Inc METHODS AND SYSTEM FOR MEASURING SOFTWARE
JP4656962B2 (ja) * 2005-02-16 2011-03-23 日本電信電話株式会社 アプリケーションサービス提供システム、サービス管理装置、ホームゲートウェイおよびアクセス制御方法
US8838974B2 (en) * 2005-07-15 2014-09-16 The Mathworks, Inc. System and method for verifying the integrity of read-only components in deployed mixed-mode applications
CN1937628B (zh) * 2005-09-21 2010-04-07 国际商业机器公司 用于管理数据处理目标实体的方法和系统
US8799870B2 (en) * 2005-12-16 2014-08-05 International Business Machines Corporation Method system and computer program for metering usage of software products based on real-time benchmarking of processing power
US7913252B2 (en) * 2006-04-11 2011-03-22 Installfree, Inc. Portable platform for executing software applications in a virtual environment
JP5090790B2 (ja) * 2006-06-07 2012-12-05 株式会社リコー 機器、ライセンス管理方法、ライセンス管理プログラム、及びライセンス管理システム
US8161473B2 (en) * 2007-02-01 2012-04-17 Microsoft Corporation Dynamic software fingerprinting
US8464245B2 (en) * 2007-06-27 2013-06-11 Flexera Software Llc Method and system for software virtualization directly from an installation package
US8156477B2 (en) * 2007-11-21 2012-04-10 Oracle America, Inc. Method and system for assessing virtualization capability of a software application
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140044991A (ko) * 2012-09-25 2014-04-16 삼성전자주식회사 사용자 디바이스에서 어플리케이션 관리 방법 및 장치

Also Published As

Publication number Publication date
US20120185845A1 (en) 2012-07-19
EP2255284A1 (en) 2010-12-01
JP5285761B2 (ja) 2013-09-11
JP2011514604A (ja) 2011-05-06
US8677326B2 (en) 2014-03-18
US20090241105A1 (en) 2009-09-24
CN101978354A (zh) 2011-02-16
CN101978354B (zh) 2014-12-03
EP2255284B1 (en) 2017-01-11
US8627293B2 (en) 2014-01-07
WO2009115367A1 (en) 2009-09-24

Similar Documents

Publication Publication Date Title
KR20100138980A (ko) 어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템
US8010947B2 (en) Discovering multi-component software products based on weighted scores
JP4990055B2 (ja) ハードウェアプラットフォームクラスの識別を高速化するシステム及び方法
US8539445B2 (en) Method for generating a robust software signature
CN101488173B (zh) 支持零宕机的可信虚拟域启动文件完整性度量的方法
US8521865B2 (en) Method and apparatus for populating a software catalog with automated use signature generation
US11086618B2 (en) Populating a software catalogue with related product information
WO2012098478A1 (en) Updating software
KR20070049166A (ko) 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템
EP2380079B1 (en) Parallel tasking application framework
GB2513528A (en) Method and system for backup management of software environments in a distributed network environment
CN112860282A (zh) 集群插件的升级方法、装置和服务器
US20150347752A1 (en) System, method, and computer program product for conditionally preventing use of hardware virtualization
US8099628B2 (en) Software problem identification tool
CN105701405B (zh) 对软件程序集的本机图像进行防病毒检查的系统和方法
JP2018055481A (ja) ログ監視装置、ログ監視方法及びログ監視プログラム
TW200817902A (en) Supporting flash access in a partitioned platform
JP2012208752A (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
US8209443B2 (en) System and method for identifying lost/stale hardware in a computing system
CN109062580B (zh) 一种虚拟化环境部署方法和部署装置
Schmieders et al. Architectural runtime models for privacy checks of cloud applications
CN114661427B (zh) 部署容器化应用服务的计算集群的节点管理方法及系统
Both D-Bus and udev
CN113824804A (zh) 一种关键词检测的方法及相关装置
JP2011113424A (ja) 仮想サーバ提供システム

Legal Events

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