KR20100002259A - 관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템 - Google Patents

관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20100002259A
KR20100002259A KR1020097022023A KR20097022023A KR20100002259A KR 20100002259 A KR20100002259 A KR 20100002259A KR 1020097022023 A KR1020097022023 A KR 1020097022023A KR 20097022023 A KR20097022023 A KR 20097022023A KR 20100002259 A KR20100002259 A KR 20100002259A
Authority
KR
South Korea
Prior art keywords
software
product
files
information
data processing
Prior art date
Application number
KR1020097022023A
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 KR20100002259A publication Critical patent/KR20100002259A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

복수의 컴퓨터들 상의 소프트웨어 제품들의 존재를 모니터하는 소프트웨어 어플리케이션들에 소프트웨어 카탈로그를 파퓰레이트(populate)하기 위한 방법 및 시스템이 개시된다. 그러한 방법은 관리자의 한정된 매뉴얼 개입(manual intervention)을 갖는 소프트웨어 카탈로그를 파퓰레이트하는 것을 목적으로 한다. 본 발명은 관련된 시그너쳐 및 소프트웨어 제품들의 정의들을 포함하는 포괄적인 지식 베이스(카탈로그)를 만들어내고 유지하는 비용을 줄인다. 소프트웨어 제품들에 관한 정보 및 그들의 관련된 시그너쳐는 정보를 보유(contain)하는 어떤 특정 파일들(예, XML 파일들) 및/또는 다른 제품들에 대한 포인터들을 사용하는 프로세스를 통해 획득된다.

Description

관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템{A METHOD AND SYSTEM FOR POPULATING A SOFTWARE CATALOGUE WITH RELATED PRODUCT INFORMATION}
본 발명은 데이터 처리 분야와 관련된다. 더 상세하게는, 본 발명은 분산된 데이터 처리 시스템 상에서 소프트웨어 제품들의 존재를 탐색(detect)하기 위한 방법들 및 시스템들과 관련된다. 특히, 본 발명은 카탈로그 파퓰레이션(population) 및 지식 수집(knowledge gathering)의 액티비티(activity)를 다룬다. 본 발명은 그 방법을 수행하기 위한 컴퓨터 프로그램과 더 관련되고, 그 프로그램을 구현하는 제품과 관련된다. 더 나아가, 본 발명은 또한 그러한 방법 및 제품에 대응되는 장치와 관련된다.
시스템 관리 분야에서 동작하는 소프트웨어 어플리케이션들에서 그들의 기능은 미리 정의된 세트의 정보에 기초한다. 이는 예를 들어 소프트웨어 인벤터리 제품들(Software Inventory products)의 경우이다. 소프트웨어 인벤터리 제품들의 예로서는 IBM사(International Business Machines Corporation)의 IBM Tivoli 구성 매니저(IBM Tivoli Configuration Manager, ITCM)가 있는데, 이는 파일 시스템 상의 일정한 파일의 존재를 일정한 제품과 상관(correlate)시키는 것을 필요로 한다. 이 상관 정보는 어플리케이션 저장소(repository) 내에 저장된다. 또 하나의 예는 라이선스 관리 제품들(license management products)의 경우이다. 라이선스 관리 제품의 예로서는 IBM사의 IBM Tivoli 라이선스 매니저(IBM Tivoli License Manager, ITLM)이 있는데, 여기서 실제 프로그램 실행(myProgram.exe)에 관한 정보는 미리 정의된 제품과 상관되는 것을 필요로 한다.
또 하나의 예는 어플리케이션 모니터링 디시플린(Application Monitoring discipline)이며, 여기서 관리 시스템(management system)은 서버들 상에서 실행 중인 어플리케이션들의 상태를 모니터하기 위해 사용된다. 이 경우, 각각의 어플리케이션은 어플리케이션 상태를 체크하기 위한 자신의 방법과, 실행들을 시작 및 중지하기 위한 자신의 방법을 갖고 있으므로, 관리 시스템은 모니터된 어플리케이션 인터페이스 각각을 한번에 하나 씩(one by one) 알 필요가 있다.
대규모 환경을 다루는 경우 이 미리 정의된 정보의 세트를 셋업하고 유지관리하는 것은, 영향을 받는 시스템 관리 어플리케이션들에게는 제한 인자(limiting factor)로서 작용할 수 있다.
이 정보는 관리 디시플린 대상이 되는 어플리케이션들을 개발하는 소프트웨어 개발 팀들로부터 수집될 필요가 있다. 그런 다음, 그 정보는 보통은 지식 베이스(Knowledge Base, KB)로 알려진 데이터베이스들 내에 저장되고 관리될 필요가 있다. 최종적으로, 그 정보는 KB로부터 시스템 관리 어플리케이션이 소비할 수 있는 형식으로 추출될 필요가 있다.
보통 이 KB는 소프트웨어 제품들에 대한 정의들(예, 제품 명칭들 및 버전) 및 관련된 시그너쳐(signature)를 포함하는 카탈로그의 형태이다. 이 소프트웨어 카탈로그는 관리되는 시스템들(managed systems) 상에서 발견될 수 있는 모든 알려진 제품들의 목록을 열거한다. 각 제품은, 그의 실행(running)을 표시하는 하나 또는 그 이상의 실행가능한 모듈들에 의해 식별될 수 있다. 예를 들어, 라이선스 매니저 제품의 경우, 백그라운드(background)에서 작업 중인 라이선싱 에이전트(licensing agent)는 론치된(launched) 실행가능한 모듈들을 탐색하고, 그런 다음 그 라이선싱 에이전트는 그 소프트웨어 카탈로그를 통해 대응되는 제품들을 식별한다. 그 카탈로그는 "파퓰레이트(populated)" 될 필요가 있고, 이는 보통은 비용이 많이 드는 액티비티이다.
인벤터리 또는 라이선싱 목적을 위해 인스톨된 소프트웨어의 발견(discovery)을 수행하는 몇몇 IT 관리 솔루션들이 존재한다. 특히 효과적인 소프트웨어 발견의 한 형태는, 발견되어야 하는 각 제품을 위한 미리 정의된 시그너쳐를 이용하는 것이다. 시그너쳐라는 것은, 주어진 컴퓨터 상에서 하나 또는 그 이상의 소프트웨어 제품의 존재를 결정하기 위해 소프트웨어 발견 어플리케이션에 의해 소비(consume)될 수 있는 어떤 종류의 정보이다. 시그너쳐의 전형적이고 구체적인 간단한 구현(implementation)은, 중요 어플리케이션 파일의 파일 크기 및 파일 명칭을 명시하는 것이다. 이 경우, 매칭 특징들을 갖는 파일을 탐색하는 것은 시그너쳐가 매치되도록 할 것이고, 따라서 관련된 소프트웨어 제품이 인스톨되어 있다는 것을 나타낼 것이다. 소프트웨어 발견에 대한 시그너쳐 기반의 접근법의 한 가지 이점은, 관리 어플리케이션에 의해 시그너쳐의 매칭이, 발견되고 있는 엔티 티(entity)(소프트웨어 제품)의 정확한 정의(명칭, 버전 등)와 상관될 수 있다는 것이다.
그러므로 인스톨된 소프트웨어에 대한 시그너쳐 기반의 발견을 이용하는 소프트웨어 인벤터리 어플리케이션은 제품의 포괄적인 지식 베이스 및 시그너쳐 정의들에 억세스할 필요가 있다. 이 접근법의 과제는 다음의 것들에 관한 최신의(up-to-date) 내용을 유지하는 것이다.
- 계속해서 이용가능하게 되는 새로운 소프트웨어 제품들;
- 현재의 소프트웨어 제품들에 대한 유지관리(maintenance) 갱신(updates).
지식 베이스의 값은 그의 내용의 정확성 및 커버리지(coverage)에 직접적으로 비례하고, 따라서 문제는 알맞은 비용으로 정확성 및 커버리지를 어떻게 보장할 것인가이다.
따라서, 지식 베이스 관리 오버헤드(overhead)를 감소시키며, 실행시(at runtime) 필요한 정보를 다루기 위한 확장가능(scalable)하고 효율적인 방법을 도입하는 것을 도울 수 있는 개선된 방법이 매우 요구된다.
본 발명의 목적은 상기 단점들을 개선할 수 있는 방법 및 시스템을 제공하는 것이다.
본 발명은 소프트웨어 제품 식별자들(identifiers)을 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법을 제공하는 것이다. 상기 소프트웨어 제품 식별자들은 복수의 데이터 처리 시스템들 상에서 발견되고 있는 소프트웨어 제품들에 대응된다. 그 방법은, 데이터 처리 시스템 상에 인스톨되어 있는 제품을 표시하는 파일들의 세트의 존재를 탐색하기 위해 상기 복수의 데이터 처리 시스템의 파일 시스템들을 스캔하는 단계 - 상기 파일들의 세트는 적어도 하나의 참조되는 소프트웨어 제품 상에 정보를 보유(contain)하는 적어도 하나의 매니페스트 파일(manifest file)을 포함함; 상기 매니페스트 파일의 정보를 사용하여 상기 참조되는 제품과 관련된 제품 시그너쳐(signature)를 결정하는 단계; 및 상기 소프트웨어 카탈로그 상에 상기 시그너쳐(signature) 및 관련된 소프트웨어 제품 식별자를 저장하는 단계를 포함한다.
본 발명의 다른 측면은 위에서 설명된 방법을 수행하기 위한 컴퓨터 프로그램을 제공하는 것이다.
본 발명의 또 다른 측면은 그러한 프로그램을 구체화하기 위한 프로그램 제품을 제공하는 것이다.
나아가, 본 발명의 다른 측면은 상기 방법을 구체화하기 위한 대응되는 장치를 제공하는 것이다.
본 발명의 특징들로서 여겨질 수 있는 새로운 특성들은 첨부되는 청구항들에 제시되어 있다. 그러나, 발명 그 자체 및 발명의 여러가지 관련 목적들 및 이점들은 이하의 상세한 설명들을 참조하고 첨부되는 도면들과 관련하여 읽혀짐으로써 가장 잘 이해될 것이다.
도 1은 본 발명의 방법이 적용될 수 있는 데이터 처리 시스템의 개략적인 블록 다이어그램이고,
도 2는 시스템의 일반적 컴퓨터의 기능적 블록들을 보여주며;
도 3은 방법을 실행하기 위해 사용될 수 있는 주요 컴포넌트들을 설명하며;
도 4는 방법의 예시적 구현과 관련된 액티비티들(activities)의 흐름을 설명하는 다이어그램을 보여준다.
특히 도 1을 참조하면, 소프트웨어 인벤터리 시스템을 구현하고 있는 분산된(distributed) 구조를 갖는 데이터 처리 시스템(100)이 도시되어 있다. 시스템(100)은 다수의 엔드포인트들(105)을 포함하며, 이 엔드포인트들(105)은 여러 세트들로 그룹지어진다. 엔드포인트들(105)은 워크스테이션들, 서버들, 랩탑들 및 더 일반적인 어떤 종류의 데이터 처리 시스템들일 수 있으며, 이들에는 복수의 소프트웨어 제품들이 인스톨된다. 엔드포인트들(105)은 네트워크(110)(예를 들면, LAN)를 통해 서로 간에 연결된다. 여러 세트의 엔드포인트들(105)은 네트워크(120)(예를 들어, 인터넷-기반의)를 통해 원격 시스템 관리 서버(115)와 통신하며; 이 시스템 관리 서버(115)는 시스템(100) 중앙 저장소(central repository)를 실행(implement)하는데, 이 중앙 저장소에서 인벤터리 데이터가 수집되고 관리된다. 위에서 언급한 바와 같이, 본 발명은 라이선스 관리 시스템(license management system)에서 구현될 수 있고, 더 일반적으로는 인벤터리 액티비티(inventory activity)를 요하는 어떤 시스템에서 실행될 수 있다. 이러한 시스템으로는, 예를 들면, 각각의 워크스테이션의 현재 상태를 인벤터리(inventory) 작업한 후, 복수의 워크스테이션에 픽스(fixes) 또는 인핸스먼트(enhancements)를 분배할 필요가 있는 소프트웨어 배치(deploy) 시스템이 있다. 또 다르게는 구성 관리 시스템(configuration management system) 내에서도 사용될 수 있다.
도 2에서 보여지는 바와 같이, 시스템의 일반적인 컴퓨터(워크스테이션들, 로컬 서버들, 또는 시스템 관리 서버들)가 참조번호 150으로 도시되어 있다. 컴퓨터(150)는 시스템 버스(153)에 병렬로 연결되는 몇몇의 유닛들에 의해 이루어진다. 상세하게는, 하나 또는 그 이상의 마이크로프로세서들(μP)(156)은 컴퓨터(150)의 동작을 제어하며, RAM(159)은 마이크로프로세서들(156)에 의해 작업 메모리(working memory)로서 직접 사용되며, ROM(162)은 컴퓨터(150)의 부트스트랩(bootstrap)을 위한 기본 코드를 저장한다. 주변 유닛들은 로컬 버스(165)를 중심으로 하여 클러스터(cluster)된다(각각의 인터페이스들에 의해). 특히, 대규모 메모리는 하드디스크(168) 및 CD-ROM들(174)을 읽기 위한 드라이브(171)로 구성된다. 또한, 컴퓨터(150)는 입력 디바이스들(177)(예를 들면, 키보드 및 마우스), 및 출력 디바이스들(180)(예를 들면, 모니터 및 프린터)를 포함한다. 네트워크 인터페이스 카드(NIC)(183)는 컴퓨터(150)를 네트워크로 연결하기 위해 사용된다. 브릿지 유닛(186)은 시스템 버스(153)를 로컬 버스(165)와 인터페이스한다. 각각의 마이크로프로세서(156) 및 브릿지 유닛(186)은 정보를 전송하기 위해 시스템 버스(153)로의 억세스를 요청하는 마스터 에이전트들로서 작용할 수 있다. 아비터(arbiter)(ARB, 189)는 시스템 버스(153)에 대해 상호 배제(mutual exclusion)로 써 억세스의 승인을 관리한다.
시스템이 상이한 토폴로지를 갖거나, 시스템이 상이한 네트워크들에 기초하는 경우, 유사한 고려사항들(considerations)이 적용된다. 이와는 달리, 컴퓨터들은 상이한 구조를 갖거나, 대응되는 유닛들을 포함하거나, 다른 데이터 처리 엔티티들(PDA, 모바일 폰 등과 같은)로 구성될 수 있다. 어떤 경우에서든, 본 발명의 솔루션은 또한 워크스테이션들의 제어가 중앙집중화되지않은(decentralized) 시스템에서 사용되기에 적합할 수 있거나, 심지어 독립형 컴퓨터(stand-alone computer)에서 사용되기에 적합할 수 있다.
이제 도 3을 참조하면, 본 발명의 바람직한 실시예의 방법을 실행하기 위해 사용될 수 있는 주요 컴포넌트들은 참조부호 300으로써 전체로 표기되었다. 정보(프로그램들 및 데이터)는 전형적으로 상이한 컴퓨터들의 하드 디스크들 상에 저장되고, 프로그램들이 실행 중일 때 대응되는 작업 메모리들 내에 로딩된다(적어도 부분적으로는).
시스템 관리 서버(115)는 통신 네트워크에 의해 연결된 몇몇의 엔드포인트들(105) 상에서 관리 동작들을 제어하고 실행한다. 엔드포인트들(105)의 세트는 서버, 워크스테이션들, 데스크톱들 또는 랩톱들을 포함하며, 이들에 인스톨되는 소프트웨어는 제품 정의(product definitions) 및 관련된 시그너쳐들의 이용가능한 베이스(base)를 확장할 목적으로 분석되어, 소프트웨어 제품들을 발견한다.
시스템 관리 서버(115)는 잠재적으로(potentially) 큰 세트의 인터커넥트된 엔드포인트들(105) 상에서 관리 동작들을 제어하며, 그리하여 각각의 컴퓨터를 물 리적으로 억세스할 필요가 없도록 한다. 이 서버 및 기초를 이루는(underlying) 시스템 기반구조는 분석 어플리케이션에 의해 요구되는 로 데이터(raw data)를 수집하는 목적을 갖는 관리되는 컴퓨터들(managed computers) 상에서 스캐닝 동작을 수행하기 위해 사용되며, 중앙 파일 서버(301)로 스캐너들에 의해 로컬로 생성된 데이터를 중앙 파일 서버(301)로 이동시키기 위해 사용된다. 여기서, 이들 데이터는 서버의 파일 시스템 상에 저장될 수 있다. 스캐닝 동작은 모든 관리되는 엔드포인트들(105) 상에서 또는 특정 서브세트(subset) 상에서 수행될 수 있다. 후자, 즉 특정 서브세트는 그들의 임무(서버들, 워크스테이션들, 데스크톱들 또는 랩톱들로서의)에 의해, 또는 실행 중인 운영 시스템에 의해 결정될 수 있다.
본 발명의 바람직한 실시예에 따르면, 위의 데이터 수집(data gathering) 방법은 IBM 소프트웨어 시그너쳐 분석기 툴(IBM Software Signature Analyzer Tool)을 사용하여 구현되지만, 유사한 결과들을 만들어 내는 다른 방법들이 대신 사용될 수 있다는 것이 당해 기술 분야에서 숙련된 자들에 의해 이해될 것이다. 이 방법은, 시스템 자체에 큰 오버헤드를 초래함이 없이 전체 시스템의 지식(knowledge)을 증가시키는 것을 돕는 메커니즘을 포함한다. 본 방법은 관리되는 어플리케이션(Managed Application)(시스템 관리 어플리케이션에 의해 관리되는 어플리케이션)이 어플리케이션 관리 매니페스트 파일(Application Management Manifest file)을 사용하여 그의 관리 인터페이스들을 매니페스트(manifest)하는 개념에 기초한다. 도 3의 블록 105는 복수의 타겟들(105)을 개괄적으로 나타내지만, 도면에서는 단지 몇 개의 매니페스트 파일들이, 그들의 관계들 및 가능한 상호 참조들(cross references)을 보여주기 위해서 표현되었다.
시스템 관리 어플리케이션은, 관리되는 어플리케이션이 인스톨되는 시스템들 상에서 실행시(at runtime) 매니페스트 파일을 탐색하고, 매니페스트 파일에 포함되어 있는 정보를 추출할 것이다. 매니페스트 파일은 차례대로 하나 또는 그 이상의 매니페스트 파일들을 지시(point)할 수 있는 또 하나의(또는 하나보다 많은) 매니페스트 파일을 지시(point)할 수 있다.
매니페스트 파일은 XML 문서의 형태를 취할 수 있으며, 제품 명칭, 벤더 이름, 버전 디테일(version details), i18n 인포(info) 및 제어 명령들(시작/정지 인터페이스들), 라이프사이클 정보(제품의 더 최근의 버전을 다운로드할 수 있는 url 등)와 같은 잘 알려진 태그들의 세트를 포함한다.
매니페스트 파일의 예는 다음과 같다.
Figure 112009064529032-PCT00001
매니페스트 파일은 애매한 상황들에서 선택을 해야 하는 고객들을 지원하는 랭킹(ranking)을 제공하기 위해 더 사용될 수 있다.
매니페스트 파일은 또한 현재의 제품과 다른 방식으로 관련된 다른 제품 매니페스트 파일들을 참조할 수 있고, 그러한 경우 에이전트들은 결집된(aggregated) 카탈로그로부터 또한 관련된 제품들의 정보를 선택할 수 있다. 예를 들어, 제품 매니페스트 파일은 동일한 벤더로부터 제공된(delivered) 다른 제품들의 매니페스트 파일에 대한 참조를 보유(contain)할 수 있다.
이와 같이, 위의 예에 따라서, ITLM 제품은 표준 어플리케이션 동작 동안 참조되는 어플리케이션의 존재를 탐색할 수 있고 소프트웨어 카탈로그(지식 베이스)를 갱신할 수 있다. 발견을 위해 필요한 정보는 머신(machine) 상에 있고, 그리하여 불필요한 상관 듀티들이 없도록 한다.
나아가, 어플리케이션 관리 매니페스트는, 관리되는 어플리케이션이 실행 중임을 고려하기 위해 어느 파일이 운영 시스템 상에서 실행되어야 하는지에 관한 정보를 보유할 수 있고, 관리 어플리케이션이 관리되는 어플리케이션을 시작 또는 정지하기 위해 어느 명령을 이슈(issue)할 수 있는지에 관한 정보를 포함할 수 있다.
본 발명은 수집된(gathered) 정보를 사용하여 지식 베이스(307)를 파퓰레이트하는 것에 목표를 두고 있다. 이 방식에서, 지식 베이스는 소프트웨어 어플리케이션의 정상적인 액티비티를 이용하여 확장된다. 본 방법으로써, 다른 관련된 어플리케이션들 및 매니페스트 파일들에 대해 매니페스트 파일들에 포함되는 참조들을 레버리지(leverage)함에 의해 특정 프로세스 또는 매뉴얼 절차를 필요로 함이 없이 지식 베이스의 더 효율적인 갱신이 수행될 수 있다. 데이터는 중앙 파일 서버의 파일 시스템에 저장된 선택된 컴퓨터들로부터 획득(harvest)되고, 데이터는 중앙 파 일 서버의 파일 시스템으로부터 분석 어플리케이션(303)에 의해 접근될 수 있다. 분석 어플리케이션(303)은 데이터 변환(transformation) 및 분석을 수행하고, 이 데이터 변환 및 분석은 새로운 제품 정의들 및 관련된 시그너쳐들이 생성되도록 한다.
분석 어플리케이션(303)은 위에서 설명된 바와 같은 수집된 데이터를 운영 시스템 레지스터리(305)에 보유(contain)된 레지스트리 정보와 결합한다. 그런 다음, 이 결합된 제품 정의 및 관련된 시그너쳐는 수집되고 소프트웨어 지식 베이스(307)에 저장된다. 소프트웨어 지식 베이스(307)는 통합된(consolidated) 제품 정의들 및 시그너쳐들의 세트를 보유하는 데이터베이스이다. 이 데이터베이스는 처음에는 비어(empty) 있을 수도 있고, 또는 소프트웨어 시그너쳐들의 제공자에 의해 만들어진 데이터를 가지고 파퓰레이트될 수 있다. 분석 어플리케이션에 의해 생성되는 새로운 정의들은 이 데이터베이스에 통합된다.
이제 도 4를 참조하면, 본 발명의 일 실시예에 따른 제품 시그너쳐들을 생성하는 논리 흐름은 방법(400)으로써 표현되어 있다. 이 방법은 검정색 시작 원(401)에서 시작한다. 계속해서 블록 403에서, 데이터는 엔드포인트들(105)을 통해 수집된다. 단계 405에서 매니페스트 파일들은 기존의 발견 과정들에 의해 정상 동작들 동안 탐색된다. 그러한 기존의 발견 과정들에는, 예를 들면, 매니페스트 파일을 지시(point)하는 잘 알려진 운영 시스템 레지스트리 키들 또는 기준(criteria)과 매치하는 미리 결정된 매니페스트 파일 명칭을 찾는 파일 시스템 스캔이 있다. 위에서 설명된 바와 같이, 매니페스트 파일들은 탐색되는 소프트웨어 제품에 관한 정보 및/또는 탐색되는 소프트웨어 제품에 대해 어떤 방법으로든 관련될 수 있는 또 하나의 소프트웨어 제품에 대한 참조를 포함한다. 매니페스트 파일은 또한 또 하나의 매니페스트 파일(도 3을 참조하여 위에서 언급된 것과 같은)로부터 상호 참조의 결과로 탐색될 수 있다. 단계 407에서, 참조되는 소프트웨어 제품이 이미 시스템에 알려져 있는지가 체크된다. 즉, 본 발명의 바람직한 실시예에 따라서, 그러한 참조되는 소프트웨어 제품과 관련된 엔트리가 지식 베이스(307)에서 발견되는지의 여부가 체크된다. 만약 소프트웨어 제품이 이미 열거되어 있다면, 어떠한 추가 액션도 요구되지 않으며 단계 403으로 돌아간다. 또 다른 실시예로서, 지식 베이스에 보유(contain)된 정보가 완전하거나 그것이 매니페스트 파일의 내용과 통합될 수 있는지의 여부를 검증하는 것이 가능하다. 만약 단계 407의 체크의 결과가 부정적이라면, 방법은 매니페스트 파일에 보유(contain)된 정보를 이용한다. 본 발명의 일 실시예에 따라, 본 발명은 모니터되는 시스템들 상(예를 들면, 복수의 엔드포인트들(105) 상)의 참조되는 소프트웨어 제품들의 존재를 검증하도록 추가 체크(409)가 수행된다. 만약 그렇다면, 지식 베이스(307)가 매니페스트 파일에 의해 제공되는 정보로써 갱신되고(단계 411), 그렇지 않다면, 그것은 장래의 사용을 위해 저장된다(단계 413). 가능한 대체 방법은 어느 경우에나 지식 베이스(307)를 갱신하는 것이고, 그래서 체크(419)는 필요하지 않다. 또한 매니페스트 파일에 포함된 정보는 전통적인 방법들을 갖는 시스템으로부터 수집되는 다른 정보와 함께 통합될 수 있다.
프로그램들 및 데이터가 상이한 방법으로 구성되는 경우, 다른 모듈들 또는 기능들이 제공되는 경우, 또는 정보가 균등 메모리 구조들에 저장되는 경우에도, 유사한 고려사항들이 적용된다.
그 방법이 대응되거나 부가적 단계들을 포함하는 경우에도, 유사한 고려사항들이 적용된다.
이와는 달리, 예를 들어 시스템이 인스톨되는 운영 시스템에 또한 의존하여, 검사(inspect)되는 엔트포인트들 상의 정보를 획득하는 다른 방법들이 사용될 수 있다. 예를 들어 매니페스트 파일이 미리 결정된 횟수 또는 미리 결정된 규칙들로써 시스템 관리 어플리케이션에 그들의 존재를 "매니페스트" 하는 것이 가능하다.
본 발명은 바람직한 실시예들을 참조하여 구체적인 정도로 위에서 설명되었으나, 다른 실시예들 뿐만 아니라 형태 및 상세부분들에서의 다양한 변경들이 가능하다는 것이 이해되어야 한다. 특히, 본 발명의 범위 내에서 동일한 결과들을 달성하기 위해 동일한 방법으로 실질적으로 동일한 기능을 수행하는 구성요소들 및/또는 방법 단계들의 모든 조합들이 의도될 수 있다.
어떤 경우에서든, 본 발명의 방법은 어떤 종류의 소프트웨어 제품들(비디오 게임들, 멀티미디어 작업들 등과 같은)을 발견(discover), 인벤터리(inventory) 또는 계측(meter)하기 위해 사용될 수 있다.
또한, 프로그램들은 어떤 다른 컴퓨터 판독가능 매체(하나 또는 그 이상의 DVD와 같은) 상에 분산될 수 있으며, 그 프로그램들은 하드 디스크 상에 미리 로드되어 컴퓨터들로 전송되고, 방송(broadcast)되며, 또는 더 일반적으로는 컴퓨터들의 작업 메모리들로 직접적으로 로드가능한 어떤 다른 형태로 제공된다.
더욱이 추가 이점들을 제공하는 추가적인 특징들은 본 발명을 수행함에 있어 본질적인 부분이 아니어서, 생략되거나 다른 특징들로 대체될 수 있다는 것은 당해 기술 분야에서 숙련된 자들에게는 분명할 것이다.
어떤 경우에서든, 본 발명에 따른 방법은 하드웨어 구조(예를 들어, 반도체 재로의 칩에 집적)로써 또는, 소프트웨어와 하드웨어의 결합으로써 수행되기에 또한 적합할 수 있다.
물론, 로컬 및 특정 요구사항들을 충족시키기 위해, 당해 기술 분야에서 숙련된 자는 위에서 설명된 솔루션에 여러가지 개조 및 대체를 적용할 수 있지만, 이들 모두는 다음의 청구항들에 의해 정의되는 본 발명의 보호범위 내에 포함된다.

Claims (11)

  1. 복수의 데이터 처리 시스템들 상에서 발견되고 있는 소프트웨어 제품들에 대응되는 소프트웨어 제품 식별자들(identifiers)을 갖는 소프트웨어 카탈로그를 파퓰레이트(populate)하는 방법에 있어서,
    데이터 처리 시스템 상에 인스톨되어 있는 제품을 나타내는 파일들의 세트의 존재를 탐색하기 위해 상기 복수의 데이터 처리 시스템의 파일 시스템들을 스캔(scan)하는 단계 - 상기 파일들의 세트는 적어도 하나의 참조되는 소프트웨어 제품 상에 정보를 보유(contain)하는 적어도 하나의 매니페스트 파일(manifest file)을 포함함;
    상기 매니페스트 파일의 정보를 사용하여 상기 참조되는 제품과 관련된 제품 시그너쳐를 결정하는 단계; 및
    상기 소프트웨어 카탈로그 상에 상기 시그너쳐 및 관련된 소프트웨어 제품 식별자를 저장하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 매니페스트 파일은 XML 문서를 포함하는, 방법.
  3. 청구항 1 또는 2에 있어서, 상기 적어도 하나의 참조되는 소프트웨어 제품은 상기 탐색되는 화일들의 세트와 관련된 소프트웨어 제품을 포함하는, 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 적어도 하나의 참조되는 소프트웨어 제품은 상기 탐색되는 파일들의 세트와 관련된 제품과 상이한 소프트웨어 제품을 포함하는, 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 적어도 하나의 매니페스트 파일은 또 하나의 매니페스트 파일에 대한 링크를 포함하는, 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 시그너쳐는 상기 대응되는 파일들의 세트의 파일들 중 하나와 관련된 파일 식별자(file identifier)를 포함하는, 방법.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서, 소프트웨어 제품 식별자와 상기 시그너쳐와의 관련(accociation)은 상기 대응되는 파일들의 세트에 포함된 파일들에 의해 추출되는 정보에 근거하는, 방법.
  8. 청구항 1 내지 7 중 어느 한 항에 기재된 방법을 사용하여, 복수의 데이터 처리 시스템들에 걸쳐, 소프트웨어 제품들을 인벤터리(inventory)하기 위한 방법.
  9. 데이터 처리 시스템 상에서 실행되는 경우, 청구항 1 내지 8 중 어느 한 항에 기재된 방법을 수행하기 위한, 컴퓨터 프로그램.
  10. 청구항 1 내지 8 중 어느 한 항에 따른 방법의 각 단계들을 수행하기 위한 수단들을 포함하는, 시스템.
  11. 청구항 1 내지 8 중 어느 한 항에 기재된 방법을 수행하기 위한 데이터 처리 시스템에 배치(deploy)되는, 서비스.
KR1020097022023A 2007-04-03 2008-03-04 관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템 KR20100002259A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07105562 2007-04-03
EP07105562.8 2007-04-03

Publications (1)

Publication Number Publication Date
KR20100002259A true KR20100002259A (ko) 2010-01-06

Family

ID=39671815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097022023A KR20100002259A (ko) 2007-04-03 2008-03-04 관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템

Country Status (5)

Country Link
US (2) US9400992B2 (ko)
EP (1) EP2130164A1 (ko)
KR (1) KR20100002259A (ko)
CN (1) CN101652790B (ko)
WO (1) WO2008119610A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008119610A1 (en) 2007-04-03 2008-10-09 International Business Machines Corporation A method and system for populating a software catalogue with related product information
US8959205B2 (en) 2009-07-31 2015-02-17 Hewlett-Packard Development Company, L.P. Method and system to recognize and inventory applications
US10175968B2 (en) * 2012-01-04 2019-01-08 International Business Machines Corporation Software catalog information management
US8856650B1 (en) 2012-06-15 2014-10-07 Gregory S. Off System and method for interactive digital content generation
GB2507037A (en) 2012-10-16 2014-04-23 Ibm Software application discovery using variable frequency file system scanning
US9223569B1 (en) 2014-06-17 2015-12-29 International Business Machines Corporation Automatic software catalog content creation based on bio-inspired computing prediction
GB2528679A (en) 2014-07-28 2016-02-03 Ibm Software discovery in an environment with heterogeneous machine groups
US10540523B2 (en) 2017-04-26 2020-01-21 International Business Machines Corporation Comprehensive system wide cross-reference mechanism using runtime data collection
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
US12047435B1 (en) 2023-07-07 2024-07-23 International Business Machines Corporation Managing software catalogs in hybrid and multi-cloud environments

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0327949A (ja) 1988-12-30 1991-02-06 Canon Inc 画像記録装置
EP0521172B1 (de) 1991-06-20 1996-01-31 Scheidt & Bachmann Gmbh Vorrichtung zum Beschreiben und/oder Lesen von Magnetkarten
KR100365592B1 (ko) 1994-03-02 2003-03-06 티엘 시스템즈 코포레이션 멸균바이알충전장치
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US6021491A (en) * 1996-11-27 2000-02-01 Sun Microsystems, Inc. Digital signatures for data streams and data archives
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6289512B1 (en) * 1998-12-03 2001-09-11 International Business Machines Corporation Automatic program installation
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
WO2002005184A2 (en) * 2000-07-10 2002-01-17 Critical Devices, Inc. Method and system for software inventory management using a global central repository
US7430610B2 (en) * 2000-09-01 2008-09-30 Opyo, Inc. System and method for adjusting the distribution of an asset over a multi-tiered network
US7711775B2 (en) * 2001-10-24 2010-05-04 Groove Networks, Inc. Method and apparatus for managing software component downloads and updates
US20030182652A1 (en) * 2001-12-21 2003-09-25 Custodio Gabriel T. Software building and deployment system and method
US20040003390A1 (en) 2002-06-27 2004-01-01 Microsoft Corporation System and method for installing a software application in a non-impactfull manner
US20040054987A1 (en) * 2002-09-17 2004-03-18 Sonpar Nicki P. System and method of an incremental file audit in a computer system
US20040177039A1 (en) * 2002-10-10 2004-09-09 Simon Pincus Systems and methods for maintaining and distributing a commerce catalogue
CA2465151A1 (en) * 2003-04-16 2004-10-16 Novadigm, Inc. Method and system for patch management
US8166101B2 (en) * 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7562346B2 (en) * 2003-09-02 2009-07-14 Microsoft Corporation Software componentization for building a software product
GB0326626D0 (en) * 2003-11-14 2003-12-17 Filewave International Holding A method in a network of the delivery of files
US7464102B2 (en) * 2003-11-26 2008-12-09 Microsoft Corporation System and method for providing computer support tools
US7934210B1 (en) * 2004-03-26 2011-04-26 Adobe Systems Incorporated System and method for updating one or more programs and their environment
GB2413407B (en) * 2004-04-22 2007-11-07 Ibm Method and system for software or data distribution
US7860239B2 (en) * 2004-07-07 2010-12-28 International Business Machines Corporation Method and apparatus for metering usage of software products using multiple signatures
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list
US8245221B2 (en) * 2004-09-30 2012-08-14 Microsoft Corporation Content formatting and installation techniques
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US7673148B2 (en) * 2004-10-15 2010-03-02 Microsoft Corporation Versioning component for applications
JP4692041B2 (ja) * 2005-03-29 2011-06-01 セイコーエプソン株式会社 ファイル管理装置、ファイル管理方法及びそのプログラム
US8195646B2 (en) * 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US7739691B2 (en) * 2005-04-29 2010-06-15 Microsoft Corporation Framework for declarative expression of data processing
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
EP1746501A1 (en) * 2005-07-22 2007-01-24 International Business Machines Corporation Method and apparatus for populating a software catalogue with software knowledge gathering
US8307355B2 (en) 2005-07-22 2012-11-06 International Business Machines Corporation Method and apparatus for populating a software catalogue with software knowledge gathering
US20070169079A1 (en) * 2005-11-08 2007-07-19 Microsoft Corporation Software update management
WO2007071465A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation A method and apparatus for populating a software catalog with automated use signature generation
US7512590B2 (en) * 2006-06-21 2009-03-31 International Business Machines Corporation Discovery directives
US8166472B2 (en) * 2006-10-12 2012-04-24 Apple Inc. Installation utility system and method
WO2008119610A1 (en) 2007-04-03 2008-10-09 International Business Machines Corporation A method and system for populating a software catalogue with related product information
US8448161B2 (en) * 2007-07-30 2013-05-21 Adobe Systems Incorporated Application tracking for application execution environment
US8375381B1 (en) * 2007-07-30 2013-02-12 Adobe Systems Incorporated Management user interface for application execution environment

Also Published As

Publication number Publication date
US11086618B2 (en) 2021-08-10
US20160321068A1 (en) 2016-11-03
CN101652790B (zh) 2013-12-11
EP2130164A1 (en) 2009-12-09
US20080250038A1 (en) 2008-10-09
CN101652790A (zh) 2010-02-17
WO2008119610A1 (en) 2008-10-09
US9400992B2 (en) 2016-07-26

Similar Documents

Publication Publication Date Title
US11086618B2 (en) Populating a software catalogue with related product information
US8881131B2 (en) Method and apparatus for populating a software catalogue with software knowledge gathering
US8539445B2 (en) Method for generating a robust software signature
CN110417613B (zh) 基于Jmeter的分布式性能测试方法、装置、设备及存储介质
US8521865B2 (en) Method and apparatus for populating a software catalog with automated use signature generation
CN105765560B (zh) 基于多次跟踪执行的软件组件推荐
US10621212B2 (en) Language tag management on international data storage
US7421490B2 (en) Uniquely identifying a crashed application and its environment
US11366713B2 (en) System and method for automatically identifying and resolving computing errors
US11671506B2 (en) Microservice management system for recommending modifications to optimize operation of microservice-based systems
US20120296866A1 (en) System and method for implementing on demand cloud database
US20080172583A1 (en) Objective assessment of application crashes from a customer environment
US20100293168A1 (en) Determining configuration parameter dependencies via analysis of configuration data from multi-tiered enterprise applications
US9086942B2 (en) Software discovery by an installer controller
KR20100138980A (ko) 어플리케이션 가상 환경에서의 소프트웨어 설치 및 사용을 검출하기 위한 방법과 시스템
US20160098390A1 (en) Command history analysis apparatus and command history analysis method
Dikaiakos et al. Minersoft: Software retrieval in grid and cloud computing infrastructures
US20130111018A1 (en) Passive monitoring of virtual systems using agent-less, offline indexing
US20080077603A1 (en) Automated product knowledge catalog
Browne et al. Comprehensive, open‐source resource usage measurement and analysis for HPC systems
US7860919B1 (en) Methods and apparatus assigning operations to agents based on versions
CN108170439A (zh) 用于管理多个分布式服务器上的机器镜像的系统和方法
JP2005301379A (ja) ソフトウェア資源管理方法およびシステム
Pallis et al. Searching for software on the egee infrastructure
EP1746501A1 (en) Method and apparatus for populating a software catalogue with software knowledge gathering

Legal Events

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