KR20150102376A - 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템 - Google Patents

운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템 Download PDF

Info

Publication number
KR20150102376A
KR20150102376A KR1020140024169A KR20140024169A KR20150102376A KR 20150102376 A KR20150102376 A KR 20150102376A KR 1020140024169 A KR1020140024169 A KR 1020140024169A KR 20140024169 A KR20140024169 A KR 20140024169A KR 20150102376 A KR20150102376 A KR 20150102376A
Authority
KR
South Korea
Prior art keywords
driver
dsu
update
application program
version
Prior art date
Application number
KR1020140024169A
Other languages
English (en)
Inventor
강성주
박정민
전인걸
김원태
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140024169A priority Critical patent/KR20150102376A/ko
Priority to US14/616,446 priority patent/US20150248285A1/en
Publication of KR20150102376A publication Critical patent/KR20150102376A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

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)
  • Stored Programmes (AREA)

Abstract

본 발명은 개발되어 운영 중인 시스템의 중단이나 재시작 없이 새로운 버전의 응용 프로그램 및 장치 드라이버를 동시에 업데이트 할 수 있는 시스템 업데이트 방법 및 그 시스템에 관한 것이다.

Description

운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템{Method for Adapting Changes of Operation Environment and Supporting Upgrade and Evolution of System and System thereof}
본 발명은 시스템 운영 환경의 변화에 대해 시스템을 중단 없이 업데이트(또는 업그레이드) 하기 위한 방법 및 장치에 관한 것으로서, 특히, 개발되어 운영 중인 시스템의 중단이나 재시작 없이 새로운 버전의 응용 프로그램 및 장치 드라이버를 동시에 업데이트 할 수 있는 시스템 업데이트 방법 및 그 시스템에 관한 것이다.
<요구사항>
다양한 산업이 융합되는 이른바 메가 컨버전스 시대의 요구에 따라 컴퓨터 및 소프트웨어 등 IT기술은 통신/네트워크, 기계, 제어 등 타 공학 기술 및 전통 산업들과 결합(Integration), 융합(Convergence), 연동(Interoperation)되어 새로운 융복합 산업을 형성하는데 중요한 역할을 하고 있다. 기계 장치인 항공기를 제어하는 자동 항법 소프트웨어, 발전소부터 가정에 이르기까지 전기의 흐름을 제어하는 스마트그리드의 전력 분배 소프트웨어, 개별 무기 체계를 연동해 하나의 국방 시스템을 이루는 감시-정찰 체계(C4ISR) 등이 좋은 예이다. 이와 같은 IT 기반의 융합 산업 시스템은 독자적으로 개발되고 제어되는 개별 시스템들의 결합을 통해 구축되고 있으며, 운용 중 동적으로 진화되며, 하나의 산업 전반에 걸친 초대규모 시스템 형태를 갖는다.
IT 기반의 융합 시스템의 효율적인 개발 및 운용은 시스템 및 소프트웨어 공학 분야에 있어서 중요한 과제로 인식되며, 이에 대응하여 세계적인 연구기관들은 새로운 형태의 시스템 개념 정립 및 연구 이슈들을 도출하고 있다. 미국 국가과학재단(NSF)은 2006년 이래 사이버-물리 시스템(CPS: Cyber Physical Systems)을 핵심 연구 분야로 도출하고 많은 기관에 연구비를 지원하고 있다. CPS는 물리 시스템을 제어하는 임베디드 소프트웨어 및 이와 같은 시스템간의 복잡한 협업 제어를 연구한다. 미국 카네기멜론 대학의 소프트웨어공학연구소(SEI)는 이종 시스템 간의 연동을 통해 하나의 목적을 수행하도록 하는 System of Systems(SoS), 완전 분산된 형태에서 시스템, 사람, 정책 등 각각의 구성 요소들이 개별적으로 개발되고 진화하면서도 시스템 전체는 고장을 감내하면서 운용될 수 있는 Ultra-Large Scale System(ULS) 등을 연구하고 있다. 독일의 프라운호퍼 연구소는 정보 시스템(Information Systems)이 지향하는 Internet of Service 개념과 임베디드 시스템이 지향하는 Internet of Things 개념을 융합하는 Smart Ecosystem을 제시하고 이를 위한 소프트웨어 공학 기법을 연구하고 있다.
이러한 초대규모의 융복합 시스템들은 필연적으로 복잡도(Complexity)가 높으며, 개발 단계에서는 고려되지 않았지만 운영 중 발견되는 예외 상황들을 극복하기 위해 끊임없이 진화(Evolution)해야 한다. 특히 원자력 발전소 제어 시스템, 인공 위성이나 항공기 등 신뢰성 높은 시스템의 경우 운영 중 추가되는 새로운 요구 사항이나 운영 환경에 적응하기 위한 개선 사항 등이 시스템의 중단이나 재시작 등 전체 시스템의 운영에 영향을 주지 않고 반영되는 진화 능력(Evolvability)을 필요로 하며, 이는 초대규모 시스템을 구성하는 개별 컴포넌트나 개별 시스템이 전체 시스템의 정상적인 운영에 영향을 주지 않고 개별적으로 업그레이드 될 수 있어야 함을 의미한다. 업그레이드는 보통 소프트웨어의 중요한 변경, 업데이트는 업그레이드 전의 작은 변경을 의미하지만 여기에서는 큰 차이를 두지 않고 업그레이드를 업데이트의 부분 집합으로 다루기로 한다.
<동적 소프트웨어 업데이트 기술>
일반적으로 소프트웨어를 업데이트하기 위해서는 실행 중인 애플리케이션 프로세스를 종료하고 새 버전을 설치한 후 다시 실행하는 과정을 거쳐야 한다. 동적 소프트웨어 업데이트(DSU, Dynamic Software Update)는 실행중인 애플리케이션을 종료하지 않고 새 버전으로 업데이트하는 기술이다. 동적 소프트웨어 업데이트를 구현하는 방법은 여러 가지가 있으며, 미국 애리조나 주립대에서 개발한 UpStare는 스택 재구성(Stack Reconstruction) 기술을 이용한다. 이는 업데이트 시 이전 버전의 애플리케이션의 스택 영역을 임시 저장하고 새 버전의 애플리케이션을 실행한 후 임시 저장한 스택 정보를 기반으로 스택을 재구성하는 기술이다. 이 방식의 구동을 위해서는 '동적 업데이트 가능한 형태'로 변환된 소프트웨어와 동적 업데이트 기능을 제공하는 DSU 소프트웨어가 필요하다.
<장치 드라이버 기술>
장치 드라이버(Device Driver)는 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다. 장치 드라이버는 커널의 일부로 만들어지거나, 불러 올 수 있는 모듈로 만들어질 수 있다. 마이크로소프트 윈도의 .sys 파일과 리눅스의 .ko 모듈은 불러올 수 있는 장치 드라이버이다. 모듈 형태의 장치 드라이버는 필요할 때 메모리에 로드하고, 사용하지 않을 때는 메모리에서 회수할 수 있다. 또한 모듈로 제작된 디바이스 드라이버 프로그램은 이전 버전을 메모리에서 회수하고 새 버전을 로드하는 방식으로 업데이트할 수 있다.
그러나, 기존의 동적 소프트웨어 업데이트 기술에서는 관련 장치 드라이버의 고려 없이 실행 중인 애플리케이션에 대해서만 동적 업데이트를 제공하므로, 시스템 개발자가 각각을 별도로 업데이트하고 유지 보수해야 하는 비효율적인 문제점이 있다.
국내공개특허 제 2012-0048912호 (2012.05.16. 공개)
따라서, 본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은, 동적 업데이트 가능한 형태의 응용 프로그램의 업데이트 시 시스템의 중단이나 재시작 없이 해당 응용 프로그램이 사용 중인 장치 드라이버의 종류 및 버전을 반영하여 응용 프로그램과 장치 드라이버를 동시에 통합적으로 업데이트 할 수 있는 시스템 업데이트 방법 및 그 시스템을 제공하는 데 있다.
먼저, 본 발명의 특징을 요약하면, 상기의 목적을 달성하기 위한 본 발명의일면에 따른 시스템 업데이트 방법은, 동적 업데이트 관리자에서 이전 버전의 DSU 소프트웨어를 실행하여 생성된 이전 버전의 응용 프로그램에 따라 시스템 운영을 위한 애플리케이션을 수행하는 단계; 및 업데이트 요청에 따라, 상기 동적 업데이트 관리자에서, 상기 이전 버전의 응용 프로그램 및 디바이스와 상기 응용 프로그램 사이의 인터페이스를 위한 장치 드라이버의 이전 버전의 DSU 드라이버에 대한 새 버전으로의 업데이트를 통합적으로 수행하는 단계를 포함한다.
통합적으로 수행하는 상기 업데이트는 상기 시스템 운영의 중단이나 재시작 없이 이루어질 수 있다.
상기 업데이트를 통합적으로 수행하는 단계는, (a) 파일 시스템으로부터 전송받은 새 버전의 DSU 소프트웨어와 연계된 해당 새 버전의 DSU 드라이버에 대한 업데이트를 수행하는 단계; 및 (b) 상기 동적 업데이트 관리자에서 상기 새 버전의 DSU 소프트웨어에 대한 업데이트 명령을 수행하여 상기 이전 버전의 응용 프로그램을 새 버전의 응용 프로그램으로 업데이트하는 단계를 포함한다.
상기 (a) 단계는, 상기 동적 업데이트 관리자가 상기 새 버전의 DSU 드라이버와 해당 쉐도우드라이버를 이미 가지고 있는 경우, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시키는 단계를 포함할 수 있다.
상기 (a) 단계는, 상기 동적 업데이트 관리자가 상기 파일 시스템에 요청하여 상기 새 버전의 DSU 드라이버와 해당 쉐도우 드라이버를 수신하고, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시키는 단계를 포함할 수도 있다.
상기 쉐도우 드라이버는 상기 응용 프로그램에 따른 상기 디바이스의 호출 명령 시에 상기 이전 버전의 DSU 드라이버에서 제공하였던 최근 값이나 중립 값, 또는 사전에 정의된 다른 값을 제공할 수 있다.
상기 (a) 단계는, 상기 디바이스의 호출 명령이 상기 쉐도우 드라이버로 전환되어 있는 동안, 상기 동적 업데이트 관리자가 저장 수단에서 상기 이전 버전의 DSU 드라이버를 제거하고 상기 새 버전의 DSU 드라이버를 적재하여 업데이트하는 단계를 포함할 수 있다.
상기 (b) 단계는, 상기 업데이트 명령에 따라 상기 이전 버전의 응용 프로그램에 따른 애플리케이션의 스택 영역의 데이터를 상기 동적 업데이트 관리자에 임시 저장시키는 단계; 및 상기 새 버전의 DSU 소프트웨어를 실행하여 생성한 상기 새 버전의 응용 프로그램에 따른 해당 애플리케이션의 스택에 상기 스택 영역의 데이터를 복원시켜 저장하는 단계를 포함할 수 있다.
그리고, 본 발명의 다른 일면에 따른, 동적 소프트웨어 업데이트(DSU)에 의해 운용되는 시스템은, 이전 버전의 응용 프로그램을 포함하는 응용 프로그램부; 하나 이상의 디바이스와 상기 응용 프로그램부 사이의 인터페이스를 위한 장치 드라이버; 및 상기 응용 프로그램부에서 이전 버전의 DSU 소프트웨어를 실행하여 생성한 상기 이전 버전의 응용 프로그램에 따라 시스템 운영을 위한 애플리케이션을 수행하도록 제어하는 동적 업데이트 관리자를 포함하고, 상기 동적 업데이트 관리자는, 업데이트 요청에 따라, 상기 이전 버전의 응용 프로그램 및 상기 이전 버전의 DSU 드라이버에 대한 새 버전으로의 업데이트의 통합적 제어를 수행할 수 있다.
상기 동적 업데이트 관리자는, 상기 시스템 운영의 중단이나 재시작 없이 상기 새 버전으로의 통합적인 상기 업데이트를 수행할 수 있다.
상기 동적 업데이트 관리자는, 파일 시스템으로부터 전송받은 새 버전의 DSU 소프트웨어와 연계된 해당 새 버전의 DSU 드라이버에 대한 업데이트를 수행한 후, 상기 새 버전의 DSU 소프트웨어에 대한 업데이트 명령을 수행하여 상기 이전 버전의 응용 프로그램을 새 버전의 응용 프로그램으로 업데이트할 수 있다.
상기 동적 업데이트 관리자는, 상기 새 버전의 DSU 드라이버에 대한 업데이트를 위해, 상기 새 버전의 DSU 드라이버와 해당 쉐도우 드라이버를 이미 가지고 있는 경우, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시킬 수 있다.
상기 동적 업데이트 관리자는, 상기 새 버전의 DSU 드라이버에 대한 업데이트를 위해, 상기 파일 시스템에 요청하여 상기 새 버전의 DSU 드라이버와 해당 쉐도우 드라이버를 수신하고, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시킬 수도 있다.
상기 쉐도우 드라이버는 상기 응용 프로그램부에서 상기 디바이스의 호출 명령 시에 상기 이전 버전의 DSU 드라이버에서 제공하였던 최근 값이나 중립 값, 또는 사전에 정의된 다른 값을 제공할 수 있다.
상기 동적 업데이트 관리자는, 상기 디바이스의 호출 명령이 상기 쉐도우 드라이버로 전환되어 있는 동안, 저장 수단에서 상기 이전 버전의 DSU 드라이버를 제거하고 상기 새 버전의 DSU 드라이버를 적재하여 업데이트할 수 있다.
상기 새 버전의 응용 프로그램으로 업데이트를 위해, 상기 업데이트 명령에 따라 상기 응용 프로그램부가 상기 이전 버전의 응용 프로그램에 따른 애플리케이션의 스택 영역의 데이터를 상기 동적 업데이트 관리자에 임시 저장하며, 상기 동적 업데이트 관리자는, 상기 새 버전의 DSU 소프트웨어를 실행하여 생성한 상기 새 버전의 응용 프로그램에 따른 해당 애플리케이션의 스택에 상기 스택 영역의 데이터를 복원시켜 저장할 수 있다.
본 발명의 시스템의 동적 소프트웨어 업데이트 방법 및 그 시스템에 따르면, 시스템 개발자는 운영 중 중단이 어려운 환경에 배포된 시스템의 업그레이드를 수행할 때 동적 업데이트 관리자를 통해 응용 프로그램과 이에 연동하는 장치 드라이버를 효과적으로 업데이트할 수 있어 궁극적으로 운영 환경에 적응해 시스템을 진화시킬 수 있다.
또한, 본 발명에 따르면, 기존의 기술이 응용 프로그램의 업데이트만을 고려한 것과 달리 응용 프로그램 및 이에 연동하는 장치 드라이버를 통합적으로 업데이트할 수 있도록 하여 시스템 개발자에게 효율적인 유지 보수 환경을 제공할 수 있는 이점이 있다.
도 1은 본 발명의 일 실시 예에 따른 동적 소프트웨어 업데이트가 가능한 시스템의 블록도이다.
도 2는 도 1의 시스템이 가열 시스템인 경우의 예를 설명하기 위한 도면이다.
도 3은 도 1의 시스템의 동적 소프트웨어 업데이트의 동작 설명을 위한 흐름도이다.
도 4는 도 3의 DSU 소프트웨어 실행과 관련된 설명을 위한 도면이다.
도 5는 도 3의 장치 드라이버의 업데이트와 관련된 설명을 위한 도면이다.
도 6은 도 3의 응용 프로그램의 업데이트와 관련된 설명을 위한 도면이다.
이하에서는 첨부된 도면들을 참조하여 본 발명에 대해서 자세히 설명한다. 이때, 각각의 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타낸다. 또한, 이미 공지된 기능 및/또는 구성에 대한 상세한 설명은 생략한다. 이하에 개시된 내용은, 다양한 실시 예에 따른 동작을 이해하는데 필요한 부분이 중점적으로 설명하며, 그 설명의 요지를 흐릴 수 있는 요소들에 대한 설명은 생략한다.
또한 도면의 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시될 수 있다. 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니며, 따라서 각각의 도면에 그려진 구성요소들의 상대적인 크기나 간격에 의해 여기에 기재되는 내용들이 제한되는 것은 아니다.
도 1은 본 발명의 일 실시 예에 따른 동적 소프트웨어 업데이트(DSU, Dynamic Software Update)가 가능한 시스템(100)의 블록도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 시스템(100)은, 응용 프로그램부(110), 동적 업데이트 관리자(120), 장치 드라이버(130), 센서(140), 및 액추에이터(150)를 포함할 수 있다. 여기서 시스템의 운영 환경 유지를 위해 응용 프로그램부(110)가 애플리케이션을 수행하여 제어하는 디바이스로서 센서(140)와 액추에이터(150)를 예시하였으나 이에 한정되지 않으며 시스템의 운영 환경에 따라 하나의 디바이스 또는 더 많은 디바이스들을 시스템의 운영 목적에 이용할 수 있다.
본 발명의 일 실시 예에 따른 시스템(100)의 위와 같은 구성 요소들은 하드웨어, 소프트웨어, 또는 이들의 결합으로 구현될 수 있다. 더 나아가, 본 발명의 일 실시 예에 따른 시스템(100)의 위와 같은 구성 요소들은 하나 이상의 컴퓨터 또는 프로세서에 의해 실행되는 경우 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
도 1에서, 장치 드라이버(130)는 센서(140) 및 액추에이터(150)와 응용 프로그램부(110)(또는 응용 프로그램) 사이의 API(Application Program Interface)를 제공한다. 장치 드라이버(130)는 모듈 형태로 개발되어 동적으로 등록 및 삭제가 가능한 프로그램(이하 'DSU 드라이버'라 함)을 포함할 수 있다.
응용 프로그램부(110)는 동적 업데이트 관리자(120)의 제어에 따라 동적 업데이트 가능한 형태로 변환된 소프트웨어(이하 'DSU 소프트웨어'라 함)의 실행으로 생성된 프로세스 형태의 응용 프로그램을 포함한다.
센서(140)는 시스템의 운영 환경 유지를 위한 감지 정보를 획득하며, API를 통해 이를 수신하는 응용 프로그램부(110)는 메모리 등 저장 수단에 저장된 해당 응용 프로그램에 따라 센서(140)의 감지 정보에 대한 해당 애플리케이션을 수행함으로써 시스템의 운영 환경이 미리 설정된 환경으로 유지되도록 제어한다.
응용 프로그램부(110)의 제어 명령을 API를 통해 전달받는 액추에이터(150)는, 해당 명령에 따라 동작하여 시스템의 운영 환경에 반영한다.
동적 업데이트 관리자(120)는 하기와 같이 본 발명에서 제안하는 응용 프로그램부(110)의 동적 소프트웨어 업데이트(DSU)를 위한 총괄적인 제어를 수행한다. 즉, 동적 업데이트 관리자(120)는 하기와 같이 개발자의 업데이트 요청 등에 따라 응용 프로그램부(110)에 포함된 이전 버전의 응용 프로그램과 장치 드라이버(130)에 포함된 이전 버전의 DSU 드라이버에 대한 새 버전으로의 업데이트의 통합적 제어를 수행한다.
도 2는 도 1의 시스템(100)이 가열 시스템인 경우의 예를 설명하기 위한 도면이다.
도 2와 같이, 시스템(100)은 센서(140)로서 온도 센서와 가열 도구를 제어할 수 있는 액추에이터(150)를 이용하여 수조에 담긴의 물의 온도를 감지하고 가열하여 물의 온도 변화에 따라 일정 온도로 유지시키는 기계 장치인 경우를 예로 들어 설명한다.
예를 들어, 응용 프로그램부(110)는 물의 온도가 90도 아래로 내려갈 경우 API를 통해 액추에이터(150)를 제어하여 가열 도구를 가동하고, 물의 온도가 95도를 초과할 경우 API를 통해 액추에이터(150)를 제어하여 가열 도구에 의한 가열을 중지하여 물의 온도가 항상 90도에서 95도 사이에 유지되도록 애플리케이션을 수행할 수 있다.
이때, 응용 프로그램부(110)의 응용 프로그램을 업데이트하여, 수조에 담긴 물에 염분이 추가된 경우에(운영 환경의 변화), 물의 온도를 95도에서 100도로 유지해야 하고, 물의 온도가 1분 이상 95도 아래에 머물 경우 API를 통한 액추에이터(150)의 제어에 따라 가열 도구의 출력을 2배로 올리고, 이와 같은 환경 및 제어 상태에 대하여 관리자에게 알리는 기능이 추가되어야 한다고 가정한다.
이러한 경우, 응용 프로그램부(110)의 응용 프로그램의 업데이트(예, 온도 범위 조정, 관리자 알림 등)와 장치 드라이버(130)의 DSU 드라이버의 업데이트(예, 가열 도구의 출력 전류의 임계값 확대 등)가 동시에 이루어져야 한다.
본 발명에서는 이와 같은 시스템(100)이 관리자 등 사용자가 접근하기 어려운 지역(예, 원자로 등)에 설치되어 있거나, 위와 같은 업데이트를 적용해야 하는 동일 시스템 수가 충분히 많은 경우에, 하기하는 바와 같이 본 발명의 시스템(100)의 동적 소프트웨어 업데이트 방법에 따라, 응용 프로그램부(110)의 응용 프로그램과 장치 드라이버(130)의 DSU 드라이버의 업데이트를 시스템 중단이나 재시작 없이 원격에서도 통합적으로 수행함으로써 효율적으로 업데이트가 진행되며 시스템 개발자에게 편리하게 유지 보수할 수 있는 환경을 제공할 수 있도록 하였다.
이를 위하여, 하기하는 바와 같이 본 발명의 동적 업데이트 관리자(120)는 시스템 차원에서 응용 프로그램부(110)의 응용 프로그램과 장치 드라이버(130)의 DSU 드라이버의 업데이트를 통합적으로 처리하기 위하여, (1) DSU 소프트웨어의 실행과 업데이트 명령의 기능을 가지며, (2) DSU 소프트웨어와 DSU 드라이버간의 호출 관계에 대한 관리 리스트를 가지고, (3) 쉐도우 드라이버(121)의 생성과 소멸을 관리하며, (4) 응용 프로그램과 DSU 드라이버의 업데이트에 관한 전반적인 과정을 제어하고 관리한다.
이하 도 3의 흐름도를 참조하여 본 발명의 일 실시 예에 따른 시스템(100)의 동적 소프트웨어 업데이트의 동작을 좀 더 자세히 설명한다.
먼저, 동적 업데이트 관리자(120)의 제어에 따라 파일 시스템을 통해 운영 환경에 배포된 DSU 소프트웨어(예, 최초 버전(또는 이전 버전)인 ver1)가 실행된다(S110). 동적 업데이트 관리자(120)는 DSU 소프트웨어를 실행하기 위한 명령(dsu-run)과 DSU 소프트웨어를 새로운 버전의 DSU 소프트웨어로 업데이트하기 위한 명령(dsu-update)를 가지며, 먼저 도 4와 같이, 동적 업데이트 관리자(120)는 실행 명령(dsu-run)으로 배포된 DSU 소프트웨어을 실행하여 응용 프로그램부(110)가 해당 프로세스 형태의 응용 프로그램에 따른 애플리케이션을 수행하도록 제어할 수 있다.
다음에, 위와 같은 애플리케이션이 수행되는 시스템(100) 운영 환경에서 파일 시스템을 통하여 새 버전(ver2)의 DSU 소프트웨어를 전송 받고 개발자 또는 파일 시스템을 통하여 업데이트 요청을 수신하면(S120), 동적 업데이트 관리자(120)는 해당 DSU 소프트웨어와 연계된 DSU 드라이버가 존재하는지 여부를 소정의 관리 리스트를 통해 조회한다(S130). 소정의 관리 리스트에 새 버전(ver2)의 DSU 소프트웨어와 연계된 DSU 드라이버가 존재하면, 동적 업데이트 관리자(120)는 가지고 있는 해당 DSU 드라이버가 최신 버전인지 여부를 저장된 해당 관련 정보를 통해 조회할 수 있다(S140). 위와 같은 동적 업데이트 관리자(120)의 관리 리스트에는 보유하고 있는 DSU 소프트웨어별 해당 DSU 드라이버의 존재 여부, 버전 정보 등 관련정보, 및 쉐도우(shadow) 드라이버 등이 저장 관리될 수 있다.
이와 같은 조회에 따라 관리 리스트에 존재하는, 새 버전(ver2)의 DSU 소프트웨어와 연동되는 DSU 드라이버가 최신 버전(ver2)으로 존재하고 있다면, 동적 업데이트 관리자(120)는 최신 버전(ver2)의 DSU 드라이버와 연동을 위해 가지고 있는 해당 쉐도우(shadow) 드라이버를 실행하고(S150), 이전 버전(ver1)의 DSU 소프트웨어에 따른 애플리케이션과 쉐도우 드라이버를 연동시킨다(S170).
이 후 동적 업데이트 관리자(120)는 이전 버전(ver1)의 DSU 드라이버를 메모리 등 저장 수단에서 제거하고(S180), 새 버전인 해당 최신 버전(ver2)의 DSU 드라이버를 메모리 등 저장 수단에 적재하여 업데이트한다(S190).
S140 단계에서 조회된 새 버전(ver2)의 DSU 소프트웨어와 연동할 DSU 드라이버가 최신 버전(ver2)이 아니라면, 동적 업데이트 관리자(120)는 도 5와 같이 파일 시스템에 요청하여 새 버전인 해당 최신 버전(ver2)의 DSU 드라이버와 쉐도우 드라이버(121)를 수신하여 위 과정(S150, S170~S190)을 진행한다(S160).
즉, 응용 프로그램부(110)가 업데이트 대상인 이전 버전의 DSU 드라이버를 사용(도 5의 '사용' 참조) 중일 때, 동적 업데이트 관리자(120)는 파일 시스템으로부터 수신한 최신 버전(ver2)의 DSU 드라이버와 연동을 위해 해당 쉐도우 드라이버(121)를 실행하고(S150), 이전 버전(ver1)의 DSU 소프트웨어에 따른 애플리케이션과 쉐도우 드라이버를 연동시켜 임시 응용 프로그램부(110)의 디바이스(센서(140), 액추에이터(150) 등) 호출 명령이 해당 디바이스 대신 쉐도우 드라이버(121)로 전환(도 5의'임시 전환' 참조)되도록 한다(S170).
쉐도우 드라이버(121)는 응용 프로그램부(110)의 디바이스 호출 명령 시 소프트웨어가 블로킹(blocking)되지 않도록 소정의 값을 제공하는 역할을 담당한다. 예를 들어, 업데이트 대상이 DSU 드라이버의 센서(140)에 대한 설정인 경우 쉐도우 드라이버(121)는 이전 버전(ver1)인 원본 드라이버가 제공하던 최근 값이나 중립 값 또는 사전에 정의된 다른 값을 제공할 수 있다. 마찬가지로 업데이트 대상이 DSU 드라이버의 액추에이터(150)에 대한 설정인 경우 쉐도우 드라이버(121)는 이전 버전(ver1)인 원본 드라이버가 제공하던 최근 값이나 중립 값(예, 상한과 하한의 중간값) 또는 사전에 정의된 다른 값을 제공할 수 있다.
이와 같이 응용 프로그램부(110)의 디바이스 호출 명령이 쉐도우 드라이버(121)로 전환되어 있는 동안, 동적 업데이트 관리자(120)는 이전 버전의 DSU 드라이버를 메모리 등 저장 수단에서 제거하고(S180), 새로운 버전(ver2)의 DSU 드라이버를 메모리 등 저장 수단에 적재하여 업데이트(도 5의 '업데이트' 참조)한다(S190). 새로운 버전(ver2)의 DSU 드라이버가 업데이트되면 응용 프로그램부(110)의 디바이스 호출 명령에 따라 새로운 버전(ver2)의 DSU 드라이버를 통해 센서(140), 액추에이터(150) 등 디바이스 호출이 이루어지고 제어되도록 전환(도 5의 '전환'참조)된다.
위와 같이 DSU 소프트웨어의 업데이트 전에 새 버전(ver2)의 DSU 소프트웨어와 연동되는 새 버전(ver2)의 DSU 드라이버가 준비되면(S130~S190), 동적 업데이트 관리자(120)는 도 6과 같이 DSU 소프트웨어 업데이트 명령(dsu-update)을 수행하여 응용 프로그램부(110)가 새 버전(ver2)의 DSU 소프트웨어에 대한 응용 프로그램으로 업데이트되도록 제어할 수 있다(S200). 새 버전(ver2)의 DSU 소프트웨어가 동적 업데이트 관리자(120)의 제어에 따라 실행되면, 응용 프로그램부(110)가 해당 응용 프로그램에 따른 새로운 애플리케이션과 최신 버전(ver2)의 DSU 드라이버에 따라 시스템(100)의 환경을 그에 맞게 유지 시킬 수 있게 된다(S210).
S200 단계에서의 DSU 소프트웨어 업데이트에 대하여 도 6을 참조하여 좀더 자세히 설명한다.
시스템(100) 운영 중 요구사항이 발생하여 개발자가 새로 제작한 새 버전(ver2)의 DSU 소프트웨어가 시스템의 파일시스템에 저장되어 동적 업데이트 관리자(120)로 전송되고, 위와 같이 DSU 소프트웨어의 업데이트 전에 새 버전(ver2)의 DSU 소프트웨어와 연동되는 새 버전(ver2)의 DSU 드라이버가 준비되면(S130~S190), 동적 업데이트 관리자(120)는 DSU 소프트웨어 업데이트 명령(dsu-update)을 내린다. 이에 따라 응용 프로그램부(110)는 이전 버전(ver1)의 업데이트 대상 응용 프로그램(111)에 따른 애플리케이션의 호출 관련 각종 변수가 저장된 스택(stack) 영역의 데이터를 동적 업데이트 관리자(120)에 임시 저장(도 6의 '저장'참조)하고 이전 버전(ver1)의 업데이트 대상 응용 프로그램(111)를 소멸(제거)시킨다.
이와 같이 이전 버전(ver1)의 업데이트 대상 응용 프로그램(111)이 소멸되면, 동적 업데이트 관리자(120)는 새 버전(ver2)의 DSU 소프트웨(112)의 실행(도 6의 '실행'참조)으로 프로세스 형태의 새 버전(ver2)의 응용 프로그램을 생성하여 응용 프로그램부(110)에 저장하며 응용 프로그램부(110)가 이에 따라 해당 어플리케이션을 수행하도록 제어한다. 이 후 동적 업데이트 관리자(120)는 임시 저장된 스택(stack) 영역의 데이터를 새 버전(ver2)의 DSU 소프트웨에 따른 애플리케이션의 스택에 복원(도 6의 '복원'참조)시켜 저장한다.
상술한 바와 같이 본 발명의 일 실시예에 따른 시스템(100)이 관리자 등 사용자가 접근하기 어려운 지역(예, 원자로 등)에 설치되어 있거나, 위와 같은 업데이트를 적용해야 하는 동일 시스템 수가 충분히 많은 경우에, 큰 효과가 있다. 즉, 본 발명의 시스템(100)의 동적 소프트웨어 업데이트 방법에 따라, 응용 프로그램과 DSU 드라이버의 업데이트를 시스템 운영의 중단이나 재시작 없이 통합적으로 원격에서도 수행할 수 있으며, 이에 따라 효율적으로 업데이트가 진행되며 시스템 개발자에게 편리하게 유지 보수할 수 있는 환경을 제공할 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
응용 프로그램부(110)
동적 업데이트 관리자(120)
장치 드라이버(130)
센서(140)
액추에이터(150)

Claims (16)

  1. 동적 업데이트 관리자에서 이전 버전의 DSU 소프트웨어를 실행하여 생성된 이전 버전의 응용 프로그램에 따라 시스템 운영을 위한 애플리케이션을 수행하는 단계; 및
    업데이트 요청에 따라, 상기 동적 업데이트 관리자에서, 상기 이전 버전의 응용 프로그램 및 디바이스와 상기 응용 프로그램 사이의 인터페이스를 위한 장치 드라이버의 이전 버전의 DSU 드라이버에 대한 새 버전으로의 업데이트를 통합적으로 수행하는 단계
    를 포함하는 것을 특징으로 하는 시스템 업데이트 방법.
  2. 제1항에 있어서,
    통합적으로 수행하는 상기 업데이트는 상기 시스템 운영의 중단이나 재시작 없이 이루어지는 것을 특징으로 하는 시스템 업데이트 방법.
  3. 제1항에 있어서,
    상기 업데이트를 통합적으로 수행하는 단계는,
    (a) 파일 시스템으로부터 전송받은 새 버전의 DSU 소프트웨어와 연계된 해당 새 버전의 DSU 드라이버에 대한 업데이트를 수행하는 단계; 및
    (b) 상기 동적 업데이트 관리자에서 상기 새 버전의 DSU 소프트웨어에 대한 업데이트 명령을 수행하여 상기 이전 버전의 응용 프로그램을 새 버전의 응용 프로그램으로 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 시스템 업데이트 방법.
  4. 제3항에 있어서,
    상기 (a) 단계는,
    상기 동적 업데이트 관리자가 상기 새 버전의 DSU 드라이버와 해당 쉐도우드라이버를 이미 가지고 있는 경우, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시키는 단계
    를 포함하는 것을 특징으로 하는 시스템 업데이트 방법.
  5. 제3항에 있어서,
    상기 (a) 단계는,
    상기 동적 업데이트 관리자가 상기 파일 시스템에 요청하여 상기 새 버전의 DSU 드라이버와 해당 쉐도우 드라이버를 수신하고, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시키는 단계
    를 포함하는 것을 특징으로 하는 시스템 업데이트 방법.
  6. 제4항 또는 제5항에 있어서,
    상기 쉐도우 드라이버는 상기 응용 프로그램에 따른 상기 디바이스의 호출 명령 시에 상기 이전 버전의 DSU 드라이버에서 제공하였던 최근 값이나 중립 값, 또는 사전에 정의된 다른 값을 제공하는 것을 특징으로 하는 시스템 업데이트 방법.
  7. 제4항 또는 제5항에 있어서,
    상기 (a) 단계는,
    상기 디바이스의 호출 명령이 상기 쉐도우 드라이버로 전환되어 있는 동안, 상기 동적 업데이트 관리자가 저장 수단에서 상기 이전 버전의 DSU 드라이버를 제거하고 상기 새 버전의 DSU 드라이버를 적재하여 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 시스템 업데이트 방법.
  8. 제3항에 있어서,
    상기 (b) 단계는,
    상기 업데이트 명령에 따라 상기 이전 버전의 응용 프로그램에 따른 애플리케이션의 스택 영역의 데이터를 상기 동적 업데이트 관리자에 임시 저장시키는 단계; 및
    상기 새 버전의 DSU 소프트웨어를 실행하여 생성한 상기 새 버전의 응용 프로그램에 따른 해당 애플리케이션의 스택에 상기 스택 영역의 데이터를 복원시켜 저장하는 단계
    를 포함하는 것을 특징으로 하는 시스템 업데이트 방법.
  9. 동적 소프트웨어 업데이트(DSU)에 의해 운용되는 시스템에 있어서,
    이전 버전의 응용 프로그램을 포함하는 응용 프로그램부;
    하나 이상의 디바이스와 상기 응용 프로그램부 사이의 인터페이스를 위한 장치 드라이버; 및
    상기 응용 프로그램부에서 이전 버전의 DSU 소프트웨어를 실행하여 생성한 상기 이전 버전의 응용 프로그램에 따라 시스템 운영을 위한 애플리케이션을 수행하도록 제어하는 동적 업데이트 관리자를 포함하고,
    상기 동적 업데이트 관리자는, 업데이트 요청에 따라, 상기 이전 버전의 응용 프로그램 및 상기 이전 버전의 DSU 드라이버에 대한 새 버전으로의 업데이트의 통합적 제어를 수행하는 것을 특징으로 하는 시스템.
  10. 제9항에 있어서,
    상기 동적 업데이트 관리자는, 상기 시스템 운영의 중단이나 재시작 없이 상기 새 버전으로의 통합적인 상기 업데이트를 수행하는 것을 특징으로 하는 시스템.
  11. 제9항에 있어서,
    상기 동적 업데이트 관리자는,
    파일 시스템으로부터 전송받은 새 버전의 DSU 소프트웨어와 연계된 해당 새 버전의 DSU 드라이버에 대한 업데이트를 수행한 후, 상기 새 버전의 DSU 소프트웨어에 대한 업데이트 명령을 수행하여 상기 이전 버전의 응용 프로그램을 새 버전의 응용 프로그램으로 업데이트하는 것을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 동적 업데이트 관리자는,
    상기 새 버전의 DSU 드라이버에 대한 업데이트를 위해, 상기 새 버전의 DSU 드라이버와 해당 쉐도우 드라이버를 이미 가지고 있는 경우, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시키는 것을 특징으로 하는 시스템.
  13. 제11항에 있어서,
    상기 동적 업데이트 관리자는,
    상기 새 버전의 DSU 드라이버에 대한 업데이트를 위해, 상기 파일 시스템에 요청하여 상기 새 버전의 DSU 드라이버와 해당 쉐도우 드라이버를 수신하고, 상기 쉐도우 드라이버를 실행하여 상기 이전 버전의 응용 프로그램에 따른 애플리케이션과 상기 쉐도우 드라이버를 연동시키는 것을 특징으로 하는 시스템.
  14. 제12항 또는 제13항에 있어서,
    상기 쉐도우 드라이버는 상기 응용 프로그램부에서 상기 디바이스의 호출 명령 시에 상기 이전 버전의 DSU 드라이버에서 제공하였던 최근 값이나 중립 값, 또는 사전에 정의된 다른 값을 제공하는 것을 특징으로 하는 시스템.
  15. 제12항 또는 제13항에 있어서,
    상기 동적 업데이트 관리자는,
    상기 디바이스의 호출 명령이 상기 쉐도우 드라이버로 전환되어 있는 동안, 저장 수단에서 상기 이전 버전의 DSU 드라이버를 제거하고 상기 새 버전의 DSU 드라이버를 적재하여 업데이트하는 것을 특징으로 하는 시스템.
  16. 제11항에 있어서,
    상기 새 버전의 응용 프로그램으로 업데이트를 위해, 상기 업데이트 명령에 따라 상기 응용 프로그램부가 상기 이전 버전의 응용 프로그램에 따른 애플리케이션의 스택 영역의 데이터를 상기 동적 업데이트 관리자에 임시 저장하며,
    상기 동적 업데이트 관리자는, 상기 새 버전의 DSU 소프트웨어를 실행하여 생성한 상기 새 버전의 응용 프로그램에 따른 해당 애플리케이션의 스택에 상기 스택 영역의 데이터를 복원시켜 저장하는 것을 특징으로 하는 시스템.
KR1020140024169A 2014-02-28 2014-02-28 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템 KR20150102376A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140024169A KR20150102376A (ko) 2014-02-28 2014-02-28 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템
US14/616,446 US20150248285A1 (en) 2014-02-28 2015-02-06 Method for adapting changes of operation environment and supporting upgrade and evolution of system and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140024169A KR20150102376A (ko) 2014-02-28 2014-02-28 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR20150102376A true KR20150102376A (ko) 2015-09-07

Family

ID=54006804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140024169A KR20150102376A (ko) 2014-02-28 2014-02-28 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템

Country Status (2)

Country Link
US (1) US20150248285A1 (ko)
KR (1) KR20150102376A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678685B1 (en) * 2016-03-18 2017-06-13 Storagecraft Technology Corporation Live updating of a changed block tracking driver
US10430208B2 (en) * 2017-05-02 2019-10-01 Huawei Technologies Co., Ltd. Multi-version asynchronous dynamic software update system and method for applications with multiple threads
US10831394B2 (en) 2018-08-27 2020-11-10 International Business Machines Corporation Live upgrade of storage device driver using shim application

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US7305672B2 (en) * 2004-01-06 2007-12-04 International Business Machines Corporation Dynamic software update system, method and program product
US8056072B2 (en) * 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
US9189225B2 (en) * 2012-10-16 2015-11-17 Imprivata, Inc. Secure, non-disruptive firmware updating
US8997047B2 (en) * 2012-12-13 2015-03-31 International Business Machines Corporation Dynamically updating code without requiring processes to restart

Also Published As

Publication number Publication date
US20150248285A1 (en) 2015-09-03

Similar Documents

Publication Publication Date Title
US11108859B2 (en) Intelligent backup and recovery of cloud computing environment
US8875124B2 (en) In-band hypervisor-managed firmware updates
US7757226B2 (en) Method and mechanism for performing a rolling upgrade of distributed computer software
US20140259008A1 (en) Performing unattended software installation
JP5093259B2 (ja) Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
CN105468362A (zh) 应用部署方法和云计算系统
US10831616B2 (en) Resilient programming frameworks for iterative computations
CN102150105A (zh) 虚拟容器的部署和管理
WO2017179537A1 (ja) ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体
EP3751416A1 (en) Security protection method and apparatus
CN103369660A (zh) 网元数据同步方法和网元设备
US20120324436A1 (en) Method of updating versioned software using a shared cache
EP2805233B1 (en) Installation engine and package format for parallelizable, reliable installations
US11645086B2 (en) System and method for implementing a filesystem agent management solution
KR20150102376A (ko) 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템
CN116820493A (zh) 一种镜像文件部署方法、系统、设备及存储介质
US20140201434A1 (en) Managing Volatile File Copies
EP3591530A1 (en) Intelligent backup and recovery of cloud computing environment
CN105404522A (zh) 一种构建智能终端应用程序的方法、装置及智能终端
US11461461B2 (en) Systems and methods for managing and securing computer systems
JP2016173744A (ja) ブレードサーバ、ブレードシステム、bmc、チップセットおよびエンクロージャマネージャ
US9846476B1 (en) System and method of identifying the idle time for lab hardware thru automated system
US20110270802A1 (en) Method for controlling changes of replication directions in a multi-site disaster recovery environment for high available application
JP2015056175A (ja) 制御プログラム及び情報処理端末
KR101653925B1 (ko) 엔지니어링 장치, 엔지니어링 시스템 및 다운로드 처리 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid