KR20090092203A - A task-based approach to generate software-architecture - Google Patents
A task-based approach to generate software-architectureInfo
- Publication number
- KR20090092203A KR20090092203A KR1020080042428A KR20080042428A KR20090092203A KR 20090092203 A KR20090092203 A KR 20090092203A KR 1020080042428 A KR1020080042428 A KR 1020080042428A KR 20080042428 A KR20080042428 A KR 20080042428A KR 20090092203 A KR20090092203 A KR 20090092203A
- Authority
- KR
- South Korea
- Prior art keywords
- components
- subarchitecture
- architecture
- component
- task
- Prior art date
Links
- 238000013459 approach Methods 0.000 title description 2
- 238000005457 optimization Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims abstract description 23
- 230000002123 temporal effect Effects 0.000 claims abstract description 12
- 230000010354 integration Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 9
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- KRQUFUKTQHISJB-YYADALCUSA-N 2-[(E)-N-[2-(4-chlorophenoxy)propoxy]-C-propylcarbonimidoyl]-3-hydroxy-5-(thian-3-yl)cyclohex-2-en-1-one Chemical compound CCC\C(=N/OCC(C)OC1=CC=C(Cl)C=C1)C1=C(O)CC(CC1=O)C1CCCSC1 KRQUFUKTQHISJB-YYADALCUSA-N 0.000 description 1
- 241000190070 Sarracenia purpurea Species 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 태스크 기반의 소프트웨어 아키텍처 생성 방법에 관한 것으로, 태스크를 구성하는 액션들을 수행하는 서브 아키텍처들을 탐색할 때, 동일한 기능을 수행하는 컴포넌트들을 최대한 포함하는 서브 아키텍처를 탐색하는 전역적 최적화 단계, 탐색된 서브 아키텍처들을 통합하여 하나의 아키텍처를 생성할 때, 서브 아키텍처 내 컴포넌트들 간의 기능적 유사성을 측정하여 유사한 기능을 갖는 컴포넌트들을 하나의 서브 아키텍처로 통합하는 위상적 최적화 단계 및, 통합 아키텍처의 컴포넌트들이 액션의 순서에 의해 실행될 때, 현재 수행할 액션에 필요한 컴포넌트들만 메모리에 유지하는 시간적 최적화 단계를 포함한다. The present invention relates to a task-based method for generating a software architecture, when searching for subarchitectures performing the actions constituting a task, a global optimization step for searching for a subarchitecture that includes as many components as possible to perform the same function. When the integrated subarchitectures are integrated to generate a single architecture, a topological optimization step of measuring functional similarities between components in the subarchitecture and integrating components having similar functions into a single subarchitecture, and the components of the integrated architecture are acted upon. When executed in the order of, includes a temporal optimization step of keeping in memory only the components necessary for the action to be performed.
Description
본 발명은 태스크 기반의 소프트웨어 아키텍처 생성 방법에 관한 것으로, 더욱 상세하게는 태스크의 실행 시간에 동적으로 적절한 아키텍처를 선택하고 실행함으로써 태스크 수행의 복잡도를 줄이고, 아키텍처의 최적화를 통해서 한정된 자원들을 효율적으로 관리할 수 있도록 하는 방법에 관한 것이다. The present invention relates to a task-based software architecture creation method, and more particularly, to reduce the complexity of task execution by efficiently selecting and executing the appropriate architecture at the time of execution of the task, and efficiently manage the limited resources through the optimization of the architecture It's about how to do it.
지능형 서비스 로봇과 관련된 기술은 크게 자원 기반의 컴퓨팅과 태스크 기반의 컴퓨팅으로 나누어진다. 그 중 자원기반의 컴퓨팅은 데이터나 컴포넌트를 모니터링 함으로써 그 적합성을 따지는 방법들이 있는데, 이들은 정적(Static) 기반의 규칙이나 정책(Policy)을 사용하고 있어 동적(Dynamic)인 사용자 태스크의 복잡도를 다루기에는 부적합하다. 그 일례로는 응용 프로그램의 다양성과 일치성을 기반으로 자원의 활용을 제어하는 Odyssey(1996, CMU)와 응용 프로그램에 특정한 정책들을 적용하는 Puppeteer(1999, Rice University)등이 있다.The technologies related to intelligent service robots are largely divided into resource-based computing and task-based computing. Among them, resource-based computing uses the data-based component monitoring to determine its suitability. They use static-based rules or policies to deal with the complexity of dynamic user tasks. Inadequate Examples include Odyssey (1996, CMU), which controls resource utilization based on application diversity and consistency, and Puppeteer (1999, Rice University), which applies application-specific policies.
태스크 기반의 컴퓨팅에는 아키텍처 기반, 온톨로지 기반, 그리고 모델(태스크, 조합)기반으로 이루어지는 방법들이 있는데, 이것들은 자원에 대한 고려가 없어 제한된 자원을 활용하여 동적으로 복잡한 소프트웨어를 구성해야 하는 로봇환경에서 사용하기에는 부적합하다. 그 일례로는 아키텍처 기반의 재구성 프레임워크인 Aura(2002, CMU)와 온톨로지를 사용하여 기능 분해와 동적인 재구성을 가능하게 한 Giga(2002, UIUC)등이 있다.Task-based computing includes architecture-based, ontology-based, and model-based methods, which can be used in robotic environments where dynamic software must be dynamically constructed using limited resources without consideration of resources. Not suitable below. Examples include Aura (2002, CMU), an architecture-based reconfiguration framework, and Giga (2002, UIUC), which enables functional decomposition and dynamic reconfiguration using ontology.
그런데, 지능형 서비스 로봇을 위해서는 보다 신뢰성 있고, 지능적인 서비스를 제공하기 위해 주변 환경, 변화하는 사용자의 요구사항들, 자원의 제약성 등 많은 요소들을 고려할 필요가 있다. 기존 대부분의 지능형 서비스 로봇 제어 소프트웨어는 태스크 수행을 위한 일련의 액션들이 그것과 일치하는 기능들을 호출함으로써 제어 및 실행된다. 그러나, 이러한 태스크 기반 제어 시스템은 지능형 서비스 로봇이 제한된 전력, 메모리 공간, 네트워크 대역폭 등의 한정된 자원을 갖고 있음에도 불구하고 이러한 자원요소들을 고려하여 제어하는 것에 초점을 두지는 않았다. 왜냐하면, 태스크의 생성 시간에 이러한 요소들을 고려한다면 태스크를 수행하기 위한 플랜(Plan)의 복잡도는 아마 관리될 수 없을 만큼 복잡해 질 것이기 때문이다. However, for the intelligent service robot, it is necessary to consider many factors such as surrounding environment, changing user requirements, and resource constraints in order to provide more reliable and intelligent service. Most existing intelligent service robot control software is controlled and executed by a series of actions for task execution by calling functions corresponding to it. However, such a task-based control system does not focus on controlling these resource elements even though intelligent service robots have limited resources such as limited power, memory space, and network bandwidth. Because, considering these factors at task creation time, the complexity of the plan for performing the task will probably be unmanageably complex.
따라서, 기존의 태스크 기반 컴퓨팅이나 자원 기반 컴퓨팅의 한계점들을 극복하여 다양한 환경, 변화하는 상황뿐 아니라 예상치 못한 문제에 대해 소프트웨어를 동적으로 구성해야 하는 서비스 로봇에서 자원으로 인한 문제의 발생을 줄임으로써 로봇 작동에 대한 신뢰성의 향상이 요구되어 왔다. Thus, robots operate by overcoming the limitations of traditional task-based or resource-based computing by reducing the occurrence of resource-related problems in service robots that must dynamically configure software for various environments, changing situations, as well as unexpected problems. There has been a demand for an improvement in reliability.
본 발명은 상기한 문제점을 해결하기 위한 것으로, 태스크 기반 접근법을 이용하여 태스크 수행을 위한 최적화된 서브 아키텍처/컴포넌트 선택, 통합 및 실행을 통해 소프트웨어 아키텍처를 생성하는 방법을 제공하고자 하는 것이다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and is intended to provide a method for generating a software architecture through optimized subarchitecture / component selection, integration and execution for task execution using a task-based approach.
본 발명은 태스크의 실행 시간에 동적으로 적절한 아키텍처를 선택하고 실행함으로써 태스크 수행의 복잡도를 줄이고, 아키텍처의 최적화를 통해서 한정된 자원들을 효율적으로 관리한다. The present invention reduces the complexity of task execution by efficiently selecting and executing an appropriate architecture at the execution time of the task, and efficiently manages limited resources through the optimization of the architecture.
본 발명에 의한 태스크 기반의 소프트웨어 아키텍처 생성 방법은, 태스크를 구성하는 액션들을 수행하는 서브 아키텍처들을 탐색할 때, 동일한 기능을 수행하는 컴포넌트들을 최대한 포함하는 서브 아키텍처를 탐색하는 전역적 최적화 단계, 탐색된 서브 아키텍처들을 통합하여 하나의 아키텍처를 생성할 때, 서브 아키텍처 내 컴포넌트들 간의 기능적 유사성을 측정하여 유사한 기능을 갖는 컴포넌트들을 하나의 서브 아키텍처로 통합하는 위상적 최적화 단계 및, 통합 아키텍처의 컴포넌트들이 액션의 순서에 의해 실행될 때, 현재 수행할 액션에 필요한 컴포넌트들만 메모리에 유지하는 시간적 최적화 단계를 포함한다. The task-based software architecture generation method according to the present invention is a global optimization step of searching for a sub-architecture including the components that perform the same function as much as the search for the sub-architecture performing the actions constituting the task. When integrating subarchitectures to create a single architecture, a topological optimization step of measuring functional similarities between components in the subarchitecture and integrating components with similar functions into a subarchitecture; When executed in sequence, it includes a temporal optimization step that keeps in memory only the components needed for the current action to be performed.
이때, 서브 아키텍처의 탐색 및 통합은 아키텍처 브로커에 의해 수행되고, 컴포넌트의 탐색은 컴포넌트 브로커에 의해 수행된다. At this time, the search and the integration of the sub-architecture are performed by the architecture broker, and the search of the components is performed by the component broker.
본 발명에 의한 태스크 기반의 소프트웨어 아키텍처 생성 방법은, 서브 아키텍처 온톨로지를 이용하여 액션을 수행할 수 있는 서브 아키텍처의 후보군을 탐색하고 통합하는 것에 의해 이루어진다. 특히, 서브 아키텍처 온톨로지를 위한 서브 아키텍처 명세는, 서브 아키텍처 수행을 위해 필요한 컴포넌트들 및 컴포넌트들 간의 연결 관계가 명시되고, 사용자들에게 보다 나은 품질의 서비스를 제공하기 위해 품질 속성을 기술하며, 단위 기능인 컴포넌트들의 선택을 위해 컴포넌트 온톨로지로 연결되는 것이 바람직하다. 그리고 컴포넌트 온톨로지를 위한 컴포넌트 명세는, 컴포넌트에 대한 일반적 정보, 컴포넌트의 입출력 데이터, 컴포넌트 수행을 위한 전제조건 및 후조건을 가지고, 자원 최적화를 위한 정보를 기술하며, 컴포넌트들간 입출력 연결 포트가 서로 호환되는지 판단할 수 있는 포트 정보를 가지는 것이 바람직하다. The task-based software architecture generation method according to the present invention is achieved by searching for and integrating a candidate group of subarchitectures capable of performing an action using a subarchitecture ontology. In particular, the sub-architecture specification for sub-architecture ontology specifies the components and connection relationships between the components necessary for performing the sub-architecture, describes quality attributes to provide better quality services to users, and It is desirable to connect to the component ontology for the selection of the components. The component specification for component ontology describes the information for resource optimization with general information about the component, input / output data of the component, preconditions and postconditions for the component execution, and whether the input / output connection ports between the components are compatible with each other. It is desirable to have port information that can be determined.
본 발명에 의한 태스크 기반의 소프트웨어 아키텍처 생성 방법의 위상적 최적화 단계는, 컴포넌트 온톨로지를 이용하여 포함관계를 비교함으로써 고수준의 컴포넌트 기능들은 그것들의 저수준 기능들을 포섭할 수 있다는 원리로 이루어지는 것이 바람직하다. The phase optimization step of the task-based software architecture generation method according to the present invention is preferably performed on the principle that high-level component functions can include their low-level functions by comparing inclusion relationships using component ontology.
본 발명에 의한 태스크 기반의 소프트웨어 아키텍처 생성 방법의 시간적 최적화는 액션 단위로 수행되는 서브 아키텍처 내에 있는 컴포넌트들이 실행되어야 할 카운트를 이용하는 것이 바람직하다. The temporal optimization of the task-based software architecture generation method according to the present invention preferably uses a count in which components in a sub-architecture performed in units of actions should be executed.
본 발명에 의하면, 유한한 자원으로 동작하는 서비스 로봇에서 다양한 기능을 포함할 때 발생할 수 있는 자원부족으로 인한 오작동의 확률을 줄일 수 있으며, 보다 효율적인 자원 활용으로 서브 아키텍처나 컴포넌트의 추가를 수용할 수 있는 확률을 높일 수 있다. 따라서, 다양한 환경, 변화하는 상황뿐 아니라 예상치 못한 문제에 대한 소프트웨어를 동적으로 구성해야 하는 서비스 로봇에서 자원으로 인한 문제의 발생을 줄임으로써 로봇 작동에 대한 신뢰성의 향상을 가져올 수 있다.According to the present invention, it is possible to reduce the probability of malfunction due to lack of resources that can occur when including a variety of functions in the service robot operating with a finite resource, it is possible to accommodate the addition of sub-architecture or components with more efficient resource utilization You can increase your chances. Therefore, it is possible to improve the reliability of the robot operation by reducing the occurrence of resource-related problems in the service robot, which must dynamically configure the software for various environments and changing situations as well as for unexpected problems.
도 1은 액션 수행을 위해 탐색된 여러 서브 아키텍처들을 통합하여 수행 가능한 하나의 커다란 아키텍처를 생성하는 것을 설명하기 위한 예시도, FIG. 1 is an exemplary diagram for describing generating one large architecture that can be performed by integrating various subarchitectures searched for performing an action.
도 2는 본 발명에서 정의한 서브 아키텍처 명세를 위한 온톨로지 모델을 나타낸 도면, 2 is a diagram illustrating an ontology model for a subarchitecture specification defined in the present invention;
도 3은 본 발명의 일실시예에 의한 서브 아키텍처의 명세를 보여주는 것, 3 shows a specification of a subarchitecture according to an embodiment of the present invention;
도 4는 자원 최적화된 서브 아키텍처 선택을 위해 동일한 컴포넌트들을 최대한 많이 포함하는 서브 아키텍처를 선택하는 전역적 최적화를 설명하기 위한 예시도, 4 is an exemplary diagram for explaining global optimization of selecting a subarchitecture including as many components as possible for resource-optimized subarchitecture selection.
도 5는 지역적 최적화 기법을 보여주기 위한 예시도, 5 is an exemplary diagram for illustrating a regional optimization technique;
도 6은 위상적 최적화를 위한 알고리즘의 예, 6 is an example of an algorithm for topological optimization,
도 7은 시간적 최적화를 위한 알고리즘의 예, 7 is an example of an algorithm for temporal optimization,
도 8 및 도 9는 본 발명에 의한 태스크 기반의 소프트웨어 아키텍처 생성 방법을 로봇에 응용하는 응용예를 설명하기 위한 도면이다. 8 and 9 are diagrams for explaining an application example of applying a task-based software architecture generation method to a robot according to the present invention.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세하게 설명하기로 한다. 그러나, 이하의 실시예는 이 기술분야에서 통상적인 지식을 가진 자에게 본 발명이 충분히 이해되도록 제공되는 것으로서 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 기술되는 실시예에 한정되는 것은 아니다.이하 첨부된 도면에 의해 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the following embodiments are provided to those skilled in the art to fully understand the present invention, and may be modified in various forms, and the scope of the present invention is limited to the embodiments described below. It will be described in detail with reference to the accompanying drawings as follows.
본 발명은 로봇 태스크의 실행 시간에 동적으로 적절한 소프트웨어 아키텍처를 선택하고 실행함으로써, 태스크 실행의 복잡도를 줄이고 소프트웨어 아키텍처의 최적화를 통해 로봇 내부의 한정된 자원들을 효율적으로 사용 및 관리할 수 있도록 하는 방법에 관한 것이다. The present invention relates to a method of dynamically selecting and executing an appropriate software architecture at the execution time of a robot task, thereby reducing the complexity of task execution and optimizing the software architecture to efficiently use and manage the limited resources inside the robot. will be.
도 1은 액션 수행을 위해 탐색된 여러 서브 아키텍처들을 통합하여 수행 가능한 하나의 커다란 아키텍처를 생성하는 것을 설명하기 위한 예시도이다. FIG. 1 is an exemplary diagram for describing generating one large architecture that can be performed by integrating various subarchitectures searched for performing an action.
도 1에서, 태스크 수행을 위한 플랜(plan)은 단위 액션(action)들로 구성되고, 각 액션들을 수행해 주기 위한 소프트웨어 컴포넌트(software component)의 집합을 서브 아키텍처(sub-architecture)라고 정의한다. 즉, 로봇 태스크 수행에 필요한 액션을 지원해 줄 수 있는 재사용 가능한 단위를 서브 아키텍처라 하고, 서브 아키텍처에는 아키텍처 수행을 위한 단위 기능들인 컴포넌트가 명시되어 있다. In FIG. 1, a plan for performing a task is composed of unit actions, and a set of software components for performing each action is defined as a sub-architecture. That is, a reusable unit that can support the actions required to perform a robot task is called a sub-architecture, and the sub-architecture specifies components that are unit functions for performing the architecture.
태스크 기반의 서브 아키텍처 선택 절차는 3단계로 이루어진다. 도 1과 같이 서브 아키텍처 탐색, 선택된 서브 아키텍처들의 통합(consolidation), 그리고 실제 실행 가능한 아키텍처의 생성의 3단계이다. The task-based subarchitecture selection process consists of three steps. As shown in FIG. 1, three steps are involved: searching for subarchitecture, consolidation of selected subarchitectures, and creation of an actual executable architecture.
서브 아키텍처의 탐색 단계에서는 태스크를 구성하는 액션(A1,A2,A3,A4,A5)들을 수행하는 서브 아키텍처들이 탐색된다. 탐색 시, 가능한 많이 동일한 컴포넌트들을 가지는 서브 아키텍처를 탐색하여야 하는데, 이는 로봇의 내부 메모리에 로딩 및 실행되어야 할 컴포넌트의 수를 줄여야 하기 때문이다. 이렇게 서브 아키텍처들을 탐색할 때, 동일한 기능을 수행하는 컴포넌트들을 포함하는 서브 아키텍처들을 탐색함으로써 로딩되어야 할 컴포넌트의 수를 줄여주는 것이 전역적 최적화(Global Optimization) 방법이다. In the search phase of the subarchitecture, subarchitectures that perform the actions A1, A2, A3, A4, and A5 constituting the task are searched. When searching, you should search for a sub-architecture with as many identical components as possible, because you need to reduce the number of components that need to be loaded and executed in the robot's internal memory. When searching for subarchitectures in this way, it is a global optimization method to reduce the number of components to be loaded by searching for subarchitectures including components that perform the same function.
전역적 최적화를 거치고 나면, 보다 효율적인 자원 최적화를 위해 지역적 최적화(Local optimization)를 수행한다. 지역적 최적화는 아키텍처 통합 및 생성 시간에 이루어지는 위상적 최적화(Topological optimization)과 아키텍처의 수행 시간에 이루어지는 시간적 최적화(Temporal optimization)를 포함한다. 즉, 서브 아키텍처들의 통합 단계에서는 컴포넌트들 간 의미론적 기능의 유사성을 측정하여 유사한 기능들을 하나의 서브 아키텍처로 통합해 주는 위상적 최적화 방법(Topological optimization)을 이용한다. After global optimization, local optimization is performed for more efficient resource optimization. Regional optimization includes topological optimization at architecture integration and generation time, and temporal optimization at runtime of architecture. In other words, in the integration stage of sub-architectures, we use topological optimization that measures similarity of semantic functions between components and integrates similar functions into one sub-architecture.
마지막으로 실행 가능한 아키텍쳐 생성단계에서는 실제 실행될 소프트웨어 컴포넌트들이 선택되고 통합된 아키텍처에 바인딩 된다. Finally, in the executable architecture generation stage, the software components to be executed are selected and bound to the integrated architecture.
이후, 통합 아키텍처에 바인딩된 컴포넌트들은 액션의 순서에 의해 실행되어지는데, 현재 수행할 액션에 필요한 컴포넌트들만 메모리에 유지할 수 있도록 함으로써 로봇 내부 자원을 절약하는 시간적 최적화 방법이 이용된다. Afterwards, the components bound to the unified architecture are executed in the order of actions. A temporal optimization method that saves internal resources of the robot by using only components necessary for the current action to be performed is used.
도 1에서, 서브 아키텍처의 탐색과 통합을 위해서는 온톨로지 기반의 추상화 기법을 이용하여 탐색 및 추론이 이루어지고, 서브 아키텍처를 구성하는 컴포넌트들 또한 추상화되어 표현되어 진다. 이렇게, 의미론적 검색을 통해 적절한 서브 아키텍처의 후보군을 탐색하고, 이로부터 자원 최적화된 서브 아키텍처를 통합하는 역할은 아키텍처 브로커에 의해 수행된다. 그리고, 컴포넌트 브로커는 서브 아키텍처 수행을 위한 단위 컴포넌트를 탐색하는 역할을 하며, 컴포넌트 브로커의 브로커링 과정은 아키텍처 브로커와 유사하게 진행된다. In FIG. 1, in order to search and integrate a subarchitecture, discovery and inference are performed using an ontology-based abstraction technique, and components constituting the subarchitecture are also abstractly represented. Thus, the role of searching for candidates of appropriate subarchitecture through semantic search and integrating resource optimized subarchitecture from them is performed by the architecture broker. The component broker serves to search for unit components for performing subarchitecture, and the brokering process of the component broker proceeds similarly to the architecture broker.
도 2는 본 발명에서 정의한 서브 아키텍처 명세를 위한 온톨로지 모델을 나타낸 것으로서, "액션", "서브 아키텍처", "컴포넌트" 온톨로지의 3가지이다. 2 illustrates an ontology model for the subarchitecture specification defined in the present invention, which is three types of "action", "subarchitecture", and "component" ontology.
액션 온톨로지는 로봇 태스크 수행을 위한 단위 행동들을 기술하고 있으며, 서브 아키텍처에 의해 액션이 수행된다. 서브 아키텍처 온톨로지는 기능적인 단위로 그 이름이 속성으로 정해져 있고, 서브 아키텍처 명세는 서브 아키텍처 수행을 위해 필요한 컴포넌트들 및 컴포넌트들 간의 연결 관계(configuration)가 명시되어야 한다. 또한 서브 아키텍처는 사용자들에게 보다 나은 품질의 서비스를 제공하기 위해 품질 속성을 기술할 수 있는데, 로봇 도메인에서의 대표적인 품질 속성인 성능(Performance), 보안(Security), 신뢰성(Reliability)등을 그 속성으로 가질 수 있다. Action ontology describes the unit actions for robot task execution, and actions are performed by sub-architecture. The subarchitecture ontology is a functional unit whose name is defined as an attribute, and the subarchitecture specification must specify components and configuration relationships between components for performing the subarchitecture. In addition, the sub-architecture can describe quality attributes in order to provide better quality services to users. The attributes, such as performance, security, and reliability, are typical quality attributes in the robot domain. You can have
서브 아키텍처는 그것을 수행하는 단위 기능인 컴포넌트들의 선택을 위해 컴포넌트 온톨로지로 연결되어 있어야 한다. 컴포넌트들은 그 이름과 수행을 위한 클래스 경로(class_path), 컴포넌트 명세(component description)을 그 속성으로 가질 수 있고, 컴포넌트 명세에는 컴포넌트에 대한 일반적 정보, 컴포넌트의 입출력 데이터, 컴포넌트 수행을 위한 전제조건 및 후조건을 그 값으로 가질 수 있다. 또한, 컴포넌트에는 자원 최적화를 위한 정보인 자원(resources)에 대한 정보를 기술할 수 있는데, 대표적인 자원 정보인 메모리, 대역폭, CPU 사용량을 그 속성으로 가질 수 있다. 마지막으로, 컴포넌트들은 서로 연결되어 수행되어야 하므로 입출력 연결 포트가 서로 호환되는지 판단할 수 있는 포트 정보를 가질 수 있다. The subarchitecture must be connected to the component ontology for the selection of components, which are the unit functions that perform it. Components can have their name and classpath (class_path) for execution and component description (component description) as their attributes.In the component specification, general information about the component, input / output data of the component, prerequisites for the component execution, and after The condition can have that value. In addition, the component may describe information on resources, which are information for resource optimization, and may have memory, bandwidth, and CPU usage, which are representative resource information, as its attributes. Lastly, since the components are connected to each other and executed, the components may have port information for determining whether the input / output connection ports are compatible with each other.
도 3은 본 발명의 일실시예에 의한 서브 아키텍처의 명세를 보여준다. 명세 내에는 서브 아키텍처 수행을 위한 추상화된 컴포넌트들이 URIs(Uniform Resource Indentifiers)로 기술되어 있고, 각 컴포넌트들의 연결을 위한 포트 정보가 기술되어 있다. "ports{...}"부분에서 이러한 포트정보를 나열하고 있다. 기술된 URIs는 실제 바인딩되어 수행될 컴포넌트 인스턴스 선택을 위해 컴포넌트 브로커의 입력으로 전달된다. 예를 들어 첫 번째 컴포넌트인 'Coordinator'의 URI는 "http://sembots.icu.ac.kr/Components#Coordinator"이다. 서브 아키텍처 명세에는 커넥터에 대한 정보들이 기술되어 있는데, 커넥터는 서로 입출력 포트가 맞지 않는 컴포넌트들간의 연결을 위해 사용된다. 마지막으로, "Attachments" 필드에는 기술된 포트들 및 컨넥터들의 연결관계를 기술하고 있다. 3 shows a specification of a subarchitecture according to an embodiment of the present invention. In the specification, abstracted components for performing subarchitecture are described as Uniform Resource Indentifiers (URIs), and port information for connecting each component is described. The "ports {...}" section lists these ports. The URIs described are passed to the input of the component broker to select the component instance to be bound and executed. For example, the URI of the first component, 'Coordinator', is "http://sembots.icu.ac.kr/Components#Coordinator". The subarchitecture specification describes information about connectors, which are used to connect components that do not match input / output ports. Finally, the "Attachments" field describes the connection of the ports and connectors described.
도 4는 자원 최적화된 서브 아키텍처 선택을 위해 동일한 컴포넌트들을 최대한 많이 포함하는 서브 아키텍처를 선택하는 전역적 최적화(Global Optimization)를 설명하기 위한 예시도이다. FIG. 4 is an exemplary diagram for explaining global optimization for selecting a subarchitecture including as many components as possible for resource-optimized subarchitecture selection.
도 2의 모델에 따라 명세된 서브 아키텍처 온톨로지를 이용하여 하나의 액션을 수행할 수 있는 서브 아키텍처의 후보군을 탐색할 수 있다. 그런데, 도 4에서 볼 수 있듯이 하나의 액션은 여러 개의 서브 아키텍처중 하나로 수행될 수 있다. 예를 들어, 액션1(A1)의 수행을 위해서 서브 아키텍처1(Sa1)이나 서브 아키텍처2(Sa2)를 선택할 수 있다. 이때, 사용자 요구사항의 품질 속성 및 자원 소모량을 측정하여 후보군 중에서 가장 적합한 서브 아키텍처가 선택이 된다. 아키텍처를 수행하기 위한 컴포넌트의 탐색 시에도 유사한 절차를 거쳐 컴포넌트의 후보군을 추출해 낸다. A candidate group of subarchitectures capable of performing one action may be searched using a subarchitecture ontology specified according to the model of FIG. 2. However, as shown in FIG. 4, one action may be performed in one of several subarchitectures. For example, subarchitecture 1 (Sa1) or subarchitecture 2 (Sa2) may be selected to perform action 1 (A1). At this time, the most suitable subarchitecture from the candidate group is selected by measuring quality attributes and resource consumption of user requirements. When searching for a component to perform the architecture, a similar procedure is used to extract the candidate group.
도 4에서 전역적 최적화를 이용하면, 컴포넌트 C4와 C7이 서브 아키텍처 2, 4, 6에 중복되어 포함되어 있으므로, Sa2, Sa4, Sa6가 선택이 된다. 즉, 전역적 최적화를 이용하여 아키텍처 수행을 위해 메모리로 로딩되어야 할 컴포넌트의 수를 줄일 수 있다. Using global optimization in FIG. 4, components C4 and C7 are included in the subarchitectures 2, 4, and 6, and Sa2, Sa4, and Sa6 are selected. In other words, global optimization can be used to reduce the number of components that must be loaded into memory to perform the architecture.
전역적 최적화를 거치고 나면, 보다 효율적인 자원 최적화를 위해 지역적 최적화(Local optimization)를 수행한다. 지역적 최적화는 아키텍처 생성 시간에 이루어지는 위상적 최적화(Topological optimization)와, 아키텍처의 실행 시간에 이루어지는 시간적 최적화(Temporal optimization)로 나눌 수 있다. After global optimization, local optimization is performed for more efficient resource optimization. Regional optimization can be divided into topological optimization at architecture creation time and temporal optimization at architecture execution time.
도 5는 지역적 최적화 기법을 보여주기 위한 예시도이다. 먼저, 위상적 최적화에서는 서브 아키텍처들 내 컴포넌트들 간의 기능적 유사성들을 비교하여 기능 중복적인 컴포넌트를 최소화한다. 기능적 유사성 비교는 컴포넌트 온톨로지에서 고수준의 컴포넌트 기능들은 그것들의 저수준 기능들을 포섭할 수 있다는 원리로 이루어진다. 이 비교를 위해 컴포넌트 온톨로지를 이용하여 포함관계를 비교하게 되는데, 저수준 클래스에 있는 컴포넌트는 고수준 클래스의 컴포넌트 보다 더욱 구체적인 기능을 제공한다는 규칙을 이용한다. 즉, 그것들은 컴포넌트 온톨로지 계층상에서 부모-자식 같은 경로를 나타낸다. 도 5에서 C11이 C21보다 컴포넌트 온톨로지 상에서 고수준의 클래스에 속해 있다고 가정하면, C21는 C11 컴포넌트를 수행함으로써 만족될 수 있다. 마찬가지로 C22와 C33의 기능적 유사성 판단을 통해 C33의 기능은 C22를 수행함으로써 만족될 수 있다는 것을 추론할 수 있기 때문에, C22가 선택된다. 이렇게 유사성 판단을 통해 유사한 기능을 수행하는 컴포넌트들의 수를 줄이고, 하나의 통합된 아키텍처가 생성된다. 도 6은 위상적 최적화를 위한 알고리즘의 예를 보여준다. 5 is an exemplary diagram for illustrating a regional optimization technique. First, topological optimization minimizes component redundancy by comparing functional similarities between components in subarchitectures. Functional similarity comparisons are based on the principle that high-level component functions in a component ontology can encompass their low-level functions. For this comparison, we use the component ontology to compare the containment relationships. We use the rule that components in low-level classes provide more specific functionality than those in high-level classes. That is, they represent parent-like paths on the component ontology hierarchy. In FIG. 5, assuming that C11 belongs to a higher level class on a component ontology than C21, C21 may be satisfied by performing a C11 component. Similarly, C22 is selected because it can be inferred that C33's function can be satisfied by performing C22 through judging the functional similarity of C22 and C33. This similarity determination reduces the number of components that perform similar functions and creates an integrated architecture. 6 shows an example of an algorithm for topological optimization.
다음으로, 통합된 아키텍처를 기반으로 실제 컴포넌트들이 바인딩 되어 태스크가 수행되는데, 이 아키텍처의 실행시간 동안 자원 최적화를 수행하기 위한 방법이 시간적 최적화 기법이다. 이를 위해 시간적 최적화 기법에서는 현재 액션을 위해 반드시 필요한 컴포넌트만 유지한다. 도 5에서 액션 1을 수행할 때 액션 2를 위한 컴포넌트 C22, C23을 미리 메모리로 로딩하여 놓고, 액션 2를 수행할 때에는 더 이상 필요 없는 컴포넌트 C12, C13은 메모리로부터 제거하여 준다. 이러한 프리로딩, 언로딩 방법을 이용하여 메모리에 꼭 필요한 컴포넌트들만 로딩되어 있도록 해줌으로써 시간적인 자원 최적화를 이룰 수 있다. 도 7은 시간적 최적화를 위한 알고리즘의 예를 보여준다. Next, tasks are performed by binding the actual components based on the integrated architecture. A method for performing resource optimization during the runtime of this architecture is a temporal optimization technique. To do this, the temporal optimization technique keeps only the components that are essential for the current action. In FIG. 5, the components C22 and C23 for the action 2 are loaded into the memory in advance when the action 1 is performed, and the components C12 and C13 which are no longer needed when performing the action 2 are removed from the memory. Using this preloading and unloading method, time resource optimization can be achieved by ensuring that only the components necessary for the memory are loaded. 7 shows an example of an algorithm for temporal optimization.
시간적 최적화는 다음 액션을 위한 컴포넌트들을 미리 메모리로 로딩하고 더 이상 필요없는 컴포넌트들을 메모리로부터 제거하기 위해, 액션 단위로 수행되는 서브 아키텍처 내에 있는 컴포넌트들이 실행되어야 할 카운트(Reference count)를 이용할 수 있다. 예를 들어 도 5에서 C12, C13의 경우에는 액션 1에서만 필요한 컴포넌트이므로 카운트는 1이고, C11은 액션 1 및 액션 2를 위해 수행되어야 하므로 카운트는 2가 된다. Temporal optimization may use a reference count in which components in a subarchitecture performed on a per-action basis should be executed in order to preload the components for the next action into memory and remove components that are no longer needed. For example, in the case of C12 and C13 in FIG. 5, the count is 1 since it is a component necessary only in action 1, and the count is 2 since C11 should be performed for action 1 and action 2.
도 8 및 도 9는 본 발명에 의한 태스크 기반의 소프트웨어 아키텍처 생성 방법을 로봇에 응용하는 응용예를 설명하기 위한 도면이다. 8 and 9 are diagrams for explaining an application example of applying a task-based software architecture generation method to a robot according to the present invention.
만약 사용자가 로봇에게 "주방에서 물을 가져와라"라는 명령을 하면, 태스크 매니저는 액션의 순차로 이루어진 태스크 플랜을 생성하여 아키텍처 브로커에게 전달한다. 아키텍처 브로커는 이 태스크 플랜에 기술된 액션들을 수행하기 위한 서브 아키텍처들을 검색한다. 도 8에 도시된 것처럼 "Laser-based navigation", "Vision-based navigation", "Manipulation"의 3개의 서브 아키텍처가 선택된다. "Laser-based navigation"은 일반적인 주행을 위한 서브 아키텍처 이고, "Vision-based navigation"은 사물을 이미지 프로세싱을 통하여 판단할 수 있는 서브 아키텍처이며, 본 시나리오에서는 냉장고, 냉장고 손잡이, 주전자, 물 컵 등의 사물을 이미지 프로세싱하기 위해 사용된다. 그리고 "Manipulation"은 로봇의 팔을 동작하는 서브 아키텍처로서, 실제 냉장고 문을 열고, 주전자를 짚고, 물을 따르는 등의 동작을 위해 사용된다. If the user tells the robot to "take water from the kitchen," the task manager creates a sequence of actions and delivers them to the architecture broker. The architecture broker searches for subarchitectures to perform the actions described in this task plan. As shown in FIG. 8, three subarchitectures are selected: "Laser-based navigation", "Vision-based navigation", and "Manipulation". "Laser-based navigation" is a sub-architecture for general driving, and "Vision-based navigation" is a sub-architecture for judging objects through image processing. In this scenario, a refrigerator, a refrigerator handle, a kettle, a water cup, etc. It is used to image things. And "Manipulation" is a sub-architecture that operates the arm of a robot, which is used to open the actual refrigerator door, hold a kettle, pour water, and so on.
도 8을 참조하면, "Laser-based navigation"은 'localizer', 'pathplanner', 'mapbuilder', 'coordinator'의 컴포넌트들로 이루어져 있고, "Vision-based navigation"은 'vision', 'localizer', 'pathplanner', 'mapbuilder', 'coordinator', 'vision_edge' 컴포넌트로 이루어져 있으며, "Manipulation"은 'Arm_contoller', 'Recognizer', 'vision_common' 컴포넌트들로 이루어져 있다. Referring to FIG. 8, "Laser-based navigation" consists of components of "localizer", "pathplanner", "mapbuilder", and "coordinator", and "Vision-based navigation" means "vision", "localizer", It consists of 'pathplanner', 'mapbuilder', 'coordinator', and 'vision_edge' components. "Manipulation" consists of 'Arm_contoller', 'Recognizer' and 'vision_common' components.
도 9에서는 전역적 최적화를 통해 "Laser-based navigation", "Vision-based navigation" 내의 같은 컴포넌트인 'localizer', 'pathplanner', 'mapbuilder', 'coordinator' 컴포넌트가 통합된 모습을 보여주고, 위상적 최적화를 통해 "Vision-based navigation", "Manipulation" 내의 유사한 기능을 하는 'vision_common'과 'vision_edge' 컴포넌트가 유사성 판단을 통해 'vision_edge'로 통합된 모습을 보여준다. 이런 통합을 거친 후 실제 컴포넌트 인스턴스들이 컴포넌트 브로커를 통해 선택 및 바인딩 된 후 액션 순차에 따라 실행되게 된다. 9 shows the integration of the same components 'localizer', 'pathplanner', 'mapbuilder' and 'coordinator' components in "Laser-based navigation" and "Vision-based navigation" through global optimization. Through optimization, the 'vision_common' and 'vision_edge' components, which function similarly in "Vision-based navigation" and "Manipulation", are integrated into the "vision_edge" through the similarity judgment. After this integration, the actual component instances are selected and bound through the component broker and executed in a sequence of actions.
Claims (7)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20080017437 | 2008-02-26 | ||
KR1020080017437 | 2008-02-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20090092203A true KR20090092203A (en) | 2009-08-31 |
Family
ID=41209360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080042428A KR20090092203A (en) | 2008-02-26 | 2008-05-07 | A task-based approach to generate software-architecture |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20090092203A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200030335A (en) | 2018-09-12 | 2020-03-20 | 건양대학교산학협력단 | Internal property based software asset architecture creation system |
-
2008
- 2008-05-07 KR KR1020080042428A patent/KR20090092203A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200030335A (en) | 2018-09-12 | 2020-03-20 | 건양대학교산학협력단 | Internal property based software asset architecture creation system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kakousis et al. | A survey of software adaptation in mobile and ubiquitous computing | |
Capilla et al. | Context variability for context-aware systems | |
Paluska et al. | Structured decomposition of adaptive applications | |
Bai et al. | Dresr: Dynamic routing in enterprise service bus | |
US11030066B2 (en) | Dynamic application decomposition for execution in a computing environment | |
Nastic et al. | A serverless computing fabric for edge & cloud | |
US9304762B2 (en) | Automatically customizing a computer-executable application at runtime | |
US9229980B2 (en) | Composition model for cloud-hosted serving applications | |
Vukojevic-Haupt et al. | On-demand provisioning of workflow middleware and services into the cloud: an overview | |
KR20090092203A (en) | A task-based approach to generate software-architecture | |
Cai et al. | Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing | |
Ribeiro et al. | Deployment of multiagent mechatronic systems | |
US20240112062A1 (en) | Quantum circuit service | |
US12210854B2 (en) | Methods and apparatuses for providing a function as a service platform | |
Park et al. | A task‐based and resource‐aware approach to dynamically generate optimal software architecture for intelligent service robots | |
Valetto et al. | A uniform programming abstraction for effecting autonomic adaptations onto software systems | |
Mezni et al. | Aws-policy: an extension for autonomic web service description | |
Söldner et al. | Providing context-aware adaptations based on a semantic model | |
JP4820553B2 (en) | Method, computer program and computing system for performing deterministic dispatch of data based on rules | |
Dillon et al. | GRIDSpace: semantic grid services on the web-evolution towards a softgrid | |
Mezni et al. | An autonomic registry-based SOA model | |
Nan et al. | A QoS_Based Self Adaptive Control Strategy and Implementation for BPEL Process | |
US8898621B2 (en) | Methods and systems for implementing a logical programming model | |
Zhou et al. | Software Adaptation in an Open Environment: A Software Architecture Perspective | |
Patsch et al. | Make Applications FaaS-ready: Challenges and Guidelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20080507 |
|
PA0201 | Request for examination | ||
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20090710 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20091130 Patent event code: PE09021S01D |
|
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20100309 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20091130 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |