KR102039593B1 - 서비스 관리를 위한 장치 및 방법 - Google Patents
서비스 관리를 위한 장치 및 방법 Download PDFInfo
- Publication number
- KR102039593B1 KR102039593B1 KR1020170153952A KR20170153952A KR102039593B1 KR 102039593 B1 KR102039593 B1 KR 102039593B1 KR 1020170153952 A KR1020170153952 A KR 1020170153952A KR 20170153952 A KR20170153952 A KR 20170153952A KR 102039593 B1 KR102039593 B1 KR 102039593B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- development environment
- application unit
- app
- development
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 기술을 개시하고 있다.
Description
본 발명은 PaaS(Platform as a Service) 기반으로 IPTV 서비스를 관리하는 기술에 관한 것으로, 보다 상세하게는 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안에 관한 것이다.
일반적인 IPTV 서비스를 제공하는 IPTV 플랫폼은, 물리 서버 기반으로 구현되어 있으며, 각 서버 별로 환경구성이 상이하여 애플리케이션(Application)의 업데이트나 신규 기능 추가에 많은 시간이 소요된다.
이에, 이러한 문제를 해소하기 위해 일부 IaaS(Infra as a Service)를 활용하여 하드웨어(예: CPU, Memory, Disk)를 가상화하여 사용하고 있으나, 운영체계(Operating system)와 런타임(Runtime) 환경이 애플리케이션 별로 상이하여 개발 및 운용(이하, 개발처리과정)에 복잡도가 증가하는 문제가 있다.
즉, 기존 IaaS를 활용하여 하드웨어 일부만을 가상화하여 사용하거나, 물리 서버에서 애플리케이션을 운영하는 환경에서는, 다수의 서버에서 운용중인 애플리케이션을 관리(예: 테스트, 업데이트 및 롤백 등)하기 어려운 한계점이 존재한다.
따라서, 본 발명은, PaaS(Platform as a Service)에서 제공하는 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)를 기반으로 특정서비스와 관련된 애플리케이션이 개발되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안을 제안하고자 한다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안이 실현되도록 하는데 있다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 서비스관리장치는, 특정플랫폼 상에서 특정서비스와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어부; 및 상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어부를 포함하는 것을 특징으로 한다.
상기 응용단위앱은, 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되는 것을 특징으로 한다.
상기 생성제어부는, 상기 응용프로그램의 개수를 기반으로 상기 응용단위앱을 생성하는 것을 특징으로 한다.
상기 수행제어부는, 상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.
상기 수행제어부는, 상기 개발환경이 상기 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.
상기 수행제어부는, 상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.
상기 수행제어부는, 상기 개발환경이 상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.
상기 수행제어부는, 상기 개발환경이 상기 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 서비스관리장치의 동작 방법은, 특정플랫폼 상에서 특정서비스와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어단계; 및 상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어단계를 포함하는 것을 특징으로 한다.
상기 응용단위앱은, 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되는 것을 특징으로 한다.
상기 개발환경은, 상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과, 상기 애플리케이션의 부하증감을 관리하는 제2 개발환경과, 상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과, 상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과, 상기 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함하는 것을 특징으로 한다.
상기 수행제어부단계, 상기 개발환경이 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 단계; 상기 개발환경이 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 단계; 상기 개발환경이 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 단계; 상기 개발환경이 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 단계; 및 상기 개발환경이 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 단계 중 적어도 하나를 포함하는 것을 특징으로 한다.
이에, 본 발명에 따른 서비스 관리를 위한 장치 및 방법에 의하면, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있게 됨에 따라 서비스 중단 없이 다수의 서버에서 운용중인 애플리케이션을 관리, 즉 애플리케이션 업데이트, 신규 서비스 기능의 추가, 사용자반응 테스트, 및 부하에 따른 애플리케이션들의 자동 증감(scale out/in), 헤드엔드(Head-end)의 서비스변경결과 즉시 제공 등을 용이하게 수행할 수 있어 보다 유연한 서비스를 제공할 수 있는 효과를 도출한다.
도 1은 본 발명의 실시예에 따른 서비스관리장치가 적용되는 통신구조의 일례를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 서비스관리장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 개발처리과정과 관련되는 다양한 예시를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 나타내는 순서도이다.
도 2는 본 발명의 실시예에 따른 서비스관리장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 개발처리과정과 관련되는 다양한 예시를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 나타내는 순서도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 명세서의 실시예에 대하여 설명한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
도 1은 본 발명의 실시예에 따른 서비스관리장치가 적용되는 통신구조를 보여주고 있다.
도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은, 클라우드(Cloud) 기술 중 PaaS(Platform as a Service)(이하, 특정플랫폼) 기반으로 IPTV 서비스를 관리(제공)하기 위한 시스템 환경일 수 있으며, 개발자단말(100), 사용자단말(200) 및 서비스관리장치(300)를 포함하는 구성을 가질 수 있다.
개발자단말(100)은, IPTV 서비스를 제공하기 위해 특정플랫폼(PaaS) 상에서 특정서비스(예: VoD)와 관련된 애플리케이션이 생성될 수 있도록, 애플리케이션과 관련되는 개발결과정보를 생성하는 단말일 수 있다.
여기서, 특정플랫폼(PaaS)은, 특정서비스(예: VoD)와 관련된 애플리케이션 생성을 위해 서비스관리장치(300)가 개발자에게만 전용으로 제공하는 OS기반 개발전용 가상환경일 수 있다. 이러한, 특정플랫폼(PaaS)을 통해 특정서비스(예: VoD)와 관련된 애플리케이션 생성뿐만 아니라 테스트, 배포, 운영, 장애관리 등과 같은 전반적인 개발처리과정이 지원될 수 있다.
이에, 개발자단말(100)에는, 전반적인 개발과정을 운영할 수 있도록 특정플랫폼(PaaS)과 관련되는 클라이언트 툴(예: PaaS Client Tool, 이하, PaaS툴)이 탑재되는 것이 바람직할 것이다.
사용자단말(200)은, 서비스관리장치(300)와 유선 또는 무선으로 연동하여 특정서비스(예: VoD)를 이용하는 고객의 단말일 수 있으며, 예컨대 스마트폰, 태블릿 PC, PDA, 및 노트북, 셋탑박스 등과 같이 서비스관리장치(300)와 연동하여 IPTV 서비스를 제공할 수 있는 장치는 모두 포함될 수 있을 것이다.
서비스관리장치(300)는, 개발자가 특정서비스(예: VoD)와 관련된 애플리케이션을 생성할 수 있도록 특정플랫폼(PaaS)을 제공하는 한편, IPTV 서비스를 이용하는 사용자에게 특정서비스(예: VoD)와 관련된 애플리케이션에 해당하는 컨텐츠가 제공되도록 전반적인 시스템 운영을 제어하는 장치로서, 특히 본 발명에서 제공하고자 하는 서비스 즉 특정서비스(예: VoD)와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 특정플랫폼(PaaS) 기반의 응용단위앱을 통한 IPTV 서비스 관리 기술이 실현되도록 하는 장치이다.
이와 관련하여, 도 2에는 본 발명의 서비스관리장치(300)의 구성이 보다 구체적으로 도시되어 있다.
도 1 및 도 2를 참고하면, 본 발명의 서비스관리장치(300)는, 특정플랫폼(PaaS) 상에서 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어부(310), 및 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어부(320)를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 서비스관리장치(300)는, 특정플랫폼(PaaS) 기반의 응용단위앱을 통한 IPTV 서비스가 제공되도록 하기 위해 생성/송수신되는 모든 정보(예: 응용단위앱, 마이크로서비스, 개발처리결과 등)를 저장하는 저장부(330)를 더 포함한다.
이상의 생성제어부(310), 수행제어부(320) 및 저장부(330)를 포함하는 서비스관리장치(300)의 구성 전체 내지는 적어도 일부는, 프로세서에 의해 실행되는 소프트웨어 모듈 형태 또는 하드웨어 모듈 형태로 구현되거나, 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.
결국, 본 발명의 실시예에 따른 서비스관리장치(300)는, 특정플랫폼(PaaS)에서 제공하는 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)를 기반으로 특정서비스와 관련된 애플리케이션이 개발되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는데, 이하에서는 이를 위한 서비스관리장치(300) 내 각 구성에 대해 구체적으로 설명하기로 한다.
생성제어부(310)는, 특정플랫폼(PaaS) 상에서 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어한다.
보다 구체적으로, 생성제어부(310)는, 개발자단말(100)로부터 특정서비스(예: VoD)와 관련된 애플리케이션 생성을 위한 개발결과정보가 수신되면, 개발결과정보에는 애플리케이션과 관련되는 다수의 응용프로그램이 포함되어 있을 것이므로, 개발결과정보로부터 다수의 응용프로그램을 확인할 수 있게 된다.
이후, 생성제어부(310)는, 개발결과정보의 다수의 응용프로그램을 특정플랫폼(PaaS)에서 응용 프로그램이 구동되는 단위인 컨테이너(container)에 대응되도록 분리하여 응용단위앱이 생성되도록 제어한다.
즉, 생성제어부(310)는, 응용프로그램의 개수를 기반으로 응용단위앱을 생성한다. 예를 들어, 개발결과정보에 포함된 응용프로그램의 개수가 3개이면, 생성제어부(310)는, 응용프로그램의 개수(3)만큼의 응용단위앱을 생성하게 된다. 물론, 이와 달리, 응용프로그램의 조합이나, 운영자의 설정에 따라 응용단위앱의 생성이 달라질 수도 있음은 물론이다.
결국, 응용단위앱은, 특정서비스(예: VoD)의 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 컨테이너(container) 상에 생성된다. 즉, 컨테이너(container) 별로 서로 다른 응용프로그램이 탑재되어 독립적인 응용단위앱으로 동작하게 된다.
이처럼 컨테이너(container) 상에 응용단위앱이 구현될 수 있도록 하기 위해서는, 운영체계(Operating system)와 런타임(Runtime) 환경 등이 IaaS(Infra as a Service) 상에 구비되어야 하며, 이에 기존과 달리 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)이 제거될 수 있어 응용단위앱의 독립성을 보장할 수 있게 되는 것이다.
전술에 따라 응용단위앱의 독립성이 보장되게 되면, 개발환경이 상이하더라도 최적화된 개발처리과정을 수행할 수 있게 되는데, 보다 구체적인 내용은 수행제어부(320)의 설명에서 상세히 다루도록 하겠다.
수행제어부(320)는, 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어한다.
보다 구체적으로, 수행제어부(320)는, 생성제어부(310)로부터 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되면, 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어한다.
여기서, 응용단위앱이 적용된 개발환경은, 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과, 애플리케이션의 부하증감을 관리하는 제2 개발환경과, 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과, 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과, 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함할 수 있다.
먼저, 개발환경이 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우에 대한 제1 개발처리과정에 대하여 설명하도록 하겠다.
수행제어부(320)는, 개발환경이 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우, 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어한다.
이와 관련하여, 도 3의 (a,b)에는 기존 IPTV 서비스를 제공하는 아키텍처와, 본 발명의 IPTV 서비스를 제공하는 아키텍처의 일례가 도시되어 있다.
도 3의 (a)에 도시된 바와 같이, 기존에는 IPTV 서비스를 위한 특정서비스(예: VoD)와 관련된 애플리케이션이 모놀리틱 구조에서 처리되었으므로, 서비스(Service)에서 스토리지(Storage)까지 하나의 아키텍쳐에서 실행되게 된다.
이에, 하나의 WAS(Web Application Server)에 존재하는 기능들이 서로 영향을 미치게 되어, 애플리케이션 단위로의 소프트웨어 업데이트(Software update) 및 신규 애플리케이션 생성이 어려운 한계점이 존재했다.
이러한 문제를 해소하기 위해, 본 발명에서는 전술에서 언급한 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)을 제어하여 독립성이 보장되도록 한 컨테이너(container) 상에 서로 다른 응용프로그램이 탑재되어 응용단위앱이 생성되도록 하고, 생성된 응용단위앱을 기반으로 특정서비스(예: VoD)의 애플리케이션이 제공되도록 한다.
즉, 도 3의 (b)에 도시된 바와 같이, 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스(Micro Service, MS)를 제공할 수 있도록 하여, 기존 모놀리틱 구조와 달리 응용단위앱의 업데이트 및 신규 생성이 가능하도록 하였다.
이에, 응용단위앱에 대응하는 마이크로서비스(MS)들은 서로간의 통신을 정해진 API(application programming interface)를 통해서 수행하게 되므로, 각각 마이크로서비스(MS)의 내부 업데이트 시에도 마이크로서비스(MS) 간의 통신에는 영향을 주지 않고 특정 기능에 해당하는 마이크로서비스를 제공하는 제1 개발처리과정을 수행할 수 있게 되는 것이다.
다음으로, 개발환경이 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우에 대한 제2 개발처리과정에 대하여 설명하도록 하겠다.
수행제어부(320)는, 개발환경이 특정서비스(예: VoD)와 관련된 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우, 부하증가 시에는 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어한다.
이와 관련하여, 전술에서 언급한 도 3의 (a,b)를 참고하여 살펴보면, 특정서비스(예: VoD)를 이용하는 가입자가 증가하거나, 사용량 증대로 인해 운영중인 특정서비스(예: VoD)의 애플리케이션들의 부하가 증가할 수 있다.
이러한 경우에는 서비스의 안정성을 위하여 애플리케이션을 증설(scale out)시켜야 한다. 반대로, 서비스의 안정화된 경우에는 애플리케이션을 감축(scale in)시키는 과정을 수행해야 한다.
보다 구체적으로 살펴보면, 도 3의 (a)에 도시된 바와 같이, 기존에는 애플리케이션의 증설(Scale out)시 6단계 이상의 작업이 필요한 구조로 많은 시간이 소비되었다.
즉, 애플리케이션의 증설(Scale out)을 위해서는, 인프라(예: 서버, 스토리지)를 준비해야 하는 1단계, 네트워크를 구성해야 하는 2단계, OS를 설치해야 하는 3단계, 런타임 환경을 구성해야 하는 4단계, 애플리케이션을 설치해야 하는 5단계 및 로더밸런서(Load balancer)와 데이터베이스(DB)와 연결해야 하는 6단계 이상의 관련 작업이 요구된다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (b)에 도시된 바와 같이, 전술에서 언급한 응용단위앱의 독립성을 기반으로 애플리케이션을 증설(Scale out)하도록 하였으며, 이에 앞서 언급한 1-6단계가 별도로 준비되지 않더라도 클라우드 환경에서 신규 응용단위앱이 바로 증설되도록 하는 제2 개발처리과정을 수행할 수 있게 된다.
결국, 본 발명의 실시예에서는 특정서비스(예: VoD)와 관련된 애플리케이션의 접속량이 많아져 갑작스럽게 부하가 증가하게 될 경우에도 자동으로 새로운 신규 응용단위앱이 증설되어 신속하게 대응할 수 있게 되므로, 보다 안정적인 IPTV 서비스를 제공할 수 있게 된다.
한편, 제2 개발처리과정에는 부하가 감소되었을 때, 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 과정이 포함되는 것이 바람직할 것이다.
다음으로, 개발환경이 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우에 대한 제3 개발처리과정에 대하여 설명하도록 하겠다.
수행제어부(320)는, 개발환경이 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우, 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행이 수행되도록 제어한다.
이와 관련하여, 도 3의 (c,d)에는 기존 애플리케이션을 업데이트 하는 방안과, 본 발명의 애플리케이션을 업데이트 하는 방안의 일례가 도시되어 있다.
도 3의 (c,d)를 기반으로 본 발명의 애플리케이션을 업데이트 하는 방안을 살펴보기에 앞서, 애플리케이션을 업데이트가 발생하게 되는 원인을 간략하게 살펴보면, 최근 IPTV 서비스는 컨텐츠에 대한 업데이트가 빈번하게 발생함에 따라 잦은 편성 변경으로 인해 UI 변경 역시 빈번하게 이루어지고 있다.
또한, 사전 예고된 이벤트성 컨텐츠가 송출되는(예: 사회적 빅이슈, 대통령선거 중계방송 등) 상황뿐만 아니라, 사전에 예고되지 않은 이벤트(예: 고객요청)가 돌발적으로 발생하는 상황 등이 증가됨에 따라 트래픽 변경이 빈번하게 발생되고 있다.
즉, IPTV 서비스는 변화가 심한 분야이며, 경쟁대응 및 기술 트렌드를 반영하기 위하여 업데이트를 필수적으로 수행해야만 한다. 그러나, 업데이트의 절차와 단계가 복잡하여 수시로 업데이트를 수행하지 못하는 실정이며, 단순히 정기적(예: 1년)인 업데이트만이 수행되고 있다.
보다 구체적으로 살펴보면, 도 3의 (c)에 도시된 바와 같이, 기존에는 개발을 위한 개발장치가 구비되는 환경(E1), 테스트를 위한 검증장치가 구비되는 환경(E2), 배포를 위한 상용장치가 구비되는 환경(E3)이 모두 물리적으로 분리되어 있다.
이에, 애플리케이션을 업데이트하기 위해서는 각 환경(E1, E2, E3) 별 애플리케이션 인프라(Application Infra; 예 서버, 스토리지)로 접속하여 애플리케이션을 수작업으로 순차적으로 매뉴얼 백업한 후 업데이트 하여야만 하는 번거로움이 존재한다.
또한, 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치의 시스템 환경과 운영환경이 모두 상이하기 때문에 환경의 차이로 인한 애플리케이션의 동작 차이가 존재하며, 이에 운영자는 작업 일정 협의 등의 절차를 거쳐야만 하는 애플리케이션을 업데이트하게 되는 한계점이 존재한다.
나아가, 애플리케이션의 업데이트를 원복할 때에도 각각의 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치에 접속하여 작업해야 하므로 업데이트 및 원복 시마다 불필요한 시간을 낭비되는 한계점 역시 존재한다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (d)에 도시된 바와 같이, 특정플랫폼(PaaS) 상에 개발장치, 검증장치, 상용장치가 모두 구비되도록 구현하여, 개발자가 물리적 이동 및 개별 장치(개발, 검증, 상용) 별로 접속할 필요 없이, 특정플랫폼(PaaS)을 기반으로 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 한다.
다음으로, 개발환경이 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우에 대한 제4 개발처리과정에 대하여 설명하도록 하겠다.
수행제어부(320)는, 개발환경이 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우, 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어한다.
이와 관련하여, 도 3의 (e,f)에는 기존 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 방안과, 본 발명의 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 방안의 일례가 도시되어 있다.
도 3의 (e,f)를 기반으로 본 발명의 업데이트에 따른 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 방안을 살펴보기에 앞서, 테스트(예: A/B test)를 수행하는 배경을 살펴보면, 특정서비스(예: VoD)의 애플리케이션의 업데이트 시에는 시범적으로 일부 사용자(고객)에게 업데이트를 적용하여 사용자의 반응에 따라 업데이트 확대 여부를 결정한다.
이처럼 업데이트 확대 여부를 결정하게 되면 시행착오를 줄일 수 있으나, 일부 사용자(고객)에게만 시범적으로 업데이트를 적용해야 할 뿐만 아니라, 업데이트를 적용하는 절차가 복잡하여 테스트(예: A/B test)를 생략하고 단순 설문 조사 만으로 업데이트를 확정하여 진행하는 경우가 빈번하게 발생하게 된다.
보다 구체적으로 살펴보면, 도 3의 (e)에 도시된 바와 같이, 기존에는 특정서비스(예: VoD)와 관련된 애플리케이션 중 동일 기능을 하는 애플리케이션을 선택하여 업데이트한 후, 사용자A는 업데이트된 애플리케이션(410)에 접속되도록 하고, 사용자B는 기 이용되던 애플리케이션(420)에 접속되도록 하여 사용자A와 사용자B 간의 비교 테스트를 수행하였다.
이러한 기존 방식은, 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하고 관련 서버의 로그를 별도로 수집해야 하는 작업을 수행해야 하는데, 이를 위해서는 개발자/서버 운용자의 도움이 필수적으로 요구될 뿐만 아니라 작업 준비, 실행 및 로그 수집을 위한 많은 시간과 노력이 소비되는 문제가 발생한다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (f)에 도시된 바와 같이, 수행제어부(320)가 사용자(고객)를 구분할 수 있는 식별자를 인지할 수 있도록 하여, 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 연결(제공)되도록 한다.
예를 들어, 사용자A와 사용자B에게 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 경우, 수행제어부(320)는, 사용자(고객) 별 식별자를 구분하기만 한다면 식별자에 매칭된 사용자를 확인하여 사용자반응을 확인하려는 해당 응용단위앱을 사용자 별로 연결시킬 수 있다.
즉, 식별자1을 갖는 사용자A에게는 업데이트된 응용단위앱(500)이 연결되도록 하며, 식별자2를 갖는 사용자B에게는 기 이용되던 응용단위앱(510)이 연결되도록 한다.
이처럼 본 발명에서는 기존 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하지 않고도 플랫폼 단에서 소프트웨어적(s/w)적으로 사용자(고객) 별로 사용자반응을 확인하려는 해당 응용단위앱이 연결되도록 할 수 있다. 이에, 개발자/서버 운용자의 도움이 없이도 다양한 테스트가 수행되도록 하는 제4 개발처리과정이 수행되도록 제어할 수 있게 된다.
마지막으로, 개발환경이 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우에 대한 제5 개발처리과정에 대하여 설명하도록 하겠다.
수행제어부(320)는, 개발환경이 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우, 셋탑박스로부터 웹브라우져를 통해 서비스변경결과가 요청되면, 서비스변경결과가 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어한다.
이와 관련하여, 도 3의 (g,h)에는 기존 서비스변경결과를 사용자에게 제공하는 방안과, 본 발명의 서비스변경결과를 사용자에게 제공하는 방안의 일례가 도시되어 있다. 이하에서는 설명의 편의를 위해, 사용자(고객)가 이용하는 사용자단말(200)이 셋탑박스(200a)인 것으로 언급하여 설명하도록 하겠다.
도 3의 (e)에 도시된 바와 같이, IPTV 서비스의 대부분은 사용자(고객)의 셋탑박스를 통해서 이루어지는데, 헤드엔드(Head-end)에서 특정서비스(예: VoD)와 관련된 애플리케이션의 업데이트를 신속하게 수행하더라도, 셋탑박스(200a)에서 서비스 반영이 지연되면 결국 사용자(고객)에게 서비스 지연이 발생할 수 밖에 없다.
즉, 기존에는 셋탑박스(200a)에서 특정서비스(예: VoD)와 관련된 모든 애플리케이션을 탑재하고 있어, 애플리케이션의 업데이트를 수행해야 할 때에는 셋탑박스(200a)를 전반적으로 업데이트해야 했다. 이러한 셋탑박스(200a)가 수백 만대인 경우에는 업데이트하기까지 많은 시간과 노력이 소요되는 한계점이 존재한다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (h)에 도시된 바와 같이, 셋탑박스(200a)에는 웹(Web) 브라우져의 기능만이 탑재되도록 하고, 특정서비스(예: VoD)와 관련된 모든 애플리케이션은 헤드엔드(Head-end)에 구비되도록 구현한다.
이에, 셋탑박스(200a)는 웹브라우져를 통해 애플리케이션의 업데이트에 대한 수행결과를 요청하게 되며, 이러한 요청을 수신한 수행제어부(320)에서는 서비스변경결과가 셋탑박스(200a)로 전송되도록 하는 제5 개발처리과정을 수행할 수 있게 되는 것이다.
이하에서는, 도 4를 참조하여, 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 보다 구체적으로 설명하겠다. 도 5에서는 설명의 편의를 위해 전술의 도 1 내지 도 3에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
서비스관리장치(300)는, 개발자단말(100)로부터 특정서비스(예: VoD)와 관련된 애플리케이션 생성을 위한 개발결과정보가 수신되면, 개발결과정보로부터 다수의 응용프로그램을 확인한다(S100)
이후, 서비스관리장치(300)는, 개발결과정보의 다수의 응용프로그램을 특정플랫폼(PaaS)에서 응용 프로그램이 구동되는 단위인 컨테이너(container)에 대응되도록 분리하여 응용단위앱이 생성되도록 제어한다(S101)
즉, 서비스관리장치(300)는, 응용프로그램의 개수를 기반으로 응용단위앱을 생성한다. 예를 들어, 개발결과정보에 포함된 응용프로그램의 개수가 3개이면, 서비스관리장치(300)는, 응용프로그램의 개수(3)만큼의 응용단위앱을 생성하게 된다. 물론, 이와 달리, 응용프로그램의 조합이나, 운영자의 설정에 따라 응용단위앱의 생성이 달라질 수도 있음은 물론이다.
결국, 응용단위앱은, 특정서비스(예: VoD)의 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 컨테이너(container) 상에 생성된다. 즉, 컨테이너(container) 별로 서로 다른 응용프로그램이 탑재되어 독립적인 응용단위앱으로 동작하게 된다.
이처럼 컨테이너(container) 상에 응용단위앱이 구현될 수 있도록 하기 위해서는, 운영체계(Operating system)와 런타임(Runtime) 환경 등이 IaaS(Infra as a Service) 상에 구비되어야 하며, 이에 기존과 달리 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)이 제거될 수 있어 응용단위앱의 독립성을 보장할 수 있게 되는 것이다.
전술에 따라 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되면, 서비스관리장치(300)는, 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어한다(S102).
여기서, 응용단위앱이 적용된 개발환경은, 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과, 애플리케이션의 부하증감을 관리하는 제2 개발환경과, 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과, 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과, 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함할 수 있다.
먼저, 개발환경이 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우(S103의 YES), 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어한다(S104).
보다 구체적으로 설명하면, 도 3의 (a)에 도시된 바와 같이, 기존에는 IPTV 서비스를 위한 특정서비스(예: VoD)와 관련된 애플리케이션이 모놀리틱 구조에서 처리되었으므로, 서비스(Service)에서 스토리지(Storage)까지 하나의 아키텍쳐에서 실행되게 된다.
이에, 하나의 WAS(Web Application Server)에 존재하는 기능들이 서로 영향을 미치게 되어, 애플리케이션 단위로의 소프트웨어 업데이트(Software update) 및 신규 애플리케이션 생성이 어려운 한계점이 존재했다.
이러한 문제를 해소하기 위해, 본 발명에서는 전술에서 언급한 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)을 제어하여 독립성이 보장되도록 한 컨테이너(container) 상에 서로 다른 응용프로그램이 탑재되어 응용단위앱이 생성되도록 하고, 생성된 응용단위앱을 기반으로 특정서비스(예: VoD)의 애플리케이션이 제공되도록 한다.
즉, 도 3의 (b)에 도시된 바와 같이, 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스(Micro Service, MS)를 제공할 수 있도록 하여, 기존 모놀리틱 구조와 달리 응용단위앱의 업데이트 및 신규 생성이 가능하도록 하였다.
이에, 응용단위앱에 대응하는 마이크로서비스(MS)들은 서로간의 통신을 정해진 API(application programming interface)를 통해서 수행하게 되므로, 각각 마이크로서비스(MS)의 내부 업데이트 시에도 마이크로서비스(MS) 간의 통신에는 영향을 주지 않고 특정 기능에 해당하는 마이크로서비스를 제공하는 제1 개발처리과정을 수행할 수 있게 되는 것이다.
한편, 개발환경이 제1 개발환경이 아닌 경우(S103의 NO), 서비스관리장치(300)는 개발환경이 특정서비스(예: VoD)와 관련된 애플리케이션의 부하증감을 관리하는 제2 개발환경인지를 판단한다(S105).
개발환경이 제2 개발환경인 경우(S105의 YES), 서비스관리장치(300)는 부하증가 시에는 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어한다(S106).
보다 구체적으로, 전술에서 언급한 도 3의 (a,b)를 참고하여 살펴보면, 특정서비스(예: VoD)를 이용하는 가입자가 증가하거나, 사용량 증대로 인해 운영중인 특정서비스(예: VoD)의 애플리케이션들의 부하가 증가할 수 있다.
이러한 경우에는 서비스의 안정성을 위하여 애플리케이션을 증설(scale out)시켜야 한다. 반대로, 서비스의 안정화된 경우에는 애플리케이션을 감축(scale in)시키는 과정을 수행해야 한다.
보다 구체적으로 살펴보면, 도 3의 (a)에 도시된 바와 같이, 기존에는 애플리케이션의 증설(Scale out)시 6단계 이상의 작업이 필요한 구조로 많은 시간이 소비되었다.
즉, 애플리케이션의 증설(Scale out)을 위해서는, 인프라(예: 서버, 스토리지)를 준비해야 하는 1단계, 네트워크를 구성해야 하는 2단계, OS를 설치해야 하는 3단계, 런타임 환경을 구성해야 하는 4단계, 애플리케이션을 설치해야 하는 5단계 및 로더밸런서(Load balancer)와 데이터베이스(DB)와 연결해야 하는 6단계 이상의 관련 작업이 요구된다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (b)에 도시된 바와 같이, 전술에서 언급한 응용단위앱의 독립성을 기반으로 애플리케이션을 증설(Scale out)하도록 하였으며, 이에 앞서 언급한 1-6단계가 별도로 준비되지 않더라도 클라우드 환경에서 신규 응용단위앱이 바로 증설되도록 하는 제2 개발처리과정을 수행할 수 있게 된다.
결국, 본 발명의 실시예에서는 특정서비스(예: VoD)와 관련된 애플리케이션의 접속량이 많아져 갑작스럽게 부하가 증가하게 될 경우에도 자동으로 새로운 신규 응용단위앱이 증설되어 신속하게 대응할 수 있게 되므로, 보다 안정적인 IPTV 서비스를 제공할 수 있게 된다.
만일, 제2 개발처리과정에는 부하가 감소되었을 때, 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 과정이 포함되는 것이 바람직할 것이다.
한편, 개발환경이 제2 개발환경이 아닌 경우(S105의 NO), 서비스관리장치(300)는 개발환경이 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인지를 판단한다(S107).
개발환경이 제3 개발환경인 경우(S107의 YES), 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행이 수행되도록 제어한다(S108).
먼저, 도 3의 (c,d)를 기반으로 본 발명의 애플리케이션을 업데이트 하는 방안을 살펴보기에 앞서, 애플리케이션을 업데이트가 발생하게 되는 원인을 간략하게 살펴보면, 최근 IPTV 서비스는 컨텐츠에 대한 업데이트가 빈번하게 발생함에 따라 잦은 편성 변경으로 인해 UI 변경 역시 빈번하게 이루어지고 있다.
또한, 사전 예고된 이벤트성 컨텐츠가 송출되는(예: 사회적 빅이슈, 대통령선거 중계방송 등) 상황뿐만 아니라, 사전에 예고되지 않은 이벤트(예: 고객요청)가 돌발적으로 발생하는 상황 등이 증가됨에 따라 트래픽 변경이 빈번하게 발생되고 있다.
즉, IPTV 서비스는 변화가 심한 분야이며, 경쟁대응 및 기술 트렌드를 반영하기 위하여 업데이트를 필수적으로 수행해야만 한다. 그러나, 업데이트의 절차와 단계가 복잡하여 수시로 업데이트를 수행하지 못하는 실정이며, 단순히 정기적(예: 1년)인 업데이트만이 수행되고 있다.
보다 구체적으로 살펴보면, 도 3의 (c)에 도시된 바와 같이, 기존에는 개발을 위한 개발장치가 구비되는 환경(E1), 테스트를 위한 검증장치가 구비되는 환경(E2), 배포를 위한 상용장치가 구비되는 환경(E3)이 모두 물리적으로 분리되어 있다.
이에, 애플리케이션을 업데이트하기 위해서는 각 환경(E1, E2, E3) 별 애플리케이션 인프라(Application Infra; 예 서버, 스토리지)로 접속하여 애플리케이션을 수작업으로 순차적으로 매뉴얼 백업한 후 업데이트 하여야만 하는 번거로움이 존재한다.
또한, 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치의 시스템 환경과 운영환경이 모두 상이하기 때문에 환경의 차이로 인한 애플리케이션의 동작 차이가 존재하며, 이에 운영자는 작업 일정 협의 등의 절차를 거쳐야만 하는 애플리케이션을 업데이트하게 되는 한계점이 존재한다.
나아가, 애플리케이션의 업데이트를 원복할 때에도 각각의 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치에 접속하여 작업해야 하므로 업데이트 및 원복 시마다 불필요한 시간을 낭비되는 한계점 역시 존재한다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (d)에 도시된 바와 같이, 특정플랫폼(PaaS) 상에 개발장치, 검증장치, 상용장치가 모두 구비되도록 구현하여, 개발자가 물리적 이동 및 개별 장치(개발, 검증, 상용) 별로 접속할 필요 없이, 특정플랫폼(PaaS)을 기반으로 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 한다.
한편, 개발환경이 제3 개발환경이 아닌 경우(S107의 NO), 서비스관리장치(300)는 개발환경이 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인지를 판단한다(S109).
개발환경이 제4 개발환경인 경우(S109의 YES), 서비스관리장치(300)는 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어한다(S110).
먼저 도 3의 (e,f)를 기반으로 본 발명의 업데이트에 따른 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 방안을 살펴보기에 앞서, 테스트(예: A/B test)를 수행하는 배경을 살펴보면, 특정서비스(예: VoD)의 애플리케이션의 업데이트 시에는 시범적으로 일부 사용자(고객)에게 업데이트를 적용하여 사용자의 반응에 따라 업데이트 확대 여부를 결정한다.
이처럼 업데이트 확대 여부를 결정하게 되면 시행착오를 줄일 수 있으나, 일부 사용자(고객)에게만 시범적으로 업데이트를 적용해야 할 뿐만 아니라, 업데이트를 적용하는 절차가 복잡하여 테스트(예: A/B test)를 생략하고 단순 설문 조사 만으로 업데이트를 확정하여 진행하는 경우가 빈번하게 발생하게 된다.
보다 구체적으로 살펴보면, 도 3의 (e)에 도시된 바와 같이, 기존에는 특정서비스(예: VoD)와 관련된 애플리케이션 중 동일 기능을 하는 애플리케이션을 선택하여 업데이트한 후, 사용자A는 업데이트된 애플리케이션(410)에 접속되도록 하고, 사용자B는 기 이용되던 애플리케이션(420)에 접속되도록 하여 사용자A와 사용자B 간의 비교 테스트를 수행하였다.
이러한 기존 방식은, 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하고 관련 서버의 로그를 별도로 수집해야 하는 작업을 수행해야 하는데, 이를 위해서는 개발자/서버 운용자의 도움이 필수적으로 요구될 뿐만 아니라 작업 준비, 실행 및 로그 수집을 위한 많은 시간과 노력이 소비되는 문제가 발생한다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (f)에 도시된 바와 같이, 서비스관리장치(300)가 사용자(고객)를 구분할 수 있는 식별자를 인지할 수 있도록 하여, 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 연결(제공)되도록 한다.
예를 들어, 사용자A와 사용자B에게 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 경우, 서비스관리장치(300)는, 사용자(고객) 별 식별자를 구분하기만 한다면 식별자에 매칭된 사용자를 확인하여 사용자반응을 확인하려는 해당 응용단위앱을 사용자 별로 연결시킬 수 있다.
즉, 식별자1을 갖는 사용자A에게는 업데이트된 응용단위앱(500)이 연결되도록 하며, 식별자2를 갖는 사용자B에게는 기 이용되던 응용단위앱(510)이 연결되도록 한다.
이처럼 본 발명에서는 기존 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하지 않고도 플랫폼 단에서 소프트웨어적(s/w)적으로 사용자(고객) 별로 사용자반응을 확인하려는 해당 응용단위앱이 연결되도록 할 수 있다. 이에, 개발자/서버 운용자의 도움이 없이도 다양한 테스트가 수행되도록 하는 제4 개발처리과정이 수행되도록 제어할 수 있게 된다.
한편, 개발환경이 제4 개발환경이 아닌 경우(S109의 NO), 서비스관리장치(300)는 개발환경이 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 것으로 판단한다.
이처럼 개발환경이 제5 개발환경인 경우, 서비스관리장치(300)는 셋탑박스로부터 웹브라우져를 통해 서비스변경결과가 요청되면, 서비스변경결과가 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어한다(S111).
보다 구체적으로 살펴보면, 도 3의 (e)에 도시된 바와 같이, IPTV 서비스의 대부분은 사용자(고객)의 셋탑박스를 통해서 이루어지는데, 헤드엔드(Head-end)에서 특정서비스(예: VoD)와 관련된 애플리케이션의 업데이트를 신속하게 수행하더라도, 셋탑박스(200a)에서 서비스 반영이 지연되면 결국 사용자(고객)에게 서비스 지연이 발생할 수 밖에 없다.
즉, 기존에는 셋탑박스(200a)에서 특정서비스(예: VoD)와 관련된 모든 애플리케이션을 탑재하고 있어, 애플리케이션의 업데이트를 수행해야 할 때에는 셋탑박스(200a)를 전반적으로 업데이트해야 했다. 이러한 셋탑박스(200a)가 수백 만대인 경우에는 업데이트하기까지 많은 시간과 노력이 소요되는 한계점이 존재한다.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (h)에 도시된 바와 같이, 셋탑박스(200a)에는 웹(Web) 브라우져의 기능만이 탑재되도록 하고, 특정서비스(예: VoD)와 관련된 모든 애플리케이션은 헤드엔드(Head-end)에 구비되도록 구현한다.
이에, 셋탑박스(200a)는 웹브라우져를 통해 애플리케이션의 업데이트에 대한 수행결과를 요청하게 되며, 이러한 요청을 수신한 서비스관리장치(300)에서는 서비스변경결과가 셋탑박스(200a)로 전송되도록 하는 제5 개발처리과정을 수행할 수 있게 되는 것이다.
이상에서 설명한 바와 같이 본 발명에 따른 서비스 관리를 위한 장치 및 방법에 의하면, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있게 됨에 따라 서비스 중단 없이 다수의 서버에서 운용중인 애플리케이션을 관리, 즉 애플리케이션 업데이트, 신규 서비스 기능의 추가, 사용자반응 테스트, 및 부하에 따른 애플리케이션들의 자동 증감(scale out/in), 헤드엔드(Head-end)의 서비스변경결과 즉시 제공 등을 용이하게 수행할 수 있어 보다 유연한 서비스를 제공할 수 있는 효과를 도출한다.
본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
본 발명의 서비스 관리를 위한 장치 및 방법에 따르면, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안을 실현할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100: 개발자단말 200: 사용자단말
300: 서비스관리장치
310: 생성제어부 320: 수행제어부
330: 저장부
300: 서비스관리장치
310: 생성제어부 320: 수행제어부
330: 저장부
Claims (12)
- 특정플랫폼 상에서 IPTV(Internet Protocol Television) 서비스와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어부; 및
상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어부
를 포함하며,
상기 응용단위앱은 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되고,
상기 생성제어부는 상기 응용프로그램의 개수를 기반으로 상기 응용단위앱을 생성하는 것을 특징으로 하는 서비스관리장치. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 수행제어부는,
상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치. - 제 1 항에 있어서,
상기 수행제어부는,
상기 개발환경이 상기 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치. - 제 1 항에 있어서,
상기 수행제어부는,
상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치. - 제 6 항에 있어서,
상기 수행제어부는,
상기 개발환경이 상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치. - 제 6 항에 있어서,
상기 수행제어부는,
상기 개발환경이 상기 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치. - 특정플랫폼 상에서 IPTV(Internet Protocol Television) 서비스와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어단계; 및
상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어단계를 포함하며,
상기 응용단위앱은 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되고,
상기 생성제어단계는 상기 응용프로그램의 개수를 기반으로 상기 응용단위앱을 생성하는 단계를 포함하는 것을 특징으로 하는 서비스관리장치의 동작 방법. - 삭제
- 제 9 항에 있어서,
상기 개발환경은,
상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과,
상기 애플리케이션의 부하증감을 관리하는 제2 개발환경과,
상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과,
상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과,
상기 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함하는 것을 특징으로 하는 서비스관리장치의 동작 방법. - 제 11 항에 있어서,
상기 수행제어단계는,
상기 개발환경이 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 단계;
상기 개발환경이 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 단계;
상기 개발환경이 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 단계;
상기 개발환경이 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 단계; 및
상기 개발환경이 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 단계 중 적어도 하나를 포함하는 것을 특징으로 하는 서비스관리장치의 동작 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170153952A KR102039593B1 (ko) | 2017-11-17 | 2017-11-17 | 서비스 관리를 위한 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170153952A KR102039593B1 (ko) | 2017-11-17 | 2017-11-17 | 서비스 관리를 위한 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190056709A KR20190056709A (ko) | 2019-05-27 |
KR102039593B1 true KR102039593B1 (ko) | 2019-11-01 |
Family
ID=66679335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170153952A KR102039593B1 (ko) | 2017-11-17 | 2017-11-17 | 서비스 관리를 위한 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102039593B1 (ko) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101405865B1 (ko) * | 2010-07-23 | 2014-06-12 | 에스케이플래닛 주식회사 | 셋탑박스 화면 가상화 방법 및 시스템 |
KR102105690B1 (ko) * | 2016-04-27 | 2020-04-28 | 한국전자통신연구원 | 오픈 소스 가상화 클라우드 환경 기반 네트워크 컴퓨팅 개발 테스트베드 시스템 |
-
2017
- 2017-11-17 KR KR1020170153952A patent/KR102039593B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20190056709A (ko) | 2019-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642599B1 (en) | Preemptive deployment in software deployment pipelines | |
KR101802920B1 (ko) | 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치 | |
US8615588B2 (en) | Accelerate copying of virtual machine images | |
US8230264B2 (en) | System evaluation apparatus | |
US9442813B2 (en) | Replaying jobs at a secondary location of a service | |
US20170187572A1 (en) | Method for Upgrading Network Functions Virtualization Application, Service Forwarding Method, and Apparatus | |
US8595724B2 (en) | Using a score-based template to provide a virtual machine | |
KR101700313B1 (ko) | 인스턴스 호스트 구성 | |
US20140007092A1 (en) | Automatic transfer of workload configuration | |
JP2003114801A (ja) | コンピュータサービスおよびプログラマブルデバイスの管理を自動化するシステムおよび方法 | |
CN109582335B (zh) | 一种无中断存储集群节点在线升级方法、装置及设备 | |
WO2014035309A1 (en) | Re-configuration in cloud computing environments | |
US7882232B2 (en) | Rapid resource provisioning with automated throttling | |
EP3879875A1 (en) | Resource change method and device, apparatus, and storage medium | |
EP3321808B1 (en) | Verification system and verification method | |
CN112711575A (zh) | 一种数据库集群的部署方法、***及相关装置 | |
KR102039593B1 (ko) | 서비스 관리를 위한 장치 및 방법 | |
EP3182278A1 (en) | System for automatic preparation of integrated development environments | |
US20140281474A1 (en) | System and Method for Unattended Out of Band Job Execution | |
JP4554581B2 (ja) | ジョブ管理装置、システムおよびプログラム | |
CN116149707B (zh) | 分布式***的升级风险检测和规避方法及装置 | |
US20240256397A1 (en) | Service/Workload Recovery And Restoration In Container Orchestration Systems | |
WO2022196625A1 (ja) | 運用管理装置、システム及び方法並びにコンピュータ可読媒体 | |
CN102156685A (zh) | 一种分布式网络***脚本自动配置的方法及装置 | |
US20230367632A1 (en) | Job management system and control method thereof |
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 |