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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3452—Performance 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
도 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:
201 : OS 202 : 프로그램 정보 분석 장치201: OS 202: program information analysis device
203 : 프로그램 205 : 프로그램 분석 모듈203: Program 205: Program Analysis Module
206 : 프로그램 관리 모듈 210, 280 : CPU206:
220, 250 : I/O 어댑터 230, 260 : 데이터 저장장치220, 250: I /
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
상기 도 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
상기 서버(100)는 상기 각 클라이언트들(120)의 로그인 정보를 알고 있으며, 상기 각 클라이언트들(120)의 네트워크 연결 상태도 감지하고 있게 된다. 또한, 상기 서버(100)와 클라이언트들(120)간에는 소정의 기설정된 통신 규약(즉, 프로토콜(protocol))에 의해 데이터의 송수신이 가능하게 된다.The
한편, 상기 각 클라이언트들(120)에는 하나 이상의 프로그램들이 설치되며, 상기 설치된 프로그램들은 사용자의 요구에 따라 실행된다. 이때, 본 발명에 따라 상기 각 클라이언트들(120)에 설치된 각종 프로그램들의 설치 정보와 실행 정보가 각 클라이언트 내에 구비된 소정의 모듈에 의해 수집되며, 상기 수집된 각 클라이언트들의 프로그램들에 대한 설치 정보 및 실행 정보들은 본 발명에 따라 상기 서버(100)로 주기적으로 전송되거나 또는 상기 서버(100)의 요청에 의해 전송된다.Meanwhile, one or more programs are installed in each of the
이때, 상기 각 클라이언트들(120)로부터 수집된 정보들은 상기 서버(100)에서 종합되며, 사용자로 하여금 용이하게 파악할 수 있도록 하기 위하여 소정의 기설정된 포맷에 의해 디스플레이되도록 구현할 수 있다.In this case, the information collected from each of the
상술한 바와 같이 상기 각 컴퓨터 시스템(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
이하, 도 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
상기 CPU(210)는 범용 프로그램 가능한 처리기이며, 메모리(200) 내에 저장된 소정의 인스트럭션을 실행하며, 상기 도 2a에는 단일 CPU가 도시되지만, 다중 CPU를 갖는 컴퓨터 시스템이 사용될 수도 있다.The
메모리(200)는 데이터 및 프로그램을 저장하는 반도체 RAM(Random Access Memory) 또는 ROM(Read Only Memory) 등으로 구성될 수 있으며, 상기 메모리는 도면상에서 단일 모놀리식 물체로 개념적으로 도시되지만, 종종 캐시(caches) 및 다른 메모리 장치들의 계층형 구조로 구성될 수도 있다. 한편, 운영 체제(Operating System; 이하, 'OS'라 한다)(201) 및 복수의 프로그램(203)들이 상기 컴퓨터 시스템(130)의 메모리(200) 내에 존재하게 된다.The
상기 프로그램(203)은 본 발명에 따른 데이터 수집의 대상이 되며, 상술한 바와 같이 컴퓨터 상에서 실행되는 복수의 파일들로 구성된 프로그램을 의미한다. 상기 프로그램(203)은 일반적으로 상기 데이터 저장 장치(230)에 저장되어 설치(install)되며, 실행 요구시 RAM 등과 같은 메모리에 로딩되어 실행된다. 한편, 상기 프로그램(203)은 그 종류에 따라 상기 컴퓨터 시스템(130)의 부팅(booting)시 자동으로 실행될 수 있도록 설정하는 것이 가능하며, 상기 RAM에 상주시켜 필요시 항상 실행되도록 설치할 수도 있다. 또한, 상술한 바와 같이 상기 프로그램을 구성하는 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성되며, 상기 각 파일들의 유형은 확장자에 의해 구분된다.The
데이터 저장 장치(230)는 바람직하게는 하나 이상의 회전 자기 하드 디스크 드라이브 장치를 포함할 수 있지만, 다른 타입의 저장 장치가 사용될 수도 있다. The
한편, 통신 버스(231)는 상이한 디바이스들 간의 데이터, 명령, 다른 정보의 전달을 지원하며, 도면에서는 단순하게 단일 버스로 도시되었으며, 통상적으로 통신 버스는 다중 버스로 구성되며, 계층 형태로 구성될 수도 있다.On the other hand, the
또한, 상기 도 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
본 발명에 따라 상기 컴퓨터 시스템(130)은 본 발명의 구현을 위하여 상기 메모리(200) 내에 프로그램 정보 분석 장치(202)를 구비한다. 상기 프로그램 정보 분석 장치(202)는 상기 컴퓨터 시스템(130) 내에 설치된 상기 프로그램(203)들에 대한 설치, 실행 및 사용 정보 등의 프로그램 관련 정보들을 추출하여 저장하고, 상기 저장된 프로그램 관련 정보들을 분석하여 통계화함으로써, 상기 컴퓨터 시스템(130)의 사용자로 하여금 상기 컴퓨터 시스템(130)을 효율적으로 이용할 수 있도록 한다.According to the present invention, the
또한, 상기 프로그램 정보 분석 장치(202)는 상기 프로그램(203) 대한 정보를 수집하기 위한 프로그램 분석 모듈(205)과, 상기 수집된 정보를 분석하여 통계화하기 위한 프로그램 관리 모듈(206)로 구성할 수 있다.In addition, the program
한편, 상기 본 발명에 따른 프로그램 분석 모듈(205)은 그 구현 방법에 따라 소프트웨어의 형태로 상기와 같이 메모리(200)에 저장되거나 별도의 데이터 저장 장치(230)에 저장될 수도 있으며, 다른 방법으로 하드웨어적으로 구성된 소정의 별도 처리 모듈로 구성될 수도 있다. 이에 따라, 상기 컴퓨터 시스템(130)에 설치된 상기 본 발명에 따른 프로그램 분석 모듈(205)은 상기 하나 이상의 프로그램(203)들에 대한 설치, 제거 및 실행 상태를 체크하여 그 결과를 수집하게 된다.On the other hand, the
또한, 본 발명에 따라 상기 클라이언트(120)의 프로그램 분석 모듈(205)에서 수집된 데이터는 상기 프로그램 관리 모듈(206)로 전송된다. 상기 프로그램 관리 모듈(206)에서는 상기 각 프로그램 분석 모듈(205)에서 수집된 프로그램 관련 정보들을 체계화하여 관리하게 된다.In addition, according to the present invention, the data collected by the
상기 프로그램 분석 모듈(205) 및 프로그램 관리 모듈(206)에 대한 보다 구제적인 동작 및 구조는 후술하기로 한다.More specific operations and structures of the
도 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
또한, 상기 서버(100) 및 클라이언트(120)에서의 다양한 장치들은 각각 내부 통신 버스(231)를 통해 서로 통신한다. 상기 CPU(210, 280)는 범용 프로그램 가능한 처리기이며, 메모리(200, 290) 내에 저장된 소정의 인스트럭션을 실행하며, 상기 도 2b에는 각 장치별 단일 CPU가 도시되지만, 다중 CPU를 갖는 컴퓨터 시스템이 사용될 수도 있다.In addition, the various devices in the
메모리(200, 290)는 데이터 및 프로그램을 저장하는 반도체 RAM(Random Access Memory) 또는 ROM(Read Only Memory) 등으로 구성될 수 있으며, 상기 메모리는 도면상에서 단일 모놀리식 물체로 개념적으로 도시되지만, 종종 캐시(caches) 및 다른 메모리 장치들의 계층형 구조로 구성될 수도 있다. 한편, 운영 체제(Operating System; 이하, 'OS'라 한다)(201) 및 복수의 프로그램(203)들이 상기 클라이언트(120)의 메모리(200) 내에 존재하게 된다.The
상기 프로그램(203)은 본 발명에 따른 데이터 수집의 대상이 되며, 상술한 바와 같이 컴퓨터 상에서 실행되는 복수의 파일들로 구성된 프로그램을 의미한다. 상기 프로그램(203)은 일반적으로 상기 데이터 저장 장치(230)에 저장되어 설치(install)되며, 실행 요구시 RAM 등과 같은 메모리에 로딩되어 실행된다. 한편, 상기 프로그램(203)은 그 종류에 따라 상기 클라이언트(120)의 부팅(booting)시 자동으로 실행될 수 있도록 설정하는 것이 가능하며, 상기 RAM에 상주시켜 필요시 항상 실행되도록 설치할 수도 있다. 또한, 상술한 바와 같이 상기 프로그램을 구성하는 파일들은 상기 프로그램의 실행을 위해 사용되는 실행 파일(Execution File)과, 기타 상기 실행에 필요한 드라이버(driver) 또는 데이터들을 저장하는 각종 유형의 파일들로 구성되며, 상기 각 파일들의 유형은 확장자에 의해 구분된다.The
데이터 저장 장치(230, 260)는 바람직하게는 하나 이상의 회전 자기 하드 디스크 드라이브 장치를 포함할 수 있지만, 다른 타입의 저장 장치가 사용될 수도 있다. 네트워크 I/F(240, 270)는 네트워크(110)로부터 그리고 네트워크(110)로의 데이터의 전송을 위한 물리적 접속부를 제공한다. 바람직한 실시예에서, 상기 네트워 크(100)는 인트라넷이지만, 인터넷, WAN, LAN과 같은 임의의 소형 자기 보유형 네트워크 또는 가령 전화 전송 라인, 위성, 광섬유, T1 라인 등을 사용하는 다른 내부 또는 외부 네트워크일 수 있으며, 임의의 다수의 가용한 기술일 수도 있다.The
한편, 통신 버스(231)는 상이한 디바이스들 간의 데이터, 명령, 다른 정보의 전달을 지원하며, 도면에서는 단순하게 단일 버스로 도시되었으며, 통상적으로 통신 버스는 다중 버스로 구성되며, 계층 형태로 구성될 수도 있다.On the other hand, the
또한, 상기 도 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
본 발명에 따라 클라이언트(120)에서는 상기 클라이언트(120)에서 수행되는 프로그램(203) 대한 정보를 수집하기 위한 프로그램 분석 모듈(205)을 상기 메모리(200)에 구비하며, 상기 수집된 정보를 서버(100)에서 통합 관리하기 위하여 상기 서버(100)의 메모리(290)에 프로그램 관리 모듈(206)을 구비한다.According to the present invention, the
한편, 상기 본 발명에 따른 프로그램 분석 모듈(205)은 그 구현 방법에 따라 소프트웨어의 형태로 상기와 같이 메모리(200)에 저장되거나 별도의 데이터 저장 장치(230)에 저장될 수도 있으며, 다른 방법으로 하드웨어적으로 구성된 소정의 별도 처리 모듈로 구성될 수도 있다. 이에 따라, 상기 클라이언트(120)에 설치된 상기 본 발명에 따른 프로그램 분석 모듈(205)은 상기 하나 이상의 프로그램(203)들 에 대한 설치, 제거 및 실행 상태를 체크하여 그 결과를 수집하게 된다.On the other hand, the
또한, 본 발명에 따라 상기 클라이언트(120)의 프로그램 분석 모듈(205)에서 수집된 데이터는 상기 네트워크 I/F(240, 270) 및 네트워크(110)를 통해 상기 서버(100)의 프로그램 관리 모듈(206)로 전송된다. 상기 프로그램 관리 모듈(206)에서는 상기 각 클라이언트(120)들로부터 수집된 프로그램 관련 정보들을 체계화하여 관리하게 된다.In addition, the data collected by the
이하, 도 3 및 도 4를 참조하여 상기 클라이언트(120)의 프로그램 분석 모듈(205)에 대해 보다 구체적으로 설명한다.Hereinafter, the
도 3은 본 발명의 실시예에 따른 클라이언트에서 프로그램 분석 모듈(205)의 세부 구조를 나타낸 도면이다.3 is a diagram showing the detailed structure of the
상기 도 3을 참조하면, 본 발명의 실시예에 따른 프로그램 분석 모듈(205)은 프로그램 분석부(300), 프로그램 등록부(310), 사용 정보 추출부(320), 제어부(330), 보고 자료 처리부(340), 수집 정보 데이터베이스(350) 및 전송 처리부(360)로 구성된다.Referring to FIG. 3, the
상기 프로그램 분석부(300)는 프로그램의 설치 상황을 분석하는 부분으로 현재 상기 클라이언트(120)에 설치되어 있는 프로그램을 분석하여, 상기 프로그램에 포함되어 있는 실행 파일(예컨대, 확장자가 'exe'인 파일) 및 컴포넌트(component) 파일들을 분석한다. 또한, 현재 상기 클라이언트(120)에 설치되어 있지는 않지만, 과거에 설치되었다 삭제된 프로그램들의 목록과 삭제된 것을 확인한 시간에 대한 정보를 작성한다.The
상기 파일들의 분석 방법은 다양하게 구현 가능하다. 예컨대, 첫번째로 레지스트리(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
두번째로, 링크 정보 추출부(402)에 의하여 찾는 방법을 살펴 보면, 데스크탑(Desktop)또는 프로그램에 포함된 단축 아이콘(shortcut or Link) 등에 포함되어 있는 실행 경로 및 실행 파일의 정보와 인수(Argument)로 넘겨지는 폴더 및 파일의 내용을 찾아내거나 윈도우즈 인스톨러(Windows installer)와 연동하여 동작하는 정보를 '*.msi' 파일(Windows installer의 설치 정보 파일 포멧)의 분석과 연동하여 상기 프로그램의 설치 정보를 찾아낼 수 있다.Second, referring to the search method by the link
세번째로, 설치/제거 프로그램 정보 추출부(403)에 의하여 프로그램의 설치 정보를 검색하는 방법을 살펴 보면,'*.msi' 파일과 같은 인스톨러(Windows installer) 파일 또는 인스톨러(Uninstaller)들의 언인스톨 정보를 통해 상기 프로그램의 설치 정보를 찾아낼 수 있다. 삭제된 프로그램의 경우에는 프로그램의 삭제정보를 관리하는 파일이 남아 있는 경우가 있는데, 이렇게 남아 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.Third, look at how to retrieve the installation information of the program by the install / uninstall program
네번째로, 파일들의 등록정보 추출부(404)에 의하여 프로그램의 설치 정보를 검색하는 방법을 살펴 보면, 버전(version) 정보 또는 사이즈(size) 정보 등을 통하여 기존에 목록화 시켜둔 상기 프로그램들을 구성하는 프로그램 구성요소 정보를 사용하여 프로그램의 설치 정보를 찾아낼 수 있다. 또한, 삭제된 프로그램의 경우에는 일부 파일 및 폴더가 삭제되지 않고 남아 있는 경우가 있는데 기존의 목록화 시켜둔 상기 프로그램 구성요소들을 사용하거나, 파일 내부에 등록되어 있는 정보를 통해 삭제된 프로그램의 정보를 얻어낼 수도 있다.Fourth, looking at a method of retrieving the installation information of the program by the registration
상기 프로그램 분석부(300)의 기능을 보다 상술한 바를 참조하여 세부적으로 구분하면 도 4a와 같이 구분될 수 있다.The function of the
도 4a는 본 발명의 실시예에 따른 클라이언트의 프로그램 분석 모듈에서 프로그램 분석부(300)의 구조를 나타낸 도면이다.4A is a diagram illustrating a structure of a
상기 도 4a를 참조하면, 상기 프로그램 분석부(300)는 상기 프로그램의 설치 프로그램이 설치한 설치 정보 데이터 또는 파일을 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하는 설치/제거 정보 추출부(400) 및 상기 설치/제거 정보 추출부(400)에서 생성된 정보에 기초하여 각 프로그램들의 실행 상황 및/또는 상기 프로그램 구성 요소 파일의 사용 상황에 대한 감시 방법을 결정하는 실행 감시 방법 결정부(410)로 구성될 수 있다.Referring to FIG. 4A, the
또한, 상기 설치/제거 정보 추출부(400)는 상술한 설치 정보 추출의 방법들에 따라 레지스트리 정보 추출부(401), 링크 정보 추출부(402), 설치/제거 프로그 램 정보 추출부(403) 및 등록 정보 추출부(404) 등으로 구성될 수 있다.In addition, the installation / removal
즉, 상기 프로그램 분석부(300)에서는 현재 상기 클라이언트에 어떠한 프로그램들이 설치되어 있는지 설치 정보를 분석하여 각 프로그램의 실행 상황 감시 방법을 결정하게 된다. 또한, 상기 클라이언트에 설치되었으나 현재는 삭제된 프로그램들에 대한 정보를 분석하여 각 클라이언트에서 프로그램 설치 변동에 대한 정보를 얻을 수 있다. 이렇게 얻은 데이터는 데이터 관리부(510)에서 처리되어 하나의 기관 내에서 필요한 프로그램의 수요 예측에 사용될 수도 있다.That is, the
따라서, 상기 설치/제거 정보 추출부(400)에서 상술한 바와 같이 프로그램의 설치 정보를 검색하여 상기 프로그램의 목록 및 파일 정보를 생성하고, 상기 생성된 정보에 기초하여 상기 실행 감시 방법 결정부(410)에서 각 프로그램들의 실행 상황에 대한 감시 방법을 결정하게 된다.Accordingly, as described above, the installation / removal
상기 실행 감시 방법 결정부(410)에서 결정하는 각 프로그램들의 실행 감시 방법은 상기 각 프로그램들을 구성하는 파일들의 특성에 따라 결정되며, 다음과 같은 기준으로 나뉘어질 수 있다. 첫번째로 "*.exe", "*.com"와 같은 실행파일로서, 자신이 메모리에 올라가서(loading) 실행되는 파일, 두번째로 "*.dll"(dynamic linked library)과 같은 파일로서 다른 프로그램들에 의해 스스로 메모리에 올라가서(loading) 실행되지는 않지만 다른 실행 파일에 의해서 사용되는 파일, 셋째로 컴포넌트(component) 파일과 같이 분산 환경을 위해 여러 개의 프로세스에 의해 공유되어지는 파일(dll, ocx,) 및 그 외에 워드프로세서 프로그램과 같이 실행에는 영향을 미치지 않지만, 내용을 보기 위해 필요한 컨텐츠(contents)파일로 구분하여 실행 감시 방법을 결정한다.The execution monitoring method of each program determined by the execution
상기 설치/제거 정보 추출부(400)에서 상기 프로그램의 설치 정보를 검색하는 방법으로는 상술한 바와 같이 여러가지 방법에 의해 각 프로그램들의 설치 정보를 추출해 낼 수 있다.As a method of searching for the installation information of the program in the installation / removal
한편, 상기 프로그램 분석부(300)에서 생성된 프로그램 설치 정보 및 제거 정보의 결과는 상기 프로그램 등록부(310)로 전송되고, 상기 프로그램 등록부(310)에서는 상기 프로그램에 대한 실행 감시의 편리성을 위해 상기 설치되어 있는 프로그램의 설치 정보를 참조하여 연관성 있는 파일 및 정보들간의 유기적인 관리를 수행한다.On the other hand, the result of the program installation information and removal information generated in the
여기서, 상기 연관성 있는 파일 및 정보는 실행 감시 방법 결정부(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
한편, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보들은 상기 보고 자료 처리부(340)로 입력되어 기설정된 형식에 맞게 소정의 구조로 자료화되어 상기 수집 정보 데이터베이스(350)에 저장된다.Meanwhile, execution information of each program extracted by the usage
또한, 상기 보고 자료 처리부(340)에서는 상기 사용 정보 추출부(320)를 통해 획득한 각 프로그램의 사용시간(시작/종료시간)을 관리하고, 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행한다.In addition, the report
상기 전송 처리부(360)는 상기 클라이언트(120)의 프로그램 분석부(300) 및 사용 정보 추출부(320)에서 추출된 정보가 서버(100)로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리한다.The
한편, 상기 프로그램 분석부(300)에서 생성된 프로그램의 설치 및 등록 정보는 상기 프로그램의 설치 및 삭제가 일어난 때, 즉 해당 클라이언트에 설치된 프로그램의 정보가 변경될 때에 상기 서버(100)로 전송 처리하는 것이 바람직하다. 또한, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보는 실시간으로 사용 정보가 변하게 되므로, 실시간 또는 주기적으로 상기 서버(100)로 전송 처리하는 것이 바람직하다. 상기 전송 처리부(360)에서 데이터를 전송하는 다른 방법으로는 상기 서버(100)의 정보 제공 요청시에 전송하도록 처리할 수도 있다.On the other hand, the installation and registration information of the program generated by the
이때, 상기 프로그램 등록부(310)를 통한 파일들의 등록 방법으로는 상술한 프로그램 분석부(300)에서 얻어낸 정보를 통해 프로그램 목록을 작성하는 방법 이외에도, 사용자가 수동으로 상기 프로그램 목록을 작성하고, 각 프로그램의 구성 요소인 exe 파일 및 기타 파일들을 포함시키거나, 상기 프로그램 목록을 작성할 때, 사용자가 임의의 폴더를 선택하고 상기 프로그램 분석부(300)를 사용하여 각 파일들을 분석함으로써 상기 각 프로그램의 파일 목록을 등록시킬 수 있다.In this case, as a method of registering the files through the
상기 프로그램 등록부(310)를 통해 각 프로그램의 목록 및 파일이 등록되면, 상기 등록된 프로그램에 대한 목록을 참조하여 각 프로그램의 실행 상황을 상기 사용 정보 추출부(320)에서 감시하게 된다.When the list and files of each program are registered through the
이에 대한 구현을 위하여 상기 사용 정보 추출부(320)는 도 4b에 도시된 바 와 같이 프로세스(process) 감시부(420), 파일 로드(file load) 감시부(430) 및 컴포넌트 로드(component load) 감시부(440)로 구성할 수 있다.In order to implement this, the usage
상기 프로세스 감시부(420)는 “*.exe”, “*.com”와 같은 실행 파일로서, 자신이 메모리에 올라가서(loading) 실행되는 파일 및 “*.bat”(batch file)파일을 사용하여 여러 개의 실행 파일이 조합되어져 실행되는 프로세스의 시작시간과 종료시간을 감시하는 부분이다. 상기 프로그램 등록부(310)에 등록되어 있는 연관성 있는 파일정보를 사용하여 감시한다.The
또한, 상기 파일 로드 감시부(430)는 “*.dll”(dynamic linked library)과 같은 파일로서 다른 프로그램들에 의해서 스스로 메모리에 올라가서(loading) 실행되지는 않지만 다른 실행파일에 의해서 사용되는 파일 또는 워드프로세서 프로그램과 같이 실행에는 영향을 미치지 않지만 내용을 보기위해 필요한 컨텐츠(contents)파일, "*.vxd","*.drv","*.sys"와 같은 디바이스 드라이버(device driver)파일로서 시스템 시작전 또는 실행중에 올라가서(loading)되서 실행되는 파일 등 다른 실행 파일의 실행 요소로 실행되는 파일들을 감시하는 역할을 수행한다.In addition, the file
또한 컴포컨트 로드 감시부(440)를 사용함으로써 정확하게 해당 컴포넌트파일을 호출하여 사용한 프로세스에 대한 정보를 추출함으로써, 어떤 프로세스(process)가 정확하게 해당 컴포넌트 파일을 사용하는지 알려주는 역할을 한다. 일예로 대부분의 ERP(Enterprise Resource Planning) 프로그램들은 마이크로 소프트 오피스(Microsoft Office)의 엑셀(Excel) 프로그램의 컴포넌트를 사용하거나 연동하여 사용되는 경우가 많은데, 이러한 경우의 처리를 위해 사용한다.In addition, by using the component
한편, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보들은 상기 보고 자료 처리부(340)로 입력되어 기설정된 형식에 맞게 소정의 구조로 자료화되어 상기 수집 정보 데이터베이스(350)에 저장된다.Meanwhile, execution information of each program extracted by the usage
또한, 상기 보고 자료 처리부(340)에서는 상기 사용 정보 추출부(320)를 통해 획득한 각 프로그램의 사용시간(시작/종료시간)을 관리하고, 서버와 주고받을 데이터의 구조들을 정의하며, 각 클라이언트별로 프로그램에 대한 정보 및 사용에 대한 데이터를 관리하는 데이터 처리를 수행한다.In addition, the report
상기 전송 처리부(360)는 상기 클라이언트(120)의 프로그램 분석부(300) 및 사용 정보 추출부(320)에서 추출된 정보가 서버(100)로 전송될 수 있도록, 상기 전송할 정보를 소정의 기설정된 포맷에 맞는 데이터 형식으로서 변환하여 전송 처리한다.The
한편, 상기 프로그램 분석부(300)에서 생성된 프로그램의 설치 및 등록 정보는 상기 프로그램의 설치 및 삭제가 일어난 때, 즉 해당 클라이언트에 설치된 프로그램의 정보가 변경될 때에 상기 서버(100)로 전송 처리하는 것이 바람직하다. 또한, 상기 사용 정보 추출부(320)에서 추출된 각 프로그램의 실행 정보는 실시간으로 사용 정보가 변하게 되므로, 실시간 또는 주기적으로 상기 서버(100)로 전송 처리하는 것이 바람직하다. 상기 전송 처리부(360)에서 데이터를 전송하는 다른 방법으로는 상기 서버(100)의 정보 제공 요청시에 전송하도록 처리할 수도 있다.On the other hand, the installation and registration information of the program generated by the
제어부(330)는 상기 프로그램 분석 모듈(205)을 구성하는 각 엘리먼트들 간의 데이터 처리를 제어한다.The
이상으로, 상기 클라이언트(120)에서 본 발명을 수행하는 프로그램 분석 모듈(205)에 대해 상세히 설명하였다. 이하, 도 5를 참조하여 서버(100)에서 본 발명을 수행하는 프로그램 관리 모듈(206)의 동작을 설명한다.In the above, the
도 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
상기 데이터 처리부(500)는 상기 클라이언트(120)에서 수집되어 전송된 데이터를 분석하여 클라이언트에 대한 정보, 해당 클라이언트에 설치된 프로그램 정보 및 상기 프로그램의 실행 정보 등을 추출해낸다.The
상기 데이터 처리부(500)에서 분석된 데이터는 제어부(520)를 거쳐 상기 프로그램 정보 데이터베이스(530)에 저장된다. 이때, 상기 프로그램 정보 데이터베이스(530)에 저장되는 정보는 각 클라이언트별 프로그램의 설치 현황 정보 및 각 프로그램에 대한 실행 정보들이 구조화되어 저장된다.The data analyzed by the
한편, 상기 데이터 관리부(510)에서는 서버 관리자등의 요청에 의한 각 클라이언트에 대한 프로그램 정보를 소정의 기설정된 포맷에 맞게 생성하여 출력할 수 있도록 데이터를 가공하게 된다. 또한, 상기 데이터 관리부(510)는 상기 각 클라이언트별로 수집된 프로그램에 대한 정보를 분석하여 소정의 통계 자료를 생성함으로써 서버 관리자로 하여금 클라이언트들에 설치된 프로그램들에 대한 관리를 도와주 게 된다.On the other hand, the
또한, 상기 각 클라이언트에서 설치되어 사용하고 있는 프로그램들에 대한 정보를 수집하거나, 설치되었다가 삭제된 프로그램들의 정보를 수집하여 각 클라이언트에서 사용되었던 프로그램들의 사용 이력 정보를 생성하고, 각 클라이언트에서 사용하는 프로그램들의 동시 사용량 정보를 수집하여 소프트웨어 추가 구매시에 기초 데이터 및 라이센스 구매 시기를 알려주는 도구로 활용할 수 있다.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
이상으로 본 발명의 실시예에 따른 서버 및 클라이언트 시스템의 세부 구성들을 상세히 설명하였다. 이하, 상기 시스템을 통해 본 발명이 수행되는 절차를 도 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)
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)
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 |
-
2004
- 2004-06-05 KR KR1020040041165A patent/KR100625867B1/en not_active IP Right Cessation
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 |