KR100625867B1 - 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 - Google Patents

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 Download PDF

Info

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

Links

Images

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와 같은 설치프로그램)에 의해 관리되는 프로그램 설치정보를 분석하여 상기 프로그램들의 구성요소(레지스트리, 파일, 폴더)를 추출하고, 상기 추출된 정보를 등록하며, 상기 등록된 정보를 저장 및 관리함을 특징으로 한다. 또한, 본 발명은 상기 프로그램의 구성 요소에 대한 실행 정보 혹은 사용 정보를 분석 추출하고, 상기 추출된 정보를 등록하며, 상기 등록된 정보를 저장 및 관리하는 프로그램 분석 모듈 및 상기 프로그램 분석 모듈에 저장된 상기 각 프로그램들에 대한 정보를 소프트웨어 자원의 유지 관리에 용이하도록 구조화 혹은 통계화하여 관리하는 프로그램 관리 모듈을 포함함을 특징으로 한다. 아울러, 본 발명은 컴퓨터 시스템에서 사용될 프로그램들에 관한 수요 예측을 위하여, 상기 컴퓨터 시스템에 설치되었다 삭제된 프로그램 파일의 정보 또는 새롭게 설치되는 프로그램의 변동 사항(설치, 제거, 수정) 및 사용 정보를 분석하고, 상기 분석된 정보를 등록하며, 상기 등록된 정보를 저장 및 관리하여 새로운 프로그램에 대한 프로그램 사용자들의 사용요구를 예측하는 새로운 프로그램에 대한 신청 및 사용 예상 등에 관한 정보를 수집할 수 있도록 하는 방법을 포함한다.The present invention relates to an apparatus for extracting installation status information and program usage information of programs installed in a computer system. In particular, the present invention relates to a registry, shortcut icons (link files), files, or installation programs (constituting programs installed on the computer system). Analyze program installation information managed by InstallShield, an installation program such as Microsoft's Windows Installer), extract components (registry, files, folders) of the programs, register the extracted information, and register the registered information. Storage and management. The present invention also provides a program analysis module for analyzing and extracting execution information or usage information for a component of the program, registering the extracted information, and storing and managing the registered information, and the program analysis module. And a program management module for managing information about each program by structuring or statistically managing the software resource for easy maintenance. In addition, the present invention analyzes the information of the program file that has been installed in the computer system or the changes (installation, removal, modification) and usage information of the newly installed program, for the purpose of forecasting demand for programs to be used in the computer system. And registering the analyzed information, and storing and managing the registered information to collect information on application and anticipation of use of a new program for predicting a user's demand for a new program. Include.

컴퓨터, 서버, 클라이언트, 프로그램 분석 모듈, 프로그램 관리 모듈, 프로그램 정보 수집, 실행 정보 수집Computer, server, client, program analysis module, program management module, program information collection, execution information collection

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}Apparatus, system and method for analyzing, extracting, storing, managing, and statistics information about programs installed, running, or in use on computers, and computer-readable recording media programmed therein (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}

도 1은 본 발명의 실시예에 따라 적용될 수 있는 서버/클라이언트 시스템 구조를 나타낸 도면.1 illustrates a server / client system architecture that may be applied in accordance with an embodiment of the present invention.

도 2a는 본 발명의 제1 실시예에 따른 컴퓨터 시스템의 내부 구조를 나타낸 도면.2A is a diagram showing the internal structure of a computer system according to the first embodiment of the present invention.

도 2b는 본 발명의 제2 실시예에 따른 서버 및 클라이언트 시스템의 내부 구조를 나타낸 도면.2B is a diagram showing the internal structure of a server and a client system according to a second embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 컴퓨터 시스템에서 프로그램 분석 모듈의 세부 구조를 나타낸 도면.3 is a diagram illustrating a detailed structure of a program analysis module in a computer system according to an embodiment of the present invention.

도 4a는 본 발명의 실시예에 따른 컴퓨터 시스템의 프로그램 분석 모듈에서 프로그램 분석부의 구조를 나타낸 도면.4A is a diagram illustrating the structure of a program analyzer in a program analysis module of a computer system according to an embodiment of the present invention.

도 4b는 본 발명의 실시예에 따른 컴퓨터 시스템의 프로그램 분석 모듈에서 사용정보 추출부의 구조를 나타낸 도면.4B is a diagram illustrating a structure of a usage information extracting unit in a program analysis module of a computer system according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 컴퓨터 시스템에서 프로그램 관리 모듈의 세부 구조를 나타낸 도면.5 is a diagram illustrating a detailed structure of a program management module in a computer system according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 컴퓨터 시스템에서의 프로그램 정보 생성 절차를 나타낸 흐름도.6 is a flowchart illustrating a program information generation procedure in a computer system according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 서버 컴퓨터에서의 처리 절차를 나타낸 흐름도.7 is a flowchart illustrating a processing procedure in a server computer according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 프로그램의 사용 정보 추출 절차를 나타낸 흐름도.8 is a flowchart illustrating a procedure of extracting usage information of a program according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 프로그램 예상 수요를 파악하는 절차를 나타낸 흐름도.9 is a flowchart illustrating a procedure of identifying a program expected demand according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 서버에서 수집된 정보를 디스플레이하는 방법을 나타낸 도면.10 is a diagram illustrating a method for displaying information collected at a server according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 서버 110 : 네트워크100: server 110: network

120 : 클라이언트 200, 290 : 메모리120: client 200, 290: memory

201 : OS 202 : 프로그램 정보 분석 장치201: OS 202: program information analysis device

203 : 프로그램 205 : 프로그램 분석 모듈203: Program 205: Program Analysis Module

206 : 프로그램 관리 모듈 210, 280 : CPU206: program management module 210, 280: CPU

220, 250 : I/O 어댑터 230, 260 : 데이터 저장장치220, 250: I / O adapter 230, 260: data storage device

240, 270 : 네트워크 I/F 300 : 프로그램 분석부240, 270: network I / F 300: program analysis unit

310 : 프로그램 등록부 320 : 사용 정보 추출부310: program registration unit 320: usage information extraction unit

330, 520 : 제어부 340 : 보고 자료 처리부330, 520: control unit 340: report data processing unit

350 : 수집 정보 데이터베이스 360 : 전송 처리부350: information collection database 360: transmission processing unit

400 : 설치/제거 정보 추출부 410 : 실행 감시 방법 결정부400: installation / removal information extraction unit 410: execution monitoring method determination unit

420 : 프로세스 감시부 430 : 파일 로드 감시부420: process monitoring unit 430: file load monitoring unit

440 : 컴포넌트 로드 감시부 500 : 데이터 처리부440: component load monitoring unit 500: data processing unit

510 : 데이터 관리부 530 : 프로그램 정보 데이터베이스510: data management unit 530: program information database

본 발명은 컴퓨터 시스템에서의 설치된 프로그램의 효율적 자원 관리를 위한 정보 수집 방법에 관한 것으로, 보다 상세하게는 상기 컴퓨터 시스템에 설치된 프로그램들에 대한 정보를 추출하여 소프트웨어 자원을 효율적으로 관리하는 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to an information collection method for efficient resource management of an installed program in a computer system, and more particularly, to information about a program for efficiently managing software resources by extracting information about programs installed in the computer system. An apparatus, system, method for analysis, extraction, storage management, and statistics, and a computer-readable recording medium programmed therein.

근래들어, 네트워크 시스템 즉, 서버/클라이언트 구축 기술이 사회 전반적으로 보급되면서 소프트웨어 개발사들은 유통 비용의 절감을 위해서, 또한 고객들은 소프트웨어 구매 비용의 절감 및 완성도 높은 소프트웨어의 사용을 위해, 소프트웨어를 구매하여 설치하고 사용하는 오프라인(offline)을 통한 사용보다는 온라인 프 로그램 임대 서비스(Application Service Provider; 이하, 'ASP'라 한다)기술을 사용하여 소프트웨어를 따로 설치하지 않고, 온라인(online) 환경에서 바로 프로그램을 사용하려는 욕구가 증대하고 있는 실정이다. 또한 소프트웨어를 수도, 가스, 전화, 전기와 같이 필요할 때 온라인(online) 환경을 통해 접속하여 원하는 만큼 쓰고 쓴 만큼 대가를 지불하려는 방향으로 전환하려고 하고 있다.In recent years, as network systems, or server / client deployment technologies, have become widespread in society, software developers have purchased and installed software to reduce distribution costs, and customers to reduce software purchase costs and use mature software. Rather than using an offline application, an online application leasing service (Application Service Provider) (“ASP”) technology is used to install a program directly in an online environment without installing software. The desire to use is increasing. The company is also trying to turn its software around when it's needed, such as water, gas, telephone, and electricity, to pay for what it wants to use.

한편, 최근 소프트웨어 개발속도의 향상으로, 프로그램 제작 업체들은 평균 1~2년에 한번씩 업그레이드(upgrade)된 버전의 프로그램을 발표하고 있다. 따라서, 기업은 다양한 버전의 소프트웨어 자원을 잘 관리하지 않으면, 해당 소프트웨어 자원이 필요없는 인원에게 배분됨으로써 소프트웨어 구매 비용 및 교육 비용 등의 추가 비용을 지출하게 되었다. 또한 소프트웨어 구매시에 소프트웨어 요청자와 실제 수요자를 구분하는 것이 어렵고, 어떤 소프트웨어를 얼마만큼 구매해야 할지에 대한 데이터를 사용하는 사람에게만 의존해야 함으로 기업에 실제로 필요한 소프트웨어의 개수를 정확하게 알기 힘든 환경이 되었다. 아울러, 인력의 변동과 부서의 변동으로 인해 필요한 소프트웨어의 수요를 동적으로 배정하기 힘든 상황이 되었다.Meanwhile, due to the recent speed of software development, program makers are releasing upgraded versions of the program every one to two years on average. As a result, if companies do not manage various versions of software resources, they can be distributed to people who don't need them. In addition, it is difficult to distinguish between the software requester and the actual consumer when purchasing the software, and it is difficult to know exactly how many pieces of software are actually required by the enterprise by relying only on the users who use data about how much software to purchase. In addition, fluctuating personnel and departments made it difficult to dynamically allocate the required software demand.

본 발명의 목적은 소정의 컴퓨터 시스템에 설치되어 있는 프로그램들의 설치 위치, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 컴퓨터 시스템에 설치된 프로그램들에 대한 사용시간을 체크하여, 상기 각 프로그램의 사용 빈도 및 각 프로그램의 사용량을 분석하여 저장 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.An object of the present invention is to check the installation location, deletion time, information on the components (registry, files, folders) of the programs installed in a predetermined computer system and the usage time for the programs installed in the computer system, Devices, systems, methods, and programs for analyzing, extracting, storing, managing, and analyzing information about programs installed, running, or in use on computers that analyze and store the frequency of use and usage of each program. A computer-readable recording medium is provided.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 설치된 프로그램들의 설치 위치, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 각 클라이언트에 설치된 프로그램들에 대한 사용시간을 실시간으로 체크하여, 상기 각 프로그램의 사용 빈도, 각 프로그램의 사용량을 서버로 전송 수집하여 동일시간(Concurrent time)에 사용하는 프로그램의 사용량을 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.In addition, an object of the present invention is to provide information about the installation location, deletion time, components (registry, files, folders) of programs installed on each client in a network system constructed as a server / client, and programs installed on each client. By checking the usage time in real time, the frequency of use of each program and the usage of each program are transmitted to the server, which is installed, running, or in use on a computer that comprehensively manages the usage of the programs used at the same time. An apparatus, a system, a method for analyzing, extracting, storing, and managing information about a program, and a computer-readable recording medium having the program recorded thereon are provided.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 설치된 각각의 프로그램들의 설치 위치, 삭제시간, 설치 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 각 클라이언트에 설치된 프로그램들에 대한 사용시간의 통계치를 개별 클라이언트로부터 추출하여 서버에서 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.In addition, an object of the present invention is the installation location, deletion time, information on the installation components (registry, files, folders) of the respective programs installed on each client in a network system built as a server / client and programs installed on each client Devices, systems, methods, and programs for analyzing, extracting, storing, managing, and analyzing information about programs installed, running, or in use on a computer managed by a server by extracting statistics of usage time from individual clients. The present invention provides a computer-readable recording medium.

본 발명의 목적은 소정의 컴퓨터 시스템에 새롭게 설치되는 프로그램들의 설치 위치, 설치시간, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 컴퓨터 시스템에 새롭게 설치된 프로그램들에 대한 사용시간을 체크하여, 상기 새롭게 설치된 프로그램의 사용 빈도를 분석하여 저장 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.An object of the present invention is to set the installation location, installation time, deletion time, information on components (registry, files, folders) of programs newly installed in a predetermined computer system, and usage time of programs newly installed in the computer system. By checking, the frequency of use of the newly installed program is analyzed, the device, system, method for program analysis, extraction, storage management and statistics on the program that is installed, executed or used in the storage management and the computer program A computer-readable recording medium is provided.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 새롭게 설치되는 프로그램들의 설치 위치, 설치시간, 삭제시간, 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 클라이언트에 새롭게 설치된 프로그램들에 대한 사용시간을 실시간으로 체크하여, 상기 새롭게 설치된 프로그램의 사용 빈도, 사용량을 서버로 전송 수집하여 동일시간(Concurrent time)에 사용하는 프로그램의 사용량을 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.In addition, an object of the present invention is to provide information on the installation location, installation time, deletion time, components (registry, files, folders) of programs newly installed on each client in a network system constructed as a server / client and on the client. Check the usage time of the newly installed programs in real time, collect and use the newly installed program's usage frequency and usage to the server, and install it on a computer that comprehensively manages the usage of the programs used at the same time. An apparatus, a system, a method for analyzing, extracting, storing, and managing information about a program that is being executed or used, and a computer-readable recording medium having the program recorded thereon are provided.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 새롭게 설치되는 프로그램들의 설치 위치, 설치시간, 삭제시간, 설치 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 각 클라이언트에 새롭게 설치된 프로그램들에 대한 사용시간의 통계치를 개별 클라이언트로부터 추출하여 서버에서 종합적으로 관리하는 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프 로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.In addition, an object of the present invention is the installation location, installation time, deletion time, information on the installation components (registry, files, folders) of the newly installed programs on each client in a network system built as a server / client and each client Device, system, and method for analyzing, extracting, storing and managing information about programs installed, running, or in use on a computer managed comprehensively by a server by extracting statistics of usage time of newly installed programs from individual clients And it provides a computer-readable recording medium that recorded the program.

본 발명의 목적은 소정의 컴퓨터 시스템에 이전에 설치되었다 삭제된 정보를 레지스트리 및 인스톨 프로그램의 정보파일의 정보와 새롭게 설치되는 프로그램들의 정보와 기존에 설치되어 있는 상기 프로그램의 정보로부터 사용이 예상되는 프로그램에 대한 목록을 수집하여 소정의 기관내에서 필요로 하는 프로그램에 대한 수요를 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention is a program that is expected to use deleted information previously installed in a predetermined computer system from the information in the registry and the installation program's information file, the information in the newly installed programs, and the previously installed information in the program. Devices, systems for analyzing, extracting, storing and managing information about programs installed, running, or in use on a computer to collect more information on the programs required by a given institution. It provides a method and a computer-readable recording medium that is recorded by programming it.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 이전에 설치되었다 삭제된 정보를 레지스트리 및 인스톨프로그램의 정보파일의 정보와 새롭게 설치되는 상기 프로그램들의 정보와 기존에 설치되어 있는 상기 프로그램의 정보로부터 사용이 예상되는 프로그램에 대한 목록을 수집하여 소정의 기관 내에서 필요로 하는 프로그램에 대한 수요를 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.In addition, an object of the present invention is to provide information on the information file of the registry and the installation program and the information of the newly installed programs and the previously installed information on each client in a network system constructed as a server / client. Collect information about the programs that are expected to be used from the information of the programs, and analyze and extract information about the programs installed, running, or in use on a computer to more accurately extract the demands for the programs required within a given institution. In addition, the present invention provides an apparatus, a system, a method for storage management and statistics, and a computer-readable recording medium which is programmed and recorded.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 ASP(온라인 프로그램 임대 서비스)서버에 충분한 소프트웨어 라이센스를 구비하여 각 클라이언트 컴퓨터 상에서 필요한 때에 온라인으로 사용함으로써 소정의 기관 내에서 요구되는 소프트웨어의 수량을 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.In addition, an object of the present invention is to provide a software license for an online program rental service (ASP) server in a network system constructed with a server / client, and to use the software required in a predetermined institution by using it online on demand on each client computer. Provides a computer-readable recording medium that programs and programs the information, analysis, extraction, storage management and statistics on the programs installed, executed or used in the computer to extract the quantity more accurately. Is in.

또한, 본 발명의 목적은 서버/클라이언트로 구축되는 네트워크 시스템에서 서버에 충분한 소프트웨어 라이센스를 구비하여 각 클라이언트 컴퓨터 상에서 필요한 때에 온라인으로 대여함으로써 소정의 기관 내에서 요구되는 소프트웨어의 수량을 보다 정확히 추출하기 위한 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템, 방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
In addition, an object of the present invention is to provide a software license for a server in a network system constructed as a server / client, and to rent more online as needed on each client computer to more accurately extract the required amount of software in a given institution. An apparatus, a system, a method for analyzing, extracting, storing, and managing information about a program installed, executed, or in use on a computer, and a computer-readable recording medium including the program are recorded.

상기한 목적을 달성하기 위한 본 발명의 장치는 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하고, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하고, 상기 제거된 프로그램의 제거 된 날짜를 최종으로 확인한 날짜를 수집하고, 상기의 설치/제거된 프로그램의 데이터를 수집하는 프로그램 분석 모듈 및 상기 각 프로그램의 설치 정보로부터 상기 컴퓨터 시스템에 설치되어 실행되는 프로그램들에 대한 구성요소정보 및 실행정보와 상기 컴퓨터 시스템에서 삭제된 프로그램에 대한 구송요소정보와 삭제날짜 정보로부터 설치/제거된 프로그램에 대한 정보를 분석하고 통계화하는 프로그램 관리 모듈을 포함함을 특징으로 한다.An apparatus of the present invention for achieving the above object is a computer system in which one or more programs are installed and executed, the apparatus for analyzing information about the programs installed in the computer system, the components (registry, files) , Folder) and the installation information of the program is extracted and registered through the installation information file of the installation program that installs the program, collecting information on the execution state of the registered program, and installing on the computer system In the device for analyzing the information about the deleted and deleted program, Residual information that is not deleted about the components (registry, files, folders) of the deleted program and the removal information file of the uninstall program removing the program is extracted by Register and finalize the removed date of the removed program The component analysis and execution information for the programs installed and executed in the computer system from the program analysis module and the installation information of each program, which collects the confirmed date and collects data of the installed / removed programs; And a program management module that analyzes and statistics information on the installed / removed programs from the removal element information and the deletion date information of the programs deleted from the computer system.

상기한 목적을 달성하기 위한 본 발명의 시스템은 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버 및 클라이언트들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에 있어서, 상기 클라이언트에 설치되며, 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하고, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하고, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하고, 상기의 설치/제거된 프로그램의 데이터를 전송하는 프로그램 분석 모듈 및 상기 서버에 설치되며, 상기 각 클라이언트로부터 상기 전송된 프로그램에 대한 설치 및 실행정보를 수신하고, 상기 수신된 정보로부터 상기 각 클라이언트별 프로그램들의 구성요소정보 및 실행시간정보와 상기 각 클라이언트로부터 상기 전송된 프로그램에 대한 삭제 정보로부터 상기 각 클라이언트별 삭제된 프로그램에 대한 구성요소정보와 삭제날짜 정보로부터 설치/제거된 프로그램에 대한 정보를 구조화하여 저장하는 프로그램 관리 모듈을 포함함을 특징으로 한다.In the system of the present invention for achieving the above object, one or more clients and a server in which one or more programs are installed for each client are connected by wire / wireless communication means, and a predetermined communication protocol between the server and clients is provided. In the server / client system for transmitting and receiving data, the program is installed on the client, the installation of the program through the information on the components (registry, files, folders) of the program and the installation information file of the installation program that installed the program A device for extracting and registering information, collecting information on an execution state of the registered program, and analyzing information about a program installed in the computer system and deleted, the component of the deleted program (registry) , Undeleted cups (for files, folders) A program analysis module for extracting and registering information and a removal information file of a removal program from which the program has been removed, collecting a date on which the removal date of the removed program was finally confirmed, and transmitting data of the installed / removed program; And installed in the server, receiving installation and execution information on the transmitted program from each client, and transmitting component information and execution time information of the programs for each client from the received information and transmitting the information from each client. And a program management module for structuring and storing information on the installed / removed programs from the component information of the deleted program for each client and the deleted date information from the deleted information on the deleted program.

또한 추가 예상 프로그램 정보 추출 시스템은 각 클라이언트마다 설치된 프로그램의 동시사용량을 수집하고, 각 클라이언트마다 제거된 프로그램의 정보를 수집하여, 현재 보유하고 있는 프로그램의 라이센스의 양과 비교하는 모듈, 상기의 라이센스가 없거나 부족한 것이 예상되는 소프트웨어의 추가구매 예상하는 모듈 및 수집된 데이터를 구조화하여 저장하는 프로그램 관리 모듈을 포함함을 특징으로 한다.In addition, the additional expected program information extraction system collects the concurrent usage of the installed program for each client, collects the information of the removed program for each client, and compares it with the amount of the license of the program currently owned, It is characterized in that it includes a module for predicting further purchase of software that is expected to be lacking and a program management module for structuring and storing the collected data.

또한, 상기한 목적을 달성하기 위한 본 발명의 제1 방법은 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 방법에 있어서, 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하고, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하고, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하고, 상기의 설치/제거된 프로그 램의 데이터를 수집하는 프로그램 분석 단계 및 상기 각 프로그램에 대한 설치 정보 및 실행 정보로부터 상기 각 컴퓨터 시스템별 프로그램들에 대한 구성요소정보 및 실행정보와 상기 각 컴퓨터 시스템에서 삭제된 프로그램에 대한 구성요소정보와 삭제날짜 정보로부터 설지/제거된 프로그램에 대한 정보를 분석하고 통계화하는 프로그램 관리 단계를 포함함을 특징으로 한다.In addition, the first method of the present invention for achieving the above object is a computer system in which one or more programs are installed and executed, the method for analyzing information about the programs installed in the computer system, the components of the program Extracts and registers installation information of the program through information on the registry, files, and folders, and an installation information file of an installation program that installs the program, collects information on the execution state of the registered program, and An apparatus for analyzing information about a program installed in a computer system and then deleted, wherein the remaining information is not deleted about components (registry, files, and folders) of the deleted program and information on the removal of the uninstall program from which the program is removed. Extract and register files, remove date of the removed program And a program analysis step of collecting the date of the final confirmation, and collecting the data of the installed / removed program, and the component information of the programs for each computer system from the installation information and execution information for each program, and And a program management step of analyzing and statistically analyzing execution information, information on components installed and removed from the component information on the programs deleted in each of the computer systems, and the deletion date information.

또한, 상기한 목적을 달성하기 위한 본 발명의 제2 방법은 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버 및 클라이언트들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에서, 상기 클라이언트에 설치된 상기 프로그램에 대한 정보를 상기 서버로 전송하는 방법에 있어서, 상기 클라이언트에 설치된 상기 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대한 정보 및 상기 프로그램을 설치한 설치프로그램의 설치정보파일을 통해 상기 프로그램의 설치 정보를 추출하여 등록하는 단계, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 단계, 상기 컴퓨터 시스템에 설치되었다가 삭제된 프로그램에 대한 정보를 분석하는 장치에 있어서, 상기 삭제된 프로그램의 구성요소(레지스트리, 파일, 폴더)에 대해 삭제되지 않은 잔여정보 및 상기 프로그램을 제거한 제거프로그램의 제거정보파일을 추출하여 등록하는 단계, 상기 제거된 프로그램의 제거된 날짜를 최종으로 확인한 날짜를 수집하는 단계 및 상기 수집된 정보를 상기 서버로 전송하는 단계를 포함함을 특징으로 한다.In addition, in the second method of the present invention for achieving the above object, one or more clients and a server in which one or more programs are installed for each client are connected by wire / wireless communication means, and the server and the clients are connected to each other. In a server / client system that transmits and receives data by a communication protocol, a method of transmitting information about the program installed on the client to the server, comprising: a component (registry, file, folder) of the program installed on the client. Extracting and registering installation information of the program through the installation information file of the installation program and the installation program for installing the program, collecting information on the execution state of the registered program, and being installed in the computer system. Analyzes information about deleted programs In the device, extracting and registering the undeleted residual information for the components (registry, files, folders) of the deleted program and the uninstall information file of the uninstall program from which the program is removed, the removal of the removed program And collecting the date on which the date has been finally confirmed and transmitting the collected information to the server.

또한 추가 예상 프로그램 정보 추출 방법은 각 클라이언트마다 설치된 프로 그램의 동시사용량을 수집하는 단계 각 클라이언트마다 제거된 프로그램의 정보를 수집하는 단계 현재 보유하고 있는 프로그램의 라이센스의 양과 비교하는 단계 상기의 라이센스가 없거나 부족한 것이 예상되는 소프트웨어의 추가구매를 예상하는 단계 및 수집된 데이터를 구조화하여 저장하는 프로그램 관리 단계를 포함함을 특징으로 한다. In addition, the method of extracting additional estimated program information includes: collecting the concurrent usage of the installed program for each client; collecting information of the removed program for each client; comparing the amount of the license of the program that is currently owned with or without the above license. It is characterized in that it comprises a step of anticipating the additional purchase of software that is expected to be lacking and a program management step of structuring and storing collected data.

또한, 상기한 목적을 달성하기 위한 본 발명에 따른 추가 예상 프로그램 정보 추출 방법은 상기 서버가 상기 각 클라이언트로 추가 예상 프로그램의 목록을 전송하는 단계 및 상기 예상 프로그램 목록을 수신한 각 클라이언트가 추가하고자 하는 프로그램의 목록을 작성하여 상기 서버로 전송하는 단계를 더 포함함을 특징으로 한다. In addition, in the method of extracting additional expected program information according to the present invention for achieving the above object, the server transmits a list of additional expected programs to each client, and each client that receives the expected program list is to be added. The method may further include generating a list of programs and transmitting the list to the server.

상기 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보 분석, 추출, 저장 관리 및 통계를 위한 방법은 서버 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함한다. 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk), DVD(Digital Video Disk)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Methods for analyzing, extracting, storing, and managing information about programs installed, executed, or in use on the computer may be stored in a recording medium readable by a server computer. Such recording media includes all types of recording media on which programs and data are stored so that they can be read by a computer system. Examples include Read Only Memory (ROM), Random Access Memory (RAM), Compact Disk (CD), Digital Video Disk (DVD) -ROM, Magnetic Tape, Floppy Disk, Optical Data Storage, etc. It also includes implementations in the form of (eg, transmission over the Internet). In addition, these recording media can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이하 본 발명의 바람직한 실시예에 따른 상세한 설명을 첨부된 도면들을 참 조하여 설명한다. 하기에는 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.Hereinafter, a detailed description according to a preferred embodiment of the present invention will be described with reference to the accompanying drawings. In the following description, detailed descriptions of well-known functions or configurations will be omitted when it is determined that the detailed descriptions of the known functions or configurations may unnecessarily obscure the subject matter of the present invention.

본 발명은 컴퓨터 시스템 내에 설치되는 하나 이상의 프로그램에 대한 상세 정보(예컨대, 프로그램 설치 정보, 실행 정보, 사용 정보 등) 등을 추출하고 저장하며 관리하는 프로그램 정보 관리 방법에 관한 것이다.The present invention relates to a program information management method for extracting, storing, and managing detailed information (eg, program installation information, execution information, usage information, etc.) about one or more programs installed in a computer system.

한편, 상기 설치 프로그램에 대한 정보의 추출은 해당 프로그램이 설치된 컴퓨터 시스템 내에서 수행됨이 바람직하며, 상기 추출된 해당 프로그램에 대한 각종 정보들은 상기 동일한 컴퓨터 시스템 내에서 수행되거나, 외부 네트워크를 통해 다른 컴퓨터 시스템에서 수행될 수도 있다.On the other hand, the extraction of the information about the installation program is preferably performed in a computer system in which the corresponding program is installed, and the various information about the extracted corresponding program is performed in the same computer system or another computer system through an external network. It may also be performed in.

즉, 본 발명은 하나의 컴퓨터 시스템 내에서 구현되거나, 복수의 컴퓨터가 상호간에 통신하는 네트워크 시스템 내에서도 구현될 수도 있다.That is, the present invention may be implemented in one computer system or in a network system in which a plurality of computers communicate with each other.

예컨대, 본 발명은 서버(Server)와 하나 이상의(일반적으로 복수의) 클라이언트(Client)들이 네트워크(Network)로 연결되는 서버/클라이언트 시스템에서 상기 클라이언트들에 설치된 프로그램에 대한 정보 관리에 적용될 수 있다. 즉, 상기 복수의 클라이언트들 각각에 대한 프로그램(Program)들에 대한 상세 정보를 본 발명에 따른 방법들에 의해 수집하고, 상기 수집된 정보를 종합하여 서버로 전송한다. 상기 서버는 각 클라이언트들로부터 수집된 상기 프로그램들에 대한 정보를 분석함으로써 해당 네트워크 내의 전체 소프트웨어에 대한 상세한 현황을 일괄적으로 파악할 수가 있다.For example, the present invention may be applied to information management of a program installed in the clients in a server / client system in which a server and one or more (generally plural) clients are connected by a network. That is, detailed information about programs for each of the plurality of clients is collected by the methods according to the present invention, and the collected information is collectively transmitted to the server. The server can collectively grasp the detailed status of the entire software in the network by analyzing the information about the programs collected from each client.

여기서, 본 발명에 따른 서버와 클라이언트들은 소정의 연결 수단을 통해 서로 통신하며, 상기 서버와 상기 복수의 클라이언트들이 일정한 유형의 네트워크 방식으로 연결되게 된다. 이때, 본 발명은 상기 서버와 클라이언트들 간의 연결 유형과 관계없이 모든 유형에 적용 가능하며, 상기 서버와 클라이언트간의 직접적인 연결에 의한 통신에도 동일하게 적용 가능하다.Here, the server and the client according to the present invention communicate with each other through a predetermined connection means, the server and the plurality of clients are connected in a certain type of network method. In this case, the present invention may be applied to all types regardless of the connection type between the server and the clients, and may be equally applicable to communication by the direct connection between the server and the clients.

또한, 상기 네트워크는 그 종류에 상관 없이 본 발명에 적용이 가능하며. 상기 네트워크의 예로는 인터넷망(Internet Network), 내부 네트워크(Internal Network), 인트라넷(Intranet), LAN(Local Area Network), WAN(Wide Area Network), 내부 버스 등이 있다. 아울러, 유선 네트워크 뿐만 아니라 무선 네트워크 등에도 동일하게 적용 가능함은 자명하다.In addition, the network is applicable to the present invention irrespective of its type. Examples of the network include an Internet network, an internal network, an intranet, a local area network, a wide area network, and an internal bus. In addition, it is obvious that the same can be applied to a wired network as well as a wireless network.

한편, 상기 '프로그램'이란 용어는 이하 설명에서 '소프트웨어(software)'라는 용어와 동일하게 사용된다. 본 발명에 적용되는 상기 프로그램은 시스템 운영을 위한 시스템 프로그램(예컨대, 오퍼레이팅 시스템(Operating System; OS))을 제외한 일반적으로 컴퓨터 상에서 설치되어 실행되는 대부분의 프로그램들을 지칭한다.
여기서, '소프트웨어'의 정의는 독자 수행 가능한 응용 프로그램, 미들웨어 소프트웨어, 유틸리티 소프트웨어, 시스템 소프트웨어, 소프트웨어를 구성하는 DLL 라이브러리 등을 포함하는 독자 수행 가능한 프로그램 및 독자 수행 가능한 소프트웨어를 구성하는 모듈을 포함하는 것으로 한다.
또한, 상기 프로그램은 일반적으로 하나 이상의 파일(file)들로 구성되며, 상기 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성된다. 이때, 상기 각 파일들의 유형은 해당 파일 이름의 뒷부분에 표시된 확장자(예컨대, exe, dll, txt 등)에 의해 구별되어진다.
Meanwhile, the term 'program' is used the same as the term 'software' in the following description. The program applied to the present invention generally refers to most programs installed and executed on a computer except a system program (for example, an operating system (OS)) for operating a system.
Here, the definition of 'software' includes a uniquely executable program including a middleware software, a utility software, a system software, a DLL library constituting the software, and a module constituting the uniquely executable software. do.
In addition, the program generally consists of one or more files, the files storing an execution file used for the execution of the program, and other drivers or data necessary for the execution. It consists of various types of files. In this case, the types of the files are distinguished by an extension (for example, exe, dll, txt, etc.) displayed at the back of the corresponding file name.

본 발명은 소정의 컴퓨터 시스템 내에서 설치되는 각종 프로그램들의 설치, 실행 및 사용 여부를 파악하기 위하여 상기 각 프로그램을 구성하는 각각의 실행 또는 비실행 파일들의 사용 여부를 조사하게 된다. 그런다음, 상기 조사 결과에 의해 상기 각 프로그램들의 설치 정보 및 사용 시간 정보등에 대한 종합적인 분석을 수행할 수 있게 된다.The present invention examines whether each executable or non-executable file constituting each program is used to determine whether to install, execute and use various programs installed in a predetermined computer system. Then, based on the survey result, it is possible to perform a comprehensive analysis on the installation information and usage time information of the respective programs.

또한, 본 발명은 하기 6가지 항목들에 대해 적용될 수 있다.In addition, the present invention can be applied to the following six items.

1. 단일 컴퓨터상에 과거 혹은 현재 설치, 사용중인 소프트웨어에 대한 정보 추출 및 사용 정보 확보.1. Extract information and obtain usage information about software that is currently installed or used on a single computer.

2. 소정의 네트워크로 연결된 기관 혹은 단체 내에 설치된 전체 혹은 일부 컴퓨터 상에서 과거 혹은 현재 설치, 사용중인 소프트웨어에 대한 정보 추출 및 사용 정보 확보.2. Extract information and obtain usage information about past or present installations and software on all or some computers installed within a network or organization.

3. 소정의 네트워크로 연결된 기관 혹은 단체 내에 미래에 필요한 소프트웨어에 대한 예비 수요를 도출하기 위하여, 클라이언트에 설치/삭제/수정된 소프트웨어의 정보를 추출하고, 동일 프로그램이 각각의 클라이언트에서 동시 사용(Concurrent Time)되는 사용량의 변화에 대한 목록을 수집하여 가상수요를 예상하거나, 사용자가 향후 필요한 소프트웨어 리스트정보를 추출 확보.3. In order to derive the preliminary demand for the software required in the future in a network or an institution connected to a predetermined network, the information of the software installed / deleted / modified on the client is extracted, and the same program is simultaneously used on each client. Collect virtually any list of changes in usage over time to anticipate virtual demands, or extract and obtain software list information required by the user in the future.

4. 소정의 네트워크로 연결된 기관 혹은 단체 내에 미래에 필요한 소프트웨어에 대한 예비 수요를 도출하기 위하여 서버에서 예비 수요 리스트를 제공하고, 상기 리스트를 통해 클라이언트가 가상 수요를 체크하거나, 사용자가 향후 필요한 소프트웨어 리스트를 요청하여 해당 정보를 추출 확보.4. Provide a preliminary demand list on the server in order to derive preliminary demand for future software in a networked institution or organization, through which the client checks the virtual demand, or the user lists the software required in the future. Obtain and extract that information by requesting it.

5. 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 ASP 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 사용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출.5. Have sufficient software licenses on the ASP server to extract usage statistics for more accurate software, and use the software online when needed on client computers to more accurately determine the quantity of software required within the organization and organization. extraction.

6. 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 대여하여 사용하고, 사용후 온라인으로 반납하는 방식으로 운용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출.6. In order to extract usage statistics for more accurate software, the server shall be equipped with sufficient software licenses, and shall be rented and used online when necessary on the client computer, and operated by returning online after use. More accurate extraction of software needs within the organization.

즉, 상기 1번, 2번은 한 기관내에서 현재 관리하는 소프트웨어 자원의 양만을 알려주는 정적인 통계치를 제공한다. 한편, 상기 3번은 정적인 통계치 뿐만 아니라 한 기관내에서 필요로 하는 소프트웨어 수량의 변화 및 종류를 사용자의 요청이 없이 추정할 수 있는 데이터를 제공한다.That is, the first and second numbers provide static statistics indicating only the amount of software resources currently managed in an institution. On the other hand, the third time provides the data that can estimate the change and type of software quantity required in an institution as well as the static statistics without a user's request.

이하, 첨부된 도면을 참조하여 상술한 방법들을 구체적으로 구현하는 시스템과 절차들을 설명한다. 먼저, 도 1 내지 도 5를 참조하여 본 발명에 따라 구성되는 시스템의 구조를 상세히 설명한다.Hereinafter, a system and procedures for concretely implementing the above-described methods will be described with reference to the accompanying drawings. First, the structure of a system constructed according to the present invention will be described in detail with reference to FIGS. 1 to 5.

도 1은 본 발명의 실시예에 따라 적용 가능한 서버/클라이언트 시스템 구조를 나타낸 도면이다.1 is a diagram illustrating a server / client system structure applicable according to an embodiment of the present invention.

한편, 상술한 바와 같이 본 발명에 따른 프로그램 정보 수집 및 분석 방법은 하나의 컴퓨터 시스템(130) 내에서 수행되도록 구현될 수도 있으며, 후술하는 도 1과 같은 서버/클라이언트 시스템 내에서도 구현될 수 있다.Meanwhile, as described above, the method for collecting and analyzing program information according to the present invention may be implemented to be performed in one computer system 130, or may be implemented in a server / client system as shown in FIG.

상기 도 1을 참조하면, 본 발명에 따른 서버/클라이언트 시스템은 하나의 서버(100)가 소정의 네트워크(110)를 통해 복수의 클라이언트들(120; 즉 120a 또는 120b)과 통신하는 시스템을 기반으로 한다. 이때, 상술한 바와 같이 상기 서버와 클라이언트들 간의 연결 방법(예컨대, 120a 또는 120b에서와 같은 연결 방법) 및 상기 네트워크(110)의 종류는 본 발명을 적용함에 있어 다양하게 변형 가능하다.Referring to FIG. 1, the server / client system according to the present invention is based on a system in which one server 100 communicates with a plurality of clients 120 (that is, 120a or 120b) through a predetermined network 110. do. In this case, as described above, the connection method between the server and the clients (eg, the connection method as in 120a or 120b) and the type of the network 110 may be variously modified in applying the present invention.

상기 서버(100)는 상기 각 클라이언트들(120)의 로그인 정보를 알고 있으며, 상기 각 클라이언트들(120)의 네트워크 연결 상태도 감지하고 있게 된다. 또한, 상기 서버(100)와 클라이언트들(120)간에는 소정의 기설정된 통신 규약(즉, 프로토콜(protocol))에 의해 데이터의 송수신이 가능하게 된다.The server 100 knows login information of each of the clients 120, and also detects a network connection state of each of the clients 120. In addition, the server 100 and the clients 120 can transmit and receive data by a predetermined communication protocol (that is, a protocol).

한편, 상기 각 클라이언트들(120)에는 하나 이상의 프로그램들이 설치되며, 상기 설치된 프로그램들은 사용자의 요구에 따라 실행된다. 이때, 본 발명에 따라 상기 각 클라이언트들(120)에 설치된 각종 프로그램들의 설치 정보와 실행 정보가 각 클라이언트 내에 구비된 소정의 모듈에 의해 수집되며, 상기 수집된 각 클라이언트들의 프로그램들에 대한 설치 정보 및 실행 정보들은 본 발명에 따라 상기 서버(100)로 주기적으로 전송되거나 또는 상기 서버(100)의 요청에 의해 전송된다.Meanwhile, one or more programs are installed in each of the clients 120, and the installed programs are executed according to a user's request. At this time, the installation information and execution information of various programs installed in each of the clients 120 according to the present invention is collected by a predetermined module provided in each client, the installation information for the programs of the collected clients and Execution information is periodically transmitted to the server 100 or at the request of the server 100 in accordance with the present invention.

이때, 상기 각 클라이언트들(120)로부터 수집된 정보들은 상기 서버(100)에서 종합되며, 사용자로 하여금 용이하게 파악할 수 있도록 하기 위하여 소정의 기설정된 포맷에 의해 디스플레이되도록 구현할 수 있다.In this case, the information collected from each of the clients 120 may be integrated in the server 100 and may be implemented to be displayed in a predetermined predetermined format in order for the user to easily grasp.

상술한 바와 같이 상기 각 컴퓨터 시스템(100, 120)에 설치된 프로그램에 대해 추출된 프로그램 관련 정보들에 대한 분석 및 통계는 해당 컴퓨터 시스템(100, 120) 내에서 수행될 수도 있으며, 상기 도 1에 도시된 바와 같이 프로그램 추출 과정은 각 클라이언트(120)에서 수행하고, 추출된 자료의 종합 및 분석은 서버(100)에서 수행되도록 구현할 수도 있다.As described above, the analysis and statistics on the program-related information extracted for the programs installed in each of the computer systems 100 and 120 may be performed in the corresponding computer systems 100 and 120, as shown in FIG. 1. As described above, the program extraction process may be performed by each client 120, and the synthesis and analysis of the extracted data may be performed by the server 100.

이하, 도 2 내지 도 5를 참조하여 본 발명의 구현을 위한 상기 컴퓨터 시스템의 보다 세부적인 구조를 설명한다.Hereinafter, a detailed structure of the computer system for implementing the present invention will be described with reference to FIGS. 2 to 5.

도 2a 및 도 2b는 본 발명의 실시예에 따른 컴퓨터 시스템의 내부 구조를 나타낸 도면이다.2A and 2B illustrate an internal structure of a computer system according to an embodiment of the present invention.

먼저, 도 2a를 참조하여 하나의 컴퓨터 시스템 내에서 상기 본 발명을 수행하는 장치를 설명하며, 도 2b를 참조하여 상술한 서버/클라이언트 시스템에 본 발명이 적용된 실시예를 설명하기로 한다.First, an apparatus for performing the present invention in one computer system will be described with reference to FIG. 2A, and an embodiment to which the present invention is applied to the server / client system described above with reference to FIG. 2B will be described.

도 2a는 본 발명의 제1 실시예에 따른 컴퓨터 시스템의 내부 구조를 나타낸 도면.2A is a diagram showing the internal structure of a computer system according to the first embodiment of the present invention.

상기 도 2a를 참조하면, 상기 본 발명이 적용되는 컴퓨터 시스템(130)은 중앙 처리 장치(Central Processor Unit; 이하, 'CPU'라 한다)(210), 입출력 어댑터(Input/Output Adaptor; 이하, 'I/O 어댑터'라 한다)(220), 데이터 저장 장치(230) 및 메모리(memory; 200) 등을 포함한다. 한편, 상기 도 2a에는 도시하지 않았지만, 소정의 네트워크 인터페이스(Interface; 이하, 'I/F'라 한다)(미도시)를 구비하여 외부 시스템들과 데이터를 송수신할 수 있다.Referring to FIG. 2A, the computer system 130 to which the present invention is applied includes a central processor unit 210, an input / output adapter; I / O adapter) 220, a data storage device 230, a memory 200, and the like. Although not shown in FIG. 2A, a predetermined network interface (hereinafter, referred to as “I / F”) (not shown) may be provided to transmit / receive data with external systems.

상기 CPU(210)는 범용 프로그램 가능한 처리기이며, 메모리(200) 내에 저장된 소정의 인스트럭션을 실행하며, 상기 도 2a에는 단일 CPU가 도시되지만, 다중 CPU를 갖는 컴퓨터 시스템이 사용될 수도 있다.The CPU 210 is a general purpose programmable processor and executes certain instructions stored in the memory 200, although a single CPU is shown in FIG. 2A, but a computer system with multiple CPUs may be used.

메모리(200)는 데이터 및 프로그램을 저장하는 반도체 RAM(Random Access Memory) 또는 ROM(Read Only Memory) 등으로 구성될 수 있으며, 상기 메모리는 도면상에서 단일 모놀리식 물체로 개념적으로 도시되지만, 종종 캐시(caches) 및 다른 메모리 장치들의 계층형 구조로 구성될 수도 있다. 한편, 운영 체제(Operating System; 이하, 'OS'라 한다)(201) 및 복수의 프로그램(203)들이 상기 컴퓨터 시스템(130)의 메모리(200) 내에 존재하게 된다.The memory 200 may be composed of a semiconductor random access memory (RAM) or a read only memory (ROM) or the like for storing data and programs. The memory is conceptually illustrated as a single monolithic object in the drawings, but is often cached. caches and other memory devices. Meanwhile, an operating system 201 and a plurality of programs 203 are present in the memory 200 of the computer system 130.

상기 프로그램(203)은 본 발명에 따른 데이터 수집의 대상이 되며, 상술한 바와 같이 컴퓨터 상에서 실행되는 복수의 파일들로 구성된 프로그램을 의미한다. 상기 프로그램(203)은 일반적으로 상기 데이터 저장 장치(230)에 저장되어 설치(install)되며, 실행 요구시 RAM 등과 같은 메모리에 로딩되어 실행된다. 한편, 상기 프로그램(203)은 그 종류에 따라 상기 컴퓨터 시스템(130)의 부팅(booting)시 자동으로 실행될 수 있도록 설정하는 것이 가능하며, 상기 RAM에 상주시켜 필요시 항상 실행되도록 설치할 수도 있다. 또한, 상술한 바와 같이 상기 프로그램을 구성하는 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성되며, 상기 각 파일들의 유형은 확장자에 의해 구분된다.The program 203 is an object of data collection according to the present invention, and means a program composed of a plurality of files executed on a computer as described above. The program 203 is generally stored and installed in the data storage device 230, and is loaded and executed in a memory such as a RAM when an execution request is made. The program 203 may be set to be automatically executed when the computer system 130 is booted according to its type, and may be installed so that it always runs when needed. In addition, as described above, the files constituting the program are composed of an execution file used to execute the program, and various types of files storing drivers or data necessary for the execution. Each file type is identified by an extension.

데이터 저장 장치(230)는 바람직하게는 하나 이상의 회전 자기 하드 디스크 드라이브 장치를 포함할 수 있지만, 다른 타입의 저장 장치가 사용될 수도 있다. The data storage device 230 may preferably include one or more rotating magnetic hard disk drive devices, although other types of storage devices may be used.

한편, 통신 버스(231)는 상이한 디바이스들 간의 데이터, 명령, 다른 정보의 전달을 지원하며, 도면에서는 단순하게 단일 버스로 도시되었으며, 통상적으로 통신 버스는 다중 버스로 구성되며, 계층 형태로 구성될 수도 있다.On the other hand, the communication bus 231 supports the transfer of data, commands, and other information between different devices, and is simply illustrated as a single bus in the drawings, and typically, the communication bus is composed of multiple buses and may be configured in a hierarchical form. It may be.

또한, 상기 도 2a에 도시된 컴퓨터 시스템은 단순하게 도시된 도면이며, 시스템 구성에 있어서 본 명세서에서 구체적으로 언급된 변경 이외에 수 많은 변경이 가능하다. 상기 컴퓨터 시스템(130)은 개인용 컴퓨터 시스템으로 고려될 수도 있으며, IBM 기업용 시스템 또는 IBM AS/400 시스템과 같은 대형 컴퓨터 시스템일 수도 있다.In addition, the computer system shown in FIG. 2A is a simplified diagram and many modifications other than those specifically described herein in the system configuration are possible. The computer system 130 may be considered a personal computer system or may be a large computer system such as an IBM enterprise system or an IBM AS / 400 system.

본 발명에 따라 상기 컴퓨터 시스템(130)은 본 발명의 구현을 위하여 상기 메모리(200) 내에 프로그램 정보 분석 장치(202)를 구비한다. 상기 프로그램 정보 분석 장치(202)는 상기 컴퓨터 시스템(130) 내에 설치된 상기 프로그램(203)들에 대한 설치, 실행 및 사용 정보 등의 프로그램 관련 정보들을 추출하여 저장하고, 상기 저장된 프로그램 관련 정보들을 분석하여 통계화함으로써, 상기 컴퓨터 시스템(130)의 사용자로 하여금 상기 컴퓨터 시스템(130)을 효율적으로 이용할 수 있도록 한다.According to the present invention, the computer system 130 includes a program information analysis device 202 in the memory 200 for implementing the present invention. The program information analysis device 202 extracts and stores program related information such as installation, execution, and usage information of the programs 203 installed in the computer system 130, and analyzes the stored program related information. By statisticalizing, the user of the computer system 130 can effectively use the computer system 130.

또한, 상기 프로그램 정보 분석 장치(202)는 상기 프로그램(203) 대한 정보를 수집하기 위한 프로그램 분석 모듈(205)과, 상기 수집된 정보를 분석하여 통계화하기 위한 프로그램 관리 모듈(206)로 구성할 수 있다.In addition, the program information analysis apparatus 202 may be configured as a program analysis module 205 for collecting information about the program 203 and a program management module 206 for analyzing and statistically collecting the collected information. Can be.

한편, 상기 본 발명에 따른 프로그램 분석 모듈(205)은 그 구현 방법에 따라 소프트웨어의 형태로 상기와 같이 메모리(200)에 저장되거나 별도의 데이터 저장 장치(230)에 저장될 수도 있으며, 다른 방법으로 하드웨어적으로 구성된 소정의 별도 처리 모듈로 구성될 수도 있다. 이에 따라, 상기 컴퓨터 시스템(130)에 설치된 상기 본 발명에 따른 프로그램 분석 모듈(205)은 상기 하나 이상의 프로그램(203)들에 대한 설치, 제거 및 실행 상태를 체크하여 그 결과를 수집하게 된다.On the other hand, the program analysis module 205 according to the present invention may be stored in the memory 200 as described above in the form of software or in a separate data storage device 230 in accordance with the implementation method, or in another way It may be composed of a predetermined separate processing module configured in hardware. Accordingly, the program analysis module 205 according to the present invention installed in the computer system 130 checks the installation, removal and execution states of the one or more programs 203 and collects the results.

또한, 본 발명에 따라 상기 클라이언트(120)의 프로그램 분석 모듈(205)에서 수집된 데이터는 상기 프로그램 관리 모듈(206)로 전송된다. 상기 프로그램 관리 모듈(206)에서는 상기 각 프로그램 분석 모듈(205)에서 수집된 프로그램 관련 정보들을 체계화하여 관리하게 된다.In addition, according to the present invention, the data collected by the program analysis module 205 of the client 120 is transmitted to the program management module 206. The program management module 206 organizes and manages program related information collected by each program analysis module 205.

상기 프로그램 분석 모듈(205) 및 프로그램 관리 모듈(206)에 대한 보다 구제적인 동작 및 구조는 후술하기로 한다.More specific operations and structures of the program analysis module 205 and the program management module 206 will be described later.

도 2b는 본 발명의 제2 실시예에 따른 서버 및 클라이언트 시스템의 내부 구조를 나타낸 도면이다.2B is a diagram illustrating the internal structure of a server and a client system according to a second embodiment of the present invention.

상기 도 2b를 참조하면, 상기 서버(100)와 클라이언트(120)는 일종의 컴퓨터 시스템으로서 각각 CPU(210, 280), I/O 어댑터(220, 250), 데이터 저장 장치(230, 260), 네트워크 I/F(240, 270) 및 메모리(200, 290) 등을 포함한다.Referring to FIG. 2B, the server 100 and the client 120 are types of computer systems, respectively, CPUs 210 and 280, I / O adapters 220 and 250, data storage devices 230 and 260, and a network. I / F 240, 270, memory 200, 290, and the like.

또한, 상기 서버(100) 및 클라이언트(120)에서의 다양한 장치들은 각각 내부 통신 버스(231)를 통해 서로 통신한다. 상기 CPU(210, 280)는 범용 프로그램 가능한 처리기이며, 메모리(200, 290) 내에 저장된 소정의 인스트럭션을 실행하며, 상기 도 2b에는 각 장치별 단일 CPU가 도시되지만, 다중 CPU를 갖는 컴퓨터 시스템이 사용될 수도 있다.In addition, the various devices in the server 100 and the client 120 communicate with each other via an internal communication bus 231, respectively. The CPUs 210 and 280 are general-purpose programmable processors and execute predetermined instructions stored in the memory 200 and 290. In FIG. 2B, a single CPU for each device is shown, but a computer system having multiple CPUs is used. It may be.

메모리(200, 290)는 데이터 및 프로그램을 저장하는 반도체 RAM(Random Access Memory) 또는 ROM(Read Only Memory) 등으로 구성될 수 있으며, 상기 메모리는 도면상에서 단일 모놀리식 물체로 개념적으로 도시되지만, 종종 캐시(caches) 및 다른 메모리 장치들의 계층형 구조로 구성될 수도 있다. 한편, 운영 체제(Operating System; 이하, 'OS'라 한다)(201) 및 복수의 프로그램(203)들이 상기 클라이언트(120)의 메모리(200) 내에 존재하게 된다.The memory 200 or 290 may be configured as a semiconductor random access memory (RAM) or a read only memory (ROM) for storing data and programs, and the memory is conceptually illustrated as a single monolithic object in the drawings. Often it may be organized in a hierarchical structure of caches and other memory devices. Meanwhile, an operating system 201 and a plurality of programs 203 exist in the memory 200 of the client 120.

상기 프로그램(203)은 본 발명에 따른 데이터 수집의 대상이 되며, 상술한 바와 같이 컴퓨터 상에서 실행되는 복수의 파일들로 구성된 프로그램을 의미한다. 상기 프로그램(203)은 일반적으로 상기 데이터 저장 장치(230)에 저장되어 설치(install)되며, 실행 요구시 RAM 등과 같은 메모리에 로딩되어 실행된다. 한편, 상기 프로그램(203)은 그 종류에 따라 상기 클라이언트(120)의 부팅(booting)시 자동으로 실행될 수 있도록 설정하는 것이 가능하며, 상기 RAM에 상주시켜 필요시 항상 실행되도록 설치할 수도 있다. 또한, 상술한 바와 같이 상기 프로그램을 구성하는 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성되며, 상기 각 파일들의 유형은 확장자에 의해 구분된다.The program 203 is an object of data collection according to the present invention, and means a program composed of a plurality of files executed on a computer as described above. The program 203 is generally stored and installed in the data storage device 230, and is loaded and executed in a memory such as a RAM when an execution request is made. On the other hand, the program 203 may be set to be automatically executed upon booting the client 120 according to its type, or may be installed so that it always runs when necessary by resident in the RAM. In addition, as described above, the files constituting the program are composed of an execution file used to execute the program, and various types of files storing drivers or data necessary for the execution. Each file type is identified by an extension.

데이터 저장 장치(230, 260)는 바람직하게는 하나 이상의 회전 자기 하드 디스크 드라이브 장치를 포함할 수 있지만, 다른 타입의 저장 장치가 사용될 수도 있다. 네트워크 I/F(240, 270)는 네트워크(110)로부터 그리고 네트워크(110)로의 데이터의 전송을 위한 물리적 접속부를 제공한다. 바람직한 실시예에서, 상기 네트워 크(100)는 인트라넷이지만, 인터넷, WAN, LAN과 같은 임의의 소형 자기 보유형 네트워크 또는 가령 전화 전송 라인, 위성, 광섬유, T1 라인 등을 사용하는 다른 내부 또는 외부 네트워크일 수 있으며, 임의의 다수의 가용한 기술일 수도 있다.The data storage devices 230, 260 may preferably include one or more rotating magnetic hard disk drive devices, although other types of storage devices may be used. Network I / Fs 240 and 270 provide a physical connection for the transfer of data from and to network 110. In a preferred embodiment, the network 100 is an intranet, but any small self-maintaining network such as the Internet, WAN, LAN, or other internal or external network using telephone transmission lines, satellites, optical fibers, T1 lines, and the like. May be any number of available technologies.

한편, 통신 버스(231)는 상이한 디바이스들 간의 데이터, 명령, 다른 정보의 전달을 지원하며, 도면에서는 단순하게 단일 버스로 도시되었으며, 통상적으로 통신 버스는 다중 버스로 구성되며, 계층 형태로 구성될 수도 있다.On the other hand, the communication bus 231 supports the transfer of data, commands, and other information between different devices, and is simply illustrated as a single bus in the drawings, and typically, the communication bus is composed of multiple buses and may be configured in a hierarchical form. It may be.

또한, 상기 도 2b에 도시된 컴퓨터 시스템은 단순하게 도시된 도면이며, 시스템 구성에 있어서 본 명세서에서 구체적으로 언급된 변경 이외에 수 많은 변경이 가능하다. 상기 클라이언트(120) 및 서버(100)는 개인용 컴퓨터 시스템으로 고려될 수도 있으며, IBM 기업용 시스템 또는 IBM AS/400 시스템과 같은 대형 컴퓨터 시스템일 수도 있다.In addition, the computer system illustrated in FIG. 2B is a simplified diagram and many modifications other than those specifically described herein in the system configuration are possible. The client 120 and server 100 may be considered a personal computer system or may be a large computer system such as an IBM enterprise system or an IBM AS / 400 system.

본 발명에 따라 클라이언트(120)에서는 상기 클라이언트(120)에서 수행되는 프로그램(203) 대한 정보를 수집하기 위한 프로그램 분석 모듈(205)을 상기 메모리(200)에 구비하며, 상기 수집된 정보를 서버(100)에서 통합 관리하기 위하여 상기 서버(100)의 메모리(290)에 프로그램 관리 모듈(206)을 구비한다.According to the present invention, the client 120 includes a program analysis module 205 in the memory 200 for collecting information about the program 203 executed in the client 120, and includes the server ( The program management module 206 is provided in the memory 290 of the server 100 for integrated management at 100.

한편, 상기 본 발명에 따른 프로그램 분석 모듈(205)은 그 구현 방법에 따라 소프트웨어의 형태로 상기와 같이 메모리(200)에 저장되거나 별도의 데이터 저장 장치(230)에 저장될 수도 있으며, 다른 방법으로 하드웨어적으로 구성된 소정의 별도 처리 모듈로 구성될 수도 있다. 이에 따라, 상기 클라이언트(120)에 설치된 상기 본 발명에 따른 프로그램 분석 모듈(205)은 상기 하나 이상의 프로그램(203)들 에 대한 설치, 제거 및 실행 상태를 체크하여 그 결과를 수집하게 된다.On the other hand, the program analysis module 205 according to the present invention may be stored in the memory 200 as described above in the form of software or in a separate data storage device 230 in accordance with the implementation method, or in another way It may be composed of a predetermined separate processing module configured in hardware. Accordingly, the program analysis module 205 according to the present invention installed in the client 120 checks the installation, removal and execution status of the one or more programs 203 and collects the results.

또한, 본 발명에 따라 상기 클라이언트(120)의 프로그램 분석 모듈(205)에서 수집된 데이터는 상기 네트워크 I/F(240, 270) 및 네트워크(110)를 통해 상기 서버(100)의 프로그램 관리 모듈(206)로 전송된다. 상기 프로그램 관리 모듈(206)에서는 상기 각 클라이언트(120)들로부터 수집된 프로그램 관련 정보들을 체계화하여 관리하게 된다.In addition, the data collected by the program analysis module 205 of the client 120 according to the present invention is the program management module of the server 100 through the network I / F (240, 270) and network 110 ( 206). The program management module 206 organizes and manages program related information collected from the clients 120.

이하, 도 3 및 도 4를 참조하여 상기 클라이언트(120)의 프로그램 분석 모듈(205)에 대해 보다 구체적으로 설명한다.Hereinafter, the program analysis module 205 of the client 120 will be described in more detail with reference to FIGS. 3 and 4.

도 3은 본 발명의 실시예에 따른 클라이언트에서 프로그램 분석 모듈(205)의 세부 구조를 나타낸 도면이다.3 is a diagram showing the detailed structure of the program analysis module 205 in the client according to an embodiment of the present invention.

상기 도 3을 참조하면, 본 발명의 실시예에 따른 프로그램 분석 모듈(205)은 프로그램 분석부(300), 프로그램 등록부(310), 사용 정보 추출부(320), 제어부(330), 보고 자료 처리부(340), 수집 정보 데이터베이스(350) 및 전송 처리부(360)로 구성된다.Referring to FIG. 3, the program analysis module 205 according to the embodiment of the present invention includes a program analyzer 300, a program register 310, a usage information extractor 320, a controller 330, and a report data processor. 340, a collection information database 350, and a transmission processor 360.

상기 프로그램 분석부(300)는 프로그램의 설치 상황을 분석하는 부분으로 현재 상기 클라이언트(120)에 설치되어 있는 프로그램을 분석하여, 상기 프로그램에 포함되어 있는 실행 파일(예컨대, 확장자가 'exe'인 파일) 및 컴포넌트(component) 파일들을 분석한다. 또한, 현재 상기 클라이언트(120)에 설치되어 있지는 않지만, 과거에 설치되었다 삭제된 프로그램들의 목록과 삭제된 것을 확인한 시간에 대한 정보를 작성한다.The program analyzing unit 300 analyzes a program currently installed in the client 120 as a part of analyzing the installation status of a program, and includes an executable file (for example, a file having an extension of 'exe') included in the program. ) And component files. In addition, a list of programs that have been installed in the past but not installed in the client 120 but has been deleted in the past is prepared.

상기 파일들의 분석 방법은 다양하게 구현 가능하다. 예컨대, 첫번째로 레지스트리(registry) 정보 추출부(401)에 의하여 검색하는 방법을 살펴 보면, 언인스톨(uninstall) 항목을 분석하여 상기 프로그램이 설치된 파일 및, 폴더(folder)를 찾아내거나, 고유의 UUID(Universally Unique Identifiers)값을 갖는 컴포넌트 파일(OLE, OCX, DLL과 같은 파일)의 정보를 통해 해당 파일을 찾아내거나, 소프트웨어 등록 정보가 있는 위치를 찾아내어 파일 및 폴더 등을 찾아내는 방법 등이 있다. 한편, 삭제된 프로그램의 경우에는 일부 레지스트리의 내용이 삭제되지 않고 남아 있는 경우가 있는데, 이렇게 남아 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.The analysis method of the files can be variously implemented. For example, first, a method of searching by the registry information extraction unit 401 may be analyzed. The uninstall item may be analyzed to find a file and a folder in which the program is installed, or a unique UUID ( Finding a file through the information of a component file (files such as OLE, OCX, DLL, etc.) having a Universally Unique Identifiers value, or finding a file and folder by locating the software registration information. In the case of a deleted program, the contents of some of the registries may remain without being deleted, and the information of the deleted program may be obtained through the remaining information.

두번째로, 링크 정보 추출부(402)에 의하여 찾는 방법을 살펴 보면, 데스크탑(Desktop)또는 프로그램에 포함된 단축 아이콘(shortcut or Link) 등에 포함되어 있는 실행 경로 및 실행 파일의 정보와 인수(Argument)로 넘겨지는 폴더 및 파일의 내용을 찾아내거나 윈도우즈 인스톨러(Windows installer)와 연동하여 동작하는 정보를 '*.msi' 파일(Windows installer의 설치 정보 파일 포멧)의 분석과 연동하여 상기 프로그램의 설치 정보를 찾아낼 수 있다.Second, referring to the search method by the link information extracting unit 402, information and arguments of an execution path and an executable file included in a shortcut icon or the like included in a desktop or a program are described. Find out the contents of folders and files that are passed to, or analyze the '* .msi' file (installation information file format of the Windows installer) by analyzing the information that works in conjunction with the Windows installer. Can be found.

세번째로, 설치/제거 프로그램 정보 추출부(403)에 의하여 프로그램의 설치 정보를 검색하는 방법을 살펴 보면,'*.msi' 파일과 같은 인스톨러(Windows installer) 파일 또는 인스톨러(Uninstaller)들의 언인스톨 정보를 통해 상기 프로그램의 설치 정보를 찾아낼 수 있다. 삭제된 프로그램의 경우에는 프로그램의 삭제정보를 관리하는 파일이 남아 있는 경우가 있는데, 이렇게 남아 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.Third, look at how to retrieve the installation information of the program by the install / uninstall program information extraction unit 403, the installer information such as '* .msi' file or uninstallers (Uninstaller) information Installation information of the program can be found. In the case of a deleted program, there may be a file that manages deletion information of the program. The information of the deleted program may be obtained through the remaining information.

네번째로, 파일들의 등록정보 추출부(404)에 의하여 프로그램의 설치 정보를 검색하는 방법을 살펴 보면, 버전(version) 정보 또는 사이즈(size) 정보 등을 통하여 기존에 목록화 시켜둔 상기 프로그램들을 구성하는 프로그램 구성요소 정보를 사용하여 프로그램의 설치 정보를 찾아낼 수 있다. 또한, 삭제된 프로그램의 경우에는 일부 파일 및 폴더가 삭제되지 않고 남아 있는 경우가 있는데 기존의 목록화 시켜둔 상기 프로그램 구성요소들을 사용하거나, 파일 내부에 등록되어 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.Fourth, looking at a method of retrieving the installation information of the program by the registration information extraction unit 404 of the files, the programs listed in the list through the version (version) information or size (size) information, etc. The program component information can be used to find out the installation information of a program. In addition, in the case of a deleted program, some files and folders may be left without being deleted. The information of the deleted program may be displayed by using the above-mentioned program components previously listed or through information registered in the file. You can get it.

상기 프로그램 분석부(300)의 기능을 보다 상술한 바를 참조하여 세부적으로 구분하면 도 4a와 같이 구분될 수 있다.The function of the program analyzer 300 may be classified as shown in FIG. 4A in detail by referring to the above description.

도 4a는 본 발명의 실시예에 따른 클라이언트의 프로그램 분석 모듈에서 프로그램 분석부(300)의 구조를 나타낸 도면이다.4A is a diagram illustrating a structure of a program analyzer 300 in a program analysis module of a client according to an exemplary embodiment of the present invention.

상기 도 4a를 참조하면, 상기 프로그램 분석부(300)는 상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부(400) 및 상기 설치/제거 정보 추출부(400)에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부(410)로 구성될 수 있다.Referring to FIG. 4A, the program analyzing unit 300 searches for installation information data or files installed by the installation program of the program, and installs / removes information extracting unit 400 to generate a list and file information of the program. And an execution monitoring method determiner 410 that determines a monitoring method for the execution status of each program and / or the usage status of the program component file based on the information generated by the installation / removal information extraction unit 400. Can be configured.

또한, 상기 설치/제거 정보 추출부(400)는 상술한 설치 정보 추출의 방법들에 따라 레지스트리 정보 추출부(401), 링크 정보 추출부(402), 설치/제거 프로그 램 정보 추출부(403) 및 등록 정보 추출부(404) 등으로 구성될 수 있다.In addition, the installation / removal information extraction unit 400 may extract the registry information extraction unit 401, the link information extraction unit 402, and the installation / removal program information extraction unit 403 according to the above-described installation information extraction methods. And the registration information extraction unit 404.

즉, 상기 프로그램 분석부(300)에서는 현재 상기 클라이언트에 어떠한 프로그램들이 설치되어 있는지 설치 정보를 분석하여 각 프로그램의 실행 상황 감시 방법을 결정하게 된다. 또한, 상기 클라이언트에 설치되었으나 현재는 삭제된 프로그램들에 대한 정보를 분석하여 각 클라이언트에서 프로그램 설치 변동에 대한 정보를 얻을 수 있다. 이렇게 얻은 데이터는 데이터 관리부(510)에서 처리되어 하나의 기관 내에서 필요한 프로그램의 수요 예측에 사용될 수도 있다.That is, the program analysis unit 300 determines the execution status monitoring method of each program by analyzing the installation information on which programs are currently installed on the client. In addition, by analyzing the information about the programs installed in the client, but currently deleted, it is possible to obtain information about the program installation changes in each client. The data obtained in this way may be processed by the data management unit 510 and used to predict demand of programs required in one institution.

따라서, 상기 설치/제거 정보 추출부(400)에서 상술한 바와 같이 프로그램의 설치 정보를 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하고, 상기 생성된 정보에 기초하여 상기 실행 감시 방법 결정부(410)에서 각 프로그램들의 실행 상황에 대한 감시 방법을 결정하게 된다.Accordingly, as described above, the installation / removal information extraction unit 400 searches for installation information of a program to generate a list and file information of the program, and the execution monitoring method determination unit 410 based on the generated information. ) Determines how to monitor the execution status of each program.

상기 실행 감시 방법 결정부(410)에서 결정하는 각 프로그램들의 실행 감시 방법은 상기 각 프로그램들을 구성하는 파일들의 특성에 따라 결정되며, 다음과 같은 기준으로 나뉘어질 수 있다. 첫번째로 "*.exe", "*.com"와 같은 실행파일로서, 자신이 메모리에 올라가서(loading) 실행되는 파일, 두번째로 "*.dll"(dynamic linked library)과 같은 파일로서 다른 프로그램들에 의해 스스로 메모리에 올라가서(loading) 실행되지는 않지만 다른 실행 파일에 의해서 사용되는 파일, 셋째로 컴포넌트(component) 파일과 같이 분산 환경을 위해 여러 개의 프로세스에 의해 공유되어지는 파일(dll, ocx,) 및 그 외에 워드프로세서 프로그램과 같이 실행에는 영향을 미치지 않지만, 내용을 보기 위해 필요한 컨텐츠(contents)파일로 구분하여 실행 감시 방법을 결정한다.The execution monitoring method of each program determined by the execution monitoring method determiner 410 is determined according to the characteristics of the files constituting the programs, and may be divided into the following criteria. First, an executable file such as "* .exe", "* .com", a file that is loaded and executed in memory, and second, a file such as "* .dll" (dynamic linked library). A file that is not loaded into memory by itself but executed by other executable files, and thirdly, a file shared by multiple processes for a distributed environment, such as component files (dll, ocx). And besides, it does not affect execution like a word processor program, but determines the execution monitoring method by dividing into contents files necessary for viewing contents.

상기 설치/제거 정보 추출부(400)에서 상기 프로그램의 설치 정보를 검색하는 방법으로는 상술한 바와 같이 여러가지 방법에 의해 각 프로그램들의 설치 정보를 추출해 낼 수 있다.As a method of searching for the installation information of the program in the installation / removal information extracting unit 400, as described above, the installation information of each program may be extracted.

한편, 상기 프로그램 분석부(300)에서 생성된 프로그램 설치 정보 및 제거 정보의 결과는 상기 프로그램 등록부(310)로 전송되고, 상기 프로그램 등록부(310)에서는 상기 프로그램에 대한 실행 감시의 편리성을 위해 상기 설치되어 있는 프로그램의 설치 정보를 참조하여 연관성 있는 파일 및 정보들간의 유기적인 관리를 수행한다.On the other hand, the result of the program installation information and removal information generated in the program analysis unit 300 is transmitted to the program registration unit 310, the program registration unit 310 for the convenience of execution monitoring for the program Performs organic management of related files and information by referring to installation information of installed programs.

여기서, 상기 연관성 있는 파일 및 정보는 실행 감시 방법 결정부(410)에서 결정한 각 프로그램들을 구성하는 파일들의 특성에 따라 구성되는 유기적인 구조이다.Here, the related file and information are organic structures configured according to the characteristics of the files constituting each program determined by the execution monitoring method determiner 410.

한편, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보들은 상기 보고 자료 처리부(340)로 입력되어 기설정된 형식에 맞게 소정의 구조로 자료화되어 상기 수집 정보 데이터베이스(350)에 저장된다.Meanwhile, execution information of each program extracted by the usage information extracting unit 320 is input to the report data processing unit 340, and is documented in a predetermined structure according to a predetermined format and stored in the collection information database 350. do.

또한, 상기 보고 자료 처리부(340)에서는 상기 사용 정보 추출부(320)를 통해 획득한 각 프로그램의 사용시간(시작/종료시간)을 관리하고, 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행한다.In addition, the report data processing unit 340 manages the use time (start / end time) of each program obtained through the usage information extraction unit 320, and defines the structure of the data to be exchanged with the server, each client It performs data processing that manages information about program and data about usage.

상기 전송 처리부(360)는 상기 클라이언트(120)의 프로그램 분석부(300) 및 사용 정보 추출부(320)에서 추출된 정보가 서버(100)로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리한다.The transmission processor 360 transmits the predetermined information to the server 100 so that the information extracted by the program analyzer 300 and the usage information extractor 320 of the client 120 may be transmitted to the server 100. The data is converted into a format suitable for the format and transferred.

한편, 상기 프로그램 분석부(300)에서 생성된 프로그램의 설치 및 등록 정보는 상기 프로그램의 설치 및 삭제가 일어난 때, 즉 해당 클라이언트에 설치된 프로그램의 정보가 변경될 때에 상기 서버(100)로 전송 처리하는 것이 바람직하다. 또한, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보는 실시간으로 사용 정보가 변하게 되므로, 실시간 또는 주기적으로 상기 서버(100)로 전송 처리하는 것이 바람직하다. 상기 전송 처리부(360)에서 데이터를 전송하는 다른 방법으로는 상기 서버(100)의 정보 제공 요청시에 전송하도록 처리할 수도 있다.On the other hand, the installation and registration information of the program generated by the program analysis unit 300 is transmitted to the server 100 when the installation and deletion of the program occurs, that is, when the information of the program installed in the client is changed It is preferable. In addition, since the usage information of each program extracted by the usage information extracting unit 320 is changed in real time, it is preferable to process the transmission to the server 100 in real time or periodically. As another method of transmitting data from the transmission processing unit 360, the transmission processing unit 360 may process the data to be transmitted when the server 100 provides the information.

이때, 상기 프로그램 등록부(310)를 통한 파일들의 등록 방법으로는 상술한 프로그램 분석부(300)에서 얻어낸 정보를 통해 프로그램 목록을 작성하는 방법 이외에도, 사용자가 수동으로 상기 프로그램 목록을 작성하고, 각 프로그램의 구성 요소인 exe 파일 및 기타 파일들을 포함시키거나, 상기 프로그램 목록을 작성할 때, 사용자가 임의의 폴더를 선택하고 상기 프로그램 분석부(300)를 사용하여 각 파일들을 분석함으로써 상기 각 프로그램의 파일 목록을 등록시킬 수 있다.In this case, as a method of registering the files through the program registration unit 310, in addition to the method of creating a program list through the information obtained by the program analysis unit 300, the user manually creates the program list, and each program Including an exe file and other files which are components of the program, or when creating the program list, the user selects an arbitrary folder and analyzes each file using the program analyzer 300 to analyze the file list of each program. Can be registered.

상기 프로그램 등록부(310)를 통해 각 프로그램의 목록 및 파일이 등록되면, 상기 등록된 프로그램에 대한 목록을 참조하여 각 프로그램의 실행 상황을 상기 사용 정보 추출부(320)에서 감시하게 된다.When the list and files of each program are registered through the program registration unit 310, the usage information extraction unit 320 monitors the execution status of each program by referring to the list of the registered programs.

이에 대한 구현을 위하여 상기 사용 정보 추출부(320)는 도 4b에 도시된 바 와 같이 프로세스(process) 감시부(420), 파일 로드(file load) 감시부(430) 및 컴포넌트 로드(component load) 감시부(440)로 구성할 수 있다.In order to implement this, the usage information extracting unit 320 may include a process monitoring unit 420, a file load monitoring unit 430, and a component load as shown in FIG. 4B. The monitoring unit 440 may be configured.

상기 프로세스 감시부(420)는 “*.exe”, “*.com”와 같은 실행 파일로서, 자신이 메모리에 올라가서(loading) 실행되는 파일 및 “*.bat”(batch file)파일을 사용하여 여러 개의 실행 파일이 조합되어져 실행되는 프로세스의 시작시간과 종료시간을 감시하는 부분이다. 상기 프로그램 등록부(310)에 등록되어 있는 연관성 있는 파일정보를 사용하여 감시한다.The process monitoring unit 420 is an executable file such as “* .exe” or “* .com”, and uses a file that is loaded and executed in a memory and a “* .bat” (batch file) file. A combination of several executables monitors the start and end times of a running process. Monitoring is performed using the relevant file information registered in the program register 310.

또한, 상기 파일 로드 감시부(430)는 “*.dll”(dynamic linked library)과 같은 파일로서 다른 프로그램들에 의해서 스스로 메모리에 올라가서(loading) 실행되지는 않지만 다른 실행파일에 의해서 사용되는 파일 또는 워드프로세서 프로그램과 같이 실행에는 영향을 미치지 않지만 내용을 보기위해 필요한 컨텐츠(contents)파일, "*.vxd","*.drv","*.sys"와 같은 디바이스 드라이버(device driver)파일로서 시스템 시작전 또는 실행중에 올라가서(loading)되서 실행되는 파일 등 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행한다.In addition, the file load monitoring unit 430 is a file, such as a "* .dll" (dynamic linked library), which is not loaded and executed by other programs by itself, but is used by another executable file or As a word processor program, it does not affect the execution, but it is a contents of device files such as "* .vxd", "* .drv", and "* .sys" which are necessary to view the contents. It monitors files executed as execution elements of other executable files, such as files that are loaded and executed before startup or during execution.

또한 컴포컨트 로드 감시부(440)를 사용함으로써 정확하게 해당 컴포넌트파일을 호출하여 사용한 프로세스에 대한 정보를 추출함으로써, 어떤 프로세스(process)가 정확하게 해당 컴포넌트 파일을 사용하는지 알려주는 역할을 한다. 일예로 대부분의 ERP(Enterprise Resource Planning) 프로그램들은 마이크로 소프트 오피스(Microsoft Office)의 엑셀(Excel) 프로그램의 컴포넌트를 사용하거나 연동하여 사용되는 경우가 많은데, 이러한 경우의 처리를 위해 사용한다.In addition, by using the component load monitoring unit 440 to accurately call the corresponding component file to extract information on the used process, it serves to inform which process (process) uses the component file correctly. For example, most enterprise resource planning (ERP) programs use or integrate components of an Excel program of Microsoft Office, which is used for handling such cases.

한편, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보들은 상기 보고 자료 처리부(340)로 입력되어 기설정된 형식에 맞게 소정의 구조로 자료화되어 상기 수집 정보 데이터베이스(350)에 저장된다.Meanwhile, execution information of each program extracted by the usage information extracting unit 320 is input to the report data processing unit 340, and is documented in a predetermined structure according to a predetermined format and stored in the collection information database 350. do.

또한, 상기 보고 자료 처리부(340)에서는 상기 사용 정보 추출부(320)를 통해 획득한 각 프로그램의 사용시간(시작/종료시간)을 관리하고, 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행한다.In addition, the report data processing unit 340 manages the use time (start / end time) of each program obtained through the usage information extraction unit 320, and defines the structure of the data to be exchanged with the server, each client It performs data processing that manages information about program and data about usage.

상기 전송 처리부(360)는 상기 클라이언트(120)의 프로그램 분석부(300) 및 사용 정보 추출부(320)에서 추출된 정보가 서버(100)로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리한다.The transmission processor 360 transmits the predetermined information to the server 100 so that the information extracted by the program analyzer 300 and the usage information extractor 320 of the client 120 may be transmitted to the server 100. The data is converted into a format suitable for the format and transferred.

한편, 상기 프로그램 분석부(300)에서 생성된 프로그램의 설치 및 등록 정보는 상기 프로그램의 설치 및 삭제가 일어난 때, 즉 해당 클라이언트에 설치된 프로그램의 정보가 변경될 때에 상기 서버(100)로 전송 처리하는 것이 바람직하다. 또한, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보는 실시간으로 사용 정보가 변하게 되므로, 실시간 또는 주기적으로 상기 서버(100)로 전송 처리하는 것이 바람직하다. 상기 전송 처리부(360)에서 데이터를 전송하는 다른 방법으로는 상기 서버(100)의 정보 제공 요청시에 전송하도록 처리할 수도 있다.On the other hand, the installation and registration information of the program generated by the program analysis unit 300 is transmitted to the server 100 when the installation and deletion of the program occurs, that is, when the information of the program installed in the client is changed It is preferable. In addition, since the usage information of each program extracted by the usage information extracting unit 320 is changed in real time, it is preferable to process the transmission to the server 100 in real time or periodically. As another method of transmitting data from the transmission processing unit 360, the transmission processing unit 360 may process the data to be transmitted when the server 100 provides the information.

제어부(330)는 상기 프로그램 분석 모듈(205)을 구성하는 각 엘리먼트들 간의 데이터 처리를 제어한다.The controller 330 controls data processing between the elements constituting the program analysis module 205.

이상으로, 상기 클라이언트(120)에서 본 발명을 수행하는 프로그램 분석 모듈(205)에 대해 상세히 설명하였다. 이하, 도 5를 참조하여 서버(100)에서 본 발명을 수행하는 프로그램 관리 모듈(206)의 동작을 설명한다.In the above, the program analysis module 205 for performing the present invention in the client 120 has been described in detail. Hereinafter, an operation of the program management module 206 for performing the present invention in the server 100 will be described with reference to FIG. 5.

도 5는 본 발명의 실시예에 따른 서버에서 프로그램 관리 모듈의 세부 구조를 나타낸 도면이다.5 is a diagram illustrating a detailed structure of a program management module in a server according to an embodiment of the present invention.

상기 도 5를 참조하면, 본 발명에 따른 서버(100)에서의 프로그램 관리 모듈(206)은 데이터 처리부(500), 데이터 관리부(510), 제어부(520) 및 프로그램 정보 데이터베이스(530) 등으로 구성된다.Referring to FIG. 5, the program management module 206 of the server 100 according to the present invention includes a data processor 500, a data manager 510, a controller 520, a program information database 530, and the like. do.

상기 데이터 처리부(500)는 상기 클라이언트(120)에서 수집되어 전송된 데이터를 분석하여 클라이언트에 대한 정보, 해당 클라이언트에 설치된 프로그램 정보 및 상기 프로그램의 실행 정보 등을 추출해낸다.The data processor 500 analyzes data collected and transmitted by the client 120 to extract information about the client, program information installed in the corresponding client, execution information of the program, and the like.

상기 데이터 처리부(500)에서 분석된 데이터는 제어부(520)를 거쳐 상기 프로그램 정보 데이터베이스(530)에 저장된다. 이때, 상기 프로그램 정보 데이터베이스(530)에 저장되는 정보는 각 클라이언트별 프로그램의 설치 현황 정보 및 각 프로그램에 대한 실행 정보들이 구조화되어 저장된다.The data analyzed by the data processor 500 is stored in the program information database 530 via the controller 520. At this time, the information stored in the program information database 530 is structured and stored the installation status information of the program for each client and the execution information for each program.

한편, 상기 데이터 관리부(510)에서는 서버 관리자등의 요청에 의한 각 클라이언트에 대한 프로그램 정보를 소정의 기설정된 포맷에 맞게 생성하여 출력할 수 있도록 데이터를 가공하게 된다. 또한, 상기 데이터 관리부(510)는 상기 각 클라이언트별로 수집된 프로그램에 대한 정보를 분석하여 소정의 통계 자료를 생성함으로써 서버 관리자로 하여금 클라이언트들에 설치된 프로그램들에 대한 관리를 도와주 게 된다.On the other hand, the data management unit 510 processes the data to generate and output the program information for each client in accordance with a predetermined format by the request of the server administrator. In addition, the data manager 510 analyzes the information about the programs collected for each client and generates predetermined statistical data to assist the server administrator in managing the programs installed in the clients.

또한, 상기 각 클라이언트에서 설치되어 사용하고 있는 프로그램들에 대한 정보를 수집하거나, 설치되었다가 삭제된 프로그램들의 정보를 수집하여 각 클라이언트에서 사용되었던 프로그램들의 사용 이력 정보를 생성하고, 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 수집하여 소프트웨어 추가 구매시에 기초 데이터 및 라이센스 구매 시기를 알려주는 도구로 활용할 수 있다.In addition, to collect information about the programs installed and used in each client, or to collect the information of the programs that have been installed and deleted to generate the usage history information of the programs used in each client, and to use Collecting simultaneous usage information of programs can be used as a tool to inform basic data and license purchase time when additional software is purchased.

상기 동시 사용량의 측정 시스템 및 방법은 상기 수집된 정보에 대해서 시간창를 사용 시간대에 좌, 우측으로 이동하면서 상기 창내에 보이는 사용자의 수를 측정하면 이값이 동시 사용량이 된다. 여기서 시간창의 정의는 임의의 시간대, 즉, 시작시간과 종료시간 사이를 가변 조정할 수 있는 하나의 가상적인 시간대로서 작게는 몇초에서부터 크게는 수일간까지 될 수 있다. 상기 동시 사용량은 물론 상기 시간창을 적용하는 시간대에 따라 변화할 수 있다.The system and method for measuring the simultaneous usage amount is the simultaneous usage amount when the number of users visible in the window is measured while moving the time window to the left and right time zones for the collected information. Here, the definition of the time window is an arbitrary time zone, that is, a virtual time zone that can be variably adjusted between the start time and the end time, which may range from a few seconds to a few days. The simultaneous usage may of course vary according to the time zone to which the time window is applied.

따라서, 상기 시간창을 여러 시간대에 적용하고, 상기 값을 추출하여 평균값을 산출하거나, 최고치 및 최소치 값을 각각 활용할 수도 있다. 또한, 수초간의 동시 사용량을 추출하기 위해서는 시간창을 좁게 구성하는 것이 바람직하며, 수일간의 긴 시간동안 동시 사용량을 추출하기 위해서는 시간창을 충분히 크게 함으로서 원하는 동시 사용량을 추출하는 것이 가능하다.Accordingly, the time window may be applied to various time zones, the value may be extracted to calculate an average value, or the maximum and minimum values may be utilized. In addition, it is preferable to narrow the time window to extract the simultaneous usage for several seconds, and to extract the desired simultaneous usage by making the time window large enough to extract the simultaneous usage for a long time of several days.

아울러, 상기 서버(100)가 각 클라이언트(120)로 본 발명에 따른 프로그램에 대한 정보를 요청할 경우, 소정의 요청 메시지를 해당 클라이언트의 식별 아이디와 함께 생성하여 전송되도록 처리한다.In addition, when the server 100 requests information about a program according to the present invention to each client 120, the server 100 generates a predetermined request message together with the identification ID of the corresponding client and processes the transmitted information.

이상으로 본 발명의 실시예에 따른 서버 및 클라이언트 시스템의 세부 구성들을 상세히 설명하였다. 이하, 상기 시스템을 통해 본 발명이 수행되는 절차를 도 6 내지 도 9를 참조하여 설명한다.The detailed configurations of the server and the client system according to the embodiment of the present invention have been described in detail above. Hereinafter, a procedure of performing the present invention through the system will be described with reference to FIGS. 6 to 9.

도 6은 본 발명의 실시예에 따른 클라이언트에서의 프로그램 정보 생성 절차를 나타낸 흐름도이다.6 is a flowchart illustrating a program information generation procedure in a client according to an embodiment of the present invention.

상기 도 6을 참조하면, 먼저 클라이언트에서는 프로그램의 목록 및 파일 정보를 검색(단계 S600)하게 된다. 그런다음, 상기 검색된 프로그램의 목록 및 파일 정보를 상술한 바에 따라 정리하여 프로그램 목록을 작성(단계 S610)한다. 한편, 상기 절차들은 사용자의 설정 등에 따라 주기적으로 수행되도록 하는 것이 바람직하며, 상기 사용자의 요청에 의해서도 수행될 수 있음은 상술한 바와 같다.Referring to FIG. 6, first, the client searches for a list of program and file information (step S600). Then, the list of the searched programs and the file information are organized as described above to create a program list (step S610). On the other hand, it is preferable to perform the above procedures periodically according to the user's setting, etc., as described above can also be performed at the request of the user.

한편, 상기 작성된 프로그램 목록 및 파일 정보들을 참조하여 각 프로그램에 대한 실행 여부를 감시(단계 S620)한다. 상기 프로그램에 대한 실행 여부 감시 결과에 대한 실행 정보는 소정의 데이터베이스에 구조화되어 저장(단계 S630)된다. 이때, 상기 저장된 정보는 소정의 포맷으로 메시지화되어 주기적으로 상기 서버로 전송될 수 있다.On the other hand, by referring to the created program list and file information to monitor whether or not to execute each program (step S620). Execution information on the execution result monitoring result for the program is structured and stored in a predetermined database (step S630). In this case, the stored information may be messaged in a predetermined format and periodically transmitted to the server.

다른 방법으로 상술한 바와 같이 만약 서버에서 상기 데이터의 정보 전송 요청이 있을 경우(단계 S640), 상기 프로그램의 실행 정보를 서버로 전송(단계 S650)하도록 구현할 수 있다. 아울러, 상기 서버에서의 데이터 전송 요청이 주기적으로 수행되도록 구현할 수도 있다.Alternatively, as described above, if the server has a request for information transmission of the data (step S640), it may be implemented to transmit the execution information of the program to the server (step S650). In addition, the data transmission request from the server may be implemented periodically.

도 7은 본 발명의 실시예에 따른 서버에서의 처리 절차를 나타낸 흐름도이 다. 상기 도 7은 클라이언트에서 수집된 정보를 서버에서 요청함으로써 수신하게 되는 절차를 나타낸다. 그러나, 상술한 바와 같이 상기 서버의 요청에 의해서가 아니라 상기 각 클라이언트로 하여금 주기적으로 상기 정보를 송신하도록 구현할 수도 있다.7 is a flowchart illustrating a processing procedure in a server according to an embodiment of the present invention. 7 illustrates a procedure of receiving information collected by a client by requesting it from a server. However, as described above, each of the clients may be periodically transmitted, not at the request of the server.

상기 도 7을 참조하면, 먼저 서버에서는 각 클라이언트별 프로그램 실행 정보를 요청(단계 S700)하게 된다. 상기 요청된 정보가 해당 클라이언트로 전송되면, 상기 클라이언트는 상기 요청에 응답하여 기수집된 프로그램에 대한 각종 정보들을 서버로 전송하게 된다.Referring to FIG. 7, first, the server requests program execution information for each client (step S700). When the requested information is transmitted to the corresponding client, the client transmits various information about the collected program to the server in response to the request.

상기 서버는 상기 전송된 정보들을 수신(단계 S710)하고, 상기 각 클라이언트로부터 수신된 프로그램에 대한 정보들을 포함하는 메시지를 분석(단계 S720)하고, 상기 정보를 각 클라이언트별로 분류하여 소정의 데이터베이스에 저장(단계 S730)시킨다.The server receives the transmitted information (step S710), analyzes a message including information on a program received from each client (step S720), classifies the information for each client, and stores the information in a predetermined database. (Step S730).

한편, 상기 서버 관리자의 상기 각 클라이언트들에 대한 프로그램 정보 요청시 상기 저장된 정보들 또는 상기 정보로부터 분석된 각종 통계 정보 등을 디스플레이(단계 S740)하게 된다.On the other hand, when the server manager requests the program information for each of the clients, the stored information or various statistical information analyzed from the information are displayed (step S740).

도 8은 본 발명의 실시예에 따른 프로그램의 사용 정보 추출 절차를 나타낸 흐름도이다.8 is a flowchart illustrating a procedure of extracting usage information of a program according to an exemplary embodiment of the present invention.

상기 도 8은 상기 클라이언트에서 각 프로그램에 대한 정보를 검색하여 등록하고, 상기 등록된 각 프로그램이 실행되는지 여부를 검사하는 실시예를 나타낸다.8 illustrates an embodiment in which the client searches for information about each program and registers the information, and checks whether the registered programs are executed.

먼저 상기 클라이언트는 자신에게 설치된 프로그램의 정보를 수집(단계 S801)하여, 상기 클라이언트에서 관리하려는 프로그램 및 파일들을 등록(단계 S802)한다.First, the client collects information of a program installed in the client (step S801), and registers a program and files to be managed by the client (step S802).

상기 등록된 각 프로그램에 대한 해당 파일 정보들 중 실행 파일들을 중심으로 확인하여 상기 해당 프로그램의 실행 여부를 검사한다.The execution of the corresponding program is checked by checking the execution files among the corresponding file information of each registered program.

예컨대, 먼저 실행 파일, 예컨대 확장자가 'exe'(즉, 파일명이 *.exe)인 'exe 파일'을 체크(단계 S803)하도록 할 수 있다. 상기 'exe 파일'의 체크 결과 실행되고 있을 경우, 상기 'exe 파일'이 처음 실행되었는지 여부를 검사(단계 S804)한다. 만약, 상기 검사 결과 상기 'exe 파일'이 처음 실행되었을 경우에는 실행 시작 시간을 기록(단계 S811)하게 된다.For example, an executable file, for example, an 'exe file' having an extension of 'exe' (that is, a file name of * .exe) may be checked (step S803). When the result of the check of the 'exe file' is executed, it is checked whether the 'exe file' is first executed (step S804). If the 'exe file' is first executed as a result of the inspection, the execution start time is recorded (step S811).

반면, 상기 검사 결과 상기 'exe 파일'이 처음 실행된 것이 아닐 경우에는 실행 파일이 종료되었는지 여부를 검사(단계 S805)한다. 만약, 상기 검사 결과 상기 'exe 파일'이 종료되었을 경우에는 실행 종료 시간을 기록(단계 S810)하게 된다.On the other hand, if the 'exe file' is not executed for the first time as a result of the check, it is checked whether the executable file is terminated (step S805). If the 'exe file' is terminated as a result of the inspection, the execution end time is recorded (step S810).

한편, 상기 'exe 파일'의 검사 결과 처음 실행도 아니고, 종료되지도 않았을 경우에는 소정 시간만큼 대기(단계 S806)한 후, 프로그램에 대한 체크 항목의 변경 여부를 검사(단계 S807)한다. 상기 검사 결과, 프로그램에 대한 체크 항목이 변경되었을 경우에는 변경된 정보에 따라 해당 체크 항목을 수정(단계 S808)하게 된다.On the other hand, if it is not the first execution or the end of the inspection of the 'exe file', after waiting for a predetermined time (step S806), it is checked whether or not the check item for the program is changed (step S807). As a result of the check, if the check item for the program is changed, the check item is corrected according to the changed information (step S808).

상기의 동작을 완료한 후 "종료 flag == true"(단계 S814)로 수정이 되었는지 확인하여 종료를 나타내면(즉, 플래그(flag)가 true로 되었으면) 작업을 종료하고, 종료를 나타내지 않으면(즉, 플래그(flag)가 false로 되었으면) 'exe 파일‘의 체크(단계 S803)로 진행한다.After completing the above operation, confirm that the modification has been made with "exit flag == true" (step S814) to indicate the end (that is, if the flag is true), then terminate the operation; If the flag is set to false, the flow proceeds to the check of the 'exe file' (step S803).

한편, 상기 'exe 파일'의 체크 결과 실행되고 있지 않을 경우에는 다른 프로그램 파일이 사용되고 있는지를 검사(단계 S809)하고, 상기 검사 결과에 따라 실행 시작 시간 또는 실행 종료 시간을 기록(단계 S811 또는 단계 S810)하게 된다. 상기 기록 절차가 완료된 후, 실시간 업데이트를 수행(단계 S812)하고자 할 경우에는 상기 기록된 결과, 즉 변경 사항을 서버로 전송(단계 S813)하게 된다.On the other hand, if the result of the check of the 'exe file' is not executed, it is checked whether another program file is used (step S809), and the execution start time or the execution end time is recorded according to the inspection result (step S811 or step S810). ) After the recording procedure is completed, when the real time update is to be performed (step S812), the recorded result, that is, the change is transmitted to the server (step S813).

상기 프로그램 실행 여부 검사 절차는 상술한 바와 같이 주기적 또는 사용자의 설정 및 요청에 의해 수행될 수 있다. 또한, 상기 검사 결과 수집된 정보를 서버로 전송하는 절차도 상기 서버의 요청에 의해서 또는 실시간 또는 주기적으로 수행되도록 구현할 수 있다.As described above, the program execution checking procedure may be performed periodically or by user's setting and request. In addition, the procedure of transmitting the information collected as a result of the inspection to the server may be implemented to be performed at the request of the server or in real time or periodically.

상기 도 6 내지 도 8에서는 이미 설치된 프로그램에 대한 설치 여부 및 실행 여부 검사 방법을 설명하였다. 이하, 도 9에서는 각 사용자별로 향후 요구되는 프로그램에 대한 예상 수요를 서버에서 파악하는 방법을 설명한다.6 to 8 described how to check whether or not the program has already been installed. Hereinafter, FIG. 9 illustrates a method of identifying an expected demand for a program required for each user in the server.

도 9는 본 발명의 실시예에 따른 프로그램 예상 수요를 파악하는 절차를 나타낸 흐름도이다.9 is a flowchart illustrating a procedure of identifying a program expected demand according to an embodiment of the present invention.

상기 도 9를 참조하면, 소정의 기관 또는 단체 내에 설치된 전체 또는 일부 컴퓨터 상에서 장래에 필요한 소프트웨어에 대한 예상 수요를 파악하기 위하여 서버에서 각 클라이언트들로 프로그램 추가 예상 리스트를 전송(단계 S900)하게 된다. Referring to FIG. 9, in order to identify an expected demand for software required in the future on all or some computers installed in a predetermined institution or organization, the server adds a program additional expected list to each client (step S900).

이때 상기 예상 리스트는 각 클라이언트에서 설치되어 사용하고있는 프로그 램들에 대한 정보를 수집하고 또한 설치되었다가 삭제된 프로그램들의 정보를 수집하여 각 클라이언트에서 사용되었던 프로그램들의 사용 이력 정보를 생성하고, 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 수집하여 프로그램 추가 예상 리스트로 작성 할 수도 있다.At this time, the expected list collects information about programs installed and used in each client, and collects information about programs installed and deleted, and generates usage history information of programs used in each client, and in each client. You can also collect the concurrent usage information of the programs you are using to create a list of expected program additions.

상기 각 클라이언트들은 상기 서버로부터 전송된 프로그램 추가 예상 리스트를 수신(단계 S910)하고, 이후 자신이 필요로 하는 프로그램에 대한 목록을 작성하여 서버로 피드백하게 된다.Each of the clients receives the program addition expectation list transmitted from the server (step S910), and then makes a list of programs required by the client and feeds back to the server.

상기 프로그램 추가 예상 리스트를 수신한 각 클라이언트들은 상기 리스트를 확인하고 자신이 신청할 프로그램이 있는지 확인(단계 S920)한다. 상기 확인 결과, 신청할 프로그램이 존재할 경우, 상기 리스트에 포함된 해당 프로그램에 체크(단계 S930)하게 된다.Each client receiving the program addition expectation list checks the list and checks whether there is a program to apply for (S920). As a result of the check, if there is a program to apply, the corresponding program included in the list is checked (step S930).

그런다음, 상기 리스트에 없는 프로그램 중에서 추가로 더 신청할 프로그램이 있을 경우(단계 S940), 상기 리스트에 신청할 프로그램을 추가함으로써 프로그램 신청 리스트를 작성(단계 S950)하게 된다.Then, if there is a program to be further applied from among the programs not in the list (step S940), a program application list is created by adding a program to be applied to the list (step S950).

상기 리스트 작성이 완료되면, 작성된 리스트를 서버로 전송(단계 S960)하게 되고, 상기 서버는 각 클라이언트들로부터 각각 작성된 리스트를 수신하게 된다.When the list is completed, the created list is transmitted to the server (step S960), and the server receives the created list from each client.

상기 서버는 상기 클라이언트들로부터 수집된 프로그램 신청 리스트와 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 참고하여 현재 수량의 부족 현상을 일으키는 소프트웨어와 한 기관의 인원대비 부족현상을 일으킬 수 있는 소프트웨어를 예상하여 해당 클라이언트들 전체의 프로그램 예상 수요에 대한 통계 치를 산출(단계 S970)한다.The server refers to the program application list collected from the clients and the concurrent usage information of the programs used by each client, and anticipates the software causing the current shortage and the software that may cause the shortage compared to the number of personnel in an institution. Statistical values for the expected program demand of all the clients are calculated (step S970).

상기와 같이 함으로써, 네트워크로 연결된 소정의 기관 내에 설치되어 있는 복수의 컴퓨터들에 대한 프로그램 수요 조사를 용이하게 수행할 수 있다. 상기에서는 서버에서 예비 수요 리스트를 제공한 후, 이에 대한 응답으로 각 클라이언트들이 가상 수요를 체크하여 전송하는 방법을 사용하였다. 다른 방법으로는, 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 ASP 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 사용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출할 수가 있다.By doing the above, it is possible to easily conduct a program demand survey for a plurality of computers installed in a predetermined institution connected by a network. In the above method, a preliminary demand list is provided by the server, and in response, the clients check and transmit the virtual demand. Alternatively, the quantity of software required by the institution and organization by having sufficient software licenses on the ASP server to extract usage statistics for more accurate software and using the software online as needed on the client computer. Can be extracted more accurately.

또 다른 방법으로는, 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 우선 서버에 충분한 소프트웨어 라이센스를 구비한 후, 각 클라이언트 컴퓨터 상에서 필요한 시점에 해당 소프트웨어를 온라인으로 대여하여 사용하게 하고, 사용 후에는 온라인으로 반납하는 방법을 사용할 수 있다. 이와 같이 함으로써, 해당 기관 또는 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출할 수가 있다.Alternatively, in order to extract usage statistics for more accurate software, you must first have sufficient software licenses on the server, and then lease and use the software online as needed on each client computer. You can use the return method. In this way, the quantity of software required by the organization or organization can be extracted more accurately.

상기 도 6 내지 도 9와 같이 함으로써, 단일 컴퓨터 또는 소정의 네트워크로 연결된 기관 혹은 단체 내에 설치된 전체 혹은 일부 컴퓨터 상에서 과거 혹은 현재 설치, 사용중인 소프트웨어에 대한 정보를 추출하고, 사용 정보 확보할 수가 있게 된다.6 to 9, it is possible to extract information on the past or present software installed or in use on all or some computers installed in a single computer or an institution or a group connected to a predetermined network, and to obtain usage information. .

아울러, 서버에서 프로그램들에 대한 예비 수요 리스트를 제공하고, 상기 리 스트를 통해 클라이언트가 가상 수요를 체크하거나, 사용자가 향후 필요한 소프트웨어 리스트를 요청하여 해당 정보를 추출함으로써, 상기 소정의 기관 혹은 단체 내에서 미래에 필요한 소프트웨어에 대한 예비 수요를 효율적으로 파악할 수 있게 된다. 또한, 보다 정확한 소프트웨어에 대한 사용 통계를 추출하기 위하여 서버에 충분한 소프트웨어 라이센스를 구비해 두고, 클라이언트 컴퓨터상에서 필요한 때에 소프트웨어를 온라인으로 대여하여 사용하고, 사용후 온라인으로 반납하는 방식으로 운용함으로써 상기 기관 및 단체 내에서 필요로 하는 소프트웨어의 수량을 보다 정확히 추출할 수가 있게 된다.In addition, the server provides a preliminary demand list for the programs, and the client checks the virtual demand through the list, or the user requests a list of required software in the future and extracts the corresponding information. Will be able to efficiently identify the preliminary demand for software needed in the future. In addition, in order to extract usage statistics on more accurate software, the server is provided with sufficient software licenses, the software is rented online when needed on the client computer, and operated by returning online after use. The amount of software needed by the organization can be extracted more accurately.

도 10은 본 발명의 실시예에 따른 서버에서 수집된 정보를 디스플레이하는 방법을 나타낸 도면이다.10 is a diagram illustrating a method of displaying information collected by a server according to an embodiment of the present invention.

상기 도 10을 참조하면, 서버 관리자는 상술한 절차들에 의해 수집된 각 클라이언트별 프로그램의 설치 여부 및 실행 정보 등을 소정의 기설정된 포맷에 의해 일괄적으로 파악할 수 있다.Referring to FIG. 10, the server manager may collectively grasp whether or not the program for each client is installed and execution information collected by the above-described procedures in a predetermined format.

예컨대, 각 클라이언트에 대한 이름(S-1, S-2,... 등)에 따라 각 클라이언트에 설치된 모든 프로그램의 목록(예컨대, 한글 2002, MS 메신저, MS word 등)이 디스플레이된다. 아울러, 상기 각 프로그램에 대한 현재 실행 상태 및 사용 시간에 대한 정보 등이 하나의 페이지 또는 링크된 페이지에 의해 디스플레이될 수 있다.For example, a list of all programs installed in each client (eg, Hangul 2002, MS Messenger, MS word, etc.) is displayed according to the names (S-1, S-2, ..., etc.) for each client. In addition, information on a current execution state and usage time of each program may be displayed by one page or a linked page.

한편, 상기 도 10에 도시되지는 않았지만, 상기 수집된 데이터들을 기초로 각종 분석 자료 또는 통계 자료의 생성이 가능하다. 예컨대, 각 프로그램별 설치 현황, 사용 빈도, 사용 시간 통계, 프로그램 인증 여부 등의 정보들이 제공될 수 있다.Although not shown in FIG. 10, various analysis data or statistical data may be generated based on the collected data. For example, information such as installation status, frequency of use, usage time statistics, and program certification for each program may be provided.

한편, 본 발명의 실시예에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.On the other hand, in the embodiment of the present invention has been described with respect to specific embodiments, various modifications are possible without departing from the scope of the invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the appended claims, but also by those equivalent to the claims.

본 발명에 따르면, 소정의 컴퓨터 시스템 내에 설치되어 있는 프로그램들의 상태 정보를 추출하여 분석함으로써 상기 프로그램들의 자원 관리를 효율적으로 수행할 수 있게 되는 장점이 있다. 특히 상기 컴퓨터 시스템에 설치되어 있는 프로그램들 혹은 실행되고 있는 프로그램들에 대한 목록, 레지스트리 및 파일 정보 분석을 통해 상기 프로그램들의 설치 정보, 실행 정보 혹은 사용 정보를 분석, 추출, 등록, 저장 및 관리하여, 하나의 컴퓨터 시스템 상에서 작동을 준비하거나, 작동되거나, 작동된 과거 및 현재의 정보를 전부 추출하고, 이를 바탕으로 통계를 낼 수 가 있다.According to the present invention, there is an advantage in that resource management of the programs can be efficiently performed by extracting and analyzing state information of programs installed in a predetermined computer system. In particular, by analyzing, extracting, registering, storing, and managing installation information, execution information, or usage information of the programs through analysis of a list, registry, and file information about programs installed on the computer system or programs being executed, It is possible to prepare an operation on one computer system, extract all the information of the past and present which has been operated or operated, and generate statistics based on this.

또한, 서버/클라이언트로 구축되는 네트워크 시스템에서 상기 각 클라이언트에 설치된 프로그램들에 대한 현황 파악, 소재 파악 및 상기 클라이언트의 사용자들이 현재 사용하고 있는 프로그램의 사용량에 대한 통계치를 개별 클라이언트로부터 추출함으로써 해당 기관내에 설치되어 있는 프로그램의 보다 상세하고 구체적인 사용 현황 파악과 상기 기관 내에 속해 있는 사용자들의 프로그램의 사용 경향을 파악함으로써, 상기 기관이 보유하고 있는 소프트웨어 자원(resource)의 효율적인 사용을 기할 수 있다. 또한, 상기 프로그램 사용에 대한 사용량의 증가로 해당 프로그램의 추가가 요청되는 소프트웨어에 대해서는 추가 구매 시기와 수량을 예측하며, 상기 사용자들이 선호하는 소프트웨어에 대한 욕구를 예측함으로써 소프트웨어 자원의 효율적인 구매와 관리를 할 수 있다는 장점이 있다.In addition, in the network system constructed as a server / client, it is possible to determine the current status of the programs installed in each client, the location of the client, and extract statistics about the usage of the programs currently used by the users of the client from the individual clients. By grasping the detailed and specific usage status of the installed programs and the usage trend of the programs of the users belonging to the institution, it is possible to effectively use the software resources possessed by the institution. In addition, the additional purchase time and quantity are predicted for the software that requires the addition of the program due to the increase in the usage of the program, and the efficient purchase and management of the software resources is predicted by predicting the desire for the software preferred by the users. The advantage is that you can.

아울러, 상기한 본 발명의 특징을 이용하여 소정의 기관 혹은 단체 내에서 사용중인 소프트웨어에 대한 동시 사용량을 측정 및 분석할 수 있다. 상기 측정 및 분석된 동시 사용량은 소프트웨어의 구매 및 자산 관리에 중요한 정보로서 활용가능하다. 또한, 상기한 본 발명을 이용하여, 소정의 기관 혹은 단체 내에서 사용중인 정품과 불법 복제물을 정확히 파악할 수 있어 소프트웨어 정품 확산에 도움을 주는 도구로 활용될 수도 있다.In addition, the above-described features of the present invention can be used to measure and analyze the concurrent usage of the software being used within a given institution or organization. The measured and analyzed simultaneous usage can be utilized as important information for purchasing software and managing assets. In addition, by using the present invention described above, it is possible to accurately identify the genuine and illegal copies in use in a given institution or organization can be utilized as a tool to help spread the software genuine.

또한, 본 발명의 특징을 이용하여, 어떤 기관 혹은 단체내에서 향후 소프트웨어가 하나의 서비스로서 사용한 만큼 대금을 지불하게 되는 종량제 시대에 사용량을 시간별, 사용자별, 혹은 여타 복합적인 방식을 적용하여 사용량을 산출하거나 통계, 추출할 수 있는 기본 정보로 활용할 수 있다.In addition, by using the features of the present invention, the usage may be used hourly, per user, or in a complex manner in the pay-per-age era in which an institution or a group will pay for the software used as a service in the future. It can be used as basic information that can be calculated, statistics, or extracted.

결론적으로 본 발명에 따라 소정의 기관 혹은 단체내에서 과거, 현재 혹은 미래에 필요한 소프트웨어의 산정을 보다 정확히 할 수 있는 효과가 있다.In conclusion, according to the present invention, it is possible to more accurately calculate the software required in the past, present or future in a predetermined institution or organization.

Claims (40)

하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 장치에 있어서,In a computer system in which one or more programs are installed and executed, an apparatus for analyzing information about a program installed in the computer system, 상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 프로그램 분석 모듈; 및A program analysis module for extracting and registering installation information of the program through a list of the program and file information, and collecting information on an execution state of the registered program; And 상기 각 프로그램에 대한 설치 정보 및/또는 실행 상태에 대한 정보를 분석하고 통계화하는 프로그램 관리 모듈;을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.And a program management module for analyzing and statistically installing information and / or execution status information for each of the programs. 제1항에 있어서,The method of claim 1, 상기 프로그램 분석 모듈은;The program analysis module; 상기 컴퓨터 시스템에 설치된 상기 프로그램의 설치 정보를 분석하는 프로그램 분석부;A program analyzer for analyzing installation information of the program installed in the computer system; 상기 프로그램 분석부에서 분석한 각 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 프로그램 등록부; 및A program registration unit that registers the list and file information of each program from the installation information of each program analyzed by the program analysis unit; And 상기 프로그램 등록부에 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 사용 정보 추출부;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.And a usage information extracting unit configured to monitor an execution state of each program by referring to the information about the program registered in the program registration unit. 제2항에 있어서,The method of claim 2, 상기 프로그램 분석부는,The program analysis unit, 상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부; 및An installation / removal information extraction unit for retrieving installation information data or files installed by the installation program of the program and generating a list and file information of the program; And 상기 설치/제거 정보 추출부에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.And an execution monitoring method determiner configured to determine a monitoring method for execution states of each program and / or usage states of the program component files based on the information generated by the installation / removal information extraction unit. Information analysis device for programs installed on a computer system. 제3항에 있어서,The method of claim 3, 상기 설치/제거 정보 추출부는,The installation / removal information extraction unit, 기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출부;A registry information extraction unit for extracting registry information of a currently installed program by analyzing information of a previously stored registry; 상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출부;A link information extracting unit for extracting link information of a program installed by analyzing link information of each file constituting the program; 상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 목록 및 파일 설치 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및An installation / removal program information extraction unit for extracting a list of installed programs and file installation information through information on the installation program of each program; And 설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.A registration information extraction unit for extracting installation information of respective programs by extracting registration information of installed files; Information analysis apparatus for a program installed in a computer system, characterized in that it comprises one or more selected from. 제3항에 있어서,The method of claim 3, 상기 설치/제거 정보 추출부는,The installation / removal information extraction unit, 이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출부;A registry information extracting unit for extracting information of the deleted program by analyzing the undeleted registry information of the program that was previously installed and the program was deleted but the registry was not deleted; 상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출부;A link information extracting unit configured to extract the information of the deleted program by analyzing the link information that constitutes the program but is not deleted; 상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및An installation / removal program information extraction unit for extracting information of the deleted program through the information of the undeleted removal information file of the program; And 삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.A registration information extraction unit for extracting information of the removed program by extracting names, sizes, and registration information of undeleted folders and files of the deleted program; Information analysis apparatus for a program installed in a computer system, characterized in that it comprises one or more selected from. 제2항에 있어서,The method of claim 2, 상기 프로그램 등록부는,The program registration unit, 상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.Installing in a computer system characterized by performing an organic management between an executable file for executing the program and files providing information for executing the program associated with the executable file with reference to the information of the installed program Information analysis device for the program being. 제2항에 있어서,The method of claim 2, 상기 사용 정보 추출부는,The usage information extraction unit, 상기 프로그램 분석부에서 얻은 결과를 통해 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시부;A process monitoring unit for monitoring whether an execution file of the program is registered and executed as a predetermined process based on the result obtained by the program analyzing unit; 실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시부; 및A file load monitoring unit that monitors files executed as executable elements of other executable files by using other executable files instead of executable files; And 컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.A component load monitoring unit that checks how many times it is loaded for a file having a structure that can be shared and used by a plurality of processes; Information analysis apparatus for a program installed in a computer system, characterized in that it comprises one or more selected from. 제1항에 있어서,The method of claim 1, 상기 프로그램 관리 모듈은,The program management module, 상기 프로그램 분석 모듈에서 수집된 데이터를 분석하여 컴퓨터에 설치/제거된 프로그램 정보 및 상기 프로그램의 실행 정보를 저장하는 데이터 처리부;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 장치.And a data processing unit for analyzing the data collected by the program analysis module and storing the program information installed / removed in the computer and the execution information of the program. 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버 및 클라이언트들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에 있어서,A server / client system in which one or more clients and a server on which one or more programs are installed for each client are connected by wire / wireless communication means, and data is transmitted and received between the server and clients by a predetermined communication protocol. 상기 클라이언트에 설치되며, 상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하여 전송하는 프로그램 분석 모듈; 및A program analysis module installed in the client and extracting and registering installation information of the program through a list and file information of the program, and collecting and transmitting information on an execution state of the registered program; And 상기 서버에 설치되며, 상기 각 클라이언트로부터 상기 전송된 프로그램에 대한 설치 정보 및/또는 실행 상태에 대한 정보를 수신하고, 상기 수신된 정보로부터 상기 각 클라이언트별 프로그램들에 대한 정보를 구조화하여 저장하는 프로그램 관리 모듈;을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.A program installed in the server, receiving installation information and / or execution status of the transmitted program from each client, and storing and storing information about the programs for each client from the received information A management module; program management system for a client in a server / client network system. 제9항에 있어서,The method of claim 9, 상기 프로그램 분석 모듈은;The program analysis module; 상기 클라이언트에 설치된 상기 프로그램의 설치 정보를 분석하는 프로그램 분석부;A program analyzer for analyzing installation information of the program installed in the client; 상기 프로그램 분석부에서 분석한 각 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 프로그램 등록부;A program registration unit that registers the list and file information of each program from the installation information of each program analyzed by the program analysis unit; 상기 프로그램 등록부에 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 사용 정보 추출부; 및A usage information extracting unit configured to monitor an execution state of each program by referring to information about the program registered in the program registering unit; And 상기 사용 정보 추출부에서 수행한 감시 결과에 따른 정보를 기설정된 형식에 맞게 자료화하는 보고 자료 처리부;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.And a report data processing unit for documenting information according to a monitoring result performed by the usage information extracting unit according to a predetermined format. The program management system for a client in a server / client network system. 제9항에 있어서,The method of claim 9, 상기 프로그램 분석 모듈은,The program analysis module, 상기 프로그램 분석부 및/또는 사용 정보 추출부에서 추출된 정보가 서버로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리하는 전송 처리부;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.And a transmission processor converting the information to be transmitted as a data format suitable for a predetermined format so that the information extracted by the program analyzer and / or the usage information extractor is transmitted to a server. A program management system for a client in a server / client network system. 제9항에 있어서,The method of claim 9, 상기 프로그램 분석부는,The program analysis unit, 상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부; 및An installation / removal information extraction unit for retrieving installation information data or files installed by the installation program of the program and generating a list and file information of the program; And 상기 설치/제거 정보 추출부에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.And an execution monitoring method determiner configured to determine a monitoring method for execution states of each program and / or usage states of the program component files based on the information generated by the installation / removal information extraction unit. Program management system for clients on server / client network systems. 제12항에 있어서,The method of claim 12, 상기 설치/제거 정보 추출부는,The installation / removal information extraction unit, 기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출부;A registry information extraction unit for extracting registry information of a currently installed program by analyzing information of a previously stored registry; 상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출부;A link information extracting unit for extracting link information of a program installed by analyzing link information of each file constituting the program; 상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 목록 및 파일 설치 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및An installation / removal program information extraction unit for extracting a list of installed programs and file installation information through information on the installation program of each program; And 설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출 하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.A registration information extraction unit for extracting installation information of each program by extracting registration information of installed files; Program management system for the client in the server / client network system, characterized in that it comprises any one or more selected. 제12항에 있어서,The method of claim 12, 상기 설치/제거 정보 추출부는,The installation / removal information extraction unit, 이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출부;A registry information extracting unit for extracting information of the deleted program by analyzing the undeleted registry information of the program that was previously installed and the program was deleted but the registry was not deleted; 상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출부;A link information extracting unit configured to extract the information of the deleted program by analyzing the link information that constitutes the program but is not deleted; 상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부; 및An installation / removal program information extraction unit for extracting information of the deleted program through the information of the undeleted removal information file of the program; And 삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.A registration information extraction unit for extracting information of the removed program by extracting names, sizes, and registration information of undeleted folders and files of the deleted program; Program management system for the client in the server / client network system, characterized in that it comprises any one or more selected. 제10항에 있어서,The method of claim 10, 상기 프로그램 등록부는,The program registration unit, 상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.A server / client network characterized by performing an organic management between an executable file for executing the program and files providing information for executing the program associated with the executable file with reference to the information of the installed program Program management system for clients on the system. 제10항에 있어서,The method of claim 10, 상기 사용 정보 추출부는,The usage information extraction unit, 상기 프로그램 분석부에서 얻은 결과를 통해 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시부;A process monitoring unit for monitoring whether an execution file of the program is registered and executed as a predetermined process based on the result obtained by the program analyzing unit; 실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시부; 및A file load monitoring unit that monitors files executed as executable elements of other executable files by using other executable files instead of executable files; And 컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시부; 중에서 선택된 어느 하나 이상을 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.A component load monitoring unit that checks how many times it is loaded for a file having a structure that can be shared and used by a plurality of processes; Program management system for the client in the server / client network system, characterized in that it comprises any one or more selected. 제10항에 있어서,The method of claim 10, 상기 보고 자료 처리부는,The report data processing unit, 상기 사용 정보 추출부를 통해 획득한 상기 프로그램의 사용 시간을 관리하고, 상기 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.Managing the usage time of the program acquired through the usage information extracting unit, defining structures of data to be exchanged with the server, and performing data processing for managing information about the program and data on usage for each client; Program management system for clients on a server / client network system. 제9항에 있어서,The method of claim 9, 상기 프로그램 관리 모듈은,The program management module, 상기 클라이언트에서 수집되어 전송된 데이터를 분석하여 각 클라이언트에 설치/제거된 프로그램 정보 및 상기 프로그램의실행 정보를 저장하는 데이터 처리부; 및A data processor configured to analyze data transmitted and collected by the client and to store program information and execution information of the program installed / removed in each client; And 상기 각 클라이언트 시스템들이 사용하는 소프트웨어 프로그램에 대해서 동시 사용자 수를 추출하기 위해서 필요한 계산 알고리즘 및 상기 추가 예상 프로그램의 목록을 작성등을 하는 데이터 관리부;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 시스템.And a data management unit for calculating a list of the additional expected programs and a calculation algorithm necessary for extracting the number of simultaneous users for the software programs used by the client systems. Program management system for. 하나 이상의 프로그램이 설치되어 실행되는 컴퓨터 시스템에서, 상기 컴퓨터 시스템에 설치되는 프로그램에 대한 정보를 분석하는 방법에 있어서,In a computer system in which one or more programs are installed and executed, a method for analyzing information about a program installed in the computer system, 상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 프로그램 분석 단계; 및A program analysis step of extracting and registering installation information of the program through the list and file information of the program and collecting information on an execution state of the registered program; And 상기 각 프로그램에 대한 설치 정보 및 실행 상태에 대한 정보를 분석하고 통계화하는 프로그램 관리 단계;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.And a program management step of analyzing and statistically analyzing installation information and execution status of each program. 제19항에 있어서,The method of claim 19, 상기 프로그램 분석 단계는,The program analysis step, 상기 컴퓨터 시스템에 설치된 상기 프로그램의 설치 정보를 분석하는 단계;Analyzing installation information of the program installed in the computer system; 상기 분석된 각 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 단계;Registering the list and file information of each program from the analyzed installation information of each program; 상기 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 단계; 및Monitoring the execution status of each program by referring to the information on the registered program; And 상기 수행한 감시 결과에 따른 정보를 기설정된 형식에 맞게 자료화하는 단계;를 더 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.And documenting information according to the result of the monitoring according to a predetermined format. The information analysis method for the program installed in the computer system, further comprising. 제19항에 있어서,The method of claim 19, 상기 프로그램 분석 단계는;The program analyzing step; 상기 프로그램의 설치 프로그램이 생성한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치 정보 추출 단계; 및An installation information extraction step of searching for installation information data or files generated by the installation program of the program and generating a list and file information of the program; And 상기 단계에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정 단계;를 포함함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.A execution monitoring method determining step of determining a monitoring method for execution status of each program and / or usage status of a program component file based on the information generated in the step; a program installed in a computer system, comprising: Information analysis method for. 제21항에 있어서,The method of claim 21, 상기 설치 정보 추출 단계에서의 설치 정보 추출 방법은,The installation information extraction method in the installation information extraction step, 기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출 방법, 상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 목록 및 파일 설치 정보를 추출하는 설치 정보 추출 방법, 및 설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.A registry information extraction method for extracting registry information of a currently installed program by analyzing previously stored registry information, and a link for extracting link information of an installed program by analyzing link information of each file constituting the program. An information extraction method, an installation information extraction method for extracting a list of installed programs and file installation information through the information of the installation program of each program, and a registration for extracting installation information of each program by extracting registration information of installed files An information analysis method for a program installed in a computer system, characterized in that performed by at least one selected from among information extraction methods. 제21항에 있어서,The method of claim 21, 상기 설치 정보 추출 단계에서의 설치 정보 추출 방법은,The installation information extraction method in the installation information extraction step, 이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출 방법, 상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부 방법 및 삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거된 프로그램의 정보를 추출하는 등록 정보 추출부 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.A registry information extraction method for extracting information of a deleted program by analyzing the undeleted registry information of the program that was previously installed and the program was deleted but the registry was not deleted. Link information extraction method for extracting the information of the deleted program, the installation / removal program information extraction unit method for extracting the information of the deleted program through the information of the undeleted removal information file of the program and the deleted program is not deleted Information analysis method for a program installed in a computer system, characterized in that performed by one or more selected from among the information extraction unit methods for extracting the information of the removed program by extracting the name, size, registration information of the folder and file . 제19항에 있어서,The method of claim 19, 상기 프로그램 분석 단계는,The program analysis step, 상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.Installing in a computer system characterized by performing an organic management between an executable file for executing the program and files providing information for executing the program associated with the executable file with reference to the information of the installed program How to analyze information about the program being run. 제20항에 있어서,The method of claim 20, 상기 실행 상황 감시 단계에서의 실행 상황 감시 방법은,Execution status monitoring method in the execution status monitoring step, 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시방법, 실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시 방법, 및 컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로드 감시 방법; 중에서 선택된 어느 하나 이상의 방법으로 수행함을 특징으로 하는 컴퓨터 시스템에 설치되는 프로그램에 대한 정보 분석 방법.Process monitoring method that monitors whether the executable file of the program is registered and executed by a predetermined process, and monitors files that are executed as execution elements of other executable files by using another executable file instead of the executable file A file load monitoring method for performing a method, and a component load monitoring method for checking how many times a file has been loaded with respect to a file having a structure that can be shared and used by multiple processes; Information analysis method for a program installed in a computer system, characterized in that performed in any one or more of the selected method. 각 클라이언트마다 하나 이상의 프로그램이 설치되는 하나 이상의 클라이언 트들 및 서버가 유/무선 통신 수단에 의해 연결되고, 상기 서버들 간에 소정의 통신 프로토콜에 의해 데이터를 송수신 하는 서버/클라이언트 시스템에서, 상기 클라이언트에 설치된 상기 프로그램에 대한 정보를 상기 서버로 전송하는 방법에 있어서,In a server / client system in which one or more clients and a server on which one or more programs are installed for each client are connected by wire / wireless communication means, and data is transmitted and received by a predetermined communication protocol between the servers. In the method for transmitting information about the program to the server, 상기 클라이언트에 설치된 상기 프로그램의 목록 및 파일 정보를 통해 상기 프로그램의 설치 정보를 추출하여 등록하고, 상기 등록된 프로그램의 실행 상태에 대한 정보를 수집하는 단계; 및Extracting and registering installation information of the program through a list and file information of the program installed in the client, and collecting information on an execution state of the registered program; And 상기 수집된 정보를 상기 서버로 전송하는 단계;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.And transmitting the collected information to the server. The method of claim 1, further comprising transmitting the collected information to the server. 제26항에 있어서,The method of claim 26, 상기 각 클라이언트에 설치된 프로그램에 대한 정보를 수집하는 단계는,Collecting information about the program installed in each client, 상기 각 클라이언트에 설치된 프로그램의 설치 정보로부터 상기 각 프로그램의 목록 및 파일 정보를 등록하는 단계;Registering a list and file information of each program from installation information of a program installed in each client; 상기 등록된 상기 프로그램에 대한 정보를 참조하여 상기 각 프로그램에 대한 실행 상황을 감시하는 단계; 및Monitoring the execution status of each program by referring to the information on the registered program; And 상기 수행한 감시 결과에 따른 정보를 기설정된 형식에 맞게 자료화하는 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.And documenting the information according to the result of the monitoring according to a predetermined format. The program management method for the client in the server / client network system, characterized in that it further comprises. 제26항에 있어서,The method of claim 26, 상기 방법은,The method, 상기에서 추출된 정보가 서버로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리하는 전송 처리 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.In the server / client network system, characterized in that it further comprises a transmission processing step of converting the information to be transmitted as a data format suitable for a predetermined predetermined format so that the extracted information can be transmitted to the server; How to manage programs for clients. 제27항에 있어서,The method of claim 27, 상기 클라이언트에 설치된 프로그램에 대한 정보를 수집하는 단계는,Collecting information about the program installed in the client, 상기 프로그램의 설치 프로그램이 생성한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치 정보 추출 단계; 및An installation information extraction step of searching for installation information data or files generated by the installation program of the program and generating a list and file information of the program; And 상기 단계에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정 단계;를 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.In the server / client network system comprising a; execution monitoring method determining step of determining a monitoring method for the execution status of each program and / or the use status of the program component file based on the information generated in the step How to manage programs for clients. 제27항에 있어서,The method of claim 27, 상기 설치 정보 추출 단계에서 수행되는 설치 정보 추출 방법은,The installation information extraction method performed in the installation information extraction step, 기저장되어 있는 레지스트리의 정보를 분석함으로써 현재 설치되어 있는 프로그램의 레지스트리 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하는 각 파일의 링크 정보를 분석하여 설치되어 있는 프로그램의 링크 정보를 추출하는 링크 정보 추출 방법, 상기 각 프로그램의 설치 프로그램의 정보를 통해 설치되어 있는 프로그램의 설치 정보를 추출하는 설치 정보 추출 방법, 및 설치된 파일의 등록 정보를 추출함으로써 각 프로그램들의 설치 정보를 추출하는 등록 정보 추출 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.A registry information extraction method for extracting registry information of a currently installed program by analyzing previously stored registry information, and a link for extracting link information of an installed program by analyzing link information of each file constituting the program. An information extraction method, an installation information extraction method for extracting installation information of a program installed through the information of an installation program of each program, and a registration information extraction method for extracting installation information of respective programs by extracting registration information of installed files Program management method for a client in a server / client network system, characterized in that it performs at least one selected from among them. 제27항에 있어서,The method of claim 27, 상기 설치 정보 추출 단계에서의 설치 정보 추출 방법은,The installation information extraction method in the installation information extraction step, 이전에 설치되어 프로그램은 삭제되었으나 레지스트리는 삭제되지 않은 상기 프로그램의 상기 삭제되지 않은 레지스트리 정보를 분석함으로써 삭제된 프로그램의 정보를 추출하는 레지스트리 정보 추출 방법, 상기 프로그램을 구성하였으나 삭제되지 않은 링크 정보를 분석하여 삭제된 프로그램의 정보를 추출하는 링크 정보 추출 방법, 상기 프로그램의 삭제되지 않은 제거 정보 파일의 정보를 통해 삭제된 프로그램의 정보를 추출하는 설치/제거 프로그램 정보 추출부 방법 및 삭제된 프로그램의 삭제되지 않은 폴더 및 파일의 이름, 크기, 등록정보를 추출함으로써 제거 된 프로그램의 정보를 추출하는 등록 정보 추출부 방법들 중에서 선택된 어느 하나 이상으로 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.A registry information extraction method for extracting information of a deleted program by analyzing the undeleted registry information of the program that was previously installed and the program was deleted but the registry was not deleted. Link information extraction method for extracting the information of the deleted program, the installation / removal program information extraction unit method for extracting the information of the deleted program through the information of the undeleted removal information file of the program and the deleted program is not deleted A program for a client in a server / client network system, characterized in that it is performed by one or more selected among the property extraction unit methods of extracting the information of the removed program by extracting the names, sizes, and properties of folders and files. How to manage your program. 제26항에 있어서,The method of claim 26, 상기 설치되어 있는 프로그램의 정보를 참조하여 상기 프로그램의 실행을 위한 실행 파일 및 상기 실행 파일과 관련된 상기 프로그램의 실행을 위한 정보를 제공하는 파일들간의 유기적인 관리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.A server / client network characterized by performing an organic management between an executable file for executing the program and files providing information for executing the program associated with the executable file with reference to the information of the installed program How to manage programs for clients on your system. 제27항에 있어서,The method of claim 27, 상기 실행 상황을 감시하는 단계에서 수행되는 실행 상황 감시 방법은,Execution status monitoring method performed in the step of monitoring the execution status, 상기 프로그램 분석부에서 얻은 결과를 통해 상기 프로그램의 실행 파일이 소정의 프로세스로 등록이 되어 실행되고 있는지를 감시하는 프로세스 감시방법, 실행 파일이 아니면서 다른 실행 파일을 사용함으로써 자신이 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행하는 파일 로드 감시 방법, 및 컴포넌트 파일로 구성되어 여러 개의 프로세스에 의해서 공유되어 사용할 수 있는 구조를 가진 파일에 대해 자신이 몇 번이나 로딩 되었는지를 검사하는 컴포넌트 로 드 감시 방법; 중에서 선택된 어느 하나 이상의 방법으로 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.A process monitoring method for monitoring whether an executable file of the program is registered and executed by a predetermined process based on the result obtained by the program analyzing unit, and executing another executable file by using another executable file instead of the executable file A file load monitoring method that monitors files executed as elements, and a component that checks how many times it has been loaded for a file having a structure composed of component files that can be shared and used by multiple processes. Load monitoring method; Program management method for a client in a server / client network system, characterized in that performed in any one or more of the selected method. 제26항에 있어서,The method of claim 26, 상기 방법은,The method, 상기 수집된 실행 상태 정보로부터 상기 프로그램의 사용 시간을 관리하는 보고 자료 처리 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.And a report data processing step of managing a use time of the program from the collected execution state information. The program management method for a client in a server / client network system further comprises. 제34항에 있어서,The method of claim 34, wherein 상기 보고 자료 처리 단계는,The report data processing step, 상기 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.A method of managing a program for a client in a server / client network system, the method comprising: defining structures of data to be exchanged with the server, and performing data processing for managing information on a program and data on usage for each client. 제26항에 있어서,The method of claim 26, 상기 서버가 상기 각 클라이언트로 추가 예상 프로그램의 목록을 전송하는 단계; 및The server sending a list of additional expected programs to each client; And 상기 예상 프로그램 목록을 수신한 각 클라이언트가 추가하고자 하는 프로그램의 목록을 작성하여 상기 서버로 전송하는 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.And generating a list of programs to be added by each client to which the client has received the expected program list, and transmitting the list of programs to the server. 제36항에 있어서,The method of claim 36, 상기 추가 예상 프로그램 목록을 수신한 소정의 클라이언트에서 상기 클라이언트가 신청할 프로그램이 상기 수신한 추가 예상 프로그램 목록에 있을 경우, 상기 신청할 프로그램을 상기 목록에서 체크하여 신청함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.In the server / client network system, if a program to be applied by the client is in the received list of additional expected programs in the predetermined client that has received the additional expected program list, the program to be applied is checked in the list and applied for. How to manage programs for clients. 제36항에 있어서,The method of claim 36, 상기 추가 예상 프로그램 목록을 수신한 소정의 클라이언트에서 상기 클라이언트가 신청할 프로그램이 상기 수신한 추가 예상 프로그램 목록에 없을 경우, 상기 신청할 프로그램을 상기 목록에 추가하여 신청함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법.In the server / client network system, if a program to be applied by the client is not in the received list of additional expected programs in the predetermined client that has received the additional expected program list, the program to be applied is added to the list and applied. How to manage programs for clients. 제36항에 있어서,The method of claim 36, 상기 추가 예상 프로그램의 목록을 전송하는 단계는,The step of transmitting the list of the additional expected program, 상기 설치/제거 정보 추출부에서 얻은 삭제된 프로그램의 목록을 통해 요청되는 프로그램의 종류 및 수량을 예측하는 단계; 및Estimating the type and quantity of programs requested through the list of deleted programs obtained by the installation / removal information extraction unit; And 상기 설치/제거 정보 추출부에서 얻은 설치된 프로그램의 목록과 사용정보 추출부에서 얻은 프로그램 사용량을 통해 프로그램의 수요를 예측하는 단계;를 더 포함함을 특징으로 하는 서버/클라이언트 네트워크 시스템에서 클라이언트에 대한 프로그램 관리 방법. Estimating the demand of the program based on the list of installed programs obtained by the installation / removal information extraction unit and the usage of the program obtained by the usage information extraction unit. The program for the client in the server / client network system further comprises: How to manage. 제19항 내지 제39항 중에서 선택된 어느 한 항에 따른 방법을 수행할 수 있는 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium containing a program capable of performing the method according to any one of claims 19 to 39.
KR1020040041165A 2004-06-05 2004-06-05 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 KR100625867B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040041165A KR100625867B1 (en) 2004-06-05 2004-06-05 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040041165A KR100625867B1 (en) 2004-06-05 2004-06-05 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

Publications (2)

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

Family

ID=37289634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040041165A KR100625867B1 (en) 2004-06-05 2004-06-05 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

Country Status (1)

Country Link
KR (1) KR100625867B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907453B1 (en) * 2006-12-27 2009-07-10 주식회사 안철수연구소 Method and system for managing software based on user evaluation
KR101028691B1 (en) * 2011-01-05 2011-04-14 (주)유케이디 Administration system and operating method of a refined article software
CN103019918B (en) * 2011-09-27 2015-07-15 腾讯科技(深圳)有限公司 Method and device for acquiring operating frequency of application program
KR101331897B1 (en) * 2011-12-15 2013-11-21 숭실대학교산학협력단 Device and method to dynamically offload mobile device application
CN108958654B (en) * 2018-06-26 2021-08-10 郑州云海信息技术有限公司 Management method and related device of storage system

Also Published As

Publication number Publication date
KR20050115761A (en) 2005-12-08

Similar Documents

Publication Publication Date Title
US8201029B2 (en) Method and apparatus for operating system event notification mechanism using file system interface
US8997054B2 (en) Software application certification service
KR100826837B1 (en) Grid service scheduling of related services using heuristics
KR100773016B1 (en) Method and apparatus for publishing and monitoring entities providing services in a distributed data processing system
CN101151593B (en) Autonomic computing: management agent utilizing action policy for operation
US8521865B2 (en) Method and apparatus for populating a software catalog with automated use signature generation
US20060167891A1 (en) Method and apparatus for redirecting transactions based on transaction response time policy in a distributed environment
US20080065702A1 (en) Method of detecting changes in edn-user transaction performance and availability caused by changes in transaction server configuration
US11789751B2 (en) System and method for estimation of time to completion for heterogeneous application upgrades in a customer environment
US11086618B2 (en) Populating a software catalogue with related product information
KR20070121715A (en) Multifaceted system capabilities analysis
JP2015505097A (en) Computer-implemented process, computer program product, and apparatus for repair delivery system
US20180295494A1 (en) Classification of objects
WO2010052998A1 (en) Maintenance system, maintenance method, and maintenance program
US11960873B2 (en) System and method for managing a model for solving issues using a set of actions performed on the client environment
US20170206121A1 (en) Monitoring components in a service framework
JP2006523333A (en) System and method for installing and integrating component data models
US20050076325A1 (en) Automatic software update of nodes in a network data processing system
US8261274B2 (en) Method and system for managing a task
KR100625867B1 (en) 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
US20050283528A1 (en) Definition system and method for web services that monitor other web services
US8306865B2 (en) Pricing remote information technology infrastructure monitoring services
WO2019055944A1 (en) Unix file and process mapping
US10049190B1 (en) Method and apparatus for remotely managing a resource at a computer
JP2022113409A (en) Information processing system, information processing method, and information processing program

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