KR101376916B1 - 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치 - Google Patents
소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치 Download PDFInfo
- Publication number
- KR101376916B1 KR101376916B1 KR1020087027153A KR20087027153A KR101376916B1 KR 101376916 B1 KR101376916 B1 KR 101376916B1 KR 1020087027153 A KR1020087027153 A KR 1020087027153A KR 20087027153 A KR20087027153 A KR 20087027153A KR 101376916 B1 KR101376916 B1 KR 101376916B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- version
- domain name
- data segment
- application program
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
점진적인 업그레이드를 수행하기 위한 기술이 설명된다. 장치는 애플리케이션 프로그램의 제1 버전의 데이터 세트를 포함하는 데이터베이스, 및 이 데이터베이스에 연결된 컴퓨팅 장치를 포함할 수 있다. 컴퓨팅 장치는 프로세서 및 메모리를 포함할 수 있는데, 메모리는 제1 버전의 애플리케이션 프로그램, 설치 프로그램, 및 점진적인 업데이트 엔진을 저장하기 위한 것이다. 프로세서는 설치 프로그램을 실행시켜 제2 버전의 애플리케이션 프로그램을 설치할 수 있는데, 상기 점진적인 업데이트 엔진은 데이터 세트를 이 제2 버전에 의해 이용되는 데이터 스키마로 한번에 하나의 데이터 세그먼트 만큼 변환하기 위한 것이다. 다른 실시예들이 기술되고 청구되었다.
데이터베이스, 애플리케이션 프로그램, 업그레이드 엔진, 업데이트
Description
본 발명은 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 업그레이드 기술에 관한 것일 수 있다.
소프트웨어 애플리케이션은 기능(features)을 향상시킨 신규 버전 릴리즈(releases)를 주기적으로 갖는다. 소프트웨어 애플리케이션을 신규 버전으로 업그레이드하는 것은 사용자 데이터를 기존의 데이터 스키마(schema)로부터 신규 버전에 의해 사용되는 새로운 데이터 스키마로 변환하는 것을 포함할 수 있다. 몇몇의 경우, 사용자 데이터의 분량은 업그레이드 동작들이 장치나 네트워크가 장기간 동안 이용될 수 없게 할 수 있을 정도로 클 수 있다. 예를 들면, 서버-기반 소프트웨어 애플리케이션은 테라바이트 정도의 사용자 데이터를 가질 수 있어서, 새로운 데이터 스키마로 업그레이드하는 데에 수일(days) 또는 수주일(weeks)까지 걸릴 수 있다. 임무-중대 업무 시스템(mission critical business system) 또는 고 효용(high-availability) 시스템은 이러한 장시간의 정지시간(down time)은 허용될 수 없음을 인식할 수 있다. 결과적으로, 이들 및 다른 문제를 해결하기 위하여 업 그레이드 기술이 향상될 필요가 있다.
이 요약은 이하 상세한 설명에 더 기술될 개념들 중 간단한 형태로 선택한 것을 소개하고자 제공된 것이다. 이 요약은 청구된 요지의 핵심적 특징 또는 필수적인 특징을 식별하는 것을 의도한 것도 아니며, 청구된 요지의 범주를 한정하는데에 이용될 것을 의도하는 것도 아니다.
일반적으로 각종 실시예는 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 업그레이드 기술에 관한 것일 수 있다. 몇몇의 실시예에서는, 점진적인 업그레이드 기술이 애플리케이션 프로그램의 일부 및/또는 애플리케이션 프로그램용 데이터 세트를 단계적으로(in stages) 업데이트하는 데에 이용될 수 있다. 일 실시예에서, 예를 들면, 이전 버전의 애플리케이션 프로그램과 동일하거나 유사한 하드웨어 플랫폼 상에 신규 버전의 애플리케이션 프로그램을 설치하기 위하여 설치 프로그램을 마련할 수 있다. 이전 버전의 애플리케이션 프로그램의 데이터 세트를 신규 버전의 애플리케이션 프로그램에 의해 이용되는 새로운 데이터 스키마로 변환하기 위해 점진적인 업그레이드 엔진이 마련될 수 있다. 보다 구체적으로, 점진적인 업그레이드 엔진은 단계적으로 데이터 세트를 한번에 하나의 데이터 세그먼트만큼 변환할 수 있다. 이런 식으로, 클라이언트는 변환 동작 중에 이전의 버전의 다른 데이터 세그먼트를 액세스함으로써, 애플리케이션 프로그램을 완전히 이용불가능하게 하기 보다는 애플리케이션 프로그램의 제한된 이용을 할 수 있도록 한다. 다른 실시예들이 기술되고 청구될 것이다.
도 1은 네트워크의 예시적인 실시예를 도시.
도 2는 제1 로직 흐름의 예시적인 실시예를 도시.
도 3은 제2 로직 흐름의 예시적인 실시예를 도시.
도 4는 제3 로직 흐름의 예시적인 실시예를 도시.
도 5는 제4 로직 흐름의 예시적인 실시예를 도시.
일반적으로 각종 실시예들은 소프트웨어 애플리케이션에 대한 업그레이드 기술에 관한 것일 수 있다. 구체적으로, 각종 실시예들은 애플리케이션 프로그램이 단계적으로 업그레이드되어 클라이언트 및/또는 사용자에 대한 잠재적인 영향(impact) 및 구동 정지 기간(outage time)을 줄일 수 있는 점진적인 업그레이드 기술에 관한 것일 수 있다. 이는, 예를 들어, 웹 호스팅 서비스를 제공하는 데 이용되는 것 등과 같은 서버-기반 웹 애플리케이션 프로그램을 이용하는 대규모의 기업 네트워크에서는 특히 중요할 수 있다. 또한, 점진적인 업그레이드 기술은 클라이언트가 업그레이드 과정 중에 서버-기반 웹 애플리케이션 프로그램의 일부에 액세스하는 것을 계속하도록 해줄 수 있다. 이러한 제한된 액세스는 임무-중대 및 고-효용 애플리케이션에서 특히 중요할 수 있다. 결과적으로, 네트워크 관리자는 장치 또는 네트워크용 소프트웨어 애플리케이션을 업그레이드할 때 절감된 태스크 및 비용을 경험할 수 있고, 사용자는 업그레이드된 애플리케이션 및 서비스로의 보 다 자연스러운(seamless) 이행을 경험할 수 있다.
도 1은 네트워크의 예시적인 일 실시예를 도시한다. 도 1은 네트워크(100)에 대한 블록도를 도시한다. 네트워크(100)는 각종 실시예를 구현하기에 적절한 일반 네트워크 아키텍처를 나타낼 수 있다. 네트워크(100)는 복수의 엘리먼트를 포함할 수 있다. 엘리먼트는 특정 동작들을 수행하도록 구성된 임의의 물리적 또는 논리적 구조를 포함할 수 있다. 각각의 엘리먼트는 소정의 세트의 설계 파라미터 또는 수행 제약사항(performance constraints)이 요구는 바에 따라 하드웨어, 소프트웨어, 또는 이들의 임의의 조합으로서 구현될 수 있다. 하드웨어 엘리먼트들의 일례는 프로세서, 마이크로프로세서, 회로, 회로 소자(예를 들면, 트랜지스터, 저항, 캐패시터, 인덕터 등), 집적 회로, 주문형 집적 회로(ASIC), 프로그램가능한 논리 장치(PLD), 디지털 신호 프로세서(DSP), 필드 프로그램가능한 게이트 어레이(FPGA), 메모리 유닛, 논리 게이트, 레지스터, 반도체 장치, 칩, 마이크로칩, 칩셋(chip sets) 등을 포함할 수 있다. 소프트웨어의 예로는 임의의 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 인터페이스, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합을 포함할 수 있다. 도 1에 도시된 네트워크(100)는 특정 토폴로지 내의 제한된 개수의 엘리먼트를 가지고 있지만, 네트워크(100)는 소정의 구현에서 원하는 바에 따라 대안적인 토폴로지 내에 더 많거나 더 적은 엘리먼트들을 포함할 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
도 1에 도시된 바와 같이, 예를 들면, 네트워크(100)는 컴퓨팅 어레이(140), 서버(150), 네트워크(160), 부하 분산기(load balancer)(170), 및 클라이언트 장치(180-1-s)와 같은 다양한 엘리먼트를 포함할 수 있다. 일 실시예에서, 예를 들면, 서버(150)는 웹 서버로서 구현될 수 있다. 웹 서버는 클라이언트 장치(예를 들면, 클라이언트(180-1-s) 및/또는 컴퓨팅 장치(122-1-n))로부터 웹 서버 페이지를 서빙(serve)하라는 HTTP(Hypertext Transfer Protocol) 요청을 수락할 수 있는 컴퓨팅 장치를 포함할 수 있다. 웹 페이지는 통상적으로 HTML(Hypertext Markup Language), XML(Extensible Markup Language), XHTML(Extensible Hypertext Markup Language), MICROSOFT WORD® 마크업 언어(WordML), 등과 같은 몇몇 형태의 마크업 언어를 이용하여 생성된 문서이다. 네트워크(160)는 TCP/IP(Transmission Control Protocol and Internet Protocol) 등의 하나 이상의 인터넷 프로토콜을 이용하는 패킷 네트워크를 포함할 수 있다. 부하 분산기(170)는 컴퓨팅 자원이 효율적으로 이용되도록 네트워킹된 컴퓨터 서버 세트(예를 들면, 컴퓨팅 어레이(140))에 작업 부하를 할당하기 위한 장치를 포함할 수 있다. 부하 분산기(170)는, 예를 들면, 컴퓨터, 서버, 가상 서버, 네트워크 설비(appliance), 등을 이용하여 구현될 수 있다.
각종 실시예에서, 컴퓨팅 어레이(140)는 복수의 컴퓨팅 장치(122-1-n)를 포함할 수 있다. 컴퓨팅 장치(122-1-n)의 예로는 컴퓨터, 컴퓨터 시스템, 컴퓨터 서 브-시스템, 워크스페이션, 단말기, 서버, 웹 서버, 가상 서버, 퍼스널 컴퓨터(PC), 데스크톱 컴퓨터, 랩톱 컴퓨터, 울트라랩톱(ultra-laptop) 컴퓨터, 휴대용 컴퓨터, 핸드헬드 컴퓨터, PDA(personal digital assitant), 모바일 컴퓨팅 장치, 및 임의의 기타 전자, 전기 기계의, 전기적 장치를 포함할 수 있지만 반드시 이에 한정되지 않는다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시예에서, 예를 들면, 컴퓨팅 어레이(140)는 서버 팜(farm)으로서 구현될 수 있는데, 여기서 컴퓨팅 장치(122-1-n)는 각각 서버, 가상 서버, 가상 기계, SBC(single board computer), 서버 블레이드(blade), 웹 서버, 등을 나타낸다. 통상적으로 서버 팜은 소정 기계의 용량을 초과한(beyong the capability) 서버 요구를 달성하기 위해 기업에 의해 일반적으로 보유되는 컴퓨터 서버들의 콜렉션이다. 종종, 서버 팜은 단일 태스크에 할당된 주 서버 및 보조(backup) 서버를 모두 가질 것이어서, 주 서버가 고장난 경우에, 보조 서버가 주 서버의 기능들을 인계받을 것이다. 서버 팜은 통상적으로, 예를 들어, 웹 호스팅 서비스를 제공하는 데에 이용된다. 웹 호스팅 서비스는 정보, 이미지, 비디오, 오디오, 텍스트, 에니메이션, 영화, 픽처(picture), 또는 WWW(World Wide Web 또는 "웹")를 통해 액세스 가능한 임의의 기타 형태로 된 웹 컨텐츠를 저장하기 위한 온라인 시스템을 개인 또는 조직에 제공하는 인터넷 호스팅 서비스의 일 유형이다. 웹 호스트들은 통상적으로는 데이터 센터에 있는, 인터넷 연결성을 제공할 뿐만 아니라 자신들의 클라이언트가 이용할 이 호스트들이 소유한 서버 상에 공간을 제공하는 회사들이다. 웹 호스트들은 이들의 데이터 센터에 위치되어야 하는 이들이 소유하지 않는 서버에 대한 인 터넷 연결성 및 데이터 센터 공간도 제공할 수 있다.
도 1은 또한 컴퓨팅 장치(122-1)의 보다 상세한 블록도를 도시한다. 컴퓨팅 장치(122-1)는 임의의 컴퓨팅 장치(122-1-n)를 나타낸 것일 수 있다. 가장 기본적인 구성(106)에서, 컴퓨팅 장치(122-1)는 통상적으로 적어도 하나의 프로세싱 유닛(102) 및 메모리(104)를 포함한다. 메모리(104)는 휘발성 및 비휘발성 메모리를 모두 포함하는, 데이터를 저장할 수 있는 임의의 기계 판독가능 또는 컴퓨터 판독가능 매체를 이용하여 구현될 수 있다. 예를 들면, 메모리(104)는 ROM(read-only memory), RAM(random-access memory), DRAM(dynamic RAM), DDRAM(Double-Data-Rate DRAM), SDRAM(synchronous DRAM), SRAM(static RAM), PROM(programmable ROM), EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리, 강유전체 중합 메모리(ferroelectric polymer memory)와 같은 중합 메모리, 오보닉(ovonic) 메모리, 상 변화 또는 강유전체 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자기 또는 광카드, 또는 정보를 저장하기에 적절한 임의의 기타 유형의 매체를 포함할 수 있다. 도 1에 도시된 바와 같이, 메모리(104)는 하나 이상의 애플리케이션 프로그램(118), 점진적인 업데이트 엔진(GUE)(119), 설치 프로그램(120), 및 수반하는 데이터와 같은 다양한 소프트웨어 프로그램을 저장할 수 있다.
컴퓨팅 장치(122-1)는 또한 구성(106) 이외에도 추가적인 특징 및/또는 기능성을 구비할 수 있다. 예를 들면, 컴퓨팅 장치(122-1)는 이동식 저장 장치(108) 및 비이동식 저장 장치(110)를 포함할 수 있는데, 이들 저장 장치는 또한 전술한 바와 같이 다양한 유형의 기계 판독가능 또는 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨팅 장치(122-1)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 접촉 입력 장치 등과 같은 하나 이상의 입력 장치(114)를 가질 수 있다. 디스플레이, 스피커, 프린터, 등과 같은 하나 이상의 출력 장치(116)도 또한 컴퓨팅 장치(122-1)에 포함될 수 있다.
컴퓨팅 장치(122-1)는 컴퓨팅 장치(122-1)가 다른 장치들과 통신할 수 있게 하는 하나 이상의 통신 접속들(112)을 더 포함할 수 있다. 통신 접속들(112)은 하나 이상의 통신 인터페이스, 네트워크 인터페이스, 네트워크 인터페이스 카드(NIC), 라디오, 무선 송신기/수신기(송수신기), 유선 및/또는 무선 통신 매체, 물리적 커넥터(connector) 등과 같은 다양한 유형의 표준 통신 엘리먼트를 포함할 수 있다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 통신 매체, 및 무선 통신 매체를 포함하지만 이에 한정되지 않는다. 유선 통신 매체의 예로는 배선, 케이블, 금속 납, PCB(printed curcuit board), 백플레인(backplanes), 스위치 패브릭(switch fabrics), 반도체 재료, TP(twisted-pair) 배선, 동축 케이블(co-axial cable), 광섬유(fiber optics), 전파 신호(propagated signal) 등을 포함할 수 있다. 무선 통신 매체의 예로는 음향, RF(radio-frequency) 스팩트럼, 적외선 및 기타 무선 매체를 포함할 수 있다. 본원에 이용된 용어 기계-판독가능 매체 및 컴퓨터-판독가능 매체는 저장 매체 및 통신 매체를 모두 포함하는 것을 의미한다.
컴퓨팅 장치(122-1-n) 각각은 복수의 데이터베이스를 포함할 수 있다. 컴퓨팅 장치(122-1)에 관련하여 상세히 도시된 바와 같이, 컴퓨팅 장치(122-1)는 데이터베이스(124a, 124b, 126a, 126b, 128a, 및 128b)에 연결될 수 있다. 각 데이터베이스는 일반적으로, 다양한 유형의, 컴퓨팅 장치(122-1)용 데이터, 구체적으로는 애플리케이션 프로그램(118a, 118b)을 저장하도록 구성될 수 있다. 일 실시예에서, 예를 들면, 구성 데이터베이스(124a, 124b)는 애플리케이션 프로그램(118a, 118b)용 구성 데이터를 저장할 수 있다. 구성 데이터베이스(124a)는 제1 버전의 애플리케이션 프로그램(118)(예를 들면, 애플리케이션 프로그램(118a))용 구성 데이터를 저장하는 한편, 구성 데이터(124b)는 제2 버전의 애플리케이션 프로그램(118)(예를 들면, 애플리케이션 프로그램(118b))용 변환된 구성 데이터 세트를 저장할 수 있다. 일 실시예에서, 예를 들어, 사용자 프로파일 데이터베이스(126a, 126b)가 애플리케이션 프로그램(118a, 118b)용 검색 및 사용자 프로파일 데이터를 저장할 수 있다. 사용자 프로파일 데이터베이스(126a)는 애플리케이션 프로그램(118a)용 검색 및 사용자 프로파일 데이터를 저장할 수 있는 한편, 사용자 프로파일 데이터베이스(126b)는 애플리케이션 프로그램(118b)용 변환된 구성 데이터 세트를 저장할 수 잇다. 일 실시예에서, 예를 들어, 컨텐츠 데이터베이스(128a, 128b)는 애플리케이션 프로그램(118a, 118b)용 사용자 데이터 또는 컨텐츠 데이터 를 저장할 수 있다. 컨텐츠 데이터베이스(128a)는 애플리케이션 프로그램(118a)용 컨텐츠 데이터를 저장할 수 있는 한편, 컨텐츠 데이터베이스(128b)는 애플리케이션 프로그램(118b)용 변환된 컨텐츠 데이터 세트를 저장할 수 있다. 기타 유형의 데이터 및 데이터베이스가 컴퓨팅 장치(122-1)에 구현될 수 있으며, 이 실시예들은 이러한 상황으로 제한되지 않는다.
각종 실시예에서, 각 버전의 애플리케이션 프로그램(118)은 구성 데이터, 검색 및 사용자 프로파일 데이터, 및/또는 컨텐츠 데이터에 대하여 서로 다른 데이터 스키마를 이용할 수 있다. 데이터 스키마는 데이터 유형, 데이터 구조, 데이터 포맷, 컨텐츠, 의미, 구문, 등과 같은 각종 데이터 특징을 정의하기 위한 모델일 수 있다. 서로 다른 버전의 소프트웨어 애플리케이션은 다른 데이터 스키마를 이용할 수 있다. 결과적으로, 컴퓨팅 장치(122-1)에 연결된 각종 데이터베이스에 의해 저장되는 데이터는 임의의 업그레이드 동작 시에 서로 다른 데이터 스키마들 간에 변환될 필요가 있을 수 있다. 예를 들면, 데이터베이스(124a, 126a 및 128a)는 애플리케이션 프로그램(118a)에서 이용하기에 적절한 제1 데이터 스키마에 따라 데이터를 저장할 수 있는 한편, 데이터베이스(124b, 126b, 및 128b)는 애플리케이션 프로그램(118b)에 이용되기에 적절한 제2 데이터 스키마에 따라, 각각, 데이터베이스(124a, 126a, 및 128a)로부터 변환된 데이터를 저장할 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
예로서, 컨텐츠 데이터베이스(128a)는 애플리케이션 프로그램(118a)용 데이터 세트(130)를 포함할 수 있다. 데이터 세트(130)는 데이터 세그먼트(132-1-m)라 칭하는 데이터의 복수의 서브셋(subset)을 포함할 수 있다. 데이터 세그먼트는 데이터의, 임의의 정의되거나 개별(discrete) 세트 또는 서브셋을 나타낼 수 있다. 예를 들면, 데이터 세그먼트는 WSS 버전 2.0에 의해 호스팅되는 계층적 웹 포털들의 세트 또는 소정의 웹 포털에 대한 데이터 서브셋에 대응할 수 있다. 각각의 데이터 세그먼트(132-1-m)는 소정의 구현에서 원하는 바에 따라 가변 사이즈 또는 일정한 사이즈를 가질 수 있다. 데이터 세트(130)는 애플리케이션 프로그램(118a)에 적절한 제1 데이터 스키마에 따라 저장될 수도 있다.
일반적인 동작에서, 네트워크(100)는 컴퓨팅 어레이(140)의 하나 이상의 컴퓨팅 장치(122-1-n)에 의해 저장되거나 실행되는 하나 이상의 애플리케이션 프로그램에 대한 점진적인 업그레이드 동작을 수행하도록 구성될 수 있다. 컴퓨팅 장치(122-1-n)는 각각 서버-기반 웹 애플리케이션 프로그램 등의 하나 이상의 애플리케이션 프로그램(118)을 구현한다고 가정하자. 서버-기반 웹 애플리케이션 프로그램의 일례로는 MICROSOFT®사가 제조한 WINDOWS® SHAREPOINT® SERVICES(WSS) 버전 2.0 애플리케이션 프로그램을 포함할 수 있다. WSS 버전 2.0은, 예를 들면, 클라이언트(180-1-s) 등의 각종 클라이언트에 기본 팀(team) 서비스, 웹 포털, 및 인트라넷 기능성을 제공하는 통합형 애플리케이션 프로그램 군(suite)이다. WSS 버전 2.0에 대한 사용자 데이터 또는 컨텐츠 데이터는 데이터 세트(130)로 나타낸 바와 같이 컨텐츠 데이터베이스(128a)에 의해 저장될 수 있다. 일부 실시예가 예로서 WSS 애플리케이션 프로그램 또는 애플리케이션 프로그램군을 참조하여 기술될 수 있지만, 하나의 또는 복수의 컴퓨팅 장치에 의해 실행되는 임의의 애플리케이션 프로그램이 본원에 기술된 점진적인 업데이트 기술을 이용하여 업그레이드될 수 있다고 인식될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
소정 시점에서, WSS 버전 3.0에 대한 개발이 완료되었으며, 일반적인 사용을 위해 릴리즈되었다고 가정하자. 컴퓨팅 어레이(140)의 관리자는 컴퓨팅 어레이(140)의 하나 이상의 컴퓨팅 장치(122-1-n)를 WSS 버전 2.0으로부터 WSS 버전 3.0으로 업그레이드하기를 원할 수 있다. 이를 달성하기 위해, 관리자는 컴퓨팅 장치(122-1)와 같은 컴퓨팅 장치들(122-1-n) 중 하나를 선택하여 네트워크(160)를 통해 웹 서버(150)에 액세스하여, WSS 버전 3.0, 점진적인 업데이트 엔진(119), 설치 프로그램(120), 및 수반하는 데이터 및 명령어를 포함하는 설치 패키지를 다운로드할 수 있다. 대안으로, 컴퓨팅 장치(122-1)는 CD-ROM 장치 등의 입력 장치(114)를 통해 설치 패키지를 로딩할 수 있다. 컴퓨팅 장치(122-1)는 이 설치 패키지를 실행시켜 점진적인 업데이트 엔진(119)을 포함하는 설치 컴포넌트를 메모리(104)에 복사할 수 있다.
프로세싱 유닛(102)은 설치 프로그램(120)을 실행시켜 컴퓨팅 장치(122-1)에 의해 이용될 신규 버전의 애플리케이션 프로그램(118a)(예를 들면, 애플리케이션 프로그램(118b))을 설치할 수 있다. 애플리케이션 프로그램(118b)은, 예를 들면, WSS 버전 3.0을 포함할 수 있다. 설치 프로그램(120)은 또한 점진적인 업데이트 엔진(119)을 통합 또는 별도의 애플리케이션 프로그램(118b)의 일부로서 설치할 수 있다. 점진적인 업데이트 엔진(119)은 애플리케이션 프로그램(118)의 업그레이드 동작을 관리하도록 구성될 수 있다. 그래픽 사용자 인터페이스는 모니터 또는 기 타 유형의 디스플레이 등의 출력 장치(116)를 통해 관리자에게 복수의 업그레이드 옵션을 제공할 수 있다. 업그레이드 옵션은, 다른 옵션들 중에서도 특히, 인플레이스(in-place) 업그레이드 또는 점진적인 업그레이드를 포함할 수 있다. 인플레이스 업그레이드는 모든 컴퓨팅 장치(122-1-n)가 오프라인이 되고, 업드레이드 된 다음 일단 업데이트 동작이 완료된다면 동작으로 다시 배치(place back)되기 때문에 가장 쉬운 접근법일 수 있다. 그러나 인플레이스 업그레이드의 대가(cost)는 전체 컴퓨팅 어레이(140)가 비교적 긴 기간동안 오프라인이 될 수 있다는 것이다. 예를 들면, 컴퓨팅 어레이(140)가 10,000개의 웹 사이트를 호스팅하는 웹 호스팅 제공자에 대한 서버 팜이라고 가정하자. 사이트 당 1분의 업그레이드 시간을 가정한다면, 업그레이드 동작을 완료하는 데에 약 10,000분, 즉, 대략 1주가 걸릴 것이다. 이와 대조적인 것으로서, 점진적인 업그레이드는 업그레이드 동작을 좀 더 복잡하게 할 수 있지만, 컴퓨팅 어레이(140)의 부분들이 업그레이드 싸이클(cycle) 중에 WSS 동작을 유지할 수 있게 해줌으로써 클라이언트 장치(180-1-s)에 일부 제한된 기능을 제공한다.
컴퓨팅 어레이(140)의 점진적인 업그레이드를 수행하기 위하여, 점진적인 업데이트 엔진(119)은 먼저 컴퓨팅 장치(122-1)에 대한 점진적인 업그레이드 동작을 수행할 수 있다. 일단 컴퓨팅 장치(122-1)에 대한 업그레이드 동작이 완료되면, 설치 패키지는 컴퓨팅 장치(122-2)에 전달되어 마찬가지의 업그레이드 동작을 수행할 수 있다. 이 과정은 컴퓨팅 어레이(140)의 마지막 컴퓨팅 장치가 마지막으로 업그레이드 될 때까지 컴퓨팅 장치(122-n) 전반에 걸처 계속된다.
컴퓨팅 장치(122-1)의 애플리케이션 프로그램(118)의 업그레이드 동작의 일부로서, 점진적인 업데이트 엔진(119)은 각종 유형의 데이터베이스로부터 각종 유형의 정보나 데이터를 제2 버전의 애플리케이션 프로그램(118)(예를 들면, 애플리케이션 프로그램(118b))에 이용하기 위한 변환하기를 시작할 수 있다. 예를 들면, 점진적인 업데이트 엔진(119)은 데이터 세트(130)로 나타낸 컨텐츠 데이터베이스(128a)로부터 컨텐츠 데이터를 검색하고 애플리케이션 프로그램(118a)에 의해 이용되는 제1 데이터 스키마로부터 애플리케이션 프로그램(118b)에 의해 이용되는 제2 데이터 스키마로 변환하기를 시작할 수 있다. 변환된 데이터 세트(130)는 애플리케이션 프로그램(118b)에 의해 이용되기 위해 데이터베이스(128b)에 저장될 수 있다.
점진적인 업데이트 엔진(119)은 데이터 세그먼트(132-1-m)로 나타낸 개별 부분 또는 청크(chuck)로 데이터 세트(130)를 변환할 수 있다. 보다 상세히는, 점진적인 업데이트 엔진(119)은 데이터 세트(130)를 한번에 하나의 데이터 세그먼트 만큼 변환할 수 있다. 예를 들면, 관리자는 제2 데이터 스키마로 변환할 하나 이상의 데이터 세그먼트(132-1-m)를 선택할 수 있다. 또한, 관리자는 데이터 세그먼트(132-1-m)가 변환되는 순서를 선택할 수 있다. 관리자는 가장 먼저 변환될 데이터 세그먼트(132-1)를 선택한 다음, 데이터 세그먼트(132-2), 데이터 세그먼트(132-3)를 선택하고, 마지막으로 데이터 세그먼트(132-m)를 선택한다고 가정하자. 점진적인 업데이트 엔진(119)은 데이터 세그먼트(132-1)를 원하는 선택 또는 변환 순서에 따라 제2 데이터 스키마로 변환하기를 시작할 수 있다.
점진적인 업데이트 엔진(119) 및/또는 사이트 관리자는 복수의 요소에 기초하여 소정 세트의 데이터 세그먼트(132-1-m)를 선택할 수 있다. 예를 들면, 가능한 적은 사용자에게 영향을 미치는 특정 데이터 세그먼트(132-1-m)가 선택될 수 있다. 이를 수행하기 위하여, 데이터 세그먼트(132-1-m)는 동일한 사용자 집합에 의해 액세스되고 사용권한(permission)을 공유하는 계층적 그룹의 웹 사이트 또는 웹 포털인 사이트별 콜렉션 기초로 선택할 수 있다. 다른 예로서, 특정 데이터 세그먼트(132-1-m)는 웹 사이트 그룹의 우선 순위에 기초하여 선택될 수 있다. 우선순위가 높은 웹 사이트에 대한 데이터 세그먼트가 먼저 업그레이드 된 다음 우선순위가 낮은 웹 사이트가 업그레이드 될 수 있으며, 그 반대도 가능하다. 또 다른 예에서, 특정 데이터 세그먼트(132-1-m)는 트래픽(traffic)에 기초하여 선택될 수 있다. 트래식 양이 더 많은 웹 사이트에 대한 데이터 세그먼트가 먼저 업그레이드된 다음 트래픽 양이 더 적은 웹 사이트가 업그레이드 될 수 있으며, 그 반대도 가능하다. 또 다른 예에서, 특정 데이터 세그먼트(132-1-m)는 변환 동작에 필요한 시간에 기초하여 선택될 수 있다. 더 긴 변환 기간을 필요로 하는 데이터 세그먼트들은 트래픽 양이 통상적으로 낮은 저녁 또는 주말 시간 동안에 변환 동작을 하기 위해 선택될 수 있는 반면, 변환 기간이 더 짧은 데이터 세그먼트들은 통상적으로 트래픽 양이 더 많은 낮시간이나 근무 시간 동안 변환 동작을 하기 위해 선택될 수 있다. 이들은 단지 몇 가지 예에 지나지 않으며, 데이터 세그먼트(132-1-m)가 새로운 데이터 스키마로 변환되는 순서를 선택하는 데에 임의의 개수의 선택 기준이 이용될 수 있다고 인식될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
특정 데이터 세그먼트를 변환할 때, 점진적인 업데이트 엔진(119)은 데이터 세그먼트에 대한 임의의 변경 또는 수정을 차단하기 위하여 데이터 세그먼트를 잠글(lock) 수 있다. 예를 들면, 데이터 세그먼트(132-1)를 변환할 때, 점진적인 업데이트 엔진(119)은 데이터 세그먼트(132-1)에 대한 임의의 변경을 차단하기 위하여 데이터 세그먼트(132-1)를 잠글 수 있다. 변환 동작 중에 데이터 세그먼트(132-1)에 대한 변경이 이루어졌다면, 이러한 변경에 대한 데이터는 WSS 버전 3.0 데이터 스키마로 변환되지 않거나 잠재적으로 병합 충돌(merge conflict)을 생성할 수 있다. 잠재적인 데이터 손실 또는 병합 충돌을 차단하기 위하여, 점진적인 업데이트 엔진(119)은 판독 권한(privilege)을 허용하지만 데이터 세그먼트(132-1)로의 기록 권한을 허용하지 않을 수 있다. 대안으로, 점진적인 업데이트 엔진(119)은 변환 동작 중에 데이터 세그먼트(132-1)로의 액세스를 완전히 블러킹(block)시킬 수 있다. 어떤 경우라도, 변환되고 있는 특정 데이터 세그먼트에 자주 가는 사용자만이 변환 동작에 의해 영향받을 것이다. 점진적인 업데이트 엔진(119)은 일단 소정의 데이터 세그먼트에 대한 변환 동작이 완료되었다면 이 잠금을 해제할 수 있다.
그러나, 점진적인 업데이트 엔진(119)이 변환 동작 중에 소정의 데이터 세그먼트를 잠글 수 있더라도, 컴퓨팅 장치(122-1)는 하나 이상의 클라이언트(180-1-s)가 데이터 세트(130)로부터 다른 데이터 세그먼트를 액세스할 수 있게 해줄 수 있다. 예를 들면, 특정 웹 포털이 데이터 세그먼트(132-2)로부터의 데이터를 사용한다고 가정하자. 클라이언트(180-1)는 점진적인 업데이트 엔진(119)이 데이터 세그 먼트(132-1)를 새로운 데이터 스키마로 변환하고 있는 경우에도 WSS 버전 2.0 애플리케이션 프로그램을 이용하여 웹 포털을 액세스하는 것을 계속할 수 있다. 이는 변환 동작 중에 WSS 동작을 계속하여 사용할 수 있게 해준다. 마찬가지로, 일단 데이터 세그먼트(132-1)가 새로운 데이터 스키마로 변환되었다면, 컴퓨팅 장치(122-1)는 하나 이상의 클라이언트(180-1-s)가 WSS 버전 3.0 애플리케이션 프로그램 및 변환된 데이터 세그먼트(132-1)를 이용하여 웹 포털에 액세스할 수 있게 해주면서 다른 데이터 세그먼트들이 변환되게 할 수 있다. 이런 식으로, 클라이언트는 데이터 세트(130)의 소정의 데이터 세그먼트(132-1-m)에 대한 현재 변환 상태에 기초하여 WSS 버전 2.0 또는 WSS 버전 3.0으로부터 WSS 특징을 액세스할 수 있다.
클라이언트(180-1-s)의 이동(migration) 문제를 완화하기 위하여, 점진적인 업데이트 엔진(119)은 일시적으로 소정의 데이터 세그먼트(132-1-m)의 변환 동작에 대한 상태에 기초하여 액세스 요청을 재지정(redirect)할 수 있다. 점진적인 업그레이드 동작을 준비하기 위하여, 점진적인 업데이트 엔진(119)은 업그레이드 동작 중에 사용되는 새로운 URL(Universal Resource Locator) 도메인을 생성할 수 있다. 예를 들면, WSS 버전 2.0이 제1 도메인 이름 "//domain"에 위치한다고 가정하자. 점진적인 업데이트 엔진(119)은 WSS 버전 2.0에 이용될 제2 도메인 이름인 "//domain_old"를 생성할 수 있다. 클라이언트(180-1-s)가 URL이 "//domain/sites/WSS" 웹 사이트에 대한 액세스 요청을 송신한다면, 업그레이드 동작이 완료될 때까지 점진적인 업데이트 엔진(119)은 액세스 요청을 "//domain_old/sites/WSS"로 자동으로 재지정할 수 있다. 그리고, 점진적인 업데이트 엔진(119)도 WSS 버전 2.0이 이전에 이용하였던 제1 도메인 "//domain"에 WSS 버전 3.0을 설치할 수 있다. 일단 전체 컴퓨팅 어레이(140)에 대하여 업그레이드 동작이 완료되고 검증되었다면, 점진적인 업데이트 엔진(119)은 재지정 동작을 중지하여 클라이언트(180-1-s)에게 신규 버전의 애플리케이션 프로그램(118)으로의 자연스러운 이행을 제공할 수 있다. 본래의 URL 도메인이 업그레이드 동작 전후에 브라우징 될 수 있는 것을 보장하도록 사용자 요청을 재지정한다면 최종 사용자들이 새로운 URL 도메인을 학습할 필요가 없기 때문에 이들 최종 사용자에 대한 영향은 잠재적으로 줄어든다. 점진적인 업데이트 엔진(119)은 사용자가 항상 올바른 현재 위치로 투명하게 브라우징하는 것을 보장하도록 업그레이드 동작과 동시에 재재정 동작을 업데이트한다.
일단 업그레이드 동작이 완료되었고 데이터 세트(130)가 새로운 데이터 스키마로 변환되었다면, 점진적인 업데이트 엔진(119) 및/또는 관리자는 업그레이드가 올바르게 수행되었는지를 판정하기 위하여 각종 유효성(validity) 및 무결성(integrity) 검사를 수행할 수 있다. 이전 버전의 애플리케이션 프로그램(118)은 유효성 검사 동작 중에 임시 도메인 이름에 남아있을 수 있다. 업그레이드가 올바르게 수행되지 않았다면, 점진적인 업데이트 엔진(119)은 재지정 동작을 다시 개시하여 임시 도메인 이름에서의 이전 버전의 애플리케이션 프로그램(118)으로의 액세스 요청을 재지정할 수 있다. 재지정 동작은 컴퓨팅 어레이(140)의 관리자가 만족하도록 업그레이드 동작이 완료되고 검증될 때까지 지속적이게 될 수 있다.
점진적인 업데이트 엔진(119)은 또한 애플리케이션 프로그램(118)에 관련하여 다른 애플리케이션 프로그램이 업그레이드 동작을 수행할 수 있게 해주는 각종 API를 이용하여 동작할 수 있다. 예를 들면, 점진적인 업데이트 엔진(119)은 제3자 애플리케이션 프로그램이 애플리케이션 프로그램(118) 및 데이터 세트(130)의 변환 동작에 관련하여 대응하는 데이터 세트를 변환할 수 있도록 해주는 각종 API를 이용하여 동작할 수 있다. API는 WSS 버전 2.0 특징을 확장하기 위해 개발된 제3자 애플리케이션을 점진적인 업데이트 엔진(119)에 의해 수행되는 업그레이드 동작에 기본으로 제공할 수 있게 해주는 확장성 모델을 제공할 수 있다. 이런 식으로, 제3자 애플리케이션들은 자신의 업그레이드 동작을 주요 업그레이드 프로세스와 협동 및 이 프로세스에 기본제공할 수 있다. WSS 버전 2.0의 상위에 제공된 제3자 애플리케이션의 일례로는 SPS(SharePoint Portal Server) 2003을 포함할 수 있다. SPS 2003은 WSS 버전 2.0에 대한 업그레이드 동작과 동시에 자신의 업그레이드 동작을 수행할 수 있어서, 관리 오버헤드(overhead) 뿐만 아니라 클라이언트(180-1-s)에 대한 정지시간도 줄여줄 수 있다. 예를 들면, SPS 2003을 이용하는 컴퓨팅 장치(122-1-n)는 WSS 버전 2.0이 WSS 버전 3.0으로 업그레이드될 때와 동시에 OSS(Office SharePoint Service) 2006으로 업그레이드할 수 있다.
상술한 실시예에 대한 동작은 다음 도면 및 수반하는 예들을 참조하여 더 기술될 것이다. 몇몇의 도면들은 로직 흐름을 포함할 수 있다. 본원에 제시된 도면들이 특정 로직 흐름을 포함할 수 있지만, 이러한 로직 흐름은 단지 본원에 기술된 일반적인 기능성이 구현될 수 있는 방식에 대한 일례를 제공한다고 인식될 수 있 다. 또한, 소정의 로직 흐름은 그렇지 않다고 나타내지 않는 한 반드시 제시된 순서로 실행되어야 하는 것은 아니다. 또한, 소정의 로직 흐름은 하드웨어 엘리먼트, 프로세서에 의해 실행되는 소프트웨어 엘리먼트, 또는 이들의 임의의 조합에 의해 구현될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
도 2는 로직 흐름의 일 실시예를 도시한다. 도 2는 로직 흐름(200)을 도시한다. 로직 흐름(200)은 네트워크(100), 컴퓨팅 장치(122) 및/또는 점진적인 업데이트 엔진(119)과 같은, 본원에 기술된 하나 이상의 실시예에 의해 실행되는 동작을 나타낼 수 있다. 로직 흐름(200)에 도시된 바와 같이, 블록(202)에서 신규 버전의 애플리케이션 프로그램이 설치될 수 있다. 블록(204)에서 이전 버전의 애플리케이션 프로그램에 대한 데이터 세트가 신규 버전에 이용될 데이터 스키마로, 한번에 하나의 데이터 세그먼트만큼 변환될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시예에서, 예를 들면, 이전 버전에 대한 제1 데이터 세그먼트가 데이터 스키마로 변환될 수 있다. 이전 버전에 대한 제2 데이터 세그먼트로의 액세스는 제공되면서 제1 데이터 세그먼트가 변환될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시예에서, 예를 들면, 이전 버전에 대한 제1 데이터 세그먼트가 데이터 스키마로 변환될 수 있다. 변환 중에 제1 데이터 세그먼트로의 액세스가 차단될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시예에서, 예를 들면, 이전 버전에 대한 도메인 이름이 식별될 수 있 다. 이전 버전에 대한 임시 도메인 이름이 생성될 수 있다. 도메인 이름은 이 임시 도메인 이름으로 재명명될 수 있다. 도메인 이름을 이용한 액세스 요청은 이 임시 도메인 이름으로 재지정될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시예에서, 예를 들면, 이전 버전에 대한 도메인 이름이 식별될 수 있다. 일단 데이터 세트가 변환되었다면 도메인 이름은 신규 버전에 이용될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시에에서, 예를 들면, 다른 애플리케이션 프로그램이 API를 이용하여 이전 버전에 대한 데이터 세트를 변환하는 것에 관련하여 대응하는 데이터 세트를 변환할 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일 실시예에서, 예를 들면, 웹 애플리케이션에 의해 이용되는 하나 이상의 컨텐츠 데이터베이스로부터의 데이터를 가지는 데이터 세그먼트가 선택될 수 있다. 대안으로, 계층적 웹 애플리케이션 그룹에 의해 이용되는 하나 이상의 컨텐츠 데이터베이스로부터의 데이터를 가지는 데이터 세그먼트가 선택될 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
점진적인 업데이트 기술은 종래의 업그레이드 기술에 비해 여러가지 이점을 가질 수 있다. 예를 들어, 점진적인 업데이트 기술의 한 가지 이점은, 예를 들어, 주말 동안과 같이 정해진 구동 정지 기간(outage window)에 맞추어진 부분별로(in pieces) 이루어질 수 있다는 점이다. 점진적인 업데이트 기술은 또한 현재 버전의 소정의 애플리케이션 프로그램(118)에 대한 작업 환경으로부터 신규 또는 업그레이 드된 버전의 애플리케이션 프로그램(118)에 대한 작업 환경으로의 자연스러운 이동을 할 수 있게 한다. 점진적인 업그레이드 기술은 사용자에 미치는 잠재적인 영향 및 관리자의 작업 부하를 줄이기 위한 몇 가지 도구들을 더 제공한다.
소정의 점진적인 업그레이드 기술의 성능 및 효율은 핵심적인 가정들의 세트에 기초한다. 예를 들면, 일 실시예에서, 점진적인 업그레이드 기술은 애플리케이션 프로그램(118)의 구 버전과 신규 버전이 동일한 서버(들)에서 동시에 실행된다고 가정하자. 예를 들면, WSS 버전 2.0과 WSS 버전 3.0은 모두 컴퓨팅 장치(122-1)에 의해 실행될 수 있지만, WSS 버전 2.0과 WSS 버전 3.0 컨텐츠에 대하여 서로 다른 데이터베이스 및 가상 서버가 존재한다. 몇몇의 경우, 가상 서버는 서로 다른 버전의 ASP.Net을 실행시킬 수 있다. 또한 두 가지 버전의 애플리케이션 프로그램(118)에 의해 복수의 사이트가 서빙될 수도 있다. 사용자는 업그레이드 동작 이후에 자동으로 적절한 도메인으로 지정될 수 있다. 관리자는 또한 한번에 여러 개의 사이트 콜렉션 만큼을 신규 데이터베이스 및 애플리케이션 버전으로 업그레이드할 것이다. 마지막으로, 구버전 데이터가 보유되고 임의의 사이트 콜렉션이 업그레이드-이전의 애플리케이션 버전 및 수반하는 데이터 세트로 되돌리거나 롤백(rollback)하는 것이 가능할 것이다.
점진적인 업데이트 엔진(119) 및/또는 애플리케이션 프로그램(118)에 대한 성능 요건 세트를 구축하기 위하여 각종 설계 파라미터 및 수행(perform) 제약 사항이 이용될 수 있다. 일 실시예에서, 예를 들면, 이러한 요건 세트는 현재 WSS 버전 2.0을 실행시키고 있는 서버 팜(server-farm)에, 이 WSS 버전 2.0 설치를 훼 손하지 않으면서, WSS 버전 3.0을 설치할 수 있게 하는 것을 포함할 수 있다. 다른 예에서, 이 요건 세트는 WSS 버전 2.0 데이터로부터 중앙 관리 데이터베이스 및 구성 데이터베이스를 생성한 다음, 업그레이드 동작에 필요한 WSS 버전 3.0 컨텐츠 가상 서버 및 컨텐츠 데이터베이스를 생성하는 것을 포함할 수 있다. 또 다른 실시예에서, 요건 세트는 관리자가 한번에 전체 시스템 또는 데이터베이스를 업그레이드 하는 것 보다는 하나 이상의 사이트 콜렉션을 업그레이드할 수 있게 해줄 수 있다. 그 데이터는 완전한 업그레이드가 수행되는 임시 데이터베이스로 전달될 수 있고, 그 결과는 라이브(live) WSS 버전 3.0 환경으로 이동된다. 업그레이드 프로세스 동안에는 사이트 콜렉션들이 이용불가하거나 읽게 전용으로 되고, 업그레이드된 사이트는 새로운 도메인 이름을 가질 것이다. 또 다른 예에서, 요건 세트는 관리자에게 로그, 결과, 및 업그레이드된 WSS 버전 3.0 사이트를 검토한 다음, WSS 버전 2.0으로부터 WSS 버전 3.0으로의 재지정을 설정할지, 이 두 버전을 모두 일시적으로 이용가능하도록 남겨두고(예를 들면, WSS 버전 2.0이 읽기-전용 상태임) WSS 버전 3.0 상에서 작업할지 또는, WSS 버전 2.0을 모든 업데이트에 대하여 활성화시키고 마지막 날에 다시 업그레이드 할지를 선택하기 위한 도구를 제공할 수 있다. 또 다른 예에서, 요건 세트는 어떠한 WSS 버전 2.0 사이트도 이 환경에 남아있지 않을 때까지 업그레이드 동작을 계속하는 것을 포함할 수 있다. 본질적으로, 모든 WSS 버전 2.0 사이트는 다른 서버 팜으로 업그레이드되거나 이동된다. 몇몇의 경우, 관리자는 수동으로 완료되는 업그레이드를 나타내고, WSS 버전 2.0을 제거(un-install)하여 이 프로세스를 완료할 필요가 있다. 어떤 사이트들이 어떤 상 태(예를 들면, 재지정된 WSS 버전 3.0, WSS 버전 3.0과 WSS 버전 2.0, 또는 WSS 버전 2.0만 있음)에 있는지 나타내기 위한 보고가 이용될 수 있다.
WSS 애플리케이션 프로그램 등의 웹 애플리케이션을 업데이트하는 것에 관련해서, 점진적인 업그레이드 동작은 일반적으로 4 단계로 범주화(categorized)될 수 있다. 제1 단계는 WSS 버전 2.0 업그레이드 준비 및 WSS 버전 3.0 팜 생성을 포함한다. 신규 버전의 애플리케이션 프로그램(118)에 대한 코드가 설치되고, WSS 버전 2.0의 전역 엘리먼트가 WSS 버전 3.0 환경에 컴퓨팅 어레이(140)의 각 컴퓨팅 장치(122-1-n) 마다 추가된다. 관리자는 임의의 사전 업그레이드 동작을 수행하고, WSS 버전 2.0 사이트 및 이슈의 사전 업그레이드 보고를 이용해야 한다.
제2 단계는 관리자-구동 웹 애플리케이션 준비를 포함한다. 새로운 웹 애플리케이션 가상 서버가 생성된다. WSS 버전 2.0 컨텐츠 데이터베이스와 동일한 SQL 서버에 새로운 사이트를 저장하기 위하여 새로운 컨텐츠 데이터베이스가 생성된다. WSS 버전 2.0 가상 서버용 빈(bin)에 배치되는 웹 부분들이 관리자에 의해 WSS 버전 3.0 가상 서버에 추가되어야 한다.
제3 단계는 관리자-구동식 사이트 콜렉션 업그레이드를 포함한다. 관리자는 WSS 버전 3.0으로 옮겨질 하나 또는 여러 개의 웹 사이트를 선택한다. WSS 버전 2.0 사이트는 오프-라인이며 이용불가능하고, 모든 데이터는 임시 데이터베이스에 복사된다. 인플레이스 업그레이드가 이 임시 데이터베이스에서 실행되고, 그 다음 그 결과가 라이브 WSS 버전 3.0 환경으로 이동되어, 사이트들이 WSS 버전 3.0에 이용가능하게 된다. 일단 업그레이드 동작이 완료되면 WSS 버전 2.0 사이트가 다시 이용가능하게 되어야 한다.
제4 단계는 검토 및 재지정을 포함한다. 관리자는 사이트를 검토한다. 이 사이트들이 상당량의 작업을 요구하거나, 업그레이드될 수 없다면, WSS 버전 2.0 사이트로의 재지정이 리셋되고, 관리자는 업그레이드된 WSS 버전 3.0 사이트의 사본을 선택적으로 생성할 수 있다. 사용자 인터페이스가 WSS 버전 3.0 환경 내에서 올바른 것이 될(correct) 때까지, WSS 버전 3.0 사본은 마이크로소프트사가 제조한 FRONTPAGE®, 또는 이와 유사한 도구 등의 웹 사이트 생성 및 관리 도구를 이용하여 작업될 수 있다. 그 시점에서, WSS 버전 2.0 사이트는 다시 업그레이드 될 수 있고, 그 변경은 프론트페이지(FrontPage) 또는 유사 도구를 이용하여 수동적으로 병합될 수 있다.
도 3은 제2 로직 흐름의 예시적인 실시예를 도시한다. 도 3은 점진적인 업그레이드에 적절한 셋업(setup) 동작을 나타낼 수 있는 로직 흐름(300)을 도시한다. 로직 흐름(300)에 도시된 바와 같이, 점진적인 업그레이드를 개시하기 전에 사전 업그레이드 스캔 도구가 업그레이드 동작에 대한 준비 중에 실행될 수 있다. 사전 업그레이드 스캔 도구는 사용 중인 모든 사이트 정의 리스트를 어드레싱(address)하고 제공하고, 임의의 WSS 리스트를 업데이트 하여 이들이 업그레이드될 수 있게 하는 등의 일반적인 이슈들을 관리자에게 보고할 수 있다. 블록(302)에서 사전 업그레이드 스캔 도구의 실행 중에, 업그레이드 기회가 탐지되고 팝-업 메시지를 통해, 또는 로그 파일로의 입력(entries)을 통해 관리자에게 전달될 수 있다. 인플레이스 업그레이드, 점진적인 업그레이드, 컨텐츠 이동 업그레이드 등 과 같은 업그레이드 옵션들의 리스트가 관리자에게 제시될 수 있다. 블록(304)에서 점진적인 업그레이드가 선택될 수 있다. 블록(306)에서 컴퓨팅 장치(122-1)는 신규 버전의 애플리케이션 프로그램(118)의 설치를 시작하기 위해 점진적인 업데이트 엔진(119)을 검색하고 로딩할 수 있다. 블록(308)에서 사후-셋업 구성 동작이 런칭(launch)될 수 있다. 이 시점에서, 원 B로 나타낸 바와 같이 제어는 로직 흐름(400)으로 전달될 수 있다.
도 4는 제3 로직 흐름의 예시적인 실시예를 도시한다. 도 4는 점진적인 업그레이드에 적절한 사후-셋업 구성 동작을 나타낼 수 있는 로직 흐름(400)을 도시한다. 로직 흐름(400)에 나타낸 바와 같이, 블록(402)에서 사전-업그레이드 스캔 도구가 셋업 동작 중에 이용되었는지를 판정하기 위한 검사가 수행된다. 사전-업그레이드 스캔 도구가 실행되지 않았다면 에러가 발생하고 업그레이드 동작이 종료되거나 제어가 로직 흐름(300)으로 다시 전달되어 셋업 동작을 다시 실행한다. 사전-업그레이드 스캔 도구가 실행되었다면 블록(404)에서 신규 애플리케이션 풀(pool)을 포함하면서도 WSS 버전 2.0과는 동일한 자격증명(credentials)을 포함하는 구성 데이터베이스가 생성될 수 있다. 블록(406)에서 로컬 마이그레이터(migrator)가 실행될 수 있다. 로컬 마이그레이터의 일례는 검색 동작에 이용되는 데이터 및 소프트웨어의 국부적인 업그레이드를 실행시키는 것을 포함할 수 있다. 그 다음 블록(408)에서 중앙 관리자 홈페이지가 런칭될 수 있다.
블록(410)에서, 컴퓨팅 어레이(140)의 모든 컴퓨팅 장치(122-1-n)에 대하여 셋업 동작 및 사후-셋업 구성 동작이 수행되었는지에 대한 판정이 이루어진다. 컴 퓨팅 어레이(140)의 모든 컴퓨팅 장치(122-1-n)에 대하여 모든 셋업 동작 및 사후-셋업 동작이 수행되지는 않았다면, 원 A로 나타낸 바와 같이 제어가 로직 흐름(300)으로 전달된다. 그러나, 모든 컴퓨팅 장치(122-1-n)에 대하여 셋업 동작 및 사후-셋업 동작이 수행되었다면, 원 C로 나타낸 바와 같이 제어는 로직 흐름(500)으로 전달된다.
도 5는 제4 로직 흐름의 예시적인 실시예를 도시한다. 도 5는 중앙 관리 및 애플리케이션 프로그램 업그레이드 동작을 나타낼 수 있는 로직 흐름(500)을 도시한다. 로직 흐름(500)에 도시된 바와 같이, 블록(502)에서 업그레이드될 웹 애플리케이션이 선택될 수 있다. 애플리케이션 프로그램 업그레이드 동작은, 예를 들면, WSS 버전 2.0을 새로운 URL 도메인으로 옮기는 것, 컴퓨팅 장치(122-1) 상에 WSS 버전 3.0 웹 애플리케이션을 생성하거나 인스턴스화(instantiating)하는 것, WSS 버전 2.0에 의해 이용된 기존의 데이터베이스를 반영하도록 WSS 버전 3.0에 대한 각종 데이터베이스를 생성하거나 인스턴스화하는 것, 모든 WSS 버전 2.0 사이트를 WSS 버전 3.0 구성 데이터베이스(예를 들면, 구성 데이터베이스(126b))에 추가하는 것, 모든 사이트에 대한 재지정을 생성하는 것, 및/또는 소정의 구현에 필요한 기타 업그레이드 동작을 포함할 수 있다.
로직 흐름(500)을 계속하여, 블록(504)에서 각종 업그레이드 세팅이 정의되거나, 수정되거나, 업데이트되거나 설정될 수 있다. 이러한 세팅의 예들로는 레그호스트(Reghost) 및 파트너(Partner) 세팅을 포함할 수 있다. 레그호스트 세팅은 관리자가 업그레이드 동작 중에 레그호스팅 동작들을 인에이블링(enaling)할 수 있 다. 예를 들면, 관리자는 업그레이드 동작 중에 사용자 지정된(customized) 웹 페이지들을 레그호스트하기 위하여 레그호스팅 동작들을 인에이블링하기를 원할 수 있다. 파트너 세팅은 파트너 및 제3자들이 WSS 점진적인 업그레이드의 상위에서 업그레이드 엘리먼트를 구축하게 할 수 있다.
일단 업그레이드 세팅이 설정되었다면, 블록(506)에서 하나 이상의 셰어포인트(SharePoint) 사이트(SPSites) 그룹이 선택되고 업그레이드될 수 있다. 블록(508)에서 모든 SPSite가 WSS 버전 3.0으로 업그레이드되었거나 WSS 버전 2.0으로 되돌아갔는지에 대한 판정이 이루어질 수 있다. 모든 SPSite가 업그레이드되었거나 되돌아가지 않았다면, 제어는 블록(504)으로 전달된다. 그러나, 모든 SPSite가 업그레이드되었거나 되돌아갔다면, 블록(510)에서 컴퓨팅 장치(122-1)에 대하여 모든 애플리케이션 프로그램이 업그레이드 되었는지에 대한 판정이 이루어질 수 있다. 모든 애플리케이션 프로그램이 업그레이드되지 않았다면, 제어는 블록(502)으로 다시 전달된다. 그러나, 모든 애플리케이션 프로그램이 업그레이드되었다면, 블록(512)에서 업그레이드 동작이 완료될 수 있다. 완료 동작의 일례로는 관리자 및/또는 사용자에게 업그레이드가 단방향 업그레이드임을 알려주는 것, 확인 팝업을 제공하는 것, WSS 버전 2.0 팜으로부터 WSS 버전 3.0 팜에 대한 연결을 끊는 것, 업그레이드 작업 데이터를 전부 삭제하는 것(cleaning up), 및/또는 소정 구현에 필요한 기타 종료 동작을 포함할 수 있다.
본원에서는 실시예들의 철저한 이해를 제공하기 위하여 방대한 특정 상세가 설명되었다. 그러나, 당업자들은 이 실시예들이 이들 구체적인 상세 없이도 구현 될 수 있다고 이해할 것이다. 다른 예에서, 널리 공지된 동작, 컴포넌트 및 회로는 이 실시예들을 모호하지 않게 하기 위하여 상세히 설명되지 않았다. 본원에 개시된 구체적인 구조 및 기능적 상세를 나타낼 수 있으며 이 실시예들의 범위를 반드시 한정지을 필요는 없다고 이해될 수 있다.
또한 "일 실시예" 또는 "한 실시예"에 대한 어떠한 참조도 실시예에 관련하여 기술된 특정 특징, 구조, 또는 특성이 적어도 하나의 실시에에 포함됨을 의미한다는 것은 강조할만한 가치가 있다. 본 명세서의 여러 곳에서 용어 "일 실시예에서"가 기재되었다고 반드시 모두 동일한 실시예를 참조하는 것은 아니다.
일부 실시예는 표현 "연결된"과 "접속됨", 및 이들의 파생물들을 이용하여 기술될 수 있다. 이들 용어는 서로 동의어로서 의도된 것이 아니라고 이해되어야 한다. 예를 들면, 일부 실시예는 2개 이상의 요소가 서로 간에 직접 물리적이거나 전기적으로 접촉되어 있음을 나타내기 위하여 용어 "접속됨"을 이용하여 기술될 수 있다. 다른 예에서, 일부 실시예는 2개 이상의 요소가 직접 물리적이거나 전기적으로 접촉되어 있음을 나타내기 위하여 용어 "연결됨"을 이용하여 기술될 수 있다. 그러나, 용어 "연결됨"은 또한 2개 이상의 요소가 서로 직접적으로 접촉되어 있는 것이 아니라 서로 상호동작 또는 대화하고 있음을 의미할 수도 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
일부 실시예는, 예를 들면, 기계에 의해 실행될 때, 기계로 하여금 실시예에 따른 방법 및/또는 동작을 수행하게 할 수 있는 명령어 또는 명령어 세트를 저장할 수 있는 기계 판독가능 매체 또는 제품을 이용하여 구현될 수 있다. 이러한 기계 는, 예를 들면, 임의의 적절한 프로세싱 플랫폼, 컴퓨팅 플랫폼, 컴퓨팅 장치, 컴퓨팅 장치, 컴퓨팅 시스템, 프로세싱 시스템, 컴퓨터, 프로세서 등을 포함할 수 있으며, 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합을 이용하여 구현될 수 있다. 기계-판독가능 매체 또는 제품은, 예를 들면, 임의의 적절한 유형의 메모리 유닛, 메모리 장치, 메모리 제품, 메모리 매체, 저장 장치, 저장 제품, 저장 매체 및/또는 저장 유닛, 예를 들면, 메모리, 이동식 또는 비이동식 매체, 삭제 가능한 또는 삭제 불가능한 매체, 기록가능한 또는 재기록가능한 매체, 디지털 또는 아날로그 매체, 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compack Disk Recordable), CD-RW(Compact Disk Rewriteable), 광 디스크, 자기 매체, 자기-광 매체, 이동식 메모리 카드 또는 디스크, 각종 유형의 DVD(Digital Versatile Disk), 테이프, 카세트 등을 포함할 수 있다.
본원의 요지가 구조적인 특징 및/또는 방법론적인 행위에 특정된 언어로 기술되었지만, 첨부된 청구항에 정의된 요지는 상술한 구체적인 특징 또는 행위로 반드시 제한되는 것은 아니라고 이해되어야 한다. 오히려, 상술한 구체적인 특징 및 행위는 청구항들을 구현하는 예시적인 형태로서 개시된 것이다.
Claims (20)
- 애플리케이션 프로그램의 신규 버전을 설치하는 단계;상기 애플리케이션 프로그램의 이전 버전의 데이터 세트를 상기 신규 버전에 의해 이용되는 데이터 스키마(schema)로 한번에 하나의 데이터 세그먼트씩 변환하는 단계;상기 이전 버전의 제1 데이터 세그먼트를 상기 데이터 스키마로 변환하는 단계;상기 제1 데이터 세그먼트를 변환하면서 상기 이전 버전의 제2 데이터 세그먼트로의 액세스를 제공하는 단계; 및상기 변환 중에 상기 제1 데이터 세그먼트로의 액세스를 차단하는 단계를 포함하는방법.
- 제1항에 있어서,상기 이전 버전에 대한 도메인 이름을 식별하는 단계;상기 이전 버전에 대한 임시 도메인 이름을 생성하는 단계;상기 도메인 이름을 상기 임시 도메인 이름으로 재명명(rename)하는 단계; 및상기 도메인 이름에 대한 액세스 요청을 상기 임시 도메인 이름으로 재지정(redirect)하는 단계를 포함하는방법.
- 제1항에 있어서,상기 이전 버전에 대한 도메인 이름을 식별하는 단계; 및일단 상기 데이터 세트가 변환되었다면 상기 신규 버전에 대하여 상기 도메인 이름을 이용하는 단계를 포함하는방법.
- 제1항에 있어서,상기 이전 버전의 상기 데이터 세트를 변환하는 것에 따라 대응하는 데이터 세트를 변환하기 위해 다른 애플리케이션 프로그램과 인터페이싱(interfacing)하는 단계를 포함하는방법.
- 제1항에 있어서,웹 애플리케이션에 의해 이용되는 하나 이상의 컨텐츠 데이터베이스로부터의 데이터를 가지는 데이터 세그먼트를 선택하는 단계를 포함하는방법.
- 제1항에 있어서,계층적인 웹 애플리케이션 그룹에 의해 이용되는 하나 이상의 컨텐츠 데이터베이스로부터의 데이터를 가지는 데이터 세그먼트를 선택하는 단계를 포함하는방법.
- 명령어들을 포함하는 기계 판독가능 저장 매체로서,상기 명령어들은 실행될 때 시스템으로 하여금, 애플리케이션 프로그램의 신규 버전을 설치하고 상기 애플리케이션 프로그램의 이전 버전의 데이터 세트를 상기 신규 버전에 의해 이용되는 데이터 스키마로 한번에 하나의 데이터 세그먼트씩 변환하고, 상기 이전 버전의 제1 데이터 세그먼트를 상기 데이터 스키마로 변환하며, 상기 제1 데이터 세그먼트를 변환하면서 상기 이전 버전의 제2 데이터 세그먼트로의 액세스를 제공하고, 상기 변환 중에 상기 제1 데이터 세그먼트로의 액세스를 차단할 수 있게 하는기계 판독가능 저장 매체.
- 제7항에 있어서,실행될 때 상기 시스템으로 하여금, 상기 이전 버전에 대한 도메인 이름을 식별하고, 상기 이전 버전에 대한 임시 도메인 이름을 생성하고, 상기 도메인 이름을 상기 임시 도메인 이름으로 재명명하고, 상기 도메인 이름에 대한 액세스 요청을 상기 임시 도메인 이름으로 재지정할 수 있게 하는 명령어를 더 포함하는기계 판독가능 저장 매체.
- 제7항에 있어서,실행될 때 상기 시스템으로 하여금, 상기 이전 버전에 대한 도메인 이름을 식별하고, 일단 상기 데이터 세트가 변환되면 상기 신규 버전에 대하여 상기 도메인 이름을 이용할 수 있게 하는 명령어를 더 포함하는기계 판독가능 저장 매체.
- 제7항에 있어서,실행될 때 상기 시스템으로 하여금, 웹 애플리케이션에 의해 이용되는 하나 이상의 컨텐츠 데이터베이스로부터의 데이터를 가진 데이터 세그먼트를 선택할 수 있게 하는 명령어를 더 포함하는기계 판독가능 저장 매체.
- 제7항에 있어서,상기 기계 판독가능 저장 매체는 컴퓨터 판독가능 매체 또는 통신 매체를 포함하는기계 판독가능 저장 매체.
- 애플리케이션 프로그램의 제1 버전의 데이터 세트를 포함하는 데이터베이스;상기 데이터베이스에 연결되고, 프로세서 및 메모리를 포함하는 컴퓨팅 장치 - 상기 메모리는 애플리케이션 프로그램의 제1 버전, 설치 프로그램, 및 점진적인 업데이트 엔진을 저장하기 위한 것임 - 를 포함하고,상기 프로세서는 상기 설치 프로그램을 실행하여 상기 애플리케이션 프로그램의 제2 버전을 설치하고, 상기 점진적인 업데이트 엔진은 상기 데이터 세트를 상기 제2 버전에 의해 이용되는 데이터 스키마로 한번에 하나의 데이터 세그먼트씩 변환하고, 다른 데이터 세그먼트를 변환하면서 하나의 데이터 세그먼트로의 액세스를 제공하며, 변환 중에 데이터 세그먼트를 잠금(lock)으로써 상기 데이터 세그먼트로의 기록 액세스(write access)를 차단하는장치.
- 제12항에 있어서,상기 점진적인 업데이트 엔진은 변환 동작 중에, 상기 제1 버전에 대한 제1 도메인 이름에 대한 액세스 요청을 상기 제1 버전에 대한 제2 도메인 이름으로 재지정하기 위한 것인장치.
- 제12항에 있어서,상기 점진적인 업데이트 엔진은 웹 애플리케이션에 의해 이용되는 하나 이상의 컨텐츠 데이터베이스로부터의 데이터를 가진 데이터 세그먼트를 선택하기 위한 것인장치.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/418,747 US7818740B2 (en) | 2006-05-05 | 2006-05-05 | Techniques to perform gradual upgrades |
US11/418,747 | 2006-05-05 | ||
PCT/US2007/010873 WO2007130594A2 (en) | 2006-05-05 | 2007-05-04 | Techniques to perform gradual upgrades |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090031669A KR20090031669A (ko) | 2009-03-27 |
KR101376916B1 true KR101376916B1 (ko) | 2014-03-27 |
Family
ID=38662606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087027153A KR101376916B1 (ko) | 2006-05-05 | 2007-05-04 | 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7818740B2 (ko) |
EP (1) | EP2021937B1 (ko) |
KR (1) | KR101376916B1 (ko) |
CN (1) | CN101438261B (ko) |
ES (1) | ES2647039T3 (ko) |
WO (1) | WO2007130594A2 (ko) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065671B1 (en) * | 2007-08-20 | 2011-11-22 | United States Automobile Association (USAA) | Systems and methods for product updates with provisioning of data items |
US20090083343A1 (en) * | 2007-09-21 | 2009-03-26 | Oculus Technologies Corporation | Computer method and apparatus for accessing assets in an engineering product management system repository |
US8495571B2 (en) * | 2007-09-21 | 2013-07-23 | Oculus Technologies Corporation | Computer method and apparatus for engineered product management including simultaneous indication of working copy status and repository status |
US11347771B2 (en) * | 2007-11-28 | 2022-05-31 | International Business Machines Corporation | Content engine asynchronous upgrade framework |
US8539468B2 (en) * | 2008-02-18 | 2013-09-17 | International Business Machines Corporation | System and methods for replacing software application classes using transparent object adapters |
JP5571667B2 (ja) * | 2008-08-18 | 2014-08-13 | エフ5 ネットワークス、インコーポレイテッド | 可用性を維持しながらネットワークトラフィック管理装置をアップグレードする方法 |
US8032930B2 (en) * | 2008-10-17 | 2011-10-04 | Intuit Inc. | Segregating anonymous access to dynamic content on a web server, with cached logons |
US9104521B2 (en) * | 2009-03-16 | 2015-08-11 | Tyco Electronics Subsea Communications Llc | System and method for remote device application upgrades |
US8443084B2 (en) * | 2010-02-09 | 2013-05-14 | Accenture Global Services Limited | Enhanced upgrade path |
US20110302217A1 (en) * | 2010-06-08 | 2011-12-08 | Robert Heidasch | Semantic user interface data assembling |
US8689208B2 (en) | 2010-06-24 | 2014-04-01 | Microsoft Corporation | Upgrade management of application components |
US8244698B2 (en) * | 2010-07-23 | 2012-08-14 | Google Inc. | Encoding a schema version in table names |
US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
US8386501B2 (en) | 2010-10-20 | 2013-02-26 | Microsoft Corporation | Dynamically splitting multi-tenant databases |
US8751656B2 (en) | 2010-10-20 | 2014-06-10 | Microsoft Corporation | Machine manager for deploying and managing machines |
US8417737B2 (en) | 2010-10-20 | 2013-04-09 | Microsoft Corporation | Online database availability during upgrade |
US8296267B2 (en) | 2010-10-20 | 2012-10-23 | Microsoft Corporation | Upgrade of highly available farm server groups |
US8799453B2 (en) | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
US8850550B2 (en) | 2010-11-23 | 2014-09-30 | Microsoft Corporation | Using cached security tokens in an online service |
US20120137278A1 (en) | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Generating a customized set of tasks for migration of a deployed software solution |
US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
US8452817B1 (en) * | 2011-04-21 | 2013-05-28 | Netapp, Inc. | Update of data structure configured to store metadata associated with a database system |
EP2705428A4 (en) * | 2011-05-04 | 2014-10-15 | Apperian Inc | PROCESSING, MODIFICATION AND DISTRIBUTION OF INSTALLATION PACKAGES |
US8732693B2 (en) | 2011-08-04 | 2014-05-20 | Microsoft Corporation | Managing continuous software deployment |
US8943220B2 (en) * | 2011-08-04 | 2015-01-27 | Microsoft Corporation | Continuous deployment of applications |
US9038055B2 (en) | 2011-08-05 | 2015-05-19 | Microsoft Technology Licensing, Llc | Using virtual machines to manage software builds |
CN103186400B (zh) * | 2011-12-31 | 2016-01-13 | 深圳市金蝶中间件有限公司 | Web应用程序升级方法及系统 |
US9720676B2 (en) * | 2012-02-09 | 2017-08-01 | International Business Machines Corporation | Implementing updates to source code executing on a plurality of compute nodes |
US9262149B2 (en) | 2012-04-12 | 2016-02-16 | International Business Machines Corporation | Managing incrementally applied system updates |
JP2013254303A (ja) * | 2012-06-06 | 2013-12-19 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
CN102779191B (zh) * | 2012-07-03 | 2015-09-02 | 互动在线(北京)科技有限公司 | 一种MySQL数据库平滑升级的实现系统及实现方法 |
US9244914B2 (en) | 2012-09-28 | 2016-01-26 | Apple Inc. | Schema versioning for cloud hosted databases |
US9483245B2 (en) * | 2013-01-23 | 2016-11-01 | Red Hat Israel, Ltd. | Matching database schema with application code using dependency management |
US9244960B2 (en) * | 2013-03-15 | 2016-01-26 | International Business Machines Corporation | Metadata-driven version management service in pervasive environment |
US9229701B2 (en) * | 2013-03-15 | 2016-01-05 | Microsoft Technology Licensing, Llc | Local store data versioning |
US9588750B2 (en) * | 2013-03-22 | 2017-03-07 | International Business Machines Corporation | Pseudo program use during program installation |
US20140289722A1 (en) * | 2013-03-22 | 2014-09-25 | International Business Machines Corporation | Parallel program installation and configuration |
US9497079B2 (en) * | 2013-06-13 | 2016-11-15 | Sap Se | Method and system for establishing, by an upgrading acceleration node, a bypass link to another acceleration node |
US9830142B2 (en) | 2013-09-13 | 2017-11-28 | Microsoft Technology Licensing, Llc | Automatic installation of selected updates in multiple environments |
US10026064B2 (en) | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
US9665359B2 (en) | 2013-09-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Automatically resolving conflicts after installation of selected updates in a computer system |
US9626176B2 (en) | 2013-09-13 | 2017-04-18 | Microsoft Technology Licensing, Llc | Update installer with technical impact analysis |
CN104572685B (zh) * | 2013-10-17 | 2018-01-30 | 纬创资通股份有限公司 | 数据排序方法 |
US9804835B2 (en) | 2014-06-11 | 2017-10-31 | Microsoft Technology Licensing, Llc | Dynamic pacing for service upgrades |
WO2015192298A1 (en) * | 2014-06-16 | 2015-12-23 | Huawei Technologies Co., Ltd. | Telecommunication device and method for updating software in a telecommunication device |
JP2016071422A (ja) * | 2014-09-26 | 2016-05-09 | ブラザー工業株式会社 | ソフトウエア提供システム及びインストールプログラム |
US9501516B2 (en) * | 2014-12-19 | 2016-11-22 | Sap Se | Zero downtime upgrade of database applications using triggers and calculated fields |
US10320892B2 (en) | 2015-01-02 | 2019-06-11 | Microsoft Technology Licensing, Llc | Rolling capacity upgrade control |
US9898494B2 (en) | 2015-02-23 | 2018-02-20 | Sap Se | Zero downtime upgrade for database applications using tables with sequences |
KR102316868B1 (ko) * | 2015-04-27 | 2021-10-25 | 주식회사 케이티 | 상이한 버전의 웹 어플리케이션을 병용하여 운용하는 방법, 서버 및 시스템 |
US10235267B2 (en) * | 2015-08-13 | 2019-03-19 | Molbase (Shanghai) Biotechnology Co., Ltd. | Online testing system and method thereof |
CN105278962A (zh) * | 2015-11-04 | 2016-01-27 | 北京星网锐捷网络技术有限公司 | 应用程序及数据库的热部署方法及装置 |
US10262054B2 (en) | 2016-01-21 | 2019-04-16 | Microsoft Technology Licensing, Llc | Database and service upgrade without downtime |
CN105677430A (zh) * | 2016-02-18 | 2016-06-15 | 吴伟东 | 手机软件更新方法及系统 |
US9678685B1 (en) * | 2016-03-18 | 2017-06-13 | Storagecraft Technology Corporation | Live updating of a changed block tracking driver |
US10341465B2 (en) | 2016-04-03 | 2019-07-02 | Microsoft Technology Licensing, Llc | Policy driven flight management |
CN107341024B (zh) * | 2016-04-28 | 2020-02-14 | 华为技术有限公司 | 系统升级方法和系统升级装置 |
US10185549B2 (en) * | 2016-06-28 | 2019-01-22 | Microsoft Technology Licensing, Llc | Updating live system with static changes |
US10185626B2 (en) * | 2016-09-07 | 2019-01-22 | Microsoft Technology Licensing, Llc | Automatic application error detection and rollback |
US10146675B1 (en) * | 2016-12-29 | 2018-12-04 | EMC IP Holding Company LLC | Automated code upgrade testing utilizing a copy data manager |
CN107147712B (zh) * | 2017-05-05 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 更新网络应用程序的方法及装置 |
US10796350B2 (en) * | 2017-09-25 | 2020-10-06 | Oracle International Corporation | Systems and methods for using facade API for phased upgrade of core API |
US11347701B2 (en) * | 2018-02-13 | 2022-05-31 | Citrix Systems, Inc. | Live zero downtime migration of databases with disparate schemata |
US11204750B2 (en) * | 2018-03-30 | 2021-12-21 | Intel Corporation | Systems, methods and apparatus for distributed software/firmware update and software versioning system for automated vehicles |
US10452375B1 (en) * | 2018-06-21 | 2019-10-22 | Microsoft Technology Licensing, Llc | Memory-efficient upgrade staging |
US20200104118A1 (en) * | 2018-09-28 | 2020-04-02 | Bose Corporation | Systems and methods for providing staged updates in embedded devices |
KR102703632B1 (ko) * | 2022-06-24 | 2024-09-04 | 현대오토에버 주식회사 | 차량용 mcu에서의 플래시 부트 로더의 펌웨어 업데이트 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010008024A1 (en) | 1998-09-04 | 2001-07-12 | Toru Inaba | Upgrade control method and data processing system |
WO2004049115A2 (en) * | 2002-11-22 | 2004-06-10 | Bitfone Corporation | Update system for facilitating software update and data conversion in an electronic device |
Family Cites Families (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4413317A (en) * | 1980-11-14 | 1983-11-01 | Sperry Corporation | Multiprocessor system with cache/disk subsystem with status routing for plural disk drives |
US4425615A (en) * | 1980-11-14 | 1984-01-10 | Sperry Corporation | Hierarchical memory system having cache/disk subsystem with command queues for plural disks |
US5206951A (en) * | 1987-08-21 | 1993-04-27 | Wang Laboratories, Inc. | Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types |
US5261080A (en) * | 1987-08-21 | 1993-11-09 | Wang Laboratories, Inc. | Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats |
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US5369770A (en) * | 1992-11-02 | 1994-11-29 | Microsoft Corporation | Standardized protected-mode interrupt manager |
CA2128828C (en) * | 1993-08-24 | 2001-01-02 | David Michael Silver | Multilingual standard resources |
US5634114A (en) * | 1993-11-18 | 1997-05-27 | Intel Corporation | Dynamic link library version negotiation |
US5752035A (en) * | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US5745906A (en) * | 1995-11-14 | 1998-04-28 | Deltatech Research, Inc. | Method and apparatus for merging delta streams to reconstruct a computer file |
US6098078A (en) * | 1995-12-29 | 2000-08-01 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US5768519A (en) * | 1996-01-18 | 1998-06-16 | Microsoft Corporation | Method and apparatus for merging user accounts from a source security domain into a target security domain |
US5862325A (en) * | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5838901A (en) * | 1996-08-05 | 1998-11-17 | Xilinx, Inc. | Overridable data protection mechanism for PLDs |
GB9623298D0 (en) | 1996-11-08 | 1997-01-08 | Int Computers Ltd | Updating mechanism for software |
US5933139A (en) * | 1997-01-31 | 1999-08-03 | Microsoft Corporation | Method and apparatus for creating help functions |
WO1998040805A2 (en) | 1997-02-27 | 1998-09-17 | Siebel Systems, Inc. | Method of synchronizing independently distributed software and database schema |
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 |
DE19734413C1 (de) | 1997-08-08 | 1999-01-07 | Ericsson Telefon Ab L M | Verfahren zum Aufrüsten einer Datenbank |
DE19810784B4 (de) | 1998-03-12 | 2006-03-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Rechnersystem |
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US6154878A (en) * | 1998-07-21 | 2000-11-28 | Hewlett-Packard Company | System and method for on-line replacement of software |
US6332158B1 (en) * | 1998-12-03 | 2001-12-18 | Chris Risley | Domain name system lookup allowing intelligent correction of searches and presentation of auxiliary information |
US8069407B1 (en) * | 1998-12-08 | 2011-11-29 | Yodlee.Com, Inc. | Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes |
WO2000042510A1 (fr) * | 1999-01-13 | 2000-07-20 | Fujitsu Limited | Procede et appareil de commande exclusive d'informations electroniques et supports d'enregistrement de programme de commande exclusive |
US6377960B1 (en) * | 1999-07-26 | 2002-04-23 | Microsoft Corporation | Transactional configuration store and runtime versus administration isolation with version snapshots and aging |
US6633878B1 (en) * | 1999-07-30 | 2003-10-14 | Accenture Llp | Initializing an ecommerce database framework |
US6704873B1 (en) * | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
US6976062B1 (en) | 1999-09-22 | 2005-12-13 | Intermec Ip Corp. | Automated software upgrade utility |
US6640334B1 (en) * | 1999-09-27 | 2003-10-28 | Nortel Networks Limited | Method and apparatus of remotely updating firmware of a communication device |
US6779177B1 (en) * | 1999-10-28 | 2004-08-17 | International Business Machines Corporation | Mechanism for cross channel multi-server multi-protocol multi-data model thin clients |
US6681389B1 (en) | 2000-02-28 | 2004-01-20 | Lucent Technologies Inc. | Method for providing scaleable restart and backout of software upgrades for clustered computing |
US6643669B1 (en) * | 2000-03-14 | 2003-11-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for optimization of synchronization between a client's database and a server database |
US6775423B2 (en) * | 2000-05-03 | 2004-08-10 | Microsoft Corporation | Systems and methods for incrementally updating an image in flash memory |
US20020057018A1 (en) * | 2000-05-20 | 2002-05-16 | Equipe Communications Corporation | Network device power distribution scheme |
US6880086B2 (en) * | 2000-05-20 | 2005-04-12 | Ciena Corporation | Signatures for facilitating hot upgrades of modular software components |
US6751794B1 (en) | 2000-05-25 | 2004-06-15 | Everdream Corporation | Intelligent patch checker |
US7693976B2 (en) * | 2000-07-11 | 2010-04-06 | Ciena Corporation | Granular management of network resources |
US7337217B2 (en) * | 2000-07-21 | 2008-02-26 | Samsung Electronics Co., Ltd. | Architecture for home network on world wide web |
US6832373B2 (en) * | 2000-11-17 | 2004-12-14 | Bitfone Corporation | System and method for updating and distributing information |
US20040088333A1 (en) * | 2002-01-25 | 2004-05-06 | David Sidman | Apparatus method and system for tracking information access |
US6754895B1 (en) | 2001-04-26 | 2004-06-22 | Palm Source, Inc. | Method and system for automatic firmware updates in a portable hand-held device |
US6996589B1 (en) * | 2002-01-16 | 2006-02-07 | Convergys Cmg Utah, Inc. | System and method for database conversion |
US7263698B2 (en) | 2002-08-29 | 2007-08-28 | Sap Aktiengesellschaft | Phased upgrade of a computing environment |
US20040199786A1 (en) * | 2002-12-02 | 2004-10-07 | Walmsley Simon Robert | Randomisation of the location of secret information on each of a series of integrated circuits |
US7523184B2 (en) | 2002-12-31 | 2009-04-21 | Time Warner Cable, Inc. | System and method for synchronizing the configuration of distributed network management applications |
US7117482B2 (en) * | 2003-03-26 | 2006-10-03 | Sony Corporation | Migration of configuration data from one software installation through an upgrade |
US8209680B1 (en) * | 2003-04-11 | 2012-06-26 | Vmware, Inc. | System and method for disk imaging on diverse computers |
US7386617B2 (en) * | 2003-05-15 | 2008-06-10 | International Business Machines Corporation | Method, system and program product for managing multiple network application versions |
US7356577B2 (en) * | 2003-06-12 | 2008-04-08 | Samsung Electronics Co., Ltd. | System and method for providing an online software upgrade in load sharing servers |
US20050010913A1 (en) * | 2003-07-11 | 2005-01-13 | Chih-Wei Chen | Computer code upgrading method and system |
US7624393B2 (en) | 2003-09-18 | 2009-11-24 | International Business Machines Corporation | Computer application and methods for autonomic upgrade maintenance of computer hardware, operating systems and application software |
US7778962B2 (en) * | 2004-04-30 | 2010-08-17 | Microsoft Corporation | Client store synchronization through intermediary store change packets |
US7533144B2 (en) * | 2004-05-14 | 2009-05-12 | Hisham Kassab | Method of providing a web page with additional content inserted in an intermediate network entity (INE) platform |
US20050262495A1 (en) | 2004-05-18 | 2005-11-24 | Bea Systems, Inc. | Administration mode for server applications |
US7558843B2 (en) | 2004-07-12 | 2009-07-07 | Netsuite, Inc. | Phased rollout of version upgrades in web-based business information systems |
US20060041881A1 (en) | 2004-08-19 | 2006-02-23 | Adkasthala Bheema P | Universal upgrade architecture |
US7562358B2 (en) * | 2004-10-04 | 2009-07-14 | United Parcel Service Of America, Inc. | Controlled deployment of software in a web-based architecture |
US20060080656A1 (en) * | 2004-10-12 | 2006-04-13 | Microsoft Corporation | Methods and instructions for patch management |
US7603562B2 (en) * | 2005-02-02 | 2009-10-13 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
JP2006224411A (ja) * | 2005-02-16 | 2006-08-31 | Sharp Corp | 交換部品および画像形成装置 |
US9270732B2 (en) * | 2005-03-14 | 2016-02-23 | Rhapsody International Inc. | System and method for automatically uploading updates |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US7933881B2 (en) * | 2006-03-17 | 2011-04-26 | Microsoft Corporation | Concurrency control within an enterprise resource planning system |
US8788569B2 (en) * | 2006-03-31 | 2014-07-22 | British Telecommunications Public Limited Company | Server computer system running versions of an application simultaneously |
GB2445764A (en) * | 2007-01-22 | 2008-07-23 | Surfcontrol Plc | Resource access filtering system and database structure for use therewith |
US8418168B2 (en) * | 2008-05-29 | 2013-04-09 | Research In Motion Limited | Method and system for performing a software upgrade on an electronic device connected to a computer |
-
2006
- 2006-05-05 US US11/418,747 patent/US7818740B2/en active Active
-
2007
- 2007-05-04 WO PCT/US2007/010873 patent/WO2007130594A2/en active Application Filing
- 2007-05-04 CN CN2007800159798A patent/CN101438261B/zh active Active
- 2007-05-04 EP EP07794562.4A patent/EP2021937B1/en active Active
- 2007-05-04 KR KR1020087027153A patent/KR101376916B1/ko active IP Right Grant
- 2007-05-04 ES ES07794562.4T patent/ES2647039T3/es active Active
-
2010
- 2010-09-29 US US12/893,263 patent/US8370828B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010008024A1 (en) | 1998-09-04 | 2001-07-12 | Toru Inaba | Upgrade control method and data processing system |
WO2004049115A2 (en) * | 2002-11-22 | 2004-06-10 | Bitfone Corporation | Update system for facilitating software update and data conversion in an electronic device |
Also Published As
Publication number | Publication date |
---|---|
EP2021937B1 (en) | 2017-08-16 |
EP2021937A4 (en) | 2009-05-06 |
US20070261049A1 (en) | 2007-11-08 |
CN101438261B (zh) | 2011-06-08 |
US20110016461A1 (en) | 2011-01-20 |
CN101438261A (zh) | 2009-05-20 |
ES2647039T3 (es) | 2017-12-18 |
US8370828B2 (en) | 2013-02-05 |
US7818740B2 (en) | 2010-10-19 |
WO2007130594A2 (en) | 2007-11-15 |
WO2007130594A3 (en) | 2008-01-03 |
KR20090031669A (ko) | 2009-03-27 |
EP2021937A2 (en) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101376916B1 (ko) | 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치 | |
US11032140B2 (en) | Using a template to update a stack of resources | |
US8302093B2 (en) | Automated deployment of defined topology in distributed computing environment | |
US11062022B1 (en) | Container packaging device | |
US7720931B2 (en) | System and method of remotely managing and loading artifacts | |
US7761559B2 (en) | System and method of remotely managing and loading artifacts | |
US20190229984A1 (en) | System and method for generic configuration management system application programming interface | |
US8645672B2 (en) | Configuring a computer system for a software package installation | |
CN100388265C (zh) | 管理数据处理系统中的应用文件的方法和装置 | |
US20090313256A1 (en) | Reuse of shared metadata across applications via url protocol | |
US8103673B2 (en) | Systems and methods for provisioning content from multiple sources to a computing device | |
US20090240698A1 (en) | Computing environment platform | |
EP2246782A1 (en) | Application modification framework | |
US20080155118A1 (en) | Really simple syndication (rss) feed customization | |
US20090240935A1 (en) | Computing environment configuration | |
US20070118572A1 (en) | Detecting changes in data | |
CN112947992B (zh) | 代码版本管理的方法和装置 | |
US20080163264A1 (en) | Directory Service that Provides Information from a Plurality of Disparate Data Sources | |
US20230039744A1 (en) | Automated creation and deployment of websites | |
Bhatt | Liferay Portal performance best practices | |
Shao | About the design changes required for enabling ECM systems to exploit cloud technology | |
US11659019B2 (en) | Resource mapping during universal resource locator changes in distributed computing systems | |
Gutierrez | Full-Stack Web Development & Azure IoT Hub | |
Frampton et al. | Collecting Data with Nutch and Solr | |
Jacobs et al. | Introduction to Livecycle Data Services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180219 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200218 Year of fee payment: 7 |