KR20050115761A - 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체 - Google Patents

컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체 Download PDF

Info

Publication number
KR20050115761A
KR20050115761A KR1020040041165A KR20040041165A KR20050115761A KR 20050115761 A KR20050115761 A KR 20050115761A KR 1020040041165 A KR1020040041165 A KR 1020040041165A KR 20040041165 A KR20040041165 A KR 20040041165A KR 20050115761 A KR20050115761 A KR 20050115761A
Authority
KR
South Korea
Prior art keywords
program
information
installation
client
extracting
Prior art date
Application number
KR1020040041165A
Other languages
English (en)
Other versions
KR100625867B1 (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 소프트온넷(주)
Priority to KR1020040041165A priority Critical patent/KR100625867B1/ko
Publication of KR20050115761A publication Critical patent/KR20050115761A/ko
Application granted granted Critical
Publication of KR100625867B1 publication Critical patent/KR100625867B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 컴퓨터 시스템에 설치되어 있는 프로그램들의 설치 상태 정보와 프로그램 사용 정보를 추출하는 장치에 관한 것으로, 특히 상기 컴퓨터 시스템에 설치된 프로그램들을 구성하는 레지스트리, 단축아이콘(Link 파일), 파일들이나 설치 프로그램(InstallShield, Microsoft의 Windows Installer와 같은 설치프로그램)에 의해 관리되는 프로그램 설치정보를 분석하여 상기 프로그램들의 구성요소(레지스트리, 파일, 폴더)를 추출하고, 상기 추출된 정보를 등록하며, 상기 등록된 정보를 저장 및 관리함을 특징으로 한다. 또한, 본 발명은 상기 프로그램의 구성 요소에 대한 실행 정보 혹은 사용 정보를 분석 추출하고, 상기 추출된 정보를 등록하며, 상기 등록된 정보를 저장 및 관리하는 프로그램 분석 모듈 및 상기 프로그램 분석 모듈에 저장된 상기 각 프로그램들에 대한 정보를 소프트웨어 자원의 유지 관리에 용이하도록 구조화 혹은 통계화하여 관리하는 프로그램 관리 모듈을 포함함을 특징으로 한다. 아울러, 본 발명은 컴퓨터 시스템에서 사용될 프로그램들에 관한 수요 예측을 위하여, 상기 컴퓨터 시스템에 설치되었다 삭제된 프로그램 파일의 정보 또는 새롭게 설치되는 프로그램의 변동 사항(설치, 제거, 수정) 및 사용 정보를 분석하고, 상기 분석된 정보를 등록하며, 상기 등록된 정보를 저장 및 관리하여 새로운 프로그램에 대한 프로그램 사용자들의 사용요구를 예측하는 새로운 프로그램에 대한 신청 및 사용 예상 등에 관한 정보를 수집할 수 있도록 하는 방법을 포함한다.

Description

컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체{APPARATUS, SYSTEM AND METHOD FOR EXTRACTING, ANALYSING, STORING, MANAGING AND COLLECTING STATISTICS ON PROGRAMS ON A COMPUTER SYSTEM AND COMPUTER READABLE MEDIUM PROCESSING THE METHOD}
본 발명은 컴퓨터 시스템에서의 설치된 프로그램의 효율적 자원 관리를 위한 정보 수집 방법에 관한 것으로, 보다 상세하게는 상기 컴퓨터 시스템에 설치된 프로그램들에 대한 정보를 추출하여 소프트웨어 자원을 효율적으로 관리하는 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
근래들어, 네트워크 시스템 즉, 서버/클라이언트 구축 기술이 사회 전반적으로 보급되면서 소프트웨어 개발사들은 유통 비용의 절감을 위해서, 또한 고객들은 소프트웨어 구매 비용의 절감 및 완성도 높은 소프트웨어의 사용을 위해, 소프트웨어를 구매하여 설치하고 사용하는 오프라인(offline)을 통한 사용보다는 온라인 프로그램 임대 서비스(Application Service Provider; 이하, 'ASP'라 한다)기술을 사용하여 소프트웨어를 따로 설치하지 않고, 온라인(online) 환경에서 바로 프로그램을 사용하려는 욕구가 증대하고 있는 실정이다. 또한 소프트웨어를 수도, 가스, 전화, 전기와 같이 필요할 때 온라인(online) 환경을 통해 접속하여 원하는 만큼 쓰고 쓴 만큼 대가를 지불하려는 방향으로 전환하려고 하고 있다.
한편, 최근 소프트웨어 개발속도의 향상으로, 프로그램 제작 업체들은 평균 1~2년에 한번씩 업그레이드(upgrade)된 버전의 프로그램을 발표하고 있다. 따라서, 기업은 다양한 버전의 소프트웨어 자원을 잘 관리하지 않으면, 해당 소프트웨어 자원이 필요없는 인원에게 배분됨으로써 소프트웨어 구매 비용 및 교육 비용 등의 추가 비용을 지출하게 되었다. 또한 소프트웨어 구매시에 소프트웨어 요청자와 실제 수요자를 구분하는 것이 어렵고, 어떤 소프트웨어를 얼마만큼 구매해야 할지에 대한 데이터를 사용하는 사람에게만 의존해야 함으로 기업에 실제로 필요한 소프트웨어의 개수를 정확하게 알기 힘든 환경이 되었다. 아울러, 인력의 변동과 부서의 변동으로 인해 필요한 소프트웨어의 수요를 동적으로 배정하기 힘든 상황이 되었다.
본 발명의 목적은 소정의 컴퓨터 시스템에 설치되어 있는 프로그램들의 설치 위치, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 컴퓨터 시스템에 설치된 프로그램들에 대한 사용시간을 체크하여, 상기 각 프로그램의 사용 빈도 및 각 프로그램의 사용량을 분석하여 저장 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 설치된 프로그램들의 설치 위치, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 각 클라이언트에 설치된 프로그램들에 대한 사용시간을 실시간으로 체크하여, 상기 각 프로그램의 사용 빈도, 각 프로그램의 사용량을 서버로 전송 수집하여 동일시간(Concurrent time)에 사용하는 프로그램의 사용량을 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 설치된 각각의 프로그램들의 설치 위치, 삭제시간, 설치 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 각 클라이언트에 설치된 프로그램들에 대한 사용시간의 통계치를 개별 클라이언트로부터 추출하여 서버에서 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
본 발명의 목적은 소정의 컴퓨터 시스템에 새롭게 설치되는 프로그램들의 설치 위치, 설치시간, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 컴퓨터 시스템에 새롭게 설치된 프로그램들에 대한 사용시간을 체크하여, 상기 새롭게 설치된 프로그램의 사용 빈도를 분석하여 저장 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 새롭게 설치되는 프로그램들의 설치 위치, 설치시간, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 클라이언트에 새롭게 설치된 프로그램들에 대한 사용시간을 실시간으로 체크하여, 상기 새롭게 설치된 프로그램의 사용 빈도, 사용량을 서버로 전송 수집하여 동일시간(Concurrent time)에 사용하는 프로그램의 사용량을 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 새롭게 설치되는 프로그램들의 설치 위치, 설치시간, 삭제시간, 설치 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 각 클라이언트에 새롭게 설치된 프로그램들에 대한 사용시간의 통계치를 개별 클라이언트로부터 추출하여 서버에서 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
본 발명의 목적은 소정의 컴퓨터 시스템에 이전에 설치되었다 삭제된 정보를 레지스트리 및 인스톨 프로그램의 정보파일의 정보와 새롭게 설치되는 프로그램들의 정보와 기존에 설치되어 있는 상기 프로그램의 정보로부터 사용이 예상되는 프로그램에 대한 목록을 수집하여 소정의 기관내에서 필요로 하는 프로그램에 대한 수요를 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 이전에 설치되었다 삭제된 정보를 레지스트리 및 인스톨프로그램의 정보파일의 정보와 새롭게 설치되는 상기 프로그램들의 정보와 기존에 설치되어 있는 상기 프로그램의 정보로부터 사용이 예상되는 프로그램에 대한 목록을 수집하여 소정의 기관 내에서 필요로 하는 프로그램에 대한 수요를 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 ASP(온라인 프로그램 임대 서비스)서버에 충분한 소프트웨어 라이센스를 구비하여 각 클라이언트 컴퓨터 상에서 필요한 때에 온라인으로 사용함으로써 소정의 기관 내에서 요구되는 소프트웨어의 수량을 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 서버에 충분한 소프트웨어 라이센스를 구비하여 각 클라이언트 컴퓨터 상에서 필요한 때에 온라인으로 대여함으로써 소정의 기관 내에서 요구되는 소프트웨어의 수량을 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명의 장치는 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하고, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하고, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하고, 상기의 설치/제거된 프로그램의 데이터를 수집하는 프로그램 분석 모듈 및 상기 각 프로그램의 설치 정보로부터 상기 컴퓨터 시스템에 설치되어 실행되는 프로그램들에 대한 구성요소정보 및 실행정보와 상기 컴퓨터 시스템에서 삭제된 프로그램에 대한 구송요소정보와 삭제날짜 정보로부터 설치/제거된 프로그램에 대한 정보를 분석하고 통계화하는 프로그램 관리 모듈을 포함함을 특징으로 한다.
상기한 목적을 달성하기 위한 본 발명의 시스템은 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버 및 클라이언트들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에 있어서, 상기 클라이언트에 설치되며, 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하고, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하고, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하고, 상기의 설치/제거된 프로그램의 데이터를 전송하는 프로그램 분석 모듈 및 상기 서버에 설치되며, 상기 각 클라이언트로부터 상기 전송된 프로그램에 대한 설치 및 실행정보를 수신하고, 상기 수신된 정보로부터 상기 각 클라이언트별 프로그램들의 구성요소정보 및 실행시간정보와 상기 각 클라이언트로부터 상기 전송된 프로그램에 대한 삭제 정보로부터 상기 각 클라이언트별 삭제된 프로그램에 대한 구성요소정보와 삭제날짜 정보로부터 설치/제거된 프로그램에 대한 정보를 구조화하여 저장하는 프로그램 관리 모듈을 포함함을 특징으로 한다.
또한 추가 예상 프로그램 정보 추출 시스템은 각 클라이언트마다 설치된 프로그램의 동시사용량을 수집하고, 각 클라이언트마다 제거된 프로그램의 정보를 수집하여, 현재 보유하고 있는 프로그램의 라이센스의 양과 비교하는 모듈, 상기의 라이센스가 없거나 부족한 것이 예상되는 소프트웨어의 추가구매 예상하는 모듈 및 수집된 데이터를 구조화하여 저장하는 프로그램 관리 모듈을 포함함을 특징으로 한다.
또한, 상기한 목적을 달성하기 위한 본 발명의 제1 방법은 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 방법에 있어서, 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하고, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하고, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하고, 상기의 설치/제거된 프로그램의 데이터를 수집하는 프로그램 분석 단계 및 상기 각 프로그램에 대한 설치 정보 및 실행 정보로부터 상기 각 컴퓨터 시스템별 프로그램들에 대한 구성요소정보 및 실행정보와 상기 각 컴퓨터 시스템에서 삭제된 프로그램에 대한 구성요소정보와 삭제날짜 정보로부터 설지/제거된 프로그램에 대한 정보를 분석하고 통계화하는 프로그램 관리 단계를 포함함을 특징으로 한다.
또한, 상기한 목적을 달성하기 위한 본 발명의 제2 방법은 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버 및 클라이언트들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에서, 상기 클라이언트에 설치된 상기 프로그램에 대한 정보를 상기 서버로 전송하는 방법에 있어서, 상기 클라이언트에 설치된 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하는 단계, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 단계, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하는 단계, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하는 단계 및 상기 수집된 정보를 상기 서버로 전송하는 단계를 포함함을 특징으로 한다.
또한 추가 예상 프로그램 정보 추출 방법은 각 클라이언트마다 설치된 프로그램의 동시사용량을 수집하는 단계 각 클라이언트마다 제거된 프로그램의 정보를 수집하는 단계 현재 보유하고 있는 프로그램의 라이센스의 양과 비교하는 단계 상기의 라이센스가 없거나 부족한 것이 예상되는 소프트웨어의 추가구매를 예상하는 단계 및 수집된 데이터를 구조화하여 저장하는 프로그램 관리 단계를 포함함을 특징으로 한다.
또한, 상기한 목적을 달성하기 위한 본 발명에 따른 추가 예상 프로그램 정보 추출 방법은 상기 서버가 상기 각 클라이언트로 추가 예상 프로그램의 목록을 전송하는 단계 및 상기 예상 프로그램 목록을 수신한 각 클라이언트가 추가하고자 하는 프로그램의 목록을 작성하여 상기 서버로 전송하는 단계를 더 포함함을 특징으로 한다.
상기 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 방법은 서버 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함한다. 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk), DVD(Digital Video Disk)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이하 본 발명의 바람직한 실시예에 따른 상세한 설명을 첨부된 도면들을 참조하여 설명한다. 하기에는 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명은 컴퓨터 시스템 내에 설치되는 하나 이상의 프로그램에 대한 상세 정보(예컨대, 프로그램 설치 정보, 실행 정보, 사용 정보 등) 등을 추출하고 저장하며 관리하는 프로그램 정보 관리 방법에 관한 것이다.
한편, 상기 설치 프로그램에 대한 정보의 추출은 해당 프로그램이 설치된 컴퓨터 시스템 내에서 수행됨이 바람직하며, 상기 추출된 해당 프로그램에 대한 각종 정보들은 상기 동일한 컴퓨터 시스템 내에서 수행되거나, 외부 네트워크를 통해 다른 컴퓨터 시스템에서 수행될 수도 있다.
즉, 본 발명은 하나의 컴퓨터 시스템 내에서 구현되거나, 복수의 컴퓨터가 상호간에 통신하는 네트워크 시스템 내에서도 구현될 수도 있다.
예컨대, 본 발명은 서버(Server)와 하나 이상의(일반적으로 복수의) 클라이언트(Client)들이 네트워크(Network)로 연결되는 서버/클라이언트 시스템에서 상기 클라이언트들에 설치된 프로그램에 대한 정보 관리에 적용될 수 있다. 즉, 상기 복수의 클라이언트들 각각에 대한 프로그램(Program)들에 대한 상세 정보를 본 발명에 따른 방법들에 의해 수집하고, 상기 수집된 정보를 종합하여 서버로 전송한다. 상기 서버는 각 클라이언트들로부터 수집된 상기 프로그램들에 대한 정보를 분석함으로써 해당 네트워크 내의 전체 소프트웨어에 대한 상세한 현황을 일괄적으로 파악할 수가 있다.
여기서, 본 발명에 따른 서버와 클라이언트들은 소정의 연결 수단을 통해 서로 통신하며, 상기 서버와 상기 복수의 클라이언트들이 일정한 유형의 네트워크 방식으로 연결되게 된다. 이때, 본 발명은 상기 서버와 클라이언트들 간의 연결 유형과 관계없이 모든 유형에 적용 가능하며, 상기 서버와 클라이언트간의 직접적인 연결에 의한 통신에도 동일하게 적용 가능하다.
또한, 상기 네트워크는 그 종류에 상관 없이 본 발명에 적용이 가능하며. 상기 네트워크의 예로는 인터넷망(Internet Network), 내부 네트워크(Internal Network), 인트라넷(Intranet), LAN(Local Area Network), WAN(Wide Area Network), 내부 버스 등이 있다. 아울러, 유선 네트워크 뿐만 아니라 무선 네트워크 등에도 동일하게 적용 가능함은 자명하다.
한편, 상기 '프로그램'이란 용어는 이하 설명에서 '소프트웨어(software)'라는 용어와 동일하게 사용된다. 본 발명에 적용되는 상기 프로그램은 시스템 운영을 위한 시스템 프로그램(예컨대, 오퍼레이팅 시스템(Operating System; OS))을 제외한 일반적으로 컴퓨터 상에서 설치되어 실행되는 대부분의 프로그램들을 지칭한다. 또한, 상기 프로그램은 일반적으로 하나 이상의 파일(file)들로 구성되며, 상기 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성된다. 이때, 상기 각 파일들의 유형은 해당 파일 이름의 뒷부분에 표시된 확장자(예컨대, exe, dll, txt 등)에 의해 구별되어진다.
본 발명은 소정의 컴퓨터 시스템 내에서 설치되는 각종 프로그램들의 설치, 실행 및 사용 여부를 파악하기 위하여 상기 각 프로그램을 구성하는 각각의 실행 또는 비실행 파일들의 사용 여부를 조사하게 된다. 그런다음, 상기 조사 결과에 의해 상기 각 프로그램들의 설치 정보 및 사용 시간 정보등에 대한 종합적인 분석을 수행할 수 있게 된다.
또한, 본 발명은 하기 6가지 항목들에 대해 적용될 수 있다.
1. 단일 컴퓨터상에 과거 혹은 현재 설치, 사용중인 소프트웨어에 대한 정보 추출 및 사용 정보 확보.
2. 소정의 네트워크로 연결된 기관 혹은 단체 내에 설치된 전체 혹은 일부 컴퓨터 상에서 과거 혹은 현재 설치, 사용중인 소프트웨어에 대한 정보 추출 및 사용 정보 확보.
3. 소정의 네트워크로 연결된 기관 혹은 단체 내에 미래에 필요한 소프트웨어에 대한 예비 수요를 도출하기 위하여, 클라이언트에 설치/삭제/수정된 소프트웨어의 정보를 추출하고, 동일 프로그램이 각각의 클라이언트에서 동시 사용(Concurrent Time)되는 사용량의 변화에 대한 목록을 수집하여 가상수요를 예상하거나, 사용자가 향후 필요한 소프트웨어 리스트정보를 추출 확보.
4. 소정의 네트워크로 연결된 기관 혹은 단체 내에 미래에 필요한 소프트웨어에 대한 예비 수요를 도출하기 위하여 서버에서 예비 수요 리스트를 제공하고, 상기 리스트를 통해 클라이언트가 가상 수요를 체크하거나, 사용자가 향후 필요한 소프트웨어 리스트를 요청하여 해당 정보를 추출 확보.
5. 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 ASP 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 사용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출.
6. 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 대여하여 사용하고, 사용후 온라인으로 반납하는 방식으로 운용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출.
즉, 상기 1번, 2번은 한 기관내에서 현재 관리하는 소프트웨어 자원의 양만을 알려주는 정적인 통계치를 제공한다. 한편, 상기 3번은 정적인 통계치 뿐만 아니라 한 기관내에서 필요로 하는 소프트웨어 수량의 변화 및 종류를 사용자의 요청이 없이 추정할 수 있는 데이터를 제공한다.
이하, 첨부된 도면을 참조하여 상술한 방법들을 구체적으로 구현하는 시스템과 절차들을 설명한다. 먼저, 도 1 내지 도 5를 참조하여 본 발명에 따라 구성되는 시스템의 구조를 상세히 설명한다.
도 1은 본 발명의 실시예에 따라 적용 가능한 서버/클라이언트 시스템 구조를 나타낸 도면이다.
한편, 상술한 바와 같이 본 발명에 따른 프로그램 정보 수집 및 분석 방법은 하나의 컴퓨터 시스템(130) 내에서 수행되도록 구현될 수도 있으며, 후술하는 도 1과 같은 서버/클라이언트 시스템 내에서도 구현될 수 있다.
상기 도 1을 참조하면, 본 발명에 따른 서버/클라이언트 시스템은 하나의 서버(100)가 소정의 네트워크(110)를 통해 복수의 클라이언트들(120; 즉 120a 또는 120b)과 통신하는 시스템을 기반으로 한다. 이때, 상술한 바와 같이 상기 서버와 클라이언트들 간의 연결 방법(예컨대, 120a 또는 120b에서와 같은 연결 방법) 및 상기 네트워크(110)의 종류는 본 발명을 적용함에 있어 다양하게 변형 가능하다.
상기 서버(100)는 상기 각 클라이언트들(120)의 로그인 정보를 알고 있으며, 상기 각 클라이언트들(120)의 네트워크 연결 상태도 감지하고 있게 된다. 또한, 상기 서버(100)와 클라이언트들(120)간에는 소정의 기설정된 통신 규약(즉, 프로토콜(protocol))에 의해 데이터의 송수신이 가능하게 된다.
한편, 상기 각 클라이언트들(120)에는 하나 이상의 프로그램들이 설치되며, 상기 설치된 프로그램들은 사용자의 요구에 따라 실행된다. 이때, 본 발명에 따라 상기 각 클라이언트들(120)에 설치된 각종 프로그램들의 설치 정보와 실행 정보가 각 클라이언트 내에 구비된 소정의 모듈에 의해 수집되며, 상기 수집된 각 클라이언트들의 프로그램들에 대한 설치 정보 및 실행 정보들은 본 발명에 따라 상기 서버(100)로 주기적으로 전송되거나 또는 상기 서버(100)의 요청에 의해 전송된다.
이때, 상기 각 클라이언트들(120)로부터 수집된 정보들은 상기 서버(100)에서 종합되며, 사용자로 하여금 용이하게 파악할 수 있도록 하기 위하여 소정의 기설정된 포맷에 의해 디스플레이되도록 구현할 수 있다.
상술한 바와 같이 상기 각 컴퓨터 시스템(100, 120)에 설치된 프로그램에 대해 추출된 프로그램 관련 정보들에 대한 분석 및 통계는 해당 컴퓨터 시스템(100, 120) 내에서 수행될 수도 있으며, 상기 도 1에 도시된 바와 같이 프로그램 추출 과정은 각 클라이언트(120)에서 수행하고, 추출된 자료의 종합 및 분석은 서버(100)에서 수행되도록 구현할 수도 있다.
이하, 도 2 내지 도 5를 참조하여 본 발명의 구현을 위한 상기 컴퓨터 시스템의 보다 세부적인 구조를 설명한다.
도 2a 및 도 2b는 본 발명의 실시예에 따른 컴퓨터 시스템의 내부 구조를 나타낸 도면이다.
먼저, 도 2a를 참조하여 하나의 컴퓨터 시스템 내에서 상기 본 발명을 수행하는 장치를 설명하며, 도 2b를 참조하여 상술한 서버/클라이언트 시스템에 본 발명이 적용된 실시예를 설명하기로 한다.
도 2a는 본 발명의 제1 실시예에 따른 컴퓨터 시스템의 내부 구조를 나타낸 도면.
상기 도 2a를 참조하면, 상기 본 발명이 적용되는 컴퓨터 시스템(130)은 중앙 처리 장치(Central Processor Unit; 이하, 'CPU'라 한다)(210), 입출력 어댑터(Input/Output Adaptor; 이하, 'I/O 어댑터'라 한다)(220), 데이터 저장 장치(230) 및 메모리(memory; 200) 등을 포함한다. 한편, 상기 도 2a에는 도시하지 않았지만, 소정의 네트워크 인터페이스(Interface; 이하, 'I/F'라 한다)(미도시)를 구비하여 외부 시스템들과 데이터를 송수신할 수 있다.
상기 CPU(210)는 범용 프로그램 가능한 처리기이며, 메모리(200) 내에 저장된 소정의 인스트럭션을 실행하며, 상기 도 2a에는 단일 CPU가 도시되지만, 다중 CPU를 갖는 컴퓨터 시스템이 사용될 수도 있다.
메모리(200)는 데이터 및 프로그램을 저장하는 반도체 RAM(Random Access Memory) 또는 ROM(Read Only Memory) 등으로 구성될 수 있으며, 상기 메모리는 도면상에서 단일 모놀리식 물체로 개념적으로 도시되지만, 종종 캐시(caches) 및 다른 메모리 장치들의 계층형 구조로 구성될 수도 있다. 한편, 운영 체제(Operating System; 이하, 'OS'라 한다)(201) 및 복수의 프로그램(203)들이 상기 컴퓨터 시스템(130)의 메모리(200) 내에 존재하게 된다.
상기 프로그램(203)은 본 발명에 따른 데이터 수집의 대상이 되며, 상술한 바와 같이 컴퓨터 상에서 실행되는 복수의 파일들로 구성된 프로그램을 의미한다. 상기 프로그램(203)은 일반적으로 상기 데이터 저장 장치(230)에 저장되어 설치(install)되며, 실행 요구시 RAM 등과 같은 메모리에 로딩되어 실행된다. 한편, 상기 프로그램(203)은 그 종류에 따라 상기 컴퓨터 시스템(130)의 부팅(booting)시 자동으로 실행될 수 있도록 설정하는 것이 가능하며, 상기 RAM에 상주시켜 필요시 항상 실행되도록 설치할 수도 있다. 또한, 상술한 바와 같이 상기 프로그램을 구성하는 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성되며, 상기 각 파일들의 유형은 확장자에 의해 구분된다.
데이터 저장 장치(230)는 바람직하게는 하나 이상의 회전 자기 하드 디스크 드라이브 장치를 포함할 수 있지만, 다른 타입의 저장 장치가 사용될 수도 있다.
한편, 통신 버스(231)는 상이한 디바이스들 간의 데이터, 명령, 다른 정보의 전달을 지원하며, 도면에서는 단순하게 단일 버스로 도시되었으며, 통상적으로 통신 버스는 다중 버스로 구성되며, 계층 형태로 구성될 수도 있다.
또한, 상기 도 2a에 도시된 컴퓨터 시스템은 단순하게 도시된 도면이며, 시스템 구성에 있어서 본 명세서에서 구체적으로 언급된 변경 이외에 수 많은 변경이 가능하다. 상기 컴퓨터 시스템(130)은 개인용 컴퓨터 시스템으로 고려될 수도 있으며, IBM 기업용 시스템 또는 IBM AS/400 시스템과 같은 대형 컴퓨터 시스템일 수도 있다.
본 발명에 따라 상기 컴퓨터 시스템(130)은 본 발명의 구현을 위하여 상기 메모리(200) 내에 프로그램 정보 분석 장치(202)를 구비한다. 상기 프로그램 정보 분석 장치(202)는 상기 컴퓨터 시스템(130) 내에 설치된 상기 프로그램(203)들에 대한 설치, 실행 및 사용 정보 등의 프로그램 관련 정보들을 추출하여 저장하고, 상기 저장된 프로그램 관련 정보들을 분석하여 통계화함으로써, 상기 컴퓨터 시스템(130)의 사용자로 하여금 상기 컴퓨터 시스템(130)을 효율적으로 이용할 수 있도록 한다.
또한, 상기 프로그램 정보 분석 장치(202)는 상기 프로그램(203) 대한 정보를 수집하기 위한 프로그램 분석 모듈(205)과, 상기 수집된 정보를 분석하여 통계화하기 위한 프로그램 관리 모듈(206)로 구성할 수 있다.
한편, 상기 본 발명에 따른 프로그램 분석 모듈(205)은 그 구현 방법에 따라 소프트웨어의 형태로 상기와 같이 메모리(200)에 저장되거나 별도의 데이터 저장 장치(230)에 저장될 수도 있으며, 다른 방법으로 하드웨어적으로 구성된 소정의 별도 처리 모듈로 구성될 수도 있다. 이에 따라, 상기 컴퓨터 시스템(130)에 설치된 상기 본 발명에 따른 프로그램 분석 모듈(205)은 상기 하나 이상의 프로그램(203)들에 대한 설치, 제거 및 실행 상태를 체크하여 그 결과를 수집하게 된다.
또한, 본 발명에 따라 상기 클라이언트(120)의 프로그램 분석 모듈(205)에서 수집된 데이터는 상기 프로그램 관리 모듈(206)로 전송된다. 상기 프로그램 관리 모듈(206)에서는 상기 각 프로그램 분석 모듈(205)에서 수집된 프로그램 관련 정보들을 체계화하여 관리하게 된다.
상기 프로그램 분석 모듈(205) 및 프로그램 관리 모듈(206)에 대한 보다 구제적인 동작 및 구조는 후술하기로 한다.
도 2b는 본 발명의 제2 실시예에 따른 서버 및 클라이언트 시스템의 내부 구조를 나타낸 도면이다.
상기 도 2b를 참조하면, 상기 서버(100)와 클라이언트(120)는 일종의 컴퓨터 시스템으로서 각각 CPU(210, 280), I/O 어댑터(220, 250), 데이터 저장 장치(230, 260), 네트워크 I/F(240, 270) 및 메모리(200, 290) 등을 포함한다.
또한, 상기 서버(100) 및 클라이언트(120)에서의 다양한 장치들은 각각 내부 통신 버스(231)를 통해 서로 통신한다. 상기 CPU(210, 280)는 범용 프로그램 가능한 처리기이며, 메모리(200, 290) 내에 저장된 소정의 인스트럭션을 실행하며, 상기 도 2b에는 각 장치별 단일 CPU가 도시되지만, 다중 CPU를 갖는 컴퓨터 시스템이 사용될 수도 있다.
메모리(200, 290)는 데이터 및 프로그램을 저장하는 반도체 RAM(Random Access Memory) 또는 ROM(Read Only Memory) 등으로 구성될 수 있으며, 상기 메모리는 도면상에서 단일 모놀리식 물체로 개념적으로 도시되지만, 종종 캐시(caches) 및 다른 메모리 장치들의 계층형 구조로 구성될 수도 있다. 한편, 운영 체제(Operating System; 이하, 'OS'라 한다)(201) 및 복수의 프로그램(203)들이 상기 클라이언트(120)의 메모리(200) 내에 존재하게 된다.
상기 프로그램(203)은 본 발명에 따른 데이터 수집의 대상이 되며, 상술한 바와 같이 컴퓨터 상에서 실행되는 복수의 파일들로 구성된 프로그램을 의미한다. 상기 프로그램(203)은 일반적으로 상기 데이터 저장 장치(230)에 저장되어 설치(install)되며, 실행 요구시 RAM 등과 같은 메모리에 로딩되어 실행된다. 한편, 상기 프로그램(203)은 그 종류에 따라 상기 클라이언트(120)의 부팅(booting)시 자동으로 실행될 수 있도록 설정하는 것이 가능하며, 상기 RAM에 상주시켜 필요시 항상 실행되도록 설치할 수도 있다. 또한, 상술한 바와 같이 상기 프로그램을 구성하는 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성되며, 상기 각 파일들의 유형은 확장자에 의해 구분된다.
데이터 저장 장치(230, 260)는 바람직하게는 하나 이상의 회전 자기 하드 디스크 드라이브 장치를 포함할 수 있지만, 다른 타입의 저장 장치가 사용될 수도 있다. 네트워크 I/F(240, 270)는 네트워크(110)로부터 그리고 네트워크(110)로의 데이터의 전송을 위한 물리적 접속부를 제공한다. 바람직한 실시예에서, 상기 네트워크(100)는 인트라넷이지만, 인터넷, WAN, LAN과 같은 임의의 소형 자기 보유형 네트워크 또는 가령 전화 전송 라인, 위성, 광섬유, T1 라인 등을 사용하는 다른 내부 또는 외부 네트워크일 수 있으며, 임의의 다수의 가용한 기술일 수도 있다.
한편, 통신 버스(231)는 상이한 디바이스들 간의 데이터, 명령, 다른 정보의 전달을 지원하며, 도면에서는 단순하게 단일 버스로 도시되었으며, 통상적으로 통신 버스는 다중 버스로 구성되며, 계층 형태로 구성될 수도 있다.
또한, 상기 도 2b에 도시된 컴퓨터 시스템은 단순하게 도시된 도면이며, 시스템 구성에 있어서 본 명세서에서 구체적으로 언급된 변경 이외에 수 많은 변경이 가능하다. 상기 클라이언트(120) 및 서버(100)는 개인용 컴퓨터 시스템으로 고려될 수도 있으며, IBM 기업용 시스템 또는 IBM AS/400 시스템과 같은 대형 컴퓨터 시스템일 수도 있다.
본 발명에 따라 클라이언트(120)에서는 상기 클라이언트(120)에서 수행되는 프로그램(203) 대한 정보를 수집하기 위한 프로그램 분석 모듈(205)을 상기 메모리(200)에 구비하며, 상기 수집된 정보를 서버(100)에서 통합 관리하기 위하여 상기 서버(100)의 메모리(290)에 프로그램 관리 모듈(206)을 구비한다.
한편, 상기 본 발명에 따른 프로그램 분석 모듈(205)은 그 구현 방법에 따라 소프트웨어의 형태로 상기와 같이 메모리(200)에 저장되거나 별도의 데이터 저장 장치(230)에 저장될 수도 있으며, 다른 방법으로 하드웨어적으로 구성된 소정의 별도 처리 모듈로 구성될 수도 있다. 이에 따라, 상기 클라이언트(120)에 설치된 상기 본 발명에 따른 프로그램 분석 모듈(205)은 상기 하나 이상의 프로그램(203)들에 대한 설치, 제거 및 실행 상태를 체크하여 그 결과를 수집하게 된다.
또한, 본 발명에 따라 상기 클라이언트(120)의 프로그램 분석 모듈(205)에서 수집된 데이터는 상기 네트워크 I/F(240, 270) 및 네트워크(110)를 통해 상기 서버(100)의 프로그램 관리 모듈(206)로 전송된다. 상기 프로그램 관리 모듈(206)에서는 상기 각 클라이언트(120)들로부터 수집된 프로그램 관련 정보들을 체계화하여 관리하게 된다.
이하, 도 3 및 도 4를 참조하여 상기 클라이언트(120)의 프로그램 분석 모듈(205)에 대해 보다 구체적으로 설명한다.
도 3은 본 발명의 실시예에 따른 클라이언트에서 프로그램 분석 모듈(205)의 세부 구조를 나타낸 도면이다.
상기 도 3을 참조하면, 본 발명의 실시예에 따른 프로그램 분석 모듈(205)은 프로그램 분석부(300), 프로그램 등록부(310), 사용 정보 추출부(320), 제어부(330), 보고 자료 처리부(340), 수집 정보 데이터베이스(350) 및 전송 처리부(360)로 구성된다.
상기 프로그램 분석부(300)는 프로그램의 설치 상황을 분석하는 부분으로 현재 상기 클라이언트(120)에 설치되어 있는 프로그램을 분석하여, 상기 프로그램에 포함되어 있는 실행 파일(예컨대, 확장자가 'exe'인 파일) 및 컴포넌트(component) 파일들을 분석한다. 또한, 현재 상기 클라이언트(120)에 설치되어 있지는 않지만, 과거에 설치되었다 삭제된 프로그램들의 목록과 삭제된 것을 확인한 시간에 대한 정보를 작성한다.
상기 파일들의 분석 방법은 다양하게 구현 가능하다. 예컨대, 첫번째로 레지스트리(registry) 정보 추출부(401)에 의하여 검색하는 방법을 살펴 보면, 언인스톨(uninstall) 항목을 분석하여 상기 프로그램이 설치된 파일 및, 폴더(folder)를 찾아내거나, 고유의 UUID(Universally Unique Identifiers)값을 갖는 컴포넌트 파일(OLE, OCX, DLL과 같은 파일)의 정보를 통해 해당 파일을 찾아내거나, 소프트웨어 등록 정보가 있는 위치를 찾아내어 파일 및 폴더 등을 찾아내는 방법 등이 있다. 한편, 삭제된 프로그램의 경우에는 일부 레지스트리의 내용이 삭제되지 않고 남아 있는 경우가 있는데, 이렇게 남아 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.
두번째로, 링크 정보 추출부(402)에 의하여 찾는 방법을 살펴 보면, 데스크탑(Desktop)또는 프로그램에 포함된 단축 아이콘(shortcut or Link) 등에 포함되어 있는 실행 경로 및 실행 파일의 정보와 인수(Argument)로 넘겨지는 폴더 및 파일의 내용을 찾아내거나 윈도우즈 인스톨러(Windows installer)와 연동하여 동작하는 정보를 '*.msi' 파일(Windows installer의 설치 정보 파일 포멧)의 분석과 연동하여 상기 프로그램의 설치 정보를 찾아낼 수 있다.
세번째로, 설치/제거 프로그램 정보 추출부(403)에 의하여 프로그램의 설치 정보를 검색하는 방법을 살펴 보면,'*.msi' 파일과 같은 인스톨러(Windows installer) 파일 또는 인스톨러(Uninstaller)들의 언인스톨 정보를 통해 상기 프로그램의 설치 정보를 찾아낼 수 있다. 삭제된 프로그램의 경우에는 프로그램의 삭제정보를 관리하는 파일이 남아 있는 경우가 있는데, 이렇게 남아 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.
네번째로, 파일들의 등록정보 추출부(404)에 의하여 프로그램의 설치 정보를 검색하는 방법을 살펴 보면, 버전(version) 정보 또는 사이즈(size) 정보 등을 통하여 기존에 목록화 시켜둔 상기 프로그램들을 구성하는 프로그램 구성요소 정보를 사용하여 프로그램의 설치 정보를 찾아낼 수 있다. 또한, 삭제된 프로그램의 경우에는 일부 파일 및 폴더가 삭제되지 않고 남아 있는 경우가 있는데 기존의 목록화 시켜둔 상기 프로그램 구성요소들을 사용하거나, 파일 내부에 등록되어 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.
상기 프로그램 분석부(300)의 기능을 보다 상술한 바를 참조하여 세부적으로 구분하면 도 4a와 같이 구분될 수 있다.
도 4a는 본 발명의 실시예에 따른 클라이언트의 프로그램 분석 모듈에서 프로그램 분석부(300)의 구조를 나타낸 도면이다.
상기 도 4a를 참조하면, 상기 프로그램 분석부(300)는 상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부(400) 및 상기 설치/제거 정보 추출부(400)에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부(410)로 구성될 수 있다.
또한, 상기 설치/제거 정보 추출부(400)는 상술한 설치 정보 추출의 방법들에 따라 레지스트리 정보 추출부(401), 링크 정보 추출부(402), 설치/제거 프로그램 정보 추출부(403) 및 등록 정보 추출부(404) 등으로 구성될 수 있다.
즉, 상기 프로그램 분석부(300)에서는 현재 상기 클라이언트에 어떠한 프로그램들이 설치되어 있는지 설치 정보를 분석하여 각 프로그램의 실행 상황 감시 방법을 결정하게 된다. 또한, 상기 클라이언트에 설치되었으나 현재는 삭제된 프로그램들에 대한 정보를 분석하여 각 클라이언트에서 프로그램 설치 변동에 대한 정보를 얻을 수 있다. 이렇게 얻은 데이터는 데이터 관리부(510)에서 처리되어 하나의 기관 내에서 필요한 프로그램의 수요 예측에 사용될 수도 있다.
따라서, 상기 설치/제거 정보 추출부(400)에서 상술한 바와 같이 프로그램의 설치 정보를 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하고, 상기 생성된 정보에 기초하여 상기 실행 감시 방법 결정부(410)에서 각 프로그램들의 실행 상황에 대한 감시 방법을 결정하게 된다.
상기 실행 감시 방법 결정부(410)에서 결정하는 각 프로그램들의 실행 감시 방법은 상기 각 프로그램들을 구성하는 파일들의 특성에 따라 결정되며, 다음과 같은 기준으로 나뉘어질 수 있다. 첫번째로 "*.exe", "*.com"와 같은 실행파일로서, 자신이 메모리에 올라가서(loading) 실행되는 파일, 두번째로 "*.dll"(dynamic linked library)과 같은 파일로서 다른 프로그램들에 의해 스스로 메모리에 올라가서(loading) 실행되지는 않지만 다른 실행 파일에 의해서 사용되는 파일, 셋째로 컴포넌트(component) 파일과 같이 분산 환경을 위해 여러 개의 프로세스에 의해 공유되어지는 파일(dll, ocx,) 및 그 외에 워드프로세서 프로그램과 같이 실행에는 영향을 미치지 않지만, 내용을 보기 위해 필요한 컨텐츠(contents)파일로 구분하여 실행 감시 방법을 결정한다.
상기 설치/제거 정보 추출부(400)에서 상기 프로그램의 설치 정보를 검색하는 방법으로는 상술한 바와 같이 여러가지 방법에 의해 각 프로그램들의 설치 정보를 추출해 낼 수 있다.
한편, 상기 프로그램 분석부(300)에서 생성된 프로그램 설치 정보 및 제거 정보의 결과는 상기 프로그램 등록부(310)로 전송되고, 상기 프로그램 등록부(310)에서는 상기 프로그램에 대한 실행 감시의 편리성을 위해 상기 설치되어 있는 프로그램의 설치 정보를 참조하여 연관성 있는 파일 및 정보들간의 유기적인 관리를 수행한다.
여기서, 상기 연관성 있는 파일 및 정보는 실행 감시 방법 결정부(410)에서 결정한 각 프로그램들을 구성하는 파일들의 특성에 따라 구성되는 유기적인 구조이다.
한편, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보들은 상기 보고 자료 처리부(340)로 입력되어 기설정된 형식에 맞게 소정의 구조로 자료화되어 상기 수집 정보 데이터베이스(350)에 저장된다.
또한, 상기 보고 자료 처리부(340)에서는 상기 사용 정보 추출부(320)를 통해 획득한 각 프로그램의 사용시간(시작/종료시간)을 관리하고, 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행한다.
상기 전송 처리부(360)는 상기 클라이언트(120)의 프로그램 분석부(300) 및 사용 정보 추출부(320)에서 추출된 정보가 서버(100)로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리한다.
한편, 상기 프로그램 분석부(300)에서 생성된 프로그램의 설치 및 등록 정보는 상기 프로그램의 설치 및 삭제가 일어난 때, 즉 해당 클라이언트에 설치된 프로그램의 정보가 변경될 때에 상기 서버(100)로 전송 처리하는 것이 바람직하다. 또한, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보는 실시간으로 사용 정보가 변하게 되므로, 실시간 또는 주기적으로 상기 서버(100)로 전송 처리하는 것이 바람직하다. 상기 전송 처리부(360)에서 데이터를 전송하는 다른 방법으로는 상기 서버(100)의 정보 제공 요청시에 전송하도록 처리할 수도 있다.
이때, 상기 프로그램 등록부(310)를 통한 파일들의 등록 방법으로는 상술한 프로그램 분석부(300)에서 얻어낸 정보를 통해 프로그램 목록을 작성하는 방법 이외에도, 사용자가 수동으로 상기 프로그램 목록을 작성하고, 각 프로그램의 구성 요소인 exe 파일 및 기타 파일들을 포함시키거나, 상기 프로그램 목록을 작성할 때, 사용자가 임의의 폴더를 선택하고 상기 프로그램 분석부(300)를 사용하여 각 파일들을 분석함으로써 상기 각 프로그램의 파일 목록을 등록시킬 수 있다.
상기 프로그램 등록부(310)를 통해 각 프로그램의 목록 및 파일이 등록되면, 상기 등록된 프로그램에 대한 목록을 참조하여 각 프로그램의 실행 상황을 상기 사용 정보 추출부(320)에서 감시하게 된다.
이에 대한 구현을 위하여 상기 사용 정보 추출부(320)는 도 4b에 도시된 바와 같이 프로세스(process) 감시부(420), 파일 로드(file load) 감시부(430) 및 컴포넌트 로드(component load) 감시부(440)로 구성할 수 있다.
상기 프로세스 감시부(420)는 “*.exe”, “*.com”와 같은 실행 파일로서, 자신이 메모리에 올라가서(loading) 실행되는 파일 및 “*.bat”(batch file)파일을 사용하여 여러 개의 실행 파일이 조합되어져 실행되는 프로세스의 시작시간과 종료시간을 감시하는 부분이다. 상기 프로그램 등록부(310)에 등록되어 있는 연관성 있는 파일정보를 사용하여 감시한다.
또한, 상기 파일 로드 감시부(430)는 “*.dll”(dynamic linked library)과 같은 파일로서 다른 프로그램들에 의해서 스스로 메모리에 올라가서(loading) 실행되지는 않지만 다른 실행파일에 의해서 사용되는 파일 또는 워드프로세서 프로그램과 같이 실행에는 영향을 미치지 않지만 내용을 보기위해 필요한 컨텐츠(contents)파일, "*.vxd","*.drv","*.sys"와 같은 디바이스 드라이버(device driver)파일로서 시스템 시작전 또는 실행중에 올라가서(loading)되서 실행되는 파일 등 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행한다.
또한 컴포컨트 로드 감시부(440)를 사용함으로써 정확하게 해당 컴포넌트파일을 호출하여 사용한 프로세스에 대한 정보를 추출함으로써, 어떤 프로세스(process)가 정확하게 해당 컴포넌트 파일을 사용하는지 알려주는 역할을 한다. 일예로 대부분의 ERP(Enterprise Resource Planning) 프로그램들은 마이크로 소프트 오피스(Microsoft Office)의 엑셀(Excel) 프로그램의 컴포넌트를 사용하거나 연동하여 사용되는 경우가 많은데, 이러한 경우의 처리를 위해 사용한다.
한편, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보들은 상기 보고 자료 처리부(340)로 입력되어 기설정된 형식에 맞게 소정의 구조로 자료화되어 상기 수집 정보 데이터베이스(350)에 저장된다.
또한, 상기 보고 자료 처리부(340)에서는 상기 사용 정보 추출부(320)를 통해 획득한 각 프로그램의 사용시간(시작/종료시간)을 관리하고, 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행한다.
상기 전송 처리부(360)는 상기 클라이언트(120)의 프로그램 분석부(300) 및 사용 정보 추출부(320)에서 추출된 정보가 서버(100)로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리한다.
한편, 상기 프로그램 분석부(300)에서 생성된 프로그램의 설치 및 등록 정보는 상기 프로그램의 설치 및 삭제가 일어난 때, 즉 해당 클라이언트에 설치된 프로그램의 정보가 변경될 때에 상기 서버(100)로 전송 처리하는 것이 바람직하다. 또한, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보는 실시간으로 사용 정보가 변하게 되므로, 실시간 또는 주기적으로 상기 서버(100)로 전송 처리하는 것이 바람직하다. 상기 전송 처리부(360)에서 데이터를 전송하는 다른 방법으로는 상기 서버(100)의 정보 제공 요청시에 전송하도록 처리할 수도 있다.
제어부(330)는 상기 프로그램 분석 모듈(205)을 구성하는 각 엘리먼트들 간의 데이터 처리를 제어한다.
이상으로, 상기 클라이언트(120)에서 본 발명을 수행하는 프로그램 분석 모듈(205)에 대해 상세히 설명하였다. 이하, 도 5를 참조하여 서버(100)에서 본 발명을 수행하는 프로그램 관리 모듈(206)의 동작을 설명한다.
도 5는 본 발명의 실시예에 따른 서버에서 프로그램 관리 모듈의 세부 구조를 나타낸 도면이다.
상기 도 5를 참조하면, 본 발명에 따른 서버(100)에서의 프로그램 관리 모듈(206)은 데이터 처리부(500), 데이터 관리부(510), 제어부(520) 및 프로그램 정보 데이터베이스(530) 등으로 구성된다.
상기 데이터 처리부(500)는 상기 클라이언트(120)에서 수집되어 전송된 데이터를 분석하여 클라이언트에 대한 정보, 해당 클라이언트에 설치된 프로그램 정보 및 상기 프로그램의 실행 정보 등을 추출해낸다.
상기 데이터 처리부(500)에서 분석된 데이터는 제어부(520)를 거쳐 상기 프로그램 정보 데이터베이스(530)에 저장된다. 이때, 상기 프로그램 정보 데이터베이스(530)에 저장되는 정보는 각 클라이언트별 프로그램의 설치 현황 정보 및 각 프로그램에 대한 실행 정보들이 구조화되어 저장된다.
한편, 상기 데이터 관리부(510)에서는 서버 관리자등의 요청에 의한 각 클라이언트에 대한 프로그램 정보를 소정의 기설정된 포맷에 맞게 생성하여 출력할 수 있도록 데이터를 가공하게 된다. 또한, 상기 데이터 관리부(510)는 상기 각 클라이언트별로 수집된 프로그램에 대한 정보를 분석하여 소정의 통계 자료를 생성함으로써 서버 관리자로 하여금 클라이언트들에 설치된 프로그램들에 대한 관리를 도와주게 된다.
또한, 상기 각 클라이언트에서 설치되어 사용하고 있는 프로그램들에 대한 정보를 수집하거나, 설치되었다가 삭제된 프로그램들의 정보를 수집하여 각 클라이언트에서 사용되었던 프로그램들의 사용 이력 정보를 생성하고, 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 수집하여 소프트웨어 추가 구매시에 기초 데이터 및 라이센스 구매 시기를 알려주는 도구로 활용할 수 있다.
상기 동시 사용량의 측정 시스템 및 방법은 상기 수집된 정보에 대해서 시간창를 사용 시간대에 좌, 우측으로 이동하면서 상기 창내에 보이는 사용자의 수를 측정하면 이값이 동시 사용량이 된다. 여기서 시간창의 정의는 임의의 시간대, 즉, 시작시간과 종료시간 사이를 가변 조정할 수 있는 하나의 가상적인 시간대로서 작게는 몇초에서부터 크게는 수일간까지 될 수 있다. 상기 동시 사용량은 물론 상기 시간창을 적용하는 시간대에 따라 변화할 수 있다.
따라서, 상기 시간창을 여러 시간대에 적용하고, 상기 값을 추출하여 평균값을 산출하거나, 최고치 및 최소치 값을 각각 활용할 수도 있다. 또한, 수초간의 동시 사용량을 추출하기 위해서는 시간창을 좁게 구성하는 것이 바람직하며, 수일간의 긴 시간동안 동시 사용량을 추출하기 위해서는 시간창을 충분히 크게 함으로서 원하는 동시 사용량을 추출하는 것이 가능하다.
아울러, 상기 서버(100)가 각 클라이언트(120)로 본 발명에 따른 프로그램에 대한 정보를 요청할 경우, 소정의 요청 메시지를 해당 클라이언트의 식별 아이디와 함께 생성하여 전송되도록 처리한다.
이상으로 본 발명의 실시예에 따른 서버 및 클라이언트 시스템의 세부 구성들을 상세히 설명하였다. 이하, 상기 시스템을 통해 본 발명이 수행되는 절차를 도 6 내지 도 9를 참조하여 설명한다.
도 6은 본 발명의 실시예에 따른 클라이언트에서의 프로그램 정보 생성 절차를 나타낸 흐름도이다.
상기 도 6을 참조하면, 먼저 클라이언트에서는 프로그램의 목록 및 파일 정보를 검색(단계 S600)하게 된다. 그런다음, 상기 검색된 프로그램의 목록 및 파일 정보를 상술한 바에 따라 정리하여 프로그램 목록을 작성(단계 S610)한다. 한편, 상기 절차들은 사용자의 설정 등에 따라 주기적으로 수행되도록 하는 것이 바람직하며, 상기 사용자의 요청에 의해서도 수행될 수 있음은 상술한 바와 같다.
한편, 상기 작성된 프로그램 목록 및 파일 정보들을 참조하여 각 프로그램에 대한 실행 여부를 감시(단계 S620)한다. 상기 프로그램에 대한 실행 여부 감시 결과에 대한 실행 정보는 소정의 데이터베이스에 구조화되어 저장(단계 S630)된다. 이때, 상기 저장된 정보는 소정의 포맷으로 메시지화되어 주기적으로 상기 서버로 전송될 수 있다.
다른 방법으로 상술한 바와 같이 만약 서버에서 상기 데이터의 정보 전송 요청이 있을 경우(단계 S640), 상기 프로그램의 실행 정보를 서버로 전송(단계 S650)하도록 구현할 수 있다. 아울러, 상기 서버에서의 데이터 전송 요청이 주기적으로 수행되도록 구현할 수도 있다.
도 7은 본 발명의 실시예에 따른 서버에서의 처리 절차를 나타낸 흐름도이다. 상기 도 7은 클라이언트에서 수집된 정보를 서버에서 요청함으로써 수신하게 되는 절차를 나타낸다. 그러나, 상술한 바와 같이 상기 서버의 요청에 의해서가 아니라 상기 각 클라이언트로 하여금 주기적으로 상기 정보를 송신하도록 구현할 수도 있다.
상기 도 7을 참조하면, 먼저 서버에서는 각 클라이언트별 프로그램 실행 정보를 요청(단계 S700)하게 된다. 상기 요청된 정보가 해당 클라이언트로 전송되면, 상기 클라이언트는 상기 요청에 응답하여 기수집된 프로그램에 대한 각종 정보들을 서버로 전송하게 된다.
상기 서버는 상기 전송된 정보들을 수신(단계 S710)하고, 상기 각 클라이언트로부터 수신된 프로그램에 대한 정보들을 포함하는 메시지를 분석(단계 S720)하고, 상기 정보를 각 클라이언트별로 분류하여 소정의 데이터베이스에 저장(단계 S730)시킨다.
한편, 상기 서버 관리자의 상기 각 클라이언트들에 대한 프로그램 정보 요청시 상기 저장된 정보들 또는 상기 정보로부터 분석된 각종 통계 정보 등을 디스플레이(단계 S740)하게 된다.
도 8은 본 발명의 실시예에 따른 프로그램의 사용 정보 추출 절차를 나타낸 흐름도이다.
상기 도 8은 상기 클라이언트에서 각 프로그램에 대한 정보를 검색하여 등록하고, 상기 등록된 각 프로그램이 실행되는지 여부를 검사하는 실시예를 나타낸다.
먼저 상기 클라이언트는 자신에게 설치된 프로그램의 정보를 수집(단계 S801)하여, 상기 클라이언트에서 관리하려는 프로그램 및 파일들을 등록(단계 S802)한다.
상기 등록된 각 프로그램에 대한 해당 파일 정보들 중 실행 파일들을 중심으로 확인하여 상기 해당 프로그램의 실행 여부를 검사한다.
예컨대, 먼저 실행 파일, 예컨대 확장자가 'exe'(즉, 파일명이 *.exe)인 'exe 파일'을 체크(단계 S803)하도록 할 수 있다. 상기 'exe 파일'의 체크 결과 실행되고 있을 경우, 상기 'exe 파일'이 처음 실행되었는지 여부를 검사(단계 S804)한다. 만약, 상기 검사 결과 상기 'exe 파일'이 처음 실행되었을 경우에는 실행 시작 시간을 기록(단계 S811)하게 된다.
반면, 상기 검사 결과 상기 'exe 파일'이 처음 실행된 것이 아닐 경우에는 실행 파일이 종료되었는지 여부를 검사(단계 S805)한다. 만약, 상기 검사 결과 상기 'exe 파일'이 종료되었을 경우에는 실행 종료 시간을 기록(단계 S810)하게 된다.
한편, 상기 'exe 파일'의 검사 결과 처음 실행도 아니고, 종료되지도 않았을 경우에는 소정 시간만큼 대기(단계 S806)한 후, 프로그램에 대한 체크 항목의 변경 여부를 검사(단계 S807)한다. 상기 검사 결과, 프로그램에 대한 체크 항목이 변경되었을 경우에는 변경된 정보에 따라 해당 체크 항목을 수정(단계 S808)하게 된다.
상기의 동작을 완료한 후 "종료 flag == true"(단계 S814)로 수정이 되었는지 확인하여 종료를 나타내면(즉, 플래그(flag)가 true로 되었으면) 작업을 종료하고, 종료를 나타내지 않으면(즉, 플래그(flag)가 false로 되었으면) 'exe 파일‘의 체크(단계 S803)로 진행한다.
한편, 상기 'exe 파일'의 체크 결과 실행되고 있지 않을 경우에는 다른 프로그램 파일이 사용되고 있는지를 검사(단계 S809)하고, 상기 검사 결과에 따라 실행 시작 시간 또는 실행 종료 시간을 기록(단계 S811 또는 단계 S810)하게 된다. 상기 기록 절차가 완료된 후, 실시간 업데이트를 수행(단계 S812)하고자 할 경우에는 상기 기록된 결과, 즉 변경 사항을 서버로 전송(단계 S813)하게 된다.
상기 프로그램 실행 여부 검사 절차는 상술한 바와 같이 주기적 또는 사용자의 설정 및 요청에 의해 수행될 수 있다. 또한, 상기 검사 결과 수집된 정보를 서버로 전송하는 절차도 상기 서버의 요청에 의해서 또는 실시간 또는 주기적으로 수행되도록 구현할 수 있다.
상기 도 6 내지 도 8에서는 이미 설치된 프로그램에 대한 설치 여부 및 실행 여부 검사 방법을 설명하였다. 이하, 도 9에서는 각 사용자별로 향후 요구되는 프로그램에 대한 예상 수요를 서버에서 파악하는 방법을 설명한다.
도 9는 본 발명의 실시예에 따른 프로그램 예상 수요를 파악하는 절차를 나타낸 흐름도이다.
상기 도 9를 참조하면, 소정의 기관 또는 단체 내에 설치된 전체 또는 일부 컴퓨터 상에서 장래에 필요한 소프트웨어에 대한 예상 수요를 파악하기 위하여 서버에서 각 클라이언트들로 프로그램 추가 예상 리스트를 전송(단계 S900)하게 된다.
이때 상기 예상 리스트는 각 클라이언트에서 설치되어 사용하고있는 프로그램들에 대한 정보를 수집하고 또한 설치되었다가 삭제된 프로그램들의 정보를 수집하여 각 클라이언트에서 사용되었던 프로그램들의 사용 이력 정보를 생성하고, 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 수집하여 프로그램 추가 예상 리스트로 작성 할 수도 있다.
상기 각 클라이언트들은 상기 서버로부터 전송된 프로그램 추가 예상 리스트를 수신(단계 S910)하고, 이후 자신이 필요로 하는 프로그램에 대한 목록을 작성하여 서버로 피드백하게 된다.
상기 프로그램 추가 예상 리스트를 수신한 각 클라이언트들은 상기 리스트를 확인하고 자신이 신청할 프로그램이 있는지 확인(단계 S920)한다. 상기 확인 결과, 신청할 프로그램이 존재할 경우, 상기 리스트에 포함된 해당 프로그램에 체크(단계 S930)하게 된다.
그런다음, 상기 리스트에 없는 프로그램 중에서 추가로 더 신청할 프로그램이 있을 경우(단계 S940), 상기 리스트에 신청할 프로그램을 추가함으로써 프로그램 신청 리스트를 작성(단계 S950)하게 된다.
상기 리스트 작성이 완료되면, 작성된 리스트를 서버로 전송(단계 S960)하게 되고, 상기 서버는 각 클라이언트들로부터 각각 작성된 리스트를 수신하게 된다.
상기 서버는 상기 클라이언트들로부터 수집된 프로그램 신청 리스트와 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 참고하여 현재 수량의 부족 현상을 일으키는 소프트웨어와 한 기관의 인원대비 부족현상을 일으킬 수 있는 소프트웨어를 예상하여 해당 클라이언트들 전체의 프로그램 예상 수요에 대한 통계치를 산출(단계 S970)한다.
상기와 같이 함으로써, 네트워크로 연결된 소정의 기관 내에 설치되어 있는 복수의 컴퓨터들에 대한 프로그램 수요 조사를 용이하게 수행할 수 있다. 상기에서는 서버에서 예비 수요 리스트를 제공한 후, 이에 대한 응답으로 각 클라이언트들이 가상 수요를 체크하여 전송하는 방법을 사용하였다. 다른 방법으로는, 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 ASP 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 사용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출할 수가 있다.
또 다른 방법으로는, 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 우선 서버에 충분한 소프트웨어 라이센스를 구비한 후, 각 클라이언트 컴퓨터 상에서 필요한 시점에 해당 소프트웨어를 온라인으로 대여하여 사용하게 하고, 사용 후에는 온라인으로 반납하는 방법을 사용할 수 있다. 이와 같이 함으로써, 해당 기관 또는 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출할 수가 있다.
상기 도 6 내지 도 9와 같이 함으로써, 단일 컴퓨터 또는 소정의 네트워크로 연결된 기관 혹은 단체 내에 설치된 전체 혹은 일부 컴퓨터 상에서 과거 혹은 현재 설치, 사용중인 소프트웨어에 대한 정보를 추출하고, 사용 정보 확보할 수가 있게 된다.
아울러, 서버에서 프로그램들에 대한 예비 수요 리스트를 제공하고, 상기 리스트를 통해 클라이언트가 가상 수요를 체크하거나, 사용자가 향후 필요한 소프트웨어 리스트를 요청하여 해당 정보를 추출함으로써, 상기 소정의 기관 혹은 단체 내에서 미래에 필요한 소프트웨어에 대한 예비 수요를 효율적으로 파악할 수 있게 된다. 또한, 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 대여하여 사용하고, 사용후 온라인으로 반납하는 방식으로 운용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출할 수가 있게 된다.
도 10은 본 발명의 실시예에 따른 서버에서 수집된 정보를 디스플레이하는 방법을 나타낸 도면이다.
상기 도 10을 참조하면, 서버 관리자는 상술한 절차들에 의해 수집된 각 클라이언트별 프로그램의 설치 여부 및 실행 정보 등을 소정의 기설정된 포맷에 의해 일괄적으로 파악할 수 있다.
예컨대, 각 클라이언트에 대한 이름(S-1, S-2,... 등)에 따라 각 클라이언트에 설치된 모든 프로그램의 목록(예컨대, 한글 2002, MS 메신저, MS word 등)이 디스플레이된다. 아울러, 상기 각 프로그램에 대한 현재 실행 상태 및 사용 시간에 대한 정보 등이 하나의 페이지 또는 링크된 페이지에 의해 디스플레이될 수 있다.
한편, 상기 도 10에 도시되지는 않았지만, 상기 수집된 데이터들을 기초로 각종 분석 자료 또는 통계 자료의 생성이 가능하다. 예컨대, 각 프로그램별 설치 현황, 사용 빈도, 사용 시간 통계, 프로그램 인증 여부 등의 정보들이 제공될 수 있다.
한편, 본 발명의 실시예에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
본 발명에 따르면, 소정의 컴퓨터 시스템 내에 설치되어 있는 프로그램들의 상태 정보를 추출하여 분석함으로써 상기 프로그램들의 자원 관리를 효율적으로 수행할 수 있게 되는 장점이 있다. 특히 상기 컴퓨터 시스템에 설치되어 있는 프로그램들 혹은 실행되고 있는 프로그램들에 대한 목록, 레지스트리 및 파일 정보 분석을 통해 상기 프로그램들의 설치 정보, 실행 정보 혹은 사용 정보를 분석, 추출, 등록, 저장 및 관리하여, 하나의 컴퓨터 시스템 상에서 작동을 준비하거나, 작동되거나, 작동된 과거 및 현재의 정보를 전부 추출하고, 이를 바탕으로 통계를 낼 수 가 있다.
또한, 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 설치된 프로그램들에 대한 현황 파악, 소재 파악 및 상기 클라이언트의 사용자들이 현재 사용하고 있는 프로그램의 사용량에 대한 통계치를 개별 클라이언트로부터 추출함으로써 해당 기관내에 설치되어 있는 프로그램의 보다 상세하고 구체적인 사용 현황 파악과 상기 기관 내에 속해 있는 사용자들의 프로그램의 사용 경향을 파악함으로써, 상기 기관이 보유하고 있는 소프트웨어 자원(resource)의 효율적인 사용을 기할 수 있다. 또한, 상기 프로그램 사용에 대한 사용량의 증가로 해당 프로그램의 추가가 요청되는 소프트웨어에 대해서는 추가 구매 시기와 수량을 예측하며, 상기 사용자들이 선호하는 소프트웨어에 대한 욕구를 예측함으로써 소프트웨어 자원의 효율적인 구매와 관리를 할 수 있다는 장점이 있다.
아울러, 상기한 본 발명의 특징을 이용하여 소정의 기관 혹은 단체 내에서 사용중인 소프트웨어에 대한 동시 사용량을 측정 및 분석할 수 있다. 상기 측정 및 분석된 동시 사용량은 소프트웨어의 구매 및 자산 관리에 중요한 정보로서 활용가능하다. 또한, 상기한 본 발명을 이용하여, 소정의 기관 혹은 단체 내에서 사용중인 정품과 불법 복제물을 정확히 파악할 수 있어 소프트웨어 정품 확산에 도움을 주는 도구로 활용될 수도 있다.
또한, 본 발명의 특징을 이용하여, 어떤 기관 혹은 단체내에서 향후 소프트웨어가 하나의 서비스로서 사용한 만큼 대금을 지불하게 되는 종량제 시대에 사용량을 시간별, 사용자별, 혹은 여타 복합적인 방식을 적용하여 사용량을 산출하거나 통계, 추출할 수 있는 기본 정보로 활용할 수 있다.
결론적으로 본 발명에 따라 소정의 기관 혹은 단체내에서 과거, 현재 혹은 미래에 필요한 소프트웨어의 산정을 보다 정확히 할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따라 적용될 수 있는 서버/클라이언트 시스템 구조를 나타낸 도면.
도 2a는 본 발명의 제1 실시예에 따른 컴퓨터 시스템의 내부 구조를 나타낸 도면.
도 2b는 본 발명의 제2 실시예에 따른 서버 및 클라이언트 시스템의 내부 구조를 나타낸 도면.
도 3은 본 발명의 실시예에 따른 컴퓨터 시스템에서 프로그램 분석 모듈의 세부 구조를 나타낸 도면.
도 4a는 본 발명의 실시예에 따른 컴퓨터 시스템의 프로그램 분석 모듈에서 프로그램 분석부의 구조를 나타낸 도면.
도 4b는 본 발명의 실시예에 따른 컴퓨터 시스템의 프로그램 분석 모듈에서 사용정보 추출부의 구조를 나타낸 도면.
도 5는 본 발명의 실시예에 따른 컴퓨터 시스템에서 프로그램 관리 모듈의 세부 구조를 나타낸 도면.
도 6은 본 발명의 실시예에 따른 컴퓨터 시스템에서의 프로그램 정보 생성 절차를 나타낸 흐름도.
도 7은 본 발명의 실시예에 따른 서버 컴퓨터에서의 처리 절차를 나타낸 흐름도.
도 8은 본 발명의 실시예에 따른 프로그램의 사용 정보 추출 절차를 나타낸 흐름도.
도 9는 본 발명의 실시예에 따른 프로그램 예상 수요를 파악하는 절차를 나타낸 흐름도.
도 10은 본 발명의 실시예에 따른 서버에서 수집된 정보를 디스플레이하는 방법을 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
100 : 서버 110 : 네트워크
120 : 클라이언트 200, 290 : 메모리
201 : OS 202 : 프로그램 정보 분석 장치
203 : 프로그램 205 : 프로그램 분석 모듈
206 : 프로그램 관리 모듈 210, 280 : CPU
220, 250 : I/O 어댑터 230, 260 : 데이터 저장장치
240, 270 : 네트워크 I/F 300 : 프로그램 분석부
310 : 프로그램 등록부 320 : 사용 정보 추출부
330, 520 : 제어부 340 : 보고 자료 처리부
350 : 수집 정보 데이터베이스 360 : 전송 처리부
400 : 설치/제거 정보 추출부 410 : 실행 감시 방법 결정부
420 : 프로세스 감시부 430 : 파일 로드 감시부
440 : 컴포넌트 로드 감시부 500 : 데이터 처리부
510 : 데이터 관리부 530 : 프로그램 정보 데이터베이스

Claims (40)

  1. 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 장치에 있어서,
    상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 프로그램 분석 모듈; 및
    상기 각 프로그램에 대한 설치 정보 및/또는 실행 상태에 대한 정보를 분석하고 통계화하는 프로그램 관리 모듈;을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  2. 제1항에 있어서,
    상기 프로그램 분석 모듈은;
    상기 컴퓨터 시스템에 설치된 상기 프로그램의 설치 정보를 분석하는 프로그램 분석부;
    상기 프로그램 분석부에서 분석한 각 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 프로그램 등록부; 및
    상기 프로그램 등록부에 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 사용 정보 추출부;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  3. 제2항에 있어서,
    상기 프로그램 분석부는,
    상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부; 및
    상기 설치/제거 정보 추출부에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  4. 제3항에 있어서,
    상기 설치/제거 정보 추출부는,
    기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출부;
    상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출부;
    상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 목록 및 파일 설치 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및
    설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  5. 제3항에 있어서,
    상기 설치/제거 정보 추출부는,
    이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출부;
    상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출부;
    상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및
    삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  6. 제2항에 있어서,
    상기 프로그램 등록부는,
    상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  7. 제2항에 있어서,
    상기 사용 정보 추출부는,
    상기 프로그램 분석부에서 얻은 결과를 통해 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시부;
    실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시부; 및
    컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  8. 제1항에 있어서,
    상기 프로그램 관리 모듈은,
    상기 프로그램 분석 모듈에서 수집된 데이터를 분석하여 컴퓨터에 설치/제거된 프로그램 정보 및 상기 프로그램의 실행 정보를 저장하는 데이터 처리부;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.
  9. 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버 및 클라이언트들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에 있어서,
    상기 클라이언트에 설치되며, 상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하여 전송하는 프로그램 분석 모듈; 및
    상기 서버에 설치되며, 상기 각 클라이언트로부터 상기 전송된 프로그램에 대한 설치 정보 및/또는 실행 상태에 대한 정보를 수신하고, 상기 수신된 정보로부터 상기 각 클라이언트별 프로그램들에 대한 정보를 구조화하여 저장하는 프로그램 관리 모듈;을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  10. 제9항에 있어서,
    상기 프로그램 분석 모듈은;
    상기 클라이언트에 설치된 상기 프로그램의 설치 정보를 분석하는 프로그램 분석부;
    상기 프로그램 분석부에서 분석한 각 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 프로그램 등록부;
    상기 프로그램 등록부에 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 사용 정보 추출부; 및
    상기 사용 정보 추출부에서 수행한 감시 결과에 따른 정보를 기설정된 형식에 맞게 자료화하는 보고 자료 처리부;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  11. 제9항에 있어서,
    상기 프로그램 분석 모듈은,
    상기 프로그램 분석부 및/또는 사용 정보 추출부에서 추출된 정보가 서버로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리하는 전송 처리부;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  12. 제9항에 있어서,
    상기 프로그램 분석부는,
    상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부; 및
    상기 설치/제거 정보 추출부에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  13. 제12항에 있어서,
    상기 설치/제거 정보 추출부는,
    기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출부;
    상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출부;
    상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 목록 및 파일 설치 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및
    설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  14. 제12항에 있어서,
    상기 설치/제거 정보 추출부는,
    이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출부;
    상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출부;
    상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및
    삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  15. 제10항에 있어서,
    상기 프로그램 등록부는,
    상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  16. 제10항에 있어서,
    상기 사용 정보 추출부는,
    상기 프로그램 분석부에서 얻은 결과를 통해 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시부;
    실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시부; 및
    컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  17. 제10항에 있어서,
    상기 보고 자료 처리부는,
    상기 사용 정보 추출부를 통해 획득한 상기 프로그램의 사용 시간을 관리하고, 상기 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  18. 제9항에 있어서,
    상기 프로그램 관리 모듈은,
    상기 클라이언트에서 수집되어 전송된 데이터를 분석하여 각 클라이언트에 설치/제거된 프로그램 정보 및 상기 프로그램의실행 정보를 저장하는 데이터 처리부; 및
    상기 각 클라이언트 시스템들이 사용하는 소프트웨어 프로그램에 대해서 동시 사용자 수를 추출하기 위해서 필요한 계산 알고리즘 및 상기 추가 예상 프로그램의 목록을 작성등을 하는 데이터 관리부;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.
  19. 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 방법에 있어서,
    상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 프로그램 분석 단계; 및
    상기 각 프로그램에 대한 설치 정보 및 실행 상태에 대한 정보를 분석하고 통계화하는 프로그램 관리 단계;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  20. 제19항에 있어서,
    상기 프로그램 분석 단계는,
    상기 컴퓨터 시스템에 설치된 상기 프로그램의 설치 정보를 분석하는 단계;
    상기 분석된 각 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 단계;
    상기 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 단계; 및
    상기 수행한 감시 결과에 따른 정보를 기설정된 형식에 맞게 자료화하는 단계;를 더 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  21. 제19항에 있어서,
    상기 프로그램 분석 단계는;
    상기 프로그램의 설치 프로그램이 생성한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치 정보 추출 단계; 및
    상기 단계에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정 단계;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  22. 제21항에 있어서,
    상기 설치 정보 추출 단계에서의 설치 정보 추출 방법은,
    기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출 방법, 상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 목록 및 파일 설치 정보를 추출하는 설치 정보 추출 방법, 및 설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  23. 제21항에 있어서,
    상기 설치 정보 추출 단계에서의 설치 정보 추출 방법은,
    이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출 방법, 상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부 방법 및 삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  24. 제19항에 있어서,
    상기 프로그램 분석 단계는,
    상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  25. 제20항에 있어서,
    상기 실행 상황 감시 단계에서의 실행 상황 감시 방법은,
    상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시방법, 실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시 방법, 및 컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시 방법; 중에서 선택된 어느 하나 이상의 방법으로 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.
  26. 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에서, 상기 클라이언트에 설치된 상기 프로그램에 대한 정보를 상기 서버로 전송하는 방법에 있어서,
    상기 클라이언트에 설치된 상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 단계; 및
    상기 수집된 정보를 상기 서버로 전송하는 단계;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  27. 제26항에 있어서,
    상기 각 클라이언트에 설치된 프로그램에 대한 정보를 수집하는 단계는,
    상기 각 클라이언트에 설치된 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 단계;
    상기 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 단계; 및
    상기 수행한 감시 결과에 따른 정보를 기설정된 형식에 맞게 자료화하는 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  28. 제26항에 있어서,
    상기 방법은,
    상기에서 추출된 정보가 서버로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리하는 전송 처리 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  29. 제27항에 있어서,
    상기 클라이언트에 설치된 프로그램에 대한 정보를 수집하는 단계는,
    상기 프로그램의 설치 프로그램이 생성한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치 정보 추출 단계; 및
    상기 단계에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정 단계;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  30. 제27항에 있어서,
    상기 설치 정보 추출 단계에서 수행되는 설치 정보 추출 방법은,
    기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출 방법, 상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 설치 정보를 추출하는 설치 정보 추출 방법, 및 설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  31. 제27항에 있어서,
    상기 설치 정보 추출 단계에서의 설치 정보 추출 방법은,
    이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출 방법, 상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부 방법 및 삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  32. 제26항에 있어서,
    상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  33. 제27항에 있어서,
    상기 실행 상황을 감시하는 단계에서 수행되는 실행 상황 감시 방법은,
    상기 프로그램 분석부에서 얻은 결과를 통해 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시방법, 실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시 방법, 및 컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시 방법; 중에서 선택된 어느 하나 이상의 방법으로 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  34. 제26항에 있어서,
    상기 방법은,
    상기 수집된 실행 상태 정보로부터 상기 프로그램의 사용 시간을 관리하는 보고 자료 처리 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  35. 제34항에 있어서,
    상기 보고 자료 처리 단계는,
    상기 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  36. 제26항에 있어서,
    상기 서버가 상기 각 클라이언트로 추가 예상 프로그램의 목록을 전송하는 단계; 및
    상기 예상 프로그램 목록을 수신한 각 클라이언트가 추가하고자 하는 프로그램의 목록을 작성하여 상기 서버로 전송하는 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  37. 제36항에 있어서,
    상기 추가 예상 프로그램 목록을 수신한 소정의 클라이언트에서 상기 클라이언트가 신청할 프로그램이 상기 수신한 추가 예상 프로그램 목록에 있을 경우, 상기 신청할 프로그램을 상기 목록에서 체크하여 신청함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  38. 제36항에 있어서,
    상기 추가 예상 프로그램 목록을 수신한 소정의 클라이언트에서 상기 클라이언트가 신청할 프로그램이 상기 수신한 추가 예상 프로그램 목록에 없을 경우, 상기 신청할 프로그램을 상기 목록에 추가하여 신청함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  39. 제36항에 있어서,
    상기 추가 예상 프로그램의 목록을 전송하는 단계는,
    상기 설치/제거 정보 추출부에서 얻은 삭제된 프로그램의 목록을 통해 요청되는 프로그램의 종류 및 수량을 예측하는 단계; 및
    상기 설치/제거 정보 추출부에서 얻은 설치된 프로그램의 목록과 사용정보 추출부에서 얻은 프로그램 사용량을 통해 프로그램의 수요를 예측하는 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.
  40. 제19항 내지 제39항 중에서 선택된 어느 한 항에 따른 방법을 수행할 수 있는 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020040041165A 2004-06-05 2004-06-05 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체 KR100625867B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040041165A KR100625867B1 (ko) 2004-06-05 2004-06-05 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040041165A KR100625867B1 (ko) 2004-06-05 2004-06-05 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체

Publications (2)

Publication Number Publication Date
KR20050115761A true KR20050115761A (ko) 2005-12-08
KR100625867B1 KR100625867B1 (ko) 2006-09-20

Family

ID=37289634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040041165A KR100625867B1 (ko) 2004-06-05 2004-06-05 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체

Country Status (1)

Country Link
KR (1) KR100625867B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907453B1 (ko) * 2006-12-27 2009-07-10 주식회사 안철수연구소 사용자 평가에 기반한 소프트웨어 관리 방법 및 그 시스템
KR101028691B1 (ko) * 2011-01-05 2011-04-14 (주)유케이디 정품 소프트웨어 관리시스템의 운영방법
KR101331897B1 (ko) * 2011-12-15 2013-11-21 숭실대학교산학협력단 모바일 디바이스 어플리케이션의 동적 오프로딩 장치 및 방법
KR20160103549A (ko) * 2011-09-27 2016-09-01 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치
CN108958654A (zh) * 2018-06-26 2018-12-07 郑州云海信息技术有限公司 一种存储系统的管理方法及相关装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907453B1 (ko) * 2006-12-27 2009-07-10 주식회사 안철수연구소 사용자 평가에 기반한 소프트웨어 관리 방법 및 그 시스템
KR101028691B1 (ko) * 2011-01-05 2011-04-14 (주)유케이디 정품 소프트웨어 관리시스템의 운영방법
KR20160103549A (ko) * 2011-09-27 2016-09-01 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치
KR101331897B1 (ko) * 2011-12-15 2013-11-21 숭실대학교산학협력단 모바일 디바이스 어플리케이션의 동적 오프로딩 장치 및 방법
CN108958654A (zh) * 2018-06-26 2018-12-07 郑州云海信息技术有限公司 一种存储系统的管理方法及相关装置
CN108958654B (zh) * 2018-06-26 2021-08-10 郑州云海信息技术有限公司 一种存储系统的管理方法及相关装置

Also Published As

Publication number Publication date
KR100625867B1 (ko) 2006-09-20

Similar Documents

Publication Publication Date Title
US9323519B2 (en) Packaging an application
US8219987B1 (en) Optimized virtual machine specification for provisioning application specific runtime environment
US8997054B2 (en) Software application certification service
JP4410679B2 (ja) 分散データ処理システムにおいてサービスを提供するエンティティを公開し、モニターするための方法及び装置
US7823146B2 (en) Method and system for software installation
US8171141B1 (en) Provisioning system including stack manager
US9122715B2 (en) Detecting changes in end-user transaction performance and availability caused by changes in transaction server configuration
US11671506B2 (en) Microservice management system for recommending modifications to optimize operation of microservice-based systems
US10638301B2 (en) Classification of objects
US20060167891A1 (en) Method and apparatus for redirecting transactions based on transaction response time policy in a distributed environment
US11789751B2 (en) System and method for estimation of time to completion for heterogeneous application upgrades in a customer environment
JP2001331232A (ja) ライセンス・アプリケーション・インストーラ
KR20070121715A (ko) 다방면의 시스템 능력 분석
JP2015505097A (ja) 修復送達システムのためのコンピュータ実装プロセス、コンピュータ・プログラム製品、および装置
US20160321068A1 (en) Populating a Software Catalogue with Related Product Information
JP2022100301A (ja) ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨)
WO2007071465A1 (en) A method and apparatus for populating a software catalog with automated use signature generation
EP3022691B1 (en) Mobile application optimization platform
US8261274B2 (en) Method and system for managing a task
US20050076325A1 (en) Automatic software update of nodes in a network data processing system
US7813964B2 (en) Click and run software purchasing
WO2021025781A1 (en) Cleared user facilitation and control system
US20090300602A1 (en) Determining application distribution based on application state tracking information
KR100625867B1 (ko) 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체
US20230185557A1 (en) System and method for managing a model for solving issues relating to application upgrades in a customer environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110909

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee