KR101061348B1 - 애플리케이션 패키징 장치 및 그 제어 방법 - Google Patents

애플리케이션 패키징 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR101061348B1
KR101061348B1 KR1020090030409A KR20090030409A KR101061348B1 KR 101061348 B1 KR101061348 B1 KR 101061348B1 KR 1020090030409 A KR1020090030409 A KR 1020090030409A KR 20090030409 A KR20090030409 A KR 20090030409A KR 101061348 B1 KR101061348 B1 KR 101061348B1
Authority
KR
South Korea
Prior art keywords
application
applications
package
application package
installation
Prior art date
Application number
KR1020090030409A
Other languages
English (en)
Other versions
KR20090107949A (ko
Inventor
하야또 마쯔가시따
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20090107949A publication Critical patent/KR20090107949A/ko
Application granted granted Critical
Publication of KR101061348B1 publication Critical patent/KR101061348B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

복수의 암호화된 애플리케이션에 포함된 사용자 라이센스 계약서들을 애플리케이션들로부터 추출한다. 이러한 방식으로, 복수의 암호화된 애플리케이션의 복호 완료를 대기하지 않고도 사용자 라이센스 계약서들에의 동의가 사용자로부터 취득된다.
Figure 112009021169080-pat00001
애플리케이션 패키징 장치, 암호화된 애플리케이션, 사용자 라이센스 계약서, 암호화, 복호

Description

애플리케이션 패키징 장치 및 그 제어 방법{APPLICATION PACKAGING DEVICE AND METHOD FOR CONTROLLING THE SAME}
본 발명은 복수의 애플리케이션을 패키징하는 애플리케이션 패키징 장치 및 애플리케이션 패키징 장치를 제어하기 위한 방법에 관한 것이다.
최근, 애플리케이션들이 불법으로 사용되는 것을 방지하기 위해, "라이센스"의 개념을 이용하여 왔다. 일반적으로, 단일 애플리케이션에 대하여 단일 라이센스가 부여되며, 애플리케이션 인스톨 처리의 시작 부분으로 그 부여된 라이센스의 세부사항을 입력함으로써 애플리케이션을 인스톨할 수 있다.
또한, 애플리케이션 패키지로서 복수의 애플리케이션을 동시에 인스톨하도록 복수의 애플리케이션을 포함하는 아카이브(archive)를 생성하기 위한 방법이 알려져 있다.
그러나, 라이센스들이 부여된 복수의 애플리케이션을 포함하는 애플리케이션 패키지를 인스톨하는 처리는, 각각의 애플리케이션들의 개별 인스톨들마다 각각의 라이센스들을 입력해야 하기 때문에, 복잡해진다.
이러한 문제점을 해결하기 위해, 일본 특허공개공보 제2006-163896호에서는, 복수의 라이센스 각각에 대하여, 애플리케이션 패키지에 포함된 복수의 애플리케이션을 특정하는 라이센스 데이터 및 각각의 애플리케이션 패키지에 대하여 라이센스 데이터의 정당성(validity)을 일괄하여 증명하는 데이터를 추가하기 위한 방법을 제안하였다. 이 방법에서는, 라이센스들이 부여된 애플리케이션들을 포함하는 애플리케이션 패키지를 인스톨하는 경우, 라이센스를 입력하는 처리를 한번만 수행한다.
일본 특허공개공보 제2006-163896호에 개시된 방법에서는, 애플리케이션 패키지를 인스톨하는 처리의 제1 단계에서 라이센스를 한번만 입력하기 때문에, 애플리케이션 패키지를 인스톨하는 처리가 쉽게 수행된다. 그러나, 인스톨 처리 시에, 라이센스에 추가하여, 그 밖의 항목들을 입력해야 한다.
예를 들어, EULA(End User License Agreement)가 일반적으로 사용되어 왔다. 이것은, 인스톨 전에 동의를 필요로 하는 상세한 라이센스 정보가 기입된 계약서이다. 인스톨 처리를 계속하기 위해, 사용자는 사용자 라이센스 계약서에 동의해야 한다.
또한, 각각의 애플리케이션에 고유한 인스톨 조건들(애플리케이션이 인스톨될 수 있게 하는 플랫폼의 버전 및 최소 요구 리소스 등)을 설정할 수 있다. 이 경우, 애플리케이션이 인스톨 조건들을 만족하지 않아 애플리케이션을 인스톨할 수 없다는 통지 또는 인스톨 처리가 계속된다는 통지를 송신할 수 있다.
일본 특허공개공보 제2006-163896호에 개시된 방법에서, 애플리케이션 패키지는 그 내부에 패키징된 복수의 애플리케이션을 단순히 포함하고 있을 뿐이며, 각 각의 애플리케이션에 대하여 인스톨 처리가 수행된다. 따라서, 각각의 애플리케이션에 대하여 인스톨 처리를 개시하는 경우, 애플리케이션이 인스톨 조건들을 만족하지 않는다는 통지를 송신할 수 있고, 인스톨을 계속할지를 판정하기 위해 수행되는 입력 동작이 필요할 수 있거나, 또는 사용자 라이센스 계약서에 동의하기 위해 수행되는 입력 동작이 필요할 수 있다. 그 결과, 인스톨 처리가 복잡하게 될 가능성이 존재한다. 예를 들어, 인스톨 처리 중에, 상당수의 문의들이 사용자에게 송신될 가능성이 존재한다.
현재, 각각의 애플리케이션이 개별적으로 열리고 인스톨 중에도 사용자가 사용자 라이센스 계약서에 동의해야 하는 것처럼, 멀티 애플리케이션 패키지로부터의 느리고 복잡한 소프트웨어 인스톨의 문제가 증가하고 있다. 이는, 각각의 애플리케이션에 대한 각각의 개별 라이센스의 동의는 그 애플리케이션이 복호될 때에만 가능하며, 사용자는 그것이 언제 발생할지 미리 알지 못하기 때문에, 인스톨에 걸리는 시간을 증가시킬 뿐만 아니라, 사용자가 그 전체 인스톨 처리동안 지키고 있어야 할 필요가 있다. 그러므로, 사용자는 애플리케이션 패키지를 간단히 인스톨 설정할 수 없고, 따라서 사용자 라이센스 계약서에 동의할 수 없으며, 그 장치가 간헐적인 간섭없이 소프트웨어를 인스톨할 수가 없다. 이는 사용자가 인스톨하는데 훨씬 많은 시간을 소모하게 하며, 훨씬 더 복잡하게 한다.
본 발명은, 복수의 애플리케이션을 개별적으로 복호하도록 구성된 복호 수단, 복호된 애플리케이션들에 포함된 사용자 라이센스 계약서들을 복제하도록 구성된 복제 수단, 및 사용자 라이센스 계약서들의 복제본들과 아직 복호되지 않은 애플리케이션들을 패키징하도록 구성된 패키징 수단을 포함하는 애플리케이션 패키징 장치를 제공한다.
본 발명의 추가의 특징들은 첨부된 도면들을 참조하여 이하의 예시적인 실시예들의 설명으로부터 명확해질 것이다.
본 발명의 애플리케이션 패키징 장치는, 사용자가, 애플리케이션 패키지의 인스톨 설정, 사용자 라이센스 계약서에의 동의, 및 그 장치가 간헐적인 간섭없이 소프트웨어를 인스톨하도록 하는 것이 가능하므로, 사용자들에게 인스톨 시간을 줄여주고 인스톨을 간단히 행할 수 있다는 효과가 있다.
이하, 첨부 도면들을 참조하여 본 발명을 수행하기 위한 최량의 형태들을 설명한다.
(제1 실시예)
<화상 형성 장치(1)>
도 1은 본 발명의 제1 실시예에 따른 화상 형성 장치(1)를 도시하는 블록도이다.
화상 형성 장치(1)는 인쇄 장치(11) 및 화상 처리 장치(12)를 포함한다.
화상 처리 장치(12)는, CPU(121), 직접 기억부(122)(예를 들어, RAM(Random Access Memory)), 간접 기억부(123)(예를 들어, ROM(Read-Only Memory) 또는 HDD(Hard Disk Drive)), 사용자 인터페이스(124) 및 외부 인터페이스(125)를 포함한다.
직접 기억부(122)는 CPU(121)와 데이터를 직접 송수신한다. 간접 기억부(123)는 직접 기억부(122)를 통해 CPU(121)와 데이터를 송수신한다.
직접 기억부(122)는 다양한 애플리케이션 프로그램들 및 플랫폼 프로그램들을 기억한다.
사용자 인터페이스(124)는, 키보드, 마우스 및 디스플레이를 포함하며, 사용자가 입력한 지시를 접수하고, 데이터(화면 데이터)를 표시할 수 있다.
외부 인터페이스(125)는 외부 장치와 데이터를 송수신하는데 사용된다. 외부 장치의 예들은, 외장 HDD 또는 외장 USB 메모리 등의, 외장 기억 장치 및 네트워크를 통해 접속된 호스트 컴퓨터 또는 화상 형성 장치 등의 별도로 제공된 장치를 포함한다.
<플랫폼부(13)>
CPU(121)는 간접 기억부(123)에 기억된 플랫폼 프로그램들을 직접 기억부 (122)에 전달하도록(또는 기억시키도록) 특정한 동작을 수행한다. 전달 후에,CPU(121)는, CPU(121)가 플랫폼 프로그램들을 실행할 수 있는 상태에 도달한다.
본 실시예에서는, CPU(121)가 플랫폼 프로그램들을 실행할 수 있는 상태를, 플랫폼부(13)를 기동하는 상태로 지칭한다.
본 실시예에서 이하의 구성요소들: CPU(121); 플랫폼 프로그램들을 기억하고 있는 직접 기억부(122)의 일부분의 영역; CPU(121)가 플랫폼 프로그램들을 처리한 경우 취득된 정보(계산 결과 등)를 기억하는 영역(직접 기억부(122)의 일부분 및 간접 기억부(123)의 일부분을 포함함)을 포함하는 구성을 갖는 수단을 플랫폼부(13)로서 지칭하는 것에 유의한다.
<애플리케이션 프로그램>
플랫폼부(13)는 간접 기억부(123)에 기억된 애플리케이션 프로그램들 중에서 제1 애플리케이션 프로그램을 직접 기억부(122)에 전달한다(기억시킨다). 플랫폼부(13)는, 전달을 완료한 후에, 제1 애플리케이션 프로그램을 실행할 준비가 된 상태에 도달한다. 본 실시예에서는, 이 동작을 플랫폼부(13)에 의해 수행되는 제1 애플리케이션 프로그램을 기동하는 동작으로 지칭한다.
한편, 플랫폼부(13)는 직접 기억부(122)로부터 제1 애플리케이션 프로그램을 삭제할 수 있다. 본 실시예에서는, 이 동작을 플랫폼부(13)에 의해 수행되는 제1 애플리케이션 프로그램을 정지시키는 동작으로 지칭한다.
플랫폼부(13)는, 외부 인터페이스(125)를 통해 제1 애플리케이션 프로그램을 나타내는 데이터를 수신하고 그 데이터를 기억한다. 여기서, 플랫폼부(13)는 제1 애플리케이션 프로그램의 존재에 대한 정보를 기억하고, 제1 애플리케이션 프로그램을 그 제어하에 둔다. 본 실시예에서는, 이 동작을 플랫폼부(13)에 제1 애플리케이션 프로그램을 인스톨하는 동작으로 지칭한다.
한편, 플랫폼부(13)는 플랫폼부(13)에 포함된 간접 기억부(123)로부터 제1 애플리케이션 프로그램을 삭제할 수 있다. 본 실시예에서는, 이 동작을 플랫폼부(13)에 의해 수행되는 제1 애플리케이션 프로그램을 언인스톨하는 동작으로 지칭한다. 플랫폼부(13)가 제1 애플리케이션 프로그램을 언인스톨하려고 할 때, 제1 애플리케이션 프로그램이 기동 상태에 있는 경우, 제1 애플리케이션 프로그램을 정지한 후에 제1 애플리케이션 프로그램을 언인스톨하는 동작을 수행한다는 것에 유의한다.
이상의 설명은 제1 애플리케이션 프로그램을 예로서 설명하였지만,그 밖의 애플리케이션 프로그램들(예를 들어, 제2 애플리케이션 프로그램)을 이용하는 경우에도 동일한 결과들이 취득된다는 것이 당업자에게 명확하게 이해될 것이다.
<패키징 장치(애플리케이션 패키징 장치)(2)>
도 2는 본 발명의 제1 실시예에 따른 패키징 장치(2)의 구성을 도시하는 블록도이다.
패키징 장치(2)는, 수신 수단(21), 송신 수단(22), 패키지 라이센스 생성기(23) 및 애플리케이션 패키지 생성기(24)를 포함한다. 패키지 라이센스 생성기(23) 및 애플리케이션 패키지 생성기(24)는 상세하게 후술된다.
패키징 장치(2)는 퍼스널 컴퓨터 또는 워크스테이션 등의 컴퓨터에 대응한다. 컴퓨터는 주요 구성으로서 CPU, 주 기억 장치, 외부 기억 장치, 및 외부 인터페이스를 포함한다. 외부 기억 장치는 OS(operating system) 및 다양한 프로그램들을 기억한다. 주 기억 장치는, 외부 기억 장치로부터 판독된 OS 및 CPU에 의해 실행될 다양한 프로그램들을 기억한다.
본 예시적인 실시예에서, 다양한 프로그램들은 패키징 프로그램을 포함한다는 것에 유의한다. 패키징 장치(2)는 패키징 프로그램의 내용에 따라 전술된 수단들을 실현한다.
<애플리케이션(3)>
도 3은 본 발명의 제1 실시예에 따른 애플리케이션(3)의 구성을 도시하는 블록도이다.
애플리케이션(3)은 비암호화 영역(31) 및 암호화 영역(32)을 포함한다. 비암호화 영역(31)은 후술될 애플리케이션 정의(311)를 기억한 특정한 디렉토리("MANIFEST"로 지칭됨)를 포함한다. 또한, 암호화 영역(32)은, 후술될 사용자 라이센스 계약서(321) 및 전술된 애플리케이션 프로그램들과 유사한 애플리케이션 프로그램(322)을 기억한 특정한 디렉토리("EULA"로 지칭됨)를 포함한다.
암호화 영역(32)은, 후술될 라이센스가 정당할 경우에만 복호되도록 구성되어야 하며, 임의의 암호화 방식을 사용할 수 있다. 즉, 정당한 라이센스는 암호화 영역을 복호하는데 사용되는 정보(예를 들어, 키)를 포함한다.
<애플리케이션 정의(311)>
도 4는 본 발명의 제1 실시예에 따른 애플리케이션 정의(311)의 구성을 나타내는 리스트를 도시한다.
애플리케이션 정의(311)는 애플리케이션 ID(41), 제품 버전(42), 애플리케이션 명(43), 인스톨 가능 플랫폼(44), 및 예상 소비 리소스 사이즈(45)를 포함한다. 애플리케이션 ID(41)는, 복수의 애플리케이션 중에서 애플리케이션(3)을 고유하게 식별하는데 사용되는 식별자이다. 제품 버전(42)을 애플리케이션 ID(41)와 조합하여 사용하는 경우, 애플리케이션(3)의 버전은 특정화될 수 있다. 애플리케이션 명(43)은 애플리케이션 명을 나타내는 문자열이다.
인스톨 가능 플랫폼(44)은 애플리케이션(3)의 인스톨을 가능하게 하는 플랫폼 프로그램을 나타낸다. 인스톨 가능 플랫폼(44)은, 예를 들어, 플랫폼 프로그램의 유형과 버전, 장치의 고유 ID, 및 플랫폼 프로그램에 포함되어야 하는 기능을 나타낸다.
예상 소비 리소스 사이즈(45)에서는, 애플리케이션(3)을 인스톨할 때 또는 애플리케이션(3)을 인스톨한 후에 필요한 리소스 사이즈가 정의되어 있다. 예상 소비 리소스 사이즈(45)의 예들은, 소비될 간접 기억부(123)의 영역의 사이즈 및 소비될 직접 기억부(122)의 영역의 사이즈를 포함한다.
<라이센스(5)>
도 5는 본 발명의 제1 실시예에 따른 라이센스(5)의 구성을 도시하는 블록도이다.
라이센스(5)는, 라이센스 ID(51), 애플리케이션 ID(52) 및 라이센스 정보(53)를 포함한다.
라이센스 ID(51)는 라이센스(5)를 식별하는데 사용되는 고유 ID이다. 애플리케이션 ID(52)는 라이센스(5)가 부여된 애플리케이션(3)의 애플리케이션 ID(41)에 대한 정보를 기억한다. 라이센스 정보(53)는, 라이센스(5)의 라이센스 정의 (예를 들어, 라이센스(5)의 만료일자 및 라이센스(5)가 부여될 수 있는 횟수) 및 애플리케이션(3)의 암호화 영역(32)을 복호하는데 사용되는 정보를 기억한다.
애플리케이션 패키지(6)
도 6은 본 발명의 제1 실시예에 따른 애플리케이션 패키지(6)의 구성을 도시하는 블록도이다.
애플리케이션 패키지(6)는 후술될 애플리케이션 패키지 생성기(24)에 의해 생성된다. 애플리케이션 패키지(6)는 복수의 애플리케이션(611 내지 613) 및 애플리케이션들(611 내지 613)에 대한 복수의 사용자 라이센스 계약서(621 내지 623)를 포함한다.
애플리케이션 패키지 생성기(24)에 의해 수행되는 애플리케이션 패키지(6)를 생성하는 처리는 후술된다.
<패키지 라이센스(7)>
도 7은 본 발명의 제1 실시예에 따른 패키지 라이센스(7)의 구성을 도시하는 블록도이다.
패키지 라이센스(7)는 패키지 라이센스 생성기(23)를 사용하여 생성된 복수의 라이센스(예를 들어, 71, 72, 73)를 패키징함으로써 취득된다. 패키지 라이센스(7)는 복수의 라이센스(71 내지 73)를 포함한다.
<애플리케이션 패키지(6)의 생성 처리>
도 8의 흐름도를 참조하면, 애플리케이션 패키지 생성기(24)에 의해 수행되는 애플리케이션 패키지(6)를 생성하는 처리(단계 S802 내지 단계 S807) 및 단계 S801 및 단계 S808에서의 동작들을 설명한다. 본 실시예에서, 단계 S802 내지 단 계 S807의 모든 동작들은 자동으로 수행되며, 사용자가 입력한 지시는 받아들여 지지 않는다. 구체적으로, 단계 S802의 복호 동작 내지 단계 S807의 통합 애플리케이션 패키지를 취득하는 동작을 수행하는 중에는, 사용자가 입력한 지시는 받아들여 지지 않는다. 이 사실은 제2 실시예에도 적용된다(즉, 도 14의 단계 S1402 내지 단계 S1410의 모든 동작들은 자동으로 수행됨).
애플리케이션 패키지 생성기(24)는 패키지 라이센스 생성기(23)로부터 패키징될 복수의 애플리케이션(3)을 수신한다. 또한, 애플리케이션 패키지 생성기(24)는 단계 S801의 애플리케이션(3)에 대응하는 복수의 라이센스(5)를 포함하는 패키지 라이센스(7)를 수신한다.
단계 S802에서, 애플리케이션 패키지 생성기(24)는 수신된 애플리케이션(3)들 각각을 복호한다.
이어서, 애플리케이션 패키지 생성기(24)는 복호된 애플리케이션들(3) 중 하나를 선택하고, 단계 S803에서, 그 선택된 애플리케이션(3)이 사용자 라이센스 계약서(321)를 포함하고 있는지를 판정한다. 포함하고 있으면, 처리는 단계 S804로 진행한다. 사용자 라이센스 계약서(321)는 애플리케이션(3)의 ("EULA"로 지칭되는 디렉토리 등의) 특정한 디렉토리에 기억되어 있으므로, 선택된 애플리케이션(3)이 사용자 라이센스 계약서(321)를 포함하고 있는지에 대한 판정은, 애플리케이션 패키지 생성기(24)를 사용하여 사용자 라이센스 계약서(321)에 대한 특정한 디렉토리를 검색함으로써 실행된다. 사용자 라이센스 계약서(321)의 파일 명의 형식은 바람직하게 결정된다.
다음으로, 단계 S804에서, 애플리케이션 패키지 생성기(24)는 복호된 애플리케이션(3)에 포함된 사용자 라이센스 계약서(321)를 복제한다. 단계 S805에서, 애플리케이션 패키지 생성기(24)는 사용자 라이센스 계약서(321)의 복제본의 파일 명에, 사용자 라이센스 계약서(321)를 고유하게 특정하는데 사용되는 식별자로서 기능하는 애플리케이션 ID(41)를 부여한다. 부여된 애플리케이션 ID(41)는 원본의 애플리케이션(3)을 특정하는데 사용된다. 또한, (예를 들어, 애플리케이션(3)이 다양한 언어들과 호환가능한 경우) 애플리케이션(3)은 복수의 사용자 라이센스 계약서(321)를 포함할 수 있다. 이 경우, 모든 사용자 라이센스 계약서(321)들이 복제되고, 사용자 라이센스 계약서(321)들의 모든 복제본들에 ID들을 부여한다.
단계 S801에서 수신된 모든 애플리케이션들(3)에 대하여 전술된 동작들을 수행한 후에, 단계 S807에서 애플리케이션 패키지 생성기(24)는 후술되는 동작을 수행한다. 즉, 단계 S802에서 아직 복호 동작을 행하지 않은 모든 애플리케이션들(3)과 단계 S804에서 취득되고 단계 S805에서 ID들이 부여된 복수의 사용자 라이센스 계약서(321)의 복제본들을 패키징한다. 이러한 방법으로, 애플리케이션 패키지(6)를 생성한다.
이어서, 애플리케이션 패키지 생성기(24)는 생성된 애플리케이션 패키지(6)와 패키지 라이센스(7)를 송신 수단(22)으로 송신한다.
단계 S802 및 단계 S807에서, 애플리케이션 패키지 생성기(24)는 대응하는 암호화된 애플리케이션(3)으로부터 사용자 라이센스 계약서(321)를 추출한다는 것에 유의한다. 이어서, 추출된 사용자 라이센스 계약서(321)와 애플리케이션(3)을 포함하는 애플리케이션 패키지(6)를 취득한다.
다시 말하면, 단계 S802 내지 단계 S807에서, 애플리케이션 패키지 생성기(24)는 아직 복호되지 않은 애플리케이션들(3)을 포함하는 영역들과는 다른 영역들에, 암호화되어 있는 애플리케이션들(3)로부터의 사용자 라이센스 계약서(321)를 포함하는 애플리케이션 패키지(6)를 생성한다.
<인스톨 관리 테이블(10)>
도 10은 인스톨 관리 테이블(1000)의 구성을 나타내는 리스트를 도시한다.
인스톨 관리 테이블(1000)은 플랫폼부(13)가 인스톨 처리를 수행하는 경우에 사용되며, 인스톨 처리를 종료한 후에 파기된다. 인스톨 관리 테이블(1000)은, 애플리케이션 ID(1001), 제품 버전(1002), 및 애플리케이션 명(1003)을 포함하며, 이들은 각각의 애플리케이션(3)의 애플리케이션 정의(311)에 따라 설정된다. 인스톨 관리 테이블(1000)은 인스톨-조건 확인 결과(1004), 라이센스 동의 결과(1005)를 더 포함하며, 이들은 상세하게 후술된다.
인스톨 관리 테이블(1000)은, 애플리케이션(3)에 대응하는 라이센스(5)를 참조하는데 사용되는 애플리케이션(1006)과 라이센스(1007)를 더 포함한다.
<애플리케이션 패키지(6)의 인스톨 처리>
이하, 도 9a 및 도 9b의 흐름도를 참조하여 플랫폼부(13)에 의해 수행되는 애플리케이션 패키지(6)를 인스톨하는 처리를 설명한다.
본 예시적인 실시예에서, 인스톨 처리는 애플리케이션 프로그램들의 인스톨과 그 인스톨에 수반되는 처리를 포함한다는 것에 유의한다. 구체적으로,단계 S901의 동작 내지 단계 S915의 동작이 인스톨 처리에 포함되며, 보다 구체적으로는, 단계 S914에서 인스톨을 수행한다. 즉, 애플리케이션 프로그램들의 인스톨은, 단계 S901 내지 단계 S915에서 수행되는 애플리케이션들을 인스톨하는 처리에서 수행된다.
단계 S901에서, 플랫폼부(13)는 외부 인터페이스(125)로부터 애플리케이션 패키지(6) 및 패키지 라이센스(7)를 수신한다. 다시 말하면, 플랫폼부(13)는 외부 인터페이스(125)를 통해 애플리케이션 패키지(6) 및 패키지 라이센스(7)를 수신한다. 플랫폼부(13)는 외부 인터페이스(125)를 통해 접속된 장치를 사용하는 사용자가 발행한 지시와 애플리케이션 패키지(6)를 인스톨하는 처리를 수행하기 위한 요청을 나타내는 지시를 동시에 수신한다는 것이 명확하다.
이어서, 단계 S902에서, 플랫폼부(13)는 후술되는 처리를 수행한다. 플랫폼부(13)는 애플리케이션 패키지(6)에 포함된 모든 애플리케이션들(3)에 대응하는, 전술된 애플리케이션 정의(311)와 유사한, 복수의 애플리케이션 정의(311)를 수신한다. 플랫폼부(13)는 수신한 패키지 라이센스(7)로부터 애플리케이션들(3)에 대응하는 라이센스(5)를 취득한다. 이어서, 플랫폼부(13)는 애플리케이션(3), 애플리케이션 정의(311), 및 라이센스(5) 등의 정보에 따라 인스톨 관리 테이블(1000)을 생성한다. 구체적으로, 플랫폼부(13)는 인스톨 관리 테이블(1000)에 포함될 인스톨-조건 확인 결과(1004) 및 라이센스 동의 결과(1005) 이외의 정보(애플리케이션 정의(311)에 대한 정보 및 라이센스(5)에 대한 정보)를 기억한 인스톨 관리 테이블(1000)을 생성한다.
플랫폼부(13)는 인스톨 관리 테이블(1000)의 등록 순서대로 이하의 동작들을 수행한다.
먼저, 단계 S903에서, 플랫폼부(13)는 처리될 애플리케이션들(3) 중 대응하는 것에 포함된 비암호화 영역(31)으로부터 애플리케이션 정의들(311) 중 하나를 수신하고, 취득된 라이센스들(5) 중 하나로부터 라이센스 정보(53)를 수신한다. 이어서, 단계 S904에서, 플랫폼부(13)는 애플리케이션 정의(311) 및 라이센스 정보(53) 등의 정보에 따라 라이센스(5) 및 인스톨 조건들을 확인하는 처리를 수행한다. 처리 결과로서, 단계 S905에서, 인스톨이 가능하다고 판정되는 경우, 인스톨 관리 테이블(1000)에 포함된 인스톨-조건 확인 결과(1004)는, 인스톨이 가능함을 나타내는 정보로 갱신된다. 한편, 단계 S921에서, 인스톨 조건들을 확인하는 처리의 결과가 인스톨이 가능하지 않음을 나타내는 경우, 플랫폼부(13)는 외부 인터페이스(125)에 인스톨이 가능하지 않음을 나타내는 정보를 통지하고, 외부 인터페이스(125)를 통해 사용자로부터의 지시를 요구한다. 그 후에, 단계 S921에서, 플랫폼부(13)는 외부 인터페이스(125)를 통해 송신된, 사용자가 입력한 지시를 확인한다(즉, 플랫폼 부(13)는 인스톨 처리를 계속할지를 판정함). 단계 S905에서, 인스톨 처리를 계속하는 것으로 판정하는 경우(즉, 지시가 인스톨 처리의 계속을 나타낸다고 판정되는 경우), 플랫폼부(13)는 인스톨 관리 테이블(1000)에 포함된 인스톨-조건 확인 결과(1004)를 인스톨이 가능하지 않음을 나타내는 정보로 갱신한다. 한편, 단계 S931에서, 인스톨 처리를 계속하지 않는 것으로 판정하는 경우(즉, 지시가 인스톨 처리의 중지를 나타내는 것으로 판정되는 경우), 인스톨 처리를 중단 한다.
단계 S906에서, 플랫폼부(13)는 인스톨 관리 테이블(1000)에 등록되어 있는 모든 애플리케이션들(3)이 처리될 때까지 전술된 동작들을 반복하여 수행한다.
다음으로, 플랫폼부(13)는, 애플리케이션들(3) 중에서, 인스톨이 가능함을 나타내는 정보에 대응하는 애플리케이션(3)에 대해서만 후술되는 동작들을 수행한다.
플랫폼부(13)는, 애플리케이션 패키지(6)가 애플리케이션들(3)의 영역 이외의 영역에서 처리될 애플리케이션들(3) 중 하나의 사용자 라이센스 계약서(321)의 복제본을 기억하고 있는지를 판정한다. 기억하고 있는 경우, 단계 S907에서 플랫폼부(13)는 사용자 라이센스 계약서(321)의 복제본을 취득한다. 한편, 기억하고 있지 않은 경우, 단계 S910에서, 플랫폼부(13)는 인스톨 관리 테이블(1000)에 포함된 라이센스 동의 결과(1005)를 관련 없음을 나타내는 정보로 갱신한다. 단계 S909에서, 애플리케이션 패키지(6)가 복제본을 기억하고 있는 경우, 플랫폼부(13)는 취득된 사용자 라이센스 계약서(321)를 외부 인터페이스(125)로 송신한다. 이어서, 단계 S909에서, 플랫폼부(13)는, 사용자가 통지된 사용자 라이센스 계약서(321)에 동의함을 나타내는 정보 또는 통지된 사용자 라이센스 계약서(321)에 동의하지 않음을 나타내는 정보를 외부 인터페이스(125)를 통해 사용자로부터 수신한다. 사용자가 사용자 라이센스 계약서(321)에 동의하는 경우, 인스톨 관리 테이블(1000)에 포함된 라이센스 동의 결과(1005)는 동의를 나타내는 정보로 갱신된다. 갱신 후에, 처리될 애플리케이션은 단계 S912, 단계 S913, 및 단계 S915의 동작들 을 통해 인스톨된다. 한편, 사용자가 사용자 라이센스 계약서 321에 동의하지 않는 경우, 단계 S922에서, 플랫폼부(13)는 사용자가 외부 인터페이스(125)를 통해 인스톨 처리를 계속할지를 즉시 판정하게 한다. 인스톨 처리를 계속하는 것으로 판정하는 경우, 단계 S910에서, 플랫폼부(13)는 인스톨 관리 테이블(1000)에 포함된 라이센스 동의 결과(1005)를 동의하지 않음을 나타내는 정보로 갱신한다. 한편, 인스톨 처리를 계속하지 않는 것으로 판정하는 경우, 단계 S931에서, 인스톨 처리를 중단한다.
이어서, 단계 S911에서, 플랫폼부(13)는, 모든 애플리케이션들(3) 중에서, "인스톨-조건 확인 결과(1004)가 인스톨이 가능함을 나타내는 정보에 대응하는" 애플리케이션(3)에 대해서만 전술된 동작들을 반복해서 수행한다. 그 후에, 플랫폼부(13)는, 인스톨 관리 테이블(1000)에 등록되어 있는 모든 애플리케이션들(3) 중에서, "인스톨-조건 확인 결과(1004)가 인스톨이 가능함을 나타내는 정보에 대응하고", "그 라이센스 동의 결과(1005)가, 관련 없음을 나타내는 정보 또는 동의를 나타내는 정보에 대응하는" 애플리케이션들(3)에 대하여 후술하는 동작들을 수행한다.
단계 S913에서, 플랫폼부(13)는 암호화된 애플리케이션들(3) 중 하나를 복호한다. 단계 S914에서, 애플리케이션(3)에 포함된 애플리케이션 프로그램(322)을 인스톨한다. 단계 S915에서, 처리될 모든 애플리케이션들(3)에 포함된 애플리케이션 프로그램들(322)이 인스톨될 때까지 동작들을 반복해서 수행한 후에, 인스톨 처리를 종료한다.
이하에서는, 단계 S914에서의 동작을 상세하게 설명한다.
먼저, 단계 S914에서, "단계 S910에서 그 라이센스 동의 결과들(1005)이 동의를 나타내는 정보로 갱신된 애플리케이션들(3)" 중 하나에 포함된 애플리케이션 프로그램을 인스톨한다. "단계 S910에서 라이센스 동의 결과(1005)가 동의를 나타내는 정보로 갱신되지 않는 애플리케이션들"에 포함된 애플리케이션 프로그램들은 인스톨되지 않는다는 것에 유의한다.
또한, 단계 S913에서 복수의 애플리케이션들(3)을 복호함으로써 취득된 라이센스 동의 결과들(1005)은 단계 S914에서 무시된다. 이것은, 라이센스 계약서들에 대해서는, 단계 S910 및 단계 S911에서 사용자 라이센스 계약서(321)의 복제들이 확인되었기 때문이다.
<인스톨 조건들을 확인하기 위한 방법>
이하, 플랫폼부(13)에 의해 수행되는 인스톨 처리에서 인스톨 조건들을 확인하기 위한 방법을 설명한다.
플랫폼부(13)는 애플리케이션 정의(311)에 의해 정의된 정보, 플랫폼부(13)에 대한 정보 및 화상 처리 장치(12)에 대한 정보를 서로 비교함으로써 인스톨 조건들을 확인한다. 특히, 애플리케이션 정의(311)에 정의되어 있는 인스톨 가능 플랫폼(44) 및 예상 소비 리소스 사이즈(45)를 사용한다.
플랫폼 프로그램의 버전이 2번째 버전이며, 화상 처리 장치(12)의 간접 기억부(123)의 잔여 사이즈가 100MB라고 가정하고, 또한, 고유 ID가 "#####0000000000"이고, 제공된 기능의 고유 ID가 "인쇄 기능의 버전이 1번째 버전이고, 사용자 인터 페이스(124)의 디스플레이 사이즈가 SVGA(Super Video Graphic Array)에 대응함"을 나타낸다고 가정하면, 이하와 같이 판정된다.
플랫폼부(13)는, 애플리케이션들(3) 중 하나가 인스톨되는 인스톨 가능 플랫폼(44)의 플랫폼 프로그램의 버전이 1번째 버전인 경우, 인스톨이 가능하지 않다고 판정한다. 즉, 플랫폼 프로그램이 애플리케이션(3)을 인스톨할 수 있는 플랫폼의 버전에 대응하는지의 여부에 따라 판정을 수행한다.
또한, 플랫폼부(13)는, 애플리케이션(3)에 의해 소비될 간접 기억부(123)의 영역의 사이즈인 애플리케이션(3)의 예상 소비 리소스 사이즈(45)가 120MB인 경우, 인스톨이 가능하지 않다고 판정한다. 즉, 장치가 애플리케이션(3)에 의해 소비될 리소스들보다 크거나 같은 잔여 리소스들을 갖는지의 여부에 따라 판정을 수행한다.
플랫폼부(13)는 애플리케이션(3)을 인스톨할 수 있는 인스톨 가능 플랫폼(44)을 포함하는 장치의 고유 ID가 "#####0000000000"인 경우, 인스톨이 가능하지 않다고 판정한다. 즉, 고유 ID가 애플리케이션(3)을 인스톨할 수 있는 장치를 위한 고유 ID에 대응하는지의 여부에 따라서 판정을 수행한다.
또한, 플랫폼부(13)는, 애플리케이션(3)을 인스톨할 수 있는 인스톨 가능 플랫폼(44)의 장치의 기능의 고유 ID가 "인쇄 기능의 2번째 버전"을 나타내는 경우, 인스톨이 가능하지 않다고 판정한다. 즉, 장치가 인스톨을 위한 기능을 갖는지의 여부에 따라 판정을 수행한다.
전술된 바와 같이, 플랫폼부(13)는 애플리케이션 정의(311)에 정의되어 있는 정보와 장치에 대한 정보를 비교함으로써 인스톨이 가능한지를 판정한다.
또한, 본 실시예에서 애플리케이션 패키지(6)는 암호화되어 있지 않다. 그러나, 애플리케이션(3)과 마찬가지로, 애플리케이션 패키지(6)는 복수의 사용자 라이센스 계약서(621 내지 623) 및 복수의 암호화된 애플리케이션(611 내지 613)을 기억하는 암호화 영역을 포함할 수 있다. 이 경우, 사용자 라이센스 계약서들의 복제본들은, 애플리케이션 패키지 생성기(24)에 의해 단계 S807과 단계 S808에서 암호화된다는 것이 명확하다. 마찬가지로, 복수의 암호화된 애플리케이션(3)은 애플리케이션 패키지 생성기(24)에 의해, 단계 S807과 단계 S808에서 다시 암호화된다. 즉, 애플리케이션(3)은 2번 암호화된다. 따라서, 2번 암호화된 애플리케이션(3)을 암호화 영역에 기억시킴으로써 사용자 라이센스 계약서들이 템퍼링되는 것을 방지한다.
단계 S807과 단계 S808에서 암호화를 수행하는 경우, 복호에 사용된 정보(예를 들어, 키)를 단계 S801에서 취득한 패키지 라이센스(7)에 기억시킨다는 것에 유의한다.
전술된 바와 같이, 제1 실시예에 따르면, 애플리케이션 패키지를 인스톨하는 경우, 인스톨 조건들을 확인하는 동작, 라이센스를 확인하는 동작, 및 사용자 라이센스 계약서에 동의하는 동작을, 인스톨 처리의 제1 단계에서 총괄적으로 수행할 수 있다. 이러한 방법으로, 예를 들어 인스톨 처리 중에, 사용자 라이센스 계약서에의 동의를 나타내는 지시 및 인스톨 처리의 계속을 나타내는 지시를 입력하는 동작의 필요성으로 인해, 인스톨 처리가 복잡해지는 것을 방지한다.
(제2 실시예)
제2 실시예에서, 제1 실시예의 구성의 부분들과 동일한 구성의 부분들의 설명들 및 제1 실시예의 구성요소들과 동일한 구성요소들의 설명들은 생략한다. 제1 실시예의 구성의 부분들과 동일한 구성의 부분들 및 제1 실시예의 구성요소들과 동일한 구성요소들에 대해서는, 제1 실시예의 참조 번호들과 동일한 참조 번호들을 사용한다.
제1 실시예와 제2 실시예의 상당히 다른 몇가지 점들을 후술한다. 제2 실시예에의 애플리케이션 패키지가 애플리케이션 패키지 정의를 포함한다는 점에서, 제2 실시예는 제1 실시예와 상이하다(도 11 참조). 제1 실시예의 애플리케이션 패키지는 애플리케이션 패키지 정의를 포함하지 않는다(도 6 참조).
따라서, 제2 실시예에서, 개별 애플리케이션 정의들을 확인하는 것(도 9a 및 도 9b에서 단계 S904와 단계 S921 사이에 배치된 마름모꼴을 참조)은 필요하지 않고, 애플리케이션 패키지 정의를 확인하는 것(도 15에서 단계 S1503과 단계 S1521 사이에 배치된 마름모꼴을 참조)만이 필요하다.
또한, 제2 실시예에서, 애플리케이션 패키지 정의를 포함하는 애플리케이션 패키지를 생성하는 경우, 애플리케이션 정의들에 포함된 정보의 유형들에 따라 연산들(합산(addition)들 및 적산(multiplication)들)을 수행한다. 애플리케이션 패키지 정의를 생성하지 않는 제1 실시예에서는 이러한 연산들을 참조하지 않는다.
<애플리케이션 패키지(1100)>
도 11은 본 발명의 제2 실시예에 따른 애플리케이션 패키지(1100)의 구성을 도시하는 블록도이다.
애플리케이션 패키지(1100)는 후술될 애플리케이션 패키지 생성기(24)에 의해 생성된다. 애플리케이션 패키지(1100)는 비암호화 영역(1101)과 암호화 영역(1102)을 포함한다. 후술될 애플리케이션 패키지 정의(1103)는 비암호화 영역(1101) 내의 특정한 디렉토리("MANIFEST"로 지칭된 디렉토리)에 기억되어 있다. 또한, 복수의 애플리케이션(1111 내지 1113)에 대응하는 복수의 애플리케이션의 사용자 라이센스 계약서(1121 내지 1123)는 비암호화 영역(1102)에 기억되어 있다.
암호화 영역(1102)은, 후술될 패키지 라이센스가 정당한 경우에만 암호화 영역을(1102)을 복호하는 한, 임의의 방법으로 암호화된다. 즉, 정당한 라이센스는 암호화 영역(1102)을 복호하는데 사용되는 정보(예를 들어, 키)를 포함한다.
<애플리케이션 패키지 정의>
도 12는 본 발명의 제2 실시예에 따른 애플리케이션 패키지 정의(1103)의 구성을 나타내는 리스트를 도시한다.
애플리케이션 패키지 정의(1103)는 애플리케이션 패키지 ID(1201), 제품 버전(1202), 애플리케이션 패키지 명(1203), 인스톨 가능 플랫폼(1204), 및 예상 소비 리소스 사이즈(1205)를 포함한다. 애플리케이션 패키지 정의(1103)는 애플리케이션 패키지(1100)에 포함된 모든 애플리케이션들(3)의 애플리케이션 정의들인 애플리케이션 정의들(1206 내지 1208)을 더 포함한다.
애플리케이션 패키지 ID(1201)는 복수의 애플리케이션 패키지 중에서 애플리케이션 패키지(1100)를 고유하게 식별하는데 사용되는 식별자이다. 애플리케이션 패키지 ID(1201)의 조합에 제품 버전(1202)을 사용하는 경우, 애플리케이션 패키지(1100)의 버전을 특정할 수 있다. 애플리케이션 패키지 명(1203)은 애플리케이션 패키지의 명칭을 나타내는 문자열이다.
인스톨 가능 플랫폼(1204)은, 애플리케이션 패키지(1100)에 포함된 모든 애플리케이션(3)의 인스톨을 가능하게 하는 플랫폼 프로그램을 나타낸다. 인스톨 가능 플랫폼(1204)은, 플랫폼 프로그램의 종류 및 버전, 기기의 고유 ID, 플랫폼 프로그램에 구비되어야 할 기능을 나타내는 ID를 나타낸다. 예상 소비 리소스 사이즈(1205)에는, 모든 애플리케이션(3)을 인스톨할 때, 또는 모든 애플리케이션(3)을 인스톨한 후에 필요한 리소스 사이즈가 정의되어 있다. 예상 소비 리소스 사이즈(45)의 예로는, 소비될 간접 기억부(123)의 사이즈 및 소비될 직접 기억부(122)의 사이즈가 있다.
<패키지 라이센스(1300)>
도 13은 본 발명의 제2 실시예에 따른 패키지 라이센스(1300)의 구성을 도시한 블록도이다.
패키지 라이센스(1300)는, 패키지 라이센스 생성기(23)를 이용하여 생성되는 복수의 라이센스(예컨대, 1304, 1305, 1306)를 패키징함으로써 얻어진다. 패키지 라이센스(1300)는, 패키지 라이센스 ID(1301), 애플리케이션 패키지 ID(1302), 패키지 라이센스 정보(1303), 및 복수의 라이센스(1304 내지 1306)를 포함한다.
패키지 라이센스 ID(1301)는, 패키지 라이센스(1300)를 식별하는데 이용된 고유 ID이다. 애플리케이션 패키지 ID(1302)는, 라이센스가 부여된 애플리케이션 패키지(1100)의 애플리케이션 패키지 ID(1201)에 대한 정보를 저장한다. 패키지 라이센스 정보(1303)는, 예를 들어, 패키지 라이센스(1300)의 정의, 및 애플리케이션 패키지(1100)의 암호화 영역(1102)을 복호하는데 이용되는 정보를 저장한다. 패키지 라이센스로서의 정의는, 패키지 라이센스(1300)의 만료일자 및 라이센스가 부여될 수 있는 횟수를 포함한다.
<애플리케이션 패키지(1100)를 생성하는 처리>
이제, 도 14의 플로우차트를 참조하면, 애플리케이션 패키지 생성기(24)에 의해 수행된 애플리케이션 패키지(1100)를 생성하는 처리(단계 S1402 내지 단계 S1410) 및 단계 S1401과 단계 S14011의 동작을 설명한다.
애플리케이션 패키지 생성기(24)는, 단계 S1401에서, 패키지 라이센스 생성기(23)로부터 다음 항목들: 패키징될 복수의 애플리케이션(3) 및 그 애플리케이션들(3)에 대응하는 복수의 라이센스(5)를 포함하는 패키지 라이센스(1300)를 수신한다.
애플리케이션 패키지 생성기(24)는, 단계 S1402에서, 수신된 애플리케이션들(3)을 복호한다.
이어서, 애플리케이션 패키지 생성기(24)는, 단계 S1403에서, 복호된 애플리케이션들(3) 중 하나를 선택하고, 선택된 애플리케이션(3)이 사용자 라이센스 계약서(321)를 포함하는지를 판정한다. 포함하면, 처리는 단계 S1404로 진행한다. 사용자 라이센스 계약서(321)는, 애플리케이션(3) 내의 ("EULA"라는 명칭의 디렉토리와 같은) 특정 디렉토리에 저장되어 있기 때문에, 선택된 애플리케이션(3)이 사용 자 라이센스 계약서(321)를 포함하는지에 관한 판정은, 애플리케이션 패키지 생성기(24)를 이용하여 사용자 라이센스 계약서(321)에 대한 특정 디렉토리를 검색함으로써 실행된다. 사용자 라이센스 계약서(321)의 파일명의 스타일이 판정되어 있는 것이 바람직하다.
이어서, 애플리케이션 패키지 생성기(24)는, 단계 S1404에서, 복호된 애플리케이션(3)에 구비되어 있는 사용자 라이센스 계약서(321)를 복제한다. 그리고, 단계 S1405에서, 사용자 라이센스 계약서(321)의 복제본의 파일명에, 사용자 라이센스 계약서(321)를 고유하게 특정하는데 사용되는 식별자로서 기능하는 애플리케이션 ID(41)를 부여한다. 애플리케이션 ID(41)는, 원본의 애플리케이션(3)을 특정하는데 사용된다. 또한, (예를 들어, 애플리케이션(3)이 다양한 언어들과 호환가능한 경우) 애플리케이션(3)은 복수의 사용자 라이센스 계약서(321)를 포함할 수 있다. 이 경우, 모든 사용자 라이센스 계약서(321)가 복제되고, 사용자 라이센스 계약서(321)의 모든 복제본들에 ID들이 부여된다.
다음으로, 애플리케이션 패키지 생성기(24)는, 단계 S1406에서, 애플리케이션(3)에 구비되어 있는 애플리케이션 정의(311)를 취득한다.
애플리케이션 패키지 생성기(24)는, 단계 S1401에서 수신된 모든 애플리케이션들(3)에 대하여 전술한 동작들을 수행한다. 그 후에, 단계 S1408에서, 애플리케이션 패키지 생성기(24)는, 모든 애플리케이션 정의들(311)에 따라서 애플리케이션 패키지 정의(1103)를 생성하며, 이에 대해서는 후술한다.
이어서, 애플리케이션 패키지 생성기(24)는, 단계 S1409에서, 이하에 기술된 동작을 수행한다. 즉, 단계 S1402에서 복호 동작을 아직 행하지 않은 모든 애플리케이션(3), 단계 S1404에서 취득되어 단계 S1405에서 ID들이 부여된 사용자 라이센스 계약서(321)의 복제본, 및 단계 S1408에서 생성된 애플리케이션 패키지 정의(1103)를 패키징한다. 이러한 방식으로, 애플리케이션 패키지(1100)가 취득된다.
이어서, 애플리케이션 패키지 생성기(24)는, 생성된 애플리케이션 패키지(1100)와 패키지 라이센스(1300)를 송신 수단(22)에 송신한다.
또한, 단계 S1402와 단계 S1409에서, 애플리케이션 패키지 생성기(24)는, 사용자 라이센스 계약서들(321)을, 해당하는 암호화된 애플리케이션들(3)로부터 추출한다.
또한, 단계 S1406, 단계 S1408 및 단계 S1409에서, 애플리케이션 패키지 생성기(24)는, 해당 애플리케이션에 포함되어 있는 애플리케이션 정의들(1206 내지 1208)을 합산하여, 하나의 애플리케이션 패키지 정의(1103)를 생성한다.
또한, 추출된 사용자 라이센스 계약서(321), 생성된 애플리케이션 패키지 정의(1103), 및 애플리케이션들(3)을 포함하는 애플리케이션 패키지(1100)를 생성한다.
다시 말해서, 단계 S1402 및 단계 S1409에서, 애플리케이션 패키지 생성기(24)는, 암호화된 애플리케이션들(3)의 사용자 라이센스 계약서들(321)을 포함하는 애플리케이션 패키지(1100)를, 아직 복호되지 않은 애플리케이션들(3)을 포함하는 영역들과는 다른 영역들에 생성한다.
또한, 단계 S1406, 단계 S1408 및 단계 S1409에서, 애플리케이션 패키지 생성기(24)는, 애플리케이션 패키지 정의(1103)를 포함하는 애플리케이션 패키지(1100)를, 아직 복호되지 않은 암호화된 애플리케이션(3)의 영역들과는 다른 영역들에 생성한다. 전술한 바와 같이, 애플리케이션 패키지 정의(1103)는, 개개의 애플리케이션들(3)에 정의되어 있는 애플리케이션 정의들(1206 내지 1208)을 합산함으로써 취득된다.
본 실시예에서는, 복제된 사용자 라이센스 계약서들(321)의 원본들을 저장하는 애플리케이션들(3)을 식별하기 위해서, 사용자 라이센스 계약서들(321)의 파일명에 애플리케이션들(3)의 애플리케이션 ID들(41)을 부여하는 방법이 설명되고 있다. 그러나, 복제된 사용자 라이센스 계약서들(321)의 원본들을 저장하는 애플리케이션들(3)이 식별되는한, 그 밖의 방법들이 이용될 수도 있다. 예를 들어, 애플리케이션(3)과, 사용자 라이센스 계약서(321)의 복제본들 간의 관련성(association)을 열거하는 리스트를 생성하고, 그 리스트를 애플리케이션 패키지(1100)의 애플리케이션 패키지 정의(1103)에 저장하는 방법을 이용할 수 있다.
<애플리케이션 패키지 정의를 생성하는 방법>
애플리케이션 패키지 생성기(24)에 의해 수행되는 애플리케이션 패키지 정의(1103)를 생성하는 방법을 설명한다.
애플리케이션 패키지 생성기(24)는, 애플리케이션 정의(311)에 정의되어 있는 정보 항목들을 합산함으로써 애플리케이션 패키지 정의(1103)를 생성한다. 특히, 애플리케이션 정의(311)에 정의되어 있는 정보 항목들 중, 인스톨 가능 플랫 폼(1202)에 대한 정보 및 예상 소비 리소스 사이즈(1205)에 대한 정보를 합산한다.
예를 들어, 애플리케이션(3A)의 애플리케이션 정의(311)는 이하와 같이 정의되어 있다고 가정한다: 인스톨 가능 플랫폼의 버전이 2번째 버전이고, 소비될 간접 기억부(123)의 영역의 사이즈가 100MB이고, 인스톨 가능 기기의 고유 ID가 "#####0000000000, ####0000000001"이고, 필요한 기능의 고유 ID가 "인쇄 기능이 2번째 버전이고, 사용자 인터페이스(124)의 디스플레이 사이즈가 SVGA 또는 VGA에 대응한다"고 나타낸다. 고유 ID "#####0000000000, ####0000000001"는 "#####0000000000 또는 ####0000000001"를 의미한다.
한편, 애플리케이션(3B)의 애플리케이션 정의(311)는 이하와 같이 정의되어 있다고 가정한다: 인스톨 가능 플랫폼의 버전이 1번째 또는 2번째 버전이고, 소비될 간접 기억부(123)의 사이즈가 120MB이고, 인스톨 가능 기기의 고유 ID가 "#####0000000000"이고, 필요한 기능의 고유 ID가 "인쇄 기능의 버전이 1번째 버전이다"를 나타낸다.
이러한 경우, 후술되는 바와 같이, 애플리케이션 패키지 정의(1103)가 생성된다.
먼저, 애플리케이션 정의들에 포함된 정보 항목들의 종류에 따라서, 합산을 이용할지 적산을 이용할지를 판정하고, 연산을 행한다.
구체적으로는, 버전 및 인스톨 가능 장치의 간접 기억부의 사이즈에는, 합산을 이용하는 것으로 판정한다. 한편, 인스톨 가능 기기의 고유 ID들 및 인스톨에 필요한 기능의 고유 ID들에 대하여 적산을 이용하는 것으로 판정한다.
애플리케이션 패키지에 포함된 모든 애플리케이션들의 인스톨을 받아들일 수 있는 플랫폼 프로그램의 버전은 2번째 버전이다. 이것은 논리곱을 이용하여 합산된다.
애플리케이션 패키지에 포함된 모든 애플리케이션들이 인스톨되도록 하는 간접 기억부(123)의 사이즈는 220MB 이상이다. 이는 수치 값들의 합산을 이용하여 계산되며, 다음 표현식을 얻는다: 220MB = 120MB + 100MB.
또한, 애플리케이션 패키지에 포함되는 모든 애플리케이션들이 인스톨되도록 하는 인스톨 가능 기기의 고유 ID는 "#####0000000000"이다. 이것 역시 논리곱을 이용하여 합산된다. 즉, 고유 ID "#####0000000000"는 고유 ID "#####0000000000" 및 고유 ID "#####0000000000, ####0000000001"을 이용하여 논리곱을 수행함으로써 얻어진다.
애플케이션 패키지에 포함되는 모든 애플리케이션들을 인스톨하는데 필요한 기능의 고유 ID는 "인쇄 기능의 버전은 2번째 버전이고, 사용자 인터페이스(124)의 디스플레이 사이즈는 SVGA 또는 VGA이다"를 나타낸다. 이는 논리곱을 이용하여 합산된다.
전술한 바와 같이, 애플리케이션 패키지 생성기(24)는, 애플리케이션 정의(311)에 정의되어 있는 개개의 정보 항목들을 합산 또는 적산(논리곱)을 이용하여 합산함으로써 애플리케이션 패키지 정의(1103)를 생성한다.
<애플리케이션 패키지(1100)를 인스톨하는 처리>
도 15의 플로우차트를 참조하면, 플랫폼부(13)에 의해 수행되는 애플리케이 션 패키지(1100)를 인스톨하는 처리를 설명한다.
본 실시예에서, 인스톨 처리는, 애플리케이션 프로그램들의 인스톨과 그 인스톨에 따라 수행되는 처리를 포함한다. 구체적으로는, 단계 S1501의 동작 내지 단계 S1514의 동작이 인스톨 처리에 포함되며, 보다 구체적으로는, 단계 S1513에서 인스톨을 수행한다. 즉, 단계 S1501 내지 단계 S1514에서 수행되는 애플리케이션들을 인스톨하는 처리시에 애플리케이션 프로그램들의 인스톨이 수행된다.
플랫폼부(13)는, 단계 S1501에서, 외부 인터페이스(125)로부터 애플리케이션 패키지(1100) 및 패키지 라이센스(1300)를 수신한다.
이어서, 플랫폼부(13)는 단계 S1503에서 후술되는 처리를 행한다. 애플리케이션 패키지(1100)에 포함되는 애플리케이션 패키지 정의(1103) 및 패키지 라이센스(1300)에 포함되는 패키지 라이센스 정보(1303)를 수신한다. 이어서, 얻어진 애플리케이션 패키지 정의(1103) 및 얻어진 패키지 라이센스 정보(1303) 등의 정보에 따라서 인스톨 관리 테이블(1000)을 생성한다. 구체적으로는, 인스톨 관리 테이블(1000)에 포함된 인스톨-조건 확인 결과(1004) 및 라이센스 동의 결과(1005) 이외의 정보(애플리케이션 정의(311) 및 라이센스(5) 등의 정보)를 저장하는 인스톨 관리 테이블(1000)을 생성한다.
이어서, 단계 S1503에서, 플랫폼부(13)는, 애플리케이션 패키지 정의(1103) 및 패키지 라이센스 정보(1303)의 정보 항목들에 따라서, 후술하는 패키지 라이센스(1300) 및 인스톨 조건을 확인하는 처리를 수행한다. 패키지 라이센스(1300) 및 인스톨 조건들을 확인하는 처리의 결과로서, 단계 S1504에서, 인스톨이 가능하다고 판정된 경우에는, 인스톨 관리 테이블(1000)에 포함된 인스톨-조건 확인 결과(1004)를, 인스톨이 가능함을 나타내는 정보로 갱신한다. 한편, 인스톨 조건을 확인하는 처리의 결과들 중 적어도 하나가 인스톨이 불가하다고 판정된 경우에는, 단계 S1521에서, 외부 인터페이스(125)에 인스톨이 불가함을 나타내는 정보를 통지하고, 외부 인터페이스(125)를 통해 유저로부터의 지시를 요구한다. 그 후, 플랫폼부(13)는, 단계 S1521에서, 외부 인터페이스(125)를 통해 송신된 유저가 입력한 지시를 확인한다(즉, 인스톨 처리를 계속할지의 여부를 판정한다). 인스톨 처리가 계속되어야 한다고 판정된 경우에는, 플랫폼부(13)는 인스톨될 수 없는 애플리케이션에 대한 것이고, 인스톨 관리 테이블(1000)에 포함되어 있는 인스톨-조건 확인 결과(1004)를, 단계 S1504에서, 인스톨이 불가함을 나타내는 정보로 갱신한다. 한편, 인스톨 처리가 계속되어서는 안된다고 판정된 경우에는, 인스톨 처리는 단계 S1531에서 중단된다.
단계 S1505에서, 플랫폼부(13)는, 애플리케이션 패키지(1100)를 복호한다.
다음으로, 플랫폼부(13)는, 생성된 인스톨 관리 테이블(1000)에 등록되어 있는 애플리케이션들 중, 인스톨-조건 확인 결과(1004)가 인스톨이 가능함을 나타내는 것에 해당하는 애플리케이션에 대해서만 후술하는 동작들을 수행한다.
플랫폼부(13)는, 애플리케이션 패키지(1100)가, 애플리케이션들(3)과는 다른 영역에서 처리될 애플리케이션들(3) 중 하나의 사용자 라이센스 계약서(321)의 복제본을 저장하는지를 판정한다. 그 판정이 긍정이면, 플랫폼부(13)는, 단계 S1506에서 사용자 라이센스 계약서(321)의 복제본을 취득한다. 한편, 그 판정이 부정이 면, 플랫폼부(13)는, 단계 S1509에서, 인스톨 관리 테이블(1000)에 포함되어 있는 라이센스 동의 결과(1005)를, 관련 없음(irrelevance)을 나타내는 정보로 갱신한다. 애플리케이션 패키지(1100)가 복제본을 저장하고 있는 경우에는, 플랫폼부(13)는, 단계 S1508에서, 취득된 사용자 라이센스 계약서(321)를, 외부 인터페이스(125)에 송신한다. 이어서, 플랫폼부(13)는, 단계 S1508에서, 사용자가 통지된 사용자 라이센스 계약서(321)에 동의했음을 나타내는 정보 또는 사용자가 통지된 사용자 라이센스 계약서(321)에 동의하지 않았음을 나타내는 정보를 외부 인터페이스(125)를 통해 사용자로부터 수신한다. 단계 S1509에서, 사용자가 사용자 라이센스 계약서(321)에 동의한 경우, 인스톨 관리 테이블(1000)에 포함된 라이센스 동의 결과(1005)를, 사용자가 모든 애플리케이션들(3)의 인스톨에 동의했음을 나타내는 정보로 갱신한다. 즉, 사용자가 사용자 라이센스 계약서(321)에 동의했음을 나타내는 정보가 외부 인터페이스(125)를 통해 취득되는 경우, 라이센스 동의 결과(1005)에 동의했음을 나타내는 정보로 갱신한다. 갱신 후에, 단계 S1511, 단계 S1512, 및 단계 S1514의 동작을 통해 처리될 애플리케이션이 인스톨된다.
한편, 단계 S1522에서, 사용자가 사용자 라이센스 계약서(321)에 동의하지 않았음을 나타내는 정보를 수신한 경우에는, 플랫폼부(13)는 사용자로 하여금 인스톨 처리를 계속할지를 외부 인터페이스(125)를 통해서 판정하도록 촉구한다. 단계 S1509에서, 인스톨 처리를 계속해야 할지를 판정한 경우, 플랫폼부(13)는 인스톨 관리 테이블(1000)에 포함되어 있는 라이센스 동의 결과(1005)를, 동의하지 않음을 나타내는 정보로 갱신한다. 한편, 단계 S1531에서, 인스톨 처리를 계속하지 않을 것으로 판정한 경우, 인스톨 처리를 중단한다.
이어서, 플랫폼부(13)는, 단계 S1510에서, 인스톨 관리 테이블(1000)에 등록되어 있는 모든 애플리케이션들(3) 중, "그 인스톨-조건 확인 결과(1004)는 인스톨이 가능함을 나타내는 정보에 대응하는" 애플리케이션들에 대해서만 전술한 동작들을 반복적으로 수행한다.
그 후, 플랫폼부(13)는, 인스톨 관리 테이블(1000)에 등록되어 있는 모든 애플리케이션들 중, "인스톨-조건 확인 결과(1004)는 인스톨이 가능함을 나타내는 정보에 대응하며", "라이센스 동의 결과(1005)는 관련 없음을 나타내는 정보 또는 동의를 나타내는 정보에 대응하는" 애플리케이션(3)에 대하여 후술되는 동작들을 수행한다.
단계 S1512에서, 플랫폼부(13)는, 암호화된 애플리케이션들(3) 중 하나를 복호한다. 단계 S1513에서, 애플리케이션(3)에 포함된 애플리케이션 프로그램(322)을 인스톨한다. 단계 S1514에서, 처리될 모든 애플리케이션(3)에 포함된 애플리케이션 프로그램들(322)이 인스톨될때까지 동작들을 반복적으로 수행하고, 이어서, 인스톨 처리를 종료한다.
단계 S1513에서의 동작을 상세히 후술한다.
우선, 단계 S1513에서는, "단계 S1509에서 라이센스 동의 결과(1005)가 동의를 나타내는 정보로 갱신된 애플리케이션들" 중 하나에 포함된 애플리케이션 프로그램을 인스톨한다. "단계 S1509에서 라이센스 동의 결과(1005)가 동의를 나타내는 정보로 갱신되지 않은 애플리케이션들"에 포함된 애플리케이션 프로그램은 인스 톨하지 않음에 유의한다.
또한, 단계 S1512에서의 복수의 애플리케이션(3)을 복호함으로써 취득된 라이센스 동의 결과(1005)는 단계 S1513에서 무시됨에 유의한다. 이는, 라이센스 동의에 대해서는, 사용자 라이센스 계약서들(321)의 복제본을 단계 S1509 및 단계 S1510에서 확인했기 때문이다.
<패키지 인스톨 조건을 확인하는 방법>
이제, 플랫폼부(13)에 의해 수행된 인스톨 처리시의 패키지 인스톨 조건을 확인하는 방법을 설명한다.
플랫폼부(13)는, 애플리케이션 패키지 정의(1103)에 대한 정보와 플랫폼부(13)에 대한 정보 및 화상 처리 장치(12)에 대한 정보를 서로 비교함으로써 인스톨 조건을 확인한다. 특히, 애플리케이션 패키지 정의(1103)에서 정의되어 있는 인스톨 가능 플랫폼(1204) 및 예상 소비 리소스 사이즈(1205)를 이용한다.
플랫폼 프로그램의 버전이 2번째 버전이며, 화상 처리 장치(12)의 간접 기억부(123)의 잔여 사이즈가 100MB라고 가정하고, 고유 ID가 "#####0000000000"이고 그 장치에 제공된 기능의 고유 ID가 "인쇄 기능의 버전이 1번째 버전이고 스캔 기능의 버전이 1번째 버전 또는 2번째 버전임"을 나타낸다고 가정하면, 후술되는 바와 같이 판정이 행해진다.
플랫폼부(13)는, 애플리케이션 패키지(1100)가 인스톨될 인스톨 가능 플랫폼(1204)의 플랫폼 프로그램의 버전이 1번째 버전인 경우, 패키지 라이센스(1300)에 포함된 모든 애플리케이션(3)을 인스톨할 수 없다고 판정한다. 즉, 플랫폼 프 로그램의 버전이, 애플리케이션(3)이 인스톨될 수 있는 플랫폼의 버전에 대응하는지의 여부에 따라서 판정이 행해진다.
또한, 플랫폼부(13)는, 애플리케이션(3)에 의해 소비될 간접 기억부(123)의 영역의 사이즈인 애플리케이션(3)의 예상 소비 리소스 사이즈(1205)가 120MB인 경우, 패키지 라이센스(1300)에 포함된 애플리케이션들(3)이 인스톨될 수 없다고 판정한다. 즉, 기기가, 애플리케이션(3)에 의해 소비될 리소스보다 크거나 같은 잔여 리소스를 구비하고 있는지의 여부에 따라서 판정이 행해진다.
플랫폼부(13)는, 애플리케이션 패키지(1100)를 포함하는 기기의 고유 ID가 "#####0000000001"인 경우에는, 패키지 라이센스(1300)에 포함된 애플리케이션들(3)은 인스톨되지 않는다고 판정한다. 즉, 고유 ID가 애플리케이션들(3)이 인스톨될 수 있는 기기에 대한 고유 ID에 대응하는지의 여부에 따라 판정이 행해진다.
또한, 플랫폼부(13)는, 애플리케이션 패키지(1100)의 기능의 고유 ID가 "인쇄 기능의 2번째 버전"을 나타내는 경우에, 애플리케이션(3)이 인스톨되지 않음을 판정한다. 즉, 기기가 인스톨에 대한 기능을 갖는지의 여부에 따라 판정이 행해진다.
또한, 애플리케이션 패키지(1100)에 포함된 애플리케이션들(3)을 인스톨할 수 없다고 판정한 경우에는, 플랫폼부(13)는 후술되는 동작을 수행한다. 즉, 애플리케이션 패키지(1100)에 포함된 애플리케이션들이, 애플리케이션 패키지 정의(1103)에 포함된 개별 애플리케이션 정의(311)에 따라서 개별적으로 인스톨될 수 있는지의 여부를 판정한다.
전술한 바와 같이, 플랫폼부(13)는 애플리케이션 패키지 정의(1103)에 정의되어 있는 정보와 기기의 정보를 비교함으로써 인스톨이 가능한지의 여부를 판정한다.
전술한 바와 같이, 제2 실시예에 따르면, 애플리케이션 패키지가 인스톨될 경우, 인스톨 조건을 확인하는 동작, 라이센스들을 확인하는 동작, 및 사용자 라이센스 계약서에 동의하는 동작을 인스톨 처리의 제1 단계에서 통합하여 수행할 수 있다. 또한, 애플리케이션 패키지 정의 및 패키지 라이센스 정보를 생성하기 때문에, 인스톨 조건을 확인하는 동작의 성능 및 라이센스들을 학인하는 동작의 성능이 향상될 수 있다. 이러한 방식으로, 사용자 라이센스 계약서에의 동의를 나타내는 지시 및 예를 들어, 인스톨 처리 중에 인스톨 처리의 계속을 나타내는 지시를 입력하는 동작의 필요성으로 인해 인스톨 처리가 복잡해지는 것을 방지한다. 따라서, 인스톨 처리의 성능을 향상시킬 수 있다.
또한, 전술한 실시예들에 따르면, 복수의 암호화된 애플리케이션에 포함된 사용자 라이센스 계약서를, 애플리케이션들로부터 추출한다. 따라서, 복수의 암호화된 애플리케이션을 복호하지 않고도 사용자 라이센스 계약서에의 동의를 사용자로부터 취득할 수 있다. 즉, 사용자 라이센스 계약서에 대한 동의를 초기에 사용자로부터 취득할 수 있으므로, 인스톨 처리가 무난하게 수행된다.
결과적으로, 사용자 라이센스 계약서에의 동의에 대하여 수행되는 입력 동작을 요구하는 통지가 발행되지 않는다. 또한, 인스톨 처리의 중반(또는, 후반)에 이러한 통지를 발행하지도 않는다. 사용자의 동작을 요구하는 이러한 통지가 중 반(또는, 후반)에 발행되면, 처리가 복잡해진다. 이는, 인스톨 처리가 개시된 후, 중반(또는, 후반)까지, 사용자는 동작을 수행하기 위해서 대기해야 하기 때문이다.
(1) 컴퓨터가 전술한 플로우차트들에서 동작들을 수행하게 하는 프로그램 및 (2) 그 프로그램을 기억한 컴퓨터 판독가능 기억 매체를 사용하는 경우에 달성되는 효과들은, (3) 전술한 플로우차트들의 동작들을 실행하는 장치 및 (4) 장치가 전술한 플로우차트들의 동작들을 실행하게 하는 방법을 사용하는 경우에 달성되는 효과들과 동일하다. 따라서, (1) 프로그램 및 (2) 컴퓨터 판독가능 기억 매체의 설명을 생략하지만, (1) 프로그램 및 (2) 컴퓨터 판독가능 기억 매체도 본 발명에 포함되는 것이다.
"애플리케이션에 포함된 애플리케이션 프로그램을 인스톨하기 전에 사용자에 의한 지시를 인터페이스를 통해 입력하는 동작에 대한 요구에 관한 데이터"의 예로서, 사용자 라이센스 계약서 및 애플리케이션 정의가 본 명세서에 기술된다. 그러나, 이들은 단지 예일 뿐이다. 본 명세서에 기재된 플로우차트들은, 사용자 라이센스 계약서 및 애플리케이션 정의 뿐만 아니라, 다른 "애플리케이션에 포함된 애플리케이션 프로그램을 인스톨하지 전에 사용자에 의한 지시를 인터페이스를 통해 입력하는 동작에 대한 요구에 관한 데이터"에도 적용 가능하다.
사용자 라이센스 계약서는, 애플리케이션에 포함된 애플리케이션 프로그램을 인스톨하기 전에 인터페이스를 통해 사용자의 동의를 요구하는데 사용된 데이터이다. 따라서, 사용자 라이센스 계약서는, "애플리케이션에 포함된 애플리케이션 프로그램을 인스톨하기 전에 사용자에 의한 지시를 인터페이스를 통해 입력하는 동작 에 대한 요구에 관한 데이터"에 대응한다.
또한, 애플리케이션 정의는, 인스톨-조건 확인 처리의 결과가 인스톨이 가능함을 나타내는지의 여부를 판정하는 경우에 이용된다. 인스톨이 가능하지 않다고 판정된 경우에는, 사용자에 의해 수행된 지시를 입력하는 동작이 인터페이스를 통해 요구된다(S921, S1521).
따라서, 애플리케이션 정의는, 사용자에 의한 지시를 입력하는 동작이 인터페이스를 통해 요구되는지의 여부를 판정할 경우에 필요한 데이터이다. 따라서, 애플리케이션 정의도, "애플리케이션에 포함된 애플리케이션 프로그램을 인스톨하기 전에 사용자에 의한 지시를 인터페이스를 통해 입력하는 동작에 대한 요구에 관한 데이터"에 대응한다.
본 발명을 실시예들을 참조하여 설명하였지만, 개시된 실시예들에 제한되는 것은 아님을 이해해야 한다. 첨부 청구항들의 범위는 모든 변경들 및 등가 구조물들 및 기능들을 포함하도록 최광의로 해석되어야 한다.
도 1은 본 발명의 예시적인 실시예에 따른 화상 형성 장치를 도시하는 블록도이다.
도 2는 본 발명의 제1 실시예에 따른 패키징 장치의 구성을 도시하는 블록도이다.
도 3은 본 발명의 제1 실시예에 따른 애플리케이션의 구성을 도시하는 블록도이다.
도 4는 본 발명의 제1 실시예에 따른 애플리케이션 정의의 구성을 나타내는 리스트를 도시한다.
도 5는 본 발명의 제1 실시예에 따른 라이센스의 구성을 도시하는 블록도이다.
도 6은 본 발명의 제1 실시예에 따른 애플리케이션 패키지(6)의 구성을 도시하는 블록도이다.
도 7은 본 발명의 제1 실시예에 따른 패키지 라이센스의 구성을 도시하는 블록도이다.
도 8은 애플리케이션 패키지 생성 처리를 도시하는 흐름도이다.
도 9a 및 도 9b는 인스톨 처리를 나타내는 흐름도를 도시한다.
도 10은 인스톨 관리 테이블의 구성을 나타내는 리스트를 도시한다.
도 11은 본 발명의 제2 실시예에 따른 애플리케이션 패키지의 구성을 도시하는 블록도이다.
도 12는 본 발명의 제2 실시예에 따른 애플리케이션 패키지 정의의 구성을 나타내는 리스트를 도시한다.
도 13은 패키지 라이센스를 도시한다.
도 14는 애플리케이션 패키지 생성 처리를 도시하는 흐름도이다.
도 15a 및 도 15b는 인스톨 처리를 도시하는 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
1: 화상 형성 장치
11: 인쇄 장치
12: 화상 처리 장치
13: 플랫폼부
122: 직접 기억부
123: 간접 기억부
124: 사용자 인터페이스
125: 외부 인터페이스

Claims (12)

  1. 삭제
  2. 애플리케이션 패키징 장치로서,
    각각이 사용자 라이센스 계약서(end user license agreement)를 포함하는 복수의 애플리케이션을 개별적으로 복호(decrypt)하도록 구성된 복호 수단;
    각각의 복호된 애플리케이션에 포함된 상기 사용자 라이센스 계약서를 복제하도록 구성된 복제 수단; 및
    애플리케이션 패키지를 얻기 위해, 각각의 사용자 라이센스 계약서의 복제본과 암호화된 애플리케이션들을 패키징하도록 구성된 패키징 유닛
    을 포함하고,
    상기 패키징 유닛은, 상기 복호된 애플리케이션들로부터의 상기 사용자 라이센스 계약서들이 상기 암호화된 애플리케이션들을 포함하는 영역과는 다른 애플리케이션 패키지의 영역에 포함되도록 애플리케이션 패키지를 생성하도록 구성되는 애플리케이션 패키징 장치.
  3. 제2항에 있어서,
    상기 패키징 유닛은, 또한, 각각의 사용자 라이센스 계약서의 복제본을 암호화하는 애플리케이션 패키징 장치.
  4. 제2항에 있어서,
    상기 패키징 유닛은 상기 복호된 애플리케이션들에 포함된 애플리케이션 정의들을 연산하고, 상기 연산을 통해 얻어진 애플리케이션 패키지 정의가 상기 암호화된 애플리케이션들에 대응하는 영역과는 다른 패키지의 영역에 포함되도록 애플리케이션 패키지를 생성하는 애플리케이션 패키징 장치.
  5. 제4항에 있어서,
    상기 패키징 유닛은, 상기 복호된 애플리케이션들에 포함된 상기 애플리케이션 정의들에 포함된 정보 항목들의 종류들에 따라서, 합산(addition)을 이용할지, 적산(multiplication)을 이용할지를 판정하는 애플리케이션 패키징 장치.
  6. 애플리케이션 패키지에 포함된 복수의 암호화된 애플리케이션을 복호하기 전에, 제2항의 애플리케이션 패키징 장치에 의해 생성된 애플리케이션 패키지의 영역으로부터 사용자 라이센스 계약서들을 취득하도록 구성된 취득 유닛 - 상기 계약서들을 포함하는 영역은 상기 암호화된 애플리케이션들을 포함하는 영역과는 다름 -; 및
    각각의 사용자 라이센스 계약서에의 동의가 사용자로부터 인터페이스를 통해 취득된 경우에 상기 애플리케이션들을 인스톨하도록 구성된 인스톨 유닛
    을 포함하는 애플리케이션 인스톨 장치.
  7. 애플리케이션 패키지에 포함된 복수의 암호화된 애플리케이션을 복호하기 전에, 제4항의 애플리케이션 패키징 장치에 의해 생성된 애플리케이션 패키지의 영역으로부터 애플리케이션 패키지 정의를 취득하도록 구성된 취득 유닛 - 상기 영역은 상기 암호화된 애플리케이션들을 포함하는 영역과는 다름 -; 및
    상기 암호화된 애플리케이션들을 복호하기 전에, 상기 애플리케이션 패키지에 포함된 모든 애플리케이션들이 그 취득된 애플리케이션 패키지 정의에 따라서 인스톨가능한지의 여부를 판단하도록 구성된 판단 유닛을 포함하는 애플리게이션 인스톨 장치.
  8. 제6항에 있어서,
    애플리케이션 정의들 및 라이센스들을 포함하는 정보에 따라, 인스톨 관리 테이블을 생성하도록 구성된 애플리케이션 인스톨 장치.
  9. 제7항에 있어서,
    상기 장치는, 상기 애플리케이션 패키지에 포함된 모든 애플리케이션들이 취득된 애플리케이션 패키지 정의에 따라서 인스톨가능한지의 여부에 관한 판단을 행하기 전에, 각각의 라이센스에의 동의가 취득되는지를 검출하도록 구성된 애플리케이션 인스톨 장치.
  10. 제6항에 있어서,
    상기 장치는 상기 암호화된 애플리케이션들에 포함된 사용자 라이센스 계약서들을 무시하도록 구성된 애플리케이션 인스톨 장치.
  11. 삭제
  12. 애플리케이션 인스톨 장치를 제어하는 방법으로서,
    애플리케이션 패키지에 포함된 복수의 암호화된 애플리케이션들을 복호하기 전에, 제2항의 애플리케이션 패키징 장치에 의해 생성된 애플리케이션 패키지의 영역으로부터 사용자 라이센스 계약서들을 취득하는 단계 - 상기 계약서들을 포함하는 영역은 상기 암호화된 애플리케이션들을 포함하는 영역과는 다름 -; 및
    각각의 사용자 라이센스 계약서에 대한 동의가 사용자로부터 인터페이스를 통해 취득된 경우에 상기 애플리케이션들을 인스톨하는 단계
    를 포함하는 애플리케이션 인스톨 장치의 제어 방법.
KR1020090030409A 2008-04-09 2009-04-08 애플리케이션 패키징 장치 및 그 제어 방법 KR101061348B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2008-101530 2008-04-09
JP2008101530A JP5121542B2 (ja) 2008-04-09 2008-04-09 アプリケーションパッケジング装置、その制御方法、プログラム

Publications (2)

Publication Number Publication Date
KR20090107949A KR20090107949A (ko) 2009-10-14
KR101061348B1 true KR101061348B1 (ko) 2011-08-31

Family

ID=40933636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090030409A KR101061348B1 (ko) 2008-04-09 2009-04-08 애플리케이션 패키징 장치 및 그 제어 방법

Country Status (5)

Country Link
US (1) US20090260003A1 (ko)
EP (1) EP2109057A3 (ko)
JP (1) JP5121542B2 (ko)
KR (1) KR101061348B1 (ko)
CN (1) CN101556639B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5335504B2 (ja) * 2009-03-19 2013-11-06 キヤノン株式会社 アプリケーションパッケージング装置、その制御方法、プログラム
CN101901160B (zh) * 2010-08-11 2015-06-03 中兴通讯股份有限公司 版本升级软件包的打包方法及装置
JP5814526B2 (ja) * 2010-08-26 2015-11-17 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、およびプログラム
EP3876496B1 (en) 2012-06-13 2022-10-26 Huawei Device Co., Ltd. Mobile terminal and computer program product for widget sharing
CN104683409B (zh) 2013-11-29 2019-03-01 华为终端(东莞)有限公司 终端间应用共享的方法和终端
JP6812865B2 (ja) * 2017-03-21 2021-01-13 株式会社リコー 情報処理システム、サービス提供システムおよび情報処理方法
US11194562B2 (en) * 2017-05-19 2021-12-07 Blackberry Limited Method and system for hardware identification and software update control
CN109460637A (zh) * 2018-10-25 2019-03-12 深圳市腾讯信息技术有限公司 服务器版本文件的运行方法、装置、存储介质及电子装置
US10838715B1 (en) 2019-05-03 2020-11-17 Servicenow, Inc. Efficient automatic population of downgrade rights of licensed software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215253A (ja) * 2001-01-19 2002-07-31 Hitachi Ltd プログラムライセンスキー発行方法及び発行システム
US20060179002A1 (en) 2005-02-04 2006-08-10 Microsoft Corporation Flexible licensing architecture for licensing digital application
KR100809664B1 (ko) 2006-07-11 2008-03-05 하나 마이크론(주) 암호화된 컨텐츠를 저장하는 저장 장치 및 그 컨텐츠의제공 방법

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4979832A (en) * 1989-11-01 1990-12-25 Ritter Terry F Dynamic substitution combiner and extractor
US5341429A (en) * 1992-12-04 1994-08-23 Testdrive Corporation Transformation of ephemeral material
US5363448A (en) * 1993-06-30 1994-11-08 United Technologies Automotive, Inc. Pseudorandom number generation and cryptographic authentication
US5553139A (en) * 1994-04-04 1996-09-03 Novell, Inc. Method and apparatus for electronic license distribution
CN101303717B (zh) * 1995-02-13 2015-04-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US6640255B1 (en) * 1995-03-31 2003-10-28 Sun Microsystems, Inc. Method and apparatus for generation and installation of distributed objects on a distributed object system
AU702649B2 (en) * 1995-05-12 1999-02-25 Rovi Solutions Corporation Video media security and tracking system
US5708709A (en) * 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
US5963739A (en) * 1996-04-26 1999-10-05 Peter V. Homeier Method for verifying the total correctness of a program with mutually recursive procedures
US7770230B2 (en) * 2002-04-22 2010-08-03 Arvato Digital Services Canada, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
AU6759198A (en) * 1997-03-14 1998-10-12 Cryptoworks, Inc. Digital product rights management technique
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US6047059A (en) * 1997-08-21 2000-04-04 Alcatel Usa Sourcing, L.P. System and method for communicating transaction capabilities application part information
US5953533A (en) * 1997-08-27 1999-09-14 Lucent Technologies Inc. Computer software distribution, installation and maintenance method and apparatus
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US7110984B1 (en) * 1998-08-13 2006-09-19 International Business Machines Corporation Updating usage conditions in lieu of download digital rights management protected content
JP2000076048A (ja) * 1998-08-28 2000-03-14 Sharp Corp インストール制御装置
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7383205B1 (en) * 1999-03-27 2008-06-03 Microsoft Corporation Structure of a digital content package
US7136838B1 (en) * 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US6889208B1 (en) * 1999-04-15 2005-05-03 Victor Company Of Japan, Ltd. Contents sale system
US6922781B1 (en) * 1999-04-30 2005-07-26 Ideaflood, Inc. Method and apparatus for identifying and characterizing errant electronic files
US6473794B1 (en) * 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
EP1230602A2 (en) * 1999-06-30 2002-08-14 Accenture LLP A system, method and article of manufacture for an internet based distribution architecture
US6832230B1 (en) * 1999-12-22 2004-12-14 Nokia Corporation Apparatus and associated method for downloading an application with a variable lifetime to a mobile terminal
WO2001092993A2 (en) * 2000-06-02 2001-12-06 Vigilant Systems, Inc. System and method for licensing management
US7086067B1 (en) * 2000-07-14 2006-08-01 International Business Machines Corporation Dynamic Java bean for VisualAge for Java
EP1331818B1 (en) * 2000-09-12 2008-04-02 Sony Corporation Information processing device, electronic device, information processing method, and medium
US7051315B2 (en) * 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
EP1362313A2 (en) * 2000-11-01 2003-11-19 Sap Ag Method and system for intellectual property management
US6918113B2 (en) * 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications
US6810389B1 (en) * 2000-11-08 2004-10-26 Synopsys, Inc. System and method for flexible packaging of software application licenses
US20020066022A1 (en) * 2000-11-29 2002-05-30 Brad Calder System and method for securing an application for execution on a computer
US6957329B1 (en) * 2001-02-05 2005-10-18 Ati Technologies, Inc. System for encrypting data from multiple multimedia applications and method thereof
US7120429B2 (en) * 2001-08-13 2006-10-10 Qualcomm Inc. System and method for licensing applications on wireless devices over a wireless network
FR2829892A1 (fr) * 2001-09-14 2003-03-21 St Microelectronics Sa Procede et systeme de distribution securisee de documents numeriques
US20030135851A1 (en) * 2002-01-17 2003-07-17 Laura Dickey Method and system for concentration of applications during installation in target devices
US20030200178A1 (en) * 2002-04-18 2003-10-23 International Business Machines Corporation Managing licensing of distributed applications
US20040039916A1 (en) * 2002-05-10 2004-02-26 David Aldis System and method for multi-tiered license management and distribution using networked clearinghouses
US7222106B2 (en) * 2002-05-21 2007-05-22 International Business Machines Corporation Mechanisms for handling software license agreements on multi-user system
AU2003251504A1 (en) * 2002-06-12 2003-12-31 Fslogic Inc. Systems and methods for the creation of software packages using layered systems
US8695029B2 (en) * 2002-10-03 2014-04-08 Nagra France System and method of adaptive and progressive descrambling of streaming video
US7734549B2 (en) * 2002-12-31 2010-06-08 Motorola, Inc. Methods and apparatus for managing secured software for a wireless device
US7228541B2 (en) * 2003-01-17 2007-06-05 National Instruments Corporation Creation of application system installer
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US20040255289A1 (en) * 2003-06-11 2004-12-16 Citycites.Com Corp. Remote access software solution for rapidly deploying a desktop
US20050049973A1 (en) * 2003-09-02 2005-03-03 Read Mark A. Method and program for automated management of software license usage by monitoring and disabling inactive software products
US20050066324A1 (en) * 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software
US7734550B1 (en) * 2003-10-07 2010-06-08 Microsoft Corporation Method and system for identifying the controlling license for installed software
US8271390B2 (en) * 2004-06-14 2012-09-18 Nokia Corporation Digital rights management (DRM) license manager
US20050289075A1 (en) * 2004-06-25 2005-12-29 Murphy Robert J Removable media-based unified application installer and license management facility
US20050289072A1 (en) * 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
WO2006031723A2 (en) * 2004-09-13 2006-03-23 Coretrace Corporation Method and system for license management
US10162618B2 (en) * 2004-12-03 2018-12-25 International Business Machines Corporation Method and apparatus for creation of customized install packages for installation of software
JP4655613B2 (ja) * 2004-12-08 2011-03-23 富士ゼロックス株式会社 プログラム実行装置及びプログラム実行方法
US20060200419A1 (en) * 2005-02-24 2006-09-07 Cook Johanna M System and method for user role based product license generation
US20060190408A1 (en) * 2005-02-24 2006-08-24 Cook Johanna M System and method for customized bundled license generation
US9274774B2 (en) * 2005-10-28 2016-03-01 Google Inc. Common installer server
US20070115929A1 (en) * 2005-11-08 2007-05-24 Bruce Collins Flexible system for distributing content to a device
JP2007213343A (ja) * 2006-02-09 2007-08-23 Canon Inc インストール装置及びインストール方法及びプログラム及び記憶媒体
US20070256072A1 (en) * 2006-05-01 2007-11-01 Microsoft Corporation Multi-installer product deployment
US9137480B2 (en) * 2006-06-30 2015-09-15 Cisco Technology, Inc. Secure escrow and recovery of media device content keys
US7779085B2 (en) * 2006-07-17 2010-08-17 Research In Motion Limited Automatic mobile device configuration
US8607223B2 (en) * 2006-07-28 2013-12-10 International Business Machines Corporation Creating multiplatform customized install packages for software installation
US8171470B2 (en) * 2006-08-29 2012-05-01 Adobe Systems Incorporated Software installation and support
US8191060B2 (en) * 2006-08-29 2012-05-29 Adobe Systems Incorporated Software installation using template executables
US8620817B2 (en) * 2006-09-14 2013-12-31 Flexera Software, Inc. Method and system for creating license management in software applications
JP2008077487A (ja) * 2006-09-22 2008-04-03 Oki Data Corp ドライバインストール制御方法、ドライバインストールプログラム、ドライブ制御方法、ドライバプログラム、プログラム記憶媒体及び端末装置
US9230068B2 (en) * 2006-10-03 2016-01-05 Salesforce.Com, Inc. Method and system for managing license objects to applications in an application platform
US20080127175A1 (en) * 2006-11-01 2008-05-29 Microsoft Corporation Packaging software products as single-file executables containing scripting logic
US20100242034A1 (en) * 2006-11-01 2010-09-23 Microsoft Corporation Distributing software products as an executable containing script logic with external resources
US20080114695A1 (en) * 2006-11-10 2008-05-15 Semantic Components S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
SG143084A1 (en) * 2006-11-17 2008-06-27 Nanyang Polytechnic Software copyright protection and licensing system using rfid
JP2008225559A (ja) * 2007-03-08 2008-09-25 Nec Corp プログラム使用許諾契約統合装置、システム、方法およびプログラム
US8230417B1 (en) * 2007-06-08 2012-07-24 Adobe Systems Incorporated Combined application and execution environment install
US8635611B2 (en) * 2007-11-16 2014-01-21 Microsoft Corporation Creating virtual applications
JP2009134610A (ja) * 2007-11-30 2009-06-18 Seiko Epson Corp 周辺機器制御装置、プログラムインストール方法及びプログラム
US20090254517A1 (en) * 2008-04-04 2009-10-08 Dilip Dalton System And Method For Generating Messages
JP5335504B2 (ja) * 2009-03-19 2013-11-06 キヤノン株式会社 アプリケーションパッケージング装置、その制御方法、プログラム
US9201973B2 (en) * 2009-07-10 2015-12-01 Geodex Llc Computerized system and method for tracking the geographic relevance of website listings and providing graphics and data regarding the same
US8422401B1 (en) * 2010-05-11 2013-04-16 Daintree Networks, Pty. Ltd. Automated commissioning of wireless devices
US8612646B2 (en) * 2010-07-14 2013-12-17 William G. Bartholomay Devices, systems, and methods for multiplexing one or more services at a customer premises
DE112011105688T5 (de) * 2011-09-29 2014-07-17 Hewlett Packard Development Company, L.P. Ent- und Verschlüsselung von Anwendungsdaten
US20130110675A1 (en) * 2011-10-31 2013-05-02 Microsoft Corporation Marketplace for Composite Application and Data Solutions
US8725645B1 (en) * 2013-01-04 2014-05-13 Cetrus LLC Non-invasive metering system for software licenses
US9996375B2 (en) * 2014-04-29 2018-06-12 Vmware, Inc. Correlating a unique identifier of an independent server node with a location in a pre-configured hyper-converged computing device
US9529980B2 (en) * 2014-06-28 2016-12-27 Vmware, Inc. Deduplication of end user license agreements
US9389848B2 (en) * 2014-06-28 2016-07-12 Vmware, Inc. Scheduling a plan of operations in a datacenter
US9223767B1 (en) * 2014-06-28 2015-12-29 Vmware, Inc. Unified graphical user interface for displaying a plan of operations in a datacenter
US9442714B2 (en) * 2014-06-28 2016-09-13 Vmware, Inc. Unified visualization of a plan of operations in a datacenter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215253A (ja) * 2001-01-19 2002-07-31 Hitachi Ltd プログラムライセンスキー発行方法及び発行システム
US20060179002A1 (en) 2005-02-04 2006-08-10 Microsoft Corporation Flexible licensing architecture for licensing digital application
KR100809664B1 (ko) 2006-07-11 2008-03-05 하나 마이크론(주) 암호화된 컨텐츠를 저장하는 저장 장치 및 그 컨텐츠의제공 방법

Also Published As

Publication number Publication date
CN101556639B (zh) 2012-06-13
EP2109057A2 (en) 2009-10-14
US20090260003A1 (en) 2009-10-15
CN101556639A (zh) 2009-10-14
JP2009252091A (ja) 2009-10-29
JP5121542B2 (ja) 2013-01-16
EP2109057A3 (en) 2013-07-17
KR20090107949A (ko) 2009-10-14

Similar Documents

Publication Publication Date Title
KR101061348B1 (ko) 애플리케이션 패키징 장치 및 그 제어 방법
US8656184B2 (en) Installation of application package packaging plural applications
KR100962927B1 (ko) 정보 처리 방법, 정보 처리 장치 및 기억 매체
JP5293344B2 (ja) 画像処理装置、ソフトウェア配信システム、インストール処理方法およびプログラム
US7831517B1 (en) Single binary software license distribution
US7752140B1 (en) Software license distribution and bypassing
US9131169B2 (en) Apparatus, license determining method, recording medium
JP4136325B2 (ja) 画像形成システム、ソフトウエア取得方法、画像形成装置およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2014199464A1 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
US8302001B2 (en) Document encryption and decryption printing apparatus, method, and storage medium
US20110311046A1 (en) Image Forming System, Image Forming Apparatus, and Method in which an Application is Added
EP2595368B1 (en) Management device, information processing system, management method, and storage medium
US20060253395A1 (en) Format and systems for secure utilization of electronic fonts
JP5268694B2 (ja) ライセンス管理システム、画像形成装置およびライセンス管理方法
US10430564B2 (en) Software wrapper and installer using timestamp validation and system identification validation
JP6303979B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
TW200305325A (en) Methods and apparatus for secure distribution of program content
JP2018022295A (ja) 情報処理装置及びアプリケーション管理方法、及びプログラム
JP5106251B2 (ja) 情報処理システム、情報処理装置、情報処理方法及び記録媒体
CN101246533A (zh) 用于管理数字内容的方法和装置
CN109275033B (zh) 一种安全替换智能电视开机画面的方法
JP5130126B2 (ja) ライセンス数管理装置、ライセンス数管理方法及びライセンス数管理プログラム
US20130340085A1 (en) Migration between digital rights management systems without content repackaging
JP6772009B2 (ja) 情報処理装置および情報処理装置における制御方法、およびプログラムと画像処理装置
JP5531072B2 (ja) 印刷データ作成方法

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: 20140728

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150727

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160725

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170725

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180725

Year of fee payment: 8