KR20230014420A - Software that can provide optimized configurations for systems based on dynamically changing information at run time - Google Patents

Software that can provide optimized configurations for systems based on dynamically changing information at run time Download PDF

Info

Publication number
KR20230014420A
KR20230014420A KR1020210095729A KR20210095729A KR20230014420A KR 20230014420 A KR20230014420 A KR 20230014420A KR 1020210095729 A KR1020210095729 A KR 1020210095729A KR 20210095729 A KR20210095729 A KR 20210095729A KR 20230014420 A KR20230014420 A KR 20230014420A
Authority
KR
South Korea
Prior art keywords
software
configurations
providing
acquired
requested service
Prior art date
Application number
KR1020210095729A
Other languages
Korean (ko)
Inventor
한주원
Original Assignee
주식회사 제이원클라우드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 제이원클라우드 filed Critical 주식회사 제이원클라우드
Priority to KR1020210095729A priority Critical patent/KR20230014420A/en
Publication of KR20230014420A publication Critical patent/KR20230014420A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Stored Programmes (AREA)

Abstract

Disclosed are an autonomous management providing method of a software system capable of providing an optimized system in response to an environment changing in real time, a recording medium storing a program performing the same, and a system with an autonomous management function of software. When a service is requested from a user, all configurations of a system capable of providing the requested service are acquired from a dynamic feature model. A configuration corresponding to the requested service among all the acquired configurations of the system is acquired based on a preset policy to reconstruct resources of the system, and the requested service is provided based on the reconstructed resources. Therefore, an optimized service can be provided in response to an environment changing in real time without intervention of a user.

Description

실행시 동적으로 변화하는 정보에 기초하여 시스템을 위한 최적화된 구성을 제공할 수 있는 소프트웨어 시스템의 자율 관리 제공 방법{Software that can provide optimized configurations for systems based on dynamically changing information at run time}Method for providing self-management of a software system capable of providing optimized configuration for a system based on information that dynamically changes during execution

본 발명은 소프트웨어 개발 방법에 관한 것으로, 더욱 상세하게는 실행시 동적으로 변화하는 정보에 기초하여 시스템을 위한 최적화된 구성을 제공할 수 있는 소프트웨어 시스템의 자율 관리 제공 방법, 이를 수행하는 프로그램을 기록한 기록매체 및 소프트웨어의 자율 관리 기능을 구비한 시스템에 관한 것이다The present invention relates to a software development method, and more particularly, to a method for providing autonomous management of a software system capable of providing an optimized configuration for a system based on information that dynamically changes during execution, and a record of a program executing the same. It relates to a system having a self-management function of media and software.

제품 계열 공학(PLE : Product Line Engineering)은 소프트웨어를 개발할 때 체계적인 재사용 기법을 적용함으 로써 동일 영역에서 다양하게 특화된 소프트웨어를 신속하게 개발할 수 있는 효과적인 방법을 제공하는 접근 방 법으로, 영역(Domain)을 분석하여 한 영역에 속한 다양한 어플리케이션들의 공통점과 차이점을 추출하고, 이에 기초하여 재사용이 가능한 제품 계열 자산(product line asset)들을 정의하여 빠른 시간 안에 같은 제품 계열의 소프트웨어를 개발하는 방법론이다.Product Line Engineering (PLE) is an approach that provides an effective way to quickly develop various specialized software in the same domain by applying systematic reuse techniques when developing software. It is a methodology to develop software of the same product line in a short time by analyzing and extracting the similarities and differences of various applications belonging to one area, and defining reusable product line assets based on this.

제품 계열 공학을 위한 방법 중에는 1990년 CMU SEI에서 제안한 휘처 기반 소프트웨어 개발(Feature-Oriented Software Development) 방법이 가장 널리 활용되고 있다. 휘처 기반 소프트웨어 개발 방법은 제품의 공통점과 차이점을 영역 전문가(domain expert)가 휘처(feature) 단위로 분석하여 휘처 모델을 정의하고, 응용프로그램 개발자는 정의된 휘처 모델을 기반으로 하여 새로운 제품을 빠른 시간안에 개발할 수 있도록 하는 방법이다.Among the methods for product line engineering, the feature-oriented software development method proposed by CMU SEI in 1990 is the most widely used. In the feature-based software development method, a domain expert analyzes the commonalities and differences of products on a feature-by-feature basis and defines a feature model, and an application program developer develops a new product in a short time based on the defined feature model. It is a way to develop within.

구체적으로, 종래의 휘처 기반 소프트웨어 개발 방법에서는 영역 전문가가 제품의 계열을 분석한 후, 분석한 제 품 계열을 기반으로 제품 계열 재사용 목록(Product Line Reuse Library)을 만들고 이를 휘처 모델(feature model)을 이용하여 관계를 정의한다. 그리고, 어플리케이션 전문가(application engineer)가 휘처 모델을 기반 으로 해당 소프트웨어 시스템의 요구사항에 맞게 새로운 소프트웨어를 용이하게 개발하였다.Specifically, in the conventional feature-based software development method, after a domain expert analyzes a product line, a product line reuse library is created based on the analyzed product line, and this is converted into a feature model. use to define relationships. In addition, the application engineer easily developed new software to meet the requirements of the software system based on the feature model.

그러나, 상술한 종래의 휘처 기반 소프트웨어 개발 방법은 소프트웨어 개발 시간 및 경제적 비용을 효과적으로 사용할 수 있는 장점은 있으나, 소프트웨어 개발자가 주어진 환경을 고려하여 수동적으로 휘처를 선택하여 정적 으로 소프트웨어 시스템을 구성하기 때문에 소프트웨어 시스템이 실행시 실시간으로 변화하는 환경에 동적으로 대응하여 최적화된 시스템을 제공할 수 없고, 이로 인해 사용자의 개입이 필요하다는 단점이 있다.However, the above-described conventional feature-based software development method has the advantage of effectively using software development time and economic cost. When the system is running, it is impossible to provide an optimized system that dynamically responds to a changing environment in real time, and thus, a user's intervention is required.

본 발명의 목적은 실시간으로 변화하는 환경에 상응하여 최적화된 시스템을 제공할 수 있는 소프트웨어 시스템 의 자율 관리 제공 방법을 제공하는 것이다.An object of the present invention is to provide a method for providing autonomous management of a software system capable of providing an optimized system corresponding to a changing environment in real time.

또한, 본 발명의 다른 목적은 상기 소프트웨어 시스템의 자율 관리 제공 방법을 수행하는 프로그램을 기록한 기 록매체를 제공하는 것이다.Another object of the present invention is to provide a recording medium on which a program for performing the method for providing self-management of the software system is recorded.

또한, 본 발명의 또 다른 목적은 실시간으로 변화하는 환경에 상응하여 최적화된 시스템을 제공할 수 있는 소프 트웨어의 자율 관리 기능을 구비한 시스템을 제공하는 것이다.In addition, another object of the present invention is to provide a system equipped with a software self-management function capable of providing an optimized system corresponding to a real-time changing environment.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과 제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 소프트웨어 시스템의 자율 관리 제공 방법은, 사용자로부터 서비스를 요청받는 단계와, 동적 휘처 모델(dynamic feature model)로부터 상기 요청받은 서비스를 제공할 수 있는 시스템의 모든 구성(configuration)을 획득하는 단계와, 미리 설정된 정책에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득하는 단계와, 상기 획득한 구 성에 기초하여 시스템의 자원을 재구성하는 단계 및 상기 재구성된 자원에 기초하여 상기 요청받은 서비스를 제 공하는 단계를 포함한다. 상기 동적 휘처 모델은 소프트웨어 시스템이 실행시에 동작할 수 있는 객체의 구성 (configuration)을 나타낼 수 있다. 상기 동적 휘처 모델은 소프트웨어 시스템이 설치된 시스템이 실행시에 변 화하는 값들을 정의하는 실행중 휘처(runtime feature)를 포함할 수 있다. 상기 획득한 시스템의 모든 구성 중 미리 설정된 정책에 기초하여 요청받은 서비스에 상응하는 구성을 획득하는 단계는, 상기 시스템의 상기 실행중 휘처(runtime feature)에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 가장 적합한 구 성을 획득할 수 있다. 상기 소프트웨어 시스템의 자율 관리 제공 방법은, 상기 미리 설정된 정책에 기초하여 상 기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득하는 단계 이전에, 상기 시스템 또는 주위의 물리적인 환경으로부터 상황(context) 정보를 획득하는 단계를 더 포함할 수 있다. 상기 미리 설정 된 정책에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득하는 단계는, 상기 미리 설정된 정책 및 상기 획득한 상황 정보에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득할 수 있다.A method for providing autonomous management of a software system according to an aspect of the present invention for achieving the above object of the present invention includes receiving a service request from a user, and providing the requested service from a dynamic feature model. Acquisition of all configurations of a system capable of performing the service; acquiring a configuration corresponding to the requested service among all configurations of the acquired system based on a preset policy; and based on the obtained configuration. and reconfiguring system resources and providing the requested service based on the reconfigured resources. The dynamic feature model may represent a configuration of objects that can operate when the software system runs. The dynamic feature model may include a runtime feature that defines values that change during execution of a system in which a software system is installed. Acquiring a configuration corresponding to the requested service based on a preset policy from among all the acquired configurations of the system may include: among all the acquired configurations of the system based on the runtime feature of the system. You can obtain the most suitable configuration for the requested service. The method for providing self-management of the software system may, prior to the step of obtaining a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy, from the system or a surrounding physical environment. The step of obtaining context information may be further included. Acquiring a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy may include all configurations of the acquired system based on the preset policy and the acquired context information. Among them, a configuration corresponding to the requested service may be obtained.

또한, 상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 소프트웨어 시스템의 자율 관리 제공 방법을 수행하는 프로그램을 기록한 기록매체는, 요청된 서비스를 제공할 수 있는 시스템의 모든 구성 (configuration)을 동적 휘처 모델(dynamic feature model)로부터 획득하는 단계와, 미리 설정된 정책에 기초 하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득하는 단계와, 상기 획득 한 구성에 기초하여 시스템의 자원을 재구성하는 단계 및 상기 재구성된 자원에 기초하여 상기 요청받은 서비스 를 제공하는 단계를 수행하는 프로그램이 기록된다.In addition, a recording medium recording a program for performing a method for providing self-management of a software system according to an aspect of the present invention for achieving the other object of the present invention described above includes all components of the system capable of providing the requested service ( configuration from a dynamic feature model, obtaining a configuration corresponding to the requested service among all configurations of the acquired system based on a preset policy, and A program performing the step of reconfiguring system resources based on the reconfiguration and the step of providing the requested service based on the reconfigured resources is recorded.

또한, 본 발명의 또 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 소프트웨어 자율 관리 기능을 구비한 시스템은, 요청받은 서비스를 제공할 수 있는 시스템의 모든 구성(configuration)을 제공하는 동적 휘처 모델과, 미리 설정된 정책 정보에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하 는 구성을 제공하는 자율 관리자 및 상기 자율 관리자로부터 요청받은 서비스를 위한 구성을 제공받고, 상기 제 공받은 구성에 기초하여 시스템의 자원을 재구성한 후 재구성된 자원에 기초하여 사용자에게 서비스를 제공하는 코어 시스템을 포함한다. 상기 소프트웨어 자율 관리 기능을 구비한 시스템은 사용자가 설정한 정책을 제공받고 상기 제공받은 정책 또는 상기 제공받은 정책에 상응하는 목표를 상기 자율 관리자에게 제공하는 정책 관리자 및 상기 시스템 또는 주위의 물리적인 환경으로부터 상황 정보를 수집하고 수집한 상황 정보를 상기 자율 관리 자에게 제공하는 상황 관리자를 더 포함할 수 있다. 상기 자율 관리자는 상기 미리 설정된 정책 정보 및 상기 상황 정보에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 제공할 수 있다. 상기 동적 휘처 모델은 상기 시스템이 실행시에 변화하는 값들을 정의하는 실행중 휘처(runtime featur e)를 포함할 수 있다. 상기 자율 관리자는 상기 시스템의 상기 실행중 휘처에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 제공할 수 있다.In addition, a system having a software self-management function according to an aspect of the present invention for achieving another object of the present invention provides a dynamic feature model that provides all configurations of a system capable of providing requested services. and an autonomous manager providing a configuration corresponding to the requested service among all configurations of the acquired system based on preset policy information and a configuration for the service requested from the autonomous manager, and receiving the provided and a core system that reconfigures system resources based on the configuration and then provides services to users based on the reconfigured resources. The system having the software self-management function receives a policy set by a user and provides the provided policy or a target corresponding to the provided policy to the self-administered policy manager and the system or the surrounding physical environment. It may further include a context manager that collects context information and provides the collected context information to the autonomous manager. The autonomous manager may provide a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy information and the context information. The dynamic feature model may include runtime features that define values that change when the system runs. The autonomous manager may provide a configuration corresponding to the requested service among all configurations of the acquired system based on the running features of the system.

상술한 바와 같은 본 발명에 따른 소프트웨어 시스템의 자율 관리 제공 방법 및 소프트웨어의 자율 관리 기능을 구비한 시스템에 따르면, 소프트웨어 시스템이 정적으로 구성될 뿐만 아니라 시스템이 실행중에 실시간으로 변 화하는 환경을 나타내는 실행중 휘처(runtime feature)를 포함하는 동적 휘처 모델을 이용하여 요청된 서비스에 최적화된 구성을 추출하고, 추출된 구성을 이용하여 시스템의 자원을 재구성한 후 서비스를 제공한다.According to the above-described method for providing self-management of a software system and a system having a self-management function of software according to the present invention, the software system is not only statically configured but also shows an environment that changes in real time while the system is running. A configuration optimized for the requested service is extracted using a dynamic feature model including runtime features, and a service is provided after reconstructing system resources using the extracted configuration.

따라서, 사용자의 개입 없이 실시간으로 변화하는 환경에 상응하여 최적화된 서비스를 제공할 수 있고, 이러한 특징 인하여 요구되는 목적에 따라 동적으로 재구성이 가능한 소프트웨어 시스템이 필요한 임베디드 시스템, 로 켓, 군용 소프트웨어 시스템 등에 활용될 수 있다Therefore, it is possible to provide optimized services corresponding to the changing environment in real time without user intervention, and because of these characteristics, it is suitable for embedded systems, rockets, military software systems, etc. that require a software system that can be dynamically reconfigured according to the required purpose. can be utilized

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려 는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, or substitutes included in the spirit and scope of the present invention. Like reference numerals have been used for like elements throughout the description of each figure.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용 어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있 다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되 어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it means that it may be directly connected or connected to the other component, but other components may exist in the middle. It should be understood. On the other hand, when a component is referred to as “directly connected” or “directly connected” to another component, it should be understood that no other component exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들 을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요 소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other It should be understood that it does not preclude in advance the possibility of the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상 의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. Hereinafter, the same reference numerals are used for the same components in the drawings, and redundant descriptions of the same components are omitted.

도 1을 본 발명의 일 실시예에 따른 소프트웨어의 자율 관리를 수행하는 시스템의 구성을 나타내는 블록도이다. 도 1을 참조하면, 영역 전문가(Domain engineer)는 제품 계열(Product line)을 분석하여 이를 기반으로 제품 계 열 재사용 목록(Product Line Reuse Library)(110)을 생성하고 이를 정적 휘처 모델(Static Feature Model)(120)을 이용해서 관계를 나타낸다.1 is a block diagram showing the configuration of a system for performing self-management of software according to an embodiment of the present invention. Referring to FIG. 1, a domain engineer analyzes a product line, creates a Product Line Reuse Library 110 based on this, and creates a static feature model (Static Feature Model). ) (120) is used to indicate the relationship.

어플리케이션 전문가(Application engineer)는 상기 정적 휘처 모델(120)에 기초하여 개발하고자 하는 해당 소 프트웨어 시스템의 요구사항에 상응하여 소프트웨어를 개발한다.An application engineer develops software corresponding to the requirements of a corresponding software system to be developed based on the static feature model 120.

또한, 영역 전문가는 코어 시스템(140)의 실행시의 제품 재구성을 위한 의사 결정을 위한 동적 휘처 모델 (Dynamic Feature Model)(130)을 생성한다. 여기서, 상기 정적 휘처 모델(120) 및 동적 휘처 모델(130)은 소프 트웨어 시스템의 개발시에 생성될 수 있다.Domain experts also create a Dynamic Feature Model 130 for decision making for product reconfiguration at the time of execution of the core system 140 . Here, the static feature model 120 and the dynamic feature model 130 may be created during development of a software system.

본 발명의 일 실시예에 따른 소프트웨어 시스템의 자율 관리 제공 방법에서는 종래의 휘처 기반 소프트웨어 개 발 방법을 확장하여 종래의 휘처 모델을 정적 휘처 모델(120)로 명명하고, 상기 정적 휘처 모델을 기반으로 하 여 소프트웨어 시스템의 실행시 변화 가능한 휘처들은 분석하고 분석한 휘처들을 기반으로 하여 동적 휘처 모델 (130)을 새롭게 정의한다.In the method for providing self-management of a software system according to an embodiment of the present invention, a conventional feature model is named a static feature model 120 by extending a conventional feature-based software development method, and based on the static feature model, The features that can be changed during execution of the software system are analyzed and the dynamic feature model 130 is newly defined based on the analyzed features.

상기 동적 휘처 모델(130)은 코어 시스템(140)이 실행시에 어떤 구성으로 동작하는지를 모두 정의할 수 있는 모 델로서, 정적 휘처 모델(120)에서 선택된 기능을 토대로 상기 선택된 기능이 실행시에 어떻게 활성화되는가를 정의한 것이다.The dynamic feature model 130 is a model that can define all the configurations in which the core system 140 operates in execution, and how the selected function is executed based on the function selected in the static feature model 120. It defines whether it is activated.

코어 시스템(Core system)(140)은 소정 영역의 하드웨어 및 하드웨어에 설치되어 하드웨어의 동작을 제어하는 소프트웨어 시스템을 모두 포함하고, 사용자로부터 새로운 서비스 요청을 제공받고, 제공받은 서비스 요청 정보 를 자율 관리자(140)에게 제공한다. 이후, 코어 시스템(140)은 자율 관리자(150)로부터 요청받은 서비스를 위한 구성 정보를 제공받고, 제공받은 구성 정보에 기초하여 시스템의 자원을 재구성(reconfiguration)한 후 재구성 된 시스템 자원에 기초하여 사용자에게 서비스를 제공한다.The core system 140 includes both hardware in a predetermined area and a software system installed in the hardware to control the operation of the hardware, receiving a new service request from a user, and providing service request information to an autonomous manager ( 140) is provided. Thereafter, the core system 140 receives configuration information for the requested service from the autonomic manager 150, reconfigures system resources based on the provided configuration information, and then reconfigures system resources based on the reconfigured system resources. provide services to

자율 관리자(autonomic manager)(150)는 정책 관리자(160)로부터 제공된 정책 정보와, 상황 관리자(170)로부터 제공된 상황 정보에 기초하여, 동적 휘처 모델(130)로부터 제공된 코어 시스템(140)의 모든 가능한 구성 정보중 사용자로부터 요청받은 서비스에 가장 적합한 구성을 추출한 후 코어 시스템(140)에 제공한다.The autonomic manager 150, based on the policy information provided from the policy manager 160 and the context information provided from the context manager 170, provides all possible features of the core system 140 provided from the dynamic feature model 130. After extracting the most suitable configuration for the service requested by the user from the configuration information, it is provided to the core system 140 .

정책 관리자(Policy manager)(160)는 사용자로부터 상위 레벨의 정책(policy)을 제공받고, 제공받은 정책 또는 상기 상위 레벨의 정책에 상응하는 구체적인 목표(goal)를 자율 관리자(150)에게 제공한다.The policy manager 160 receives a higher-level policy from the user and provides the provided policy or a specific goal corresponding to the higher-level policy to the autonomous manager 150.

상황 관리자(Context manager)(170)는 코어 시스템 및/또는 주위의 물리적인 환경으로부터 제공받을 수 있는 상황(context) 정보를 수집하고, 수집한 상황 정보를 자율 관리자(150)에게 제공한다.The context manager 170 collects context information that can be provided from the core system and/or the surrounding physical environment, and provides the collected context information to the autonomic manager 150 .

도 2는 본 발명의 일 실시예에 따른 소프트웨어 시스템의 자율 관리 방법을 나타내는 흐름도이다.2 is a flowchart illustrating a method for autonomous management of a software system according to an embodiment of the present invention.

도 1 및 도 2를 참조하여 본 발명의 일 실시예에 따른 소프트웨어 시스템의 자율 관리 방법을 설명하면, 먼저 코어 시스템(140)은 사용자(user)로부터 서비스 요청을 제공받고(단계 210), 제공받은 서비스 요청 정보를 자율 관리자(150)에게 제공한다.Referring to FIGS. 1 and 2, a method for autonomous management of a software system according to an embodiment of the present invention is described. First, the core system 140 receives a service request from a user (step 210), and receives a service request from a user (step 210). Service request information is provided to the autonomic manager 150 .

자율 관리자(150)는 정책 관리자(160)로부터 사용자가 설정한 정책 정보를 획득하고(단계 220), 상황 관리자 (170)로부터 코어 시스템 및/또는 주위의 물리적인 환경으로부터 상황 정보를 획득한다(단계 230).The autonomic manager 150 obtains policy information set by the user from the policy manager 160 (step 220) and obtains context information from the core system and/or surrounding physical environment from the context manager 170 (step 220). 230).

또한, 자율 관리자(150)는 동적 휘처 모델로부터 시스템의 모든 가능한 구성 정보를 획득하고(단계 240), 획득 한 상기 정책 정보 및 상황 정보에 기초하여 상기 시스템의 모든 가능한 구성 정보 중 사용자가 요청한 서비스 에 가장 적합한 구성을 추출한 후(단계 260), 추출한 구성 정보를 코어 시스템(140)에 제공한다.In addition, the autonomous manager 150 obtains all possible configuration information of the system from the dynamic feature model (step 240), and based on the obtained policy information and situation information, among all possible configuration information of the system, the service requested by the user is selected. After extracting the most suitable configuration (step 260), the extracted configuration information is provided to the core system 140.

코어 시스템(270)은 자율 관리자(150)로부터 제공된 구성 정보에 기초하여 시스템의 자원을 재구성하고(단계 260), 재구성된 자원을 이용하여 사용자가 요청한 서비스를 제공한다(단계 270).The core system 270 reconfigures system resources based on configuration information provided from the autonomic manager 150 (step 260) and provides a service requested by the user using the reconfigured resources (step 270).

도 2에서는, 서비스 요청이 접수된 후(단계 210) 사용자가 설정한 정책 정보를 획득하고(단계 220) 상황 정보를 획득(단계 230)하는 것으로 예를 들어 설명하였으나, 이는 설명의 편의를 위한 것일 뿐이며, 실질적으로는 단계 210 내지 단계 230은 순서가 서로 바뀌어서 수행되어도 무방하다. 또한, 단계 220 및/또는 단계 230은 단계 240 과 실행 순서가 바뀌어도 무방하다.In FIG. 2, after a service request is received (step 210), policy information set by the user is obtained (step 220) and situation information is obtained (step 230) as an example, but this is for convenience of explanation. However, in practice, steps 210 to 230 may be performed in reverse order. In addition, the execution order of step 220 and/or step 230 may be changed from that of step 240.

도 3은 본 발명의 일 실시예에 따른 소프트웨어 시스템의 자율 관리 방법에 적용되는 정적 휘처 모델과 동적 휘 처 모델의 관계를 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating the relationship between a static feature model and a dynamic feature model applied to a method for self-management of a software system according to an embodiment of the present invention.

도 3을 참조하면, 도 3에서 상부의 원뿔(corn) 영역은 소프트웨어 시스템의 개발을 위한 정적 휘처 모델을 나타 내고, 하부의 원뿔 영역은 하나의 제품이 실행중에 재구성될 수 있는 동적 휘처 모델을 나타낸다.Referring to FIG. 3, the upper cone region in FIG. 3 represents a static feature model for software system development, and the lower cone region represents a dynamic feature model that can be reconstructed during execution of a product. .

도 3에서, P1, P2, P3 및 P4는 프로그램(program)을 의미하고, f1, f2, f3 및 f4는 정적 휘처(static features)를 의미한다. 또한, C1, C2, C3 및 C4는 구성(configuration)을 의미하고, f1'및 f2'는 동적 휘처(dynamic featur e)를 의미한다.In FIG. 3 , P1, P2, P3, and P4 denote programs, and f1, f2, f3, and f4 denote static features. Also, C1, C2, C3, and C4 mean configuration, and f1' and f2' mean dynamic features.

정적 휘처 모델은 휘처를 이용하여 기본적인 소프트웨어 프로그램인 P1으로부터 P2, P3 및 P4를 점진적으로 개 발할 수 있다. 예를 들어 덧셈 기능만을 가진 계산기 프로그램이 P1이고, f1은 뺄셈 기능, f2는 나눗셈 기능으로 가정하면, P4는 덧셈, 뺄셈 및 나눗셈 기능을 가진 계산기 프로그램이 만들어진다.The static feature model can gradually develop P2, P3 and P4 from the basic software program P1 using features. For example, assuming that P1 is a calculator program having only an addition function, f1 is a subtraction function, and f2 is a division function, P4 is a calculator program having addition, subtraction, and division functions.

동적 휘처 모델은 상술한 바와 같이 생성된 소프트웨어 시스템이 실행되는 도중에 어떤 구성으로 동작할지를 나 타낸다. 즉, 정적 휘처 모델에서 휘처가 프로그램 코드라면 동적 휘처 모델에서는 이에 대한 객체가 된다. 예를 들어, 소프트웨어 시스템이 실행되는 도중 프로그램 P4는 정책 및 상황 정보에 기초하여 덧셈만으로 구성된 C1이 될 수도 있고, 뺄셈 및/또는 나눗셈 기능이 부가되어 C2, C3 및 C4 중 어느 하나로 재구성될 수도 있다. 또한, 상기한 C1, C2, C3 및 C4의 구성은 정책 및 상황 정보에 따라 동적 휘처가 추가되거나 제외되어 구성이 변경될 수도 있다.The dynamic feature model represents the configuration in which the software system created as described above will operate while it is being executed. That is, if a feature is a program code in a static feature model, it becomes an object for it in a dynamic feature model. For example, while the software system is running, program P4 may become C1 consisting only of addition based on policy and situation information, or may be reconstructed into any one of C2, C3, and C4 with addition of subtraction and/or division functions. . In addition, the configurations of C1, C2, C3, and C4 may be changed by adding or excluding dynamic features according to policies and situation information.

도 4는 본 발명의 일 실시예 따른 소프트웨어 시스템의 자율 관리 방법에 적용되는 정적 휘처 모델과 동적 휘처 모델을 비교한 것을 나타낸다4 shows a comparison between a static feature model and a dynamic feature model applied to a method for self-management of a software system according to an embodiment of the present invention.

도 4를 참조하면, 정적 휘처 모델은 소프트웨어 프로그램의 합성을 위한 것이고, 동적 휘처 모델은 시스템이 실 행되는 도중 재구성을 위한 의사 결정 모델이다.Referring to FIG. 4 , the static feature model is for synthesizing a software program, and the dynamic feature model is a decision-making model for reconstruction while the system is running.

또한, 정적 휘처 모델 및 동적 휘처 모델은 영역 공학자(또는 영역 전문가)가 소프트웨어 개발 시점에 생성하고, 정적 휘처 모델은 소프트웨어 시스템의 개발 시점에 소프트웨어 개발자가 의사 결정을 하고, 동적 휘 처 모델은 시스템의 실행시에 자율 관리자 또는 사용자에 의해 결정된다.In addition, static feature models and dynamic feature models are created by domain engineers (or domain experts) at the time of software development, static feature models are decisions made by software developers at the time of software system development, and dynamic feature models are It is determined by the autonomous administrator or user at run time.

정적 휘처 모델에서의 휘처의 조합이 소프트웨어 시스템이라면, 동적 휘처 모델에서 휘처의 조합은 시스템의 실 행중의 상태(또는 구성)가 된다. 시스템이 동작되는 동안의 소프트웨어 시스템을 유한 가상 기계(FSM: Finite State Machine) 로 나타낸다면 상태는 독립적인 상태이므로 이와 같다고 할 수 있다.If the combination of features in the static feature model is a software system, the combination of features in the dynamic feature model becomes the running state (or configuration) of the system. If the software system during system operation is expressed as a Finite State Machine (FSM), the state is an independent state, so it can be said that it is like this.

도 5는 본 발명의 일 실시예에 따른 소프트웨어 시스템의 자율 관리 방법이 적용되는 예를 설명하기 위한 이동 통신 단말기의 정적 휘처 모델의 구성을 나타내는 개념도이다.5 is a conceptual diagram illustrating the configuration of a static feature model of a mobile communication terminal for explaining an example to which a method for self-management of a software system according to an embodiment of the present invention is applied.

이동통신 단말기에 설치되는 소프트웨어는 이동통신 단말기에 구비되는 다양한 하드웨어에 상응하여 다양한 기 능들이 제공되어야 하기 때문에 제품 계열 공학을 적용하기에 아주 적합한 사례이다.Software installed in mobile communication terminals is a very suitable case to apply product line engineering because various functions should be provided corresponding to the various hardware provided in mobile communication terminals.

휘처 모델은 영역 내의 전문가와 일반 사용자 또는 개발자 간의 의사소통 수단으로 영역내의 여러 시스템의 공 통점과 차이점을 AND/OR 그래프로 도식화한 영역 분석 모델이다. 휘처 모델은 영역 내의 공통적인 휘처는 필수 (Mandatory) 휘처로 표현되고, 시스템 간의 구별되는 차이점은 선택적(Optional) 휘처, 양자택일(Alternative) 휘처, 그리고 하나 이상의 선택을 할 수 있는 OR 휘처로 표현이 된다.A feature model is a domain analysis model that charts the commonalities and differences of various systems in an domain as an AND/OR graph as a means of communication between experts and general users or developers in the domain. In the feature model, common features within a domain are expressed as mandatory features, and distinct differences between systems are expressed as optional features, alternative features, and OR features that allow one or more choices. do.

도 5를 참조하여 이동통신 단말기의 정적 휘처 모델을 설명하면, 이동통신 단말기에서 어플리케이션 (application)은 필수 휘처이고, 어플리케이션에서 영상 통화(Video Call)는 선택적 휘처에 해당한다. 이동통신 단말기는 어플리케이션을 포함할 수도 있고, 네트워크 인터페이스(network interface)도 가질 수 있고, 정책 (policy)도 가질 수 있다. 이와 같은 경우 어플리케이션(application), 네트워크 인터페이스(network interface) 및 정책(policy)를 기본(Base) 이동통신 단말기에 주어진 휘처 모델의 관계를 바탕으로 추가하여 새 로운 이동통신 단말기 시스템을 만들 수 있다.Referring to FIG. 5, a static feature model of a mobile communication terminal is described. In a mobile communication terminal, an application is an essential feature, and a video call is an optional feature in the application. A mobile communication terminal may include an application, may have a network interface, and may also have a policy. In this case, a new mobile communication terminal system can be created by adding applications, network interfaces, and policies based on the relationship of the feature model given to the base mobile communication terminal.

도 5에 도시된 이동통신 단말기의 정적 휘처 모델에서는, 어플리케이션(application)은 음성 통화(voice call) 은 반드시 포함되어야 하고, CDMA, WLAN, WiBro, Bluetooth 중 적어도 하나의 네트워크 인터페이스(network interface)와 정책(policy)을 포함하는 것을 나타내고 있다.In the static feature model of the mobile communication terminal shown in FIG. 5, the application must include a voice call, and at least one network interface and policy among CDMA, WLAN, WiBro, and Bluetooth. (policy).

도 6은 본 발명의 일 실시예에 따른 소프트웨어 시스템의 자율 관리 방법이 적용되는 예를 설명하기 위한 이동 통신 단말기의 동적 휘처 모델의 구성을 나타내는 개념도이다.6 is a conceptual diagram illustrating the configuration of a dynamic feature model of a mobile communication terminal for explaining an example to which a method for self-management of a software system according to an embodiment of the present invention is applied.

도 6을 참조하면, 정적 휘처 모델이 제품들의 기능적인 특성을 분석하여 생성된 것에 반하여 동적 휘처 모델은 실행중인 시스템의 특성을 분석하여 생성된다. 예를 들어, 도 5에 도시한 이동통신 단말기의 정적 휘처 모델에 서 소프트웨어 개발자가 어플리케이션(application)으로 음성 통화(voice call) 및 웹 브라우저(web browser) 를 선택하고, 네트워크 인터페이스(network inteface)로 CDMA, WLAN, WiBro를 선택하고, 네트워크 인터페이스 (network inteface)를 선택하는 방법으로는 RSS(Received Signal Strength), COST, POWER, QUALITY, MANUAL을 선택했다고 가정하면 이동통신 단말기는 상기한 기능을 모두 포함하여 제조된다.Referring to FIG. 6 , static feature models are generated by analyzing functional characteristics of products, whereas dynamic feature models are generated by analyzing characteristics of a running system. For example, in the static feature model of the mobile communication terminal shown in FIG. 5, a software developer selects a voice call and a web browser as applications and uses them as network interfaces. Assuming that CDMA, WLAN, and WiBro are selected, and RSS (Received Signal Strength), COST, POWER, QUALITY, and MANUAL are selected as network interface selection methods, the mobile communication terminal includes all of the above functions. It is manufactured by

동적 휘처 모델은 시스템이 실행중에 어떻게 변화 가능한지를 나타낸다. 예를 들어, 도 6에 도시한 이동통신 단 말기의 동적 휘처 모델을 보면, 현재 이동통신 단말기는 실행중에 어플리케이션(application)은 실행이 안되거 나 음성 통화(voice call) 및 웹 브라우저(web browser) 중 오직 한 개만 실행이 가능하고, 네트워크 인터페이 스(network interface)도 활성화가 안되거나 CDMA, WLAN 및 WiBro 중 오직 한 개만 활성화가 가능하며, 정책 (policy)도 RSS, Cost, Power, Quality 및 Manual 중 어느 하나만 선택 가능하다는 것을 알 수 있다.A dynamic feature model represents how a system can change during execution. For example, looking at the dynamic feature model of the mobile communication terminal shown in FIG. 6, while the current mobile communication terminal is running, applications are not running or voice calls and web browsers Only one of these can be executed, the network interface cannot be activated, or only one of CDMA, WLAN, and WiBro can be activated, and the policy is RSS, Cost, Power, Quality, and Manual. It can be seen that only one can be selected.

도 6에 도시한 바와 같은 동적 휘처 모델을 가지는 이동통신 단말기에서 자율 관리자는 동적 휘처 모델을 기반 으로 하여 설정된 해당 정책(policy)에 상응하여 시스템을 관리하게 된다. 예를 들어, 자율 관리자는 어플리케 이션(application)마다 설정된 정책(policy)에 기초하여 최적의 네트워크 인터페이스(network interface)를 선 택할 수 있다.In a mobile communication terminal having a dynamic feature model as shown in FIG. 6, an autonomous manager manages a system according to a corresponding policy set based on the dynamic feature model. For example, an autonomous manager may select an optimal network interface based on a policy set for each application.

상기 동적 휘처 모델에는 정적 휘처 모델에 없는 새로운 휘처로 실행중에 변화할 수 있는 값들을 실행중 휘처(runtime feature)로 정의하였다. 도 6에서는 네트워크 인터페이스(network interface)의 경우에 가용성 (Availability), 신호 강도(Signal strength), 과금 모델(Cost Model), 전력 소모율(power consumption rate), 품질(quality) 등이 시스템의 실행중 동적으로 변화 가능한 휘처를 나타내고, 자율 관리자는 이동통신 단말기의 실행중에 상술한 실행중 휘처를 이용하여 최적의 네트워크 인터페이스를 선택한다. 예를 들어, CDMA를 사용할 수 없는 장소에서는 CDMA의 Availability가 F(False)가 되고, 이와 같은 실행중 휘처(runtime feature)들의 값 을 이용해서 자율 관리자는 가장 적절한 네트워크 인터페이스(network interface)를 선택하게 된다.In the dynamic feature model, as a new feature that is not in the static feature model, values that can change during execution are defined as runtime features. In FIG. 6, in the case of a network interface, availability, signal strength, cost model, power consumption rate, quality, etc. Indicates a changeable feature, and the autonomous manager selects an optimal network interface by using the feature during execution while the mobile communication terminal is running. For example, in a place where CDMA cannot be used, the availability of CDMA becomes F (False), and the autonomous manager selects the most appropriate network interface using the values of these runtime features. do.

도 7은 도 6에 도시한 이동통신 단말기의 동적 휘처 모델을 기반으로 자율 관리되는 이동통신 단말기의 상태도 를 나타낸다.FIG. 7 is a state diagram of a mobile communication terminal self-managed based on the dynamic feature model of the mobile communication terminal shown in FIG. 6 .

도 7을 참조하면, 이동통신 단말기는 파워가 켜지(turn on)면 파워 오프(POWER_OFF) 상태에서 파워 온 (POWER_ON) 상태로 상태가 천이되고, 파워 온 상태에서 대기 상태(S1, IDLE)로 동작을 시작한다.Referring to FIG. 7, when the power is turned on, the mobile communication terminal transitions from a power-off state to a power-on state, and operates in a standby state (S1, IDLE) in the power-on state. start

이후, 이동통신 단말기는 사용자의 조작에 상응하여 음성 통화(S2, Voice call) 상태 또는 웹 브라우저(S3, Web browser) 상태로 전이된다.Thereafter, the mobile communication terminal transitions to a voice call (S2) state or a web browser (S3) state according to the user's manipulation.

상술한 바와 같이 상태가 전이되어 음성 통화 또는 웹 브라우저가 사용되는 경우, 네트워크 인터페이스가 활성 화된다. 여기서, 네트워크 인터페이스가 사용되는 초기에는 사용자가 CDMA, WLAN 및 WiBro 중 어느 하나의 네트 워크 인터페이스를 직접 선택하고, 이후, 이동통신 단말기는 동적 휘처 모델에 기반한 실행중 휘처(runtime feature)와 미리 설정된 정책(policy) 및/또는 수집된 상황(context) 정보에 기초하여 최적의 네트워크 인터페 이스를 자율적으로 선택하게 된다.As described above, when the state is transitioned and a voice call or a web browser is used, the network interface is activated. Here, in the initial stage when the network interface is used, the user directly selects one of CDMA, WLAN, and WiBro, and then the mobile communication terminal uses a dynamic feature model-based runtime feature and a preset policy. The optimal network interface is autonomously selected based on policy and/or collected context information.

예를 들어, 이동통신 단말기의 대기 상태(S1)에서 사용자가 음성 통화(S2)를 선택하고 최초에 네트워크 인터페 이스를 WiBro(S6)로 선택하였다고 가정하면, 이동통신 단말기의 자율 관리자는 이동통신 단말기가 실행되는 도 중 변화하는 실행중 휘처(runtime feature)와 사용자가 미리 설정한 정책(policy)에 기초하여 자율적으로 소정 시점에 네트워크 인터페이스를 WLAN(S5)으로 선택할 수 있다.For example, assuming that the user selects voice call (S2) in the standby state (S1) of the mobile communication terminal and initially selects WiBro (S6) as the network interface, the autonomous manager of the mobile communication terminal During execution, the network interface may be selected as the WLAN (S5) autonomously at a predetermined time based on a changing runtime feature and a policy previously set by the user.

이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가 능하다.In the above, the present invention has been described in detail with preferred embodiments, but the present invention is not limited to the above embodiments, and various modifications and changes are made by those skilled in the art within the technical spirit and scope of the present invention. this is possible

Claims (12)

사용자로부터 서비스를 요청받는 단계;
동적 휘처 모델(dynamic feature model)로부터 상기 요청받은 서비스를 제공할 수 있는 시스템의 모든 구성(configuration)을 획득하는 단계;
미리 설정된 정책에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구 성을 획득하는 단계;
상기 획득한 구성에 기초하여 시스템의 자원을 재구성하는 단계; 및
상기 재구성된 자원에 기초하여 상기 요청받은 서비스를 제공하는 단계를 포함하는 소프트웨어 시스템 의 자율 관리 제공 방법.
receiving a service request from a user;
obtaining all configurations of a system capable of providing the requested service from a dynamic feature model;
obtaining a configuration corresponding to the requested service among all configurations of the acquired system based on a preset policy;
reconfiguring system resources based on the acquired configuration; and
and providing the requested service based on the reconfigured resource.
제1항에 있어서, 상기 동적 휘처 모델은
소프트웨어 시스템이 실행시에 동작할 수 있는 객체의 구성(configuration)을 나타내는 것을 특징으로 하는 소프트웨어 시스템의 자율 관리 제공 방법.
The method of claim 1, wherein the dynamic feature model is
A method for providing self-management of a software system, characterized in that the software system represents a configuration of objects that can operate at runtime.
제1항에 있어서, 상기 동적 휘처 모델은
소프트웨어 시스템이 설치된 시스템이 실행시에 변화하는 값들을 정의하는 실행중 휘처(runtime feature)를 포함하는 것을 특징으로 하는 소프트웨어 시스템의 자율 관리 제공 방법.
The method of claim 1, wherein the dynamic feature model is
A method for providing self-management of a software system, wherein a system in which the software system is installed includes a runtime feature defining values that change during execution.
제3항에 있어서, 상기 획득한 시스템의 모든 구성 중 미리 설정된 정책에 기초하여 요청받은 서비스에 상응하는 구성을 획득하는 단계는,
상기 시스템의 상기 실행중 휘처(runtime feature)에 기초하여 상기 획득한 시스템의 모든 구성 중 상 기 요청받은 서비스에 가장 적합한 구성을 획득하는 것을 특징으로 하는 소프트웨어 시스템의 자율 관리 제공 방법.
The method of claim 3, wherein acquiring a configuration corresponding to the requested service based on a preset policy among all the acquired configurations of the system comprises:
and acquiring a configuration most suitable for the requested service among all configurations of the acquired system based on the runtime feature of the system.
제1항에 있어서, 상기 소프트웨어 시스템의 자율 관리 제공 방법은,
상기 미리 설정된 정책에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하 는 구성을 획득하는 단계 이전에, 상기 시스템 또는 주위의 물리적인 환경으로부터 상황(context) 정보를 획득 하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 시스템의 자율 관리 제공 방법.
The method of claim 1, wherein the method for providing self-management of the software system comprises:
Prior to the step of acquiring a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy, acquiring context information from the system or a surrounding physical environment A method for providing self-management of a software system, further comprising:
제5항에 있어서, 상기 미리 설정된 정책에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득하는 단계는,
상기 미리 설정된 정책 및 상기 획득한 상황 정보에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 획득하는 것을 특징으로 하는 소프트웨어 시스템의 자율 관리 방법.
The method of claim 5, wherein acquiring a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy comprises:
and obtaining a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy and the acquired context information.
소프트웨어의 자율 관리를 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유 형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
요청된 서비스를 제공할 수 있는 시스템의 모든 구성(configuration)을 동적 휘처 모델(dynamic feature model)로부터 획득하는 단계;
미리 설정된 정책에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구 성을 획득하는 단계;
상기 획득한 구성에 기초하여 시스템의 자원을 재구성하는 단계; 및
상기 재구성된 자원에 기초하여 상기 요청받은 서비스를 제공하는 단계를 수행하는 프로그램을 기록한 기록매체.
In a recording medium in which a program of instructions that can be executed by a digital processing device performing self-management of software is tangibly implemented and a program that can be read by the digital processing device is recorded,
obtaining all configurations of a system capable of providing the requested service from a dynamic feature model;
obtaining a configuration corresponding to the requested service among all configurations of the acquired system based on a preset policy;
reconfiguring system resources based on the acquired configuration; and
A recording medium recording a program for performing the step of providing the requested service based on the reconstructed resource.
요청받은 서비스를 제공할 수 있는 시스템의 모든 구성(configuration)을 제공하는 동적 휘처 모델; 미리 설정된 정책 정보에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하
는 구성을 제공하는 자율 관리자; 및
상기 자율 관리자로부터 요청받은 서비스를 위한 구성을 제공받고, 상기 제공받은 구성에 기초하여 시 스템의 자원을 재구성한 후 재구성된 자원에 기초하여 사용자에게 서비스를 제공하는 코어 시스템을 포함하는 소프트웨어 자율 관리 기능을 구비한 시스템.
a dynamic feature model that provides all configurations of a system capable of providing requested services; Corresponding to the requested service among all configurations of the acquired system based on preset policy information
is an autonomous manager providing configuration; and
A software self-management function including a core system that receives a configuration for a service requested from the autonomous manager, reconfigures system resources based on the provided configuration, and then provides a service to a user based on the reconfigured resources A system equipped with.
제8항에 있어서, 상기 소프트웨어 자율 관리 기능을 구비한 시스템은,
사용자가 설정한 정책을 제공받고, 상기 제공받은 정책 또는 상기 제공받은 정책에 상응하는 목표를 상 기 자율 관리자에게 제공하는 정책 관리자; 및
상기 시스템 또는 주위의 물리적인 환경으로부터 상황 정보를 수집하고 수집한 상황 정보를 상기 자율 관리자에게 제공하는 상황 관리자를 더 포함하는 것을 특징으로 하는 소프트웨어 자율 관리 기능을 구비한 시스 템.
The method of claim 8, wherein the system having the software self-management function,
a policy manager that receives a policy set by a user and provides the provided policy or a goal corresponding to the provided policy to the autonomous manager; and
The system having a software self-management function, characterized in that it further comprises a context manager for collecting context information from the system or a surrounding physical environment and providing the collected context information to the autonomous manager.
제9항에 있어서, 상기 자율 관리자는
상기 미리 설정된 정책 정보 및 상기 상황 정보에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스에 상응하는 구성을 제공하는 것을 특징으로 하는 소프트웨어 자율 관리 기능을 구비한 시스템.
10. The method of claim 9, wherein the autonomous manager
and providing a configuration corresponding to the requested service among all configurations of the acquired system based on the preset policy information and the situation information.
제8항에 있어서, 상기 동적 휘처 모델은
상기 시스템이 실행시에 변화하는 값들을 정의하는 실행중 휘처(runtime feature)를 포함하는 것을 특 징으로 하는 소프트웨어 자율 관리 기능을 구비한 시스템.
9. The method of claim 8, wherein the dynamic feature model is
A system with a software self-management function, characterized in that the system includes a runtime feature defining values that change during execution.
제11항에 있어서, 상기 자율 관리자는
상기 시스템의 상기 실행중 휘처에 기초하여 상기 획득한 시스템의 모든 구성 중 상기 요청받은 서비스 에 상응하는 구성을 제공하는 것을 특징으로 하는 소프트웨어 자율 관리 기능을 구비한 시스템.
12. The method of claim 11, wherein the autonomous manager
and providing a configuration corresponding to the requested service among all the configurations of the acquired system based on the running feature of the system.
KR1020210095729A 2021-07-21 2021-07-21 Software that can provide optimized configurations for systems based on dynamically changing information at run time KR20230014420A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210095729A KR20230014420A (en) 2021-07-21 2021-07-21 Software that can provide optimized configurations for systems based on dynamically changing information at run time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210095729A KR20230014420A (en) 2021-07-21 2021-07-21 Software that can provide optimized configurations for systems based on dynamically changing information at run time

Publications (1)

Publication Number Publication Date
KR20230014420A true KR20230014420A (en) 2023-01-30

Family

ID=85106194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210095729A KR20230014420A (en) 2021-07-21 2021-07-21 Software that can provide optimized configurations for systems based on dynamically changing information at run time

Country Status (1)

Country Link
KR (1) KR20230014420A (en)

Similar Documents

Publication Publication Date Title
Capilla et al. An overview of Dynamic Software Product Line architectures and techniques: Observations from research and industry
US8938523B2 (en) System and method for deploying and maintaining software applications
CN102713886B (en) The roaming application of crossing over multiple computing equipments arranges
US8560819B2 (en) Software execution using multiple initialization modes
JP5106625B2 (en) Method, system, and computer program for configuring a firewall
KR20110113276A (en) Method for providing autonomic management of software system, recording medium storing program for performing the same and system having function of autonomic management of software
CN113794636B (en) Dynamic routing arrangement method and system based on Spring Cloud Gateway
US20150195172A1 (en) Assessing a service offering in a networked computing environment
KR20230014420A (en) Software that can provide optimized configurations for systems based on dynamically changing information at run time
CN112788112A (en) Automatic publishing method, device and platform for equipment health management micro-service
Vukojevic-Haupt et al. Bootstrapping complex workflow middleware systems into the cloud
EP3502884B1 (en) Upgraded cloud foundry platform system
US7793310B2 (en) Dynamically inserting proxies into JAVA environments without coding explicit proxy hooks into JAVA applications
EP3852424B1 (en) Application resilience for applications deployed on a cloud platform
CN108228292A (en) A kind of generation method and device at ExtJS interfaces
Grassi et al. UML based modeling and performance analysis of mobile systems
KR100506069B1 (en) A system for repackaging application software for streaming of application software and method thereof
Makki et al. Scalable and manageable customization of workflows in multi-tenant saas offerings
US9992305B2 (en) Cloud models based on network definition data
CN110740151A (en) micro-service adjusting method, device, server and computer storage medium
CN114615128B (en) Service management method and system, computer storage medium and electronic equipment
EP2093977A1 (en) Method for allocating orchestrated services, dynamic application latency controller and service orchestration device
US20230281054A1 (en) Computer System Execution Environment Builder Tool
Huynh A development process for building adaptative software architectures
US11736525B1 (en) Generating access control policies using static analysis