KR20100051574A - 이동형 소프트웨어의 생성 방법 및 장치 - Google Patents

이동형 소프트웨어의 생성 방법 및 장치 Download PDF

Info

Publication number
KR20100051574A
KR20100051574A KR1020090107210A KR20090107210A KR20100051574A KR 20100051574 A KR20100051574 A KR 20100051574A KR 1020090107210 A KR1020090107210 A KR 1020090107210A KR 20090107210 A KR20090107210 A KR 20090107210A KR 20100051574 A KR20100051574 A KR 20100051574A
Authority
KR
South Korea
Prior art keywords
software
script
information
installation
registry
Prior art date
Application number
KR1020090107210A
Other languages
English (en)
Inventor
최원혁
김원영
최완
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20100051574A publication Critical patent/KR20100051574A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 각각의 호스트 컴퓨터에 설치하여 사용하는 응용 프로그램 패키지를 설치 없이 임의의 호스트에서 원 클릭만으로 사용가능 하게 하는 무설치 이동형 SW로 변환하여 특정한 가상화 엔진이 필요 없이 임의의 호스트에서 수행하는 방법과 장치를 제공한다.
이를 위하여, 윈도우 기반 시스템에서 SW 설치 파일로부터 설치되는 SW의 유의미한 파일 및 레지스트리 정보를 포함하는 설치정보와 실행정보를 추출하고, AutoIt 스크립트 템플릿을 이용하여 추출된 설치정보를 구동하게 하는 스크립트를 작성한 다음, 작성된 스크립트 파일을 스크립트 실행 파일로 변환하여, 추출된 설치정보와 실행정보 및 스크립트 실행 파일을 하나로 묶어서 이동형 SW로 제공한다. 또한, 이동형 SW가 실행될 호스트 시스템에 동종의 SW가 설치되어 있을 경우 이미 설치된 SW의 실행에 영향을 주지 않고, 종속 라이브러리를 포함하는 이동형 SW의 경우 종속 라이브러리를 이동형 SW에 함께 포함시키도록 하는 스크립트 템플릿이 함께 제공된다.
Figure P1020090107210
이동형 SW, AutoIt 스크립트, 무설치, 휴대용 저장장치

Description

이동형 소프트웨어의 생성 방법 및 장치{Method and System for Generating Portable Software}
본 발명은 소프트웨어 설치 파일을 이용하여 무설치 이동형 소프트웨어를 생성하는 방법 및 장치에 관한 것으로, 더 구체적으로는 각각의 호스트 컴퓨터에 설치하여 사용하는 응용 프로그램 패키지를 설치없이 임의의 호스트에서 원 클릭만으로 사용가능하게 하는 무설치 이동형 SW로 변환하여 특정한 가상화 엔진이 필요없이 임의의 호스트에서 수행할 수 있도록 하는 방법 및 장치에 관한 것이다.
본 발명은 지식경제부 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-015-02, 과제명: SaaS 기반 이동형 개인 맞춤 사무환경 제공 기술 개발].
USB 메모리와 같은 휴대용 저장장치의 보급은 일반 사용자의 컴퓨터 사용에 많은 변화를 가져왔다. CD와 같은 저장 매체를 대체하는 기능부터, 자신의 콘텐츠나 간단한 SW를 휴대하여 임의의 PC에서 사용함으로써 컴퓨터 작업환경의 이동성을 가져왔다.
또한, 전문 개발자나 개발업체에 의해 개발되어 CD나 다운로드 패키지 형태 로 판매되는 소프트웨어(이하 SW) 배포 방식이 점차 인터넷을 통한 서비스 형태로 전환되고 있다. 특히, 마이크로소프트, Adobe와 같은 전통적인 패키지 SW 개발 업체들도 자사 SW 유통방식으로 온라인을 통한 서비스 형태로 전환하고 있다. 또한, 전문적인 개발자가 아닌 프로슈머들이 제작에 참여하고, 서비스하는 SW들도 점차 늘어가는 추세이다. 
일반적으로 설치를 필요로 하는 패키지 SW는 별도의 설치와 사용자 환경을 고려한 관리가 필요하지만, 많은 사용자들이 사용하고 있고 강력한 기능을 제공하는 것이 많다. 이에 반하여 온라인 서비스 형태로 제공되는 SW는 설치없이 원 클릭만으로 사용 가능하지만, 아직까지는 간단한 기능들의 SW 위주로 제공된다. 그러므로 서비스 형태로 제공되는 SW들도 패키지 SW가 가지는 강력하고 다양한 기능들을 제공하기 위하여 관련 기술들이 개발되고 있다.
설치형 SW 패키지의 장점과 서비스형 SW의 장점을 취하여 설치형 SW를 포터블 형태로 변환하여 USB 메모리와 같은 휴대용 저장장치에서 실행할 수 있게 하는 기술들이 많이 나오고 있다. 일부는 가상화 기술을 응용한 기술도 있고, 가상화 없이 SW의 이동성에만 초점을 둔 방식들도 있다.
Thinstall로 알려져 있는 Vmware ThinApp는 패키징된 단일 실행 파일을 생성시키는 솔루션이다. 이는 단일 실행 파일을 실행하면, 실행에 필요한 파일 및 레지스트리를 응용 프로그램 수준의 가상화를 통하여 처리한다. Altiris의 SVS는 기존의 윈도우 기반의 패키지 SW를 사용자의 호스트에 설치없이 사용할 수 있게 하는 기술이다. 이를 위하여 기존의 패키지 SW를 SVS를 위한 SW로 변환하기 위한 도구인 Package Studio를 제공한다. AppStream은 SVS의 SW 가상화 기능에 온라인 전송 중에도 SW를 실행할 수 있는 스트리밍 기능을 추가함으로써 마이크로소프트, 인텔 등 기업들과 산호세 기반의 유명 벤처투자가들이 투자하고 있다.  
반면에, PortableApps와 같이 패키지 SW를 포터블로 재구성하여 빌드하여 제공하는 기술도 있다. PortableApps는 가상화 기술을 사용하지 않고, 파일 및 레지스트리 정보를 추출하고, NSIS와 같은 스크립트를 이용하여 설치형 SW를 포터블 형태로 제공한다
본 발명의 과제는 사용자 호스트 컴퓨터의 환경에 최소한의 영향을 미치면서 응용 프로그램 수준의 가상화 모듈의 도움이 없이 실행될 수 있는 무설치 이동형 SW를 설치형 SW로부터 변환하여 생성하는 장치 및 방법을 제공하고자 하는 것이다.
상기한 과제를 해결하기 위해서, 본 발명에서는 설치형 소프트웨어의 파일 및 레지스트리 정보를 포함하는 소프트웨어 설치 정보와 실행정보를 추출하는 단계와, 추출된 상기 설치정보와 실행정보를 바탕으로 AutoIt 스크립트를 작성하는 단계와, 작성된 상기 AutoIt 스크립트를 스크립트 실행 파일로 변환하는 단계와, 상기 설치정보와 실행정보 및 상기 스크립트 실행 파일을 묶는 단계를 포함하는 무설치 이동형 소프트웨어의 생성 방법을 제공한다.
여기에서, 상기 AutoIt 스크립트는 스크립트 템플릿을 이용하여 작성되며, 상기 스크립트 템플릿은, 생성된 상기 무설치 이동형 소프트웨어에 보관된 레지스트리 값을 상기 무설치 이동형 소프트웨어가 실행될 호스트 시스템의 레지스트리 하이브로 추가하고, 상기 무설치 이동형 소프트웨어의 사용자 데이터 저장영역의 데이터(AppData)를 상기 호스트 시스템의 사용자 데이터 저장영역에 복사하는 제 1 단계와, 상기 무설치 이동형 소프트웨어의 실행 파일을 실행하는 제 2 단계와, 상기 실행이 종료되면 변경된 레지스트리 값과 사용자 데이터를 상기 무설치 이동형 소프트웨어로 저장하는 제 3 단계와, 상기 호스트 시스템으로부터 상기 무설치 이 동형 소프트웨어의 레지스트리 값과 사용자 데이터를 삭제하는 제 4 단계를 포함하여 이루어진다.
또한, 상기 스크립트 템플릿은, 상기 호스트 시스템에 상기 무설치 이동형 소프트웨어와 동종의 소프트웨어가 설치되어 있는지 검사하는 제 1 검사 단계를 더 포함하고, 상기 제 1 검사 단계에서의 검사 결과 상기 동종의 소프트웨어가 설치되어 있지 않으면, 상기 제 1 단계 내지 제 4 단계를 실행하며, 상기 제 1 검사 단계에서의 검사 결과 상기 동종의 소프트웨어가 설치되어 있으면, 상기 호스트 시스템에 설치된 상기 동종의 소프트웨어와 관련된 레지스트리 값 및 사용자 데이터를 임의의 장소에 보관한 후, 상기 제 1 단계 내지 제 4 단계를 실행한 다음, 상기 임의의 장소에 보관된 상기 동종의 소프트웨어와 관련된 레지스트리 값 및 사용자 데이터를 복구할 수 있다.
또한, 상기 제 1 검사 단계에서의 검사 결과 상기 동종의 소프트웨어가 설치되어 있지 않으면, 상기 무설치 이동형 소프트웨어에 필요한 종속 모듈이 설치되어 있는지를 검사하는 제 2 검사 단계를 더 포함하며, 상기 제 2 검사 단계에서의 검사 결과 상기 종속 모듈이 설치되어 있으면, 상기 제 1 단계 내지 제 4 단계를 실행하고, 상기 제 2 검사 단계에서의 검사 결과 상기 종속 모듈이 설치되어 있지 않으면, 상기 종속 모듈 파일 및 레지스트리 값을 상기 호스트 시스템에 복사한 후, 상기 제 1 단계 내지 제 4 단계를 실행한 다음, 상기 종속 모듈 파일 및 레지스트리 값을 삭제하도록 할 수도 있다.
본 발명이 이루고자 하는 과제는, 설치형 소프트웨어의 설치 파일로부터 파 일 및 레지스트리 정보를 포함하는 소프트웨어 설치정보와 실행정보를 추출하는 소프트웨어 설치정보 추출기와, 추출된 상기 설치정보와 실행정보를 바탕으로 AutoIt 스크립트를 작성하는 AutoIt 스크립트 작성기와, 작성된 상기 AutoIt 스크립트를 스크립트 실행 파일로 변환하는 실행파일 생성기를 포함하며, 상기 설치정보와 상기 실행정보 및 상기 스크립트 실행 파일을 묶어 이동형 소프트웨어로 생성하는 무설치 이동형 소프트웨어의 생성 장치에 의해서도 달성 가능하다.
여기에서, 상기 소프트웨어 설치정보 추출기는 상기 설치정보를 추출하기 위한 설치정보 관리모듈과 상기 실행정보를 추출하기 위한 실행정보 관리 모듈을 포함하며, 상기 설치정보 관리모듈과 상기 실행정보 관리모듈은 파일 시스템 필터 드라이버와 레지스트리 필터 드라이버를 이용하여 상기 설치정보와 상기 실행정보를 추출할 수 있다.
본 발명에 따르면 설치형 SW에서 변환하여 생성된 이동형 SW를 USB 메모리와 같은 휴대용 저장장치에 저장하여 시간과 장소의 제약 없이 임의의 호스트 컴퓨터에서 설치없이 실행하여 필요한 작업을 수행할 수 있다. 그러므로, 본 발명을 통하여 구축된 이동형 SW는 사용자들에게 개인 맞춤된 이동 가능한 작업 환경, 즉 이동형 SW 플랫폼을 제공하기 위한 기반 기술이 될 수 있다.
또한, 기존에 설치된 설치형 SW와의 충돌을 최소화하여 실행하므로 기존의 설치형 SW가 설치된 환경에서도 자유롭게 사용 가능한 이동형 SW가 생성된다. 또한, 이동형 SW는 SW 설치 정보 추출기를 통하여 설치된 SW의 정보를 추출하므로 제 작자의 수작업에 의한 부정확한 정보에 의한 오작동 등의 단점을 해결할 수 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 발명의 무설치 이동형 SW는 설치형 패키지 SW를 오프라인 상황에서 호스트 컴퓨터에 설치하지 않고 실행할 수 있도록 함으로써 사용자의 편리성을 높이기 위한 차세대 SW 실행 기술이다. 이는 누구나 휴대할 수 있는 USB 메모리와 같은 휴대용 저장장치에 자신이 필요로 하는 SW를 저장하여 시간과 장소의 제약이 없이 임의의 호스트 컴퓨터에서 설치 없이 실행하여 필요한 작업을 수행할 수 있도록 한다.
본 발명에 따른 무설치 이동형 SW는 설치되는 SW의 SW 설치 정보를 추출하는 SW 설치 정보 추출기와 추출된 정보를 바탕으로 이동형 SW를 구동할 때 발생하는 레지스트리 및 파일 정보의 변경 사항의 반영 및 기존에 설치된 동종의 SW의 파일 및 레지스트리 정보를 백업하여 복구하는 방식으로 윈도우 수준의 명령들을 처리하게 하는 AutoIt 스크립트의 템플릿을 제공한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 이동형 SW 생성(변환) 장치의 구성을 나타내는 도면이다.
본 발명의 실시예에 따른 이동형 SW 생성 장치(10)는 SW 설치정보 추출기(200)와 AutoIt 스크립트 작성기(300), 실행파일 생성기(400)를 포함한다. SW 설치정보 추출기(200)는 SW 설치부(210)와 설치 SW 실행부(220)를 포함하며, AutoIt 스크립트 작성기(300)는 스크립트 작성을 위한 스크립트 템플릿(310)을 포함한다.
본 발명의 실시예에 따른 이동형 SW 생성 장치(10)로 SW 설치 파일(20)이 입력되면, SW 설치정보 추출기(200)의 SW 설치부(210)와 설치 SW 실행부(220)를 통해 각각 해당 SW의 설치정보(212)와 실행정보(222)가 추출된다.
AutoIt 스크립트 작성기(300)는 추출된 설치정보(212)와 실행정보(222)를 바탕으로 이동형 SW를 구동할 수 있도록 스크립트 템플릿(310)을 이용하여 AutoIt 스크립트(312)를 작성한다.
한편, 도 1에서는 스크립트 템플릿(310)이 AutoIt 스크립트 작성기(300)의 내부에 위치하는 것으로 도시되었지만, 본 발명의 구성이 이에 한정되는 것은 아니며, 스크립트 템플릿(310)은 AutoIt 스크립트 작성기(300)의 외부에 위치하고 AutoIt 스크립트 작성기(300)가 이를 참조할 수도 있다.
본 발명의 실시예에서 사용하는 AutoIt 스크립트는 자동으로 윈도우 환경을 제어해주는 베이직과 유사한 스크립트 언어이다. AutoIt는 윈도우/도스 명령어들을 실행할 수 있고, 윈도우의 키 입력이나 마우스 움직임 등을 제어할 수 있으며, 윈도우 창의 제어 및 클립보드 사이의 텍스트 데이터 제어, 레지스트리 작업과 같은 것들을 수행할 수 있다. 그밖에도 간단한 파일 접근이나 Win32 API가 제공하는 일부 기능들을 수행할 수 있다.
이와 같이 작성된 스크립트는 Aut2Exe란 도구를 통하여 윈도우 실행 파일로 변환이 가능하다. 즉, 작성된 스크립트(312)는 실행파일 생성기(400)에 의하여 스크립트 실행파일(.EXE)(412)로 변환된다. 여기에서, 실행파일 생성기(400)는 상술한 바와 같이 Aut2Exe가 될 수 있다.
이와 같이 하여 설치정보(212), 실행정보(222) 및 스크립트 실행파일(412)을 포함하는 이동형 SW(30)가 최종적으로 생성될 수 있다.
이렇게 생성된 이동형 SW(30)을 임의의 호스트에서 실행하면 스크립트 실행파일(412)이 SW 설치정보(212)와 실행정보(222)를 적절히 조작 및 구동시킴으로써 이동형 SW가 동작하게 된다.
도 2는 본 발명의 실시예에 따른 SW 설치정보 추출기(200)의 내부 기능 및 구성을 나타낸 블록도이다.
본 발명의 실시예에 따른 SW 설치정보 추출기(200)는 사용자 이벤트 핸들러(230)와 드라이버 이벤트 핸들러(240)를 포함하여 구성된다. 사용자 이벤트 핸들 러(230)에는 설치정보 관리 모듈(232)과 실행정보 관리 모듈(234)이 포함되며, 드라이버 이벤트 핸들러(240)에는 파일시스템 검출 인터페이스 모듈(242), 레지스트리 검출 인터페이스 모듈(244), 설치정보 검출 모듈(246), 설치정보 예외 처리 모듈(248)이 포함된다.
상술한 바와 같이, SW 설치정보 추출기(200)에 의해 추출되는 정보는 SW 설치정보(212) 및 실행정보(222)이며, 이를 위해 추출되는 정보는 윈도우 시스템에서 핵심적인 요소인 파일 및 레지스트리 정보이다.
SW 설치정보 추출기(200)는 패키지 SW 설치 시에 발생하는 I/O를 감시하고 해당 SW의 설치된 파일 및 레지스트리 정보를 추출한다.
SW 설치정보(212) 중의 파일정보는 설치정보 관리 모듈(232)을 통하여 패키지 SW을 설치할 때 실행하는 인스톨 프로세스를 대상으로 파일 시스템 필터 드라이버(262)를 통하여 파일 시스템(272)에 복사되는 파일의 정보를 추출할 수 있다. 이 때 추출되는 정보는 보통 윈도우 시스템 폴더 또는 "Program Files" 폴더에 복사되는 정보들이다.
또한, 일반적인 응용 소프트웨어는 사용자 데이터 저장영역- 예를 들어, "My Documents\사용자 계정\Application Data" 폴더 아래에 생성되는 폴더 및 파일 정보영역-을 가지고 있다. 사용자 데이터 저장영역을 위하여 생성되는 폴더 및 응용프로그램 환경변수는 설치시에 생성되는 경우도 있지만, 최초의 실행에서 생성되는 SW도 있다. 이를 위하여, 실행정보(222)에 대한 정보 추출도 필요하다. 실행정보의 추출은 SW 설치정보 추출기(200)에서 설치과정을 마치고 실행정보 관리 모듈(234) 을 이용하여 설치된 SW의 최초 실행을 수행하고, 수행되는 프로세스가 발생하는 파일 I/O를 필터링하여 정보를 수집한다. 이렇게 한 다음, 추후에 스크립트를 이용하여 이동형 SW를 구동할 때에는, 사용자 데이터 저장 영역의 데이터를 구동 전에 호스트 시스템에 복사하고, 구동이 종료된 후에 변경 사항을 이동형 SW로 복사한 후 삭제한다. 이는 응용프로그램의 수행에 따른 설정정보 또는 임시 저장영역의 정보를 추후의 구동에서 재사용하여 응용프로그램 수행의 일관성을 높이기 위함이다.
SW 설치정보(212) 중 레지스트리 정보의 추출은 다음과 같이 이루어진다. 파일 정보와 마찬가지로 설치정보 관리 모듈(232)을 이용하여 SW 설치 시에 설치 프로세스에서 발생하는 레지스트리 하이브(274)에 대한 레지스트리 I/O를 레지스트리 필터 드라이버(264)에서 모니터링하여 필요한 정보를 추출한다. 또한, 실행정보 관리 모듈(234)을 이용하여 SW 최초 실행에서 발생하는 레지스트리 I/O 또한 수집한다. 이 때, 추출되는 레지스트리 정보는 설치와 실행시에 얻어지는 정보를 구분하여 저장한다.
본 발명의 실시예에 따르면, SW 설치시에 추출되는 레지스트리 정보는 사용하지 않고, SW 실행시에 추출되는 정보만을 사용할 수 있다. 즉, 레지스트리 정보는 실행정보(222)만이 추출될 수 있다. SW 설치시에 생성되는 레지스트리 정보는 호스트 시스템에서 여러 응용 프로그램이 공유하는 정보와 호스트 시스템 종속적인 아이콘 정보 또는 파일 확장자 정보를 가지는데, 이동형 SW는 호스트 시스템에 설치된 SW가 아니므로, 파일 확장자에 따른 자동 실행 기능과 같은 기능을 수행할 수 없어 이러한 정보는 의미를 가지지 않기 때문이다. 그러므로, 설치시에 추출되는 레지스트리 정보는 일단 호스트 시스템의 레지스트리 하이브(274)에서 제거한다. 하지만, 응용프로그램이 종속적인 라이브러리-JDK와 같은 라이브러리-와 함께 이동형 SW로 변환될 때에는 이러한 레지스트리 정보가 필요하므로 이를 보관하는 것이 바람직하다.
이렇게 한 다음, 추후에 스크립트를 이용하여 이동형 SW를 구동할 때에는, 앞서 파일정보에서 설명한 바와 마찬가지로 레지스트리 정보를 이동형 SW의 구동 전에 호스트 시스템의 레지스트리 하이브(274)로 삽입하고, 종료 후에 변경 값들을 저장한 후, 이동형 SW의 구동 후에는 다시 레지스트리 하이브(274)에서 삭제한다.
이제 본 발명의 실시예에 따른 이동형 SW를 생성하는 데 사용되는 AutoIt 스크립트 템플릿에 대하여 자세히 설명한다. 도 3과 도 4는 각각 본 발명의 실시예에서 사용되는 AutoIt 스크립트 템플릿을 나타내는 흐름도로서, 도 3은 동종의 설치형 SW와의 충돌을 고려하여 이동형 SW를 구동시키는 데 사용되는 AutoIt 스크립트 템플릿이고, 도 4는 동종의 설치형 SW와 종속 라이브러리를 포함하여 이동형 SW를 구동하는 AutoIt 스크립트 템플릿이다.
먼저, 도 3을 참조하여 동종의 설치형 SW와의 충돌을 고려하여 이동형 SW를 구동시키는 데 사용되는 AutoIt 스크립트 템플릿에 대하여 설명한다. 이동형 SW는 임의의 호스트에서 실행되는 것을 가정하므로 이와 같이 동종의 설치형 SW와의 충돌이 고려되어야 한다.
도 3에 나타난 바와 같이, 스크립트의 첫번째 단계(S310)에서 해당 SW가 설치되어 있는지를 검사한다. 해당 SW가 설치되어 있는지의 여부는 다양한 방법으로 확인 가능하며, 예를 들면 레지스트리의 키 값 조사를 통하여 수행할 수 있다. 일반적인 응용 SW는 시스템 레지스트리 하이브의 "HKEY_CURRENT_USER\Software\" 아래에 자신의 레지스트리 값들을 저장한다. 그러므로, 상기 경로 아래의 키 값을 조사하여 응용 SW가 설치되었는지를 검사할 수 있다.
S310 단계의 검사 결과 여부에 따라 해당 SW가 설치되어 있지 않다면, 바로 이동형 SW를 설치하면 된다. 즉, 이동형 SW의 보관된 기존 레지스트리 값을 호스트 시스템의 레지스트리 하이브로 추가하고, 이동형 SW의 사용자 데이터 저장영역 이하의 데이터(AppData)들을 호스트 시스템 사용자 데이터 저장영역에 복사한다(S312).
그 다음은 휴대용 저장 장치에 저장된 이동형 SW의 실제 실행 파일을 실행하고(S314), 실행이 종료되면, 실행 후에 변경된 레지스트리 정보를 백업하고, AppData를 휴대용 저장 장치의 이동형 SW로 백업한다(S316). 다음, 레지스트리 하이브로부터 이동형 SW의 레지스트리 값을 삭제하고, AppData를 삭제하고(S318), 마지막으로 SW의 실행에 따라 임의로 실행되는 MUICache와 같은 레지스트리 키를 삭제하면(S330) 본 발명의 실시예에서 제공하는 이동형 SW의 실행이 종료된다.
여기에서, 만일 설치된 동종의 패키지 SW의 수행을 고려하지 않는 경우라면, S310 단계에서의 검사 결과 설치된 동종의 패키지 SW가 없는 위의 경우와 마찬가지로 S312 내지 S318 단계 및 S330 단계를 거쳐 종료되는 간단한 스크립트를 작성할 수도 있다.
한편, S310 단계에서의 검사 결과 동종의 SW가 설치되어 있다면, 우선 해당 설치 SW의 레지스트리 및 사용자 데이터 저장 영역의 데이터들을 임의의 장소에 저장한다(S320). 이후 이동형 SW 실행 과정은 앞서 설명한 동종의 SW가 설치되어 있지 않은 경우와 유사하게 진행된다. 즉, 이동형 SW의 보관된 기존 레지스트리 값과 사용자 데이터(AppData)를 호스트 시스템으로 복사하고(S322), 휴대용 저장 장치에 저장된 이동형 SW를 실행하며(S324), 실행이 종료되면 실행 후에 변경된 레지스트리 정보와 사용자 데이터를 휴대용 저장 장치로 백업한다(S326).
다음은, 레지스트리 하이브로부터 이동형 SW의 레지스트리 값과 AppData를 삭제하는 한편, S320 단계를 통해 임의의 장소에 보관 중이던 설치된 패키지 SW 정보를 호스트 컴퓨터의 파일 시스템 및 레지스트리 하이브에 복원한다(S328). 마지막으로 레지스트리의 MUICache 값을 삭제한다(S330).
이와 같은 과정을 수행하는 AutoIt 스크립트에 의하면, 이동형 SW를 구동하더라도 동종의 설치된 SW의 실행에 영향을 주지 않고, 이동형 SW의 추후 실행시에 보관된 레지스트리 값들과 AppData들을 복구하여 실행하므로 실행의 일관성을 보장 받을 수 있다.
한편, 응용 SW 중에는 그 실행을 위하여 종속적인 라이브러리를 필요로 하는 경우가 있다. 예를 들어, Java를 이용하여 작성된 프로그램들은 이동형 SW로 변환하였다 하더라도 호스트 시스템에 JRE와 같은 Java 라이브러리가 설치되어 있지 않다면 수행할 수가 없다. 그러나, 이를 해결하기 위하여 JRE를 호스트 시스템에 설치하는 방법은 SW의 이동성을 저해하는 요소이다. 이를 해결하기 위하여, JRE와 같은 종속적인 라이브러리를 함께 이동형 SW에 포함하여 이동형 SW를 실행함으로써 위와 같은 문제를 해결할 수 있다. 도 4는 상술한 바와 같은 종속적인 라이브러리를 포함하는 이동형 SW의 수행을 위한 스크립트 템플릿이다.
도 4를 참조하면, 먼저 도 3을 참조하여 설명한 이동형 SW의 실행방법에서와 같이 해당 SW가 설치되어 있는지 여부를 검사한다(S410).
S410 단계의 검사 결과 해당 SW가 설치되어 있으면, 종속적인 라이브러리도 설치되어 있다고 가정할 수 있다. 따라서 이 경우에는 앞서 도 3을 참고로 하여 설명한 바와 같이, 해당 SW가 설치되어 있는 경우의 처리 방법을 따르면 된다.
즉, 해당 설치 SW의 레지스트리 및 사용자 데이터 저장 영역의 데이터들을 임의의 장소에 저장하고(S420), 이동형 SW의 보관된 기존 레지스트리 값과 사용자 데이터(AppData)를 호스트 시스템으로 복사한(S422) 다음, 휴대용 저장 장치에 저장된 이동형 SW를 실행하며(S424), 실행이 종료되면 실행 후에 변경된 레지스트리 정보와 사용자 데이터를 휴대용 저장 장치로 복사한다(S426). 다음은, 레지스트리 하이브로부터 이동형 SW의 레지스트리 값와 AppData를 삭제하고, 임의의 장소에 보관 중이던 설치된 패키지 SW 정보를 호스트 컴퓨터의 파일 시스템 및 레지스트리 하이브에 복원한(S428) 다음, 마지막으로 레지스트리의 MUICache 값을 삭제한다(S430).
한편, S410 단계에서의 검사 결과 동일한 SW가 설치되어 있지 않다면, 종속된 라이브러리 모듈의 설치 여부를 검사한다(S440).
종속된 라이브러리 모듈이 이미 설치되어 있는 경우에는 일반적인 이동형 SW 실행 단계(S412 내지 S418, S430)을 실행하면 되고, 종속된 라이브러리가 설치되어 있지 않다면, 먼저 종속 라이브러리의 파일과 레지스트리를 호스트 시스템으로 복사한다(S450). 다음은, 일반적인 이동형 SW 실행 단계(S452 내지 S458)를 실행하고, 실행이 끝나면 복사했던 종속 라이브러리 모듈을 호스트 시스템에서 삭제한다(S460). 마지막으로 레지스트리의 MUICache 값을 삭제하는(S430) 것은 다른 경우에서와 동일하다.
이와 같은 본 발명의 실시예에 따른 이동형 SW의 생성 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들면 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서 바람직한 실시예를 기준으로 본 발명을 설명하였지만, 본 발명의 이동형 SW 생성 방법 및 장치는 반드시 상술된 실시예에 제한되는 것은 아니며 발명의 요지와 범위로부터 벗어남이 없이 다양한 수정이나 변형을 하는 것이 가능하다. 첨부된 특허청구의 범위는 본 발명의 요지에 속하는 한 이러한 수정이나 변형을 포함할 것이다.
도 1은 본 발명의 실시예에 따른 이동형 SW 생성 장치의 구성을 나타내는 도면이고,
도 2는 본 발명의 실시예에 따른 이동형 SW 생성 장치의 SW 설치정보 추출기의 구성을 개략적으로 도시한 블록도이고,
도 3은 본 발명의 실시예에 따른 이동형 SW 생성 방법에서 동종의 설치형 SW와의 충돌을 고려하여 이동형 SW를 구동하는 AutoIt 스크립트 템플릿을 나타내는 흐름도이고,
도 4는 본 발명의 실시예에 따른 이동형 SW 생성 방법에서 동종의 설치형 SW와 종속 라이브러리의 설치 여부를 고려하여 이동형 SW를 구동하는 AutoIt 스크립트 템플릿을 나타내는 흐름도이다.

Claims (8)

  1. 설치형 소프트웨어의 파일 및 레지스트리 정보를 포함하는 소프트웨어 설치 정보와 실행정보를 추출하는 단계와,
    추출된 상기 설치정보와 실행정보를 바탕으로 AutoIt 스크립트를 작성하는 단계와,
    작성된 상기 AutoIt 스크립트를 스크립트 실행 파일로 변환하는 단계와,
    상기 설치정보와 실행정보 및 상기 스크립트 실행 파일을 묶는 단계를 포함하는 무설치 이동형 소프트웨어의 생성 방법.
  2. 제1항에 있어서,
    상기 AutoIt 스크립트는 스크립트 템플릿을 이용하여 작성되며,
    상기 스크립트 템플릿은,
    생성된 상기 무설치 이동형 소프트웨어에 보관된 레지스트리 값을 상기 무설치 이동형 소프트웨어가 실행될 호스트 시스템의 레지스트리 하이브로 추가하고, 상기 무설치 이동형 소프트웨어의 사용자 데이터 저장영역의 데이터(AppData)를 상기 호스트 시스템의 사용자 데이터 저장영역에 복사하는 제 1 단계와,
    상기 무설치 이동형 소프트웨어의 실행 파일을 실행하는 제 2 단계와,
    상기 실행이 종료되면 변경된 레지스트리 값과 사용자 데이터를 상기 무설치 이동형 소프트웨어로 저장하는 제 3 단계와,
    상기 호스트 시스템으로부터 상기 무설치 이동형 소프트웨어의 레지스트리 값과 사용자 데이터를 삭제하는 제 4 단계를 포함하여 이루어지는 무설치 이동형 소프트웨어의 생성 방법.
  3. 제2항에 있어서,
    상기 스크립트 템플릿은,
    상기 호스트 시스템에 상기 무설치 이동형 소프트웨어와 동종의 소프트웨어가 설치되어 있는지 검사하는 제 1 검사 단계를 더 포함하고,
    상기 제 1 검사 단계에서의 검사 결과 상기 동종의 소프트웨어가 설치되어 있지 않으면, 상기 제 1 단계 내지 제 4 단계를 실행하며,
    상기 제 1 검사 단계에서의 검사 결과 상기 동종의 소프트웨어가 설치되어 있으면, 상기 호스트 시스템에 설치된 상기 동종의 소프트웨어와 관련된 레지스트리 값 및 사용자 데이터를 임의의 장소에 보관한 후, 상기 제 1 단계 내지 제 4 단계를 실행한 다음, 상기 임의의 장소에 보관된 상기 동종의 소프트웨어와 관련된 레지스트리 값 및 사용자 데이터를 복구하는 무설치 이동형 소프트웨어의 생성 방법.
  4. 제3항에 있어서,
    상기 스크립트 템플릿은,
    상기 제 1 검사 단계에서의 검사 결과 상기 동종의 소프트웨어가 설치되어 있지 않으면, 상기 무설치 이동형 소프트웨어에 필요한 종속 모듈이 설치되어 있는지를 검사하는 제 2 검사 단계를 더 포함하며,
    상기 제 2 검사 단계에서의 검사 결과 상기 종속 모듈이 설치되어 있으면, 상기 제 1 단계 내지 제 4 단계를 실행하고,
    상기 제 2 검사 단계에서의 검사 결과 상기 종속 모듈이 설치되어 있지 않으면, 상기 종속 모듈 파일 및 레지스트리 값을 상기 호스트 시스템에 복사한 후, 상기 제 1 단계 내지 제 4 단계를 실행한 다음, 상기 종속 모듈 파일 및 레지스트리 값을 삭제하는 무설치 이동형 소프트웨어의 생성 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 스크립트 템플릿은,
    상기 호스트 시스템의 레지스트리 하이브로부터 MUIcache 값을 삭제하는 단계를 더 포함하는 무설치 이동형 소프트웨어의 생성 방법.
  6. 설치형 소프트웨어의 설치 파일로부터 파일 및 레지스트리 정보를 포함하는 소프트웨어 설치정보와 실행정보를 추출하는 소프트웨어 설치정보 추출기와,
    추출된 상기 설치정보와 실행정보를 바탕으로 AutoIt 스크립트를 작성하는 AutoIt 스크립트 작성기와,
    작성된 상기 AutoIt 스크립트를 스크립트 실행 파일로 변환하는 실행파일 생성기를 포함하며,
    상기 설치정보와 상기 실행정보 및 상기 스크립트 실행 파일을 묶어 이동형 소프트웨어로 생성하는 무설치 이동형 소프트웨어의 생성 장치.
  7. 제6항에 있어서,
    상기 소프트웨어 설치정보 추출기는 상기 설치정보를 추출하기 위한 설치정보 관리모듈과 상기 실행정보를 추출하기 위한 실행정보 관리 모듈을 포함하며,
    상기 설치정보 관리모듈과 상기 실행정보 관리모듈은 파일 시스템 필터 드라이버와 레지스트리 필터 드라이버를 이용하여 상기 설치정보와 상기 실행정보를 추출하는 무설치 이동형 소프트웨어의 생성 장치.
  8. 제6항에 있어서,
    상기 설치정보와 실행정보를 바탕으로 AutoIt 스크립트를 작성하기 위한 스크립트 템플릿을 더 포함하며,
    상기 AutoIt 스크립트 작성기는 상기 스크립트 템플릿을 이용하여 상기 AutoIt 스크립트를 작성하는 무설치 이동형 소프트웨어의 생성 장치.
KR1020090107210A 2008-11-07 2009-11-06 이동형 소프트웨어의 생성 방법 및 장치 KR20100051574A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080110512 2008-11-07
KR1020080110512 2008-11-07

Publications (1)

Publication Number Publication Date
KR20100051574A true KR20100051574A (ko) 2010-05-17

Family

ID=42277293

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090107210A KR20100051574A (ko) 2008-11-07 2009-11-06 이동형 소프트웨어의 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20100051574A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150066330A (ko) * 2013-12-06 2015-06-16 주식회사 시큐아이 프로그램 자동 설치 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150066330A (ko) * 2013-12-06 2015-06-16 주식회사 시큐아이 프로그램 자동 설치 장치 및 방법

Similar Documents

Publication Publication Date Title
AU2019262864B2 (en) Execution control with cross-level trace mapping
US10402208B2 (en) Adaptive portable libraries
US9122794B2 (en) System and method for debugging domain specific languages
US8639973B2 (en) System reset
US8239823B2 (en) Generating libraries for reflection without project compilation
US9684786B2 (en) Monitoring an application in a process virtual machine
US20110258600A1 (en) Using a dsl for calling apis to test software
US20150082303A1 (en) Determining optimal methods for creating virtual machines
US20100031251A1 (en) Method and apparatus of software migration
US10409567B2 (en) Trimming unused dependencies using package graph and module graph
US20160179570A1 (en) Parallel Computing Without Requiring Antecedent Code Deployment
KR101156227B1 (ko) 전처리가 수행된 파일을 실행하기 위한 파일 처리장치 및 그 방법을 컴퓨터에서 실행시키기 위한 기록매체
US10459823B1 (en) Debugging using dual container images
US20110219365A1 (en) High and low value application state
TWI515656B (zh) 程式安裝方法及裝置
US9672020B2 (en) Selectively loading precompiled header(s) and/or portion(s) thereof
KR20100051574A (ko) 이동형 소프트웨어의 생성 방법 및 장치
Oberhauser et al. Automation is documentation: functional documentation of human-machine interaction for future software reuse
CN110837442B (zh) 基于脏数据位图和网络块设备的kvm虚拟机备份系统
JP2002528790A (ja) イメージ・ファイル変更の取り込み方法及び装置
US20060031821A1 (en) Divided compiling program application functionality for software development
JP2009064125A (ja) サーバ装置、そのプログラム
CN106802806B (zh) 用于集成软件开发环境的方法及装置
Starkman The robot operating system in transition: experiments and tutorials
Wootton et al. Programming in C Language

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid