KR102039593B1 - Apparatus and method for managing service - Google Patents
Apparatus and method for managing service 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
Abstract
본 발명은, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 기술을 개시하고 있다.The present invention allows an application related to a specific service to be implemented in a container (hereinafter referred to as an application unit) that operates in an application unit, so that an optimized development process can be performed even if the development environment is different. It is launching IPTV service management technology through application unit app.
Description
본 발명은 PaaS(Platform as a Service) 기반으로 IPTV 서비스를 관리하는 기술에 관한 것으로, 보다 상세하게는 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안에 관한 것이다.The present invention relates to a technology for managing an IPTV service based on a platform as a service (PaaS), and more specifically, by allowing an application related to a specific service to be implemented as a container (hereinafter referred to as an application unit app) operating in an application unit. In this regard, the present invention relates to an IPTV service management method through a new PaaS-based application unit app that enables an optimized development process to be performed even if the development environment is different.
일반적인 IPTV 서비스를 제공하는 IPTV 플랫폼은, 물리 서버 기반으로 구현되어 있으며, 각 서버 별로 환경구성이 상이하여 애플리케이션(Application)의 업데이트나 신규 기능 추가에 많은 시간이 소요된다.IPTV platform that provides general IPTV service is implemented based on the physical server, and the configuration of each server is different, so it takes a lot of time to update the application or add new functions.
이에, 이러한 문제를 해소하기 위해 일부 IaaS(Infra as a Service)를 활용하여 하드웨어(예: CPU, Memory, Disk)를 가상화하여 사용하고 있으나, 운영체계(Operating system)와 런타임(Runtime) 환경이 애플리케이션 별로 상이하여 개발 및 운용(이하, 개발처리과정)에 복잡도가 증가하는 문제가 있다. In order to solve this problem, hardware (eg CPU, Memory, Disk) is virtualized using some infrastructure as a service (IaaS), but operating system and runtime environment are used for application. There is a problem of increasing complexity in development and operation (hereinafter, referred to as development process).
즉, 기존 IaaS를 활용하여 하드웨어 일부만을 가상화하여 사용하거나, 물리 서버에서 애플리케이션을 운영하는 환경에서는, 다수의 서버에서 운용중인 애플리케이션을 관리(예: 테스트, 업데이트 및 롤백 등)하기 어려운 한계점이 존재한다. In other words, in an environment where only a part of hardware is virtualized using an existing IaaS or an application is operated on a physical server, there are limitations in managing an application running on multiple servers (eg, test, update, and rollback). .
따라서, 본 발명은, PaaS(Platform as a Service)에서 제공하는 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)를 기반으로 특정서비스와 관련된 애플리케이션이 개발되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안을 제안하고자 한다. Therefore, the present invention is optimized even if the development environment is different by allowing an application related to a specific service to be developed based on a container (hereinafter referred to as an application unit app) operating in an application unit provided by PaaS (Platform as a Service). This paper proposes a new IPA service management plan through a new PaaS-based application unit app that enables the development process to be performed.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안이 실현되도록 하는데 있다.The present invention has been created in view of the above circumstances, and an object of the present invention is to provide a development environment by allowing an application related to a specific service to be implemented as a container (hereinafter referred to as an application unit app) operating in an application program unit. Even if it is different, IPTV service management method through new PaaS-based application unit app, which enables optimized development process, can be realized.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 서비스관리장치는, 특정플랫폼 상에서 특정서비스와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어부; 및 상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어부를 포함하는 것을 특징으로 한다.Service management apparatus according to the first aspect of the present invention for achieving the above object, the generation control unit for controlling the application associated with the specific service is generated as an application unit on a specific platform; And a performance control unit for controlling a development process related to the application unit app based on a result of confirming the development environment to which the application unit app is applied.
상기 응용단위앱은, 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되는 것을 특징으로 한다.The application unit app is characterized in that it is generated corresponding to at least one application program associated with the application.
상기 생성제어부는, 상기 응용프로그램의 개수를 기반으로 상기 응용단위앱을 생성하는 것을 특징으로 한다.The generation control unit may generate the application unit app based on the number of application programs.
상기 수행제어부는, 상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.When the development environment is a first development environment that provides a microservice through a corresponding application program of the application unit app, the corresponding application program of the application unit app provides a microservice corresponding to each specific function. And controlling the first development process to be performed.
상기 수행제어부는, 상기 개발환경이 상기 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.When the development environment is a second development environment that manages the load increase and decrease of the application, the performance control unit controls to generate a new application unit app other than the application unit app when the load increases, and when the load decreases the application. And control the second development process to remove at least one of the unit app and the new application unit app.
상기 수행제어부는, 상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.The execution control unit, when the development environment is a third development environment for updating the corresponding application of the application unit app, the third development for the corresponding application of the application unit app to be developed, verified, distributed in connection with the update Characterized in that the control process is performed.
상기 수행제어부는, 상기 개발환경이 상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.The performance control unit, if the development environment is a fourth development environment for performing a test related to the user response according to the update, to check the user response based on the result of confirming the identification number of the user performing the test And control the fourth development process to allow the application unit app to be provided to the user.
상기 수행제어부는, 상기 개발환경이 상기 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 것을 특징으로 한다.When the development environment is a fifth development environment in which the development environment provides a service change result according to the update to the user's set-top box, when the service change result is requested from the set-top box through a web browser, the service change is performed. And a fifth development process for transmitting a result to the set-top box.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 서비스관리장치의 동작 방법은, 특정플랫폼 상에서 특정서비스와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어단계; 및 상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어단계를 포함하는 것을 특징으로 한다.A method of operating a service management apparatus according to a second aspect of the present invention for achieving the above object comprises: a generation control step of controlling an application related to a specific service to be generated as an application unit app on a specific platform; And a performance control step of controlling a development process related to the application unit app to be performed based on a result of confirming the development environment to which the application unit app is applied.
상기 응용단위앱은, 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되는 것을 특징으로 한다.The application unit app is characterized in that it is generated corresponding to at least one application program associated with the application.
상기 개발환경은, 상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과, 상기 애플리케이션의 부하증감을 관리하는 제2 개발환경과, 상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과, 상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과, 상기 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함하는 것을 특징으로 한다.The development environment may include: a first development environment providing microservices through a corresponding application program of the application unit app; a second development environment managing load increase / decrease of the application; and a corresponding application program of the application unit app. At least one of a third development environment for performing the test, a fourth development environment for performing a test related to the user response according to the update, and a fifth development environment for providing a corresponding service change result according to the update to the user's set-top box. It is characterized by including.
상기 수행제어부단계, 상기 개발환경이 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 단계; 상기 개발환경이 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 단계; 상기 개발환경이 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 단계; 상기 개발환경이 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 단계; 및 상기 개발환경이 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 단계 중 적어도 하나를 포함하는 것을 특징으로 한다.The execution control unit step, if the development environment is a first development environment, controlling a first development process to perform a microservice corresponding to a specific function of a corresponding application program of the application unit app, respectively; When the development environment is the second development environment, when the load increases, the new application unit app other than the application unit app is controlled to be generated, and when the load decreases, at least one of the application unit app and the new application unit app is removed. Controlling a second development process to be performed; If the development environment is a third development environment, controlling a third development process for developing, verifying, and distributing a corresponding application of the application unit app to be updated; If the development environment is a fourth development environment, a fourth development process for providing the corresponding application unit app wee app to check the user response based on the result of confirming the identification number of the user performing the test is provided to the user Controlling to be performed; And if the development environment is a fifth development environment, when the service change result is requested from the set top box through a web browser, controlling the fifth development process to transmit the service change result to the set top box. Characterized in that it comprises at least one of the steps.
이에, 본 발명에 따른 서비스 관리를 위한 장치 및 방법에 의하면, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있게 됨에 따라 서비스 중단 없이 다수의 서버에서 운용중인 애플리케이션을 관리, 즉 애플리케이션 업데이트, 신규 서비스 기능의 추가, 사용자반응 테스트, 및 부하에 따른 애플리케이션들의 자동 증감(scale out/in), 헤드엔드(Head-end)의 서비스변경결과 즉시 제공 등을 용이하게 수행할 수 있어 보다 유연한 서비스를 제공할 수 있는 효과를 도출한다.Therefore, according to the apparatus and method for service management according to the present invention, the application related to a specific service is implemented in a container (hereinafter, an application unit app) that operates in the application unit, the development process optimized even if the development environment is different As the process can be performed, it can manage applications running on multiple servers without service interruptions, such as application updates, addition of new service functions, user response testing, and automatic scale out / in of applications under load. As the result of service change of the head-end can be easily provided immediately, the effect of providing more flexible service is derived.
도 1은 본 발명의 실시예에 따른 서비스관리장치가 적용되는 통신구조의 일례를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 서비스관리장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 개발처리과정과 관련되는 다양한 예시를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 나타내는 순서도이다.1 is a diagram illustrating an example of a communication structure to which a service management apparatus according to an embodiment of the present invention is applied.
2 is a block diagram showing the configuration of a service management apparatus according to an embodiment of the present invention.
3 is a view showing various examples related to the development process according to an embodiment of the present invention.
4 is a flowchart illustrating an operation flow by components in a communication structure according to an embodiment of the present invention.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It is to be noted that the technical terms used herein are merely used to describe particular embodiments, and are not intended to limit the present invention. In addition, the technical terms used in the present specification should be interpreted as meanings generally understood by those skilled in the art unless they are specifically defined in this specification, and are overly inclusive. It should not be interpreted in the sense of or in the sense of being excessively reduced. In addition, when the technical terms used herein are incorrect technical terms that do not accurately represent the spirit of the present invention, it should be replaced with technical terms that can be understood correctly by those skilled in the art. In addition, the general terms used in the present invention should be interpreted as defined in the dictionary or according to the context before and after, and should not be interpreted in an excessively reduced sense.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 명세서의 실시예에 대하여 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and the same or similar components will be given the same reference numerals regardless of the reference numerals, and redundant description thereof will be omitted. In addition, in describing the present invention, when it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다. Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention.
도 1은 본 발명의 실시예에 따른 서비스관리장치가 적용되는 통신구조를 보여주고 있다. 1 shows a communication structure to which a service management apparatus according to an embodiment of the present invention is applied.
도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은, 클라우드(Cloud) 기술 중 PaaS(Platform as a Service)(이하, 특정플랫폼) 기반으로 IPTV 서비스를 관리(제공)하기 위한 시스템 환경일 수 있으며, 개발자단말(100), 사용자단말(200) 및 서비스관리장치(300)를 포함하는 구성을 가질 수 있다.As shown in FIG. 1, the communication environment to which the present invention is applied may be a system environment for managing (providing) an IPTV service based on a platform as a service (PaaS) (hereinafter, referred to as a specific platform) among cloud technologies. And, it may have a configuration including a
개발자단말(100)은, IPTV 서비스를 제공하기 위해 특정플랫폼(PaaS) 상에서 특정서비스(예: VoD)와 관련된 애플리케이션이 생성될 수 있도록, 애플리케이션과 관련되는 개발결과정보를 생성하는 단말일 수 있다.The
여기서, 특정플랫폼(PaaS)은, 특정서비스(예: VoD)와 관련된 애플리케이션 생성을 위해 서비스관리장치(300)가 개발자에게만 전용으로 제공하는 OS기반 개발전용 가상환경일 수 있다. 이러한, 특정플랫폼(PaaS)을 통해 특정서비스(예: VoD)와 관련된 애플리케이션 생성뿐만 아니라 테스트, 배포, 운영, 장애관리 등과 같은 전반적인 개발처리과정이 지원될 수 있다.Here, the specific platform PaaS may be an OS-based development-only virtual environment provided only by the
이에, 개발자단말(100)에는, 전반적인 개발과정을 운영할 수 있도록 특정플랫폼(PaaS)과 관련되는 클라이언트 툴(예: PaaS Client Tool, 이하, PaaS툴)이 탑재되는 것이 바람직할 것이다.Accordingly, the
사용자단말(200)은, 서비스관리장치(300)와 유선 또는 무선으로 연동하여 특정서비스(예: VoD)를 이용하는 고객의 단말일 수 있으며, 예컨대 스마트폰, 태블릿 PC, PDA, 및 노트북, 셋탑박스 등과 같이 서비스관리장치(300)와 연동하여 IPTV 서비스를 제공할 수 있는 장치는 모두 포함될 수 있을 것이다. The
서비스관리장치(300)는, 개발자가 특정서비스(예: VoD)와 관련된 애플리케이션을 생성할 수 있도록 특정플랫폼(PaaS)을 제공하는 한편, IPTV 서비스를 이용하는 사용자에게 특정서비스(예: VoD)와 관련된 애플리케이션에 해당하는 컨텐츠가 제공되도록 전반적인 시스템 운영을 제어하는 장치로서, 특히 본 발명에서 제공하고자 하는 서비스 즉 특정서비스(예: VoD)와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 특정플랫폼(PaaS) 기반의 응용단위앱을 통한 IPTV 서비스 관리 기술이 실현되도록 하는 장치이다.The
이와 관련하여, 도 2에는 본 발명의 서비스관리장치(300)의 구성이 보다 구체적으로 도시되어 있다.In this regard, Figure 2 shows the configuration of the
도 1 및 도 2를 참고하면, 본 발명의 서비스관리장치(300)는, 특정플랫폼(PaaS) 상에서 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어하는 생성제어부(310), 및 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어부(320)를 포함하는 것을 특징으로 한다.1 and 2, the
또한, 본 발명에 따른 서비스관리장치(300)는, 특정플랫폼(PaaS) 기반의 응용단위앱을 통한 IPTV 서비스가 제공되도록 하기 위해 생성/송수신되는 모든 정보(예: 응용단위앱, 마이크로서비스, 개발처리결과 등)를 저장하는 저장부(330)를 더 포함한다.In addition, the
이상의 생성제어부(310), 수행제어부(320) 및 저장부(330)를 포함하는 서비스관리장치(300)의 구성 전체 내지는 적어도 일부는, 프로세서에 의해 실행되는 소프트웨어 모듈 형태 또는 하드웨어 모듈 형태로 구현되거나, 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.The whole or at least part of the configuration of the
결국, 본 발명의 실시예에 따른 서비스관리장치(300)는, 특정플랫폼(PaaS)에서 제공하는 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)를 기반으로 특정서비스와 관련된 애플리케이션이 개발되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는데, 이하에서는 이를 위한 서비스관리장치(300) 내 각 구성에 대해 구체적으로 설명하기로 한다.As a result, the
생성제어부(310)는, 특정플랫폼(PaaS) 상에서 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되도록 제어한다.The
보다 구체적으로, 생성제어부(310)는, 개발자단말(100)로부터 특정서비스(예: VoD)와 관련된 애플리케이션 생성을 위한 개발결과정보가 수신되면, 개발결과정보에는 애플리케이션과 관련되는 다수의 응용프로그램이 포함되어 있을 것이므로, 개발결과정보로부터 다수의 응용프로그램을 확인할 수 있게 된다.More specifically, when the
이후, 생성제어부(310)는, 개발결과정보의 다수의 응용프로그램을 특정플랫폼(PaaS)에서 응용 프로그램이 구동되는 단위인 컨테이너(container)에 대응되도록 분리하여 응용단위앱이 생성되도록 제어한다.Thereafter, the
즉, 생성제어부(310)는, 응용프로그램의 개수를 기반으로 응용단위앱을 생성한다. 예를 들어, 개발결과정보에 포함된 응용프로그램의 개수가 3개이면, 생성제어부(310)는, 응용프로그램의 개수(3)만큼의 응용단위앱을 생성하게 된다. 물론, 이와 달리, 응용프로그램의 조합이나, 운영자의 설정에 따라 응용단위앱의 생성이 달라질 수도 있음은 물론이다.That is, the
결국, 응용단위앱은, 특정서비스(예: VoD)의 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 컨테이너(container) 상에 생성된다. 즉, 컨테이너(container) 별로 서로 다른 응용프로그램이 탑재되어 독립적인 응용단위앱으로 동작하게 된다.As a result, the application unit app is generated on the container corresponding to at least one application program associated with an application of a specific service (eg, VoD). In other words, different applications are loaded for each container to operate as an independent application unit app.
이처럼 컨테이너(container) 상에 응용단위앱이 구현될 수 있도록 하기 위해서는, 운영체계(Operating system)와 런타임(Runtime) 환경 등이 IaaS(Infra as a Service) 상에 구비되어야 하며, 이에 기존과 달리 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)이 제거될 수 있어 응용단위앱의 독립성을 보장할 수 있게 되는 것이다.In order to allow an application unit app to be implemented on a container as described above, an operating system and a runtime environment must be provided on an IaaS (Infra as a Service). System dependencies (Configuration, run time environment, etc.) of the service (e.g. VoD) application can be removed, thereby ensuring the independence of the application unit app.
전술에 따라 응용단위앱의 독립성이 보장되게 되면, 개발환경이 상이하더라도 최적화된 개발처리과정을 수행할 수 있게 되는데, 보다 구체적인 내용은 수행제어부(320)의 설명에서 상세히 다루도록 하겠다.When the independence of the application unit app according to the above is guaranteed, it is possible to perform the optimized development process even if the development environment is different, more specific details will be described in detail in the
수행제어부(320)는, 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어한다.The
보다 구체적으로, 수행제어부(320)는, 생성제어부(310)로부터 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되면, 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어한다. More specifically, the
여기서, 응용단위앱이 적용된 개발환경은, 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과, 애플리케이션의 부하증감을 관리하는 제2 개발환경과, 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과, 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과, 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함할 수 있다. Here, the development environment to which the application unit app is applied includes a first development environment for providing microservices through a corresponding application of the application unit app, a second development environment for managing load increase and decrease of the application, and a corresponding application of the application unit app. At least one of a third development environment that updates the program, a fourth development environment that performs tests related to user response according to the update, and a fifth development environment that provides the set-top box of the user with the result of service change according to the update It may include.
먼저, 개발환경이 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우에 대한 제1 개발처리과정에 대하여 설명하도록 하겠다. First, a description will be given of a first development process for a case where a development environment is a first development environment that provides a microservice through a corresponding application program of an application unit app.
수행제어부(320)는, 개발환경이 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우, 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어한다. If the development environment is a first development environment that provides a microservice through a corresponding application of an application unit app, the
이와 관련하여, 도 3의 (a,b)에는 기존 IPTV 서비스를 제공하는 아키텍처와, 본 발명의 IPTV 서비스를 제공하는 아키텍처의 일례가 도시되어 있다.In this regard, (a, b) of FIG. 3 illustrates an architecture for providing an existing IPTV service and an example of an architecture for providing an IPTV service of the present invention.
도 3의 (a)에 도시된 바와 같이, 기존에는 IPTV 서비스를 위한 특정서비스(예: VoD)와 관련된 애플리케이션이 모놀리틱 구조에서 처리되었으므로, 서비스(Service)에서 스토리지(Storage)까지 하나의 아키텍쳐에서 실행되게 된다.As shown in FIG. 3 (a), since an application related to a specific service (for example, VoD) for an IPTV service has been processed in a monolithic structure, one architecture from a service to a storage is shown. Will run on.
이에, 하나의 WAS(Web Application Server)에 존재하는 기능들이 서로 영향을 미치게 되어, 애플리케이션 단위로의 소프트웨어 업데이트(Software update) 및 신규 애플리케이션 생성이 어려운 한계점이 존재했다.As a result, functions existing in a single web application server (WAS) affect each other, so that there is a limitation in that it is difficult to update software and create new applications at an application level.
이러한 문제를 해소하기 위해, 본 발명에서는 전술에서 언급한 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)을 제어하여 독립성이 보장되도록 한 컨테이너(container) 상에 서로 다른 응용프로그램이 탑재되어 응용단위앱이 생성되도록 하고, 생성된 응용단위앱을 기반으로 특정서비스(예: VoD)의 애플리케이션이 제공되도록 한다.In order to solve this problem, the present invention controls the system dependencies (Configuration, run time environment, etc.) of the application of a specific service (e.g. VoD) mentioned above on the container to ensure independence Different application programs are mounted so that an application unit app is generated, and an application of a specific service (eg, VoD) is provided based on the generated application unit app.
즉, 도 3의 (b)에 도시된 바와 같이, 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스(Micro Service, MS)를 제공할 수 있도록 하여, 기존 모놀리틱 구조와 달리 응용단위앱의 업데이트 및 신규 생성이 가능하도록 하였다.That is, as shown in (b) of FIG. 3, the corresponding application of the application unit app can provide a micro service (Micro Service, MS) corresponding to each specific function, unlike the existing monolithic structure. It is possible to update and newly create application unit apps.
이에, 응용단위앱에 대응하는 마이크로서비스(MS)들은 서로간의 통신을 정해진 API(application programming interface)를 통해서 수행하게 되므로, 각각 마이크로서비스(MS)의 내부 업데이트 시에도 마이크로서비스(MS) 간의 통신에는 영향을 주지 않고 특정 기능에 해당하는 마이크로서비스를 제공하는 제1 개발처리과정을 수행할 수 있게 되는 것이다.Accordingly, since the microservices (MS) corresponding to the application unit app performs communication with each other through a predetermined application programming interface (API), communication between the microservices (MS) is performed even when the microservices (MS) are internally updated. It is possible to perform the first development process for providing a microservice corresponding to a specific function without affecting.
다음으로, 개발환경이 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우에 대한 제2 개발처리과정에 대하여 설명하도록 하겠다.Next, a description will be given of the second development process for the case where the development environment is the second development environment that manages the increase and decrease of the application.
수행제어부(320)는, 개발환경이 특정서비스(예: VoD)와 관련된 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우, 부하증가 시에는 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어한다.If the development environment is the second development environment that manages the load increase and decrease of the application related to a specific service (eg, VoD), the
이와 관련하여, 전술에서 언급한 도 3의 (a,b)를 참고하여 살펴보면, 특정서비스(예: VoD)를 이용하는 가입자가 증가하거나, 사용량 증대로 인해 운영중인 특정서비스(예: VoD)의 애플리케이션들의 부하가 증가할 수 있다. In this regard, referring to (a, b) of FIG. 3 mentioned above, the number of subscribers using a specific service (eg, VoD) increases, or the application of a specific service (eg, VoD) in operation due to increased usage. Their load may increase.
이러한 경우에는 서비스의 안정성을 위하여 애플리케이션을 증설(scale out)시켜야 한다. 반대로, 서비스의 안정화된 경우에는 애플리케이션을 감축(scale in)시키는 과정을 수행해야 한다.In this case, the application must be scaled out for the stability of the service. On the contrary, when the service is stabilized, the process of scaling in the application must be performed.
보다 구체적으로 살펴보면, 도 3의 (a)에 도시된 바와 같이, 기존에는 애플리케이션의 증설(Scale out)시 6단계 이상의 작업이 필요한 구조로 많은 시간이 소비되었다.In more detail, as shown in (a) of FIG. 3, a lot of time has been spent in the conventional structure requiring more than six steps when scaling out an application.
즉, 애플리케이션의 증설(Scale out)을 위해서는, 인프라(예: 서버, 스토리지)를 준비해야 하는 1단계, 네트워크를 구성해야 하는 2단계, OS를 설치해야 하는 3단계, 런타임 환경을 구성해야 하는 4단계, 애플리케이션을 설치해야 하는 5단계 및 로더밸런서(Load balancer)와 데이터베이스(DB)와 연결해야 하는 6단계 이상의 관련 작업이 요구된다.In other words, to scale out your application, you need to prepare your infrastructure (e.g. servers, storage),
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (b)에 도시된 바와 같이, 전술에서 언급한 응용단위앱의 독립성을 기반으로 애플리케이션을 증설(Scale out)하도록 하였으며, 이에 앞서 언급한 1-6단계가 별도로 준비되지 않더라도 클라우드 환경에서 신규 응용단위앱이 바로 증설되도록 하는 제2 개발처리과정을 수행할 수 있게 된다.In order to solve this problem, in the present invention, as shown in (b) of FIG. 3, the application is scaled out based on the independence of the application unit app mentioned above. Even if the six steps are not prepared separately, the second development process of allowing new application unit apps to be immediately expanded in the cloud environment can be performed.
결국, 본 발명의 실시예에서는 특정서비스(예: VoD)와 관련된 애플리케이션의 접속량이 많아져 갑작스럽게 부하가 증가하게 될 경우에도 자동으로 새로운 신규 응용단위앱이 증설되어 신속하게 대응할 수 있게 되므로, 보다 안정적인 IPTV 서비스를 제공할 수 있게 된다.As a result, in the embodiment of the present invention, even when the load of the application related to a specific service (eg, VoD) increases, and a sudden increase in load, a new new application unit app is automatically added and can respond quickly. Stable IPTV service can be provided.
한편, 제2 개발처리과정에는 부하가 감소되었을 때, 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 과정이 포함되는 것이 바람직할 것이다. On the other hand, when the load is reduced, it may be desirable to include a process of removing at least one of the application unit app and the new application unit app when the load is reduced.
다음으로, 개발환경이 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우에 대한 제3 개발처리과정에 대하여 설명하도록 하겠다.Next, the third development process for the case where the development environment is the third development environment for updating the application program of the application unit app will be described.
수행제어부(320)는, 개발환경이 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우, 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행이 수행되도록 제어한다.If the development environment is a third development environment for updating a corresponding application of an application unit app, the
이와 관련하여, 도 3의 (c,d)에는 기존 애플리케이션을 업데이트 하는 방안과, 본 발명의 애플리케이션을 업데이트 하는 방안의 일례가 도시되어 있다.In this regard, (c, d) of FIG. 3 shows an example of a method of updating an existing application and a method of updating an application of the present invention.
도 3의 (c,d)를 기반으로 본 발명의 애플리케이션을 업데이트 하는 방안을 살펴보기에 앞서, 애플리케이션을 업데이트가 발생하게 되는 원인을 간략하게 살펴보면, 최근 IPTV 서비스는 컨텐츠에 대한 업데이트가 빈번하게 발생함에 따라 잦은 편성 변경으로 인해 UI 변경 역시 빈번하게 이루어지고 있다. Before looking at how to update the application of the present invention based on (c, d) of Figure 3, briefly look at the cause of the update occurs in the application, the recent IPTV service update occurs frequently As a result, frequent UI changes are frequently made.
또한, 사전 예고된 이벤트성 컨텐츠가 송출되는(예: 사회적 빅이슈, 대통령선거 중계방송 등) 상황뿐만 아니라, 사전에 예고되지 않은 이벤트(예: 고객요청)가 돌발적으로 발생하는 상황 등이 증가됨에 따라 트래픽 변경이 빈번하게 발생되고 있다.In addition, as well as the situation in which event-based content that is pre-announced (e.g., social big issues, presidential election broadcasting, etc.) is increased, the situation in which unexpected events (e.g. customer requests) occur unexpectedly is increased. As a result, traffic changes occur frequently.
즉, IPTV 서비스는 변화가 심한 분야이며, 경쟁대응 및 기술 트렌드를 반영하기 위하여 업데이트를 필수적으로 수행해야만 한다. 그러나, 업데이트의 절차와 단계가 복잡하여 수시로 업데이트를 수행하지 못하는 실정이며, 단순히 정기적(예: 1년)인 업데이트만이 수행되고 있다.In other words, IPTV service is a field that is highly changed, and updates must be performed to reflect competition and technology trends. However, due to the complexity of the update procedure and steps, the update cannot be performed from time to time, and only a regular update (eg, 1 year) is performed.
보다 구체적으로 살펴보면, 도 3의 (c)에 도시된 바와 같이, 기존에는 개발을 위한 개발장치가 구비되는 환경(E1), 테스트를 위한 검증장치가 구비되는 환경(E2), 배포를 위한 상용장치가 구비되는 환경(E3)이 모두 물리적으로 분리되어 있다. Looking in more detail, as shown in (c) of Figure 3, the existing environment (E1) equipped with a development apparatus for development, the environment (E2) equipped with a verification apparatus for testing, commercial devices for distribution The environment E3 provided with is all physically separated.
이에, 애플리케이션을 업데이트하기 위해서는 각 환경(E1, E2, E3) 별 애플리케이션 인프라(Application Infra; 예 서버, 스토리지)로 접속하여 애플리케이션을 수작업으로 순차적으로 매뉴얼 백업한 후 업데이트 하여야만 하는 번거로움이 존재한다.Thus, in order to update the application, there is a hassle of updating the application after manually backing up the application manually by sequentially connecting the application infrastructure (Application Infra; each server, storage) for each environment (E1, E2, E3).
또한, 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치의 시스템 환경과 운영환경이 모두 상이하기 때문에 환경의 차이로 인한 애플리케이션의 동작 차이가 존재하며, 이에 운영자는 작업 일정 협의 등의 절차를 거쳐야만 하는 애플리케이션을 업데이트하게 되는 한계점이 존재한다. In addition, since the system environment and the operating environment of the development device, the verification device, and the commercial device provided for each environment (E1, E2, E3) are all different, there is a difference in operation of the application due to the difference of the environment, and the operator There is a limit to updating an application that must go through a process such as scheduling.
나아가, 애플리케이션의 업데이트를 원복할 때에도 각각의 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치에 접속하여 작업해야 하므로 업데이트 및 원복 시마다 불필요한 시간을 낭비되는 한계점 역시 존재한다.In addition, there is also a limitation that wastes unnecessary time during update and recovery, since users must connect to and work on development devices, verification devices, and commercial devices provided for each environment (E1, E2, and E3) to restore application updates. .
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (d)에 도시된 바와 같이, 특정플랫폼(PaaS) 상에 개발장치, 검증장치, 상용장치가 모두 구비되도록 구현하여, 개발자가 물리적 이동 및 개별 장치(개발, 검증, 상용) 별로 접속할 필요 없이, 특정플랫폼(PaaS)을 기반으로 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 한다.In order to solve this problem, in the present invention, as shown in (d) of FIG. 3, the developer, the verification device, and the commercial device are all provided on a specific platform (PaaS), so that the developer can move physically and individually. A third development process is performed so that a corresponding application of an application unit application is developed, verified, and distributed in connection with an update based on a specific platform (PaaS) without having to connect to each device (development, verification, commercial use).
다음으로, 개발환경이 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우에 대한 제4 개발처리과정에 대하여 설명하도록 하겠다.Next, a description will be given of a fourth development process for a case in which the development environment is a fourth development environment that performs a test related to user response according to an update.
수행제어부(320)는, 개발환경이 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우, 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어한다.The
이와 관련하여, 도 3의 (e,f)에는 기존 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 방안과, 본 발명의 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 방안의 일례가 도시되어 있다.In this regard, (e, f) of FIG. 3 shows an example of a method for performing a test related to a user response according to an existing update, and a method for performing a test related to a user response according to an update of the present invention. have.
도 3의 (e,f)를 기반으로 본 발명의 업데이트에 따른 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 방안을 살펴보기에 앞서, 테스트(예: A/B test)를 수행하는 배경을 살펴보면, 특정서비스(예: VoD)의 애플리케이션의 업데이트 시에는 시범적으로 일부 사용자(고객)에게 업데이트를 적용하여 사용자의 반응에 따라 업데이트 확대 여부를 결정한다.Based on (e, f) of FIG. 3, before looking at a method of performing a test (eg, A / B test) related to user response according to the update of the present invention, a test (eg, A / B test) Looking at the background of performing, when an application of a specific service (eg, VoD) is updated, a trial is applied to some users (customers) to determine whether to expand the update according to the user's response.
이처럼 업데이트 확대 여부를 결정하게 되면 시행착오를 줄일 수 있으나, 일부 사용자(고객)에게만 시범적으로 업데이트를 적용해야 할 뿐만 아니라, 업데이트를 적용하는 절차가 복잡하여 테스트(예: A/B test)를 생략하고 단순 설문 조사 만으로 업데이트를 확정하여 진행하는 경우가 빈번하게 발생하게 된다.This decision can reduce trial and error, but it is not only necessary to apply the update to a few users (customers), but also the complicated procedure of applying the update makes it difficult to test (eg A / B test). Occasionally, it is frequently omitted to confirm the update with a simple survey.
보다 구체적으로 살펴보면, 도 3의 (e)에 도시된 바와 같이, 기존에는 특정서비스(예: VoD)와 관련된 애플리케이션 중 동일 기능을 하는 애플리케이션을 선택하여 업데이트한 후, 사용자A는 업데이트된 애플리케이션(410)에 접속되도록 하고, 사용자B는 기 이용되던 애플리케이션(420)에 접속되도록 하여 사용자A와 사용자B 간의 비교 테스트를 수행하였다.In more detail, as shown in (e) of FIG. 3, after a user selects and updates an application having the same function among applications related to a specific service (for example, VoD), user A updates the updated application 410. ), And user B was connected to the previously used application 420 to perform a comparison test between user A and user B.
이러한 기존 방식은, 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하고 관련 서버의 로그를 별도로 수집해야 하는 작업을 수행해야 하는데, 이를 위해서는 개발자/서버 운용자의 도움이 필수적으로 요구될 뿐만 아니라 작업 준비, 실행 및 로그 수집을 위한 많은 시간과 노력이 소비되는 문제가 발생한다.This existing method requires the task of changing the configuration of the load balancer of a commercial device and collecting logs of related servers separately, which requires not only the help of the developer / server operator but also the work. The problem is that it takes a lot of time and effort to prepare, run, and collect logs.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (f)에 도시된 바와 같이, 수행제어부(320)가 사용자(고객)를 구분할 수 있는 식별자를 인지할 수 있도록 하여, 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 연결(제공)되도록 한다.In order to solve this problem, in the present invention, as shown in (f) of FIG. 3, the
예를 들어, 사용자A와 사용자B에게 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 경우, 수행제어부(320)는, 사용자(고객) 별 식별자를 구분하기만 한다면 식별자에 매칭된 사용자를 확인하여 사용자반응을 확인하려는 해당 응용단위앱을 사용자 별로 연결시킬 수 있다.For example, when performing a test (eg, A / B test) related to user response to user A and user B, the
즉, 식별자1을 갖는 사용자A에게는 업데이트된 응용단위앱(500)이 연결되도록 하며, 식별자2를 갖는 사용자B에게는 기 이용되던 응용단위앱(510)이 연결되도록 한다.That is, the updated
이처럼 본 발명에서는 기존 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하지 않고도 플랫폼 단에서 소프트웨어적(s/w)적으로 사용자(고객) 별로 사용자반응을 확인하려는 해당 응용단위앱이 연결되도록 할 수 있다. 이에, 개발자/서버 운용자의 도움이 없이도 다양한 테스트가 수행되도록 하는 제4 개발처리과정이 수행되도록 제어할 수 있게 된다.As such, in the present invention, without changing the configuration of the load balancer (load balancer) of the existing commercial device to be connected to the application unit app that wants to check the user response for each user (customer) by software (s / w) at the platform stage Can be. Thus, it is possible to control the fourth development process to perform a variety of tests without the help of the developer / server operator.
마지막으로, 개발환경이 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우에 대한 제5 개발처리과정에 대하여 설명하도록 하겠다.Finally, a fifth development process will be described for the case where the development environment is the fifth development environment in which the service change result according to the update is provided to the user's set-top box.
수행제어부(320)는, 개발환경이 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우, 셋탑박스로부터 웹브라우져를 통해 서비스변경결과가 요청되면, 서비스변경결과가 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어한다.When the development environment is the fifth development environment in which the development environment provides the service change result according to the update to the user's set-top box, when the service change result is requested from the set-top box through the web browser, the service change result is set-top. The fifth development process to be transmitted to the box is controlled to be performed.
이와 관련하여, 도 3의 (g,h)에는 기존 서비스변경결과를 사용자에게 제공하는 방안과, 본 발명의 서비스변경결과를 사용자에게 제공하는 방안의 일례가 도시되어 있다. 이하에서는 설명의 편의를 위해, 사용자(고객)가 이용하는 사용자단말(200)이 셋탑박스(200a)인 것으로 언급하여 설명하도록 하겠다.In this regard, FIG. 3 (g, h) shows an example of a method of providing a user with a result of existing service change and a method of providing a user with a result of service change of the present invention. Hereinafter, for convenience of description, the
도 3의 (e)에 도시된 바와 같이, IPTV 서비스의 대부분은 사용자(고객)의 셋탑박스를 통해서 이루어지는데, 헤드엔드(Head-end)에서 특정서비스(예: VoD)와 관련된 애플리케이션의 업데이트를 신속하게 수행하더라도, 셋탑박스(200a)에서 서비스 반영이 지연되면 결국 사용자(고객)에게 서비스 지연이 발생할 수 밖에 없다.As shown in (e) of FIG. 3, most of the IPTV services are provided through a set-top box of a user (customer), and the head-end updates an application related to a specific service (eg, VoD). Even if performed quickly, if the service reflection is delayed in the set-
즉, 기존에는 셋탑박스(200a)에서 특정서비스(예: VoD)와 관련된 모든 애플리케이션을 탑재하고 있어, 애플리케이션의 업데이트를 수행해야 할 때에는 셋탑박스(200a)를 전반적으로 업데이트해야 했다. 이러한 셋탑박스(200a)가 수백 만대인 경우에는 업데이트하기까지 많은 시간과 노력이 소요되는 한계점이 존재한다.That is, in the past, the set-
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (h)에 도시된 바와 같이, 셋탑박스(200a)에는 웹(Web) 브라우져의 기능만이 탑재되도록 하고, 특정서비스(예: VoD)와 관련된 모든 애플리케이션은 헤드엔드(Head-end)에 구비되도록 구현한다.In order to solve this problem, in the present invention, as shown in (h) of FIG. 3, the set-
이에, 셋탑박스(200a)는 웹브라우져를 통해 애플리케이션의 업데이트에 대한 수행결과를 요청하게 되며, 이러한 요청을 수신한 수행제어부(320)에서는 서비스변경결과가 셋탑박스(200a)로 전송되도록 하는 제5 개발처리과정을 수행할 수 있게 되는 것이다. Accordingly, the set-
이하에서는, 도 4를 참조하여, 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 보다 구체적으로 설명하겠다. 도 5에서는 설명의 편의를 위해 전술의 도 1 내지 도 3에서 언급한 참조번호를 언급하여 설명하도록 하겠다.Hereinafter, with reference to Figure 4, the operation flow by the components in the communication structure according to an embodiment of the present invention will be described in more detail. In FIG. 5, for convenience of description, reference will be made to the reference numerals mentioned in FIGS. 1 to 3.
서비스관리장치(300)는, 개발자단말(100)로부터 특정서비스(예: VoD)와 관련된 애플리케이션 생성을 위한 개발결과정보가 수신되면, 개발결과정보로부터 다수의 응용프로그램을 확인한다(S100)When the
이후, 서비스관리장치(300)는, 개발결과정보의 다수의 응용프로그램을 특정플랫폼(PaaS)에서 응용 프로그램이 구동되는 단위인 컨테이너(container)에 대응되도록 분리하여 응용단위앱이 생성되도록 제어한다(S101)Thereafter, the
즉, 서비스관리장치(300)는, 응용프로그램의 개수를 기반으로 응용단위앱을 생성한다. 예를 들어, 개발결과정보에 포함된 응용프로그램의 개수가 3개이면, 서비스관리장치(300)는, 응용프로그램의 개수(3)만큼의 응용단위앱을 생성하게 된다. 물론, 이와 달리, 응용프로그램의 조합이나, 운영자의 설정에 따라 응용단위앱의 생성이 달라질 수도 있음은 물론이다.That is, the
결국, 응용단위앱은, 특정서비스(예: VoD)의 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 컨테이너(container) 상에 생성된다. 즉, 컨테이너(container) 별로 서로 다른 응용프로그램이 탑재되어 독립적인 응용단위앱으로 동작하게 된다.As a result, the application unit app is generated on the container corresponding to at least one application program associated with an application of a specific service (eg, VoD). In other words, different applications are loaded for each container to operate as an independent application unit app.
이처럼 컨테이너(container) 상에 응용단위앱이 구현될 수 있도록 하기 위해서는, 운영체계(Operating system)와 런타임(Runtime) 환경 등이 IaaS(Infra as a Service) 상에 구비되어야 하며, 이에 기존과 달리 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)이 제거될 수 있어 응용단위앱의 독립성을 보장할 수 있게 되는 것이다.In order to allow an application unit app to be implemented on a container as described above, an operating system and a runtime environment must be provided on an IaaS (Infra as a Service). System dependencies (Configuration, run time environment, etc.) of the service (e.g. VoD) application can be removed, thereby ensuring the independence of the application unit app.
전술에 따라 특정서비스(예: VoD)와 관련된 애플리케이션이 응용단위앱으로 생성되면, 서비스관리장치(300)는, 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어한다(S102). According to the above, when an application related to a specific service (eg, VoD) is generated as an application unit app, the
여기서, 응용단위앱이 적용된 개발환경은, 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과, 애플리케이션의 부하증감을 관리하는 제2 개발환경과, 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과, 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과, 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함할 수 있다. Here, the development environment to which the application unit app is applied includes a first development environment for providing microservices through a corresponding application of the application unit app, a second development environment for managing load increase and decrease of the application, and a corresponding application of the application unit app. At least one of a third development environment that updates the program, a fourth development environment that performs tests related to user response according to the update, and a fifth development environment that provides the set-top box of the user with the result of service change according to the update It may include.
먼저, 개발환경이 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우(S103의 YES), 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어한다(S104). First, if the development environment is the first development environment that provides microservices through the corresponding application of the application unit app (YES in S103), the corresponding application of the application unit app to provide a microservice corresponding to each specific function. The first development process is controlled to be performed (S104).
보다 구체적으로 설명하면, 도 3의 (a)에 도시된 바와 같이, 기존에는 IPTV 서비스를 위한 특정서비스(예: VoD)와 관련된 애플리케이션이 모놀리틱 구조에서 처리되었으므로, 서비스(Service)에서 스토리지(Storage)까지 하나의 아키텍쳐에서 실행되게 된다.More specifically, as shown in (a) of FIG. 3, since an application related to a specific service (eg, VoD) for an IPTV service has been processed in a monolithic structure, storage ( Storage) to run on one architecture.
이에, 하나의 WAS(Web Application Server)에 존재하는 기능들이 서로 영향을 미치게 되어, 애플리케이션 단위로의 소프트웨어 업데이트(Software update) 및 신규 애플리케이션 생성이 어려운 한계점이 존재했다.As a result, functions existing in a single web application server (WAS) affect each other, so that there is a limitation in that it is difficult to update software and create new applications at an application level.
이러한 문제를 해소하기 위해, 본 발명에서는 전술에서 언급한 특정서비스(예: VoD)의 애플리케이션이 가지고 있는 시스템 종속성(Configuration, run time 환경 등)을 제어하여 독립성이 보장되도록 한 컨테이너(container) 상에 서로 다른 응용프로그램이 탑재되어 응용단위앱이 생성되도록 하고, 생성된 응용단위앱을 기반으로 특정서비스(예: VoD)의 애플리케이션이 제공되도록 한다.In order to solve this problem, the present invention controls the system dependencies (Configuration, run time environment, etc.) of the application of a specific service (e.g. VoD) mentioned above on the container to ensure independence Different application programs are mounted so that an application unit app is generated, and an application of a specific service (eg, VoD) is provided based on the generated application unit app.
즉, 도 3의 (b)에 도시된 바와 같이, 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스(Micro Service, MS)를 제공할 수 있도록 하여, 기존 모놀리틱 구조와 달리 응용단위앱의 업데이트 및 신규 생성이 가능하도록 하였다.That is, as shown in (b) of FIG. 3, the corresponding application of the application unit app can provide a micro service (Micro Service, MS) corresponding to each specific function, unlike the existing monolithic structure. It is possible to update and newly create application unit apps.
이에, 응용단위앱에 대응하는 마이크로서비스(MS)들은 서로간의 통신을 정해진 API(application programming interface)를 통해서 수행하게 되므로, 각각 마이크로서비스(MS)의 내부 업데이트 시에도 마이크로서비스(MS) 간의 통신에는 영향을 주지 않고 특정 기능에 해당하는 마이크로서비스를 제공하는 제1 개발처리과정을 수행할 수 있게 되는 것이다.Accordingly, since the microservices (MS) corresponding to the application unit app performs communication with each other through a predetermined application programming interface (API), communication between the microservices (MS) is performed even when the microservices (MS) are internally updated. It is possible to perform the first development process for providing a microservice corresponding to a specific function without affecting.
한편, 개발환경이 제1 개발환경이 아닌 경우(S103의 NO), 서비스관리장치(300)는 개발환경이 특정서비스(예: VoD)와 관련된 애플리케이션의 부하증감을 관리하는 제2 개발환경인지를 판단한다(S105). On the other hand, if the development environment is not the first development environment (NO in S103), the
개발환경이 제2 개발환경인 경우(S105의 YES), 서비스관리장치(300)는 부하증가 시에는 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어한다(S106).When the development environment is the second development environment (YES in S105), the
보다 구체적으로, 전술에서 언급한 도 3의 (a,b)를 참고하여 살펴보면, 특정서비스(예: VoD)를 이용하는 가입자가 증가하거나, 사용량 증대로 인해 운영중인 특정서비스(예: VoD)의 애플리케이션들의 부하가 증가할 수 있다. More specifically, referring to (a, b) of FIG. 3 mentioned above, the number of subscribers using a specific service (eg, VoD) increases, or the application of a specific service (eg, VoD) in operation due to increased usage. Their load may increase.
이러한 경우에는 서비스의 안정성을 위하여 애플리케이션을 증설(scale out)시켜야 한다. 반대로, 서비스의 안정화된 경우에는 애플리케이션을 감축(scale in)시키는 과정을 수행해야 한다.In this case, the application must be scaled out for the stability of the service. On the contrary, when the service is stabilized, the process of scaling in the application must be performed.
보다 구체적으로 살펴보면, 도 3의 (a)에 도시된 바와 같이, 기존에는 애플리케이션의 증설(Scale out)시 6단계 이상의 작업이 필요한 구조로 많은 시간이 소비되었다.In more detail, as shown in (a) of FIG. 3, a lot of time has been spent in the conventional structure requiring more than six steps when scaling out an application.
즉, 애플리케이션의 증설(Scale out)을 위해서는, 인프라(예: 서버, 스토리지)를 준비해야 하는 1단계, 네트워크를 구성해야 하는 2단계, OS를 설치해야 하는 3단계, 런타임 환경을 구성해야 하는 4단계, 애플리케이션을 설치해야 하는 5단계 및 로더밸런서(Load balancer)와 데이터베이스(DB)와 연결해야 하는 6단계 이상의 관련 작업이 요구된다.In other words, to scale out your application, you need to prepare your infrastructure (e.g. servers, storage),
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (b)에 도시된 바와 같이, 전술에서 언급한 응용단위앱의 독립성을 기반으로 애플리케이션을 증설(Scale out)하도록 하였으며, 이에 앞서 언급한 1-6단계가 별도로 준비되지 않더라도 클라우드 환경에서 신규 응용단위앱이 바로 증설되도록 하는 제2 개발처리과정을 수행할 수 있게 된다.In order to solve this problem, in the present invention, as shown in (b) of FIG. 3, the application is scaled out based on the independence of the application unit app mentioned above. Even if the six steps are not prepared separately, it is possible to perform a second development process that allows new application unit apps to be immediately expanded in a cloud environment.
결국, 본 발명의 실시예에서는 특정서비스(예: VoD)와 관련된 애플리케이션의 접속량이 많아져 갑작스럽게 부하가 증가하게 될 경우에도 자동으로 새로운 신규 응용단위앱이 증설되어 신속하게 대응할 수 있게 되므로, 보다 안정적인 IPTV 서비스를 제공할 수 있게 된다.As a result, in the embodiment of the present invention, even when the load of the application related to a specific service (eg, VoD) increases, and a sudden increase in load, a new new application unit app is automatically added and can respond quickly. Stable IPTV service can be provided.
만일, 제2 개발처리과정에는 부하가 감소되었을 때, 응용단위앱 및 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 과정이 포함되는 것이 바람직할 것이다. If the load is reduced, the second development process may preferably include a process of removing at least one of the application unit app and the new application unit app.
한편, 개발환경이 제2 개발환경이 아닌 경우(S105의 NO), 서비스관리장치(300)는 개발환경이 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인지를 판단한다(S107). On the other hand, if the development environment is not the second development environment (NO in S105), the
개발환경이 제3 개발환경인 경우(S107의 YES), 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행이 수행되도록 제어한다(S108).If the development environment is the third development environment (YES in S107), the third development process for controlling the development, verification, and distribution of the corresponding application program of the application unit application is controlled to be performed (S108).
먼저, 도 3의 (c,d)를 기반으로 본 발명의 애플리케이션을 업데이트 하는 방안을 살펴보기에 앞서, 애플리케이션을 업데이트가 발생하게 되는 원인을 간략하게 살펴보면, 최근 IPTV 서비스는 컨텐츠에 대한 업데이트가 빈번하게 발생함에 따라 잦은 편성 변경으로 인해 UI 변경 역시 빈번하게 이루어지고 있다. First, before looking at the method of updating the application of the present invention based on (c, d) of Figure 3, briefly look at the cause of the update occurs in the application, the recent IPTV service is frequently updated content As a result, the UI changes are frequently made due to frequent organizational changes.
또한, 사전 예고된 이벤트성 컨텐츠가 송출되는(예: 사회적 빅이슈, 대통령선거 중계방송 등) 상황뿐만 아니라, 사전에 예고되지 않은 이벤트(예: 고객요청)가 돌발적으로 발생하는 상황 등이 증가됨에 따라 트래픽 변경이 빈번하게 발생되고 있다.In addition, as well as the situation in which event-based content that is pre-announced (e.g., social big issues, presidential election broadcasting, etc.) is increased, the situation in which unexpected events (e.g. customer requests) occur unexpectedly is increased. As a result, traffic changes occur frequently.
즉, IPTV 서비스는 변화가 심한 분야이며, 경쟁대응 및 기술 트렌드를 반영하기 위하여 업데이트를 필수적으로 수행해야만 한다. 그러나, 업데이트의 절차와 단계가 복잡하여 수시로 업데이트를 수행하지 못하는 실정이며, 단순히 정기적(예: 1년)인 업데이트만이 수행되고 있다.In other words, IPTV service is a field that is highly changed, and updates must be performed to reflect competition and technology trends. However, due to the complexity of the update procedure and steps, the update cannot be performed from time to time, and only a regular update (eg, 1 year) is performed.
보다 구체적으로 살펴보면, 도 3의 (c)에 도시된 바와 같이, 기존에는 개발을 위한 개발장치가 구비되는 환경(E1), 테스트를 위한 검증장치가 구비되는 환경(E2), 배포를 위한 상용장치가 구비되는 환경(E3)이 모두 물리적으로 분리되어 있다. Looking in more detail, as shown in (c) of Figure 3, the existing environment (E1) equipped with a development apparatus for development, the environment (E2) equipped with a verification apparatus for testing, commercial devices for distribution The environment E3 provided with is all physically separated.
이에, 애플리케이션을 업데이트하기 위해서는 각 환경(E1, E2, E3) 별 애플리케이션 인프라(Application Infra; 예 서버, 스토리지)로 접속하여 애플리케이션을 수작업으로 순차적으로 매뉴얼 백업한 후 업데이트 하여야만 하는 번거로움이 존재한다.Therefore, in order to update an application, there is a hassle that requires manual manual backup of the application by sequentially connecting the application infrastructure (Application Infra; server, storage) for each environment (E1, E2, E3) and updating the application manually.
또한, 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치의 시스템 환경과 운영환경이 모두 상이하기 때문에 환경의 차이로 인한 애플리케이션의 동작 차이가 존재하며, 이에 운영자는 작업 일정 협의 등의 절차를 거쳐야만 하는 애플리케이션을 업데이트하게 되는 한계점이 존재한다. In addition, since the system environment and the operating environment of the development device, the verification device, and the commercial device provided for each environment (E1, E2, E3) are all different, there is a difference in operation of the application due to the difference in environment, and the operator There is a limit to updating an application that must go through a process such as scheduling.
나아가, 애플리케이션의 업데이트를 원복할 때에도 각각의 환경(E1, E2, E3) 별로 구비된 개발장치, 검증장치, 및 상용장치에 접속하여 작업해야 하므로 업데이트 및 원복 시마다 불필요한 시간을 낭비되는 한계점 역시 존재한다.In addition, there is also a limitation that wastes unnecessary time during update and recovery, since users must connect to and work on development devices, verification devices, and commercial devices provided for each environment (E1, E2, and E3) to restore application updates. .
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (d)에 도시된 바와 같이, 특정플랫폼(PaaS) 상에 개발장치, 검증장치, 상용장치가 모두 구비되도록 구현하여, 개발자가 물리적 이동 및 개별 장치(개발, 검증, 상용) 별로 접속할 필요 없이, 특정플랫폼(PaaS)을 기반으로 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 한다.In order to solve this problem, in the present invention, as shown in (d) of FIG. 3, the developer, the verification device, and the commercial device are all provided on a specific platform (PaaS), so that the developer can move physically and individually. A third development process is performed so that a corresponding application of an application unit application is developed, verified, and distributed in connection with an update based on a specific platform (PaaS) without having to connect to each device (development, verification, commercial use).
한편, 개발환경이 제3 개발환경이 아닌 경우(S107의 NO), 서비스관리장치(300)는 개발환경이 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인지를 판단한다(S109).On the other hand, if the development environment is not the third development environment (NO in S107), the
개발환경이 제4 개발환경인 경우(S109의 YES), 서비스관리장치(300)는 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어한다(S110).If the development environment is the fourth development environment (YES in S109), the
먼저 도 3의 (e,f)를 기반으로 본 발명의 업데이트에 따른 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 방안을 살펴보기에 앞서, 테스트(예: A/B test)를 수행하는 배경을 살펴보면, 특정서비스(예: VoD)의 애플리케이션의 업데이트 시에는 시범적으로 일부 사용자(고객)에게 업데이트를 적용하여 사용자의 반응에 따라 업데이트 확대 여부를 결정한다.First, before looking at the method of performing a test (eg A / B test) related to user response according to the update of the present invention based on (e, f) of FIG. 3, a test (eg A / B test) In the background of performing), when an application of a specific service (for example, VoD) is updated, an update is applied to some users (customers) to determine whether to expand the update according to the user's response.
이처럼 업데이트 확대 여부를 결정하게 되면 시행착오를 줄일 수 있으나, 일부 사용자(고객)에게만 시범적으로 업데이트를 적용해야 할 뿐만 아니라, 업데이트를 적용하는 절차가 복잡하여 테스트(예: A/B test)를 생략하고 단순 설문 조사 만으로 업데이트를 확정하여 진행하는 경우가 빈번하게 발생하게 된다.This decision can reduce trial and error, but it is not only necessary to apply the update to a few users (customers), but also the complicated procedure of applying the update makes it difficult to test (eg A / B test). Occasionally, it is frequently omitted to confirm the update with a simple survey.
보다 구체적으로 살펴보면, 도 3의 (e)에 도시된 바와 같이, 기존에는 특정서비스(예: VoD)와 관련된 애플리케이션 중 동일 기능을 하는 애플리케이션을 선택하여 업데이트한 후, 사용자A는 업데이트된 애플리케이션(410)에 접속되도록 하고, 사용자B는 기 이용되던 애플리케이션(420)에 접속되도록 하여 사용자A와 사용자B 간의 비교 테스트를 수행하였다.In more detail, as shown in (e) of FIG. 3, after a user selects and updates an application having the same function among applications related to a specific service (for example, VoD), user A updates the updated application 410. ), And user B was connected to the previously used application 420 to perform a comparison test between user A and user B.
이러한 기존 방식은, 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하고 관련 서버의 로그를 별도로 수집해야 하는 작업을 수행해야 하는데, 이를 위해서는 개발자/서버 운용자의 도움이 필수적으로 요구될 뿐만 아니라 작업 준비, 실행 및 로그 수집을 위한 많은 시간과 노력이 소비되는 문제가 발생한다.This existing method requires the task of changing the configuration of the load balancer of a commercial device and collecting logs of related servers separately, which requires not only the help of the developer / server operator but also the work. The problem is that it takes a lot of time and effort to prepare, run, and collect logs.
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (f)에 도시된 바와 같이, 서비스관리장치(300)가 사용자(고객)를 구분할 수 있는 식별자를 인지할 수 있도록 하여, 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 연결(제공)되도록 한다.In order to solve this problem, in the present invention, as shown in (f) of FIG. 3, the
예를 들어, 사용자A와 사용자B에게 사용자반응과 관련되는 테스트(예: A/B test)를 수행하는 경우, 서비스관리장치(300)는, 사용자(고객) 별 식별자를 구분하기만 한다면 식별자에 매칭된 사용자를 확인하여 사용자반응을 확인하려는 해당 응용단위앱을 사용자 별로 연결시킬 수 있다.For example, when performing a test (eg, A / B test) related to a user response to user A and user B, the
즉, 식별자1을 갖는 사용자A에게는 업데이트된 응용단위앱(500)이 연결되도록 하며, 식별자2를 갖는 사용자B에게는 기 이용되던 응용단위앱(510)이 연결되도록 한다.That is, the updated
이처럼 본 발명에서는 기존 상용장치의 로더밸런서(Load Balancer)의 구성을 변경하지 않고도 플랫폼 단에서 소프트웨어적(s/w)적으로 사용자(고객) 별로 사용자반응을 확인하려는 해당 응용단위앱이 연결되도록 할 수 있다. 이에, 개발자/서버 운용자의 도움이 없이도 다양한 테스트가 수행되도록 하는 제4 개발처리과정이 수행되도록 제어할 수 있게 된다.As such, in the present invention, without changing the configuration of the load balancer (load balancer) of the existing commercial device to be connected to the application unit app that wants to check the user response for each user (customer) by software (s / w) at the platform stage Can be. Thus, it is possible to control the fourth development process to perform a variety of tests without the help of the developer / server operator.
한편, 개발환경이 제4 개발환경이 아닌 경우(S109의 NO), 서비스관리장치(300)는 개발환경이 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 것으로 판단한다.On the other hand, if the development environment is not the fourth development environment (NO in S109), the
이처럼 개발환경이 제5 개발환경인 경우, 서비스관리장치(300)는 셋탑박스로부터 웹브라우져를 통해 서비스변경결과가 요청되면, 서비스변경결과가 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어한다(S111).As such, when the development environment is the fifth development environment, when the service change result is requested from the set top box through the web browser, the
보다 구체적으로 살펴보면, 도 3의 (e)에 도시된 바와 같이, IPTV 서비스의 대부분은 사용자(고객)의 셋탑박스를 통해서 이루어지는데, 헤드엔드(Head-end)에서 특정서비스(예: VoD)와 관련된 애플리케이션의 업데이트를 신속하게 수행하더라도, 셋탑박스(200a)에서 서비스 반영이 지연되면 결국 사용자(고객)에게 서비스 지연이 발생할 수 밖에 없다.In more detail, as shown in (e) of FIG. 3, most of the IPTV services are performed through a set-top box of a user (customer), and a specific service (eg, VoD) is associated with a head-end. Even if the related application is quickly updated, if the service reflection is delayed in the set-
즉, 기존에는 셋탑박스(200a)에서 특정서비스(예: VoD)와 관련된 모든 애플리케이션을 탑재하고 있어, 애플리케이션의 업데이트를 수행해야 할 때에는 셋탑박스(200a)를 전반적으로 업데이트해야 했다. 이러한 셋탑박스(200a)가 수백 만대인 경우에는 업데이트하기까지 많은 시간과 노력이 소요되는 한계점이 존재한다.That is, in the past, the set-
이러한 문제를 해소하기 위해, 본 발명에서는 도 3의 (h)에 도시된 바와 같이, 셋탑박스(200a)에는 웹(Web) 브라우져의 기능만이 탑재되도록 하고, 특정서비스(예: VoD)와 관련된 모든 애플리케이션은 헤드엔드(Head-end)에 구비되도록 구현한다.In order to solve this problem, in the present invention, as shown in (h) of FIG. 3, the set-
이에, 셋탑박스(200a)는 웹브라우져를 통해 애플리케이션의 업데이트에 대한 수행결과를 요청하게 되며, 이러한 요청을 수신한 서비스관리장치(300)에서는 서비스변경결과가 셋탑박스(200a)로 전송되도록 하는 제5 개발처리과정을 수행할 수 있게 되는 것이다.Accordingly, the set-
이상에서 설명한 바와 같이 본 발명에 따른 서비스 관리를 위한 장치 및 방법에 의하면, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있게 됨에 따라 서비스 중단 없이 다수의 서버에서 운용중인 애플리케이션을 관리, 즉 애플리케이션 업데이트, 신규 서비스 기능의 추가, 사용자반응 테스트, 및 부하에 따른 애플리케이션들의 자동 증감(scale out/in), 헤드엔드(Head-end)의 서비스변경결과 즉시 제공 등을 용이하게 수행할 수 있어 보다 유연한 서비스를 제공할 수 있는 효과를 도출한다. As described above, according to the apparatus and method for service management according to the present invention, an application related to a specific service is implemented in a container (hereinafter referred to as an application unit) that operates in an application unit, thereby optimizing even if the development environment is different. As developed development processes can be performed, it is possible to manage applications running on multiple servers without service interruptions, ie update applications, add new service functions, test user response, and automatically scale out / load applications according to load. in), Head-end service change result can be easily provided immediately, resulting in more flexible service.
본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments of the present invention may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.Although the present invention has been described in detail with reference to preferred embodiments, the present invention is not limited to the above-described embodiments, and the technical field to which the present invention belongs without departing from the gist of the present invention as claimed in the following claims. Anyone skilled in the art will have the technical idea of the present invention to the extent that various modifications or changes are possible.
본 발명의 서비스 관리를 위한 장치 및 방법에 따르면, 특정서비스와 관련된 애플리케이션이 응용프로그램 단위로 동작하는 컨테이너(이하, 응용단위앱)로 구현되도록 함으로써, 개발환경이 상이하더라도 최적화된 개발처리과정이 수행될 수 있도록 하는, 새로운 PaaS 기반의 응용단위앱을 통한 IPTV 서비스 관리 방안을 실현할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the apparatus and method for service management of the present invention, an application related to a specific service is implemented in a container (hereinafter referred to as an application unit) that operates in an application unit, so that an optimized development process is performed even though the development environment is different. In this regard, IPTV service management can be realized through a new PaaS-based application unit app, which overcomes the limitations of existing technologies. It is an invention with industrial applicability because it is not only sufficient but also practically evident.
100: 개발자단말 200: 사용자단말
300: 서비스관리장치
310: 생성제어부 320: 수행제어부
330: 저장부100: developer terminal 200: user terminal
300: service management device
310: generation control unit 320: execution control unit
330: storage unit
Claims (12)
상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어부
를 포함하며,
상기 응용단위앱은 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되고,
상기 생성제어부는 상기 응용프로그램의 개수를 기반으로 상기 응용단위앱을 생성하는 것을 특징으로 하는 서비스관리장치.A generation control unit for controlling an application related to an IPTV (Internet Protocol Television) service to be generated as an application unit app on a specific platform; And
Performance control unit for controlling the development process related to the application unit app is performed based on the result of confirming the development environment to which the application unit app is applied
Including;
The application unit app is generated corresponding to at least one application program associated with the application,
The generation control unit is a service management device, characterized in that for generating the application unit app based on the number of the application program.
상기 수행제어부는,
상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치.The method of claim 1,
The performance control unit,
When the development environment is a first development environment that provides a microservice through a corresponding application of the application unit app, the first development for the corresponding application of the application unit app to provide a microservice corresponding to a specific function, respectively Service management apparatus, characterized in that for controlling the processing to be performed.
상기 수행제어부는,
상기 개발환경이 상기 애플리케이션의 부하증감을 관리하는 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치.The method of claim 1,
The performance control unit,
When the development environment is a second development environment that manages the load increase and decrease of the application, when the load increases, it controls to create a new application unit app other than the application unit app, when the load decreases the application unit app and the new And a second development process for removing at least one of the application unit apps.
상기 수행제어부는,
상기 개발환경이 상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치.The method of claim 1,
The performance control unit,
If the development environment is a third development environment that updates the corresponding application of the application unit app, a third development process is performed such that the corresponding application of the application unit app is developed, verified, and distributed in connection with the update. Service management apparatus, characterized in that for controlling.
상기 수행제어부는,
상기 개발환경이 상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치.The method of claim 6,
The performance control unit,
If the development environment is a fourth development environment for performing a test related to the user response according to the update, the application unit app to check the user response based on the result of confirming the identification number of the user performing the test And a fourth development process to be provided to the user.
상기 수행제어부는,
상기 개발환경이 상기 업데이트에 따른 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 것을 특징으로 하는 서비스관리장치.The method of claim 6,
The performance control unit,
When the development environment is a fifth development environment that provides a service change result according to the update to a user's set-top box, when the service change result is requested from the set-top box through a web browser, the service change result is the set-top box. Service management apparatus, characterized in that to control to perform a fifth development process to be transmitted to.
상기 응용단위앱이 적용된 개발환경을 확인한 결과를 기반으로 상기 응용단위앱과 관련되는 개발처리과정이 수행되도록 제어하는 수행제어단계를 포함하며,
상기 응용단위앱은 상기 애플리케이션과 관련된 적어도 하나의 응용프로그램에 대응하여 생성되고,
상기 생성제어단계는 상기 응용프로그램의 개수를 기반으로 상기 응용단위앱을 생성하는 단계를 포함하는 것을 특징으로 하는 서비스관리장치의 동작 방법.A generation control step of controlling an application related to an IPTV (Internet Protocol Television) service to be generated as an application unit app on a specific platform; And
And a performance control step of controlling a development process related to the application unit app based on a result of confirming the development environment to which the application unit app is applied.
The application unit app is generated corresponding to at least one application program associated with the application,
The generation control step of operating the service management device, characterized in that for generating the application unit app based on the number of the application program.
상기 개발환경은,
상기 응용단위앱의 해당 응용프로그램을 통해 마이크로서비스를 제공하는 제1 개발환경과,
상기 애플리케이션의 부하증감을 관리하는 제2 개발환경과,
상기 응용단위앱의 해당 응용프로그램을 업데이트하는 제3 개발환경과,
상기 업데이트에 따른 사용자반응과 관련되는 테스트를 수행하는 제4 개발환경과,
상기 업데이트에 따른 해당 서비스변경결과를 사용자의 셋탑박스로 제공하는 제5 개발환경 중 적어도 하나를 포함하는 것을 특징으로 하는 서비스관리장치의 동작 방법.The method of claim 9,
The development environment,
A first development environment for providing a microservice through a corresponding application of the application unit app;
A second development environment for managing load increase and decrease of the application;
A third development environment for updating a corresponding application of the application unit app,
A fourth development environment for performing a test related to a user response according to the update;
And at least one of a fifth development environment for providing the service change result according to the update to the user's set-top box.
상기 수행제어단계는,
상기 개발환경이 제1 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 각각 특정 기능에 해당하는 마이크로서비스를 제공하도록 하는 제1 개발처리과정이 수행되도록 제어하는 단계;
상기 개발환경이 제2 개발환경인 경우, 부하증가 시에는 상기 응용단위앱 이외의 신규 응용단위앱이 생성되도록 제어하며, 부하감소 시에는 상기 응용단위앱 및 상기 신규 응용단위앱 중 적어도 하나가 제거되도록 하는 제2 개발처리과정이 수행되도록 제어하는 단계;
상기 개발환경이 제3 개발환경인 경우, 상기 응용단위앱의 해당 응용프로그램이 업데이트와 관련되어 개발, 검증, 배포되도록 하는 제3 개발처리과정이 수행되도록 제어하는 단계;
상기 개발환경이 제4 개발환경인 경우, 상기 테스트를 수행하는 사용자의 식별번호를 확인한 결과를 기반으로 상기 사용자반응을 확인하려는 해당 응용단위앱위앱이 해당 사용자에게 제공되도록 하는 제4 개발처리과정이 수행되도록 제어하는 단계; 및
상기 개발환경이 제5 개발환경인 경우, 상기 셋탑박스로부터 웹브라우져를 통해 상기 서비스변경결과가 요청되면, 상기 서비스변경결과가 상기 셋탑박스로 전송되도록 하는 제5 개발처리과정이 수행되도록 제어하는 단계 중 적어도 하나를 포함하는 것을 특징으로 하는 서비스관리장치의 동작 방법.The method of claim 11,
The performance control step,
If the development environment is a first development environment, controlling a first development process to perform a microservice corresponding to a specific function by a corresponding application of the application unit app, respectively;
When the development environment is the second development environment, when the load increases, the new application unit app other than the application unit app is controlled to be generated, and when the load decreases, at least one of the application unit app and the new application unit app is removed. Controlling a second development process to be performed;
If the development environment is a third development environment, controlling to perform a third development process for developing, verifying, and distributing a corresponding application of the application unit app in connection with an update;
If the development environment is a fourth development environment, a fourth development process for providing the corresponding application unit app wee app to check the user response based on the result of confirming the identification number of the user performing the test is provided to the user Controlling to be performed; And
If the development environment is a fifth development environment, if the service change result is requested from the set-top box through a web browser, controlling to perform a fifth development process for transmitting the service change result to the set-top box. Method of operating a service management device comprising at least one of.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170153952A KR102039593B1 (en) | 2017-11-17 | 2017-11-17 | Apparatus and method for managing service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170153952A KR102039593B1 (en) | 2017-11-17 | 2017-11-17 | Apparatus and method for managing service |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190056709A KR20190056709A (en) | 2019-05-27 |
KR102039593B1 true KR102039593B1 (en) | 2019-11-01 |
Family
ID=66679335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170153952A KR102039593B1 (en) | 2017-11-17 | 2017-11-17 | Apparatus and method for managing service |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102039593B1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101405865B1 (en) * | 2010-07-23 | 2014-06-12 | 에스케이플래닛 주식회사 | Method of presentation virtualization of set-top-box, and its system |
KR102105690B1 (en) * | 2016-04-27 | 2020-04-28 | 한국전자통신연구원 | Network Computing Testbed System Based on Open Source Virtualized Cloud Environment |
-
2017
- 2017-11-17 KR KR1020170153952A patent/KR102039593B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20190056709A (en) | 2019-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642599B1 (en) | Preemptive deployment in software deployment pipelines | |
CN106991035B (en) | Host monitoring system based on micro-service architecture | |
KR101802920B1 (en) | Method and apparatus for creating a virtual machine system disk snapshot | |
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 (en) | Instance host configuration | |
US20140007092A1 (en) | Automatic transfer of workload configuration | |
JP2003114801A (en) | System and method to automate management of computer services and programmable devices | |
EP2893443A1 (en) | Re-configuration in cloud computing environments | |
CN109582335B (en) | Method, device and equipment for on-line upgrading of non-interrupt storage cluster nodes | |
EP3879875A1 (en) | Resource change method and device, apparatus, and storage medium | |
US7882232B2 (en) | Rapid resource provisioning with automated throttling | |
EP3321808B1 (en) | Verification system and verification method | |
KR102039593B1 (en) | Apparatus and method for managing service | |
EP3182278A1 (en) | System for automatic preparation of integrated development environments | |
US20140281474A1 (en) | System and Method for Unattended Out of Band Job Execution | |
JP4554581B2 (en) | Job management apparatus, system and program | |
CN112711575A (en) | Deployment method, system and related device of database cluster | |
CN116149707B (en) | Method and device for detecting and avoiding upgrading risk of distributed system | |
WO2022196625A1 (en) | Operation management device, system, and method, and computer-readable medium | |
CN102156685A (en) | Method and device for automatically configuring distributed network system script | |
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 |