KR20030043998A - 활성 클라이언트 위치의 활성 애플리케이션 구성 요소로실시간 업데이트를 배포하는 방법 및 시스템 - Google Patents

활성 클라이언트 위치의 활성 애플리케이션 구성 요소로실시간 업데이트를 배포하는 방법 및 시스템 Download PDF

Info

Publication number
KR20030043998A
KR20030043998A KR10-2003-7005191A KR20037005191A KR20030043998A KR 20030043998 A KR20030043998 A KR 20030043998A KR 20037005191 A KR20037005191 A KR 20037005191A KR 20030043998 A KR20030043998 A KR 20030043998A
Authority
KR
South Korea
Prior art keywords
application component
update
configuration
client
updated
Prior art date
Application number
KR10-2003-7005191A
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 KR20030043998A publication Critical patent/KR20030043998A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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 Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

활성 클라이언트 위치를 업데이트하는 시스템은 활성 애플리케이션 구성 요소를 관리하는 플랫폼, 업데이트를 저장하는 구성 서버, 및 상기 구성 서버로부터 업데이트를 수신해서 상기 플랫폼에 수신된 업데이트를 통신하는 구성 클라이언트를 포함할 수 있다. 상기 플랫폼은 구성 클라이언트로부터 업데이트를 수신할 수 있다. 이어서, 상기 플랫폼은 활성 애플리케이션 구성 요소 중 선택된 것을 종료시킬 수 있다. 이후에, 상기 플랫폼은 상기 종료된 애플리케이션 구성 요소에 수신된 업데이트를 인가할 수 있다. 마지막으로, 상기 플랫폼은 상기 업데이트된 애플리케이션 구성 요소를 재로딩할 수 있다.

Description

활성 클라이언트 위치의 활성 애플리케이션 구성 요소로 실시간 업데이트를 배포하는 방법 및 시스템{REALTIME CONFIGURATION UPDATES AND SOFTWARE DISTRIBUTION TO ACTIVE CLIENT POSITIONS}
종래의 컴퓨팅 환경에서, 서버로부터 일 이상의 클라이언트 애플리케이션으로 소프트웨어를 배포하는 자동화된 방법이 종종 요구된다. 컴퓨팅 환경은 전형적으로 국지화되거나 특정화된 서비스를 일 이상의 클라이언트에 제공하는 일 이상의 서버로 이루어진다. 이들 배포 환경에 의해서 다양한 다른 종류의 데이터 저장부에 정보가 배포되게 된다. 다른 종류의 데이터 저장부로 정보를 확산시킨 결과 중 하나는 데이터가 용이하게 중복될 수 있다는 것이다. 그러나, 불필요한 중복으로 인해서 종종 일정하지 않은 업데이트가 발생된다.
배포된 컴퓨팅 환경에서 데이터에 대한 연산을 수행하는 효율적인 솔루션을제공하기 위해 다양한 방법이 사용되어 왔다. 상세하게는, 연산은 위치 추적, 주소 지정, 삭제 및 데이터의 수정을 포함할 수 있다. 한가지 솔루션은, 한 환경 내의 모든 데이터를 저장하는 중앙 저장부로서의 역할을 하는 디렉토리 서비스를 사용하는 것을 포함한다. 이 솔루션에 있어서, 디렉토리 서비스는, 거기에 포함되어 있는 데이터가 조작되는 단일 포인트이다.
배포 환경에서 데이터를 저장하고, 액세스하기 위해 디렉토리 서비스를 사용하는 것은 여러면에서 이로울 수 있다. 디렉토리 서비스는, 근거리 통신망(LAN)에서와 같이 국지화되거나 광역 통신망(WAN)에서와 같이 배포될 수 있는 리소스를 관리하기 위해 하나의 중앙 리소스를 제공한다. 더욱이, 하나의 중앙 저장부만이 존재하기 때문에, 환경내의 리소스는 최고의 성능을 보장하고, 그리고, 여분의 목적으로 복제될 수 있다.
디렉토리 서비스가 데이터를 저장하는 포맷을 하나로 한정하기 때문에, 다양한 포맷를 가진 다른 애플리케이션은 하나의 인터페이스를 통해서 디렉토리 서비스와 통신한다. 하나의 오픈 포맷으로 다양한 벤더 사이의 정보 처리 상호 운용(interoperability)이 가능하기 때문에, 다른 벤더의 애플리케이션이 디렉토리 서비스와 용이하게 공유될 수 있다. 더욱이, 하나의 포맷은, 기술적인 진보의 결과 또는 단순하게는, 동작 환경의 크기를 조정해야 할 필요가 있기 때문에 발생할 수 있는 앞으로의 성장을 수용하도록 쉽게 확대될 수 있다는 충분한 융통성을 가지고 있다.
이러한 이점이 주어짐으로써, 데이터 저장부를 액세스하는 몇 가지 디렉토리서비스 기술이 개발되었다. 그 방법 중 하나는 LDAP(Lightweight Directory Access Protocol)이다. LDAP는 디렉토리 서비스내에 엔트리를 저장하는 모델 및 디렉토리 서비스 내의 이들 엔트리를 엑세스하는 방법을 정의하고 있다. LDAP는 TCP/IP 접속을 사용해서 디렉토리 서비스로의 액세스를 제공한다. 디렉토리 서비스에 저장된 데이터는 유저 정보, 애플리케이션 업데이트 및 구성 정보를 포함할 수 있지만, 여기에 한정되는 것은 아니다.
엔트리는 LDAP 기술의 기초 데이터 유닛 엔티티이다. 엔트리는 특정 리소스에 관한 영구적인 정보를 포함하는 객체이다. 각각의 엔트리는 고유 이름(DN)이라는 고유한 식별자를 가지고 있고, 디렉토리 정보 트리(DIT)에 속한다. LDAP의 각각의 엔트리는 각각이 엔트리의 몇 가지 특정 특징을 정의하는 속성의 모음으로 구성된다. 각각의 속성은 특정 값 타입과 관련된다.
클라이언트-서버 환경에서 소프트웨어의 배포를 자동화하기 위한 많은 시도가 행해졌다. 그러나, 현재의 솔루션은, 지원 플랫폼을 재부팅할 필요없이 활성 애플리케이션에 실시간으로 애플리케이션을 업데이트하고 소프트웨어를 배포하는 성능이 부족하다. 더욱이, 현재의 자동화된 소프트웨어 배포 시스템은, 모든 활성 애플리케이션을 우선 셧 다운하고, 이어서 플랫폼을 재부팅하지 않고, 구성 데이터를 실시간으로 업데이트하는 것을 지원하지 않는다. 따라서, 호스트 플랫폼이 다른 애플리케이션에서 활성화되어서 수행되고 있는 동안 애플리케이션 업데이트 및 구성을 호스트 플랫폼에 효율적으로 배포할 필요가 있다.
본 발명은 클라이언트 서버 애플리케이션 및 애플리케이션 업데이트 배포에 관한 것이다. 더 상세하게는, 본 발명은 애플리케이션용 호스트 플랫폼이 활성인 동안 애플리케이션 업데이트를 배포하는 방법 및 장치에 관한 것이다.
도 1은 활성 클라이언트 위치로 실시간 구성 업데이트 및 소프트웨어 배포를 수행하는 시스템을 도시한 상위 개략도,
도 2는 도 1의 시스템에 사용되는 네트워크 아키텍쳐를 도시한 도면,
도 3a 및 도 3b는, 함께 도 2에 도시된 시스템의 활성 클라이언트 위치로 실시간 소프트웨어 업데이트 및 소프트웨어 배포를 수행하는 과정을 도시한 UML 순서도.
본 발명은 활성 클라이언트 위치의 활성 애플리케이션 구성 요소로 실시간 업데이트를 배포하는 시스템, 방법 및 장치에 관한 것이다. 본 발명에 따른 방법은 활성 애플리케이션 구성 요소를 관리하는 플랫폼과 구성 클라이언트 사이의 제 1 통신 접속을 확립하는 단계와, 상기 구성 클라이언트와 구성 서버 사이의 제 2 통신 접속을 확립하는 단계와, 상기 제 2 통신 접속을 통해서 구성 클라이언트에 업데이트를 전송하는 단계를 포함한다. 특히, 각각의 업데이트는 적어도 하나의 각각의 애플리케이션 구성 요소에 대응할 수 있다. 이어서, 플랫폼은 업데이트를 이용가능하게 되었다는 것을 통지받을 수 있다. 이러한 통지를 수신한 것에 응답해서, 각각의 활성 애플리케이션 구성 요소의 수행은 종료된다. 종료 이후에, 각각의 업데이트는 제 1 통신 접속을 통해서 플랫폼에 전송될 수 있고, 상기 각각의 업데이트는 각각의 애플리케이션 구성 요소에 인가될 수 있다. 마지막으로, 각각의 상기 업데이트된 애플리케이션 구성 요소는 재실행된다.
본 발명의 일 태양에 있어서, 상기 종료시키는 단계는 상기 통지에 기초해서 업데이트될 각각의 대응하는 애플리케이션 구성 요소를 식별하는 단계와, 각각의 식별된 애플리케이션 구성 요소의 인스턴스를 종료시키는 단계와, 종료된 애플리케이션 구성 요소 인스턴스와 다른 애플리케이션 구성 요소 사이의 상호 의존성을 제거하는 단계를 포함할 수 있다. 더욱이, 상기 재실행시키는 단계는 각각의 업데이트된 애플리케이션 구성 요소를 인스턴스화(instantiate)하는 단계와, 각각의 상기 업데이트된 애플리케이션 구성 요소 인스턴스를 초기화하는 단계를 포함할 수 있다. 더욱이, 상기 초기화하는 단계는 구성 클라이언트에 구성 정보를 통신하는 단계와, 상기 구성 정보에 기초해서 각각의 업데이트된 애플리케이션 구성 요소 내부의 상태 정보를 재초기화하는 단계를 포함한다. 마지막으로, 상기 방법은 구성 클라이언트로부터 업데이트 통지를 요청하는 단계를 더 포함하고, 상기 업데이트 통지는 구성 서버에서 업데이트를 이용가능하도록 애플리케이션 구성 요소의 플랫폼이 업데이트되었다는 것을 통지한다.
본 발명의 다른 태양에서, 상기 방법은 제 2 통신 접속을 통해서 구성 클라이언트로 업데이트 통지를 전송하는 단계를 더 포함할 수 있다. 상세하게는, 상기 업데이트 통지는 업데이트를 구성 서버에서 이용가능하도록 애플리케이션 구성 요소의 구성 클라이언트가 업데이트되었다는 것을 통지할 수 있다. 더욱이, 제 2 접속을 통해서 업데이트 통지를 전송하는 단계는 UDP(universal datagram protocol)에 따라서 상기 업데이트 통지를 패킷화하는 단계와, 상기 구성 클라이언트에 상기 UDP 패킷을 전송하는 단계를 포함할 수 있다. 마지막으로, 본 발명의 또 다른 태양에서, 상기 구성 서버는 LDAP 서버이다. 따라서 상기 방법은 상기 LDAP 서버의 LDAP 기반 데이터베이스내의 상기 애플리케이션 구성 요소를 저장하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 태양에 있어서, 활성 클라이언트 위치에서 실행 중인 활성 애플리케이션 구성 요소에 실시간 업데이트를 배포하는 방법은, 통신가능하게 연결된 구성 클라이언트로부터 활성 애플리케이션 구성 요소로 업데이트 - 상기 각각의 업데이트는 적어도 하나의 각각의 애플리케이션 구성 요소에 대응함 - 를 우선 수신하는 단계를 포함할 수 있다. 두번째로, 수신된 대응하는 업데이트를 가진 각각의 활성 애플리케이션 구성 요소의 실행이 종료될 수 있다. 세번째로, 수신된 업데이트가 대응하는 애플리케이션 구성 요소에 인가될 수 있다. 마지막으로, 업데이트된 애플리케이션 구성 요소가 재실행될 수 있다.
상기 종료시키는 단계는 수신된 대응하는 업데이트를 가진 각각의 활성 애플리케이션 구성 요소의 인스턴스를 종료시키는 단계와, 종료된 애플리케이션 구성 요소 인스턴스와 다른 애플리케이션 구성 요소 사이의 상호 의존성을 제거하는 단계를 포함할 수 있다. 상기 재실행시키는 단계는 각각의 업데이트된 애플리케이션 구성 요소를 인스턴스화하는 단계와, 각각의 업데이트된 애플리케이션 구성 요소 인스턴스를 초기화시키는 단계를 포함한다. 마지막으로, 상기 방법은 구성 클라이언트로부터의 업데이트 통지에 서명하는 단계를 더 포함할 수 있고, 여기서 업데이트 통지는 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 활성 클라이언트 위치가 업데이트되었다는 것을 통지한다.
활성 클라이언트 위치를 업데이트하는 시스템은 활성 애플리케이션 구성 요소를 관리하는 플랫폼과, 업데이트를 저장하는 구성 서버와, 구성 서버로부터의 업데이트를 수신하고, 상기 수신된 업데이트를 플랫폼에 통신하는 구성 클라이언트를 포함할 수 있다. 상기 플랫폼은 구성 클라이언트로부터 업데이트를 수신할 수 있다. 이어서, 플랫폼은 활성 애플리케이션 구성 요소 중 선택된 것을 종료시킬 수 있다. 따라서, 플랫폼은 수신된 업데이트를 종료된 애플리케이션 구성 요소에 인가할 수 있다. 마지막으로, 플랫폼은 업데이트된 애플리케이션 구성 요소를 재로딩할 수 있다.
본 발명에 일 태양에 있어서, 구성 서버는 LDAP 서버가 될 수 있다. 본 발명의 다른 태양에 따라서, 활성 애플리케이션 구성 요소는 자바 클래스의 인스턴스가 될 수 있다. 본 발명의 또 다른 태양에 따라서, 구성 클라이언트는 통지자 객체 및 수화자(listener) 인터페이스를 포함할 수 있다. 결론적으로, 활성 애플리케이션 구성 요소는 수화자 인터페이스를 통해서 구성 클라이언트로부터 업데이트 통지를 수신하도록 구성될 수 있다. 유사하게, 구성 서버는 통지자 객체 및 수화자 인터페이스를 더 포함할 수 있다. 마찬가지로, 구성 클라이언트는 수화자 인터페이스를 통해서 구성 서버로부터 업데이트 통지를 수신하도록 구성될 수 있다.
본 발명은 클라이언트-서버 환경에서 활성 클라이언트 위치로 구성 업데이트및 소프트웨어 배포를 수행하는 시스템이다. 상세하게는, 본 발명의 시스템은 각각의 클라이언트 위치를 재부팅할 필요없이 클라이언트 위치에 소프트웨어 및 구성 데이터를 배포할 수 있다. 도 1은 본 발명의 시스템으로 사용하도록 구성된 네트워크 아키텍쳐를 도시하고 있다. 도 1에 도시된 바와 같이, 활성 클라이언트 위치로 실시간 구성 업데이트 및 소프트웨어 배포를 수행하는 시스템은 구성 서버(105), 컴퓨터 통신 네트워크(115), 및 컴퓨터 통신 네트워크(115)를 통해서 구성 서버에 접속된 복수의 클라이언트 위치(110A, 110B, 110C)를 포함한다.
각각의 클라이언트 위치(110A, 110B, 110C)에서 부트스트랩(bootstrap)이 행해짐으로써, 구성 서버(105)와 클라이언트 위치(110A, 110B, 110C) 사이에 통신 링크가 확립될 수 있다. 이어서, 각각의 부팅된 클라이언트 위치(110A, 110B, 110C)는 클라이언트 위치(110A, 110B, 110C)에 인스톨될 애플리케이션 구성 요소를 식별할 것인지를 구성 서버(105)에 질의할 수 있다. 애플리케이션 구성 요소를 식별할 때, 각각의 클라이언트 위치(110A, 110B, 110C)는 식별된 애플리케이션 구성 요소를 인스톨할 수 있다.
특히, 초기화시에 각각의 애플리케이션 구성 요소는 애플리케이션 구성 요소가 임의의 앞으로의 업데이트에 대해서 통지받도록 요청할 수 있다. 구성 서버(105)에서 업데이트를 이용할 수 있게 되었을 때, 업데이트 위치를 통지하는 메시지가 클라이언트 위치(110A, 110B, 110C)에 브로드캐스트될 수 있다. 이에 따라서, 영향을 받은 클라이언트 위치들 사이의 통신 링크가 다시 확립될 수 있다. 이어서, 구성 데이터 및 업데이트된 모듈을 포함하는 업데이트가 통신 링크를 통해서 검색될 수 있다. 검색한 이후에, 업데이트가 인가될 애플리케이션 구성 요소는 종료되고, 업데이트되고, 재로딩된다. 특히, 일단 재로딩되면, 애플리케이션 구성 요소는 업데이트를 계속 포함하고 있을 것이다. 반면에, 본 발명의 시스템은 활성 클라이언트 위치에 있는 애플리케이션 구성 요소의 실시간 애플리케이션 업데이트를 수행할 수 있다.
도 2는 네트워크(206)를 통한 구성 서버(201)와 단일 클라이언트 위치(207) 사이의 인터렉션을 도시하고 있다. 네트워크(206)는 LAN, WAN, 데이터 버스 또는 배포된 프로세스를 통신 가능하게 연결시키는 다른 적절한 매체가 될 수 있다. 도면에 도시된 바와 같이, 하나의 클라이언트 위치(207)는 구성 클라이언트(202), 적어도 하나의 애플리케이션 구성 요소(205), 애플리케이션 구성 요소(205)를 관리하는 애플리케이션 플랫폼(203), 및 애플리케이션 구성 요소(205)를 로딩하고 언로딩하는 애플리케이션 로더(204)를 포함할 수 있다. 또한, 본 발명은 이에 한정되는 것이 아니며, 구성 클라이언트(202)가 배포된 환경에서 클라이언트 위치(207)의 외부에 애플리케이션 구성 요소로서 포함될 수 있다.
특히, 본 발명은 플랫폼(203)에 의해 관리되는 애플리케이션 구성 요소(205)의 수에 안정되는 것이 아니고, 또한 애플리케이션 구성 요소(205)를 관리하는 플랫폼(203)의 갯수에 한정되는 것도 아니다. 더욱이, 로더(204)는 플랫폼(204)의 일부로서 포함될 수 있고, 플랫폼(203)과는 무관하게 존재할 수도 있다. 마지막으로, 구성 서버(201)는 클라이언트 위치에 배포될 구성 데이터(214)와 소프트웨어 모듈(216)을 모두 저장할 수 있다. 특히, 구성 서버(201)는 하나의 LDAP 파일 서버(210)에 데이터(214) 및 모듈(216)을 저장할 수 있다. 그러나, 본 발명은 이에 한정되는 것은 아니다. 오히려, 데이터(214) 및 모듈(216)은, 예컨대 XML 파일 서버와 같은 임의의 적절한 수단을 통해서 저장되고, 액세스될 수 있다.
도 2에 도시된 바와 같이, 구성 클라이언트(202)는 플랫폼(203)과는 별도로 관리될 수 있다. 더욱이, 본 발명의 일 태양에 있어서, 구성 클라이언트(202)는 자바 빈(Java Bean)으로 구현될 수 있다. 결론적으로, 구성 클라이언트(202) 자바 빈 구현은 다른 애플리케이션에 의해 재 사용될 수 있다. 특히, 플랫폼(203)은 애플리케이션 구성 요소(205)를 관리하는 자바 기반 플랫폼이 될 수 있다. 이와 같이, 플랫폼(203)은 플랫폼(203)에 인스톨된 다양한 애플리케이션 구성 요소에 대해서 ORB(object request broker)의 역할을 한다.
동작시에, 클라이언트 위치(207)가 부트스트랩될 때, 플랫폼(203)은 구성 클라이언트(202)를 개시시킨다. 일단 개시되면, 구성 클라이언트(202)는 구성 서버(201)의 URL 및 클라이언트 위치 식별자만을 포함하는 부트스트랩 특성을 판독할 수 있다. 이어서, 구성 클라이언트(202)는 구성 서버(201)로의 통신 접속을 확립시킬 수 있다. 상세하게는, 통신 접속은 자바 네이밍 및 디렉토리 인터페이스(JNDI/LDAP)를 사용해서 LDAP 서버로 LDAP 접속될 수 있다. 역시, 본 발명은 특정 통신 접속에 한정되는 것이 아니다. 오히려, 임의의 적절한 통신 접속이 될 수 있다. 예컨대, 통신 접속은 HTTP를 사용한 독립된(flat-file) 데이터 베이스로의 CGI 인터페이스로의 점대점 TCP/IP 접속이 될 수 있다.
일단 통신 접속이 설립되면, 구성 클라이언트(202)는 서치 인수로서 위치 식별자를 사용해서 구성 서버(201)의 1차 조회를 수행할 수 있다. 1차 조회에 대한 응답은 를라이언트 위치(207)에 설치될 애플리케이션 구성 요소(205)의 리스트를 포함할 수 있다. 이어서, 구성 클라이언트(202)는 리스트를 검토할 수 있으며, 리스트에서 애플리케이션 구성 요소(205) 각각에 대해 2차 조회를 수행할 수 있다. 그 전에, 2차 조회에 대한 2차 응답은 애플리케이션 구성 요소(205)에 대해 수행가능한 모듈은 물론, 애플리케이션 구성 요소(205)의 수행에 필요한 서버 어드레스를 포함할 수 있는 구성 데이터를 포함할 수 있다.
2차 응답은 플랫폼(203)에서 수신될 수 있다. 일단 수신되면, 애플리케이션 구성 요소(205)가 수행될 수 있다. 더 상세하게는, 플랫폼(203)은 클라이언트 위치(207)에 설치될 각각의 애플리케이션 구성 요소(205)의 리스트를 검색할 수 있다. 이어서, 각각의 애플리케이션 구성 요소(205)는 적절한 인스턴스화를 실행하고, 대응하는 애플리케이션 구성 요소 인터페이스내에 정의된 요청된 인스턴스화 방법을 호출함으로써 설치될 수 있다.
인스턴스화하는 동안, 각각의 애플리케이션 구성 요소(205)는 구성 클라이언트(202)로부터 대응하는 구성 데이터를 요청할 수 있다. 구성 데이터의 예로서는 선택 사항 설정, 스크린 해상도, 서버 주소가 있을 수 있다. 수신될 때, 요청 애플리케이션 구성 요소(205)는 적절한 초기화를 수행할 수 있다. 각각의 애플리케이션 구성 요소(205)는 또한 구성 클라이언트(202)가 애플리케이션 구성 요소(205)에 의해 사용되도록 미래의 업데이트의 애플리케이션 구성 요소(205)를 통지할 것을 요청할 수 있다. 특히, 본 발명의 일 태양에 있어서, 애플리케이션 구성 요소통지 장치는 관찰자 설계 형식(observer design pattern)을 구현하는 것을 포함한다. 그럼에도 불구하고, 본 발명은 이에 한정되는 것이 아니다. 오히려, 데이터 베이스내의 애플리케이션 구성 요소의 리스트를 저장하고, 리스트의 애플리케이션 구성 요소로 전송된 업데이트가 수신될 때마다 선택된 애플리케이션 구성 요소를 통지하는, 애플리케이션 구성 요소 통지 장치의 다른 구현이 사용될 수 있다.
업데이트를 구성 서버(201)에서 이용할 수 있게 되었을 때, 업데이트가 향하는 애플리케이션 구성 요소(205)를 포함한 업데이트 메시지가 클라이언트 위치(207)에 전송될 수 있다. 역시, 본 발명은 이에 한정되는 것이 아니다. 오히려, 메시지는 그 안에 포함된 애플리케이션 구성 요소(205)와 무관한 클라이언트 위치(207)로 전송되는 브로드캐스트 메시지 또는 UDP 네로우 캐스트(narrow-cast) 메시지가 될 수 있다. 어떤 경우든 일단 구성 클라이언트(202)가 업데이트 메시지를 수신하면, 구성 클라이언트(202)는 구성 서버(201)로 새로운 통신 접속을 확립할 수 있다. 그 전에, 통신 접속은 구성 서버(201)가 LDAP 서버인 LDAP 접속이 될 수 있다. 이어서, 업데이트된 구성 데이터 및 소프트웨어 모듈로 이루어진 업데이트는 통신 접속을 통해서 구성 클라이언트(202)로 전송될 수 있다.
일단 업데이트된 구성 데이터 및 소프트웨어 모듈이 검색되면, 구성 클라이언트(202)는 업데이트가 수신되었다고 플랫폼(203)에 통지할 수 있다. 예컨대, 자바 또는 C++ 구현에서, 구성 클라이언트(202)는 업데이트 수신된 이벤트를 생성하고, 이를 플랫폼(203)에 전송할 수 있다. 이에 따라서, 업데이트된 소프트웨어 모듈이 수신되었다면, 플랫폼(203)은 업데이트가 향하는 애플리케이션 구성 요소를식별할 수 있다. 업데이트는, 목표로 정해진 애플리케이션 구성 요소(205)의 종료를 요구하지 않는 업데이트된 구성 데이터라면, 플랫폼(203)은 목표로 정해진 애플리케이션 구성 요소(205)로 간단하게 업데이트를 전송할 수 있다. 특히, 구성 클라이언트(202)는 업데이트된 구성 데이터가 수신되어 있는, 목표로 정해진 애플리케이션 구성 요소(205)를 통지할 수 있다. 이에 따라서, 목표로 정해진 애플리케이션 구성 요소(205)는 구성 클라이언트(202)로부터 업데이트된 구성 데이트를 검색할 수 있고, 관련된 상태를 적절하게 재초기화할 수 있다.
반대로, 업데이트가 애플리케이션 구성 요소(205)의 종료 및 재인스턴스화를 요구하는 업데이트된 소프트웨어 모듈 또는 업데이트된 구성 데이터인 경우, 플랫폼(203)은 목표로 정해진 애플리케이션 구성 요소(205)에 업데이트를 인가하기 전에 목표로 정해진 애플리케이션 구성 요소(205)를 종료시킬 수 있다. 본 발명의 일 태양에 따라서, 플랫폼(203)은 목표로 정해진 애플리케이션 구성 요소(205)와 관련된 종료 방법을 액세스하고, 목표로 정해진 애플리케이션 구성 요소(205)로의 인터페이스에 의해 노출됨으로써 목표로 정해진 애플리케이션 구성 요소(205)의 실행을 종료시킬 수 있다. 특히, 목표로 정해진 애플리케이션 구성 요소(205)에 업데이트를 인가할 때, 2단계의 스타트업 및 셧 다운 어프로치가 실시될 수 있다.
이 어프로치의 결과, 애플리케이션 구성 요소(205)는 다른 애플리케이션 구성 요소(205)의 프로그램 수행을 반드시 실시할 필요없이 임의의 상호 의존성을 제거할 수 있다. 일단 애플리케이션 구성 요소(205)가 종료되면, 플랫폼은 업데이트에 관련된 구성 데이터에 따라서 업데이트를 인가할 수 있다. 이어서,플랫폼(203)은 목표로 정해진 애플리케이션 구성 요소(205)를 재인스턴스화할 수 있다. 더욱이, 플랫폼(203)은 목표로 정해진 애플리케이션 구성 요소(205)가 적절하게 재로딩되록 목표로 정해진 애플리케이션 구성 요소(205)의 초기화 방법을 호출할 수 있다.
도 3a 및 3b로 돌아가서, 도 1 및 도 2의 시스템이 활성 클라이언트 위치에 실시간 업데이트를 배포하도록 구성될 수 있는 통시 시퀀스가 도시되어 있다. 도 1 및 도 2에서와 같이 이 시스템은 구성 서버(301), 구성 클라이언트(302), 플랫폼(303), 로더(304), 애플리케이션 구성 요소(305A-305C)를 포함할 수 있다. 이 시스템은 부트스트랩 동안 구성 클라이언트(302)를 지원하기 위한 부트스트랩 프로브(306)을 포함할 수 있다.
도 3a로 돌아가서, 플랫폼(303)이 부트스트랩을 수행할 때, 플랫폼(303)은 로더(304) 및 구성 클라이언트(302)의 인스턴스화(310)을 실행할 수 있다. 플랫폼(303)은, 구성 클라이언트(302)의 각각의 인스턴스를 획득하는 getInstance()(312), 수화자 및 옵저버와 같은 플랫폼을 추가하도록 구성 클라이언트(302)에 명령하는 addConfigListener(문자열) 및 구성 데이터를 검색하는 getConfig(문자열)(316)와 같은 구성 클라이언트(302)를 가지고 일련의 실시간 통신 과정을 수행할 수 있다. 일단 이러한 부트스트랩의 개시 단계가 완료되면, 구성 클라이언트(302)는 부트스트랩 특성 파일을 판독할 수 있고, 거기서 구성 서버(301)의 어드레스를 추출할 수 있다. 본 발명의 일 태양에 있어서, 부트스트랩 특성 파일은 구성 서버(301)의 URL 및 위치 식별자를 포함할 수 있다.
일단 부트스트랩 동작이 완료되면, 구성 클라이언트(302)는 구성 서버(301)로의 통신 접속을 확립할 수 있다. 특히, 구성 서버(301)가 LDAP 서버인 경우에, 구성 클라이언트(302)는 JNDI/LDAP를 사용해서 구성 서버(301)로의 LDAP 접속을 확립할 수 있다. 이어서, 구성 서버(301)의 컨텍스트를 획득하는데 구성 클라이언트(302)에 의해서 getContext() 방법(320)이 사용될 수 있다. 클라이언트 애플리케이션 구성 요소 타입을 검색하기 위해, 구성 서버(301)에 대해서 구성 클라이언트(302)에 의해 1차 조회가 행해질 수 있다. 1차 조회(322)는 서치 인수로서 구성 클라이언트(302)의 위치 식별자를 사용할 수 있다.
1차 조회(322)에 응답해서, 구성 서버(301)는 플랫폼(303)에 인스톨될 클라이언트 애플리케이션 구성 요소 타입의 리스트를 포함하고 있는 응답을 보낼 수 있다. 이어서, 관련된 클라이언트 구성 데이터를 검색하기 위해, 구성 클라이언트(302)는 클라이언트 애플리케이션 구성 요소 타입을 순환할 수 있고, 정의된 애플리케이션 구성 요소 타입 각각에 대해서 제 2 조회를 발행할 수 있다. 2차 조회(328, 332)에 응답은 애플리케이션 구성 요소(305a, 305B, 305C)에 대해서 수행가능한 모듈을 포함할 수 있다. 1차 단계를 완료하기 위해, 구성 클라이언트(302)로부터의 응답의 목록이 플랫폼(303)에 리턴될 수 있다.
도 3b로 돌아가서, 구성 데이터를 사용하는 플랫폼(303)은 로드(플랫폼인터페이스) 방법(340)을 사용해서 로더(304)로의 적절한 플랫폼 인터페이스를 로딩하고 초기화할 수 있다. 일단 초기화되면, 로더(304)는 구성 클라이언트(302)와의 일련의 통신 과정을 수행할 수 있다. 특히, 로더(304)는 구성 클라이언트(302)의각각의 인스턴스를 획득하기 위해 getInstance() 방법(342)을 액세스할 수 있다. 더욱이, 로더(304)는 수화자/옵저버로서 로더(304)를 추가하도록 구성 클라이언트(302)에 명령하기 위해 addConfigListener(문자열)에 액세스할 수 있다. 마지막으로, 로더(304)는 getConfig(문자열) 방법(346)에 액세스해서 인스턴스화할 클래스의 이름을 포함한 구성 데이터를 포함한 구성 데이터를 검색할 수 있다.
조회(324, 328, 332)에서 구성 서버(301)에 의해 제공된 구성 데이터내에 열거된 애플리케이션 구성 요소(305A, 305B, 305C)의 각각의 클래스 이름에 대해서, 다음과 같은 이벤트의 순서가 발생할 수 있다. 우선, 로더(304)는 애플리케이션 구성 요소(305A, 305B, 305C)를 인스턴스화할 수 있고(348), 설정(플랫폼에 대한 리퍼런스) 방법(350)을 통해서 플랫폼(303)에 대한 리퍼런스를 애플리케이션 구성 요소(305A, 305B, 305C)에 제공할 수 있다. 이어서, 애플리케이션 구성 요소(305A, 305B, 305C)는 초기화를 수행한다.
특히, 상기 설명된 2 단계로 된 스타트업 및 셧 다운 어프로치는 초기화단계인 제 1 단계(352) 이후에 애플리케이션 구성 요소(305A, 305B, 305C)의 현재의 인스턴스가 셧 다운되고, 애플리케이션 구성 요소(305A, 305B, 305C)가 업데이트되는 설정(플랫폼에 대한 리퍼런스)이 완료된다. 이어서, 애플리케이션 구성 요소(305A, 305B, 305C)는 재초기화된다.
초기화(352)인 제 1 단계 이후에, 애플리케이션 구성 요소(305A, 305B, 305C)는 구성 클라이언트(302)와의 통신 링크를 확립할 수 있다. 특히, 애플리케이션 구성 요소(305A, 305B, 305C)는 구성 클라이언트(302)의 각각의 인스턴스를획득하기 위해, getInstance() 방법(354)을 액세스할 수 있다. 더욱이, 애플리케이션 구성 요소(305A, 305B, 305C)는 수화자/옵저버로서 애플리케이션 구성 요소(305A, 305B, 305C)를 추가하도록 구성 클라이언트(302)에 명령하기 위해 addConfigListener(문자열)(356)에 액세스할 수 있다. 마지막으로, 애플리케이션 구성 요소(305A, 305B, 305C)는 애플리케이션 구성 요소(305A, 305B, 305C)의 각각의 인스턴스에 대한 구성 데이터를 검색하기 위해 getConfig(문자열) 방법(358)을 액세스할 수 있다.
이어서, 애플리케이션 구성 요소(305A, 305B, 305C)는 register() 함수(360)를 사용해서 플랫폼(303)에 등록할 수 있다. 등록 후에, 로더(304)는 개시 방법(362)을 사용해서 애플리케이션 구성 요소(305A, 305B, 305C)의 수행을 시작할 수 있다. 더욱이, 애플리케이션 구성 요소(305A, 305B, 305C)는 subscribe() 방법(364)을 사용해서 미래의 업데이트를 플랫폼(303)에 서명할 수 있다. 상세하게는, subscribe() 방법(364)은 애플리케이션 구성 요소(305A, 305B, 305C)가 미래의 구성 요소/또는 구성 업데이트에 관해서 통지받는 것을 보장할 수 있다. 서명 과정 후에, 애플리케이션 구성 요소(305A, 305B, 305C)는 2단계로 된 스타트업 및 셧 다운 프로세스의 2차 및 마지막 초기화 단계(366)를 개시할 수 있다. 초기화가 완료되면, 로더(304)는 activate() 함수(368)를 사용해서 업데이트된 애플리케이션 구성 요소(305A, 305B, 305C)를 활성화시킬 수 있다.
특히, 본 발명은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 본 발명의 방법은, 하나의 컴퓨터 시스템으로 집중된 방식으로 또는 여러 개의 상호 접속된 컴퓨터 시스템에 다른 구성 요소들이 확산되는 배포 방식으로 구현될 수 있다. 임의의 종류의 컴퓨터 시스템 또는 상기 설명된 방법을 수행하기 위해 채택된 다른 장치가 적합하다. 전형적인 하드웨어와 소프트웨어의 조합은, 로딩되고, 실행되었을 때, 상기 설명된 방법을 수행하도록 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 구비한 다목적 컴퓨터 시스템이 될 수 있다.
본 발명은 또한 상기 설명된 방법을 구현할 수 있는 모든 특성을 포함하고 있고, 컴퓨터 시스템에 로딩되었을 때 이들 방법을 수행할 수 있는 컴퓨터 프로그램 제품에 장착될 수 있다. 컴퓨터 프로그램 또는 본 컨텍스트의 컴퓨터 프로그램은, 정보 처리 성능을 가진 시스템이 a) 다른 언어, 코드 또는 기호로의 변환, b) 다른 자료 형태로의 재생 둘 다 또는 둘 중 하나를 수행한 이후에, 또는 바로 각각의 함수를 수행하도록, 임의의 언어, 코드 또는 기호로 된 임의의 표현식을 의미한다.

Claims (31)

  1. 활성 클라이언트 위치의 활성 애플리케이션 구성 요소로 실시간 업데이트를 배포하는 방법에 있어서,
    활성 애플리케이션 구성 요소를 관리하는 플랫폼과 구성 클라이언트 사이의 제 1 통신 접속을 확립하는 단계와,
    상기 구성 클라이언트와 구성 서버 사이의 제 2 통신 접속을 확립하는 단계와,
    상기 제 2 접속을 통해서 상기 구성 클라이언트에 업데이트 - 상기 업데이트 각각은 적어도 하나의 각각의 애플리케이션 구성 요소에 대응함 - 를 전송하는 단계와,
    업데이트를 이용할 수 있다는 것을 상기 플랫폼에 통지하는 단계와,
    상기 통지에 응답해서, 상기 각각의 활성 애플리케이션 구성 요소의 실행을 종료시키고, 상기 제 1 통신 접속을 통해서 상기 플랫폼에 각각의 상기 업데이트를 전송하고, 적어도 하나의 대응하는 상기 애플리케이션 구성 요소에 상기 각각의 업데이트를 인가하고, 상기 업데이트된 애플리케이션 구성 요소를 재실행시키는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 종료시키는 단계는
    상기 통지에 기초해서 업데이트될 상기 적어도 하나의 각각의 대응하는 애플리케이션 구성 요소를 식별하는 단계와,
    각각의 상기 식별된 애플리케이션 구성 요소의 인스턴스를 종료시키는 단계와,
    상기 종료된 애플리케이션 구성 요소 인스턴스와 다른 애플리케이션 구성 요소 사이의 상호 의존성을 제거하는 단계
    를 포함하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 재실행시키는 단계는
    각각의 상기 업데이트된 애플리케이션 구성 요소를 인스턴스화하는(instantiate) 단계와,
    각각의 상기 업데이트된 애플리케이션 구성 요소 인스턴스를 초기화하는 단계
    를 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 초기화하는 단계는
    상기 구성 클라이언트에 구성 정보를 통신하는 단계와,
    상기 구성 정보에 기초해서 각각의 상기 업데이트된 애플리케이션 구성 요소 내부의 상태 정보를 재초기화하는 단계
    를 포함하는 방법.
  5. 제 3 항에 있어서,
    상기 구성 클라이언트로부터 업데이트 통지 - 상기 업데이트 통지는 상기 구성 서버에서 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 상기 플랫폼이 업데이트되었다는 것을 통지함 - 를 요청하는 단계
    를 더 포함하는 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 제 2 통신 접속을 통해서 상기 구성 클라이언트로 업데이트 통지 - 상기 업데이트 통지는 상기 구성 서버에서 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 상기 구성 클라이언트가 업데이트되었다는 것을 통지함 - 를 전송하는 단계
    를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 제 2 접속을 통해서 업데이트 통지를 전송하는 상기 단계는
    UDP(universal datagram protocol)에 따라서 상기 업데이트 통지를 패킷화하는 단계와,
    상기 구성 클라이언트에 상기 UDP 패킷을 전송하는 단계
    를 포함하는 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 구성 서버는 LDAP 서버인
    방법.
  9. 제 8 항에 있어서,
    상기 LDAP 서버의 LDAP 기반 데이터베이스에 상기 애플리케이션 구성 요소 업데이트를 저장하는 단계
    를 더 포함하는 방법.
  10. 활성 클라이언트 위치를 업데이트하는 시스템에 있어서, 상기 시스템은
    활성 애플리케이션 구성 요소를 관리하는 플랫폼과,
    업데이트를 저장하는 구성 서버와,
    상기 구성 서버로부터 업데이트를 수신하고, 상기 수신된 업데이트를 상기 플랫폼에 통신하는 구성 클라이언트을 포함하되,
    상기 플랫폼은 상기 구성 클라이언트로부터의 상기 업데이트를 수신한 것에 응답해서, 상기 활성 애플리케이션 구성 요소 중 선택된 것들은 종료시키고, 상기 종료된 애플리케이션 구성 요소에 상기 수신된 업데이트를 인가하고, 상기 업데이트된 애플리케이션 구성 요소를 재로딩하는
    시스템.
  11. 제 10 항에 있어서,
    상기 구성 서버는 LDAP 서버인
    시스템.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 활성 애플리케이션 구성 요소는 자바 클래스의 인스턴스인
    시스템.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 구성 클라이언트는
    통지자 객체 및 수화자(listener) 인터페이스를 더 포함하며,
    상기 활성 애플리케이션 구성 요소는 상기 수화자 인터페이스를 통해서 상기 구성 클라이언트로부터 업데이트 통지를 수신하도록 구성된
    시스템.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 구성 서버는
    통지자 객체 및 수화자 인터페이스를 더 포함하며,
    상기 구성 클라이언트는 상기 수화자 인터페이스를 통해서 상기 구성 서버로부터 업데이트 통지를 수신하도록 구성된
    시스템.
  15. 활성 클라이언트 위치의 활성 애플리케이션 구성 요소에 실시간 업데이트를배포하는 복수의 코드 섹션을 구비하고 있는 컴퓨터 프로그램에 있어서, 상기 코드 섹션은
    활성 애플리케이션 구성 요소를 관리하는 플랫폼과 구성 클라이언트 사이의 제 1 통신 접속을 확립하는 단계와,
    상기 구성 클라이언트와 구성 서버 사이의 제 2 통신 접속을 확립하는 단계와,
    상기 제 2 접속을 통해서 상기 구성 클라이언트에 업데이트 - 상기 업데이트 각각은 적어도 하나의 각각의 애플리케이션 구성 요소에 대응함 - 를 전송하는 단계와,
    업데이트를 이용할 수 있다는 것을 상기 플랫폼에 통지하는 단계와,
    상기 통지에 응답해서, 상기 각각의 활성 애플리케이션 구성 요소의 수행을 종료시키고, 상기 제 1 통신 접속을 통해서 상기 플랫폼에 각각의 상기 업데이트를 전송하고, 적어도 하나의 대응하는 상기 애플리케이션 구성 요소에 상기 각각의 업데이트를 인가하고, 상기 업데이트된 애플리케이션 구성 요소를 재실행시키는 단계
    를 머신이 수행하도록 머신에 의해 실행가능한
    컴퓨터 프로그램.
  16. 제 15 항에 있어서,
    상기 종료시키는 단계는
    상기 통지에 기초해서 업데이트될 상기 적어도 하나의 각각의 대응하는 애플리케이션 구성 요소를 식별하는 단계와,
    각각의 상기 식별된 애플리케이션 구성 요소의 인스턴스를 종료시키는 단계와,
    상기 종료된 애플리케이션 구성 요소 인스턴스와 다른 애플리케이션 구성 요소 사이의 상호 의존성을 제거하는 단계
    를 포함하는
    컴퓨터 프로그램.
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 재실행시키는 단계는
    각각의 상기 업데이트된 애플리케이션 구성 요소를 인스턴스화하는 단계와,
    각각의 상기 업데이트된 애플리케이션 구성 요소 인스턴스를 초기화하는 단계
    를 포함하는
    컴퓨터 프로그램.
  18. 제 17 항에 있어서,
    상기 초기화하는 단계는
    상기 구성 클라이언트에 구성 정보를 통신하는 단계와,
    상기 구성 정보에 기초해서 각각의 상기 업데이트된 애플리케이션 구성 요소 내부의 상태 정보를 재초기화하는 단계
    를 포함하는
    컴퓨터 프로그램.
  19. 제 17 항에 있어서,
    상기 구성 클라이언트로부터 업데이트 통지 - 상기 업데이트 통지는 상기 구성 서버에서 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 상기 플랫폼이 업데이트되었다는 것을 통지함 - 를 요청하는 단계
    를 더 수행하게 하는
    컴퓨터 프로그램.
  20. 제 15 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 제 2 통신 접속을 통해서 상기 구성 클라이언트로 업데이트 통지 - 상기 업데이트 통지는 상기 구성 서버에서 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 상기 구성 클라이언트가 업데이트되었다는 것을 통지함 - 를 전송하는 단계
    를 더 수행하게 하는
    컴퓨터 프로그램.
  21. 제 20 항에 있어서,
    상기 제 2 접속을 통해서 업데이트 통지를 전송하는 상기 단계는
    UDP(universal datagram protocol)에 따라서 상기 업데이트 통지를 패킷화하는 단계와,
    상기 구성 클라이언트에 상기 UDP 패킷을 전송하는 단계
    를 포함하는
    컴퓨터 프로그램.
  22. 제 15 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 구성 서버는 LDAP 서버인
    컴퓨터 프로그램.
  23. 제 22 항에 있어서,
    상기 LDAP 서버의 LDAP 기반 데이터베이스에 상기 애플리케이션 구성 요소 업데이트를 저장하는 단계
    를 더 포함하는
    컴퓨터 프로그램.
  24. 활성 클라이언트 위치에서 수행중인 활성 애플리케이션 구성 요소에 실시간 업데이트를 배포하는 방법에 있어서,
    통신가능하게 연결된 구성 클라이언트로부터 상기 활성 애플리케이션 구성 요소로 업데이트 - 상기 업데이트 각각은 적어도 하나의 각각의 애플리케이션 구성 요소에 대응함 - 를 수신하는 단계와,
    수신된 대응하는 업데이트를 가진 각각의 활성 애플리케이션 구성 요소의 실행을 종료시키는 단계와,
    상기 대응하는 애플리케이션 구성 요소에 상기 수신된 업데이트를 인가하는 단계와,
    상기 업데이트된 애플리케이션 구성 요소를 재실행시키는 단계
    를 포함하는 방법.
  25. 제 24 항에 있어서,
    상기 종료시키는 단계는
    수신된 대응하는 업데이트를 가진 각각의 활성 애플리케이션 구성 요소의 인스턴스를 종료시키는 단계와,
    상기 종료된 애플리케이션 구성 요소 인스턴스와 다른 애플리케이션 구성 요소 사이의 상호 의존성을 제거하는 단계
    를 포함하는 방법.
  26. 제 24 항 또는 제 25 항에 있어서,
    상기 재실행시키는 단계는
    각각의 상기 업데이트된 애플리케이션 구성 요소를 인스턴스화하는 단계와,
    각각의 업데이트된 애플리케이션 구성 요소 인스턴스를 초기화하는 단계
    를 포함하는 방법.
  27. 제 24 항 내지 제 26 항 중 어느 한 항에 있어서,
    상기 구성 클라이언트로부터의 업데이트 통지 - 상기 업데이트 통지는 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 활성 클라이언트 위치가 업데이트되었다는 것을 통지함 - 에 서명하는 단계
    를 더 포함하는 방법.
  28. 활성 클라이언트 위치에서 수행중인 활성 애플리케이션 구성 요소에 실시간 업데이트를 배포하는 복수의 코드 섹션을 가진 컴퓨터 프로그램에 있어서, 상기 코드 섹션은
    통신가능하게 연결된 구성 클라이언트로부터 상기 활성 애플리케이션 구성 요소로 업데이트 - 상기 업데이트 각각은 적어도 하나의 각각의 애플리케이션 구성 요소에 대응함 - 를 수신하는 단계와,
    수신된 대응하는 업데이트를 가진 각각의 활성 애플리케이션 구성 요소의 실행을 종료시키는 단계와,
    상기 대응하는 애플리케이션 구성 요소에 상기 수신된 업데이트를 인가하는 단계와,
    상기 업데이트된 애플리케이션 구성 요소를 재실행시키는 단계
    를 머신이 수행하도록 머신에 의해 실행가능한
    컴퓨터 프로그램.
  29. 제 28 항에 있어서,
    상기 종료시키는 단계는
    수신된 대응하는 업데이트를 가진 각각의 활성 애플리케이션 구성 요소의 인스턴스를 종료시키는 단계와,
    상기 종료된 애플리케이션 구성 요소 인스턴스와 다른 애플리케이션 구성 요소 사이의 상호 의존성을 제거하는 단계
    를 포함하는
    컴퓨터 프로그램.
  30. 제 28 항에 있어서,
    상기 재실행시키는 단계는
    각각의 업데이트된 애플리케이션 구성 요소를 인스턴스화하는 단계와,
    각각의 업데이트된 애플리케이션 구성 요소 인스턴스를 초기화하는 단계
    를 포함하는
    컴퓨터 프로그램.
  31. 제 28 항 내지 제 30 항 중 어느 한 항에 있어서,
    상기 구성 클라이언트로부터의 업데이트 통지 - 상기 업데이트 통지는 상기 업데이트를 이용가능하도록 애플리케이션 구성 요소의 활성 클라이언트 위치가 업데이트되었다는 것을 통지함 - 에 서명하는 단계
    를 더 수행하게 하는
    컴퓨터 프로그램.
KR10-2003-7005191A 2000-10-19 2001-10-03 활성 클라이언트 위치의 활성 애플리케이션 구성 요소로실시간 업데이트를 배포하는 방법 및 시스템 KR20030043998A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/691,968 US7171661B1 (en) 2000-10-19 2000-10-19 Realtime configuration updates and software distribution to active client positions
US09/691,968 2000-10-19
PCT/GB2001/004383 WO2002033539A2 (en) 2000-10-19 2001-10-03 Realtime configuration updates and software distribution to active client positions

Publications (1)

Publication Number Publication Date
KR20030043998A true KR20030043998A (ko) 2003-06-02

Family

ID=24778732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7005191A KR20030043998A (ko) 2000-10-19 2001-10-03 활성 클라이언트 위치의 활성 애플리케이션 구성 요소로실시간 업데이트를 배포하는 방법 및 시스템

Country Status (11)

Country Link
US (1) US7171661B1 (ko)
EP (1) EP1327190B1 (ko)
JP (1) JP2004512592A (ko)
KR (1) KR20030043998A (ko)
CN (1) CN1236383C (ko)
AT (1) ATE394735T1 (ko)
AU (1) AU2001292052A1 (ko)
CA (1) CA2425977C (ko)
DE (1) DE60133913D1 (ko)
TW (1) TW550456B (ko)
WO (1) WO2002033539A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955426B1 (ko) * 2007-08-10 2010-05-04 (주)지란지교소프트 가상 플랫폼 실행방법
KR100987628B1 (ko) * 2004-02-07 2010-10-13 엘지전자 주식회사 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
KR101312144B1 (ko) * 2007-03-30 2013-09-26 야후! 인크. 디지털 콘텐츠 객체용 상호접속 위치 배포 메커니즘
KR20210078147A (ko) * 2019-12-18 2021-06-28 주식회사 엔씨소프트 멀티 인스턴스 관리 방법 및 장치

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE422130T1 (de) * 2000-06-14 2009-02-15 Sap Ag Kommunikation zwischen klienten und servercomputern über http, verfahren, computerprogrammprodukt und system
FR2827726B1 (fr) * 2001-07-19 2003-12-19 Cit Alcatel Prise en compte d'informations relatives a l'environnement des noeuds actifs pour la determination du code associe a une application active
US8775645B2 (en) * 2001-11-13 2014-07-08 Cvidya Networks Ltd. System and method for generating policies for a communication network
CN101453491B (zh) * 2002-12-26 2012-07-18 捷讯研究有限公司 建立组件应用程序的方法和设备
US20040267837A1 (en) * 2003-06-30 2004-12-30 Nokia Inc. System and method for updating network appliances using urgent update notifications
US7373363B2 (en) 2003-07-03 2008-05-13 Hewlett-Packard Development Company, L.P. Method of managing modification of configuration states of resources in a dynamic data center
US7526771B2 (en) * 2003-11-12 2009-04-28 Ntt Docomo, Inc. Method and apparatus for configuring an application while the application is running
GB0328383D0 (en) 2003-12-06 2004-01-14 Ibm Improved quality of service for network connected clients
CN100365571C (zh) * 2004-10-29 2008-01-30 英业达股份有限公司 一种软件升级装置及方法
US8806435B2 (en) 2004-12-31 2014-08-12 Intel Corporation Remote logging mechanism
EP1859353A4 (en) * 2005-03-07 2012-02-22 Intel Corp SELF-ADAPTIVE MUTTON-DELAY FILE TRANSFER PROTOCOL
EP1712992A1 (en) * 2005-04-11 2006-10-18 Sony Ericsson Mobile Communications AB Updating of data instructions
US20090007096A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Secure Software Deployments
US8225303B2 (en) * 2007-11-30 2012-07-17 Sap Ag System and method for providing software upgrades
US10558948B2 (en) * 2008-09-15 2020-02-11 Oath Inc. Targeted instant messenger behaviors employed for optimization of a client
CN101788982B (zh) * 2009-01-22 2013-03-06 国际商业机器公司 在未修改浏览器上保护Web应用的跨域交互的方法和系统
US8832676B2 (en) * 2009-09-30 2014-09-09 Zynga Inc. Apparatuses, methods and systems for a social networking application updater
US8667114B2 (en) * 2011-02-15 2014-03-04 Seiko Epson Corporation Program update management server and program update management method
US20120291006A1 (en) * 2011-05-12 2012-11-15 Google Inc. Development Architecture for Cloud-Based Applications
JP2013130923A (ja) * 2011-12-20 2013-07-04 Canon Inc 画像処理装置、サーバ装置、情報処理方法及びプログラム
US9811371B2 (en) * 2012-06-29 2017-11-07 International Business Machines Corporation Concurrent execution of a computer software application along multiple decision paths
US9116766B2 (en) * 2013-07-31 2015-08-25 Sap Se Extensible applications using a mobile application framework
US9524156B2 (en) 2014-01-09 2016-12-20 Ford Global Technologies, Llc Flexible feature deployment strategy
US9766874B2 (en) * 2014-01-09 2017-09-19 Ford Global Technologies, Llc Autonomous global software update
US9323546B2 (en) 2014-03-31 2016-04-26 Ford Global Technologies, Llc Targeted vehicle remote feature updates
US9716762B2 (en) 2014-03-31 2017-07-25 Ford Global Technologies Llc Remote vehicle connection status
US9325650B2 (en) 2014-04-02 2016-04-26 Ford Global Technologies, Llc Vehicle telematics data exchange
US10140110B2 (en) 2014-04-02 2018-11-27 Ford Global Technologies, Llc Multiple chunk software updates
US10394538B2 (en) * 2017-02-09 2019-08-27 International Business Machines Corporation Optimizing service deployment in a distributed computing environment

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04175952A (ja) 1990-11-09 1992-06-23 Hitachi Ltd ソフトウェア資源配布管理方式
JPH0895760A (ja) 1994-09-27 1996-04-12 Tec Corp 分散処理システムにおけるモジュール更新装置
DE19620888A1 (de) 1996-05-23 1997-11-27 Siemens Ag Verfahren zur Aktualisierung eines Teils eines Programmcodes, wobei der Programmcode in einer Interpreter-Programmiersprache vorliegt, während der Ausführung des Programmcodes, durch einen Rechner
US6074434A (en) * 1996-06-07 2000-06-13 International Business Machines Corporation Selection of code updates, data updates or new data for client
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
JP2964963B2 (ja) * 1996-09-20 1999-10-18 日本電気株式会社 ネットワーク自動設定システム
US5960204A (en) * 1996-10-28 1999-09-28 J.D. Edwards World Source Company System and method for installing applications on a computer on an as needed basis
US6123737A (en) 1997-05-21 2000-09-26 Symantec Corporation Push deployment of software packages using notification transports
US6029196A (en) * 1997-06-18 2000-02-22 Netscape Communications Corporation Automatic client configuration system
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
DE19829749A1 (de) * 1998-07-03 2000-01-05 Bosch Gmbh Robert Verfahren zur Aktualisierung von Software und/oder Daten in verteilten Systemen
US6301710B1 (en) * 1999-01-06 2001-10-09 Sony Corporation System and method for creating a substitute registry when automatically installing an update program
US6408434B1 (en) * 1999-01-07 2002-06-18 Sony Corporation System and method for using a substitute directory to automatically install an update program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100987628B1 (ko) * 2004-02-07 2010-10-13 엘지전자 주식회사 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
KR101312144B1 (ko) * 2007-03-30 2013-09-26 야후! 인크. 디지털 콘텐츠 객체용 상호접속 위치 배포 메커니즘
KR100955426B1 (ko) * 2007-08-10 2010-05-04 (주)지란지교소프트 가상 플랫폼 실행방법
KR20210078147A (ko) * 2019-12-18 2021-06-28 주식회사 엔씨소프트 멀티 인스턴스 관리 방법 및 장치

Also Published As

Publication number Publication date
WO2002033539A2 (en) 2002-04-25
US7171661B1 (en) 2007-01-30
DE60133913D1 (de) 2008-06-19
CN1236383C (zh) 2006-01-11
TW550456B (en) 2003-09-01
JP2004512592A (ja) 2004-04-22
CA2425977A1 (en) 2002-04-25
CN1470018A (zh) 2004-01-21
CA2425977C (en) 2008-12-16
ATE394735T1 (de) 2008-05-15
AU2001292052A1 (en) 2002-04-29
WO2002033539A3 (en) 2003-03-20
EP1327190A2 (en) 2003-07-16
EP1327190B1 (en) 2008-05-07

Similar Documents

Publication Publication Date Title
KR20030043998A (ko) 활성 클라이언트 위치의 활성 애플리케이션 구성 요소로실시간 업데이트를 배포하는 방법 및 시스템
US10609112B2 (en) Method, server and system for converging desktop application and web application
US6272677B1 (en) Method and system for automatic detection and distribution of code version updates
US11822954B2 (en) Methods and systems for automating deployment of applications in a multi-tenant database environment
US6430596B1 (en) Managing networked directory services with auto field population
US6950847B2 (en) Service provider system for delivering services in a distributed computing environment
US5968116A (en) Method and apparatus for facilitating the management of networked devices
US9465625B2 (en) Provisioning of operating environments on a server in a networked environment
US20060089995A1 (en) System for conversion between physical machines, virtual machines and machine images
US20030097422A1 (en) System and method for provisioning software
US20030195951A1 (en) Method and system to dynamically detect, download and install drivers from an online service
US20040249918A1 (en) Facilitating replication of a service processor configuration
EP1635257A2 (en) System method and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
JP4620784B2 (ja) 現存するitリソース構造を自動的に複製する方法及びシステム
US20080288622A1 (en) Managing Server Farms
US20050278338A1 (en) Application cloning
US20020138665A1 (en) Binding of processes in network systems
CN113268254A (zh) 一种集群系统安装方法、装置、电子设备及存储介质
AU775624B2 (en) Method and apparatus for dynamic command extensibility in an intelligent agent
Bieszczad et al. Agent-based schemes for plug-and-play network components
CN111614488B (zh) 一种部署异构超算平台的方法及装置
JPH10320184A (ja) ソフトウェアバージョン管理システム
CN110830550A (zh) 计算机集群及其无盘启动方法
KR100456978B1 (ko) 에이전트의 파일 다운로드 방법
JPH05120023A (ja) プログラムローデイング方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application