KR102026377B1 - 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템 - Google Patents

웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템 Download PDF

Info

Publication number
KR102026377B1
KR102026377B1 KR1020170126209A KR20170126209A KR102026377B1 KR 102026377 B1 KR102026377 B1 KR 102026377B1 KR 1020170126209 A KR1020170126209 A KR 1020170126209A KR 20170126209 A KR20170126209 A KR 20170126209A KR 102026377 B1 KR102026377 B1 KR 102026377B1
Authority
KR
South Korea
Prior art keywords
version
application
server
web application
user terminal
Prior art date
Application number
KR1020170126209A
Other languages
English (en)
Other versions
KR20190036828A (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 주식회사 유비케어
Priority to KR1020170126209A priority Critical patent/KR102026377B1/ko
Publication of KR20190036828A publication Critical patent/KR20190036828A/ko
Application granted granted Critical
Publication of KR102026377B1 publication Critical patent/KR102026377B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템이 개시된다. 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법은, 사용자 단말로부터, 특정 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생 됨에 따라, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인하는 단계와, 상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전에 상응하는 제1 어플리케이션 서버를 식별하는 단계, 및 상기 사용자 단말을 상기 제1 어플리케이션 서버와 접속시켜, 상기 제1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 하는 단계를 포함한다.

Description

웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템{METHOD AND SYSTEM FOR MANAGING VERSION OF WEB-APPLICATION AND DISTRIBUTING WEB-APPLICATION}
본 발명은 웹 어플리케이션의 버전 관리를 통한 효과적인 웹 서비스 배포 기술에 관한 것으로, 보다 상세하게는, 동일한 웹주소로 접속한 사용자 단말 별로 웹 어플리케이션의 버전을 다르게 제공하여 오류나 사용성 관련 문제가 타 버전에 영향을 미치지 않도록 하는 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템에 관한 것이다.
웹 환경에서 신규 기능이 추가된 버전의 웹 어플리케이션을 배포하는 경우 해당 버전의 웹 어플리케이션에서 오류가 발생 시 웹 어플리케이션에 접속한 전체 사용자에게 영향을 줄 수 있어, 웹 어플리케이션의 배포가 용이하지 않다는 문제점을 가지고 있다. 따라서, 일부 사용자에게 제한된 웹 어플리케이션을 미리 배포하여 검증할 필요성이 있다.
또한, 사용성 평가를 위해 일부 사용자에 한해 특정 기능이 추가된 버전의 웹 어플리케이션을 배포하여 사용자의 반응을 미리 파악해 볼 수 있는 방법이 종래에는 없었다.
이에 따라, 웹 환경에서 버전 관리를 통해 특정 사용자에게 제한적으로 웹 어플리케이션을 서비스 하여 문제 발생을 지역화 하고 효과적인 웹 서비스를 배포하기 위한 기술이 요구되고 있다.
본 발명의 실시예는 동일한 웹주소로 접속한 사용자 단말 별로 웹 어플리케이션의 버전을 다르게 제공하여 오류나 사용성 관련 문제를 지역화 하는 것을 목적으로 한다.
또한, 본 발명의 실시예는 웹 환경에서 버전 관리를 통해 특정 일부의 사용자에게 제한된 버전의 웹 어플리케이션을 미리 배포해 검증할 수 있도록 하는 것을 목적으로 한다.
또한, 본 발명의 실시예는 동일한 URL로 웹페이지에 접속한 사용자 단말을 그룹화 하여, 서비스 제공자가 원하는 다양한 버전의 웹 서비스를 그룹 별로 제공하는 것을 목적으로 한다.
또한, 본 발명의 실시예는 웹 어플리케이션의 버전 별로 복수의 어플리케이션 서버(WAS, Web Application Server)를 마련하고, 동일 웹페이지에 접속을 요청한 사용자 단말 각각으로, 해당 사용자 단말에 적합한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버로 사용자 단말을 스위칭 하거나, 관리자 단말에 의해 지정된 일부 사용자에 한해 특정 버전(예컨대, 업그레이드 버전)의 웹 어플리케이션을 제한적으로 배포하는 것을 목적으로 한다.
본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법은, 사용자 단말로부터, 특정 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생 됨에 따라, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인하는 단계와, 상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전에 상응하는 제1 어플리케이션 서버를 식별하는 단계, 및 상기 사용자 단말을 상기 제1 어플리케이션 서버와 접속시켜, 상기 제1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 하는 단계를 포함한다.
또한, 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템은, 사용자 단말로부터, 특정 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생 됨에 따라, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인하는 버전 확인부와, 상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전에 상응하는 제1 어플리케이션 서버를 식별하는 서버 식별부, 및 상기 사용자 단말을 상기 제1 어플리케이션 서버와 접속시켜, 상기 제1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 하는 처리부를 포함한다.
본 발명의 일실시예에 따르면, 동일한 웹주소로 접속한 사용자 단말 별로 웹 어플리케이션의 버전을 다르게 제공 함으로써, 오류나 사용성 관련 문제를 지역화 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 동일한 웹주소로 접속한 특정 사용자 군에 특정 버전의 웹 어플리케이션을 서비스하여, 특정 버전에서 야기되는 문제를 타 버전에 영향을 주지 않도록 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 동일한 URL로 웹페이지에 접속한 사용자 단말을 그룹화 하여, 서비스 제공자가 원하는 다양한 버전의 웹 서비스를 그룹 별로 제공할 수 있다.
또한, 본 발명의 일실시예에 따르면, 웹 환경에서 버전 관리를 통해 특정 일부의 사용자에게 제한된 버전의 웹 어플리케이션을 미리 배포해 검증할 수 있다.
또한, 본 발명의 일실시예에 따르면, 웹 어플리케이션의 버전 별로 복수의 어플리케이션 서버(WAS, Web Application Server)를 마련하고, 동일 웹페이지에 접속을 요청한 사용자 단말 각각으로, 해당 사용자 단말에 적합한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버로 사용자 단말을 스위칭 하거나, 관리자 단말에 의해 지정된 일부 사용자에 한해 특정 버전(예컨대, 업그레이드 버전)의 웹 어플리케이션을 제한적으로 배포할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단일 웹페이지와 연관하여, 서로 상이한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버(WAS)를 구비하고, 버전 관리를 통해 특정 일부 사용자에게 제한된 버전의 웹 어플리케이션을 배포할 수 있다.
또한, 본 발명의 일실시예에 따르면, 낮은 버전의 웹 어플리케이션을 가지고 있는 사용자 단말에서, 버전 업 된 웹 어플리케이션으로의 업데이트를 유도 또는 강제할 수 있다.
도 1은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템의 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 복수 버전의 웹 어플리케이션 서버(WAS)와, WAS 관리 서버, 및 배포 서버 간의 전체적인 연결 관계를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 사용자 테이블의 일례를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, WAS 테이블의 일례를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 메시지 큐 테이블의 일례를 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법의 순서를 도시한 흐름도이다.
도 7은 본 발명의 다른 실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법의 순서를 도시한 흐름도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 응용프로그램 업데이트 장치 및 방법에 대해 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 버전 확인부(110), 서버 식별부(120) 및 처리부(130)를 포함하여 구성될 수 있다. 또한, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 인증 처리부(140), 테이블 작성부(150) 및 배포부(160)를 각각 추가하여 구성할 수 있다.
버전 확인부(110)는 사용자 단말로부터, 특정 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생 됨에 따라, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인한다.
일례로, 도 2에 도시된 것처럼, 버전 확인부(110)는 사용자 단말(201)로부터, HTTPS 프로토콜을 이용하여 페이지 접속 요청을 수신할 수 있다.
실시예에 따라, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 인증 처리부(140)를 더 포함하여 구성될 수 있다.
인증 처리부(140)는 상기 접속 요청에 포함되는 상기 사용자 단말에 관한 식별정보('U00001')가, 사용자 테이블에 등록되었는지 판단하고, 상기 식별정보가 등록된 경우, 상기 사용자 단말에 대해 인증 처리한다.
버전 확인부(110)는 상기 인증이 처리 됨에 따라, 상기 사용자 테이블로부터, 상기 식별정보에 대응하여 유지된 WAS 버전 및 사용자 DB를 리드하여 확인할 수 있다.
이하, 도 3을 참조하여, 인증 처리부(140) 및 버전 확인부(110)를 설명한다.
도 3은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 사용자 테이블의 일례를 도시한 도면이다.
도 3을 참조하면, 인증 처리부(140)는 사용자 테이블에서 사용자 단말(201)의 식별정보('U00001')를 확인하여 인증 처리 후, 사용자 단말(201)의 WAS 버전('1.0.0')과 사용자 DB('U00001.DB')에 관한 WAS 정보('U00001: 1.0.0, U00001.DB')를 리드할 수 있다.
이때, 상기 식별정보가 사용자 테이블에 미등록된 경우, 상기 사용자 단말로부터 정보 등록이 요청되면, 처리부(130)는, 인증 처리부(140)를 통해 상기 사용자 단말에 대해 추가 인증 절차를 처리하고, 사용자 단말에 설치된 운영체제와 인터넷 브라우저의 종류와 버전 및 잔여 용량 중 적어도 하나의 단말정보를 근거로, 사용자 단말에 설치 가능한 웹 어플리케이션의 WAS 버전을 결정하고, 테이블 작성부(150)를 통해 상기 WAS 버전을, 상기 식별정보에 대응시켜 상기 사용자 테이블에 추가할 수 있다.
서버 식별부(120)는 상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전에 상응하는 제1 어플리케이션 서버를 식별한다.
실시예에 따라, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 배포부(160) 및 테이블 작성부(150)를 더 포함하여 구성될 수 있다.
배포부(160)는 상기 특정 웹 어플리케이션에 대해, 복수 버전의 웹 어플리케이션을 설치한 어플리케이션 서버를 각각 마련한다.
테이블 작성부(150)는 상기 복수의 어플리케이션 서버 각각으로, 상기 각 어플리케이션 서버의 주소와, 상기 각 어플리케이션 서버에 설치된 웹 어플리케이션의 버전에 관한 WAS 버전, 상기 각 어플리케이션 서버의 이용 가능 상태 및 PID 중 적어도 하나의 WAS 정보를 포함하는 WAS 테이블을 작성한다.
서버 식별부(120)는 상기 WAS 테이블을 로딩하고, 상기 WAS 테이블로부터, 상기 확인한 버전과 일치하는 WAS 버전에 대응하는 제1 어플리케이션 서버의 주소를 리드할 수 있다.
이하, 도 3을 참조하여, 서버 식별부(120)를 설명한다.
도 3은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 사용자 테이블의 일례를 도시한 도면이다.
도 3을 참조하면, 서버 식별부(120)는 WAS 테이블에서 사용자 단말의 WAS 버전('1.0.0')과 일치하면서, 이용 가능 상태가 활성('ACTIVE')인 어플리케이션 서버의 주소(URL)를 리드할 수 있다.
즉, 서버 식별부(120)는 도 4에 도시된 WAS 테이블 내에서 WAS 버전('1.0.0') 및 활성('ACTIVE')에 대응되는 두 개의 IP:PORT(192.168.244.10:9090, 192.168.244.10:9091)를 리드하여, 후술하는 처리부(130)에서, 사용자 단말로부터 페이지 접속 요청이 발생 시마다 순차적으로 번갈아 가면서 프록시(Proxy)하도록 할 수 있다.
처리부(130)는 상기 사용자 단말을 상기 제1 어플리케이션 서버와 접속시켜, 상기 제1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 한다.
일례로, 처리부(130)는 상기 확인한 버전의 웹 어플리케이션의 실행파일이 유지되는 제1 어플리케이션 서버를 확인하고, 상기 접속 요청에, 상기 사용자 단말에 관한 식별정보, 사용자 DB 및 WAS 버전 중 적어도 하나의 사용자 정보를 더 포함하여, 상기 주소에 의해 식별되는 상기 제1 어플리케이션 서버로, 스위칭 할 수 있다.
또한, 서버 식별부(120)에 의해 상기 버전에 상응하는 제1 어플리케이션 서버가 복수로 식별되는 경우, 처리부(130)는 상기 접속 요청이 발생 시마다, 상기 복수의 제1 어플리케이션 서버 중 어느 하나로 교대로 스위칭 할 수 있다.
예를 들어, 도 4에 도시된 WAS 테이블을 참조하면, 처리부(130)는 사용자 단말에서 첫 번째로 페이지 접속 요청이 발생되면, IP:PORT(192.168.244.10:9090)에 의해 식별되는 어플리케이션 서버로 페이지 접속 요청을 전달하고, 사용자 단말에서 두 번째로 페이지 접속 요청이 발생되면, IP:PORT(192.168.244.10:9091)에 의해 식별되는 어플리케이션 서버로 페이지 접속 요청을 전달하고, 사용자 단말에서 세 번째로 페이지 접속 요청이 발생되면, 다시 IP:PORT(192.168.244.10:9090)에 의해 식별되는 어플리케이션 서버로 페이지 접속 요청을 전달할 수 있다.
이와 같이, 처리부(130)는 사용자 단말로부터의 페이지 접속 요청을 분산하여 로드 밸런싱을 적절히 실시할 수 있다.
또한, 처리부(130)는 사용자 단말(201)을, 해당 사용자 단말(201)에 적합한 버전의 웹 어플리케이션이 설치된 제1 어플리케이션 서버로 스위칭하여, 동일한 웹주소로 접속한 특정 사용자 군에 특정 버전의 웹 어플리케이션을 서비스하여, 특정 버전에서 야기되는 문제를 타 버전에 영향을 주지 않도록 할 수 있다.
처리부(130)는 어플리케이션 서버로부터 페이지 접속 요청에 대한 응답이 수신되면, 사용자 단말을 제1 어플리케이션 서버와 접속시켜, 제1 어플리케이션 서버(221)에 설치된 버전('1.0.0')의 웹 어플리케이션이 사용자 단말에서 실행되도록 할 수 있다.
이때, 상기 접속 요청의 스위칭으로부터 일정 시간 이내에, 상기 제1 어플리케이션 서버로부터, 응답이 수신되지 않으면, 테이블 작성부(150)는 상기 WAS 테이블에서 상기 제1 어플리케이션 서버의 이용 가능 상태를 '비활성'으로 수정하고, 서버 정보 갱신에 관한 메시지 코드를, 메시지 큐 테이블에 추가하여, 상기 메시지 큐 테이블을 참조(subscribe)하는 WAS 관리 서버에서, 상기 메시지 코드의 추가를 감지 함에 따라, 상기 WAS 테이블을 갱신 처리하도록 할 수 있다.
이하, 도 5를 참조하여, 서버 정보를 갱신하는 과정을 설명한다.
도 5는 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 메시지 큐 테이블의 일례를 도시한 도면이다.
도 5를 참조하면, 테이블 작성부(150)는 사용자 단말로부터의 페이지 접속 요청을 스위칭한 제1 어플리케이션 서버(WAS)로부터 응답이 없을 경우, WAS 테이블에서 해당 제1 어플리케이션 서버의 이용 가능 상태를 비활성으로 변경하고, 이와 같은 WAS 테이블의 변경을 모든 WAS 관리 서버에 알려 주기 위해 메시지 큐 테이블에 서버 정보 갱신에 관한 메시지 코드를 추가할 수 있다.
즉, 버전 별로 웹 어플리케이션이 설치된 어플리케이션 서버(WAS)를 관리하는 WAS 관리 서버는, 구동 시, 현재 WAS 정보를 WAS 테이블에서 로드하고, WAS 관리 서버들 간의 동기화 또는 배포 서버에서의 변경사항을 감지하기 위해, 메시지 큐 테이블을 발행(publish) 또는 참조(subscribe)할 수 있다.
이때, 테이블 작성부(150)는 제1 어플리케이션 서버에서, 일정 시간 이내에 상기 페이지 접속 요청에 응답하지 않을 경우, 도 4의 WAS 테이블에서 제1 어플리케이션 서버의 IP:PORT(192.168.244.10:9090)에 대한 이용 가능 상태를, 비활성('DEACTIVATED')으로 수정 후, 도 5의 메시지 큐 테이블에, 서버 정보 갱신에 관한 메시지 코드('Refresh_was')를 추가할 수 있다.
상기 메시지 큐 테이블을 참조하는 모든 WAS 관리 서버들은, 메시지 큐 테이블에 서버 정보 갱신에 관한 메시지 코드가 추가됨을 감지하면, WAS 테이블에서 로딩한 WAS 정보(특히, 이용 가능 상태)를 갱신하고, WAS 테이블에서 식별한 다른 어플리케이션 서버('IP:PORT(192.168.244.10:9091)')로 상기 페이지 접속 요청을 스위칭 할 수 있다.
실시예에 따라, 관리자 단말로부터, 특정 버전의 웹 어플리케이션의 배포 요청이 발생되는 경우, 배포부(160)는, 상기 특정 버전의 웹 어플리케이션을 설치한 제2 어플리케이션 서버를 추가로 마련하고, 상기 특정 버전 이외의 버전을 이용하는 사용자 단말 중에서, 상기 관리자 단말에 의해 지정된 사용자 단말에 관한 사용자 DB를, 상기 특정 버전의 웹 어플리케이션의 설치에 따라 생성되는 DB로 업데이트 할 수 있다.
테이블 작성부(150)는 상기 제2 어플리케이션 서버에 관한 WAS 정보를, 상기 WAS 테이블에 추가하고, 서버 정보 갱신에 관한 메시지 코드를, 메시지 큐 테이블에 추가하여, 상기 메시지 큐 테이블을 참조하는 WAS 관리 서버에서, 상기 메시지 코드의 추가를 감지 함에 따라, 상기 WAS 테이블을 갱신 처리하도록 할 수 있다. 이때, 테이블 작성부(150)는 상기 사용자 DB를 업데이트 시, 사용자 테이블 내의 상기 지정된 사용자 단말에 관한 상태를 '비활성'으로 변경할 수 있다.
예를 들어, 도 5를 참조하면, 테이블 작성부(150)는 특정 버전의 웹 어플리케이션의 배포에 따라, 새롭게 추가된 제2 어플리케이션 서버에 관한 WAS 정보가 WAS 테이블에 추가되었음을 다른 모든 WAS 관리 서버에 알려주기 위해, 메시지 큐 테이블에 서버 정보 갱신에 관한 메시지 코드를 추가할 수 있다.
상기 메시지 큐 테이블을 참조하는 모든 WAS 관리 서버들은, 메시지 큐 테이블에 서버 정보 갱신에 관한 메시지 코드가 추가됨을 감지하면, 바뀐 WAS 테이블에서 WAS 정보를 새롭게 로딩하고, 이후, 지정된 사용자 단말로부터 페이지 접속 요청이 수신되면, 해당 사용자 단말을, 새롭게 추가된 제2 어플리케이션 서버로 스위칭하여, 웹 어플리케이션의 배포판이 사용자 단말에서 실행되도록 할 수 있다.
실시예에 따라, 본 발명의 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 사용자 단말에서 웹페이지로의 접속 요청이 발생 함에 따라, 상기 사용자 단말에 보유 중인 제1 웹 어플리케이션의 버전을 확인하고, 상기 사용자 단말에서 상기 웹페이지를 구현하는 데에 요구되는 프로그램 사양이, 상기 제1 웹 어플리케이션의 버전과 일치하는지를 판단하고, 상기 판단 결과, 일치하지 않으면, 상기 프로그램 사양에 상응하는 어플리케이션 서버를 식별하고, 식별된 상기 어플리케이션 서버로부터 제2 웹 어플리케이션을 전송받아, 상기 사용자 단말에 제공하여, 상기 사용자 단말에서 상기 제1 웹 어플리케이션을, 상기 제2 웹 어플리케이션으로 스위칭하도록 할 수 있다.
이와 같이, 본 발명의 일실시예에 따르면, 동일한 웹주소로 접속한 사용자 단말 별로 웹 어플리케이션의 버전을 다르게 제공 함으로써, 오류나 사용성 관련 문제를 지역화 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 동일한 웹주소로 접속한 특정 사용자 군에 특정 버전의 웹 어플리케이션을 서비스하여, 특정 버전에서 야기되는 문제를 타 버전에 영향을 주지 않도록 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 동일한 URL로 웹페이지에 접속한 사용자 단말을 그룹화 하여, 서비스 제공자가 원하는 다양한 버전의 웹 서비스를 그룹 별로 제공할 수 있다.
또한, 본 발명의 일실시예에 따르면, 웹 환경에서 버전 관리를 통해 특정 일부의 사용자에게 제한된 버전의 웹 어플리케이션을 미리 배포해 검증할 수 있다.
또한, 본 발명의 일실시예에 따르면, 웹 어플리케이션의 버전 별로 복수의 어플리케이션 서버(WAS, Web Application Server)를 마련하고, 동일 웹페이지에 접속을 요청한 사용자 단말 각각으로, 해당 사용자 단말에 적합한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버로 사용자 단말을 스위칭 하거나, 관리자 단말에 의해 지정된 일부 사용자에 한해 특정 버전(예컨대, 업그레이드 버전)의 웹 어플리케이션을 제한적으로 배포할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단일 웹페이지와 연관하여, 서로 상이한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버(WAS)를 구비하고, 버전 관리를 통해 특정 일부 사용자에게 제한된 버전의 웹 어플리케이션을 배포할 수 있다.
또한, 본 발명의 일실시예에 따르면, 낮은 버전의 웹 어플리케이션을 가지고 있는 사용자 단말에서, 버전 업 된 웹 어플리케이션으로의 업데이트를 유도 또는 강제할 수 있다.
도 2는 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템에서, 복수 버전의 웹 어플리케이션 서버(WAS)와, WAS 관리 서버, 및 배포 서버 간의 전체적인 연결 관계를 도시한 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 시스템(200)은, WAS 관리 서버(210), 배포 서버(220) 및 어플리케이션 서버(WAS)(221 내지 223)를 포함하여 구성될 수 있다. 또한, 웹 어플리케이션의 버전 관리 및 배포 시스템(200)은 시스템 DB(230)를 더 포함하여 구성될 수 있다.
WAS 관리 서버(210)는, 복수 버전의 웹 어플리케이션이 설치된 어플리케이션 서버(WAS)(221 내지 223)들을 관리하고, 사용자 버전 별 스위칭 관리를 수행하는 역할을 한다.
일례로, WAS 관리 서버(210)는 사용자 단말(201)로부터의 페이지 접속 요청을 분산하고, 사용자 인증을 통해 사용자 단말을 해당 사용자 단말(201)에 적합한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버로 스위칭하고, 로드 밸런싱을 실시할 수 있다.
여기서, 각 어플리케이션 서버(221 내지 223)는, 서비스하는 프로그램이 작동되는 웹 어플리케이션이 버전 별로 설치된 서버일 수 있다.
WAS 관리 서버(210)는 구동 시 현재 WAS 정보를 WAS 테이블에서 로드하고, WAS 관리 서버(210)들 간의 동기화 및 배포 서버(220)에서 변경사항을 감지하기 위해, 메시지 큐 테이블을 발행(publish) 또는 참조(subscribe)할 수 있다.
일례로, 도 2에 도시된 것처럼, WAS 관리 서버(210)는 사용자 단말(201)로부터, HTTPS 프로토콜을 이용하여 페이지 접속 요청을 수신할 수 있다.
WAS 관리 서버(210)는 도 3에 도시된 사용자 테이블에서 사용자 단말(201)의 식별정보('U00001')를 확인하여 인증 처리 후, 사용자 단말(201)의 WAS 버전('1.0.0')과 사용자 DB('U00001.DB')에 관한 WAS 정보('U00001: 1.0.0, U00001.DB')를 리드할 수 있다.
WAS 관리 서버(210)는 인증 통과된 사용자 단말(201)의 정보를 어플리케이션 서버(WAS)에 알려주기 위해서 사용자 단말(201)로부터 전송된 페이지 접속 요청의 헤더(header)에, 사용자 단말(201)의 식별정보, 사용자 DB, WAS 버전(U00001, 1.0.0, U00001.DB)을 추가할 수 있다.
또한, WAS 관리 서버(210)는 WAS 테이블에서 사용자 단말(201)의 WAS 버전('1.0.0')과 일치하면서, 이용 가능 상태가 활성('ACTIVE')인 어플리케이션 서버(221, 222)의 주소(URL)를 리드할 수 있다.
즉, WAS 관리 서버(210)는 도 4에 도시된 WAS 테이블에서 WAS 버전('1.0.0') 및 활성('ACTIVE')에 대응되는 두 개의 IP:PORT(192.168.244.10:9090, 192.168.244.10:9091)를 리드하고, 사용자 단말(201)로부터 페이지 접속 요청이 발생 시마다 순차적으로 번갈아 가면서 프록시(Proxy)할 수 있다.
예를 들어, WAS 관리 서버(210)는 사용자 단말(201)에서 첫 번째로 페이지 접속 요청이 발생되면, IP:PORT(192.168.244.10:9090)에 의해 식별되는 어플리케이션 서버(221)로 페이지 접속 요청을 전달하고, 사용자 단말(201)에서 두 번째로 페이지 접속 요청이 발생되면, IP:PORT(192.168.244.10:9091)에 의해 식별되는 어플리케이션 서버(222)로 페이지 접속 요청을 전달하고, 사용자 단말(201)에서 세 번째로 페이지 접속 요청이 발생되면, 다시 IP:PORT(192.168.244.10:9090)에 의해 식별되는 어플리케이션 서버(221)로 페이지 접속 요청을 전달할 수 있다.
WAS 관리 서버(210)는 어플리케이션 서버(221)로부터 첫 번째 페이지 접속 요청에 대한 응답이 수신되면, 사용자 단말(201)을 어플리케이션 서버(221)와 접속시켜, 어플리케이션 서버(221)에 설치된 버전('1.0.0')의 웹 어플리케이션이 사용자 단말(201)에서 실행되도록 할 수 있다.
이와 같이, WAS 관리 서버(210)는 사용자 단말(201)로부터의 페이지 접속 요청을 분산하여 로드 밸런싱을 실시할 수 있고, 사용자 단말(201)을, 해당 사용자 단말(201)에 적합한 버전의 웹 어플리케이션이 설치된 어플리케이션 서버로 스위칭하여, 동일한 웹주소로 접속한 특정 사용자 군에 특정 버전의 웹 어플리케이션을 서비스하여, 특정 버전에서 야기되는 문제를 타 버전에 영향을 주지 않도록 할 수 있다.
이때, WAS 관리 서버(210)는 어플리케이션 서버(221)에서, 일정 시간 이내에 상기 페이지 접속 요청에 응답하지 않을 경우, 상기 WAS 테이블에서 어플리케이션 서버(221)의 IP:PORT(192.168.244.10:9090)에 대한 이용 가능 상태를, 비활성('DEACTIVATED')으로 수정 후, 메시지 큐 테이블에, 서버 정보 갱신에 관한 메시지 코드('Refresh_was')를 추가할 수 있다.
상기 메시지 큐 테이블을 참조하는 WAS 관리 서버들은, 메시지 큐 테이블에 서버 정보 갱신에 관한 메시지 코드가 추가됨을 감지하면, WAS 테이블 내의 WAS 정보를 갱신하고, IP:PORT(192.168.244.10:9091)에 의해 식별되는 어플리케이션 서버(222)로 페이지 접속 요청을 스위칭 할 수 있다.
배포 서버(220)는 특정 버전의 웹 어플리케이션을 특정 사용자에게 제한적으로 배포하는 역할을 한다.
또한, 배포 서버(220)는 어플리케이션 서버(WAS)의 추가 또는 삭제와, 시스템 DB(230)에 유지된 각 사용자 DB의 버전을 관리하고, WAS 관리 서버(210)로 WAS 정보 변경을 통지(노티) 함으로써, 배포를 진행 할 수 있다.
일례로, 도시하지 않은 CI(Continuous Integration) 서버에서는, 웹 어플리케이션의 배포 버전(이하, 배포판(Product))을 제작하여 폴더 내에 관리하는 역할을 할 수 있다.
여기서, CI 서버는 상용 서버로서, 개발자가 소스 변경 후 저장소에 반영할 때, 소스 빌드(build), 정적 분석(Static analysis) 및 자동화 테스트(예, Unit test, GUI test)와 같은 작업을 수행하게 되며, 관리자 단말에 의해 소스 저장소의 commit 버전에 추가된 태그를 후킹하여 소스 변경을 반영할 때 진행했던 작업을 재수행 함으로써 웹 어플리케이션의 배포판을 제작할 수 있다.
배포 서버(220)는 CI 서버에서 제작된 배포판을, 관리자 단말에 의해 지정되는 특정 사용자 단말에 배포하기 위한 작업을 수행할 수 있다. 여기서, 웹 어플리케이션의 배포판에는 WAS 프로그램 및 DB 변경 스크립트(과거 버전 모두 포함)가 포함될 수 있고, 웹 어플리케이션의 배포판을 설치할 물리적인 서버 장비가 준비될 수 있다.
일례로, 배포 서버(220)는 WAS 버전('1.0.0')이 가지는 사용자 단말('U00001')과, WAS 버전('2.0.0')을 가지는 사용자 단말('U00004')로, 배포 버전('3.0.0')을 서비스 하기 위한 배포 작업을 수행할 수 있다. 구체적인 배포 버전('3.0.0')의 배포 과정은, 도 7에서 후술한다.
도 6은 본 발명의 일실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법의 순서를 도시한 흐름도이다.
본 실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법은, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)에 의해 수행될 수 있다.
도 6을 참조하면, 단계(610)에서, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 사용자 단말로부터, 특정 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생되는지 판단한다.
단계(620)에서, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인한다.
단계(630)에서, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전에 상응하는 제1 어플리케이션 서버를 식별한다.
단계(640)에서, 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 상기 사용자 단말을 상기 제1 어플리케이션 서버와 접속시켜, 상기 제1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 한다.
실시예에 따라, 본 발명의 웹 어플리케이션의 버전 관리 및 배포 시스템(100)은, 사용자 단말에서 웹페이지로의 접속 요청이 발생 함에 따라, 상기 사용자 단말에 보유 중인 제1 웹 어플리케이션의 버전을 확인하고, 상기 사용자 단말에서 상기 웹페이지를 구현하는 데에 요구되는 프로그램 사양이, 상기 제1 웹 어플리케이션의 버전과 일치하는지를 판단하고, 상기 판단 결과, 일치하지 않으면, 상기 프로그램 사양에 상응하는 어플리케이션 서버를 식별하고, 식별된 상기 어플리케이션 서버로부터 제2 웹 어플리케이션을 전송받아, 상기 사용자 단말에 제공하여, 상기 사용자 단말에서 상기 제1 웹 어플리케이션을, 상기 제2 웹 어플리케이션으로 스위칭하도록 할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법의 순서를 도시한 흐름도이다.
본 실시예에 따른 웹 어플리케이션의 버전 관리 및 배포 방법은, 배포 서버(220)에 의해 수행될 수 있다.
도 7을 참조하면, 배포 서버(220)는 CI 서버 내의 폴더에서 상기 배포판의 배포 버전('3.0.0')을 확인한 후 관리자 단말에 출력하고, 관리자 단말에서 상기 배포 버전('3.0.0')이 선택되고(단계(701)), 배포판을 설치할 물리적 서버 장비의 정보('IP:PORT(192.168.247.111:8080)')가 입력되면(단계(702)), 사용자 테이블(도 3 참조)로부터 배포 버전('3.0.0')과 상이한 WAS 버전(예, '1.0.0', '1.0.1', '2.0.0', '2.0.1')을 가지는 사용자 단말의 식별정보를 확인하여 배포 대상으로서 선택할 수 있는 화면을 출력하고, 관리자 단말에 의해 상기 화면에서 사용자 단말('U00001', 'U00004')이 배포 대상으로 선택되면(단계(703)), CI 서버 내의 폴더에 있는 배포판을 로컬 폴더에 복사하고, DB 변경 스크립트를 가져온다(단계(704)).
배포 서버(220)는 로컬 폴더 내의 배포판을, 상기 물리적 서버 장비에 다시 복사하고, 입력된 port(8080)를 listen 하는 WAS 프로세스를 실행하여, 웹 어플리케이션의 배포판('3.0.0')을 설치한 어플리케이션 서버를 마련할 수 있다(단계(705)).
배포 서버(220)는 배포판의 설치가 완료되면, WAS 관리 서버(210)로 서버 정보 갱신에 관한 메시지 코드를 전송한다(단계(706)).
구체적으로, 배포 서버(220)는 WAS 테이블에, 레코드(URL: 192.168.247.111:8080, WAS 버전: 3.0.0, 상태: ACTIVE, PID: P23232)를 추가하고, WAS 관리 서버(210)에서 상기 WAS 테이블을 참조하여 WAS 정보를 갱신할 수 있도록, 메시지 큐 테이블(도 5 참조)에, 서버 정보 갱신에 관한 메시지 코드('Refresh_was')를 추가할 수 있으며, WAS 관리 서버(210)는 메시지 큐 테이블에 상기 메시지 코드의 추가를 감지할 수 있다.
WAS 관리 서버(210)는 시스템 DB(230)으로부터 통지된 메시지 코드가 서버 정보 갱신과 연관되면, 데이터를 요청하여 WAS 테이블 내의 WAS 정보를 갱신할 수 있다.
배포 서버(220)는 선택된 사용자 단말을 비활성화 한다(단계(707)).
즉, 배포 서버(220)는, 배포 대상으로 선택된 사용자 단말('U00001', 'U00004')에서 업데이트된 어플리케이션 서버(WAS)에 접속할 수 있도록 하기 위해, 시스템 DB(230) 내의 사용자 DB 변경을 수행하게 되며, 사용자 DB 변경 작업을 진행 중에는 정상적인 사용자 응답을 보장할 수 없기 때문에 사용자 DB 변경 작업이 완료될 때까지 사용자의 상태를 비활성('DEACTIVATED')으로 변경할 수 있다.
다시 말해, 배포 서버(220)는, 사용자 DB 업데이트 시 오류를 피하기 위해 사용자 테이블에서 해당 사용자 단말('U00001')의 상태를 비활성('DEACTIVATED')으로 변경하여 인증 실패를 발생하도록 할 수 있다.
배포 서버(220)는, 처리되지 않은 사용자 단말이 존재하는지 확인하고(단계(708)), 존재하는 경우, 실행할 수 있는 DB 스크립트가 있는지 확인한다(단계(709)).
단계(709)에서의 확인 결과, 실행 가능한 DB 스크립트가 있는 경우, 배포 서버(220)는, 사용자 DB를 백업하고(단계(710)), 사용자 DB 버전 이후의 스크립트를 로딩하여(단계(711)), 사용자 DB를 변경하고(단계(712)), 사용자 DB를 변경 중 오류가 발생하면, 사용자 오류를 처리하고(단계(713)), 백업한 사용자 DB로 콜백한다(단계(714)). 이때, 사용자 DB를 변경 중 오류가 발생하지 않으면, 배포 서버(220)는, 사용자 WAS 버전을 변경한다(단계(716)).
단계(709)에서의 확인 결과, 실행 가능한 DB 스크립트가 없는 경우, 사용자 WAS 버전을 변경한다(단계(717)).
이후, 배포 서버(220)는 단계(708)를 재수행하고, 처리되지 않은 사용자 단말이 없으면, 선택된 사용자 단말을 활성화 하고(단계(718)), 관리자 단말에 배포를 보고한다(단계(719)).
구체적으로, 배포 서버(220)는, 배포 대상으로 지정된 사용자 단말 중 한 명('U00001')을 선택하여 비동기 처리하고, 사용자 테이블에서 해당 사용자 단말('U00001')의 사용자 DB를 확인하여 백업하고, 사용자 테이블에서 해당 사용자 단말('U00001')의 WAS 버전('1.0.0')을 확인하여 해당되는 DB 스크립트를 하위 버전부터 실행하여 설치하고, 설치 중 오류가 발생되면, 백업한 사용자 DB로 롤백하고, 오류 발생 없이 성공하면 사용자 단말('U00001')의 WAS 버전을, 배포 버전('3.0.0')으로 갱신하고, 처리되지 않은 사용자 단말('U00004')이 있으면, 상기 과정을 재수행하고, 처리되지 않은 사용자 단말이 없으면, 사용자 단말('U00001', 'U00004')의 상태를 비활성('DEACTIVATED')에서 활성('ACTIVE')으로 변경하여 인증 처리가 통과할 수 있도록 할 수 있다. 이후, 사용자 단말('U00001', 'U00004')은 배포판이 설치된 어플리케이션 서버로 웹 어플리케이션의 실행을 요청할 수 있다.
본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 웹 어플리케이션의 버전 관리 및 배포 시스템
110: 버전 확인부 120: 서버 식별부
130: 처리부 140: 인증 처리부
150: 테이블 작성부 160: 배포부

Claims (18)

  1. 사용자 단말로부터, 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생 됨에 따라, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인하는 단계;
    상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전의 웹 어플리케이션의 실행파일이 유지되는 복수의 제1 어플리케이션 서버를 식별하는 단계;
    상기 복수의 제1 어플리케이션 서버 중 제1-1 어플리케이션 서버로 접속 요청을 전달하여, 상기 제1-1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 하는 단계;
    상기 접속 요청의 전달로부터 일정 시간 이내에, 상기 제1-1 어플리케이션 서버로부터, 응답이 수신되지 않으면,
    WAS 테이블에서 상기 제1-1 어플리케이션 서버의 이용 가능 상태를 '비활성'으로 수정하고, 서버 정보 갱신에 관한 메시지 코드를, 메시지 큐 테이블에 추가하여, 상기 메시지 큐 테이블을 참조(subscribe)하는 WAS 관리 서버에서, 상기 메시지 코드의 추가를 감지 함에 따라, 상기 WAS 테이블을 갱신 처리하도록 하는 단계; 및
    상기 접속 요청을, 상기 복수의 제1 어플리케이션 서버 중, 상기 제1-1 어플리케이션 서버에 이어 교대로 스위칭하도록 정해진 제1-2 어플리케이션 서버로 전달하는 단계
    를 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  2. 제1항에 있어서,
    상기 접속 요청에 포함되는 상기 사용자 단말에 관한 식별정보가, 사용자 테이블에 등록되었는지 판단하는 단계; 및
    상기 식별정보가 등록된 경우, 상기 사용자 단말에 대해 인증 처리하는 단계
    를 더 포함하고,
    상기 인증이 처리 됨에 따라,
    상기 확인하는 단계는,
    상기 사용자 테이블로부터, 상기 식별정보에 대응하여 유지된 WAS 버전 및 사용자 DB를 리드하여 확인하는 단계
    를 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  3. 제2항에 있어서,
    상기 웹 어플리케이션의 버전 관리 및 배포 방법은,
    상기 식별정보가 미등록된 경우,
    상기 사용자 단말로부터 정보 등록이 요청되면, 상기 사용자 단말에 대해 추가 인증 절차를 처리하는 단계;
    상기 사용자 단말에 설치된 운영체제와 인터넷 브라우저의 종류와 버전 및 잔여 용량 중 적어도 하나의 단말정보를 근거로, 상기 사용자 단말에 설치 가능한 웹 어플리케이션의 WAS 버전을 결정하는 단계; 및
    상기 WAS 버전을, 상기 식별정보에 대응시켜 상기 사용자 테이블에 추가하는 단계
    를 더 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  4. 제1항에 있어서,
    상기 웹 어플리케이션에 대해, 복수 버전의 웹 어플리케이션을 설치한 어플리케이션 서버를 각각 마련하는 단계; 및
    상기 복수의 어플리케이션 서버 각각으로, 상기 각 어플리케이션 서버의 주소와, 상기 각 어플리케이션 서버에 설치된 웹 어플리케이션의 버전에 관한 WAS 버전, 상기 각 어플리케이션 서버의 이용 가능 상태 및 PID 중 적어도 하나의 WAS 정보를 포함하는 상기 WAS 테이블을 작성하는 단계
    를 더 포함하고,
    상기 제1 어플리케이션 서버를 식별하는 단계는,
    상기 WAS 테이블을 로딩하고, 상기 WAS 테이블로부터, 상기 확인한 버전과 일치하는 WAS 버전에 대응하는 제1 어플리케이션 서버의 주소를 리드하는 단계
    를 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  5. 제4항에 있어서,
    상기 사용자 단말에서 실행되도록 하는 단계는,
    상기 접속 요청에, 상기 사용자 단말에 관한 식별정보, 사용자 DB 및 WAS 버전 중 적어도 하나의 사용자 정보를 더 포함하여, 상기 리드한 주소에 의해 식별되는 상기 제1 어플리케이션 서버로, 전달하는 단계
    를 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  6. 제1항에 있어서,
    상기 접속 요청이 발생 시마다, 상기 제1-1 어플리케이션 서버와 상기 제1-2 어플리케이션 서버로 교대로 스위칭 하여, 상기 접속 요청을 전달하는 단계
    를 더 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  7. 삭제
  8. 제4항에 있어서,
    관리자 단말로부터, 특정 버전의 웹 어플리케이션의 배포 요청이 발생되는 경우,
    상기 웹 어플리케이션의 버전 관리 및 배포 방법은,
    상기 특정 버전의 웹 어플리케이션을 설치한 제2 어플리케이션 서버를 추가로 마련하는 단계;
    상기 특정 버전 이외의 버전을 이용하는 사용자 단말 중에서, 상기 관리자 단말에 의해 지정된 사용자 단말에 관한 사용자 DB를, 상기 특정 버전의 웹 어플리케이션의 설치에 따라 생성되는 DB로 업데이트 하는 단계;
    상기 제2 어플리케이션 서버에 관한 WAS 정보를, 상기 WAS 테이블에 추가하는 단계; 및
    서버 정보 갱신에 관한 메시지 코드를, 메시지 큐 테이블에 추가하여, 상기 메시지 큐 테이블을 참조하는 WAS 관리 서버에서, 상기 메시지 코드의 추가를 감지 함에 따라, 상기 WAS 테이블을 갱신 처리하도록 하는 단계
    를 더 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  9. 제8항에 있어서,
    상기 웹 어플리케이션의 버전 관리 및 배포 방법은,
    상기 사용자 DB를 업데이트 시, 사용자 테이블 내의 상기 지정된 사용자 단말에 관한 상태를 '비활성'으로 변경하는 단계
    를 더 포함하는 웹 어플리케이션의 버전 관리 및 배포 방법.
  10. 사용자 단말로부터, 웹 어플리케이션의 실행과 연관되는 페이지로의 접속 요청이 발생 됨에 따라, 상기 웹 어플리케이션의, 상기 사용자 단말에서 실행 가능한 버전을, 확인하는 버전 확인부;
    상기 웹 어플리케이션의 버전 별로 마련된 복수의 어플리케이션 서버(WAS) 중, 상기 확인한 버전의 웹 어플리케이션의 실행파일이 유지되는 복수의 제1 어플리케이션 서버를 식별하는 서버 식별부;
    상기 복수의 제1 어플리케이션 서버 중 제1-1 어플리케이션 서버로 접속 요청을 전달하여, 상기 제1-1 어플리케이션 서버에 의해 상기 버전의 웹 어플리케이션이 상기 사용자 단말에서 실행되도록 하는 처리부; 및
    상기 접속 요청의 전달로부터 일정 시간 이내에, 상기 제1-1 어플리케이션 서버로부터, 응답이 수신되지 않으면, WAS 테이블에서 상기 제1-1 어플리케이션 서버의 이용 가능 상태를 '비활성'으로 수정하고, 서버 정보 갱신에 관한 메시지 코드를, 메시지 큐 테이블에 추가하는 테이블 작성부
    를 포함하고,
    상기 메시지 큐 테이블을 참조(subscribe)하는 WAS 관리 서버에서, 상기 메시지 코드의 추가를 감지 함에 따라, 상기 WAS 테이블을 갱신 처리하면,
    상기 처리부는,
    상기 접속 요청을, 상기 복수의 제1 어플리케이션 서버 중, 상기 제1-1 어플리케이션 서버에 이어 교대로 스위칭하도록 정해진 제1-2 어플리케이션 서버로 전달하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  11. 제10항에 있어서,
    상기 웹 어플리케이션의 버전 관리 및 배포 시스템은,
    상기 접속 요청에 포함되는 상기 사용자 단말에 관한 식별정보가, 사용자 테이블에 등록되었는지 판단하고, 상기 식별정보가 등록된 경우, 상기 사용자 단말에 대해 인증 처리하는 인증 처리부
    를 더 포함하고,
    상기 인증이 처리 됨에 따라,
    상기 버전 확인부는,
    상기 사용자 테이블로부터, 상기 식별정보에 대응하여 유지된 WAS 버전 및 사용자 DB를 리드하여 확인하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  12. 제11항에 있어서,
    상기 식별정보가 미등록된 경우,
    상기 사용자 단말로부터 정보 등록이 요청되면,
    상기 처리부는,
    상기 인증 처리부를 통해, 상기 사용자 단말에 대해 추가 인증 절차를 처리하고,
    상기 사용자 단말에 설치된 운영체제와 인터넷 브라우저의 종류와 버전 및 잔여 용량 중 적어도 하나의 단말정보를 근거로, 상기 사용자 단말에 설치 가능한 웹 어플리케이션의 WAS 버전을 결정하고,
    상기 테이블 작성부를 통해, 상기 WAS 버전을, 상기 식별정보에 대응시켜 상기 사용자 테이블에 추가하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  13. 제10항에 있어서,
    상기 웹 어플리케이션의 버전 관리 및 배포 시스템은,
    상기 웹 어플리케이션에 대해, 복수 버전의 웹 어플리케이션을 설치한 어플리케이션 서버를 각각 마련하는 배포부
    를 더 포함하고,
    상기 테이블 작성부는,
    상기 복수의 어플리케이션 서버 각각으로, 상기 각 어플리케이션 서버의 주소와, 상기 각 어플리케이션 서버에 설치된 웹 어플리케이션의 버전에 관한 WAS 버전, 상기 각 어플리케이션 서버의 이용 가능 상태 및 PID 중 적어도 하나의 WAS 정보를 포함하는 상기 WAS 테이블을 작성하고,
    상기 서버 식별부는,
    상기 WAS 테이블을 로딩하고, 상기 WAS 테이블로부터, 상기 확인한 버전과 일치하는 WAS 버전에 대응하는 제1 어플리케이션 서버의 주소를 리드하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  14. 제13항에 있어서,
    상기 처리부는,
    상기 접속 요청에, 상기 사용자 단말에 관한 식별정보, 사용자 DB 및 WAS 버전 중 적어도 하나의 사용자 정보를 더 포함하여, 상기 리드한 주소에 의해 식별되는 상기 제1 어플리케이션 서버로, 전달하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  15. 제10항에 있어서,
    상기 처리부는,
    상기 접속 요청이 발생 시마다, 상기 제1-1 어플리케이션 서버와 상기 제1-2 어플리케이션 서버로 교대로 스위칭 하여, 상기 접속 요청을 전달하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  16. 삭제
  17. 제13항에 있어서,
    관리자 단말로부터, 특정 버전의 웹 어플리케이션의 배포 요청이 발생되는 경우,
    상기 배포부는,
    상기 특정 버전의 웹 어플리케이션을 설치한 제2 어플리케이션 서버를 추가로 마련하고,
    상기 특정 버전 이외의 버전을 이용하는 사용자 단말 중에서, 상기 관리자 단말에 의해 지정된 사용자 단말에 관한 사용자 DB를, 상기 특정 버전의 웹 어플리케이션의 설치에 따라 생성되는 DB로 업데이트 하고,
    상기 테이블 작성부는,
    상기 제2 어플리케이션 서버에 관한 WAS 정보를, 상기 WAS 테이블에 추가하고, 서버 정보 갱신에 관한 메시지 코드를, 메시지 큐 테이블에 추가하여, 상기 메시지 큐 테이블을 참조하는 WAS 관리 서버에서, 상기 메시지 코드의 추가를 감지 함에 따라, 상기 WAS 테이블을 갱신 처리하도록 하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
  18. 제17항에 있어서,
    상기 테이블 작성부는,
    상기 사용자 DB를 업데이트 시, 사용자 테이블 내의 상기 지정된 사용자 단말에 관한 상태를 '비활성'으로 변경하는
    웹 어플리케이션의 버전 관리 및 배포 시스템.
KR1020170126209A 2017-09-28 2017-09-28 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템 KR102026377B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170126209A KR102026377B1 (ko) 2017-09-28 2017-09-28 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170126209A KR102026377B1 (ko) 2017-09-28 2017-09-28 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템

Publications (2)

Publication Number Publication Date
KR20190036828A KR20190036828A (ko) 2019-04-05
KR102026377B1 true KR102026377B1 (ko) 2019-09-27

Family

ID=66104215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170126209A KR102026377B1 (ko) 2017-09-28 2017-09-28 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템

Country Status (1)

Country Link
KR (1) KR102026377B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147291B (zh) * 2019-12-18 2024-02-06 深圳前海微众银行股份有限公司 一种服务维护方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013077220A (ja) * 2011-09-30 2013-04-25 Toshiba Corp コンピュータシステム及びアプリケーションのマルチバージョン管理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013077220A (ja) * 2011-09-30 2013-04-25 Toshiba Corp コンピュータシステム及びアプリケーションのマルチバージョン管理装置

Also Published As

Publication number Publication date
KR20190036828A (ko) 2019-04-05

Similar Documents

Publication Publication Date Title
US11740975B2 (en) System and method for managing blockchain nodes
US9176829B2 (en) Managing recovery virtual machines in clustered environment
JP5984918B2 (ja) サービスの第2場所でのジョブの再生
KR20240013827A (ko) 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션
US10069688B2 (en) Dynamically assigning, by functional domain, separate pairs of servers to primary and backup service processor modes within a grouping of servers
US9262323B1 (en) Replication in distributed caching cluster
US9602614B1 (en) Distributed caching cluster client configuration
US11582083B2 (en) Multi-tenant event sourcing and audit logging in a cloud-based computing infrastructure
US9390156B2 (en) Distributed directory environment using clustered LDAP servers
US20140279915A1 (en) System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
CN113347037B (zh) 一种数据中心访问方法及装置
US11416235B2 (en) System and method for managed server independence for deployment of software applications and libraries
KR102026377B1 (ko) 웹 어플리케이션의 버전 관리 및 배포 방법, 및 웹 어플리케이션의 버전 관리 및 배포 시스템
US11184431B2 (en) System and control method
US10812586B2 (en) Method and system for high availability topology for master-slave data systems with low write traffic
US20170017520A1 (en) System and control method
US10481963B1 (en) Load-balancing for achieving transaction fault tolerance
US8209405B1 (en) Failover scheme with service-based segregation
CN112636986A (zh) 网关插件更新方法及装置
WO2021055546A1 (en) System and method for managing blockchain nodes
US8533331B1 (en) Method and apparatus for preventing concurrency violation among resources
US11556334B2 (en) Systems and methods for gradually updating a software object on a plurality of computer nodes
US20240256170A1 (en) Storage aware application scheduling
CN115905271B (zh) 一种病毒库更新方法、装置及多引擎检测系统
JP2018073099A (ja) スケールイン処理プログラム、スケールイン処理方法および情報処理システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant