KR100835269B1 - 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 - Google Patents
다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 Download PDFInfo
- Publication number
- KR100835269B1 KR100835269B1 KR1020060124059A KR20060124059A KR100835269B1 KR 100835269 B1 KR100835269 B1 KR 100835269B1 KR 1020060124059 A KR1020060124059 A KR 1020060124059A KR 20060124059 A KR20060124059 A KR 20060124059A KR 100835269 B1 KR100835269 B1 KR 100835269B1
- Authority
- KR
- South Korea
- Prior art keywords
- shared library
- application
- shared
- client device
- download server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용 프로그램 설치 및 업데이트 방법에 관한 것으로, 특히 본 발명의 다운로드 서버는, 응용 프로그램의 기존 공유 라이브러리에 대한 의존성을 분석하여 실제로 사용되는 목적 코드를 분리하는 의존성 분석부와, 분석 결과에 따라 기존 공유 라이브러리 중에서 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하는 분할 공유 라이브러리 생성부와, 응용 프로그램에서 실제 사용하는 목적 코드만을 갖는 공유 라이브러리로 분할하여 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 라이브러리에 링크된 응용 프로그램을 클라이언트 기기에 다운로드(전송)하도록 제어하는 제어부를 포함한다. 그러므로, 본 발명은 응용 프로그램에서 실제 사용하는 목적 코드만을 갖는 분할 공유 라이브러리와 이의 응용 프로그램을 클라이언트 기기에 전송함으로써 응용 프로그램의 다운로드에 필요한 통신량을 줄일 수 있고, 응용 프로그램이 설치되는 클라이언트 기기의 메모리 요구량도 줄일 수 있다.
다운로드 서버, 공유 라이브러리, 분할, 의존성, 목적 코드
Description
도 1은 종래 기술에 의한 공유 라이브러리에 대한 의존성을 가진 응용 프로그램 구조를 나타낸 도면,
도 2는 본 발명에 따라 분할 공유 라이브러리와 응용 프로그램을 제공하는 다운로드 서버와 클라이언트 기기를 간략하게 나타낸 구성도,
도 3은 본 발명에 따라 다운로드 서버에서 분할된 공유 라이브러리를 생성하는 과정을 순차적으로 나타낸 흐름도,
도 4는 본 발명에 따른 다운로드 서버에서 응용 프로그램과 분할 공유 라이브러리 사이의 의존성 관계의 일 예를 나타낸 도면,
도 5는 본 발명에 따른 다운로드 서버에서 분할 공유 라이브러리에 링크된 응용 프로그램 구조를 나타낸 도면,
도 6은 본 발명에 따른 다운로드 서버에서 분할 공유 라이브러리를 이용하여 클라이언트 기기에 응용 프로그램을 전송, 설치하는 과정을 순차적으로 나타낸 흐름도,
도 7은 본 발명에 따른 다운로드 서버에서 분할 공유 라이브러리를 이용하여 클라이언트 기기에 응용 프로그램을 업데이트하는 과정을 순차적으로 나타낸 흐름도.
<도면의 주요부분에 대한 부호의 설명>
60 : 다운로드 서버 61 : 응용 프로그램 저장부
63 : 의존성 분석부 64 : 분할 공유 라이브러리 생성부
65 : 데이터베이스 67 : 제어부
69 : 접속 모듈 80 : 클라이언트 기기
본 발명은 응용 프로그램의 설치 기술에 관한 것으로서, 특히 응용 프로그램에서 사용하는 공유 라이브러리를 분할하고, 분할된 공유 라이브러리들을 이용하여 응용 프로그램을 설치 및 업데이트하여 다운로드를 최소화할 수 있는 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용 프로그램 설치 및 업데이트 방법에 관한 것이다.
일반적으로 시스템이 예를 들어, 50개∼100개의 프로세스를 동작시킨다면, 각 프로세스는 각각 printf와 scanf의 실행 가능한 코드의 복사본을 가지고 동작하게 된다. 이것은, 메모리 공간의 중대한 낭비를 초래한다.
공유 라이브러리는, 이러한 정적 라이브러리의 단점을 해결하고, 런-타임때 메모리의 임의의 위치로 로드될 수 있는 오브젝트 모듈로서, 메모리에서 프로그램 과 링킹될 수 있다. 그리고, 공유 라이브러리는 종종 공유 오브젝트라고도 불리운데, 대부분의 유닉스 시스템에서는 .so로 공유 라이브러리 파일명이 끝나고, HP-UX에서는 .sl로 공유 라이브러리 파일명이 끝나고, 마이크로 소프트사는 DLL(Dynamic Link Libraries)로 부른다.
이러한 공유 라이브러리 기술은, 두 개 이상의 응용 프로그램이 공통으로 사용하는 목적 코드가 중복되어 메모리 상에 적재되는 정적 라이브러리 기술의 문제점을 해결하기 위하여, 공통으로 사용되는 목적 코드를 공유 라이브러리화하여 메모리상에서 공유함으로써 메모리 요구량을 최소화하는 기술이다. 그러므로, 공유 라이브러리들은 응용 프로그램에서 의존성을 가질 개연성이 있는 모든 목적 코드들을 모두 포함하게 된다.
도 1은 종래 기술에 의한 공유 라이브러리에 대한 의존성을 가진 응용 프로그램 구조를 나타낸 도면이다.
도 1에 도시된 바와 같이, 종래의 응용 프로그램들은(App1, App2)(10, 20)은 한 개 이상의 공유 라이브러리들(libA.so, libB.so, libC.so)(30, 40, 50)에 대하여 의존성을 가진다. 참고로, 도 1에 도시한 두 개의 응용 프로그램들(App1, App2)(10, 20)은 각각 두 개의 공용 라이브러리(libA.so, libB.so)(30, 40)(libB.so, libC.so)(40, 50)에 대해 의존성을 가지고 있지만, 이는 설명의 편의를 위한 것으로, 통상의 응용 프로그램은 두 개 이상의 라이브러리에 대해 의존성을 가질 수도 있다.
도 1에서 첫 번째 응용 프로그램(App1)(10)은 공유 라이브러리 libA.so(30) 내에 있는 목적 코드 a1.o와 a2.o, 및 공유 라이브러리 libB.so(40)내에 있는 목적 코드 b3.o에 의존성을 가지고 있으나, 의존성을 가진 목적 코드들이 포함되어 있는 라이브러리 libA.so(30)과 libB.so(40)에 의존하는 결과를 가진다. 마찬가지로 두 번째 응용프로그램(App2)(20)은 공유 라이브러리 libB.so(40)내에 있는 목적 코드 b3.o와 공유 라이브러리 libC.so(50)내에 있는 목적 코드 c1.o에 의존성을 가지고 있으나, 결과적으로 의존성을 가진 목적 코드들이 포함되어 있는 라이브러리 libB.so(40)과 libC.so(50)에 의존한다.
이와 같이, 종래 공유 라이브러리는 실제로 존재하는 의존성(목적 코드에 대한 의존성)보다 과장된 의존성(의존하는 목적 코드가 포함된 공유 라이브러리에 대한 의존성)으로 표현된다. 이는 공유 라이브러리 구성에서 의존성의 가능성이 있는 목적 코드들을 하나의 공유 라이브러리 내에 모아놓았기 때문에 발생한다.
대부분의 응용 프로그램들은, 공유 라이브러리에 포함된 목적 코드 중 실제로는 일 부분만을 사용함에도 불구하고, 사용하지 않는 목적 코드가 포함된 공유 라이브러리 전체를 링크하여야 한다.
따라서, 종래의 응용프로그램 다운로드 방법은, 응용 프로그램들이 사용하는 공유 라이브러리들을 실제 사용하는 목적코드 외에도 사용되지 않는 목적 코드도 포함된 상태로 다운로드하므로, 응용 프로그램이 설치되는 클라이언트 기기의 메모리를 필요이상으로 점유하게 되는 문제점이 있다. 또한, 응용 프로그램을 구성하는 목적 코드의 일부만 업데이트된 경우라도, 업데이트된 목적 코드만을 다운로드할 수 없기 때문에 업데이트된 목적 코드가 포함한 공유 라이브러리 전체를 다시 다운로드해야 하는 문제점이 있다.
이러한 문제점들은, PC와 같이 응용 프로그램이 설치되는 기기의 메모리가 충분하거나 다운로드를 사용하지 않고 저장 매체를 통하여 설치하는 경우 문제가 되지 않으나, 모바일 기기와 같이 제한된 메모리상에서 다운로드를 통하여 응용 프로그램을 설치하고 업데이트하는 상황에서는 필요이상의 통신 회선 사용으로 인한 비용 상승의 문제 및 응용 프로그램 실행시 메모리 부족 현상을 초래할 수 있다.
본 발명의 목적은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 응용 프로그램이 실제 사용하는 목적 코드를 갖는 공유 라이브러리로 분할하고, 분할된 공유 라이브러리의 응용 프로그램을 클라이언트 기기에 전송함으로써 응용 프로그램의 다운로드에 필요한 통신량을 줄일 수 있고, 응용 프로그램이 설치되는 클라이언트 기기의 메모리 요구량도 줄일 수 있는 다운로드 서버를 제공하는데 있다.
본 발명의 다른 목적은, 클라이언트 기기의 설치 또는 업데이트 요청에 의해 응용 프로그램에서 사용하는 공유 라이브러리를 실제 사용하는 목적 코드별로 분할하고, 분할된 공유 라이브러리별로 응용 프로그램을 재링크한 후에 이를 클라이언트 기기에 전송함으로써 응용 프로그램의 다운로드에 필요한 통신량을 줄일 수 있고, 응용 프로그램이 설치되는 클라이언트 기기의 메모리 요구량도 줄일 수 있는 공유 라이브러리의 분할을 이용한 응용 프로그램 설치 및 업데이트 방법을 제공하는데 있다.
상기 목적을 달성하기 위하여 본 발명은, 클라이언트 기기에서 요청한 응용 프로그램을 다운로드하는 서버에 있어서, 응용 프로그램의 기존 공유 라이브러리에 대한 의존성을 분석하여 실제로 사용되는 목적 코드를 분리하는 의존성 분석부와, 분석 결과에 따라 기존 공유 라이브러리 중에서 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하는 분할 공유 라이브러리 생성부와, 응용 프로그램에서 실제 사용하는 목적 코드만을 갖는 공유 라이브러리로 분할하여 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 라이브러리에 링크된 응용 프로그램을 클라이언트 기기에 다운로드(전송)하도록 제어하는 제어부를 포함한다.
상기 다른 목적을 달성하기 위하여 본 발명은, 다운로드 서버에서 클라이언트 기기의 설치 요청한 응용 프로그램을 다운로드(전송)하는 방법에 있어서, 응용 프로그램이 실제로 사용되는 목적 코드를 갖는 분할 공유 라이브러리에 링크된 형태인지 확인하는 단계와, 응용 프로그램이 분할 공유 라이브러리에 링크된 형태가 아닐 경우 응용 프로그램에 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 응용 프로그램을 재링크하는 단계와, 응용 프로그램이 분할 공유 라이브러리에 링크되었을 경우 다운로드 서버에서 상기 클라이언트 기기에 분할 공유 라이브러리와 해당 응용 프로그램을 다운로드(전송)하는 단계를 포함한다.
상기 다른 목적을 달성하기 위하여 본 발명의 다른 방법은, 다운로드 서버에서 클라이언트 기기의 업데이트 요청한 응용 프로그램을 다운로드(전송)하는 방법에 있어서, 응용 프로그램이 실제로 사용되는 목적 코드를 갖는 분할 공유 라이브 러리에 링크된 형태인지 확인하는 단계와, 응용 프로그램이 분할 공유 라이브러리에 링크된 형태가 아닐 경우 응용 프로그램에 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 응용 프로그램을 재링크하는 단계와, 응용 프로그램이 분할 공유 라이브러리에 링크되었을 경우 다운로드 서버에서 클라이언트 기기에 업데이트 대상의 분할 공유 라이브러리와 해당 응용 프로그램을 다운로드(전송)하여 업데이트하는 단계를 포함한다.
이하, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 본 발명의 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 더욱 상세히 설명하기로 한다. 본 명세서에서 기재한 "A가 B에 대하여 의존성을 가진다" 또는 "A가 B에 의존한다"란 용어는, "A가 소기의 목적을 달성하기 위해서 A가 접근할 수 있는 위치에 B가 반드시 있어야 함"을 의미한다. 그리고, 본 명세서에서 기재한 "응용 프로그램"은 공유 라이브러리만을 사용하거나, 정적 라이브러리와 공유라이브러리를 혼용하는 응용프로그램으로 한정하고, 정적 라이브러리만을 사용하는 응용 프로그램은 제외한다.
도 2는 본 발명에 따라 분할 공유 라이브러리와 응용 프로그램을 제공하는 다운로드 서버와 클라이언트 기기를 간략하게 나타낸 구성도이다.
본 발명의 다운로드 서버(60)는, PC, 모바일 기기 등과 같은 클라이언트 기기(80)에 제공하기 위한 응용 프로그램을 저장하는 저장부(61)와, 응용 프로그램의 기존 공유 라이브러리에 대한 의존성을 분석하여 실제로 사용되는 목적 코드를 분 리하는 의존성 분석부(63)와, 의존성 분석부(63)의 분석 결과에 따라 기존 공유 라이브러리 중에서 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하는 분할 공유 라이브러리 생성부(64)와, 기존 공유 라이브러리와 분할된 공유 라이브러리와의 매핑 정보를 저장하고, 응용 프로그램 별로 기존 공유 라이브러리와의 의존성 및 분할 공유 라이브러리와의 의존성 정보(예를 들어, 버전, 의존 목적 코드 등)를 저장하는 데이터베이스(65)와, 서버의 내부 구성을 제어하여 클라이언트 기기(80)의 응용 프로그램 요청에 의해 응용 프로그램에서 실제 사용하는 목적 코드만을 갖는 공유 라이브러리로 분할하여 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 응용 프로그램을 클라이언트 기기(80)에 다운로드(전송)하도록 제어하는 제어부(67) 등을 포함한다.
그리고, 다운로드 서버(60)는, 클라이언트 기기(80)에 유/무선망(70)을 통해 정보를 전송하기 위한 접속 모듈(69)을 더 포함한다.
또한, 클라이언트 기기(80)는 다운로드 서버(60)로부터 다운로드된 분할 공유 라이브러리 및 응용 프로그램을 메모리(82)에 저장하고, 이를 설치 또는 업데이트한다.
이와 같이 구성된 본 발명의 다운로드 서버(60)와 클라이언트 기기(80) 사이에서는, 유/무선망(70)을 통해 다운로드 서버(60)에 접속된 클라이언트 기기(80)가 특정 응용 프로그램의 설치 또는 업데이트를 요청할 경우 다운로드 서버(60)는 의존성 분석부(63)를 통해 설치 또는 업데이트 요청을 받은 응용 프로그램에 대한 분할 공유 라이브러리 정보 분석하고, 분할 공유 라이브러리 생성부(64)를 통해 분석 결과에 따라 응용 프로그램을 재구성하여 기존 공유 라이브러리 중에서 실제 응용프로그램이 사용하는 목적 코드만을 갖는 분할 공유 라이브러리를 생성한다. 이때, 다운로드 서버(60)는 응용 프로그램이 의존하고 있는 공유 라이브러리와 실제 의존성이 있는 목적 코드별로 분할된 분할 공유 라이브러리의 정보를 데이터베이스(65)에 저장한다.
다운로드 서버(60)는 설치 또는 업데이터에 필요한 응용 프로그램을 분할 공유 라이브러리만 사용하도록 재링크하고, 해당 응용 프로그램과 분할 공유 라이브러리를 유/무선망(70)을 통해 클라이언트 기기(80)에 전송한다.
도 3은 본 발명에 따라 다운로드 서버에서 분할된 공유 라이브러리를 생성하는 과정을 순차적으로 나타낸 흐름도이다.
도 3을 참조하면, 본 발명의 다운로드 서버는, 클라이언트 기기에서 응용 프로그램의 설치 또는 업데이트를 요청할 경우 다음과 같이 응용 프로그램에서 사용하는 공유 라이브러리를 분할, 재링크한다.
우선, 다운로드 서버는, 클라이언트 기기에서 요청한 응용 프로그램을 확인하고, 해당 응용 프로그램이 의존하는 공유 라이브러리를 확인한다.(S100∼S110)
다운로드 서버는, 해당 응용 프로그램의 공유 라이브러리 내에서 실제로 응용 프로그램에 의존하고 있는 목적 코드들을 확인한다.(S120)
다운로드 서버는, 응용 프로그램이 의존하고 있는 공유 라이브러리와 실제 의존성이 있는 목적 코드 정보를 의존성 관계표로서, 데이터베이스에 기록한다.(S130)
다운로드 서버는, 해당 응용 프로그램을 의존하는 공유 라이브러리가 더 있는지 판단한다.(S140)
S140 판단 결과, 의존하는 공유 라이브러리가 더 있을 경우 다운로드 서버는, 해당 응용 프로그램이 추가적으로 의존하는 공유 라이브러리에 대하여 S120 단계부터 반복 수행하고, 그렇지 않을 경우 클라이언트 기기에서 요청한 설치 또는 업데이트할 응용 프로그램이 더 있는지 판단한다.(S150)
S150 판단 결과, 설치할 응용 프로그램이 더 있을 경우 다운로드 서버는 응용 프로그램이 의존하는 공유 라이브러리를 확인하는 S110 단계부터 반복 수행한다.
만약 S150 판단 결과, 설치할 응용 프로그램이 더 없을 경우 다운로드 서버는 기존 공유 라이브러리에 링크된 응용 프로그램으로부터 공유 라이브러리 의존성 정보와 설치할 응용 프로그램들에 대한 의존성 정보의 분석이 완료되었다고 판단한다. 그리고, 다운로드 서버는 의존성 관계표에 기록된 목적 코드별로 해당 목적 코드만을 포함하는 공유 라이브러리를 분할하여 분할 공유 라이브러리를 생성한다.(S160)
다운로드 서버는, 의존성 관계표에 기록된 응용 프로그램별로 분할 공유 라이브러리만을 사용하도록 재링크한다.(S170)
도 4는 본 발명에 따른 다운로드 서버에서 응용 프로그램과 분할 공유 라이브러리 사이의 의존성 관계의 일 예를 나타낸 도면으로서, 도 1에서 예시한 응용 프로그램의 내용에 따라 의존성 관계표를 예시하였다.
도 4를 참조하면, 두 개 응용 프로그램(App1, App2)이 의존하고 있는 공유 라이브러리와 실제 의존성이 있는 목적 코드 정보를 기록한 의존성 관계표는, 응용 프로그램명(100)과, 버전(version)(110)과, 의존 공유 라이브러리명(120)과, 의존 목적 코드명(130)과, 분할 공유 라이브러리명(140) 등을 포함한다.
여기서, 버전(110)은, 해당 응용 프로그램의 버전을 나타내며, 동일한 응용 프로그램의 서로 다른 버전을 구분하기 위한 것이다. 즉, 응용 프로그램을 설치시 최신 버전을 확인하고, 응용 프로그램의 업데이트시 이전 버전과 최신 버전의 의존성 관계의 차이를 분석하기 위한 용도로 사용된다.
분할 공유 라이브러리명(140)은, 의존성 관계표의 해당 행의 의존 공유 라이브러리명(120)을 가진 공유 라이브러리에서 동일 행의 의존 목적 코드명에 해당하는 목적 코드를 추출하여 분할 공유 라이브러리화한 것이다.
한편, 분할 공유 라이브러리명(140)에서 이름을 통하여, 하나의 분할 공유 라이브러리와 그것이 유래한 기존 공유 라이브러리로의 포함관계를 표시하고 있으나, 이는 설명을 편의를 위한 것이며, 포함 관계를 표현할 수 있는 방법을 이름짓는 방식으로 제한하는 것은 아니다.
도 5는 본 발명에 따른 다운로드 서버에서 분할 공유 라이브러리에 링크된 응용 프로그램 구조를 나타낸 도면이다.
도 5를 참조하면, 본 발명에 따른 응용 프로그램들(App1, App2)(200, 210)은 적어도 한 개 이상의 공유 라이브러리(libA_a1.so, libB_a2.so, libB_b3.so, libC_c1.so)(220, 230, 240, 250)에 대하여 의존성을 가진다.
첫 번째 응용 프로그램(App1)(200)은, 공유 라이브러리 libA_a1.so(220), libB_a2.so(230), libB_b3.so(240)내에 각각 있는 목적 코드 a1.o, a2.o, b3.o에 의존성을 가지고 있다. 그리고, 두 번째 응용 프로그램(App2)(210)은, 공유 라이브러리 libB_b3.so(240)에 있는 목적 코드 b3.o와 공유 라이브러리 libC_c1.so(250)내에 있는 목적 코드 c1.o에 의존성을 가지고 있다.
즉, 도 1에 언급된 종래 기술에서 응용 프로그램 App1은 공유 라이브러리 libA.so(30)과 libB.so(40)에 의존하였으나, 본 발명에서는 동일한 응용 프로그램 App1이 도 5와 같이 분할 공유 라이브러리 libA_a1.so(220), libA_a2.so(230), libB_b3.so(240)으로 의존성이 바뀌었다. 또한 도 1에서의 응용 프로그램 App2도 마찬가지로 공유 라이브러리인 libB.so(40)와 libC.so(50)에 의존하였으나, 본 발명의 응용 프로그램 App2역시 분할 공유 라이브러리인 libB_b3.so(240)와 libC_c1.so(250)로 의존성이 바뀌었다.
그러므로, 본 발명은 응용 프로그램의 외존성을 기존 공유 라이브러리에 대한 의존성에서 분할 공유 라이브러리에 대한 의존성으로 변환시키기 때문에 다운로드를 통한 응용 프로그램 설치시 실제 사용하지도 않는 목적 코드까지 포함된 기존 공유 라이브러리대신에, 실제 응용프로그램이 사용하는 목적 코드만을 갖는 분할 공유 라이브러리들만을 다운로드할 수 있어 다운로드에 필요한 통신량을 줄일 수 있고, 응용 프로그램이 설치되는 클라이언트 기기의 메모리 요구량도 실제 설치에 필요한 양만큼 요구하므로 메모리 용량을 줄일 수 있다.
도 6은 본 발명에 따른 다운로드 서버에서 분할 공유 라이브러리를 이용하여 클라이언트 기기에 응용 프로그램을 전송, 설치하는 과정을 순차적으로 나타낸 흐름도이다.
도 6을 참조하면, 본 발명에 따라 다운로드 서버에서 공유 라이브러리의 분할을 이용하여 클라이언트 기기에 설치할 응용 프로그램을 전송하는 방법은 다음과 같이 진행한다.
우선, 다운로드 서버는 클라이언트 기기로부터 설치 요청받은 응용 프로그램이 분할 공유 라이브러리에 링크된 형태인지를 확인한다.(S200)
S200 확인 결과, 설치 요청받은 응용 프로그램이 분할 공유 라이브러리에 링크된 형태가 아닐 경우 다운로드 서버는 설치 요청받은 응용 프로그램을 대상으로 도 2와 같은 과정을 통해 분할 공유 라이브러리를 생성한다.(S210) 즉, 현재 설치 요청을 받은 응용 프로그램이 다운로드 서버 입장에서 이전에 다른 클라이언트 기기에서라도 한번이라도 설치 요청받은 응용 프로그램이었다면, 이미 다운로드 서버에는 분할 공유 라이브러리에 링크된 형태의 응용 프로그램이 존재하지만, 현재 설치 요청이 해당 응용 프로그램에 대한 다운로드 서버에서의 최초 설치 요청이라면 분할 공유 라이브러리에 링크된 형태로 존재하지 않기 때문에 도 2의 분할 공유 라이브러리를 생성하는 과정을 실행하는 것이다.
만약 S200 확인 결과, 설치 요청받은 응용 프로그램이 분할 공유 라이브러리에 링크된 형태이거나, S210 단계를 수행하였다면, 다운로드 서버는 현재 설치 요청된 응용 프로그램에 필요한 '설치 예정 분할 공유 라이브러리 목록'을 도 3과 같은 의존성 관계표를 이용하여 확인한다.(S220)
확인된 '설치 예정 분할 공유 라이브러리 목록'에 이미 클라이언트 기기에 설치되어 있는 분할 공유 라이브러리가 포함될 수 있으므로, 다운로드 서버는 설치 요청한 클라이언트 기기에 이미 설치되어 있는 응용 프로그램의 목록을 확인하고, 다시 응용 프로그램 목록으로부터 '이미 설치된 분할 공유 라이브러리 목록'을 확인한다.(S230) 여기서, 클라이언트 기기에 이미 설치된 응용 프로그램 목록을 확인하는 방법은, 다운로드 서버에서 클라이언트 기기 별로 설치한 응용 프로그램 목록을 유지하거나, 필요할 때마다 다운로드 서버가 클라이언트 기기에 요청, 혹은 클라이언트 기기가 응용 프로그램 설치 요청시 자신에게 이미 설치되어 있는 응용 프로그램 목록을 같이 다운로드 서버에 전송한다.
다운로드 서버는, 확인된 '설치 예정 분할 공유 라이브러리 목록'에서 '이미 설치된 분할 공유 라이브러리 목록'을 제외한 결과인 '설치할 분할 공유 라이브러리 목록'(즉, 클라이언트 기기로 전송할 분할 공유 라이브러리 목록)을 계산한다.(S240)
그리고, 다운로드 서버는, 상기 S240 단계에서 계산된 '설치할 분할 공유 라이브러리 목록'에 있는 분할 공유 라이브러리를 전송하면서, 설치 요청된 응용 프로그램을 함께 클라이언트 기기에 전송한다.(S250)
클라이언트 기기는, 다운로드 서버로부터 전송받은 분할 공유 라이브러리들과 응용 프로그램을 해당 기기의 설치 방법에 따라 설치한다.
도 7은 본 발명에 따른 다운로드 서버에서 분할 공유 라이브러리를 이용하여 클라이언트 기기에 응용 프로그램을 업데이트하는 과정을 순차적으로 나타낸 흐름 도이다.
도 7을 참조하면, 다운로드 서버는 클라이언트 기기로부터 응용 프로그램의 업데이트 요청을 받아 다음과 같이 분할 공유 라이브러리와 이에 링크된 응용 프로그램의 업데이트 과정을 수행한다.
우선, 다운로드 서버는, 클라이언트 기기가 업데이트 요청한 응용 프로그램에 대하여 분할 공유 라이브러리에 링크된 형태인지를 확인한다.(S300)
S300 확인 결과, 현재 업데이트 요청을 받은 응용 프로그램이 다운로드 서버에서 이전에 다른 클라이언트 기기에서 한번이라도 업데이트 요청받은 응용 프로그램이 아닐 경우 다운로드 서버는 업데이트 요청받은 응용 프로그램을 대상으로 도 2와 같은 분할 공유 라이브러리를 생성한다.(S310) 즉, 현재 업데이트 요청을 받은 응용 프로그램이 다운로드 서버에서 이전에 다른 클라이언트 기기에서 한번이라도 설치 요청받은 응용 프로그램이었다면, 이미 다운로드 서버에는 분할 공유 라이브러리에 링크된 형태의 응용 프로그램이 존재하지만, 현재 업데이트 요청이 해당 응용 프로그램에 대한 다운로드 서버에서의 최초 설치 요청이라면 분할 공유 라이브러리에 링크된 형태로 존재하지 않기 때문에 도 2의 분할 공유 라이브러리의 생성 과정을 수행하는 것이다.
만약 S300 확인 결과, 현재 업데이트 요청 받은 응용 프로그램이 분할 공유 라이브러리에 링크된 형태이거나, S310 단계를 수행하였다면, 다운로드 서버는 현재 업데이트 요청받은 응용 프로그램에 필요한 '설치 예정 분할 공유 라이브러리 목록'을 도 3과 같은 의존성 관계표를 이용하여 확인한다.(S320) 즉, 업데이트 요 청시 클라이언트 기기에서 응용 프로그램의 특정 버전을 요청한다면, 응용 프로그램의 해당 버전에 따른 분할 공유 라이브러리 목록을 확인하고, 특정 버전을 요청하지 않는다면 가장 최신 버전을 기준으로 분할 공유 라이브러리 목록을 확인한다.
확인된 '설치 예정 분할 공유 라이브러리 목록'에 이미 클라이언트 기기에 설치되어 있는 분할 공유 라이브러리가 포함될 수 있으므로, 다운로드 서버는 설치 요청한 클라이언트 기기에 '이미 설치되어 있는 응용 프로그램의 목록'을 확인하고, 다시 응용 프로그램 목록으로부터 '이미 설치된 분할 공유 라이브러리 목록'을 확인한다.(S330) 여기서, 클라이언트 기기에 이미 설치된 응용 프로그램 목록을 확인하는 방법은, 다운로드 서버에서 클라이언트 기기 별로 설치한 응용 프로그램 목록을 유지하거나, 필요할 때마다 다운로드 서버가 클라이언트 기기에 요청, 혹은 클라이언트 기기가 응용 프로그램 설치 요청시 자신에게 이미 설치되어 있는 응용 프로그램 목록을 같이 전송한다.
그리고, 다운로드 서버는, 확인된 '설치 예정 분할 공유 라이브러리 목록'에서 클라이언트 기기에 설치된 응용 프로그램과 확인된 '이미 설치된 분할 공유 라이브러리 목록'을 분석하여 '추가할 분할 공유 라이브러리 목록', '교체할 분할 공유 라이브러리 목록', '삭제할 분할 공유 라이브러리 목록'을 확인한다.(S340)
여기서, '추가할 분할 공유 라이브러리 목록'은 해당 응용 프로그램의 업데이트를 위하여 클라이언트 기기에 새로운 설치가 필요한 분할 공유 라이브러리의 목록이다. 그리고, '삭제할 분할 공유 라이브러리 목록'은 이전 버전의 응용 프로그램에서 의존성을 가졌으나, 업데이트된 응용 프로그램에서는 의존성이 없어졌으 며 클라이언트 기기에 설치된 다른 응용 프로그램에서는 전혀 의존성이 없어 안전하게 삭제가 가능한 분할 공유 라이브러리의 목록이이다. 또한, '교체할 분할 공유 라이브러리 목록'은 업데이트된 응용 프로그램과 이전 응용 프로그램에서만 사용하는 분할 공유 라이브러리 중에서 분할 공유 라이브러리 자체가 업데이트된 경우에 필요한 분할 공유 라이브러리이다. 즉, 클라이언트 기기의 다른 응용 프로그램은 교체대상인 분할 공유 라이브러리에 의존성이 없으므로 업데이트하고자 하는 응용 프로그램을 위하여 즉각적인 교체가 가능한 분할 공유 라이브러리를 말한다. 만일 클라이언트 기기에 설치된 다른 응용 프로그램이 이전 버전의 분할 공유 라이브러리에 대한 의존성이 있다면, 교체 대신 업데이트된 분할 공유 라이브러리를 '추가할 공유 라이브러리 목록'에 넣어야, 기존 설치된 응용 프로그램의 동작을 보장할 수 있다.
그리고나서, 다운로드 서버는, 확인된 내용에 기반하여 업데이트된 응용 프로그램과 더불어 추가 또는 교체에 필요한 분할 공유라이브러리, '교체할 분할 공유 라이브러리 목록', '삭제할 공유 라이브러리들 목록'을 클라이언트 기기에 전송한다.(S350)
이후, 클라이언트 기기는, 다운로드 서버로부터 전송받은 분할 공유 라이브러리들과 '교체할 분할 공유 라이브러리 목록', '삭제할 공유 라이브러리들 목록' 및 업데이트된 응용 프로그램을 해당 기기의 응용 프로그램 업데이트 절차에 따라 설치한다.
이상 설명한 바와 같이, 본 발명은, 클라이언트 기기의 설치 또는 업데이트 요청에 의해 응용 프로그램에서 사용하는 공유 라이브러리를 실제 사용하는 목적 코드별로 분할하고, 분할된 공유 라이브러리별로 응용 프로그램을 재링크한 후에 이를 클라이언트 기기에 전송한다.
그러므로, 본 발명은 응용 프로그램의 다운로드에 필요한 통신량을 줄일 수 있고, 응용 프로그램이 설치되는 클라이언트 기기의 메모리 요구량도 줄일 수 있다.
또한, 본 발명은 응용 프로그램에서 사용되는 목적 코드의 일부가 업데이트되는 경우에도 필요한 목적 코드만을 업데이트하여 불필요한 다운로드를 유발하지 않아도 되기 때문에 업데이트된 목적 코드 및 이를 사용하는 응용 프로그램간의 의존성 관리가 용이해진다는 장점을 가진다.
한편, 본 발명은 상술한 실시예에 국한되는 것이 아니라 후술되는 청구범위에 기재된 본 발명의 기술적 사상과 범주내에서 당업자에 의해 여러 가지 변형이 가능하다.
Claims (8)
- 클라이언트 기기에서 요청한 응용 프로그램을 다운로드하는 서버에 있어서,상기 응용 프로그램의 기존 공유 라이브러리에 대한 의존성을 분석하여 실제로 사용되는 목적 코드를 분리하는 의존성 분석부와,상기 분석 결과에 따라 기존 공유 라이브러리 중에서 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하는 분할 공유 라이브러리 생성부와,상기 응용 프로그램에서 실제 사용하는 목적 코드만을 갖는 공유 라이브러리로 분할하여 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 라이브러리에 링크된 응용 프로그램을 상기 클라이언트 기기에 다운로드(전송)하도록 제어하는 제어부를 포함하는 다운로드 서버.
- 제 1항에 있어서,상기 서버는, 상기 응용 프로그램별로 분할 공유 라이브러리와의 의존성 정보를 저장하는 데이터베이스를 더 포함하는 것을 특징으로 하는 다운로드 서버.
- 다운로드 서버에서 클라이언트 기기가 설치 요청한 응용 프로그램을 상기 클라이언트 기기에 설치하는 방법에 있어서,상기 응용 프로그램이 실제로 사용되는 목적 코드를 갖는 분할 공유 라이브러리에 링크된 형태인지 확인하는 단계와,상기 응용 프로그램이 상기 분할 공유 라이브러리에 링크된 형태가 아닐 경우 상기 응용 프로그램에 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 응용 프로그램을 재링크하는 단계와,상기 응용 프로그램이 상기 분할 공유 라이브러리에 링크되었을 경우 상기 다운로드 서버에서 상기 클라이언트 기기에 상기 분할 공유 라이브러리와 해당 응용 프로그램을 다운로드(전송)하여 설치하는 단계를 포함하는 공유 라이브러리의 분할을 이용한 응용 프로그램 설치 방법.
- 제 3항에 있어서,상기 분할 공유 라이브러리를 생성하는 단계는,상기 다운로드 서버에서 상기 클라이언트 기기에서 요청한 응용 프로그램이 의존하는 공유 라이브러리 내에서 실제로 응용 프로그램에 의존하고 있는 목적 코드들을 확인하는 단계와,상기 다운로드 서버에서 상기 응용 프로그램이 의존하고 있는 공유 라이브러리와 실제 의존성이 있는 목적 코드 정보를 의존성 관계표로 데이터베이스에 기록하는 단계와,상기 다운로드 서버에서 상기 응용 프로그램에 실제 의존성이 있는 목적 코드만을 포함하는 공유 라이브러리를 분할하여 분할 공유 라이브러리를 생성하는 단 계와,상기 다운로드 서버에서, 상기 의존성 관계표의 목적 코드 정보에 따른 응용 프로그램별로 분할 공유 라이브러리만을 사용하도록 재링크하는 단계를 더 포함하는 것을 특징으로 하는 공유 라이브러리의 분할을 이용한 응용 프로그램 설치 방법.
- 제 3항에 있어서,상기 분할 공유 라이브러리와 해당 응용 프로그램을 전송하는 단계는,상기 다운로드 서버에서 상기 응용 프로그램에 필요한 '설치 예정 분할 공유 라이브러리 목록'을 확인하는 단계와,상기 다운로드 서버에서 상기 클라이언트 기기에 이미 설치되어 있는 응용 프로그램의 목록을 확인하고, 상기 응용 프로그램 목록으로부터 '이미 설치된 분할 공유 라이브러리 목록'을 확인하는 단계와,상기 다운로드 서버에서 '설치 예정 분할 공유 라이브러리 목록'에서 '이미 설치된 분할 공유 라이브러리 목록'을 제외하여 '설치할 분할 공유 라이브러리 목록'을 계산하는 단계와,상기 다운로드 서버에서 상기 계산된 '설치할 분할 공유 라이브러리 목록'에 있는 분할 공유 라이브러리와 해당 응용 프로그램을 함께 상기 클라이언트 기기에 전송하는 단계를 더 포함하는 것을 특징으로 하는 공유 라이브러리의 분할을 이용한 응용 프로그램 설치 방법.
- 다운로드 서버에서 클라이언트 기기가 업데이트 요청한 응용 프로그램을 상기 클라이언트 기기에 다운로드(전송)하여 업데이트시키는 방법에 있어서,상기 응용 프로그램이 실제로 사용되는 목적 코드를 갖는 분할 공유 라이브러리에 링크된 형태인지 확인하는 단계와,상기 응용 프로그램이 상기 분할 공유 라이브러리에 링크된 형태가 아닐 경우 상기 응용 프로그램에 실제 사용된 목적 코드만을 갖는 분할 공유 라이브러리를 생성하고, 생성된 분할 공유 라이브러리와 해당 응용 프로그램을 재링크하는 단계와,상기 응용 프로그램이 상기 분할 공유 라이브러리에 링크되었을 경우 상기 다운로드 서버에서 상기 클라이언트 기기에 상기 업데이트 대상의 분할 공유 라이브러리와 해당 응용 프로그램을 다운로드(전송)하여 업데이트하는 단계를 포함하는 공유 라이브러리의 분할을 이용한 응용 프로그램 업데이트 방법.
- 제 6항에 있어서,상기 분할 공유 라이브러리를 생성하는 단계는,상기 다운로드 서버에서 상기 클라이언트 기기에서 요청한 응용 프로그램이 의존하는 공유 라이브러리 내에서 실제로 응용 프로그램에 의존하고 있는 목적 코드들을 확인하는 단계와,상기 다운로드 서버에서 상기 응용 프로그램이 의존하고 있는 공유 라이브러리와 실제 의존성이 있는 목적 코드 정보를 의존성 관계표로 데이터베이스에 기록하는 단계와,상기 다운로드 서버에서 상기 응용 프로그램에 실제 의존성이 있는 목적 코드만을 포함하는 공유 라이브러리를 분할하여 분할 공유 라이브러리를 생성하는 단계와,상기 다운로드 서버에서, 상기 의존성 관계표의 목적 코드 정보에 따른 응용 프로그램별로 분할 공유 라이브러리만을 사용하도록 재링크하는 단계를 더 포함하는 것을 특징으로 하는 공유 라이브러리의 분할을 이용한 응용 프로그램 업데이트 방법.
- 제 6항에 있어서,상기 업데이트 대상의 분할 공유 라이브러리와 해당 응용 프로그램을 전송하는 단계는,상기 다운로드 서버에서 상기 업데이트 요청받은 응용 프로그램에 필요한 '설치 예정 분할 공유 라이브러리 목록'을 확인하는 단계와,상기 다운로드 서버에서 상기 클라이언트 기기에 이미 설치되어 있는 응용 프로그램의 목록을 확인하고, 상기 응용 프로그램 목록으로부터 '이미 설치된 분할 공유 라이브러리 목록'을 확인하는 단계와,상기 다운로드 서버에서 '설치 예정 분할 공유 라이브러리 목록'과 상기 클 라이언트 기기에 설치된 응용 프로그램과 상기 분할 공유 라이브러리 목록을 분석하여 '추가, 교체 또는 삭제할 분할 공유 라이브러리 목록'을 확인하는 단계와,상기 다운로드 서버에서 상기 '추가, 교체 또는 삭제할 분할 공유 라이브러리 목록'에 있는 분할 공유 라이브러리와 해당 응용 프로그램을 함께 상기 클라이언트 기기에 전송하여 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 공유 라이브러리의 분할을 이용한 응용 프로그램 업데이트 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060124059A KR100835269B1 (ko) | 2006-12-07 | 2006-12-07 | 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 |
PCT/KR2007/005029 WO2008069431A1 (en) | 2006-12-07 | 2007-10-15 | Download server and method for installing and updating application program using partitioning of shared library |
US12/515,566 US20100017503A1 (en) | 2006-12-07 | 2007-10-15 | Download server and method for installing and updating application program using partitioning of shared library |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060124059A KR100835269B1 (ko) | 2006-12-07 | 2006-12-07 | 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100835269B1 true KR100835269B1 (ko) | 2008-06-05 |
Family
ID=39492265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060124059A KR100835269B1 (ko) | 2006-12-07 | 2006-12-07 | 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100017503A1 (ko) |
KR (1) | KR100835269B1 (ko) |
WO (1) | WO2008069431A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753629A (zh) * | 2008-12-16 | 2010-06-23 | 深圳富泰宏精密工业有限公司 | 手机软件同步系统及方法 |
US9553944B2 (en) * | 2010-12-29 | 2017-01-24 | Oracle International Corporation | Application server platform for telecom-based applications using an actor container |
GB2501287A (en) | 2012-04-18 | 2013-10-23 | Ibm | Installing applications at selected runtime instances |
US9509761B2 (en) | 2013-10-23 | 2016-11-29 | Sap Se | Open user interface |
WO2015120134A1 (en) * | 2014-02-06 | 2015-08-13 | Openpeak Inc. | Method and system for linking to shared library |
KR101810536B1 (ko) * | 2014-05-15 | 2017-12-20 | 에스케이테크엑스 주식회사 | 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 |
US10372761B2 (en) * | 2016-12-28 | 2019-08-06 | Sap Se | Auto-discovery of data lineage in large computer systems |
US10564959B2 (en) * | 2017-03-14 | 2020-02-18 | Google Llc | Shared software libraries for computing devices |
US10572275B2 (en) * | 2017-06-15 | 2020-02-25 | Microsoft Technology Licensing, Llc | Compatible dictionary layout |
US10846102B2 (en) | 2019-03-05 | 2020-11-24 | International Business Machines Corporation | Loading dependency library files from a shared library repository in an application runtime environment |
CN113064662A (zh) * | 2020-01-02 | 2021-07-02 | 北京沃东天骏信息技术有限公司 | 一种加载应用模块的方法、客户端和服务端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004059425A2 (en) * | 2002-12-23 | 2004-07-15 | Motorola, Inc | Method and apparatus for shared libraries on mobile devices |
JP2004206221A (ja) * | 2002-12-24 | 2004-07-22 | Hewlett Packard Co <Hp> | 分割されたデータライブラリにおけるファイバチャネルドライブアクセスをセキュア化するシステム |
KR20060062240A (ko) * | 2004-12-03 | 2006-06-12 | 한국전자통신연구원 | 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015953A1 (en) * | 2001-03-19 | 2004-01-22 | Vincent Jonathan M. | Automatically updating software components across network as needed |
JP2002373077A (ja) * | 2001-06-14 | 2002-12-26 | Nec Corp | 実行時ライブラリ検索方法及び装置、動的リンカ並びにプログラム |
US7062614B2 (en) * | 2001-12-28 | 2006-06-13 | Hewlett-Packard Development Company, L.P. | System and method for managing access to multiple devices in a partitioned data library |
-
2006
- 2006-12-07 KR KR1020060124059A patent/KR100835269B1/ko not_active IP Right Cessation
-
2007
- 2007-10-15 US US12/515,566 patent/US20100017503A1/en not_active Abandoned
- 2007-10-15 WO PCT/KR2007/005029 patent/WO2008069431A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004059425A2 (en) * | 2002-12-23 | 2004-07-15 | Motorola, Inc | Method and apparatus for shared libraries on mobile devices |
JP2004206221A (ja) * | 2002-12-24 | 2004-07-22 | Hewlett Packard Co <Hp> | 分割されたデータライブラリにおけるファイバチャネルドライブアクセスをセキュア化するシステム |
KR20060062240A (ko) * | 2004-12-03 | 2006-06-12 | 한국전자통신연구원 | 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법 |
Non-Patent Citations (1)
Title |
---|
1020060062240 |
Also Published As
Publication number | Publication date |
---|---|
WO2008069431A1 (en) | 2008-06-12 |
US20100017503A1 (en) | 2010-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100835269B1 (ko) | 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 | |
US6202207B1 (en) | Method and a mechanism for synchronized updating of interoperating software | |
US7779055B2 (en) | Device memory management during electronic file updating | |
US6199204B1 (en) | Distribution of software updates via a computer network | |
US6467084B1 (en) | Systems and methods for reprogramming an embedded device with program code using relocatable program code | |
US6360366B1 (en) | Systems and methods for automatic application version upgrading and maintenance | |
US7536683B2 (en) | Method of dynamically appending a library to an actively running program | |
US8930937B2 (en) | Intelligent patch checker | |
US7448034B2 (en) | Build time determination and installation of drivers on cloned systems | |
US7243346B1 (en) | Customized library management system | |
US5752042A (en) | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer | |
RU2367005C2 (ru) | Система и способ для обновления файлов с использованием корректирования сжатыми изменениями | |
US7797670B2 (en) | Mirrored file system | |
US20040034850A1 (en) | Servicing a component-based software product throughout the software product lifecycle | |
CN109739523B (zh) | 应用程序打包方法、装置、存储介质及终端 | |
EP1577766A2 (en) | Side-by-side drivers | |
RU2005118556A (ru) | Система и способ управления и передачи обновлений программного обеспечения | |
US20020092011A1 (en) | Methods and arrangements for managing devices | |
WO2004046919A1 (en) | Method and apparatus for migrating program components from a server to a client | |
US7181739B1 (en) | Installation relationship database | |
US20020091720A1 (en) | Methods and arrangements for providing improved software version control in managed devices | |
GB2348721A (en) | Automated software or data updating in distributed computing system | |
KR20050079625A (ko) | 객체 지향 프로그래밍 언어 및 툴에서의 버전닝 지원 방법 | |
KR20020004941A (ko) | 인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을위한 방법 및 장치 | |
US7389515B1 (en) | Application deflation system and method |
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: 20130424 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140430 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |