KR20060070412A - 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지 - Google Patents

소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지 Download PDF

Info

Publication number
KR20060070412A
KR20060070412A KR1020050102986A KR20050102986A KR20060070412A KR 20060070412 A KR20060070412 A KR 20060070412A KR 1020050102986 A KR1020050102986 A KR 1020050102986A KR 20050102986 A KR20050102986 A KR 20050102986A KR 20060070412 A KR20060070412 A KR 20060070412A
Authority
KR
South Korea
Prior art keywords
language
files
program
installation package
collection
Prior art date
Application number
KR1020050102986A
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 KR20060070412A publication Critical patent/KR20060070412A/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
    • 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/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

프로그램에 대해 제1 파일 그룹에 대한 제1 설치 패키지가 생성된다. 상기 제1 파일 그룹은 상기 프로그램에 대한 언어-중립 파일들을 포함하지만 상기 프로그램에 대한 언어-특정 파일들은 포함하지 않는다. 또한 상기 프로그램에 대해 제2 파일 그룹에 대한 제2 설치 패키지가 생성된다. 상기 제2 파일 그룹은 상기 프로그램에 대한 언어-특정 파일들을 포함한다.
소프트웨어 셋업, 언어-중립(language-neutral), 언어-특정(language-specific), 설치 패키지, 배포 매체

Description

소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지{LANGUAGE-NEUTRAL AND LANGUAGE-SPECIFIC INSTALLATION PACKAGES FOR SOFTWARE SETUP}
도 1은 배포 매체 생성의 일례를 예시하는 블록도.
도 2는 본 명세서에서 설명된 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지들이 사용될 수 있는 예시적 환경을 예시하는 블록도.
도 3은 언어-중립 및 언어-특정 패키지들을 갖는 배포 매체를 생성하기 예시적 프로세스를 예시하는 흐름도.
도 4는 설치 패키지들의 재사용을 예시하는 블록도.
도 5는 배포 매체 상에 저장된 설치 패키지들의 일례를 예시하는 도면.
도 6은 본 명세서에서 설명된 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지들이 사용될 수 있는 일반적인 컴퓨터 환경을 예시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
102 : 프로그램 파일들
104 : 글로벌 파일들
114, 116, 118, 120: 설치 패키지
124, 126, 128: 배포 매체
162 : 컴퓨터
164 : 기억 장치
174, 176, 178: 타깃 컴퓨터
240 : 워드 프로세싱 애플리케이션
242 : 스프레드시트 애플리케이션
본 발명은 소프트웨어 프로그램 및 소프트웨어 프로그램의 배포에 관한 것으로, 특히 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지에 관한 것이다.
많은 회사들이 세계의 도처에 여러 위치에 소재하는 사무소들을 갖고 있다. 그 결과, 그 회사의 종업원들은 다양한 언어로 말을 한다. 이런 사정은 회사가 사용하는 컴퓨터들에 대해 각종 요건을 생성하고, 전형적으로 컴퓨터들에게 각종의 서로 다른 언어로 사용자 인터페이스를 제시하도록 요구한다. 예를 들어, 미국이나 영국에서는 영어로 된 워드 프로세싱 프로그램용 사용자 인터페이스가 디스플레이될 수 있는 데 반하여, 프랑스에서는 불어로 된 동일한 워드 프로세싱 프로그램용 사용자 인터페이스가 디스플레이될 수 있다.
이런 사정은 소프트웨어 개발자들에게는 문제가 된다. 왜냐하면 그들은 다양한 제품들에 걸쳐서 다양한 사용자 인터페이스들을 지원할 필요가 있기 때문이다. 예를 들어, 소프트웨어 개발자는 워드 프로세싱 프로그램, 스프레드시트 프로 그램, 데이터베이스 프로그램, 메시징 및 협력(messaging and collaboration) 프로그램, 드로잉(drawing) 프로그램, 프리젠테이션 프로그램은 물론, 이들 프로그램의 다양한 조합을 포함하는 다수의 프로그램군들(multiple program suites)을 설계하고 마케팅할 수 있다. 서로 다른 프로그램들의 수는 물론, 서로 다른 제품군으로 제공될 수 있는 이들 프로그램의 조합, 및 세계 도처에서 사용되는 서로 다른 언어들의 수를 감안하면, 매우 많은 수의 서로 다른 버전의 소프트웨어 제품들이 생길 수 있고, 각각은 특정 언어 및 하나 이상의 애플리케이션들의 조합으로 개별화(customize)된다. 이로 인해 소프트웨어 개발자에 의해 생성되고 테스트될 필요가 있는 소프트웨어 제품들의 수가 매우 많아진다. 이 수는 소프트웨어 프로그램들이 다수의 언어들이 동일 타깃 컴퓨터 상에 설치되도록 허용할 경우(예컨대, 프로그램의 불어 및 영어 버전 양쪽 모두를 사용하기를 원하는 사용자를 위해) 극적으로 증가하여, 소프트웨어 개발자에 의해 생성되고 테스트될 필요가 있는 더욱더 많은 수의 소프트웨어 제품들이 생성된다.
이러한 문제에 대한 한 가지 해법은 예컨대 영어와 같은 하나의 언어를 기본 언어로 선택하고, 항상 그 기본 언어를 먼저 설치하는 것이다. 그 후 각종 다른 언어들이 설치되어, 적절한 대로 기본 언어 버전의 적절한 부분들에 겹쳐쓰기(overwriting)되거나 추가(appending)된다. 이는 소프트웨어 개발자에 의해 생성되고 테스트될 필요가 있는 소프트웨어 제품들의 수를 감소시킨다. 따라서, 사용자가 일군의 애플리케이션(a suite of applications)의 불어 버전을 설치하기를 원할 경우, 그는 먼저 그 일군의 애플리케이션의 영어 버전을 설치하고, 그 후 영어 버전 위에 불어 버전이 설치된다. 이로 인해 불어 버전이 영어 버전을 대체(겹쳐쓰기)하거나, 또는 불어 버전이 영어 버전과 공존(영어 버전에 추가됨)할 수 있다. 그러나, 이런 해법은, 한 언어를 다른 언어 위에 설치함으로써, 겹쳐쓰기하는 언어가 아니라 때때로 기본 언어 인터페이스의 일부가 표시되는 결과 제품에서의 아티팩트들(artifacts)이 생길 수 있기 때문에 문제가 될 수 있다. 이들 아티팩트들은 버전들이 설치되는 순서에 따라 달라질 수 있다. 예를 들어, 만일 영어가 기본 언어이고 불어 버전이 영어 버전 위에 설치되고, 그 후 독어 버전이 영어 및 불어 버전들 위에 설치된다면, 아티팩트들은 결국 독어 버전이 영어 버전 위에 설치되고 그 후 불어 버전이 영어 및 독어 버전 위에 설치된 경우와는 다를 수 있다.
소프트웨어 프로그램들에 대해 소프트웨어 패치들이 이용 가능하게 될 경우 부가적인 문제들이 발생한다. 이들 소프트웨어 패치들은 전형적으로 부가적인 기능 또는 특징들을 제공하고, 및/또는 소프트웨어 프로그램에서 발견되는 문제 또는 오류들을 정정한다. 전형적으로, 고객이 사용할 수 있는 언어들 및 애플리케이션들의 각각의 가능한 조합에 대해 상이한 소프트웨어 패치가 요구되어, 결국 소프트웨어 개발자는 이들 다수의 가능한 조합들 각각에 대해 해당 패치에 대한 적당한 명령들을 포함하는 단일 소프트웨어 패치를 배포하게 되고, 이로 인해 배포되는 소프트웨어 패치가 매우 커질 수 있다. 또 다른 가능성은 소프트웨어 개발자가 다수의 가능한 조합들 중 특정한 것을 각각 목표로 하는 개개의 소프트웨어 패치들을 배포하는 것이고, 이 경우 최종 사용자들은 그들이 필요로 하는 패치가 어느 것인지를 알아내야 한다. 이로 인해 최종 사용자 측에서는 다수의 개개의 패치들 중 적당한 것을 선택하는 데 부가적인 노력 및/또는 지식이 요구될 수 있다.
소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지들이 본 명세서에서 설명된다.
소정의 양태들에 따르면, 프로그램에 대해 제1 파일 그룹에 대한 제1 설치 패키지가 생성된다. 상기 제1 파일 그룹은 상기 프로그램에 대한 언어-중립 파일들을 포함하지만 상기 프로그램에 대한 언어-특정 파일들은 포함하지 않는다. 또한 상기 프로그램에 대해 제2 파일 그룹에 대한 제2 설치 패키지가 생성된다. 상기 제2 파일 그룹은 상기 프로그램에 대한 언어-특정 파일들을 포함한다.
부가적인 양태들에 따르면, 상기 제1 및 제2 설치 패키지들은 또한 차후에 타깃 컴퓨터들 상에 설치하기 위한 하나 이상의 배포 매체(distribution media) 상에 저장될 수 있다. 부가적인 언어-특정 파일 그룹들에 대한 부가적인 설치 패키지들이 또한 생성되어 하나 이상의 배포 매체 상에 저장될 수 있다.
본 명세서 전반에 대하여 동일한 도면 부호가 동일한 구성 요소 및/또는 특징부를 참조하도록 사용된다.
소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지들이 본 명세서에서 설명된다. 이들 패키지들은 소프트웨어 프로그램에 대한 글로벌 파일들(global files)을 그 소프트웨어 프로그램에 대한 로컬라이즈된 파일들(localized files)로부터의 별개의 설치 패킷(들)과 관련시킨다. 글로벌 파일들은 언어-중립 파일들인 데 반하여, 로컬라이즈된 파일들은 특정 언어에 특정한 파일들이다. 설치 패키지들은 글로벌 파일들에 대해서뿐만 아니라 서로 다른 언어들에 대한 로컬라이즈된 파일들에 대해서도 생성된다. 그 후 글로벌 파일 설치 패키지는 물론 하나 이상의 로컬라이즈된 파일 설치 패키지들을 포함하는 배포 매체가 생성될 수 있다.
도 1은 배포 매체 생성의 일례를 예시하는 블록도이다. 배포 매체는 타깃 컴퓨터(들) 상에 프로그램을 셋업(프로그램을 설치한다고도 함)하기 위한 설치 패키지들을 저장한다. 프로그램은 생산성 프로그램(productivity program)(예컨대, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 데이터베이스 프로그램, 드로잉 프로그램 등), 참조 프로그램(reference program)(예컨대, 사전 프로그램, 백과 사전 프로그램 등), 교육 프로그램, 게임 또는 다른 오락 프로그램 등과 같은 각종의 서로 다른 프로그램들 중 임의의 것일 수 있다. 아래에서 더 상세히 논의되겠지만, 프로그램은 영어, 불어, 독어, 스페인어, 일본어, 중국어, 터키어 등과 같은 각종의 서로 다른 언어들로 로컬라이즈될 수 있다.
소프트웨어 프로그램 또는 애플리케이션에 대한 프로그램 파일들(102)은 하나 이상의 글로벌 파일들의 컬렉션(104), 제1 언어에 대한 하나 이상의 로컬라이즈된 파일들의 컬렉션(106), 제2 언어에 대한 하나 이상의 로컬라이즈된 파일들의 컬렉션(108), 및 제3 언어에 대한 하나 이상의 로컬라이즈된 파일들의 컬렉션(110)으로 그룹화된다. 도 1에서는 로컬라이즈된 파일들의 3개의 컬렉션들이 예시되어 있지만, 부가적인 언어들을 지원하기 위하여 로컬라이즈된 파일들의 부가적인 컬렉션 들이 프로그램 파일들(102)에 포함될 수 있다는 것을 알아야 할 것이다. 또한, 3개보다 소수의 언어가 요구될 경우에는 로컬라이즈된 파일들의 더 적은 수의 컬렉션들이 프로그램 파일들(102)에 포함될 수 있다.
또한, 도 1에서는 단일 프로그램에 대한 프로그램 파일들(102)이 예시되어 있지만, 글로벌 파일들 및 서로 다른 언어들에 대한 서로 다른 로컬라이즈된 파일들로 그룹화된 프로그램 파일들의 유사한 컬렉션들이 부가적인 프로그램들에 대해 포함될 수 있다는 것을 알아야 할 것이다. 게다가, 다수의 서로 다른 프로그램들에 대한 프로그램 파일들은 하나의 프로그램군(a program suite)으로서 함께 그룹화될 수 있다. 예를 들면, 동일한 일군의 프로그램의 일부인 몇몇 서로 다른 프로그램들에 대한 모든 글로벌 파일들은 파일들의 단일 컬렉션으로 함께 그룹화될 수 있다.
글로벌 파일들(104)은 해당 프로그램에 대한 언어-중립 파일들이다. 언어-중립 파일들은 전형적으로 프로그램을 실행시키기 위해 컴파일되고 실행될 수 있는 명령들의 파일들 또는 실행 가능한 이진 파일들을 포함한다. 언어-중립 파일들은 또한 프로그램이 실행될 때 프로그램에 의해 사용되는 구성 데이터(configuration data)를 포함할 수 있다. 언어-중립 파일들은 해당 프로그램의 어느 언어 버전이 실행되는지에 관계없이 동일하다. 예를 들면, 언어-중립 파일들은 프로그램의 영어 버전들, 프로그램의 불어 버전들, 프로그램의 일본어 버전들 등에 대해 동일하다.
한편, 로컬라이즈된 파일들(106, 108, 110) 각각은 특정 언어로 로컬라이즈 되어 있는 언어-특정 파일들을 포함한다. 예를 들면, 로컬라이즈된 파일들(106)은 영어 파일들일 수 있고, 로컬라이즈된 파일들(108)은 일본어 파일들일 수 있고, 로컬라이즈된 파일들(110)은 불어 파일들일 수 있다. 이 로컬라이즈된 파일들은 프로그램의 어느 언어 버전이 실행될지에 따라서 달라지고, 프로그램의 사용자가 그들이 선택한 언어로 프로그램과 상호 작용하도록 하는, 프로그램에 대한 파일들이다. 로컬라이즈된 파일들은, 예를 들면, 프로그램의 사용자에게 표시되는 도움말 정보(help information)에 대한 데이터를 포함하는 도움말 파일들을 포함할 수 있다. 로컬라이즈된 파일들은 또한, 예를 들면, 툴바(toolbars), 메뉴, 대화 박스(dialog boxes), 표시 아이콘 등과 같은 사용자 인터페이스 표시 엘리먼트들을 식별하는 구성 파일들을 포함할 수 있다. 로컬라이즈된 파일들은 또한, 예를 들면, 프로그램과 함께 사용될 템플릿들 및 샘플 문서들을 포함할 수 있다.
파일들의 컬렉션들(104, 106, 108, 및 110) 각각에 대해 각기 대응하는 별개의 설치 패키지들(114, 116, 118, 및 120)이 생성된다. 설치 패키지(114)는 글로벌 파일들(104)에 대응하고, 설치 패키지(116)는 로컬라이즈된 파일들(106)에 대응하고, 설치 패키지(118)는 로컬라이즈된 파일들(108)에 대응하고, 설치 패키지(120)는 로컬라이즈된 파일들(110)에 대응한다. 각각의 설치 패키지(114, 116, 118, 및 120)는 프로그램이 타깃 컴퓨터 상에서 적절히 실행되도록 그것의 대응하는 파일들이 타깃 컴퓨터 상에 어떻게 설치되어야 하는지에 관한 명령들을 포함한다. 이들 명령들은 프로그램이 설치되는 타깃 컴퓨터에 있는 애플리케이션 설치자(application installer)에 의해 액세스되어 수행된다.
설치 패키지들은, 사용자 제공 구성 정보(user-supplied configuration information)를 제외하고, 애플리케이션 설치자가 프로그램을 설치하기 위해 필요로 하는 모든 정보가 설치 패키지들에 포함되도록 설계될 수 있다. 대안적으로, 애플리케이션 설치자가 프로그램을 설치하기 위해 필요로 하는 정보 중 일부는 설치 패키지 외부에 있지만 설치 패키지와 관련되어 있는 파일(들)에 포함될 수 있다. 특정 설치 패키지와 관련된 특정 파일(들)을 어디에서 얻을 수 있는지에 대한 지시(indication)가 그 특정 설치 패키지에 포함될 수도 있고, 또는 대안적으로 그 특정 파일(들)이 타깃 컴퓨터에 있는 애플리케이션 설치자에게 알려져 있는 특정 규칙(convention) 또는 기법을 따르는 위치에 저장될 수 있다.
각종의 서로 다른 타입의 명령들이 설치 패키지들(114, 116, 118, 및 120)에 포함될 수 있다. 예를 들면, 설치 패키지들은 설치 중에 대응하는 파일들 중 특정한 것들이 타깃 컴퓨터의 어느 디렉터리 또는 폴더에 저장되어야 할지를 지시하는 명령들을 포함할 수 있다. 또 다른 예로서, 설치 패키지들은 타깃 컴퓨터 상에서 생성될 단축키들(shortcuts)을 지시하는 명령들을 포함할 수 있다. 또 다른 예로서, 설치 패키지들은 프로그램을 설치하기 위해 사용자에게 제시되고 사용자가 수락해야 할 라이센스 협정(licensing agreement(s))에 관한 명령들을 포함할 수 있다. 또 다른 예로서, 프로그램에 대한 파일들은 압축될 수 있고, 설치 패키지들은 어느 파일들이 압축되어 있고 그것들을 어떻게 압축 해제하는지를 지시하는 명령들을 포함할 수 있다. 또 다른 예로서, 설치 프로세스 중에 애플리케이션 설치자에게 각종 구성 정보가 제공될 필요가 있을 수 있고, 어떤 구성 정보가 필요할 수 있 는지는 설치 패키지들 내에서 식별될 수 있다. 이 구성 정보는, 예를 들면, 타깃 컴퓨터 상의 어떤 디렉터리 또는 폴더에 프로그램이 설치되어야 하는지에 대한 지시, 프로그램의 다수의 컴포넌트들 중 어느 것이 설치되어야 하는지에 대한 지시, 사용자 등록 정보(예컨대, 이름, 주소, 전화 번호, 이메일 주소 등) 등일 수 있다. 어떤 정보가 필요한지에 대한 프롬프트가 사용자에게 제시될 수 있고 사용자는 수동으로 그의 선택들을 입력할 수 있다. 대안적으로, (시스템 관리자와 같은) 사용자에 의해 애플리케이션 설치 관리자에게 정보를 자동으로 제공하는 스크립트 파일이 생성될 수도 있다.
설치 패키지들(114, 116, 118, 및 120) 각각은 또한 그것의 대응하는 파일들의 컬렉션(104, 106, 108, 및 110)을 포함할 수 있다. 일부 예에서, 파일들은 설치 패키지에 포함되기 전에 압축되고, 그 후 설치 프로세스의 일부로서 압축 해제된다. 각종의 압축 알고리즘들 중 임의의 것이 파일들을 압축하기 위해 사용될 수 있다. 전형적으로 무손실(lossless) 압축 알고리즘(들)이 파일들을 압축하는 데 사용되지만, (이미지 또는 다른 비디오 데이터가 압축되는 경우와 같은) 어떤 상황에서는 유손실(lossy) 압축 알고리즘(들)이 대안적으로 사용될 수도 있다. 어느 압축 해제 알고리즘을 사용할지와 같은 파일들을 압축 해제하는 방법에 대한 지시가 대응하는 설치 패키지에 포함될 수 있고 또는 대안적으로 타깃 컴퓨터에 있는 애플리케이션 설치자에 의해 알려질 수도 있다.
대안적으로, 설치 패키지들(114, 116, 118, 및 120)에 대응하는 파일들의 컬렉션들을 포함시키기보다는, 그 대응하는 파일들의 컬렉션들은 설치 패키지들과 별 개로 저장될 수 있다. 예를 들면, 각각의 설치 패키지가 하나의 파일로서 저장될 수 있고 각각의 대응하는 파일들의 컬렉션이 별개의 파일로서 저장될 수 있다. 설령 파일들의 컬렉션들이 설치 패키지들과 별개로 저장된다 하더라도, 파일들의 컬렉션들은 여전히 설치 패키지들과 관련된다. 파일들을 어디에서 얻을 수 있는지에 대한 지시가 설치 패키지들에 포함될 수 있고, 또는 대안적으로 그 파일들이 타깃 컴퓨터에 있는 애플리케이션 설치자에게 알려져 있는 특정 규칙 또는 기법을 따르는 위치에 저장될 수도 있다. 예를 들면, 파일들의 컬렉션은 압축되어 설치 패키지와 동일한 디렉터리에 단일 파일로서 저장될 수 있다.
부가적인 메타 데이터가 또한 설치 패키지에 포함될 수 있다. 이 메타 데이터는, 예를 들면, 설치되는 프로그램, 설치되는 파일들, 설치 패키지 자체 등을 기술할 수 있다. 대안적으로, 그러한 메타 데이터는, 설치 패키지에 포함되기보다는, 위에서 논의된 파일들의 컬렉션들과 유사하게 별개로 저장될 수 있으면서 애플리케이션 설치자가 액세스할 수 있다. 또한 위에서 논의된 파일들의 컬렉션들과 유사하게, 메타 데이터는 선택적으로(optionally) 압축될 수 있고, 이 경우 설치 패키지 또는 타깃 컴퓨터에 있는 애플리케이션 설치자가 압축된 메타 데이터를 압축 해제하는 방법을 안다.
Microsoft® Windows® 오퍼레이팅 시스템 하에서 설치되는 프로그램들에 대해 종종 사용되는 설치 패키지들의 하나의 특정 예는 "msi" 또는 "MSI" 파일로 불린다. 대응하는 프로그램 파일들이 어떻게 설치되어야 하는지에 대한 명령들이 msi 파일에 포함된다. 파일들의 컬렉션들은 압축되어 "cab" 또는 "CAB" 파일로 불 리는 파일에 포함된다. 하나 이상의 XML(eXtensible Markup Language) 파일들이 또한 포함될 수 있고, 각각은 설치 패키지에 대한 메타 데이터를 저장한다.
설치 패키지들(114, 116, 118, 및 120)은 그 후 하나 이상의 배포 매체(124, 126, 및 128) 상에 저장될 수 있다. 설치 패키지들(114, 116, 118, 및 120)의 서로 다른 조합들이 서로 다른 배포 매체 상에 저장될 수 있어, 서로 다른 배포 매체가 서로 다른 언어들에 대해 로컬라이즈된 파일들을 갖게 된다. 그러나, 이들 서로 다른 조합들 각각은 언어-중립 파일들(104)을 갖는 동일한 설치 패키지(114)를 포함할 것이다.
배포 매체(124)는 설치 패키지들(114 및 116)을 포함하므로, 배포 매체(124) 상에 배포된 프로그램은 로컬라이즈된 파일들(106)의 언어로 로컬라이즈된다. 배포 매체(126)는 설치 패키지들(114 및 118)을 포함하므로, 배포 매체(126) 상에 배포된 프로그램은 로컬라이즈된 파일들(108)의 언어로 로컬라이즈된다. 배포 매체(128)는 설치 패키지들(114, 116, 및 120)을 포함하므로, 배포 매체(126) 상에 배포된 프로그램은 로컬라이즈된 파일들(106 및 110)의 언어들로 로컬라이즈된다.
3개의 배포 매체가 도 1에 예시되어 있다. 4개 이상의 서로 다른 언어 또는 언어 조합들에 대해 로컬라이즈된 4개 이상의 배포 매체가 생성될 수도 있다는 것을 알아야 할 것이다. 마찬가지로, 단 하나 또는 2개의 상이한 언어 또는 언어 조합들에 대해 로컬라이즈된 단 하나 또는 2개의 배포 매체가 생성될 수도 있다는 것을 알아야 할 것이다.
또한, 전형적으로 동일한 배포 매체의 다수의 복사본들이 만들어질 것이라는 것을 알아야 할 것이다. 예를 들어, 만일 로컬라이즈된 파일들(106)이 영어로 로컬라이즈된다면, 영어로 개별화된(customized) 프로그램을 저장하는 배포 매체(124)가 수만 개 또는 수십만 개의 복사본들이 만들어져서 배포될 수 있다.
각종의 서로 다른 타입의 매체가 배포 매체(124, 126, 및 128)로서 사용될 수 있다. 배포 매체는 광 디스크(예컨대, CD 또는 DVD), 탈착형(removable) 자기 디스크(예컨대, 플로피 디스크 또는 Iomega® Zip® 디스크), 다른 자기 디스크(예컨대, 컴퓨터나 서버 내의 하드 디스크), 고체(solid state) 메모리(예컨대, 콤팩트 플래시 카드, 휴대형 USB 플래시 메모리 장치, SD(Secure Digital) 카드 등) 등과 같은 임의의 타입의 컴퓨터 판독 가능한 매체일 수 있다. 배포 매체는 설치 패키지들과 동일한 시스템에 로컬로 위치할 수도 있고, 또는 대안적으로 설치 패키지들이 저장되어 있는 시스템으로부터 원격으로 위치할 수도 있다. 예를 들면, 배포 매체는 네트워크를 통하여 액세스되는 서버 또는 다른 컴퓨터에 위치할 수 있다. 게다가, 동일한 조합의 설치 패키지들이 다수의 서로 다른 타입의 매체들 상에 위치할 수 있다. 예를 들면, 설치 패키지들(114 및 118)은 모두 CD, DVD는 물론 자기 디스크들 상에도 위치할 수 있다.
어떤 상황에서는, 배포 매체의 저장 용량 및 설치 패키지들의 사이즈에 따라서, 단일 프로그램에 대한 설치 패키지들이 다수의 배포 매체에 걸쳐서 분산(spread)될 필요가 있을 수 있다. 예를 들면, 글로벌 설치 패키지 및 영어 로컬라이즈된 설치 패키지가 상당히 커서 저장을 위해 2개의 CD를 필요로 하거나, 또는 대안적으로 단 하나의 DVD를 필요로 할 수 있다.
도 2는 본 명세서에서 설명된 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지들이 사용될 수 있는 예시적 환경(160)을 예시하는 블록도이다. 환경(160)은 기억 장치(164)를 구비한 컴퓨터(162)를 포함한다. 기억 장치(164)는 소프트웨어 프로그램에 대한 다수(x)의 설치 패키지들(166, 168, 및 170)을 포함한다. 이 설치 패키지들(166, 168, 및 170) 중 하나는 소프트웨어 프로그램에 대한 글로벌 파일들을 포함하거나 그렇지 않으면 그것과 관련시킬 것이고, 한편 나머지 설치 패키지들(166, 168, 및 170)은 소프트웨어 프로그램에 대한 특정 언어들에 대한 로컬라이즈된 파일들을 포함하거나 그렇지 않으면 그들과 관련시킬 것이다. 도 2에서는 모든 설치 패키지들(166, 168, 및 170)이 컴퓨터(162)의 일부인 동일한 기억 장치(164) 상에 저장되어 있는 것으로 예시되어 있지만, 대안적으로 설치 패키지들(166, 168, 및 170) 중 하나 이상(혹은 모든 설치 패키지들(166, 168, 및 170)을 포함함)이 컴퓨터(162)의 일부이거나 또는 네트워크를 통하여 컴퓨터(162)에 연결된 서버 컴퓨터 상의 기억 장치와 같이 컴퓨터(162)와 별개인 상이한 기억 장치 상에 저장될 수 있다.
설치 패키지들(166, 168, 및 170)의 다양한 조합들이 다수의 배포 매체(172) 상에 저장될 수 있다. 배포 매체(172) 각각은 소프트웨어 프로그램에 대한 글로벌 파일을 포함하거나 그것과 관련시키는 설치 패키지, 및 소프트웨어 프로그램에 대한 특정 언어에 대한 로컬라이즈된 파일들을 포함하거나 그것과 관련시키는 적어도 하나의 다른 설치 패키지를 저장하고 있을 것이다. 배포 매체(172)는 전형적으로 동일한 조합의 설치 패키지들을 갖는 다수의 복사본들을 포함한다.
배포 매체(172)는 그 후 다수(y)의 타깃 컴퓨터들(174, 176, 및 178)이 이용할 수 있게 된다. 타깃 컴퓨터들(174, 176, 및 178) 중 서로 다른 것들이 서로 다른 배포 매체(172)를 사용할 수 있고, 또는 대안적으로 타깃 컴퓨터들(174, 176, 및 178) 중 2개 이상이 단일 배포 매체를 공유할 수도 있다. 타깃 컴퓨터들(174, 176, 및 178) 각각에 있는 애플리케이션 설치자가 배포 매체(172) 상의 설치 패키지들로부터 소프트웨어 프로그램을 설치하기 위하여 실행된다.
타깃 컴퓨터(174, 176, 또는 178)에 의해 다수의 서로 다른 배포 매체(172)로부터 서로 다른 설치 패키지들이 얻어질 수 있다는 것을 주목해야 할 것이다. 예를 들면, 언어-중립 파일들 및 소프트웨어 프로그램의 영어 버전에 대한 로컬라이즈된 파일들은 그 대응하는 설치 패키지들이 저장되어 있는 CD를 구매함으로써 얻어질 수 있고, 해당 소프트웨어 프로그램의 스페인어 버전에 대한 로컬라이즈된 파일들은 상이한 CD를 구매하거나 또는 인터넷(또는 어떤 다른 네트워크) 상의 서버로부터 스페인어 파일들에 대응하는 설치 패키지들을 다운로드함으로써 얻어질 수 있다.
도 3은 언어-중립 및 언어-특정 패키지들을 갖는 배포 매체를 생성하기 위한 예시적 프로세스(200)를 예시하는 흐름도이다. 프로세스(200)는, 예를 들면, 도 2의 컴퓨터(162)와 같은 컴퓨터에 의해 수행된다. 프로세스(200)는 소프트웨어, 펌웨어, 하드웨어, 또는 그들의 조합들로 구현될 수 있다.
처음에, 소프트웨어 프로그램의 언어-중립 파일들의 컬렉션에 대한 제1 설치 패키지가 생성된다(동작 202). 또한, 소프트웨어 프로그램에 의해 지원되는 각 언 어에 대하여, 해당 언어에 대한 언어-특정 파일들의 컬렉션에 대한 부가적인 설치 패키지가 생성된다(동작 204). 위에서 논의된 바와 같이, 설치 패키지들은, 예를 들어, 대응하는 프로그램 파일들이 어떻게 설치되어야 하는지에 대한 명령, 대응하는 파일들의 컬렉션, 및 메타 데이터를 포함할 수 있다.
각 파일들의 컬렉션 내의 특정 파일들은 서로 다른 방식으로 식별될 수 있다. 전형적으로, 소프트웨어 프로그램 설계자들은 그들의 프로그램을 그 프로그램의 원하는 기능을 수행하도록 함께 동작하는 다수의 서로 다른 컴포넌트들로서 설계한다. 이들 컴포넌트들은, 예를 들어, 이진 파일들 또는 다른 실행 가능한 명령들의 세트, 라이브러리(예컨대 다이내믹-링크 라이브러리(DLLs)), 구성 데이터 등을 포함한다. 소프트웨어 프로그램 설계자들은 전형적으로 그들이 지원하려고 하는 서로 다른 언어들에 대한 서로 다른 지원을 포함하도록 서로 다른 컴포넌트들을 설계한다. 예를 들면, 영어로 프로그램에 대한 도움말 기능을 지원하는 데이터가 하나의 컴포넌트가 될 것이고, 불어로 프로그램에 대한 도움말 기능을 지원하는 데이터가 또 하나의 컴포넌트가 될 것이고, 일본어로 프로그램에 대한 도움말 기능을 지원하는 데이터가 또 하나의 컴포넌트가 될 것 등이다.
각 파일들의 컬렉션의 일부인 특정 파일들은 소프트웨어 프로그램의 이들 서로 다른 컴포넌트들에 기초할 수 있다. 예를 들면, 소프트웨어 프로그램의 설계자는, 예컨대 특정 컴포넌트들의 리스트를 생성함으로써, 어느 컴포넌트들이 어느 파일들의 컬렉션에 포함되어야 하는지 및 각각이 속하는 파일들의 컬렉션을 식별할 수 있다. 또 다른 예로서, 소프트웨어 프로그램의 설계자들은 언어-중립 파일들은 물론 로컬라이즈된 파일들에 대한 서로 다른 언어들 각각에 대한 서로 다른 파일 명칭 확장자들과 같은, 특정 명명 규칙(naming convention)을 이용할 수 있다. 또 다른 예로서, 소프트웨어 프로그램의 설계자는 언어-중립 파일들은 물론 각각의 서로 다른 언어에 대한 로컬라이즈된 파일들을 상이한 디렉터리 또는 폴더와 같은 상이한 위치에 저장할 수 있다. 디렉터리 또는 폴더 명칭들 자체는, 또는 대안적으로 어떤 다른 목록은, 어느 디렉터리 또는 폴더가 어느 파일들의 컬렉션에 대한 파일들을 저장하는지를 지시할 수 있다.
그 후, 제1 설치 패키지 및 부가적인 설치 패키지들 중 하나 이상의 것이 선택된다(동작 206). 부가적인 설치 패키지들 중 어느 하나 이상의 것이 선택되는지는 생성되는 배포 매체에 대한 원하는 언어 지원에 기초하여 달라진다. 어느 언어가 지원될지를 식별하는 사용자 선택이 수신될 수도 있고, 또는 대안적으로 그 선택은 자동화될 수도 있다. 예를 들면, 프로세스(200)는 동작 206을 다수 회 반복할 수 있고 매번 부가적인 언어 설치 패키지들 중 상이한 하나 이상의 것을 선택할 수 있다.
그 후, 동작 206에서 선택된 설치 패키지들은 물론 그 설치 패키지들과 관련된 임의의 파일(예컨대 대응하는 파일들의 컬렉션들)이 하나 이상의 배포 매체 상에 저장된다(동작 208). 위에서 논의된 바와 같이, 배포 매체는 각종의 컴퓨터 판독 가능한 매체 중 어느 하나일 수 있다. 프로세스(200)는 서로 다른 설치 패키지들이 저장되어 있는 서로 다른 배포 매체를 생성하기 위하여 선택적으로 동작들(206 및 208)을 다수 회 반복할 수 있다.
프로세스(200)는 모든 배포 매체 상에 동일한 로컬라이즈된 언어가 포함되어야 한다는 요건을 포함하지 않는다는 것을 주목해야 할 것이다. 서로 다른 배포 매체 상에 포함된 특정 언어(들)는 달라질 수 있다 - 다른 로컬라이즈된 파일들이 설치될 필요가 있는 타깃 컴퓨터들 상에 먼저 설치될 필요가 있는 모든 배포 매체에 걸쳐서 공통인 기본 언어가 없음 - . 그보다는, 부가적인 설치 패키지들 중 임의의 하나 또는 조합이 배포 매체 상에 포함될 수 있다.
또한, 각각의 소프트웨어 프로그램과 관련된 동일한 설치 패키지들이 소프트웨어 프로그램들의 서로 다른 컬렉션들을 갖는 서로 다른 배포 매체를 생성하기 위해 사용될 수 있다는 것을 주목해야 할 것이다. 도 4는 설치 패키지들의 재사용을 예시하는 블록도이다.
도 4에는, 워드 프로세싱 소프트웨어 애플리케이션(240) 및 스프레드시트 소프트웨어 애플리케이션(242)이 예시되어 있다. 워드 프로세싱 애플리케이션(240)에 대해 사전에 3개의 설치 패키지들, 즉 애플리케이션(240)에 대한 언어-중립 파일들에 대응하는 설치 패키지(244), 애플리케이션(240)에 대한 영어 로컬라이즈된 파일들에 대응하는 설치 패키지(246), 및 애플리케이션(240)에 대한 불어 로컬라이즈된 파일들에 대응하는 설치 패키지(248)가 생성되어 있다. 스프레드시트 애플리케이션(242)에 대해서도 사전에 3개의 설치 패키지들, 즉 애플리케이션(242)에 대한 언어-중립 파일들에 대응하는 설치 패키지(252), 애플리케이션(242)에 대한 영어 로컬라이즈된 파일들에 대응하는 설치 패키지(254), 및 애플리케이션(242)에 대한 불어 로컬라이즈된 파일들에 대응하는 설치 패키지(256)가 생성되어 있다.
설치 패키지들(244, 246, 및 248)을 포함하는 제1 배포 매체(260)가 생성될 수 있다. 따라서 배포 매체(260)는 영어 및/또는 불어로 워드 프로세싱 애플리케이션을 설치하기 위해 사용될 수 있다. 설치 패키지들(252 및 256)을 포함하는 제2 배포 매체(262)가 생성될 수 있다. 따라서 배포 매체(262)는 불어로 스프레드시트 애플리케이션을 설치하기 위해 사용될 수 있다. 설치 패키지들(244, 248, 252, 및 256)을 포함하는 제3 배포 매체(264)가 생성될 수 있다. 따라서 배포 매체(264)는 불어로 워드 프로세싱 애플리케이션 및 스프레드시트 애플리케이션 양쪽 모두를 포함하는 일군의 애플리케이션을 설치하기 위해 사용될 수 있다.
비록 도 4는 2개의 애플리케이션에 대한 설치 패키지들을 재사용하는 예를 예시하고 있지만, 3개 이상의 애플리케이션들에 대한 설치 패키지들을 포함하는 부가적인 배포 매체도 생성될 수 있다는 것을 알아야 할 것이다.
대안적으로, 2개의 애플리케이션에 대한 2개의 별개의 언어-중립 글로벌 설치 패키지들(244 및 252)을 갖기보다는, 대응하는 파일들이 함께 모아져서 동일한 설치 패키지의 일부가 될 수도 있다.
본 명세서에서 논의된 언어-중립 및 언어-특정 설치 패키지들로 인해 사용자들에게 송신될 수 있는 소프트웨어 패치들의 사이즈가 감소될 수 있다. 그런 패치들은, 애플리케이션들이 설치되는 경우에, 예를 들어, 애플리케이션들에 새로운 특징을 부가하고, 애플리케이션들에서 발견된 이슈 또는 문제들을 정정하는 등등을 위하여 타깃 컴퓨터들에서 실행되는 명령들이다. 예를 들면, 워드 프로세싱 애플리케이션(240)의 글로벌 파일들 중 하나에서 발견된 문제를 정정하기 위하여 그 워 드 프로세싱 애플리케이션(240)의 사용자들이 패치를 이용할 수 있게 된다고 가정하자. 패치는 그 문제를 정정하기 위하여 실행되는 단일 세트의 명령들, 및 혹은 그 명령들과 관련된 데이터를 포함할 것이다. 이 동일한 패치는 워드 프로세싱 애플리케이션(240)의 모든 버전들에 대해, 그것들이 애플리케이션(240)의 자립형 버전들(stand-alone versions)이거나 또는 보다 큰 일 군의 애플리케이션의 일부인 버전들이거나 관계없이, 사용될 수 있다. 더욱이, 이 동일한 패치는 워드 프로세싱 애플리케이션(240)에 대해, 애플리케이션(240)의 특정 복사본이 어느 언어로 로컬라이즈되어 있는지에 관계없이, 사용될 수 있다. 애플리케이션(240)의 서로 다른 로컬라이즈된 버전들 모두는 설치 패키지(244)와 관련된 동일한 언어-중립 파일들에 의존한다.
도 5는 배포 매체 상에 저장된 설치 패키지들의 일례를 예시한다. 배포 매체(300)는 Microsoft® Office 애플리케이션군을 설치하기 위한 설치 패키지들을 저장한다. 제1 폴더, 전형적으로 배포 매체(300)의 루트 폴더 또는 디렉터리는, 폴더들 및 파일들의 제1 세트(302)를 포함한다. "Autorun INF" 파일은 배포 매체(300)가 드라이브에 삽입되거나 또는 다른 방법으로 컴퓨터에 결합될 때 설치 프로세스를 시작하도록, 배포 매체(300)가 "Setup.exe" 프로그램인 설치자 애플리케이션을 자동으로 실행할 수 있게 하는 명령들을 포함한다. 그 세트(302) 내의 부가적인 파일들은 "Setup.exe" 프로그램을 지원하고 설치 프로세스 중에 사용될 수 있는 파일들을 포함한다.
도 5에 예시된 예에서는, Microsoft® Office군의 애플리케이션의 예시적 버 전은 Microsoft® Access, Microsoft® Excel, Microsoft® Outlook® 메시징 및 협력 클라이언트, Microsoft® PowerPoint® 프리젠테이션 그래픽스 프로그램, Microsoft® Publisher, 및 Microsoft® Word를 포함한다.
도 5에 예시된 예에서는, Microsoft® Office 군의 애플리케이션의 일부인 각각의 애플리케이션에 대한 언어-중립 파일들의 각각의 컬렉션에 대해 별개의 설치 패키지를 갖기보다는, Microsoft® Office 군의 애플리케이션 내의 모든 애플리케이션들에 대해(아래에서 더 상세히 논의되겠지만, 프루핑 툴(proofing tools)은 제외함) 단일 설치 패키지가 포함된다. 그 콘텐츠를 예시하기 위해 폴더(304)로서 확장된 "Pro WW" 폴더는 Microsoft® Office의 이 버전 내의 애플리케이션들 각각에 대한 언어-중립 글로벌 파일들을 포함한다. 폴더(304)에서, "ProWW msi" 파일은 설치 패키지이고, "ProWW cab" 및 "OfficeWW CAB" 파일들은 대응하는 언어-중립 파일들의 컬렉션이고(압축 형태),"setup xml" 및 "ProWW xml" 파일들은 Microsoft® Office를 설치하기 위한 메타 데이터를 저장한다.
Microsoft® Office 군의 애플리케이션의 이 버전 내에 포함된 서로 다른 애플리케이션들 각각을 영어로 로컬라이즈하기 위한 상이한 폴더가 이 세트(302) 내에 포함된다. 이들 폴더들은 "en-US" 확장자를 포함시킴으로써 지시된다. 따라서, 이 예에서는, 언어-중립 파일들이 단일 설치 패키지의 일부라 하더라도, 언어-특정 로컬라이즈 파일들은 별개의 설치 패키지들이다. 대안적으로, 이 언어-특정 로컬라이즈 파일들 중 2개 이상의 것은 단일 설치 패키지 내에 포함되었을 수도 있을 것이다.
이들 폴더 중 하나인, "Excel en-US" 폴더는 그 콘텐츠를 예시하기 위해 폴더(306)로서 확장되어 있다. 폴더(306)에서, "ExcelMUI msi" 파일은 Microsoft® Excel에 대한 영어 로컬라이즈를 위한 설치 패키지이고, "ExcelMUI cab" 파일은 대응하는 언어-특정 파일들의 컬렉션이고(압축 형태), "setup xml" 및 "ExcelMUI xml" 파일들은 Microsoft® Excel에 대한 언어-특정 파일들을 설치하기 위한 메타 데이터를 저장한다.
이들 폴더 중 다른 하나인, "Office en-US" 폴더는 그 콘텐츠를 예시하기 위해 폴더(308)로서 확장되어 있다. 폴더(308)는, 예컨대 맞춤법 검사기(spell-checker), 문법 검사기(grammer-checker), 하이픈 연결기(hyphenator), 관련어집(thesaurus) 등과 같은, Microsoft® Office군의 애플리케이션에 대한 프루핑 툴들(proofing tools)에 대한 설치 패킷을 포함한다. 예시된 예에서는, 동일한 설치 패킷의 일부로서, 또는 그와 관련되어 다양한 프루핑 툴들이 포함되어 있다. 대안적으로, 서로 다른 설치 패킷들의 일부로서, 또는 그와 관련되어 서로 다른 프루핑 툴들이 포함될 수도 있다. Microsoft® Office의 이 버전에서는, 영어, 스페인어, 및 불어에 대한 프루핑 툴들이 포함되어 있다. "OfficeMUI msi" 파일은 이들 프루핑 툴들에 대한 설치 패키지이고, 영어, 스페인어, 및 불어 각각에 대한 언어-특정 로컬라이제이션 파일들이 폴더(308)의 별개의 하위 폴더들로서 포함되어 있다("Proof en"은 영어 파일들에 대한 것이고, "Proof es"는 스페인어 파일들에 대한 것이고, "Proof fr"은 불어 파일들에 대한 것이다). "OfficeMUI cab" 파일은 프루핑 툴들에 대한 대응하는 언어-중립 파일들의 컬렉션이고, "setup xml" 및 "OfficeMUI xml" 파일들은 프루핑 툴들을 설치하기 위한 메타 데이터를 저장한다.
"Proof en" 폴더는 그 콘텐츠를 예시하기 위해 폴더(310)로서 확장되어 있다. 폴더(310)에서, "Proof msi" 파일은 프루핑 툴들에 대한 영어 로컬라이즈를 위한 설치 패키지이고, "Proof cab" 파일은 대응하는 언어-특정 파일들의 컬렉션이고(압축 형태), "Proof xml" 파일은 프루핑 툴들에 대한 언어-특정 파일들을 설치하기 위한 메타 데이터를 저장한다.
도 6은 본 명세서에서 설명된 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치 패키지들이 사용될 수 있는 일반적인 컴퓨터 환경(400)을 예시한다. 이 컴퓨터 환경(400)은 단지 컴퓨팅 환경의 일례일 뿐이고 컴퓨터 및 네트워크 아키텍처들의 기능 또는 이용 범위에 대하여 어떠한 제한도 제시하도록 의도되어 있지 않다. 이 컴퓨터 환경(400)은 예시적 컴퓨팅 환경(400)에서 예시된 컴포넌트들의 임의의 하나 또는 조합에 관하여 어떠한 종속성이나 요건도 갖는 것으로 해석되어서는 안된다.
컴퓨터 환경(400)은 컴퓨터(402)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(402)는, 예를 들어, 도 2의 컴퓨터(162)일 수 있다. 컴퓨터(402)의 컴포넌트들은, 하나 이상의 프로세서 또는 처리 장치(404), 시스템 메모리(406), 및 프로세서(404)를 포함하는 각종 시스템 컴포넌트들을 시스템 메모리(406)에 연결하는 시스템 버스(408)를 포함할 수 있지만, 이들에 한정되지는 않는다.
시스템 버스(408)는, 각종 버스 아키텍처 중 어느 하나를 이용한, 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속 그래픽 포트(accelerated graphics port), 및 프로세서 또는 로컬 버스를 포함하는, 몇몇 타입의 버스 구조들 중 하나 이상의 임의의 것을 나타낸다. 예로서, 그러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 Mazzanine 버스로도 알려져 있는 PCI(Peripheral Component Interconnect) 버스를 포함할 수 있다.
컴퓨터(402)는 전형적으로 각종 컴퓨터 판독 가능 매체를 포함한다. 그러한 매체는 컴퓨터(402)에 의해 액세스될 수 있고 휘발성 및 비휘발성 매체, 탈착형(removable) 및 비탈착형(non-removable) 매체 모두를 포함하는 임의의 이용 가능한 매체일 수 있다.
시스템 메모리(406)는 랜덤 액세스 메모리(RAM)(410)와 같은 휘발성 메모리, 및/또는 판독 전용 메모리(ROM)(412)와 같은 비휘발성 메모리의 형태의 컴퓨터 판독 가능 매체를 포함한다. 시동(start-up) 중과 같이, 컴퓨터(402) 내의 엘리먼트들 간에 정보를 전송하는 것을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템(BIOS)(414)은 ROM(412)에 저장된다. RAM(410)은 전형적으로 처리 장치(404)에 의해 즉시 액세스 가능하고 및/또는 그 처리 장치에 의해 현재 실행되는 데이터 및/또는 프로그램 모듈들을 포함한다.
컴퓨터(402)는 또한 다른 탈착형/비탈착형, 휘발성/비휘발성 컴퓨터 기억 매체를 포함할 수 있다. 예로서, 도 5는 비탈착형, 비휘발성 자기 매체(도시되지 않음)로부터 판독하고 거기에 기록하기 위한 하드 디스크 드라이브(416), 탈착형, 비 휘발성 자기 디스크(420)(예를 들면, "플로피 디스크")로부터 판독하고 거기에 기록하기 위한 자기 디스크 드라이브(418), 및 CD-ROM, DVD-ROM, 또는 다른 광학 매체와 같은 탈착형, 비휘발성 광 디스크(424)로부터 판독하고 및/또는 거기에 기록하기 위한 광 디스크 드라이브(422)를 예시한다. 하드 디스크 드라이브(416), 자기 디스크 드라이브(432), 및 광 디스크 드라이브(422)는 각각 하나 이상의 데이터 매체 인터페이스(426)에 의해 시스템 버스(408)에 접속된다. 대안적으로, 하드 디스크 드라이브(416), 자기 디스크 드라이브(432), 및 광 디스크 드라이브(422)는 하나 이상의 인터페이스(도시되지 않음)에 의해 시스템 버스(408)에 접속될 수 있다. 또한 예컨대 컴퓨터(402)에 연결된 USB 플래시 디바이스와 같은 부가적인 컴퓨터 기억 매체가 컴퓨터(402)의 일부로서 포함될 수도 있다.
상기 디스크 드라이브들 및 그들의 관련 컴퓨터 판독 가능 매체는, 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 및 컴퓨터(402)용의 다른 데이터의 비휘발성 저장을 제공한다. 비록 예에서는 하드 디스크(416), 탈착형 자기 디스크(420), 및 탈착형 광 디스크(424)를 예시하고 있지만, 자기 카세트 또는 다른 자기 기억 장치, 플래시 메모리 카드, CD-ROM, 디지털 다용도 디스크(DVD) 또는 다른 광학 기억 장치, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거 가능하고 프로그램 가능한 판독 전용 메모리(EEPROM) 등과 같이, 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 타입의 컴퓨터 판독 가능 매체도 예시적 컴퓨팅 시스템 및 환경을 구현하기 위해 이용될 수 있다는 것을 알아야 할 것이다.
하드 디스크(416), 자기 디스크(420), 광 디스크(424), ROM(412), 및/또는 RAM(410) 상에는, 예로서, 오퍼레이팅 시스템(426), 하나 이상의 애플리케이션 프로그램(428), 기타 프로그램 모듈들(430), 및 프로그램 데이터(432)를 포함하는 임의 개수의 프로그램 모듈들이 저장될 수 있다. 그런 오퍼레이팅 시스템(426), 하나 이상의 애플리케이션 프로그램(428), 기타 프로그램 모듈들(430), 및 프로그램 데이터(432)(또는 그것들의 어떤 조합) 각각은 분산 파일 시스템(distributed file system)을 지원하는 상주 컴포넌트들의 전부 또는 일부를 구현할 수 있다.
사용자는 키보드(434) 및 포인팅 디바이스(436)(예컨대, "마우스")와 같은 입력 장치들을 통하여 컴퓨터(402) 내에 커맨드 및 정보를 입력할 수 있다. 다른 입력 장치들(438)(구체적으로 도시되지 않음)은 마이크, 조이스틱, 게임 패드, 위성 안테나(satellite dish), 직렬 포트, 스캐너, 및/또는 그와 유사한 것을 포함할 수 있다. 이들 및 다른 입력 장치들은 시스템 버스(408)에 연결되어 있는 입출력 인터페이스(440)를 통하여 처리 장치(404)에 접속되지만, 예컨대, 병렬 포트, 게임 포트, USB(universal serial bus), 펌웨어(IEEE 1394) 버스와 같은, 다른 인터페이스 및 버스 구조들에 의해 접속될 수도 있다.
모니터(442) 또는 다른 타입의 디스플레이 장치가 또한 비디오 어댑터(444)와 같은 인터페이스를 통하여 시스템 버스(408)에 접속될 수 있다. 모니터(442) 외에, 다른 주변 출력 장치들로는 입출력 인터페이스(440)를 통하여 컴퓨터(402)에 접속될 수 있는 스피커(도시되지 않음) 및 프린터(446)와 같은 컴포넌트들을 포함할 수 있다.
컴퓨터(402)는 원격 컴퓨팅 장치(448)와 같은 하나 이상의 원격 컴퓨터들에의 논리적 접속들을 이용한 네트워킹된 환경에서 동작할 수 있다. 예로서, 원격 컴퓨팅 장치(448)는 퍼스널 컴퓨터, 휴대형 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어 디바이스(peer device), 또는 다른 통상의 네트워크 노드 등일 수 있다. 원격 컴퓨팅 장치(448)는 컴퓨터(402)와 관련하여 여기에서 설명한 엘리먼트들 및 특징들의 다수 또는 전부를 포함할 수 있는 휴대형 컴퓨터로서 예시되어 있다.
컴퓨터(402)와 원격 컴퓨터(448) 간의 논리적 접속들은 근거리 네트워크(LAN)(450) 및 일반적인 광역 네트워크(WAN)(452)로서 도시되어 있다. 그러한 네트워킹 환경들은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer networks), 인트라넷, 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 구현될 때, 컴퓨터(402)는 네트워크 인터페이스 또는 어댑터(454)를 통하여 로컬 네트워크(450)에 접속된다. WAN 네트워킹 환경에서 구현될 경우, 컴퓨터(402)는 전형적으로 광역 네트워크(452)을 통하여 통신을 확립하기 위한 모뎀(456) 또는 다른 수단들을 포함한다. 컴퓨터(402)의 내부 또는 외부에 있을 수 있는 모뎀(456)은 입출력 인터페이스(440) 또는 다른 적당한 메커니즘을 통하여 시스템 버스(408)에 접속될 수 있다. 예시된 네트워크 접속들은 예시적인 것이고 컴퓨터들(402 및 448) 간에 통신 링크(들)를 확립하는 다른 수단들이 이용될 수도 있다는 것을 알아야 할 것이다.
컴퓨팅 환경(400)과 함께 예시된 것과 같은 네트워킹된 환경에서, 컴퓨터(402)와 관련하여 도시된 프로그램 모듈들 또는 그 일부는 원격 메모리 기억 장치 에 저장될 수 있다. 예로서, 원격 애플리케이션 프로그램들(458)은 원격 컴퓨터(448)의 메모리 장치 상에 상주한다. 예시를 위하여, 애플리케이션 프로그램들 및 오퍼레이팅 시스템과 같은 다른 실행 가능한 프로그램 컴포넌트들은 여기에서 개별 블록들로서 예시되어 있지만, 그러한 프로그램들 및 컴포넌트들은 컴퓨팅 장치(402)의 상이한 저장 컴포넌트들에 다양한 때에 존재하면서, 컴퓨터의 데이터 프로세서(들)에 의해 실행되는 것이 인식되어야 한다.
여기에서는 하나 이상의 컴퓨터 또는 다른 장치들에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터 실행 가능한 명령들의 일반적인 컨텍스트에서 각종 모듈들 및 기법들이 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 타입(abstract data types)을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 전형적으로, 이 프로그램 모듈들의 기능은 각종 실시예에서 원하는 대로 조합되거나 분산될 수있다.
이들 모듈들 및 기법들의 구현은 소정 형태의 컴퓨터 판독 가능 매체 상에 저장되거나 그들을 거쳐서 전송될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 한정이 아니라 예로서, 컴퓨터 판독 가능 매체는 "컴퓨터 기억 매체" 및 "통신 매체"를 포함할 수 있다.
"컴퓨터 기억 매체"는 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 및 기술로 구현된 휘발성 및 비휘발성, 탈착형 및 비탈착형 매체를 포함한다. 컴퓨터 기억 매체는 RAM, ROM, EEPROM, 플래시 메모리, 또는 다른 메모리 기술, CD-ROM, 디지털 다 용도 디스크(DVD) 또는 다른 광학 기억 장치, 자기 카세트, 자기 테이프, 자기 디스크 기억 장치 또는 다른 자기 기억 장치들, 또는 원하는 정보를 저장하기 위해 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체들을 포함하지만, 이들에 한정되지는 않는다.
"통신 매체"는 전형적으로 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터를 반송파(carrier wave) 또는 다른 전송 메커니즘(transport mechanism)과 같은 변조된 데이터 신호로 구현하며 또한 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"(modulated data signal)라는 용어는 그 특성들 중 하나 이상이 그 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변경된 신호를 의미한다. 한정이 아니라 예로서, 통신 매체는 유선 네트워크(wired network) 또는 직접 유선 접속(direct-wired connection)과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상기한 것들 중 임의의 것들의 조합들도 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
위 설명에서는 구조적 특징들 및/또는 방법적 동작들에 특정한 언어를 사용하고 있지만, 부속된 청구항들에서 규정된 발명은 설명된 특정한 특징들 또는 동작들에 제한되지 않는다는 것을 이해해야 할 것이다. 오히려, 특정한 특징들 및 동작들은 본 발명을 실시하는 예시적인 형태로서 개시되어 있다.
본 발명에 따르면, 프로그램에 대하여 언어-중립 설치 패키지 및 언어-특정 설치 패키지가 생성되고, 이들 언어-중립 및 언어-특정 설치 패키지들로 인해 사용 자들에게 송신될 수 있는 소프트웨어 패치들의 사이즈가 감소될 수 있다.

Claims (20)

  1. 프로그램에 대하여, 제1 파일 그룹에 대한 제1 설치 패키지를 생성하는 단계 - 상기 제1 파일 그룹은 상기 프로그램에 대한 언어-중립(language-neutral) 파일들을 포함하지만 상기 프로그램에 대한 언어-특정(language-specific) 파일들은 포함하지 않음 - , 및
    상기 프로그램에 대하여, 제2 파일 그룹에 대한 제2 설치 패키지를 생성하는 단계 - 상기 제2 파일 그룹은 상기 프로그램에 대한 언어-특정 파일들을 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 프로그램에 대하여, 복수의 부가적인 파일 그룹들에 대한 복수의 부가적인 설치 패키지들을 생성하는 단계 - 상기 복수의 부가적인 파일 그룹들 각각은 상기 프로그램에 대한 부가적인 언어-특정 파일들을 포함함 - 를 더 포함하는 방법.
  3. 제2항에 있어서, 상기 제2 설치 패키지 내의 파일들은 상기 프로그램을 하나의 언어로 로컬라이즈(localize)하고, 상기 복수의 부가적인 설치 패키지들 각각 내의 파일들은 상기 프로그램을 복수의 상이한 언어들 중 하나로 로컬라이즈하는 방법.
  4. 제1항에 있어서, 상기 제1 설치 패키지 및 상기 제2 설치 패키지를 단일 배포 매체(distribution medium) 상에 저장하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 프로그램에 대하여, 제3 파일 그룹에 대한 제3 설치 패키지를 생성하는 단계 - 상기 제3 파일 그룹은 상기 프로그램을 상기 제2 파일 그룹과는 다른 언어로 로컬라이즈하는 상기 프로그램에 대한 부가적인 로컬라이즈된 파일들을 포함함 - , 및
    상기 제3 설치 패키지를 제2 배포 매체 상에 저장하는 단계
    를 더 포함하는 방법.
  6. 제1항에 있어서, 상기 제1 설치 패키지를 생성하는 단계는, 상기 프로그램을 포함하는 일군의 다수 프로그램(a suite of multiple programs)에 대한 상기 제1 설치 패키지를 생성하는 단계를 포함하고, 상기 제1 파일 그룹은 상기 일군의 다수 프로그램 내의 각각의 프로그램에 대한 언어-중립 파일들을 포함하지만 상기 일군의 다수 프로그램 내의 상기 프로그램들 중 어느 프로그램에 대해서도 언어-특정 파일들을 포함하지 않는 방법.
  7. 제1항에 있어서, 상기 제2 파일 그룹 중의 어느 것도 영어로 로컬라이즈될 필요가 없는 방법.
  8. 제1항에 있어서, 상기 제1 설치 패키지를 생성하는 단계는 상기 제1 설치 패키지 내에 상기 제1 파일 그룹을 포함하는 단계를 포함하고, 상기 제2 설치 패키지를 생성하는 단계는 상기 제2 설치 패키지 내에 상기 제2 파일 그룹을 포함하는 단계를 포함하는 방법.
  9. 컴퓨터의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가,
    프로그램에 대한 언어-중립 파일들만을 제1 설치 패키지와 관련시키고,
    상기 프로그램에 대한 언어-특정 파일들의 제1 컬렉션을 제2 설치 패키지와 관련시키고,
    상기 프로그램에 대한 언어-특정 파일들의 제2 컬렉션을 제3 설치 패키지와 관련시키고,
    상기 제1 설치 패키지 및 상기 제2 설치 패키지와 상기 제3 설치 패키지 중 하나 또는 양쪽 모두를 하나 이상의 배포 매체 상에 저장하게 하는
    복수의 명령들을 저장하고 있는 하나 이상의 컴퓨터 판독 가능 매체.
  10. 제9항에 있어서, 상기 복수의 명령들은 또한 상기 하나 이상의 프로세서가,
    상기 언어-중립 파일들을 상기 하나 이상의 배포 매체 상에 상기 제1 설치 패키지와 동일한 폴더 내에 제1 압축 파일로서 저장하고,
    상기 언어-특정 파일들의 제1 컬렉션을 상기 하나 이상의 배포 매체 상에 상기 제2 설치 패키지와 동일한 폴더 내에 제2 압축 파일로서 저장하고,
    상기 언어-특정 파일들의 제2 컬렉션을 상기 하나 이상의 배포 매체 상에 상기 제3 설치 패키지와 동일한 폴더 내에 제3 압축 파일로서 저장하게 하는
    하나 이상의 컴퓨터 판독 가능 매체.
  11. 제9항에 있어서, 상기 프로그램은 일군의 프로그램의 일부이고, 상기 복수의 명령들은 또한 상기 하나 이상의 프로세서가,
    상기 일군의 프로그램의 일부인 제2 프로그램에 대하여, 상기 제2 프로그램에 대한 언어-중립 파일들만을 제4 설치 패키지와 관련시키고,
    상기 제2 프로그램에 대하여, 상기 제2 프로그램에 대한 언어-특정 파일들의 컬렉션을 제5 설치 패키지와 관련시키게 하는
    하나 이상의 컴퓨터 판독 가능 매체.
  12. 제9항에 있어서, 상기 프로그램은 일군의 다수 프로그램의 일부이고, 상기 복수의 명령들은 또한 상기 하나 이상의 프로세서가, 상기 프로그램에 대한 언어-중립 파일들 및 상기 다수의 프로그램들 중 임의의 다른 프로그램에 대한 언어-중립 파일들만을 상기 제1 설치 패키지와 관련시키게 하는 하나 이상의 컴퓨터 판독 가능 매체.
  13. 제9항에 있어서, 상기 복수의 명령들은 또한 상기 하나 이상의 프로세서가,
    상기 프로그램에 대한 언어-중립 파일들을 상기 제1 설치 패키지에 포함시키고,
    상기 언어-특정 파일들의 제1 컬렉션을 상기 제2 설치 패키지에 포함시키고,
    상기 언어-특정 파일들의 제2 컬렉션을 상기 제3 설치 패키지에 포함시키게 하는
    하나 이상의 컴퓨터 판독 가능 매체.
  14. 컴퓨터 판독 가능 매체로서,
    프로그램에 대한 언어-중립 파일들의 컬렉션 - 언어-특정 파일들은 없음 - 과,
    상기 언어-중립 파일들의 컬렉션과 관련되고 상기 언어-중립 파일들의 컬렉션 내의 파일들이 타깃 컴퓨터 상에 설치되는 방법에 일부 이상 기초하여 생성되는 제1 설치 패키지와,
    상기 프로그램에 대한 언어-특정 파일들의 컬렉션과,
    상기 언어-특정 파일들의 컬렉션과 관련되고 상기 언어-특정 파일들의 컬렉션 내의 파일들이 상기 타깃 컴퓨터 상에 설치되는 방법에 일부 이상 기초하여 생성되는 제2 설치 패키지
    를 저장하고 있는 컴퓨터 판독 가능 매체.
  15. 제14항에 있어서, 상기 언어-중립 파일들의 컬렉션은 상기 컴퓨터 판독 가능 매체 상에 제1 파일로서 저장되고, 상기 언어-특정 파일들의 컬렉션은 상기 컴퓨터 판독 가능 매체 상에 제2 파일로서 저장되는 컴퓨터 판독 가능 매체.
  16. 제14항에 있어서, 상기 언어-중립 파일들의 컬렉션은 상기 제1 설치 패키지에 포함되어 있는 컴퓨터 판독 가능 매체.
  17. 제14항에 있어서,
    상기 프로그램에 대한 복수의 부가적인 언어-특정 파일들의 컬렉션들과,
    각각이 상기 복수의 부가적인 언어-특정 파일들의 컬렉션들 중 하나와 관련되고 상기 복수의 부가적인 언어-특정 파일들의 컬렉션들 중 상기 하나 내의 파일들이 상기 타깃 컴퓨터 상에 설치되는 방법에 일부 이상 기초하여 생성되는 복수의 부가적인 설치 패키지들
    을 더 포함하는 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서, 각각의 언어 특정 파일들의 컬렉션은 상기 프로그램을 상이한 언어로 로컬라이즈하는 컴퓨터 판독 가능 매체.
  19. 제14항에 있어서, 상기 프로그램은 일군의 프로그램의 일부이고,
    상기 일군의 프로그램의 일부인 제2 프로그램에 대한 언어-중립 파일들의 컬 렉션 - 언어-특정 파일들은 없음 - 과,
    상기 제2 프로그램에 대한 언어-중립 파일들의 컬렉션과 관련되고 상기 제2 프로그램에 대한 언어-중립 파일들의 컬렉션 내의 파일들이 상기 타깃 컴퓨터 상에 설치되는 방법에 일부 이상 기초하여 생성되는 제3 설치 패키지와,
    상기 제2 프로그램에 대한 언어-특정 파일들의 컬렉션과,
    상기 제2 프로그램에 대한 언어-특정 파일들의 컬렉션과 관련되고 상기 제2 프로그램에 대한 언어-특정 파일들의 컬렉션 내의 파일들이 상기 타깃 컴퓨터 상에 설치되는 방법에 일부 이상 기초하여 생성되는 제4 설치 패키지
    를 더 포함하는 컴퓨터 판독 가능 매체.
  20. 제14항에 있어서, 상기 언어-중립 파일들의 컬렉션은 상기 컴퓨터 판독 가능 매체 상에 상기 제1 설치 패키지와 동일한 폴더 내에 제1 압축 파일로서 저장되고, 상기 언어-특정 파일들의 컬렉션은 상기 컴퓨터 판독 가능 매체 상에 상기 제2 설치 패키지와 동일한 폴더 내에 제2 압축 파일로서 저장되는 컴퓨터 판독 가능 매체.
KR1020050102986A 2004-12-20 2005-10-31 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지 KR20060070412A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/019,082 US20060136907A1 (en) 2004-12-20 2004-12-20 Language-neutral and language-specific installation packages for software setup
US11/019,082 2004-12-20

Publications (1)

Publication Number Publication Date
KR20060070412A true KR20060070412A (ko) 2006-06-23

Family

ID=35695941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050102986A KR20060070412A (ko) 2004-12-20 2005-10-31 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지

Country Status (5)

Country Link
US (1) US20060136907A1 (ko)
EP (1) EP1672489A3 (ko)
JP (1) JP2006178947A (ko)
KR (1) KR20060070412A (ko)
CN (1) CN1794171B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140124774A (ko) * 2012-02-13 2014-10-27 마이크로소프트 코포레이션 소프트웨어 코드의 생성 및 캐싱 기법

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI283357B (en) * 2004-12-24 2007-07-01 Via Tech Inc Program installing method and system for multinational languages
US9274774B2 (en) * 2005-10-28 2016-03-01 Google Inc. Common installer server
US7962125B2 (en) * 2006-03-27 2011-06-14 Research In Motion Limited Wireless email communications system providing resource updating features and related methods
JP4143661B2 (ja) * 2006-09-11 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
US8122101B2 (en) * 2006-12-29 2012-02-21 Sap Ag Methods and systems for distributing software
US8200786B2 (en) * 2006-12-29 2012-06-12 Sap Ag Methods and systems for distributing software
US8200787B2 (en) * 2006-12-29 2012-06-12 Sap Ag Methods and systems for distributing software
US20080163200A1 (en) * 2006-12-29 2008-07-03 Volker Schulz Methods and systems for distributing software
US8429626B2 (en) 2007-02-15 2013-04-23 Microsoft Corporation Packaging content updates
US8010339B2 (en) * 2008-02-14 2011-08-30 Microsoft Corporation Storage device that provides efficient, updatable national language support for a mobile device
CN101984405A (zh) * 2010-10-11 2011-03-09 中兴通讯股份有限公司 一种软件版本升级方法、终端及系统
CN102004655B (zh) * 2010-11-25 2013-06-19 飞天诚信科技股份有限公司 自动安装驱动程序的装置及方法
ES2643127T3 (es) * 2011-04-01 2017-11-21 Telefónica Germany GmbH & Co. OHG Procedimiento para el manejo de una red de telecomunicación.
US20120310997A1 (en) * 2011-06-03 2012-12-06 Microsoft Corporation Customizing language for organization application installation
US20130014084A1 (en) * 2011-07-05 2013-01-10 Microsoft Corporation International Testing Platform
JP5720531B2 (ja) * 2011-10-31 2015-05-20 富士通株式会社 ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法
US10402795B2 (en) 2012-01-05 2019-09-03 Moneygram International, Inc. Prefunding for money transfer send transactions
US9569184B2 (en) * 2012-09-05 2017-02-14 Microsoft Technology Licensing, Llc Generating native code from intermediate language code for an application
US9104813B2 (en) * 2012-12-15 2015-08-11 International Business Machines Corporation Software installation method, apparatus and program product
EP2759930B1 (de) * 2013-01-28 2020-04-15 Siemens Aktiengesellschaft Verfahren zur Installation einer Software-Anwendung
US10755245B2 (en) * 2013-02-25 2020-08-25 Moneygram International, Inc. Money transfer system having location based language and dynamic receipt capabilities
US9766870B2 (en) * 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US20140359605A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package signing
US10192204B2 (en) 2013-08-01 2019-01-29 Moneygram International, Inc. System and method for staging money transfers between users having profiles
CN104932873B (zh) * 2014-03-19 2018-05-25 联发科技(新加坡)私人有限公司 档案处理方法以及电子装置
CN105528365A (zh) * 2014-09-30 2016-04-27 国际商业机器公司 用于管理可执行文件的方法和装置
JP6616655B2 (ja) * 2015-10-22 2019-12-04 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
US20170286082A1 (en) * 2016-03-31 2017-10-05 Microsoft Technology Licensing, Llc De-duplication during flashing of mobile devices
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US11636064B2 (en) 2021-07-13 2023-04-25 Microsoft Technology Licensing, Llc Compression of localized files

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1290457C (en) * 1988-03-30 1991-10-08 Richard Redpath National language support system without external files
JPH02247720A (ja) * 1989-03-20 1990-10-03 Fuji Xerox Co Ltd 多種言語表示方式
DE69430421T2 (de) * 1994-01-14 2003-03-06 Sun Microsystems Inc Verfahren und Gerät zur Automatisierung der Umgebungsanpassung von Rechnerprogrammen
US5678039A (en) * 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
US5613122A (en) * 1994-11-14 1997-03-18 Object Technology Licensing Corp. Object-oriented operating system
US5572668A (en) * 1995-02-07 1996-11-05 Oracle Corporation Method and apparatus for universal national language support program testing
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
JPH113338A (ja) * 1997-06-11 1999-01-06 Toshiba Corp 多言語入力システム、多言語入力方法及び多言語入力プログラムを記録した記録媒体
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6189146B1 (en) * 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6418554B1 (en) * 1998-09-21 2002-07-09 Microsoft Corporation Software implementation installer mechanism
US6389589B1 (en) * 1998-09-21 2002-05-14 Microsoft Corporation Class store schema
US6523166B1 (en) * 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
JP2000181650A (ja) * 1998-12-18 2000-06-30 Canon Inc データ処理装置およびデータ処理装置のドライバインストール方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
EP1186317B1 (en) * 2000-06-13 2009-12-02 Microsoft Corporation Multilingual user interface for an operating system
EP1202168A3 (en) * 2000-10-30 2006-08-23 Microsoft Corporation System and method for dynamically veryfying the compatibility of a user interface resource
US6859820B1 (en) * 2000-11-01 2005-02-22 Microsoft Corporation System and method for providing language localization for server-based applications
US7113904B2 (en) * 2001-03-30 2006-09-26 Park City Group System and method for providing dynamic multiple language support for application programs
EP1315086B1 (en) * 2001-11-27 2006-07-05 Sun Microsystems, Inc. Generation of localized software applications
US20030212982A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Message compiler for internationalization of application programs
AU2004220645C1 (en) * 2003-03-10 2010-11-18 Mudalla Technology, Inc. Dynamic configuration of a gaming system
JP2005050060A (ja) * 2003-07-31 2005-02-24 Canon Inc プッシュ型インストールシステム、情報処理装置、プッシュ型インストール方法およびプログラム
CN1261867C (zh) * 2003-12-16 2006-06-28 艾默生网络能源有限公司 软件中语言资源本地化的实现方法
TWI243319B (en) * 2004-06-18 2005-11-11 Mediatek Inc Multi-language system containing a language information module and related method capable of updating language information
US7630974B2 (en) * 2004-09-28 2009-12-08 Oracle International Corporation Multi-language support for enterprise identity and access management
US20060117304A1 (en) * 2004-11-23 2006-06-01 Microsoft Corporation Method and system for localizing a package
US20060136906A1 (en) * 2004-12-20 2006-06-22 Microsoft Corporation Software product installation facilitation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140124774A (ko) * 2012-02-13 2014-10-27 마이크로소프트 코포레이션 소프트웨어 코드의 생성 및 캐싱 기법
US10963233B2 (en) 2012-02-13 2021-03-30 Microsoft Technology Licensing, Llc Generating and caching software code

Also Published As

Publication number Publication date
US20060136907A1 (en) 2006-06-22
EP1672489A2 (en) 2006-06-21
JP2006178947A (ja) 2006-07-06
CN1794171B (zh) 2010-09-08
EP1672489A3 (en) 2007-05-23
CN1794171A (zh) 2006-06-28

Similar Documents

Publication Publication Date Title
KR20060070412A (ko) 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지
US9779111B2 (en) Method and system for configuration of virtualized software applications
US7356816B2 (en) Method and apparatus for multiplatform migration
US9864600B2 (en) Method and system for virtualization of software applications
US8166492B2 (en) Application compatibility using a hybrid environment
US6944846B2 (en) Algorithm for localization of a JAVA application using reflection API and a custom class loader
Richter Applied Microsoft. NET framework programming
US6353926B1 (en) Software update notification
US7490298B2 (en) Creating documentation screenshots on demand
US20120317561A1 (en) Automatic recognition of web application
US7533372B2 (en) Cross language migration
US20130067459A1 (en) Order-Independent Deployment Collections with Dependency Package Identifiers
US20130047150A1 (en) Software installation and process management support
US8387032B1 (en) Captive runtime deployment
KR20060047421A (ko) 테이블을 이용한 언어 로컬화
CN106605212A (zh) 在动态链接的运行时环境中的模块化共同版本管理
US20040230416A1 (en) Bifurcated operating system having a language neutral component
AU2006200694A1 (en) Method and system for creating, storing, managing and consuming culture specific data
US20090064197A1 (en) Driver installer usable in plural environments
WO2015019504A1 (ja) 検証方法、検証装置および検証プログラム
US6938259B2 (en) API to enforce internationalization
US20060136906A1 (en) Software product installation facilitation
US8006242B2 (en) Identification of software configuration data
US7904883B2 (en) Localizable object pattern
US20160291953A1 (en) Modular pdf application

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application