KR101676042B1 - 클라이언트/서버 네트워크 환경에서 비 역호환 서버 버전을 분배하기 위한 방법 및 시스템 - Google Patents

클라이언트/서버 네트워크 환경에서 비 역호환 서버 버전을 분배하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101676042B1
KR101676042B1 KR1020107018197A KR20107018197A KR101676042B1 KR 101676042 B1 KR101676042 B1 KR 101676042B1 KR 1020107018197 A KR1020107018197 A KR 1020107018197A KR 20107018197 A KR20107018197 A KR 20107018197A KR 101676042 B1 KR101676042 B1 KR 101676042B1
Authority
KR
South Korea
Prior art keywords
client
version
server
application
mode
Prior art date
Application number
KR1020107018197A
Other languages
English (en)
Other versions
KR20100113573A (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 KR20100113573A publication Critical patent/KR20100113573A/ko
Application granted granted Critical
Publication of KR101676042B1 publication Critical patent/KR101676042B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Public Health (AREA)
  • Primary Health Care (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Epidemiology (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라이언트/서버 네트워크 환경에서 애플리케이션 서버의 새로운 비 역호환 버전의 도입을 관리하는 방법 및 시스템이 기술된다. 본 방법은 먼저 애플리케이션 서버의 새로운 비 역호환 버전에 의해 서비스되는 클라이언트 시스템에, 애플리케이션 서버의 현재 서버와 호환가능한 모드에서 동작가능하고 또 새로운 비 역호환 버전과 호환가능한 모드에서 동작가능한 클라이언트 애플리케이션을 분배하는 것에 있다. 클라이언트 시스템에 설치시에, 클라이언트 애플리케이션은 애플리케이션 서버의 현재 버전과 호환가능한 다운그레이드된 모드로 설정된다. 애플리케이션 서버의 현재 버전이 여전히 제공되고 있는 동안, 클라이언트 애플리케이션은 다운그레이드된 모드에서 계속 동작된다. 애플리케이션 서버의 새로운 비 역호환 버전의 도입시에 클라이언트 애플리케이션은 애플리케이션 서버의 새로운 버전과 호환가능한 유효 모드로 설정된다. 이 시점부터 클라이언트 애플리케이션은 유효 모드에서 동작한다. 모드를 설정하는 것은 클라이언트/서버 네트워크 환경에서 동작하는 버전 서버에 질문을 하는 클라이언트 시스템의 각 재발매시에 자동적으로 트리거된다. 질문은 다운그레이드된 모드와 유효 모드를 포함하는 모드로 클라이언트 시스템을 동작시키기 위한 상태 값을 질문을 받은 버전 서버로부터 획득하기 위하여 클라이언트 시스템의 식별자와 클라이언트 애플리케이션 버전 넘버를 포함한다.

Description

클라이언트/서버 네트워크 환경에서 비 역호환 서버 버전을 분배하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR DEPLOYING NON-BACKWARD COMPATIBLE SERVER VERSIONS IN A CLIENT/SERVER COMPUTING ENVIRONMENT}
본 발명은 일반적으로 클라이언트/서버 환경에서 컴퓨터 시스템에 관한 것이며, 보다 상세하게는 클라이언트 버전(version)과 역호환이 되지 않는 서버 소프트웨어 애플리케이션의 새로운 버전을 분배하는 것에 관한 것이다.
네트워크를 통해 구현되는 클라이언트/서버 컴퓨팅 모델이 일반적으로 채용되고 있다. 이 모델에서 클라이언트 노드의 소프트웨어 애플리케이션에 의해 발행된 요청은 하나 이상의 연결된 서버로 송신된다. 일단 서버에 의해 처리되면 요청된 정보는 클라이언트로 반환된다. 이 모델은, 클라이언트로 웹 브라우저를 포함하고 서버로 메일 서버와 같은 많은 전문화된 서버를 구비하는 웹 서버들을 포함하는 인터넷과 같은 모델이다.
이 모델은 또한, 클라이언트 공동체, 즉 사설 네트워크(private network)와 인터넷을 포함하는 공중 네트워크(public network)를 혼합한 네트워크 상에서 서비스 제공자의 컴퓨팅 자원들 상에서 동작하는 소프트웨어 애플리케이션의 최종 유저들에 서비스하기 위해 일반적으로 대규모 컴퓨팅 자원들을 동작시키는 많은 서비스 제공자들의 모델이다. 이러한 제공자들의 예는 항공 회사, 전통적인 여행사 및 온라인 여행사(예를 들어, 여행 계획과 예약을 위해) 및 공항(예를 들어, 출발 관제 및 승객의 체크인을 위해)을 포함하는 전체 여행 산업에 여행 서비스를 제공하는 글로벌 분배 시스템(GDS : global distribution systems)이다.
소프트웨어 시스템은 일반적으로 그 라이프 사이클에 걸쳐 빈번히 업데이트된다. 개발 단계의 완료 후에도 시스템이 분배 중일 때 소프트웨어 애플리케이션은 수정을 하고 이 애플리케이션에 새로운 특징을 부가하여 개선하기 위해 계속 진화한다. 또한, 새로운 유형의 기계의 성능을 충분히 이용하기 위해서 또는 오퍼레이팅 시스템이 새것이거나 진화했거나 또는 달라졌기 때문에 변경이 이루어져야 할 수 있다.
클라이언트/서버 모델에서 서버측 애플리케이션의 새로운 버전을 분배하기 위하여, 표준 실무는 새로운 버전이 역 호환가능해야 한다는 것이다. 그리하여 클라이언트 애플리케이션의 어느 버전이 임의의 노드에서 사용되고 있든 간에 새로운 서버는 일단 분배되면 클라이언트 요청을 처리하고 호환가능한 포맷으로 요청된 정보를 즉시 전달할 수 있다.
이런 이상적인 구조는 어느 정도까지는, 웹 서버가 월드와이드 공중 네트워크의 수많은 클라이언트에 의해 사용되는 현존하는 모든 웹 브라우저와 호환될 필요가 있는 인터넷에 적용된다. 이것은 완전히 참이지는 않다. 모든 웹 브라우저 브랜드들이 동일한 방식으로 정확히 반응하는 것은 아니며 또 많은 서버들이 클라이언트 애플리케이션의 가장 최근의 버전만을 실제로 지원하고 있는 것으로 이미 알려져 있다. 예를 들어, 대부분 사용되는 월드와이드 브라우저인 마이크로소프트사(Microsoft Corporation)에 의한 웹 브라우저인 인터넷 익스플로러(IE)에서 많은 최근의 서버 애플리케이션은 현재 단 버전 5(IE5) 이상만을 지원하고 있다. 사실, 클라이언트 그래픽 유저 인터페이스(GUI)는 구 버전의 브라우저나 지원되지 않는 브라우저 브랜드가 업그레이드된 서버로부터 정보를 요청하고 수신할 때에는 심각히 손상될 수 있다.
역 호환이 실제로는 단지 부분적으로만 달성가능하다 하더라도, 이 역 호환을 유지하는 것은 많은 비용이 든다. 서버의 새로운 애플리케이션은 이 분야에서 지원되는 모든 클라이언트 버전의 모든 옵션, 특징, 비호환성 및 결함들에 하나의 방식이나 다른 방식으로 대처해야만 한다. 이것은 개발 단계 동안 새로운 서버 애플리케이션을 개발하는데 더 많은 시간과 기술을 요구하고 또 더 많은 메모리와 더 빠른 하드웨어 자원들이 구현될 것을 요구하여 많은 비용이 든다. 훨씬 더 중요한 것은, 체크해야 할 서버/클라이언트 브라우저의 조합의 수가 테스트 단계에서 합리적인 시간 내에 모든 조합의 철저한 테스트를 가능하게 하기 위해서는 불가능한 양의 자원(기계나 인력)을 배치할 것을 요구할 수 있을 정도로 급격히 증가한다는 것이다.
이것은, 웹 브라우저가 '씬 클라이언트(thin client)', 즉 요청된 작업을 수행하는데 서버 애플리케이션과 클라이언트 애플리케이션 사이에 행해져야 할 작업의 양이 실제 제한적인 것만을 수행하는 클라이언트인 경우에는 그러하다. 사실, 웹 브라우저의 중요한 작업은 GUI를 통해 웹 서버에 의해 반환된 페이지를 디스플레이하는 것이다.
일반적으로 가맹된 클라이언트(예를 들어, 항공사, 여행사, 공항 등)와만 동작하는 전술된 GDS과 같은 공공연히 접근할 수 없는 클라이언트/서버 시스템에서, 클라이언트 애플리케이션은 서버와 클라이언트 사이에서 공유될 전체 작업 중 훨씬 더 많은 부분을 수행해야 하는 소위 '리치 클라이언트(rich client)'일 필요가 있을 수 있다. 이것은 이들 사이에 이용가능한 대역폭이 너무 제한적이어서 클라이언트 애플리케이션이 각 작업을 수행하는데 서버에 요청할 수 없기 때문에 요구될 수 있다. GDS에서 이것은 예를 들어 비행기 이륙과 승객들의 체크인, 및 승객이 탑승하는 러시 타임(rush time)에서 급히 처리되어야 하는 업무를 제어하기 위해 공항에서 사용되는 클라이언트 애플리케이션 시스템인 경우이다. 사실, 작은 공항은 제한된 외부 통신 자원들을 여전히 가지고 있을 수 있다. 또한 공항 컴퓨팅 자원들은 자체 소유이고 또 공항 당국(airport authority)의 제어 하에서 체크인 애플리케이션이 GDS에 가맹한 항공사에 의해 사용된다 하더라도 분배되고 업데이트되는데 승인, 즉 시간을 요구한다.
그리하여, 클라이언트 애플리케이션이 더 많은 양의 작업을 자체적으로 수행하도록 제안되는 리치 클라이언트일 때, 역 호환 서버를 가지는 문제는 불가능하지는 않더라도 씬 클라이언트를 가지는 경우에 비해 달성하기에 훨씬 더 곤란할 수 있다. 사실, 지원되는 리치 클라이언트 애플리케이션의 모든 버전의 옵션의 수와 특징은 잠재적으로 훨씬 더 커서 서버 애플리케이션의 개발 단계와 테스트 단계에서 전술된 문제를 크게 악화시킨다.
US-A-5,732,275는 소프트웨어 프로그램을 관리하고 자동적으로 업데이트하는 방법 및 장치를 개시한다. 이 문헌은 서버 소프트웨어 애플리케이션의 새로운 비 역호환 버전의 분배 이전에 네트워크의 모든 클라이언트 소프트웨어 애플리케이션들을 채용하는 문제를 처리하지 않는다. 이 종래 기술에 따르면 클라이언트 애플리케이션은 공유 메모리로부터 소프트웨어 버전을 자체 다운로드할 수 있는 것으로 취해진다. 이것은 이 기술의 적용 범위를 제한하는 반면, 본 발명은 제한된 소프트웨어 자원들을 가지고 매우 단순한 단말(dumb terminals)을 포함하는 네트워크에 적용할 수 있다.
WO01/69382A는 클라이언트 디바이스를 초기에 구성하기 위한 방법을 개시한다. 이 문헌에 따르면, 새로운 템플릿(template)이 클라이언트 애플리케이션을 초기에 구성하기 위해 다운로드된다. 이 템플릿은 서버의 데이터 구성의 새로운 포맷에 클라이언트 애플리케이션을 적용하도록 의도된 것이나 서버 소프트웨어 애플리케이션 자체의 새로운 버전에 클라이언트 애플리케이션을 적용하도록 의도된 것은 아니다.
따라서, 전술된 점을 감안하여, 클라이언트/서버 환경에서 역 호환되지 않는 서버 애플리케이션의 새로운 버전의 분배를 가능하게 하는 것이 바람직할 수 있다.
본 발명의 다른 목적, 특징 및 잇점은 첨부 도면을 참조하여 이하 상세한 설명을 통해 이 기술 분야에 숙련된 자라면 명확히 이해할 수 있을 것이다. 또 임의의 추가적인 잇점이 본 명세서에 포함되어 있는 것으로 의도된다.
클라이언트/서버 환경에서 역호환 서버를 분배해야 하는 전술된 문제점은, 클라이언트/서버 네트워크 환경에서 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전(non-backward compatible version)의 도입을 관리하는 방법 및 시스템을 기술하는 본 발명에 의해 해결된다.
본 방법은 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전에 의해 서비스되는 클라이언트 시스템에, 애플리케이션 서버의 현재 버전과 호환 가능한 모드에서 동작가능하고 또 새로운 비 역호환 버전과 호환가능한 모드에서 동작가능한 클라이언트 애플리케이션을 먼저 분배하는 것에 있다. 클라이언트 시스템에 설치시에 클라이언트 애플리케이션은 애플리케이션 서버의 현재 버전과 호환가능한 다운그레이드된 모드로 설정된다. 애플리케이션 서버의 현재 버전이 아직 분배 중일 때는 클라이언트 애플리케이션은 다운그레이드된 모드에서 계속 동작된다. 애플리케이션 서버의 새로운 비 역호환 버전의 도입시에, 클라이언트 애플리케이션은 애플리케이션 서버의 새로운 버전과 호환가능한 유효 모드로 설정된다. 이 시점부터, 클라이언트 애플리케이션은 유효 모드에서 동작된다. 모드를 설정하는 것은 클라이언트/서버 네트워크 환경에서 동작하는 버전 서버에 질문을 하는 클라이언트 시스템의 재발매(re-launch)시마다 자동적으로 트리거된다. 질문은 다운그레이드된 모드와 유효 모드를 포함하는 모드로 클라이언트 시스템을 동작시키기 위한 상태 값을 질문을 받은 버전 서버로부터 획득하기 위하여 클라이언트 시스템의 식별자와 클라이언트 애플리케이션 버전 넘버를 포함한다.
본 발명의 추가적인 그러나 순전히 선택적인 실시예에 따르면 본 방법은 다음과 같이 수행될 수 있다:
- 설정하는 단계들은,
클라이언트/서버 네트워크 환경에서 동작하는 버전 서버에, 클라이언트 애플리케이션 버전 넘버를 더 포함하는 클라이언트 시스템의 식별자를 포함하는 질문을 하는 단계와;
다운그레이드된 모드와 유효 모드를 포함하는 모드로 클라이언트 시스템을 동작시키기 위한 상태 값을 질문을 받은 버전 서버로부터 획득하는 단계;를 더 포함하는 클라이언트 시스템의 각 재발매시에 자동적으로 트리거된다.
- 질문은 통계값을 수립하기 위하여 클라이언트 시스템에 대한 지리적인 위치, 유저 식별자 및 모든 종류의 정보를 더 포함한다.
- 질문 내용은 버전 서버의 데이터베이스에 저장된다.
- 클라이언트 시스템의 재발매는 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전이 분배 중일 때 애플리케이션 서버를 동작시키는 서비스 제공자에 의해 강제된다.
- 클라이언트 시스템의 재발매는 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전이 로딩될 때 자동적으로 강제된다.
- 클라이언트 시스템의 재발매는 이전 버전으로 대체(fallback)시에 자동적으로 강제된다.
- 클라이언트 애플리케이션은 무효 모드에서 클라이언트 시스템을 동작시키기 위한 상태 값을 버전 서버로부터 수신한다.
- 획득하는 단계는 버전 서버에서 메타 규칙이 지시하는 것보다 더 오래된 클라이언트 애플리케이션을 즉시 무효로 선언하기 위해 메타 규칙에 대해 클라이언트 애플리케이션 버전 넘버를 체크하는 선행 단계를 포함한다.
- 본 발명은, 만약 메타 규칙을 체크한 것이 성공적이라면,
호환 규칙 세트에 대해 클라이언트 애플리케이션 버전 넘버를 체크하는 단계와;
규칙 내용에 따라 호환 규칙에 의해 관련된 클라이언트 애플리케이션을 무효, 반대 또는 다운그레이드된 것으로 선언하는 단계와;
임의의 호환 규칙에 의해 관련되지 않은 클라이언트 애플리케이션을 유효로 선언하는 단계;를 더 포함한다.
- 획득하는 단계는 하나 이상의 클라이언트 애플리케이션 문제를 수정하기 위한 패치를 클라이언트 시스템에 더 전달한다.
- 패치는 클라이언트 시스템이 재발매될 때마다 자동적으로 적용된다.
- 클라이언트 애플리케이션은 그래픽 유저 인터페이스를 포함한다.
본 발명은 또한 상기 방법의 각 단계를 수행하도록 적응된 수단을 포함하는 데이터베이스와 버전 서버를 포함하는 클라이언트/서버 네트워크 환경에서 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 시스템에 관한 것이다.
본 발명은 또한 클라이언트/서버 네트워크 환경에서 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법을 적어도 하나의 컴퓨터로 하여금 동작시키게 하는 컴퓨터로 판독가능한 코드 수단을 포함하는 컴퓨터로 판독가능한 저장 매체에 저장된 컴퓨터 프로그램 제품에 관한 것이다.
도 1은 버전 서버와 데이터베이스를 포함하는 GDS에 기초한 본 발명에 따른 예시적인 시스템을 도시하는 도면.
도 2는 클라이언트 애플리케이션과 GUI가 분배하는 서버 버전에 따라 동작하는 방법을 결정하기 위해 클라이언트 노드에서 수행되는 본 방법의 주요 단계들을 하이 레벨로 도시하는 도면.
도 3은 버전 서버가 로그인(log in)시에 질문을 발행한 클라이언트 시스템에 상태를 부여하는 것을 관리하는 방법을 도시하는 도면.
도 4는 버전 서버의 사용에 의해 이루어지는 기능적 개선, 즉 클라이언트 시스템의 온라인 패치를 도시하는 도면.
본 발명의 이하 상세한 설명은 첨부 도면을 참조한다. 본 상세한 설명은 예시적인 실시예를 포함하지만 다른 실시예도 가능하며, 본 발명의 사상과 범위를 벗어남이 없이 설명된 실시예에 변형도 가능할 것이다.
도 1은 본 발명의 배경 부분에서 설명된 GDS(100)에 기초한 본 발명에 다른 예시적인 시스템을 도시한다. 클라이언트/서버 환경에서 네트워크 상에서 서비스를 제공하는 GDS 또는 임의의 균등한 시스템은 다수의 원격에 위치된 클라이언트 애플리케이션(120)(이는 클라이언트의 레벨에서 동작하는 소프트웨어 애플리케이션)과 시스템(122)을 지원하기 위해 일반적으로 대규모 컴퓨팅 자원들(110)로부터 서버를 구현한다. 본 발명을 예시하는데 사용된 이러한 특정한 실시예에서, 클라이언트 시스템은 예를 들어 승객이 비행기에 탑승할 때 사용되는 공항 이륙 제어 시스템(DCS)이다. 서버와 클라이언트 사이에는 사설 네트워크와 인터넷을 포함하는 공중 네트워크의 임의의 조합으로 구성된 광역 네트워크(WAN)에 걸쳐 연결이 유지된다(130). 컴퓨팅 자원들은 예를 들어 사설 근거리 네트워크, 즉 LAN(105)과 모두 상호 연결된다. 유사하게, 클라이언트 애플리케이션의 로컬 세트는 LAN, 예를 들어 공항 LAN(125)을 거쳐 상호 연결될 수 있으며, 클라이언트 애플리케이션의 독립적인 세트들은 WAN(130)을 거쳐 GDS와 통신한다. 클라이언트 애플리케이션과 인터페이싱하는 것은 이 예에서는 클라이언트로 하여금 전술된 DCS 애플리케이션을 포함하는 GDS에 의해 제공되는 모든 애플리케이션(109)에 액세스하게 할 수 있게 하는 게이트웨이(101)를 거쳐 수행된다. 이러한 시스템은, 일반적으로 연결하고자 하는 클라이언트 애플리케이션이 적법한지 그리고 지원되는 임의의 애플리케이션(109)과 동작하도록 허가되는 기대된 자격을 제공할 수 있는지를 체크하기 위한 로그온 및 보안 서버, 즉 LSS(103)를 포함한다.
본 상세한 설명에서, 애플리케이션 서버의 소프트웨어 프로그램은 그 기능을 수행하기 위해 애플리케이션 서버의 레벨에서 사용되는 소프트웨어 자원들을 의미한다. 달리 명시적으로 언급하지 않는다면, "애플리케이션 서버의 애플리케이션 프로그램의 소프트웨어 프로그램"이라는 용어는 이후 종종 "애플리케이션 서버"라는 표현으로 단축되어 언급된다. 사실, 서버가 하드웨어 성분을 포함하는 것이라 하더라도, 본 발명의 주제는 소프트웨어 성분의 버전(version)을 관리하는 것이다.
본 발명은 데이터베이스(107)와 연관하여 동작하는 버전 서버(105)를 도입한다. 이하 상세한 설명에서 상세히 설명되는 바와 같이, 버전 서버의 역할은 이 분야에 존재하는 클라이언트 애플리케이션 버전(120)의 트랙(track)을 유지하는 것이다. 일반적으로, GDS 및 이와 균등한 시스템(100)은 월드와이드 WAN(130)에 걸쳐 수 천개의 원격 클라이언트 애플리케이션(120)과 인터페이스할 수 있게 이루어진다. 클라이언트의 특성은 데이터베이스에 저장되며, 이 데이터베이스로부터 클라이언트의 특성이 필요할 때 버전 서버에 의해 검색된다.
서버의 역 호환이 가능하지 않거나 너무너무 비쌀 수 있을 때, 본 발명의 방법은 클라이언트 애플리케이션과 GUI의 업그레이드 버전을 모든 원격 클라이언트 노드에 분배하는 것에 있다. 이것은 클라이언트 애플리케이션의 새로운 버전이 서버의 현재 버전 및 더 새로운 버전, 즉 새로 나올 버전 모두와 호환가능하게 이루어진다는 것을 의미한다. 이러한 구조를 가지고, 새로운 서버는 설치될 때 더 오래된 클라이언트 애플리케이션과 GUI와는 호환되지 않을 수도 있다.
상기 전략의 결과, 분배 단계 동안(완전한 분배에는 수 천개의 클라이언트 노드를 포함하는 네트워크에서 완성하기 위해 일반적으로 수 주일(several weeks)이 필요할 수 있다), 새로운 클라이언트 애플리케이션은 설치될 때 서버 버전(N), 즉 분배 중인 현재 버전으로 다운그레이드된다. 그 상태는 이에 따라 버전 서버(105)의 데이터베이스(107)에서 '버전(N)으로 다운그레이드됨' 으로 변경된다. 그리하여, 클라이언트 애플리케이션이 클라이언트 노드에 분배되는 기간 동안 이미 업그레이드된 노드들의 상태가 자동적으로 사용되며, 즉 클라이언트가 재발매(re-launch)될 때마다 현재 서버와 호환가능한 버전(N)으로 자동적으로 사용된다.
일단 분배가 완성되거나 거의 완성되면, 서버 시스템, 예를 들어 도 1의 GDS(100)는 최종 유저 전부나 적어도 대다수의 최종 유저들이 업그레이드된 클라이언트/서버 기능과 특징을 이용하기 시작할 수 있도록 새로운 서버로 승격(promote)시킬 것을 결정할 수 있다. 승격은 시스템의 관리자에 의해 수동으로 수행될 수 있거나 또는 소프트웨어 로딩 시에 자동적으로 트리거될 수 있다. 이 경우에 버전 서버는 원격 클라이언트 노드의 상태를 데이터베이스에서 '유효'로 변경하도록 지시를 받아서 서버의 새로운 버전(N+1)이 분배될 수 있게 하고 클라이언트 애플리케이션과 GUI가 레벨(N+1)에서 또한 동작할 수 있게 한다. 이것을 달성하기 위해, 버전 서버는 버전(N)(및 만약 있다면 더 오래된 버전)을 사용하여 모든 세션(session)의 분리를 강제한다. 이를 위해 서명 메시지(sign-out message)가 버전 서버에 의해 각 클라이언트 원격 노드로 송신되어 최종 세션을 종료시키고 클라이언트 애플리케이션과 GUI의 재발매를 요청하도록 한다. 이후, 그 다음 재발매시에, 버전(N+1)이 본 발명의 이후 상세한 설명에서 더 논의되는 바와 같이 자동적으로 사용된다. 여기서 GDS 서비스 제공자 시스템은 필요한 만큼 적거나 많은 클라이언트 노드를 버전 서버를 통해 제어하는 자유를 가지고 있는 것을 주목해야 한다. 특정 업그레이드에 의해 관련된 클라이언트 노드만이 재발매될 필요가 있다. 업그레이드, 다운그레이드(예를 들어, 이전 버전으로 대체하는 경우) 및 버전 차단(현재 버전이 호환되지 않는 경우)이 여러 가지 매우 상이한 입도 레벨에서 수행될 수 있다. 이것은 전 세계, 지역, 나라, 도시, 공항으로부터 공항의 특정 터미널, 탑승 게이트, 오피스 등과 같은 임의의 식별 가능한 위치에까지 아우를 수 있으며 이에 따라 새로운 클라이언트 버전의 분배에 상당한 융통성을 제공한다.
도 2는 클라이언트 애플리케이션과 GUI가 분배되는 서버 버전에 따라 동작하여야 하는 방법을 결정하기 위해 클라이언트 노드에서 수행되는 본 방법의 주요 단계들을 도시한다.
클라이언트 애플리케이션(210)이 재발매될 때마다 프로세스가 수행된다. 로그인시에 클라이언트 애플리케이션에 의해 트랜잭션(transaction)이 자동적으로 초기화(212)되어 버전 서버와 데이터 베이스(220)로부터 사용되는 클라이언트 애플리케이션 버전의 상세사항(details)을 검색한다(214). 클라이언트 애플리케이션에 의해 버전 서버로 자동적으로 송신된 질문(query)은 사용되는 애플리케이션 ID를 포함하는 클라이언트 노드의 식별자(ID)와 그 버전 넘버를 포함할 필요가 있다.
본 발명의 바람직한 실시예에서, 클라이언트 애플리케이션 버전의 사용과 새로운 버전을 분배하는 과정에 대한 통계값을 수립하기 위해 질문은 다음 사항을 포함하는 클라이언트 노드에 대한 추가적인 정보를 포함하여야 한다:
- 유저 식별자;
- 유저 오피스, 예를 들어 런던에 위치된 루프트한자 항공(Lufthansa)(LH) 에이전트에 대해서 LONLH033;
- 유저 위치, 예를 들어 런던 헤쓰로우 공항(London Heathrow airport), 터미널 2, 게이트 20에 대해 LHR/T2/GTE/20;
- 유저 구성, 예를 들어, LH, 항공사 이름;
- 등.
도 1에 도시된 로그온 및 보안 서버(LSS)(103)에 제공되는 정보는 애플리케이션 서버의 적법한 유저로서 인식되도록 제공되는 자격(credentials)의 일부이다.
클라이언트 애플리케이션에 의해 질문(212)으로 제공된 것은 이에 따라 이 분야에서 새로운 애플리케이션 버전의 분배에 대해 그리고 일반적으로 애플리케이션 서버와 인터페이스하는 클라이언트 애플리케이션의 분포(population) 특성에 대해 매우 귀중한 정보를 획득하기 위해 사용될 수 있다. 예를 들어, GDS는 클라이언트 애플리케이션의 특정 버전을 사용하여 세계에 있는 위치들의 리스트를 수립하거나 너무 오래된 버전이 아직 사용중인 지를 검출할 수 있다. 클라이언트 애플리케이션에 의해 제공되는 정보는 데이터베이스에서 수집되며 원격 클라이언트 노드의 대규모 분포를 감시하고 관리하는 것을 담당하는 관리 센터로부터 동작하는 임의의 종류의 프로그램에 의해 사용될 수 있다.
버전 서버(220)는 모든 클라이언트 노드에서 사용되는 클라이언트 애플리케이션과 GUI의 상태 리스트를 계속 관리한다. 이후, 현재 분배되는 애플리케이션 서버의 버전을 알면 전술된 바와 같이 질문에 있는 클라이언트 노드에 의해 제공되는 정보에 기초하여 로그인 시간에 각 클라이언트 시스템으로 상태가 복귀한다(214). 상태는 다음 값들 중 하나를 취할 수 있다:
유효 : 유효는 클라이언트 애플리케이션과 GUI의 최근의 다운로드된 버전(N+1)의 상태이다. 이것은 새로운 클라이언트 애플리케이션이 분배된 후의 정상 상태를 나타내며 서버의 대응하는 새로운 버전이 분배되고 있다는 것을 의미한다.
반대 : 반대는 클라이언트 애플리케이션과 GUI가 현재 분배 서버와 아직 호환가능한 더 오래된 버전이라는 것을 말한다. 이 상태는 GUI의 새로운 버전이 이용가능하나 더 오래된 분배된 GUI가 현재 서버와 호환 가능하게 유지될 때 사용된다. 클라이언트 구성에 따라 경고 메시지가 로그인시에 최종 유저에게 선택적으로 디스플레이된다.
버전 N 으로 다운그레이드된 것 : 버전 N으로 다운그레이드된 것은 새로이 분배된 클라이언트 애플리케이션과 GUI 버전(N+1)이 (새로운 클라이언트 애플리케이션과 GUI가 분배되고 있는 동안, 대응하는 새로운 서버를 동작시키기 전에) 버전 N으로 거동해야 하는 것을 나타낸다. 전술된 바와 같이, 이 상태는 주로 비 역호환 서버의 동작을 관리하는 것을 가능하게 하기 위해 사용된다. 이것은 또한 경우에 따라 이후 설명되는 바와 같이 (이전 버전으로) 서버의 대체를 관리하는데 사용된다.
무효 : 무효는 클라이언트 애플리케이션과 GUI가 현재 분배 서버와 호환가능하지 않은 구 버전이라는 것을 말한다. 클라이언트 노드의 최종 유저는 로그인 시에 경고 통지를 수신하며 통상적으로 차단된다.
상기 상태 값은 분배 중인 애플리케이션 서버의 버전에 따라 거동하도록 클라이언트 시스템에 의해 해석된다(216). 이후 정상 트랜잭션(218)이 이들 트랜잭션의 처리를 담당하는 애플리케이션 서버(230)와 클라이언트 애플리케이션 사이에 일어날 수 있다.
어느 이유 때문에, 승격된 애플리케이션 서버가 문제에 부딪쳐 제거되어야 한다면, 이전 버전으로 대체가 일어나야 한다. 이후, 이미 다운로드된 새로운 클라이언트 애플리케이션과 GUI는 이전 서버 버전에 따라 분배가 진행 중이었던 기간에서와 같이 이들이 다시 거동을 시작하도록 다시 '다운그레이드된' 상태로 다시 설정되어야 한다. 일부 클라이언트 시스템이 클라이언트 애플리케이션과 GUI의 이전 버전을 아직 사용하고 있다면, 그 상태는 '반대'에서부터 '유효'로 전환된다.
도 3은 버전 서버가 로그인 시에 질문을 발행한 클라이언트 시스템에 상태를 분배하는 것을 관리하는 방법을 도시한다.
클라이언트 시스템에 의해 버전 서버로 발행한 질문에 제공된 GUI와 클라이언트 애플리케이션의 버전(310)을 가지고 프로세스가 시작한다. 클라이언트 시스템에 의해 질문을 받을 때 어느 상태로 복귀하여야 하는지 결정하기 위해 버전 서버는 애플리케이션 서버의 어느 버전이 분배 중인지를 아는 상태에서 제공된 클라이언트 버전(310)에 대해 각각 체크된(340) 호환 규칙(compatibility rules)을 사용한다. 그러나, 호환 규칙이 급증(proliferation)하는 것을 회피하기 위하여, 메타 규칙(meta-rule)에 대해 클라이언트 버전을 이전에 체크한다(320). 메타 규칙은 주어진 값보다 더 오래된 모든 버전 넘버를 바로 제거하기 위해 사용된다. 클라이언트 애플리케이션마다 하나의 메타 규칙이 있다. 그리하여 메타 규칙을 체크하는 것이 실패하면(331), '무효 상태'는 바로 복귀한다(352). 그렇지 않고, 클라이언트 버전이 메타 규칙 체크를 패스(pass)한다면(332), 호환 규칙이 체크될 필요가 있다(340). 호환 규칙은 분배 중인 서버와 특정 클라이언트 시스템 사이에 호환성이 없는 모든 상황의 트랙을 실제로 유지하여 규칙에 의해 관련되지 않은 모든 이들이 최종적으로 유효로 선언된다(380). 그렇지 않고, 규칙에 의해 관련된 클라이언트 시스템은 이들에 적용되는 규칙 내용에 따라 '무효(invalid)'(350), '반대(deprecated)'(360) 또는 '다운그레이드된 것(downgraded)'(370)으로 선언된다.
도 4는 클라이언트 시스템의 온라인 패치(patch), 즉 버전 서버의 사용에 의해 이루어지는 기능적 개선을 도시한다.
버전 서버의 사용은 특히 수 천이나 수 만개의 클라이언트 노드에 관련된 수 많은 클라이언트 시스템을 수반하는 대규모 네트워크에서 유용하다. 이후 새로운 클라이언트 애플리케이션의 분배는 일반적으로 완성하는데 수 주일이 걸리는 성가시고 기나긴 작업이다. 원격 사이트가 서비스 제공자, 예를 들어 본 발명을 예시하기 위해 사용된 GDS의 직접 제어 하에 있지 않을 수도 있으므로, 담당하는 자, 예를 들어 공항 당국은 그 시스템에 악영향을 끼치는 우려 때문에 새로운 버전의 애플리케이션을 설치하기에 사실상 주저할 수도 있다. 본 발명에 의해 지원되는 대체 메커니즘은 문제가 심각한 경우에 서버의 이전 버전으로 다시 올 수 있게 허용하여 이 우려에 대한 하나의 해답을 제공한다. 본 발명에 따른 버전 서버는 다른 기능적인 개선을 구현하는 것을 가능하게 하여, 클라이언트 애플리케이션의 분배가 진행 중이거나 또는 이 분배가 활성화된 후 임의의 시간에 나타날 수 있는 문제를 회피한다.
중요한 차단 문제가 이미 전세계적으로 분배된 클라이언트 애플리케이션 버전(410)에서 발견되면, 버전 서버(420)는 전체 클라이언트 애플리케이션을 재분배할 필요 없이 문제를 피할 수 있게 하는 일련의 코드, 즉 패치를 제공할 수 있다. 이를 위해, 도 2에서 이미 설명된 바와 같이, 버전 서버가 원격 클라이언트 시스템의 로그인 시에 자동적으로 송신된 질문(412)에 대답을 할 때, 패치가 그 응답에 추가된다. 질문에 제공된 버전 넘버와 애플리케이션 이름에 기초하여, 버전 서버는 클라이언트 애플리케이션 버전이 기능적인 문제를 가지고 있다는 것을 인식한다. 이후 버전 서버에 의해 송신된 대답(reply)은 전술된 상태와 기능적인 문제(414)의 패치를 포함한다. 서버 대답을 수신할 때 클라이언트 애플리케이션은 버전 상태에 따라 그 거동을 변경하며 자기 자신에 패치를 적용한다(416). 이 패치는 영구히 저장되지도 않고 클라이언트 애플리케이션 기계에 설치되지도 않으나 클라이언트 애플리케이션이 재시작할 때마다 적용된다. 이후, 정상 트랜잭션(418)이 이 트랜잭션의 처리를 담당하는 애플리케이션 서버(430)와 클라이언트 애플리케이션 사이에 재시작될 수 있다. 이 동작 모드는 새로운 버전이 재분배될 때까지 계속된다.

Claims (15)

  1. 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전(non-backward compatible version; 109)의, 클라이언트/서버 네트워크 환경(130)으로의 도입을 관리하는 방법으로서,
    먼저 상기 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전에 의해 서비스될 클라이언트 시스템(122)에, 상기 애플리케이션 서버의 현재 버전과 호환가능한 다운그레이드된 모드(downgraded mode)로 동작가능하고 상기 소프트웨어 프로그램의 새로운 비 역호환 버전과 호환가능한 유효 모드(valid mode)로 동작가능한 클라이언트 애플리케이션(120)을 배포하는 단계와;
    상기 클라이언트 애플리케이션(120)이 상기 클라이언트 시스템에 설치될 때, 상기 클라이언트 애플리케이션을, 상기 애플리케이션 서버의 소프트웨어 프로그램의 현재 버전과 호환가능한 다운그레이드된 모드(370)로 설정하는 단계와;
    상기 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입시까지 상기 다운그레이드된 모드로 상기 클라이언트 애플리케이션을 계속 동작시키는 단계와;
    상기 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입시에, 상기 클라이언트 애플리케이션을, 상기 애플리케이션 서버의 소프트웨어 프로그램의 새로운 버전과 호환가능한 유효 모드(380)로 설정하는 단계와;
    이 시점부터 상기 유효 모드로 상기 클라이언트 애플리케이션(120)을 동작시키는 단계를 포함하고,
    상기 설정하는 단계들은 상기 클라이언트 시스템의 각 재시작(re-launch)시에 자동적으로 트리거되며, 상기 설정하는 단계들은,
    상기 클라이언트/서버 네트워크 환경에서 동작하는 버전 서버(105)에, 클라이언트 애플리케이션 버전 넘버를 더 포함하는 상기 클라이언트 시스템의 식별자(identification)를 포함하는 질의(query)를 보내는 단계(212)와;
    상기 다운그레이드된 모드와 상기 유효 모드를 포함하는 모드로 상기 클라이언트 시스템을 동작(216)시키기 위한 상태 값을 상기 질의를 받은 버전 서버(105)로부터 획득하는 단계(214)를 포함하는 것인,
    애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    질의(212)는 통계값을 수립하기 위해 지리적 위치(geographical location), 유저 식별자 및 상기 클라이언트 시스템에 대한 모든 종류의 정보를 더 포함하는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  4. 제 1 항 또는 제 3 항에 있어서,
    질의 컨텐츠는 상기 버전 서버의 데이터베이스(107)에 저장되는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  5. 제 1 항에 있어서,
    상기 클라이언트 시스템의 재시작은 상기 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전이 제공되고 있을 때, 상기 애플리케이션 서버(100)를 동작시키는 서버 제공자에 의해 강제되는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  6. 제 5 항에 있어서,
    상기 클라이언트 시스템의 재시작은 상기 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전이 로딩될 때 자동적으로 강제되는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  7. 제 5 항에 있어서,
    상기 클라이언트 시스템의 재시작은 이전 버전으로 폴백(fallback)되는 경우 자동적으로 강제되는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  8. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션은 무효 모드(350)에서 상기 클라이언트 시스템을 동작시키기 위한 상태 값을 상기 버전 서버로부터 수신하는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  9. 제 1 항에 있어서,
    상기 획득하는 단계는 버전 서버에서 메타 규칙(meta-rule)이 명시하는 것보다 더 오래된 클라이언트 애플리케이션을 즉시 무효로 선언하기 위해 메타 규칙에 대해 상기 클라이언트 애플리케이션 버전 넘버를 체크(320)하는 선행 단계를 포함하는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  10. 제 9 항에 있어서,
    메타 규칙을 체크한 것이 성공적이면,
    호환 규칙(compatibility rules) 세트에 대해 상기 클라이언트 애플리케이션 버전 넘버를 체크하는 단계(340); 및
    규칙 컨텐츠에 따라 상기 호환 규칙(340)에 의해 관련되는 상기 클라이언트 애플리케이션을 무효(invalid; 350), 반대(deprecated; 360) 또는 다운그레이드된 것(downgraded; 370)으로 선언하거나, 아니면, 어떤 호환 규칙에 의해서도 관련되지 않은 상기 클라이언트 애플리케이션을 유효(380)로 선언하는 단계를 더 포함하는, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  11. 제 1 항에 있어서,
    상기 획득하는 단계는 하나 이상의 클라이언트 애플리케이션 문제를 수정하기 위한 패치(414)를 상기 클라이언트 시스템에 더 전달하는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  12. 제 11 항에 있어서,
    상기 패치는 상기 클라이언트 시스템이 재시작(416)될 때마다 동적으로 적용되는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  13. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션은 그래픽 유저 인터페이스(210)를 포함하는 것인, 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전의 도입을 관리하는 방법.
  14. 제 1 항에 따른 방법의 각 단계를 수행하도록 구성된 수단을 포함하는 데이터베이스(107)와 버전 서버(105)를 포함하는, 클라이언트/서버 네트워크 환경(130)으로 애플리케이션 서버의 소프트웨어 프로그램의 비 역호환 버전을 도입하는 것을 관리하는 시스템.
  15. 제 1 항에 따른 클라이언트/서버 네트워크 환경으로 애플리케이션 서버의 소프트웨어 프로그램의 새로운 비 역호환 버전을 도입하는 것을 관리하는 방법을 적어도 하나의 컴퓨터(110,122)로 하여금 동작시키게 하는 컴퓨터로 판독가능한 코드 수단을 포함하는 컴퓨터 프로그램을 저장하는 컴퓨터로 판독가능한 저장 매체.
KR1020107018197A 2008-01-22 2009-01-16 클라이언트/서버 네트워크 환경에서 비 역호환 서버 버전을 분배하기 위한 방법 및 시스템 KR101676042B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP08300042A EP2083354A1 (en) 2008-01-22 2008-01-22 Method and system for deploying non-backward compatible server versions in a client/server computing environment
EP08300042.2 2008-01-22
US2283408P 2008-01-23 2008-01-23
US61/022,834 2008-01-23
PCT/EP2009/050471 WO2009092666A1 (en) 2008-01-22 2009-01-16 Method and system for deploying non-backward compatible server versions in a client/server computing environment

Publications (2)

Publication Number Publication Date
KR20100113573A KR20100113573A (ko) 2010-10-21
KR101676042B1 true KR101676042B1 (ko) 2016-11-14

Family

ID=39238889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018197A KR101676042B1 (ko) 2008-01-22 2009-01-16 클라이언트/서버 네트워크 환경에서 비 역호환 서버 버전을 분배하기 위한 방법 및 시스템

Country Status (11)

Country Link
US (1) US9098371B2 (ko)
EP (2) EP2083354A1 (ko)
JP (1) JP5437270B2 (ko)
KR (1) KR101676042B1 (ko)
CN (1) CN101925878B (ko)
AU (1) AU2009207774B2 (ko)
BR (1) BRPI0906423A2 (ko)
CA (1) CA2711944C (ko)
ES (1) ES2632740T3 (ko)
WO (1) WO2009092666A1 (ko)
ZA (1) ZA201004928B (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161551B1 (en) * 2009-04-21 2012-04-17 Mcafee, Inc. System, method, and computer program product for enabling communication between security systems
CN102521001B (zh) * 2011-12-19 2014-04-02 青岛海信网络科技股份有限公司 一种c/s结构应用程序版本兼容性控制方法
US9262149B2 (en) * 2012-04-12 2016-02-16 International Business Machines Corporation Managing incrementally applied system updates
US9509566B2 (en) * 2013-06-27 2016-11-29 Yokogawa Electric Corporation System and method for generating output data
US9262237B2 (en) 2013-12-17 2016-02-16 International Business Machines Corporation Automating software availability management based on API versioning
US9262152B1 (en) * 2015-01-22 2016-02-16 Bank Of America Corporation Modular system including management and deployment of software updates and revisions
CN106897053B (zh) * 2016-07-08 2020-06-26 阿里巴巴集团控股有限公司 一种代码发布方法与装置
US10417116B2 (en) * 2016-07-28 2019-09-17 International Business Machines Corporation System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay
US10289401B1 (en) * 2016-12-30 2019-05-14 Juniper Networks, Inc Systems and methods for efficiently downgrading operating systems installed on network devices
EP3659394A1 (en) 2017-10-17 2020-06-03 Telefonaktiebolaget LM Ericsson (publ) Service registration in a communications network
US10997192B2 (en) 2019-01-31 2021-05-04 Splunk Inc. Data source correlation user interface
US10754638B1 (en) 2019-04-29 2020-08-25 Splunk Inc. Enabling agile functionality updates using multi-component application
US11194564B1 (en) 2019-04-29 2021-12-07 Splunk Inc. Maintaining compatibility in a multi-component application
CN112738550B (zh) * 2019-10-14 2022-10-11 腾讯科技(深圳)有限公司 内容数据的处理方法、装置、电子设备及介质
US11151125B1 (en) 2019-10-18 2021-10-19 Splunk Inc. Efficient updating of journey instances detected within unstructured event data
CN111522561B (zh) * 2020-03-06 2023-06-06 杜晓楠 Dbft分布式网络中平滑向后兼容升级的方法、计算机可读存储介质和dbft网络
US11269876B1 (en) 2020-04-30 2022-03-08 Splunk Inc. Supporting graph data structure transformations in graphs generated from a query to event data
US11561821B1 (en) * 2020-05-07 2023-01-24 Amazon Technologies, Inc. Controlling placement of virtualized resources based on desirability index for host pools
US11741131B1 (en) 2020-07-31 2023-08-29 Splunk Inc. Fragmented upload and re-stitching of journey instances detected within event data
CN113885903B (zh) * 2021-08-30 2022-07-29 珠海读书郎软件科技有限公司 一种应用市场多应用升级的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002048878A3 (en) 2000-12-14 2003-11-06 Curl Corp System and methods for providing compatibility across multiple versions of a software system
US20050108706A1 (en) * 2003-11-14 2005-05-19 International Business Machines Corporation Method and system for dynamically loading server code on a client to support multiple veresions of client and servers in a client/server application

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581010A (ja) * 1991-09-20 1993-04-02 Fujitsu Ltd パツチ実施方法
JPH07129373A (ja) * 1993-10-29 1995-05-19 Matsushita Electric Ind Co Ltd アプリケーションバージョン管理装置
US5754785A (en) * 1995-04-27 1998-05-19 General Datacomm Communications network equipment
US5732275A (en) * 1996-01-11 1998-03-24 Apple Computer, Inc. Method and apparatus for managing and automatically updating software programs
US6343328B1 (en) * 1997-02-10 2002-01-29 International Business Machines Corporation Digital computer system using embedded comments to manipulate virtual controller functions
US6718549B1 (en) * 1999-05-05 2004-04-06 Microsoft Corporation Methods for managing the distribution of client bits to client computers
US6754848B1 (en) * 1999-09-30 2004-06-22 International Business Machines Corporation Method, system and program products for operationally migrating a cluster through emulation
WO2001069382A1 (en) * 2000-03-10 2001-09-20 Aether Systems, Inc. System, method and apparatus for initial configuration of a client device
US6950847B2 (en) * 2001-07-12 2005-09-27 Sun Microsystems, Inc. Service provider system for delivering services in a distributed computing environment
JP2004334767A (ja) * 2003-05-12 2004-11-25 Nec Corp 情報処理方法、情報処理装置及び情報処理プログラム
JP2005107708A (ja) * 2003-09-29 2005-04-21 Canon Inc アプリケーション配布システム
CN1287279C (zh) * 2003-11-14 2006-11-29 中兴通讯股份有限公司 一种分布式系统中客户端从服务器端下载软件的方法
US20050132032A1 (en) * 2003-12-15 2005-06-16 Bertrand Daniel W. Autonomous agent-based system management
EP1794688A2 (en) * 2004-09-17 2007-06-13 International Business Machines Corporation Display and installation of portlets on a client platform
US7792522B1 (en) * 2006-01-13 2010-09-07 Positive Access Corporation Software key control for mobile devices
JP4842690B2 (ja) * 2006-04-14 2011-12-21 富士通株式会社 アプリケーション管理プログラム、アプリケーション管理方法およびアプリケーション管理装置
US7606836B2 (en) * 2006-08-21 2009-10-20 Tibco Software Inc. Methods for efficient data version verification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002048878A3 (en) 2000-12-14 2003-11-06 Curl Corp System and methods for providing compatibility across multiple versions of a software system
US20050108706A1 (en) * 2003-11-14 2005-05-19 International Business Machines Corporation Method and system for dynamically loading server code on a client to support multiple veresions of client and servers in a client/server application

Also Published As

Publication number Publication date
AU2009207774A1 (en) 2009-07-30
EP2235625B1 (en) 2017-05-03
CN101925878A (zh) 2010-12-22
JP5437270B2 (ja) 2014-03-12
US9098371B2 (en) 2015-08-04
EP2083354A1 (en) 2009-07-29
WO2009092666A1 (en) 2009-07-30
BRPI0906423A2 (pt) 2015-07-14
EP2235625A1 (en) 2010-10-06
ZA201004928B (en) 2012-10-31
CA2711944A1 (en) 2009-07-30
CN101925878B (zh) 2015-01-14
ES2632740T3 (es) 2017-09-15
CA2711944C (en) 2018-08-14
AU2009207774B2 (en) 2014-10-30
US20110185348A1 (en) 2011-07-28
JP2011510388A (ja) 2011-03-31
KR20100113573A (ko) 2010-10-21

Similar Documents

Publication Publication Date Title
KR101676042B1 (ko) 클라이언트/서버 네트워크 환경에서 비 역호환 서버 버전을 분배하기 위한 방법 및 시스템
US7003767B2 (en) System and method for remotely updating software applications
US7716373B2 (en) Method, apparatus, and computer product for updating software
US7069293B2 (en) Methods, systems and computer program products for distribution of application programs to a target station on a network
CA2776384C (en) Self-service configuration for data environment
US7302558B2 (en) Systems and methods to facilitate the creation and configuration management of computing systems
US6651095B2 (en) Methods, systems and computer program products for management of preferences in a heterogeneous computing environment
US20050144261A1 (en) Selective update of console parameters from other consoles
EP1950930A2 (en) Connection control in thin client system
EP1076848A1 (en) Remote installation of computer operating systems
US20020184300A1 (en) Device management system and method
CN110602136B (zh) 集群访问方法和相关产品
CN105528205A (zh) 更新控制方法和更新控制系统
KR101638689B1 (ko) 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템
CN113726546A (zh) 配置方法、装置、系统、计算设备及存储介质
JP2017021667A (ja) システム、及び制御方法
JP4882291B2 (ja) モジュール更新プログラム
JPH10320184A (ja) ソフトウェアバージョン管理システム
US20050132325A1 (en) Management of computer servers
US20240126531A1 (en) Single node rolling online patching of a database server
JP2004078550A (ja) ソフトウェア更新システム
CN104298750A (zh) 用于实时系统通信的更新处理方法及装置
KR20160025488A (ko) 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템
JP2000315169A (ja) クライアント−サーバシステムおよびマスタ参照負荷軽減方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant