KR101101519B1 - A Software Development System and Method using an Ontology based Component Assembly Technology - Google Patents

A Software Development System and Method using an Ontology based Component Assembly Technology Download PDF

Info

Publication number
KR101101519B1
KR101101519B1 KR1020090105220A KR20090105220A KR101101519B1 KR 101101519 B1 KR101101519 B1 KR 101101519B1 KR 1020090105220 A KR1020090105220 A KR 1020090105220A KR 20090105220 A KR20090105220 A KR 20090105220A KR 101101519 B1 KR101101519 B1 KR 101101519B1
Authority
KR
South Korea
Prior art keywords
ontology
component
parameter
metadata
interface
Prior art date
Application number
KR1020090105220A
Other languages
Korean (ko)
Other versions
KR20090122898A (en
Inventor
임윤선
정안모
Original Assignee
정안모
임윤선
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정안모, 임윤선 filed Critical 정안모
Priority to KR1020090105220A priority Critical patent/KR101101519B1/en
Publication of KR20090122898A publication Critical patent/KR20090122898A/en
Application granted granted Critical
Publication of KR101101519B1 publication Critical patent/KR101101519B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/316Aspect-oriented programming techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에 따른 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템 및 그 방법은 애플리케이션이 속한 도메인의 개념(Concept)들과 개념들 간의 관계(Relationship)를 모델링하는 사용자 인터페이스를 제공하여 도메인 온톨로지를 구축하고 개발자들이 공유할 수 있게 하는 ‘온톨로지 구축 시스템’ 내부의 ‘도메인 온톨로지 구축 수단’; 서비스 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스(provided interface)와 더불어 하위 컴포넌트들을 호출하기 위한 서비스 요청 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수(Parameter)들 각각에 대하여, 상기 온톨로지 구축 시스템에 접속하여 구축된 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준 정보를 표현한 메타데이터를 부가할 수 있게 하는 ‘컴포넌트 개발 수단’과; 상기 서비스 컴포넌트들을 조립하여 소프트웨어를 개발할 때, 상위 컴포넌트(클라이언트 컴포넌트)의 서비스 요청 인터페이스에 부가된 메타데이터와 하위 컴포넌트(서버 컴포넌트)의 서비스 제공 인터페이스에 부가된 메타데이터를 읽어 들이고, 이들을 상기 온톨로지 구축 수단에 접속하여 구축된 온톨로지들과 비교하여 인터페이스 간 중재(mediation) 컴포넌트 코드를 자동 생성하는 ‘컴포넌트 조립 수단’을 포함하는 것을 특징으로 하며, 서비스 컴포넌트의 재사용성과 소프트웨어 개발 생산성을 크게 향상시키는 효과가 있다.

Figure 112009067411877-pat00001

컴포넌트 조립, 중재 컴포넌트, 온톨로지, 메타데이터, 컴포넌트 재사용

Software development system and method using ontology-based component assembly technology according to the present invention provides a user interface modeling the concepts of the domain to which the application belongs (Relationship) and build a domain ontology and developers Domain ontology building means within an ontology building system that can be shared by the public; Each of the input and output parameters of the methods constituting the service request interfaces for invoking the subcomponents together with the service providing interface provided by the service component to the parent component is provided to the ontology building system. A 'component development means' for adding metadata representing the meaning of the parameter, the value to be taken by the parameter, and the conversion criterion information of the parameter by using the concepts and relationships of the ontology constructed by accessing; When assembling the service components to develop the software, the metadata added to the service request interface of the upper component (client component) and the metadata added to the service providing interface of the lower component (server component) are read and these are built on the ontology. It includes a 'component assembly means' for automatically generating mediation component code between interfaces compared to the ontology built by accessing the means, and greatly improves the reusability of service components and the productivity of software development. have.

Figure 112009067411877-pat00001

Component assembly, mediation component, ontology, metadata, component reuse

Description

온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템 및 그 방법 {A Software Development System and Method using an Ontology based Component Assembly Technology}Software development system and method using ontology-based component assembly technology {A Software Development System and Method using an Ontology based Component Assembly Technology}

본 발명은 객체지향 컴포넌트 기반 소프트웨어 개발 기술에 관한 것으로, 더욱 상세하게는 독립적으로 개발한 컴포넌트들을 조립하여 애플리케이션을 개발하는 시스템에서 컴포넌트의 소스 코드 수정 없이 바이너리 수준에서 조립할 수 있는 기술에 관한 것이다. The present invention relates to an object-oriented component-based software development technology, and more particularly, to a technology that can be assembled at a binary level without modifying the source code of a component in a system for assembling independently developed components to develop an application.

현대 경영이 요구하는 정보 시스템은 그 복잡도와 규모가 점점 커지고 있으며, 경쟁이 심화되면서 시스템의 신속한 구축과 변경 및 확장의 용이성, 구축비용 절감 등의 필요성이 더욱 절실해졌다. 이에 대한 최적의 대안으로서 등장한 컴포넌트 기반 소프트웨어 개발 방법론(Component Based Development Methodology: CBD)은 분할 정복의 원리와 객체 지향 개발의 이점을 계승하되 소프트웨어 모듈을 부품화함으로써 재사용을 가능하게 하고 소프트웨어 개발을 조립 개념으로 발전시켰다.The information systems demanded by modern management are increasing in complexity and size, and as the competition intensifies, there is an urgent need for rapid system deployment, ease of change and expansion, and reduction in construction costs. The Component Based Development Methodology (CBD), which emerged as an optimal alternative to this, inherits the principles of partitioning and conquest and the benefits of object-oriented development. Developed into.

컴포넌트 기반 소프트웨어 개발 방법론의 목표에 따라 컴포넌트들의 재사용성을 높이기 위해서는 컴포넌트의 소스코드를 수정하지 않고 바이너리 코드 차원에서 조립이 가능해야 한다. 그러나 기존 컴포넌트 모델에 따라 개발된 컴포넌트들은 자신이 제공하는 서비스에 대한 인터페이스는 독자적으로 정의하여 외부로 노출 시키지만, 하위 계층 컴포넌트와의 연동은 철저히 하위 컴포넌트가 정의한 인터페이스에 따른 코딩을 통해 구현된다. 따라서 하위 컴포넌트 서비스에 의존하지 않는 간단한 GUI용 컴포넌트들만 재사용되고 있으며 비즈니스 논리를 처리하는 중간 계층 컴포넌트들의 재사용율은 지극히 낮은 실정이다.According to the goal of the component-based software development methodology, in order to increase the reusability of components, they must be assembled at the binary code level without modifying the source code of the component. However, the components developed according to the existing component model define the interface for the services they provide independently and expose them to the outside, but the interworking with the lower layer components is implemented through coding according to the interface defined by the lower component. Therefore, only simple GUI components that do not depend on subcomponent services are being reused, and the reuse rate of middle layer components that process business logic is extremely low.

상기의 문제를 해결하기 위해 컴포넌트의 의존 계약 명세를 포함하도록 메타데이터를 확장함으로써, 서로 다른 개발자들에 의해 독립적으로 개발된 컴포넌트들을 다계층 구조로 및/또는 분산 구조 형태로 조립할 수 있게 하는 방법(대한민국 특허 출원 번호 10-2004-0033449: 이후 이 특허를 본 발명에서는 ABT(Active Binding Technology) 기술이라 지칭)이 제안되었다.그러나 ABT 기술은 바이너리 컴포넌트들의 소스코드를 수정하지 않고 바이너리 수준에서 조립할 수 있게 하였으나, 독립적으로 개발된 컴포넌트간 인터페이스를 중재하는 중재 컴포넌트를 개발해야 하는 새로운 부담을 야기시킨다. ABT 기술은 컴포넌트 인터페이스에 부가된 자연어 기반의 메타데이터를 개발자에게 보여주고, 개발자는 자연어 기반의 메타데이터를 해석하여 컴포넌트간 인터페이스를 중재하는 중재 컴포넌트를 개발하는 작업을 해야한다. 이는 자연어가 가지는 모호성(ambiguity)때문에 중재 컴포넌트 코드 개발 시 에러가 발생할 가능성이 있고, 보통 수십에서 수백 개에 이르는 컴포넌트 메소드들의 조립을 수작업에 의존하여야 하므로 상당한 시간과 비용이 소요된다.In order to solve the above problem, the metadata can be extended to include a dependency contract specification of a component so that components developed independently by different developers can be assembled in a multi-layered and / or distributed structure. Korean Patent Application No. 10-2004-0033449: Since then, this patent is referred to as Active Binding Technology (ABT) technology in the present invention. However, ABT technology can be assembled at the binary level without modifying the source code of binary components. However, it creates a new burden of developing an arbitration component that mediates an independently developed interface between components. ABT technology shows developers the natural language-based metadata added to the component interface, and the developer must work on developing the mediation component that mediates the interface between components by interpreting the natural language-based metadata. This is because of the ambiguity of natural language, which can lead to errors in the development of mediation component code, and it requires considerable time and cost because the manual assembly of several tens to hundreds of component methods is required.

온톨로지를 활용하여 서비스 들을 동적으로 조립하고 호출하는 방법에 관한 연구들[“OWL-S”, “Dynamic Service Composition Using Semantic Information”, “SWORD: A Developer Toolkit or Web Service Composition” ]이 있다. 동적으로 관련된 서비스들을 찾아 이들을 조립하고 호출하려면 서비스들의 입/출력 매개변수간 정합을 위하여 중재(mediation) 코드 자동 생성이 필수적이다. 파라미터간 정합을 위한 중재 코드 자동 생성에 온톨로지를 활용하는 것은 본 발명의 데이터 타입 컨버터 코드 자동 생성 방법과 유사한 목표이다. 웹 서비스에 대한 발견과 자동 조립 및 호출 지원을 표방하는 OWL기반의 서비스 온톨로지 언어인 OWL-S는 Service Profile, Service Model, Service Grounding 온톨로지로 구성되어 있다. 그러나 이들은 조립과 호출에 필요한 메타 정보들에 관한 규정일 뿐 구체적인 조립과 호출 알고리즘이나 방법을 제안하지 않는다. 사용자의 질의를 분석하여 동적으로 관련 서비스 컴포넌트들을 찾아 조립하고 호출하여 답을 구하는 것을 목표로 하는 동적 서비스 조립(dynamic service composition)에서도 동적 서비스 조립과 호출이라는 목표를 달성하려면 서비스 간 파라미터 정합 코드 생성이 필수적이다. 그러나 관련 연구들에서는 의미를 기준으로 매칭되는 서비스와 매개 변수들을 찾는데 온톨로지를 활용하는 방법을 제시하는데 중점을 두고 있을 뿐이며, 매개 변수들의 정합 코 드 생성에 온톨로지를 활용하는 방법을 제시하지 않고 있다.There are studies on how to use ontology to dynamically assemble and call services [“OWL-S”, “Dynamic Service Composition Using Semantic Information”, “SWORD: A Developer Toolkit or Web Service Composition”). In order to find and assemble and call dynamically related services, automatic generation of mediation code is necessary to match the input and output parameters of the services. The use of ontology for automatic generation of arbitration code for matching between parameters is a similar goal to the automatic generation method of data type converter code of the present invention. OWL-S, an OWL-based service ontology language that supports web service discovery, automatic assembly, and invocation support, consists of Service Profile, Service Model, and Service Grounding ontology. However, these are only provisions for the meta information required for assembly and calling, and do not suggest specific assembly and calling algorithms or methods. In dynamic service composition, which aims to analyze the user's query, find, assemble and call related service components dynamically, and obtain the answer, parameter matching code generation between services is needed to achieve the goal of dynamic service assembly and invocation. It is essential. However, the related studies focus only on suggesting how to use ontology to find matching services and parameters based on semantics, and do not suggest how to use ontology to generate matching code of parameters.

데이터 가변성 처리에 온톨로지 기반 메타데이터를 활용하는 "온톨로지 기반 데이터 가변성 처리 시스템 및 방법"(대한민국 특허 출원 번호 10-2009-0103846: 이후 본 발명에서는 이 출원 기술을 온톨로지 기반 DTT(Ontology based Data Type Tolerance) 기술이라 지칭)이 제안되었다. 온톨로지 기반 DTT 기술은 데이터 가변성 처리를 효율적으로 하기 위해 타입 변환 코드를 자동 생성하는 방법에 관한 것으로서, 컴포넌트간 인터페이스 중재를 위해 매개변수간 변환 코드를 자동 생성하는 본 발명과 비슷한 측면이 있다. 그러나 온톨로지 기반 DTT 기술은 서비스 컴포넌트가 데이터에 종속되지 않게 하기 위한 것으로, 독립적으로 개발되어 인터페이스가 상이한 컴포넌트들을 조립하기 위한 본 발명과는 그 구성과 작용이 다르다. 본 발명은 데이터 가변성을 처리하는 온톨로지 기반 DTT 기술과 서비스 컴포넌트의 재사용을 높이는 상호보완적 기술로서, 소프트웨어의 '조립 기반 개발'(development by assembly)을 지원한다."Ontology-based data variability processing system and method that utilizes ontology-based metadata for data variability processing" (Korean Patent Application No. 10-2009-0103846: Later in the present invention, this application technology ontology-based Ontology based Data Type Tolerance (DTT) Technique). Ontology-based DTT technology relates to a method for automatically generating type conversion code to efficiently process data variability, and has a similar aspect to the present invention of automatically generating an inter-parameter conversion code for inter-component interface arbitration. However, the ontology-based DTT technology is intended to prevent service components from being dependent on data. The ontology-based DTT technology differs in configuration and operation from the present invention for assembling components that are independently developed and have different interfaces. The present invention is an ontology-based DTT technology that handles data variability and a complementary technology that enhances reuse of service components, and supports 'development by assembly' of software.

본 발명이 해결하고자 하는 기술적 과제는, ABT 기술이 독립적으로 개발된 컴포넌트들을 코드 수정 없이 조립할 수 있게 한 대신 새롭게 야기 시킨 중재 컴포넌트 개발 부담 문제를 해결하기 위하여 안출된 것으로, 애플리케이션 도메인의 온톨로지를 구축하고, 서비스 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스(provided interface)와 더불어 하위 컴포넌트들을 호출하기 위한 서비스 요청 인터페이스(required interface)들을 구성하는 메소드들의 입력 및 출력 매개변수(parameter)들 각각에 대하여 구축된 온톨로지의 개념과 관계로 표현된 메타데이터를 부가하며, 이 메타데이터들과 온톨로지를 비교하여 중재 컴포넌트 코드를 에러 없이 자동으로 생성함으로써, ABT 기술에 비해 한층 더 효율이 제고된 소프트웨어 개발 시스템 및 그 방법을 제공하는데 있다.The technical problem to be solved by the present invention is to solve the burden of developing a new mediation component instead of allowing ABT technology to assemble independently developed components without code modification. For each of the input and output parameters of the methods that make up the service-required interfaces for invoking subcomponents, as well as the service-provided interface provided by the service component to the parent component. Software development system and its efficiency which is more efficient than ABT technology by adding metadata expressed in relation to the concept of ontology, and automatically generating mediation component code without error by comparing these metadata with ontology. How to To provide.

상기 기술적 과제를 해결하기 위하여 본 발명에 의한 온톨로지 기반 컴포넌트 조립을 이용한 소프트웨어 개발 시스템은 애플리케이션이 속한 도메인의 개념(concept)들과 개념들 간의 관계(relationship)를 모델링하는 사용자 인터페이스를 제공하여 도메인 온톨로지를 구축하고 개발자들이 공유할 수 있게 하는 ‘온톨로지 구축 시스템’ 내부의 ‘도메인 온톨로지 구축 수단’과; 서비스 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스와 더불어 하위 컴포넌트들을 호출하기 위한 서비스 요청 인터페이스를 명시적으로 갖추게 하고, 상기 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수들 각각에 대하여, 상기 온톨로지 구축 시스템에 접속하여 구축된 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준 정보를 표현한 메타데이터를 부가할 수 있게 하는 ‘컴포넌트 개발 수단’과; 상기 서비스 컴포넌트들을 조립하여 소프트웨어를 개발할 때, 상위 컴포넌트(클라이언트 컴포넌트)의 서비스 요청 인터페이스에 부가된 메타데이터와 하위 컴포넌트(서버 컴포넌트)의 서비스 제공 인터페이스에 부가된 메타데이터를 읽어 들이고, 이들을 상기 온톨로지 구축 수단에 접속하여 구축된 온톨로지들과 비교하여 인터페이스 간 중재(mediation) 컴포넌트 코드를 자동 생성하는 ‘컴포넌트 조립 수단’을 포함하는 것을 특징으로 한다.In order to solve the above technical problem, the software development system using ontology-based component assembly according to the present invention provides a domain ontology by providing a user interface for modeling concepts and relations between domains to which an application belongs. A domain ontology building means within an ontology building system that can be built and shared by developers; In addition to the service providing interface provided by the service component to the upper component, the service request interface for invoking the lower components is explicitly provided, and for each of the input and output parameters of the methods configuring the interfaces, the ontology is constructed. 'Component development means' for adding metadata representing the meaning of the parameter, the value the parameter will take, and the conversion reference information of the parameter using concepts and relationships of the ontology constructed by connecting to the system; When assembling the service components to develop the software, the metadata added to the service request interface of the upper component (client component) and the metadata added to the service providing interface of the lower component (server component) are read and these are built on the ontology. And a 'component assembly means' for automatically generating mediation component code between interfaces in comparison with ontology constructed by accessing the means.

또한, 상기 기술적 과제를 해결하기 위하여 본 발명에 의한 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 방법은 애플리케이션이 속한 도메인의 개념들과 개념들 간의 관계를 모델링한 도메인 온톨로지를 구축하는 단계; 요구 사항 변화에 따라 상기 도메인 온톨로지의 개념들과 관계를 갖는 새로운 개념들을 추가한 확장 온톨로지를 구축하는 단계; 애플리케이션의 기능을 처리하는 서비스 컴포넌트를 구현함에 있어서 하위 컴포넌트들을 호출할 필요가 있을 때, 하위 컴포넌트가 제공하는 인터페이스에 의존하는 코드를 작성하는 대신 독자적으로 서비스 요청 인터페이스를 정의하여 이를 사용하는 코드를 작성함으로써 해당 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스와 더불어 하위 컴포넌트들을 호 출하기 위한 서비스 요청 인터페이스를 명시적으로 갖추게 하는 단계; 상기 단계 에서 정의한 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수 각각에 대하여, 상기 단계 구축된 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준정보를 표현한 메타데이터를 부가하는 단계; 상기 단계를 거쳐 개발된 서비스 컴포넌트들을 조립할 때, 상위 컴포넌트의 서비스 요청 인터페이스에 부가된 메타데이터와 하위 컴포넌트의 서비스 제공 인터페이스에 부가된 메타데이터를 읽어 들이고, 이들을 구축된 온톨로지들과 비교하여 인터페이스 간 중재 컴포넌트 코드를 자동 생성하여 컴포넌트들을 조립하는 단계;를 포함하는 것을 특징으로 한다.In addition, the software development method using the ontology-based component assembly technology according to the present invention to solve the above technical problem comprises the steps of: building a domain ontology modeling the concepts of the domain to which the application belongs; Building an extended ontology adding new concepts related to the concepts of the domain ontology according to a change in requirements; When implementing a service component that handles the functionality of an application, you need to call the subcomponents, instead of writing code that depends on the interface provided by the subcomponent, write your own service request interface to use it. Thereby explicitly providing a service request interface for calling the lower components together with a service providing interface provided to the upper component by the corresponding component; For each of the input and output parameters of the methods constituting the interfaces defined in the step, using the concepts and relationships of the ontology established in the step, the meaning of the parameter, the value to be taken, and the conversion reference information of the parameter are expressed. Adding metadata; When assembling the service components developed through the above steps, the metadata added to the service request interface of the upper component and the metadata added to the service providing interface of the lower component are read, and these are compared with the constructed ontology to mediate between interfaces. Automatically generating component code to assemble the components; characterized in that it comprises a.

이상에서 설명한 수단과 방법을 사용하여, 본 발명은 독립적으로 개발된 컴포넌트들을 소스 코드 수정 없이 재사용할 수 있게 하는 동시에 중재 컴포넌트 코드를 자동 생성하여 중재 컴포넌트 개발 부담 문제를 해결함으로써 종래 기술에 비해 소프트웨어 개발 생산성을 크게 향상시키는 효과가 있다.By using the above-described means and methods, the present invention can solve the burden of arbitration component development by automatically generating arbitration component code while simultaneously reusing independently developed components without modification of source code, and thereby developing software in comparison with the prior art. This has the effect of greatly improving productivity.

이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 설명한다.Hereinafter, with reference to the accompanying drawings will be described specific details for the practice of the invention.

도 1은 본 발명에 따른 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개 발 시스템의 구성을 도시한 블록도로서, 도메인 온톨로지 구축수단(111)과 확장 온톨로지 구축 수단(112)을 포함하는 온톨로지 구축 시스템(110)과, 컴포넌트 개발 수단(130), 컴포넌트 조립 수단(140)을 갖추고 도메인 온톨로지(121), 확장 온톨로지(122), 클라이언트 컴포넌트(131), 서버 컴포넌트(132), 중재 컴포넌트(141)를 포함한다. 1 is a block diagram showing the configuration of a software development system using the ontology-based component assembly technology according to the present invention, an ontology building system 110 including a domain ontology building means 111 and an extended ontology building means 112. And the component development means 130 and the component assembling means 140, the domain ontology 121, the extension ontology 122, the client component 131, the server component 132, and the mediation component 141. .

온톨로지 구축 시스템 내부에 있는 도메인 온톨로지 구축 수단(111)은 애플리케이션이 속한 도메인의 개념들과 개념들 간의 관계를 모델링하는 사용자 인터페이스를 제공하여 도메인 온톨로지(121)를 구축하고 개발자들이 공유할 수 있게 한다. 확장 온톨로지 구축 수단(112)은 애플리케이션의 요구사항 변화에 따라 상기 도메인 온톨로지의 개념들과 관계를 갖는 새로운 개념들을 추가하여 확장 온톨로지(122)를 구축할 수 있게 한다.The domain ontology building means 111 in the ontology building system provides a user interface for modeling the concepts and the relationships between the domains to which the application belongs, thereby building the domain ontology 121 and allowing developers to share it. The extension ontology building means 112 can build the extension ontology 122 by adding new concepts related to the concepts of the domain ontology as the requirements of the application change.

컴포넌트 개발 수단(130)은 애플리케이션의 기능을 처리하는 컴포넌트를 구현함에 있어서 하위 컴포넌트들을 호출할 필요가 있을 때, 하위 컴포넌트가 제공하는 인터페이스에 의존하는 코드를 작성하는 대신 독자적으로 서비스 요청 인터페이스를 정의하여 이를 사용하는 코드를 작성함으로써 해당 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스와 더불어 하위 컴포넌트들을 호출하기 위한 서비스 요청 인터페이스를 명시적으로 갖추게 하고, 상기 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수들 각각에 대하여, 상기 온톨로지 구축 시스템에 접속하여 구축된 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값,매개변수의 변환 기준 정보를 표현한 메타데이터를 부가할 수 있게 한다.When the component development means 130 needs to call the subcomponents in implementing a component that handles the function of the application, the component development means 130 defines a service request interface by itself instead of writing code that depends on the interface provided by the subcomponent. By writing code that uses this, you explicitly have a service request interface that the component provides to the parent component, as well as a service request interface to call the child components, and the input and output parameters of the methods that make up the interfaces. For each of them, it is possible to add metadata representing the meaning of the parameter, the value to be taken by the parameter, and the conversion reference information of the parameter by using the concepts and relationships of the ontology constructed by accessing the ontology building system.

컴포넌트 조립 수단(140)은 상기 서비스 컴포넌트들을 조립하여 소프트웨어를 개발할 때, 상위 컴포넌트(클라이언트 컴포넌트)(131)의 서비스 요청 인터페이스에 부가된 메타데이터와 하위 컴포넌트(서버 컴포넌트)(132)의 서비스 제공 인터페이스에 부가된 메타데이터를 읽어 들이고, 이들을 상기 온톨로지 구축 수단에 접속하여 구축된 온톨로지들과 비교하여 인터페이스 간 중재(mediation) 컴포넌트(141) 코드를 자동 생성한다.When the component assembling means 140 assembles the service components and develops the software, the metadata added to the service request interface of the upper component (client component) 131 and the service providing interface of the lower component (server component) 132. It reads the metadata added to and compares them with the ontology building means to automatically generate the inter-mediation mediation component 141 code.

도 2는 본 발명을 적용한 도메인 온톨로지와 확장 온톨로지 정보를 도시한 예시도로서, 상기 온톨로지 구측 시스템(110)이 응용 도메인의 특정 휘처(feature)를 모델링할 때 휘처의 밸류 세트(value set)를 구성하는 개체(individual)들의 이름들과 범위 값들만 입력하면 해당 모델을 자동 생성해주는 사용자 인터페이스와 기능을 제공하여, 휘처 개념(210)이 서로 상이한 개체들(221,222)의 열거(enumeration)인 밸류 세트 패턴을 지원하되, 휘처 개념(210)은 반드시 범위(range)나 값(230)을 관계(240)로 연결하여 컴포넌트의 인터페이스가 구성하고 있는 메소드들의 매개변수 값을 변환할 때 의미상 등가 (semantic equivalent value)로 변환하는 코드를 생성하는데 필요한 개념들과 관계들로 구성된 온톨로지를 생성한 실시 예를 보여준 다.FIG. 2 is a diagram illustrating domain ontology and extended ontology information to which the present invention is applied. When the ontology side system 110 models a specific feature of an application domain, a value set of features is configured. Value set patterns in which the feature concept 210 is an enumeration of different entities 221 and 222 by providing a user interface and a function for automatically generating a corresponding model by inputting only names and range values of individual entities. However, the feature concept 210 must be a semantic equivalent when converting parameter values of methods that the component's interface is configured by connecting a range or a value 230 to a relationship 240. The following example shows the creation of an ontology composed of concepts and relationships required to generate code that converts to value).

도 3은 본 발명을 적용한 메타데이터가 포함할 정보를 도시한 예시도로서, 컴포넌트 개발 수단(130)을 사용하여 클라이언트 컴포넌트(131)와 서버 컴포넌트(141)를 개발할 때, 서비스 제공 인터페이스와 서비스 요청 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수들 각각에 대하여 부가되는 메타데이터의 의미를 온톨로지의 개념으로 표현하는 Class URI(310), 매개변수가 취할 값을 표현한 Semantic Value Type(320), 변환 코드 생성 기준으로 사용되는 Converting Criteria(330)로 구성된다.FIG. 3 is a diagram illustrating information to be included in metadata to which the present invention is applied. When the client component 131 and the server component 141 are developed using the component development unit 130, a service providing interface and a service request are shown. Class URI 310 expressing the meaning of metadata added to each of input and output parameters of methods constituting interfaces in terms of ontology, Semantic Value Type 320 representing a value to be taken by parameter, transformation code It consists of Converting Criteria 330 used as a generation criterion.

도 4는 본 발명을 적용한 메타데이터의 정보간 관계를 도시한 예시도로서, 매개변수 메타데이터의 첫번째 구성요소인 Class URI(410)은 두번째 구성요소인 Semantic Value Type (420)이 ‘ClassName’이거나 ‘IndividuaSymbol’일 때는 매개변수 자체의 의미를 나타내는 온톨로지 개념의 URI이고, 두번째 구성요소가 SemanticProperty URI 일 때는 매개변수가 취할 값의 개념을 속성관계로 갖는 개념의 URI이다. 매개변수 메타데이터의 두번째 구성요소인 Semantic Value Type(420)은 매개변수가 취할 수 있는 의미론적 값의 종류로서 ‘ClassName’, ‘IndividuaSymbol’, SemanticProperty URI 중 하나가 된다. ‘ClassName’은 매개변수의 값으로 온톨로지 개념 이름 자체를, ‘IndividuaSymbol’은 매개변수의 의미가 밸류 세트 패턴의 휘처 개념이면서 매개변수가 취할 값이 개체 이름임을 의미 한다. SemanticProperty URI는 첫번째 구성요소에 지정된 온톨로지 개념이 갖는 관계 중 매개변수가 취해야 하는 의미론적 값을 나타내는 관계의 URI를 메타데이터로 취하는 것을 표현한 것이다. 도 4의 Property Data Type(430)은 각 매개변수가 취할 수 있는 데이터 형식을 나타낸 것이다. 매개변수 메타데이터의 세번째 구성요소인 Converting Critieria(440)는 매개변수간 형식 및 의미 변환이 필요한 경우, 변환 기능을 제공하는 코드를 생성할 때 사용되는 변환 기준이다. 변환 기준은 상기 두번째 구성 요소인 Semantic Value Type(420)과 속성의 데이터 형식(430)에 따라 None(441,443,445), 변환기준이 되는 범위나 값 개념의 URI(442, 444), Format String(448,449)으로 분류된 값을 취할 수 있다.FIG. 4 is a diagram illustrating a relationship between information of metadata to which the present invention is applied. The Class URI 410, which is the first component of the parameter metadata, has a Semantic Value Type 420 of which the second component is 'ClassName'. When 'IndividuaSymbol' is a URI of ontology concept that represents the meaning of parameter itself, and when the second component is SemanticProperty URI, it is a concept URI that has the concept of the value to be taken as a property relationship. The second component of the parameter metadata, Semantic Value Type 420, is a semantic value that a parameter can take, which can be one of 'ClassName', 'IndividuaSymbol', or SemanticProperty URI. 'ClassName' means the ontology concept name itself as the value of the parameter, and 'IndividuaSymbol' means that the meaning of the parameter is a feature of the value set pattern and the value to be taken is the name of the object. SemanticProperty URI expresses taking metadata of URI of relation that represents semantic value which parameter should take among relations of ontology concept specified in first component. Property Data Type 430 of FIG. 4 illustrates a data format that each parameter can take. The third component of the parameter metadata, Converting Critieria 440, is a conversion criterion used when generating code that provides a conversion function when a format and semantic conversion between parameters is required. The conversion criterion is None (441,443,445) according to the second component Semantic Value Type (420) and the property data type (430), URI (442,444) of the range or value concept to be converted, and Format String (448,449). Can be classified as

도 5는 본 발명에 따른 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템 및 그 방법에 따라 개발된 온톨로지(510, 520)와 컴포넌트들(530, 540, 560), 런타임 프레임워크(570)의 구조와 관계를 도시한 블록도이다, 도메인 온톨로지 구축 수단(111)을 통해 구축된 도메인 온톨로지(510), 확장 온톨로지 수단(112)을 통해 구축된 확장 온톨로지(520), 컴포넌트 개발 수단(130)을 통해 개발된 온톨로지 기반 메타데이터(532, 542)가 부가된 클라이언트 컴포넌트(530)와 서버 컴포넌트(540), 컴포넌트 조립 수단(140, 550)에 의해 생성된 중재 컴포넌트(560)와 그들 간의 관계가 표현되어 있다.5 is a schematic diagram of a software development system using ontology-based component assembly technology according to the present invention, and structures of ontologies 510 and 520, components 530, 540 and 560, and a runtime framework 570 developed according to the method. It is a block diagram showing the relationship, which is developed through the domain ontology 510 constructed through the domain ontology constructing means 111, the extended ontology 520 constructed through the extended ontology means 112, and the component developing means 130. The client component 530, the server component 540, and the mediation component 560 generated by the component assembling means 140, 550, to which the ontology-based metadata 532, 542 is added, and the relationship between them are represented. .

클라이언트 컴포넌트(530)의 서비스 요청 인터페이스(533)를 구현하도록 컴포넌트 조립 수단(550)에 의해 생성된 중재 컴포넌트(560)는 클라이언트 컴포넌트(530)와 서비스 컴포넌트(540)를 동적으로 조립함으로써, 클라이언트 객체(531)가 서버 객체(541)를 직접 처리하는 대신 중재 객체(561)만을 액세스하면서 동작할 수 있게 한다. The arbitration component 560 generated by the component assembling means 550 to implement the service request interface 533 of the client component 530 dynamically assembles the client component 530 and the service component 540, thereby providing a client object. Allows 531 to operate while accessing only the arbitration object 561 instead of directly processing the server object 541.

또한 비즈니스 요구 사항이 바뀌어서 서버 컴포넌트(540)가 변하더라도, 컴포넌트 조립 수단(550)은 변경된 서버 컴포넌트(540)와 클라이언트 컴포넌트(530)의 새로운 중재 컴포넌트(550)를 자동 생성함으로써, 클라이언트 컴포넌트의 소스 코드 수정 없이도 변경된 서버 컴포넌트를 중재 컴포넌트를 통해 액세스할 수 있게 한다. In addition, even if the business requirements change and the server component 540 changes, the component assembling means 550 automatically generates a new mediation component 550 of the changed server component 540 and the client component 530 so that the source of the client component can be changed. Allows changed server components to be accessible through mediation components without code modification.

상기와 같은 구조를 갖는 온톨로지와, 클라이언트 컴포넌트, 서버 컴포넌트를 생성하고 컴포넌트 조립 수단을 통해 중재 컴포넌트를 생성함으로써 소프트웨어를 개발하는 시스템의 동작과정을 도 6및 도 7를 참조하여 설명한다.An ontology having the above structure, an operation process of a system for developing software by generating a client component and a server component and generating an arbitration component through component assembly means will be described with reference to FIGS. 6 and 7.

도 6을 참조하면, 도메인 온톨로지 구축 수단이 애플리케이션이 속한 도메인의 개념들과 개념들 간의 관계를 모델링하는 사용자 인터페이스를 제공하여 도메인 온톨로지를 구축하고(S610), 애플리케이션의 요구사항 변화에 따라 상기 도메인 온톨로지의 개념들과 관계를 갖는 새로운 개념들을 추가하여 확장 온톨로지를 구축하고(S620), 클라이언트 컴포넌트의 서비스 요청 인터페이스와 서버 컴포넌트의 서비스 제공 인터페이스를 명시적으로 갖춘 컴포넌트를 구현한다(S630). 상기 과정을 거쳐 컴포넌트 구현시 정의한 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수 각각에 대하여, 도메인 온톨로지 및 확장 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준 정보를 표현한 메타데이터를 부가한다(S640). 클라이언트 컴포넌트의 서비스 요청 인터페이스에 부가된 메타데이터와 서버 컴포넌트의 서비스 제공 인터페이스에 부가된 메ㅌ타650)데이터를 읽어 들이고, 이들을 도메인 및 확장 온톨로지들과 비교하여 인터페이스간 중재 컴포넌트 코드를 자동 생성한다(S650).Referring to FIG. 6, the domain ontology building means provides a user interface for modeling the concepts of the domain to which the application belongs and the relationships among the concepts to construct the domain ontology (S610), and changes the domain ontology according to the requirements of the application. By adding new concepts having a relationship with the concepts of (S620), an extension ontology is built (S620), and a component having a service request interface of the client component and a service providing interface of the server component is implemented (S630). For each of the input and output parameters of the methods constituting the interfaces defined in the component implementation through the above process, the meaning of the parameter, the value that the parameter will take, and the parameter conversion using the concepts and relationships of the domain ontology and the extension ontology The metadata expressing the reference information is added (S640). It reads metadata added to the service request interface of the client component and metadata 650 added to the service providing interface of the server component, and compares them with domain and extension ontology to automatically generate inter-intermediate component code. S650).

도 7은 도 6의 중재 컴포넌트의 자동 생성 과정을 보다 상세히 도시한 흐름도로서, 위에서 설명한 각 수단들과 온톨로지 및 메타데이터 정보들과 관련 지어 설명한다. 컴포넌트 조립 수단(550)은, 클라이언트 컴포넌트(530)의 서비스 요청 인터페이스(533)의 메소드(이후 본 발명에서는 서비스 요청 메소드라 지칭)들의 각 매개변수들에 부가된 메타데이터(532)와 서버 컴포넌트(540)의 서비스 제공 인터페이스(543)의 메소드(이후 본 발명에서는 서비스 제공 메소드라 지칭)들의 각 매개변수에 부가된 메타데이터(542)들을 읽어(S710), 각 매개변수의 의미에 해당하는 개념들을 도메인 온톨로지(510)와 확장 온톨로지(520)에서 추론 기능을 사용해 비교함으로써 매핑되는 매개변수들의 쌍들을 자동 식별하는 단계(S720)와, 식별된 모든 매개변수쌍들 중 변환 코드가 생성되지 않은 매개변수쌍을 선택하는 단계(S730), 선택된 매개변수쌍의 메타데이터에서 매개변수 변환 기준을 읽어 그 변환 기준에 따라 분기하는 단계(S740), 매개변수 변환 기준이 ‘없음(None)'(441,443,445)이면 두 매개변수의 데이터 타입을 비교하여 단순 데이터 타입 변환 코드를 생성하는 단계(S750), 상기 단계 (S740)에서 읽은 매개변수 변환 기준이 단위의 이름(446)이면 두 매개변수의 값을 해당 단위에 맞게 변환하는 코드를 생성하는 단계(S760), 상기 단계 (S740)에서 읽은 매개변수 변환 기준이 온톨로지에서 범위나 값을 나타내는 개념이고, 매개변수의 의미가 밸류 세트 패턴의 휘처 개념이면서 매개변수가 취할 값이 개체 이름(442,444)일 경우, 변환할 매개변수의 온톨로지와 변환될 매개변수의 온톨로지에서 밸류 세트의 각 개체들(221,222)과 관계로 연결된 범위나 값들(231,232)을 상호 비교하여 의미상 등가의 개체들을 찾고, 변환할 매개변수의 값에 해당하는 개체의 이름을 변환될 매개변수의 온톨로지에 있는 등가의 개체 이름으로 변환해주는 코드를 생성하는 단계(S770), 상기 단계 (S730) 내지 (S780)를 모든 매개변수쌍에 대하여 변환 코드가 만들어질 때까지 반복하는 단계(S790)를 거쳐 중재 컴포넌트 코드를 완성한다.FIG. 7 is a flowchart illustrating the automatic generation of the arbitration component of FIG. 6 in more detail, and is described in relation to the above-described means, ontology and metadata information. The component assembling means 550 may include a server component (metadata 532 and server components (53) added to the parameters of the methods of the service request interface 533 of the client component 530 (hereinafter referred to as the service request method in the present invention). By reading the metadata 542 added to each parameter of the methods of the service providing interface 543 (hereinafter, referred to as a service providing method in the present invention) in step 540 (S710), concepts corresponding to the meaning of each parameter are read. Automatic identification of pairs of parameters mapped by comparing using the inference function in the domain ontology 510 and the extended ontology 520 (S720), and a parameter for which no conversion code is generated among all identified parameter pairs Selecting a pair (S730), reading the parameter conversion criteria from the metadata of the selected parameter pair and branching according to the conversion criteria (S740), changing the parameters If the criterion is 'None' (441,443,445), the data type of the two parameters are compared to generate a simple data type conversion code (S750), and the parameter conversion criterion read in the step (S740) is the name of the unit ( 446) is a step of generating a code for converting the values of the two parameters according to the unit (S760), the parameter conversion criteria read in the step (S740) is a concept representing a range or value in the ontology, meaning of the parameters If is a feature of the value set pattern and the value that the parameter takes is an object name (442,444), then the range associated with each entity (221,222) in the value set in the ontology of the parameter to be converted and the ontology of the parameter to be converted. Compare values (231,232) to find semantically equivalent objects, and replace the name of the object corresponding to the value of the parameter to be converted with the equivalent object in the ontology of the parameter to be converted. Generating the code for converting the data to a realm (S770), and repeating the steps (S730) to (S780) for all parameter pairs until the conversion code is generated (S790) to complete the arbitration component code. .

이하, 본 발명에 따른 컴포넌트 조립 방법을 실제적인 예를 통해 구체적으로 설명하기 위해 C# 프로그래밍 언어로 개발한 수입의류 판매관리 소프트웨어의 클라이언트 컴포넌트 코드, 서버 컴포넌트 코드, 클라이언트 컴포넌트의 서비스 요청 메소드와 서버 컴포넌트의 서비스 제공 메소드들의 각 매개변수에 부가된 메타데이터 및 자동 생성된 중재 컴포넌트 코드를 도시한 도면을 참조하여 상세히 설명한다.Hereinafter, the client component code, the server component code, the service request method of the client component and the server component of the imported clothing sales management software developed in the C # programming language to explain the component assembly method according to the present invention in detail through practical examples. The metadata added to each parameter of the service providing methods and the automatically generated mediation component code will be described in detail with reference to the drawings.

본 발명에 따른 실시예는 의류 수입업체의 상품 정보 제공 프로그램이다. 이 프로 그램은 고객이 요청한 의류상품에 대한 가격 정보를 제공하는 것이다. 수입업체는 현재 유럽 상품을 취급하고 있으나 점차 미국, 중국 등 다양한 국가의 의류상품을 거래할 계획이다. An embodiment according to the present invention is a product information providing program of a clothing import company. This program provides price information on the apparel products requested by the customer. Importers currently deal with European merchandise, but plan to gradually trade apparel products in various countries, including the US and China.

먼저 도메인 엔지니어링을 통해 서비스 요구사항과 가변성을 식별한다. 서비스 요구사항은 고객 아이디와 상품 아이디를 매개변수로 받아 고객 아이디를 통해 고객의 사이즈를 검색한 후 고객 사이즈에 해당하는 상품의 가격 정보를 유럽 의류회사에 문의하여 고객에게 상품 가격 정보를 제공해야 한다. 도메인 엔지니어링을 통해 식별된 가변 요구사항은 유럽 이외의 다양한 국가들과 수입 협약을 맺을 경우 각 국가마다 의류 사이즈 및 통화 단위가 다른 체계를 한국에 맞게 자동 변환하여 고객에게 정보를 제공할 수 있어야 한다.First, domain engineering identifies service requirements and variability. For service requirements, take the customer ID and the product ID as parameters, retrieve the customer's size through the customer ID, and contact the European clothing company with the price information of the product corresponding to the customer's size. . The variable requirements identified through domain engineering should be able to provide information to customers by automatically converting different apparel sizes and currency units to Korea when entering into import agreements with various countries outside Europe.

상기 도 2에서 설명한 온톨로지는 본 예시에 의해 구축된 온톨로지의 일부이다. 도 2는 수입의류 판매관리 애플리케이션의 도메인 온톨로지와 각 국가별 확장 온톨로지 중 의류사이즈 체계 개념을 도시한 것이다. 한국 수입업체의 주문관리 프로그램 개발자(설계자/아키텍트)는 한국의 의류 사이즈 체계를 모델링하기 위해 도메인 온톨로지에서 의류 사이즈 체계를 의미하는 개념 Clothes_TSize(210)의 서브 개념인 Korea_TSize(221)를 포함하는 확장 온톨로지를 구축하였다. Clothes_TSize는 SizeCode 개념(230)의 개체를 값으로 취하는 hasCode 관계(240)를 갖고, 상기 도 2에서 설명한 밸류 세트 패턴을 지원한다. Korea_TSize 개념은 의류 사이즈 체계를 나타내는 열거 개체(221)로써 '44', '55', '66', '77', '88'을 갖고, 한국에서 사용하는 의류사이즈를 나타내는 각 개체들은 hasCode 속성 관계로 사이즈를 코드로 나타내는 SizeCode 개념의 개체(231)를 값으로 갖는다. 유럽 회사의 의류 관리 프로그램 개발자(설계자/아키텍트)는 유럽의 의류 사이즈 체계를 모델링하기 위해 도메인 온톨로지에서 의류 사이즈를 의미하는 개념 Clother_TSize(210)의 서브 개념인 Europe_TSize(212)를 포함하는 확장 온톨로지를 구축하였다. Europe_TSize 개념은 유럽 의류 사이즈를 나타내는 열거 개체(222)로써 "0", "1", "2", ..., "16", "17", "18"을 갖고, 유럽 사이즈를 나타내는 각 개체들은 hasCode 속성 관계로 사이즈를 코드로 나타내는 SizeCode 개념의 개체(232)를 값으로 갖는다.The ontology described in FIG. 2 is a part of the ontology constructed by the present example. Figure 2 illustrates the concept of the clothing size system of the domain ontology of the imported clothing sales management application and the extended ontology for each country. The order management program developer (designer / architect) of a Korean importer is an extended ontology including Korea_TSize (221), which is a sub-concept of the concept Clothes_TSize (210), which means the clothing size system in the domain ontology, in order to model the Korean clothing size system. Was built. Clothes_TSize has a hasCode relationship 240 that takes an object of the SizeCode concept 230 as a value and supports the value set pattern described in FIG. The concept of Korea_TSize is an enumeration entity 221 representing the clothing size system. It has '44', '55', '66', '77', and '88', and each entity representing the garment size used in Korea has a hasCode attribute relationship. The object has a size code object 231 representing a size as a value. A clothing management program developer (designer / architect) of a European company builds an extended ontology that includes Europe_TSize (212), a sub-concept of the concept Clother_TSize (210), which means clothing size in a domain ontology, to model the clothing size system in Europe. It was. The concept Europe_TSize is an enumeration entity 222 representing the European clothing size and has "0", "1", "2", ..., "16", "17", "18", and each entity representing the European size. They have an object 232 of the SizeCode concept representing the size in code in relation to the hasCode attribute.

도 8은 의류수입관리 애플리케이션에서 사용하는 클라이언트 컴포넌트 OrderMgt (820)의 C# 코드를 보여준다. OrderMgt 컴포넌트는 고객 요청시 상품 가격 정보를 알려주는 기능을 처리하는 서비스 제공 메소드 GetProductPrices를 포함하고 있다. GetProductPrice는 상위 컴포넌트에서 요청한 기능을 처리하기 위해서는 하위 컴포넌트들을 호출해야 하므로 하위 컴포넌트가 제공하는 인터페이스에 의존하는 코드를 작성하는 대신 독자적으로 서비스 요청 인터페이스 IRqProduct(830)를 정의하고 서비스 요청 메소드들의 각 매개변수에 대하여, 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준 정보를 표현한 메타데이터(831)가 부가되어 있다. 이를 상세히 설명하면 OrderMgt 컴포넌트의 서비스 요청 인터페이스에 메타데이터를 기술하기 위해 사용하는 온톨로지들의 네임 스페이스가 MetaOntologyNS라는 커스텀 애트리뷰트(810)로 부가되어 있다. 도메인 온톨로지의 네임스페이스는 DomainCMgt로, 수입업체 애플리케이션 온톨로지의 네임스페이스를 KorCMgt로 정의하고 있음을 볼 수 있다. 서비스 요청 인터페이스의 메소드 중 RequestProductPrice의 두번째 매개변수에 부가된 메타데이터(840) 중 매개변수 이름(841)을 제외한 도 3과 4에서 설명한 실제 매개변수에 대한 정보는 842, 843, 844에 나타내고 있다.“DomainCMgt:Clothes_TSize”(842)은 매개변수 size가 도메인 온톨로지에 정의되어 있는 Clothes_TSize라는 개념을 갖는 것을 나타낸다. "KorCMgt:IndividualSymbol”(843)은 수입업체 애플리케이션 확장 온톨로지에서 Clothes_TSize의 서브개념의 열거 개체(221) 중 하나의 이름을 size 매개변수의 값으로 취할 수 있음을 나타낸다. 메타데이터 "DomainCMgt:SizeCode”(844)는 매개변수인 size를 변환할 때, 해당 매개변수의 밸류 세트의 각 개체들과 hasCode 관계(243)로 연결된 SizeCode(230)의 개체 값이 변환 기준이 됨을 의미한다. 또한 상품 가격은 한국 화폐 단위 "원"(851)이 반환값임을 메타데이터(850)로 표현한다. 8 shows the C # code of the client component OrderMgt 820 used in the garment import management application. The OrderMgt component contains a service provision method GetProductPrices that handles the function of informing the product price information at the customer request. Since GetProductPrice must call the subcomponents to handle the functions requested by the parent component, instead of writing code that depends on the interface provided by the subcomponent, define its own service request interface IRqProduct (830) and specify each parameter of the service request methods. For this, metadata 831 representing the meaning of the parameter, the value to be taken by the parameter, and the conversion reference information of the parameter is added using the concepts and relationships of the ontology. In detail, the namespace of ontology used to describe metadata in the service request interface of the OrderMgt component is added as a custom attribute 810 called MetaOntologyNS. The domain ontology namespace is defined as DomainCMgt, and the importer application ontology namespace is defined as KorCMgt. Information about the actual parameters described in FIGS. 3 and 4 except for the parameter name 841 of the metadata 840 added to the second parameter of RequestProductPrice among the methods of the service request interface is shown in 842, 843, and 844. "DomainCMgt: Clothes_TSize" 842 indicates that the parameter size has the concept of Clothes_TSize as defined in the domain ontology. "KorCMgt: IndividualSymbol" (843) indicates that the importer application extension ontology can take the name of one of the enumeration objects 221 of the subconcept of Clothes_TSize as the value of the size parameter. The metadata "DomainCMgt: SizeCode" ( 844) means that when converting the parameter size, the entity value of the SizeCode 230 connected to each object of the value set of the parameter in a hasCode relationship 243 becomes a conversion criterion. In addition, the commodity price is expressed in metadata 850 that the Korean won "won" 851 is a return value.

도 9는 의류수입관리 애플리케이션에서 사용하는 서버 컴포넌트 ProductMgt (920)의 C# 코드를 보여준다. ProductMgt 컴포넌트는 특정 상품의 가격 정보를 알려주는 기능을 처리하는 GetClothesPrice 메소드(921)를 포함하고 있다. GetClothesPrice 메소드의 각 매개변수 각각에 대하여, 온톨로지의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준 정보를 표현한 메타데이터(922)가 부가되어 있다. 이를 상세히 설명하면 서비스 제공 메소드 GetClothesPrice의 두번째 매개변수에 부가된 메타데이터(930) 중 매개변수 이름(931)을 제외한 실제 매개변수에 대한 정보는 932, 933, 934에 나타내고 있다.“DomainCMgt:Clothes_TSize”(932)는 매개변수 size가 도메인 온톨로지에 정의되어 있는 Clothes_TSize라는 개념을 갖는 것을 나타낸다. "EuCMgt:IndividualSymbol”(933)은 의류회사 애플리케이션 확장 온톨로지에서 Clothes_TSize의 서브개념의 열거 개체(221) 중 하나의 이름을 size 매개변수의 값으로 취할 수 있음을 나타낸다. 메타데이터 "DomainCMgt:SizeCode”(934)는 매개변수인 size를 변환할 때, 해당 매개변수의 밸류 세트의 각 개체들과 hasCode 관계(243)로 연결된 SizeCode(230)의 개체 값이 변환 기준이 됨을 의미한다. 또한 상품 가격을 유로화(941)로 반환하는 정보가 메타데이터(940)로 표현된다. 9 shows the C # code of the server component ProductMgt 920 used in the garment import management application. The ProductMgt component includes a GetClothesPrice method 921 that handles the function of reporting price information for a particular product. For each parameter of the GetClothesPrice method, metadata 922 is added that expresses the meaning of the parameter, the value that the parameter will take, and the conversion criteria information of the parameter using the concepts and relationships of the ontology. If this is explained in detail, information about the actual parameter except the parameter name 931 among the metadata 930 added to the second parameter of the service providing method GetClothesPrice is shown in 932, 933, and 934. "DomainCMgt: Clothes_TSize" 932 indicates that the parameter size has the concept of Clothes_TSize as defined in the domain ontology. "EuCMgt: IndividualSymbol" 933 indicates that the apparel application extension ontology can take the name of one of the enumeration objects 221 of the subconcept of Clothes_TSize as the value of the size parameter. The metadata "DomainCMgt: SizeCode" ( 934 denotes that when converting the size of the parameter, the entity value of the SizeCode 230 connected to each object of the value set of the parameter in a hasCode relationship 243 becomes a conversion criterion. In addition, information that returns the product price in euros 941 is represented by metadata 940.

도 10은 컴포넌트들을 조립할 때 자동 생성되는 중재 컴포넌트 RqProduct 코드(A10)를 보여준다. 클라이언트 컴포넌트 메소드 GetProductPrice(821)내에 독자적으로 정의한 서비스 요청 메소드 RequestProductPrice의 메타데이터(831)와 서비스 제공 메소드 GetClothesPrice(921)의 메타데이터(922)를 읽어 중재 컴포넌트 코드를 자동 생성된다. 서비스 요청 메소드의 매개변수 중 size는 메타데이터(840)를 통해 한국에서 사용하는 의류 사이즈이고 서버 제공 메소드의 size는 메타데이터(923)를 통해 유럽에서 사용하는 의류 사이즈이므로 도메인 온톨로지와 확장 온톨로지를 읽어 변환 코드(A30)를 생성한다. 또한 서버 제공 메소드는 상품 가격을 유로화로 반환 정보와, 서비스 요청 메소드는 상품가격을 원화로 반환 정보의 변환 기준을 메타데이터(941, 851)를 통해 검색하여 화폐 단위 변환 코드(A40)를 자동 생성한다.이 코드(A30, A70)들은 상기 설명한 도 7의 데이터 타입 컨버터 자동 생성 알고리즘에 의해 생성되므로 의류수입업체가 다른 나라와 수입거래를 맺어 다른 단위와 화폐를 사용하더라도 자동으로 재생성할 수 있다.10 shows an arbitration component RqProduct code A10 which is automatically generated when assembling the components. The mediation component code is automatically generated by reading the metadata 831 of the service request method RequestProductPrice and the metadata 922 of the service providing method GetClothesPrice 921 independently defined in the client component method GetProductPrice 821. Among the parameters of the service request method, size is the clothing size used in Korea through the metadata 840 and the size of the server-provided method is the clothing size used in Europe through the metadata 923, so the domain ontology and the extended ontology are read. Generate the conversion code A30. In addition, the server-provided method automatically generates the currency unit conversion code (A40) by retrieving the conversion price of the commodity price in euros and the conversion request for the commodity price in wons through metadata (941, 851). Since these codes A30 and A70 are generated by the data type converter automatic generation algorithm of FIG. 7 described above, even if the apparel importer makes an import transaction with another country and uses other units and currency, they can be automatically reproduced.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 개시된 실시예나 특정 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위해서 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 기재된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. The embodiments or specific terms disclosed herein are used for the purpose of describing the present invention and are not used to limit the scope of the present invention as defined in the meaning or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명에 의한 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템 및 그 방법은 다계층 구조로 개발되는 엔터프라이즈 소프트웨어 및 소프트웨어 프러덕트 라인이나 애플리케이션 프레임워크를 개발하는데 이용할 수 있고, 서비스 컴포넌트의 재사용과 유지 보수를 용이하게 함으로써 소프트웨어 개발 비용과 총소유 비용을 절감할 수 있게 한다.Software development system and method using ontology-based component assembly technology according to the present invention can be used to develop enterprise software and software product lines or application frameworks developed in a multi-layered structure, and reuse and maintenance of service components This makes it easy to reduce software development costs and total cost of ownership.

도 1은 본 발명에 따른 온톨로지 기반 컴포넌트 조립 시스템의 구성을 도시한 블록도.1 is a block diagram showing the configuration of an ontology-based component assembly system according to the present invention.

도 2는 본 발명을 적용한 도메인 온톨로지와 확장 온톨로지 정보를 도시한 예시도2 is an exemplary diagram illustrating domain ontology and extended ontology information to which the present invention is applied.

도 3은 본 발명을 적용한 메타데이터가 포함할 정보를 도시한 예시도.3 is an exemplary diagram illustrating information to be included in metadata to which the present invention is applied.

도 4는 본 발명을 적용한 메타데이터의 정보간 관계를 도시한 예시도.4 is an exemplary diagram showing a relationship between information of metadata to which the present invention is applied.

도 5는 본 발명에 따른 온톨로지 기반 컴포넌트 조립 시스템 및 그 방법에 따라 개발된 온톨로지와 컴포넌트들, 런타임 프레임워크의 구조와 관계를 도시한 블록도.5 is a block diagram showing the structure and relationships of the ontology-based component assembly system and the ontology and components, runtime framework developed according to the method according to the present invention.

도 6은 본 발명에 따른 온톨로지 기반 컴포넌트 조립 방법의 과정을 도시한 흐름도.6 is a flowchart illustrating a process of ontology-based component assembly method according to the present invention.

도 7는 도 6의 중재 컴포넌트 자동 생성 과정을 보다 상세하게 도시한 흐름도.7 is a flow chart illustrating in more detail the process of automatically generating an arbitration component of FIG.

도 8은 본 발명을 적용한 클라이언트 컴포넌트 코드를 도시한 예시도.8 is an exemplary diagram illustrating a client component code to which the present invention is applied.

도 9는 본 발명을 적용한 서버 컴포넌트 코드를 도시한 예시도.9 is an exemplary diagram showing a server component code to which the present invention is applied.

도 10은 본 발명을 적용하여 자동 생성된 중재 컴포넌트 코드를 도시한 예시도.10 illustrates an arbitration component code automatically generated by applying the present invention.

Claims (10)

독립적으로 개발된 컴포넌트들의 소스를 수정하지 않고 바이너리 수준에서 조립하여 소프트웨어를 개발하는 시스템에 있어서,In a system for developing software by assembling at the binary level without modifying the source of independently developed components, 애플리케이션이 속한 도메인의 개념(Concept)들과 개념들 간의 관계(Relationship)를 모델링하는 사용자 인터페이스를 제공하여 도메인 온톨로지를 구축하고 개발자들이 공유할 수 있게 하는 ‘온톨로지 구축 시스템’ 내부의 ‘도메인 온톨로지 구축 수단’과;Domain ontology building means within the ontology building system that provides a user interface for modeling the concepts and relationships between the domains to which the application belongs and to allow developers to share domain ontology. 'and; 애플리케이션의 요구 사항 변화에 따라 상기 도메인 온톨로지의 개념들과 관계를 갖는 새로운 개념들을 추가한 확장 온톨로지를 구축할 수 있게 하는 ‘온톨로지 구축 시스템’ 내부의‘확장 온톨로지 구축 수단’과;An "extension ontology building means" in an "ontology building system" that enables to build an extended ontology in which new concepts related to the concepts of the domain ontology are added according to a change in an application requirement; 애플리케이션의 기능을 처리하는 컴포넌트를 구현함에 있어서 하위 컴포넌트들을 호출할 필요가 있을 때, 하위 컴포넌트가 제공하는 인터페이스에 의존하는 코드를 작성하는 대신 독자적으로 서비스 요청 인터페이스(required interface)를 정의하여 이를 사용하는 코드를 작성함으로써 해당 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스(provided interface)와 더불어 하위 컴포넌트들을 호출하기 위한 서비스 요청 인터페이스를 명시적으로 갖추게 하고, 상기 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수(Parameter)들 각각에 대하여, 상기 온톨로지 구축 시스템에 접속하여 구축된 온톨로지들의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준 정보를 표현한 메타데이터를 부가할 수 있게 하는 ‘컴포넌트 개발 수단’과;When implementing components that handle the functionality of an application, you need to call the subcomponents, instead of writing code that relies on the interfaces provided by the subcomponents. By writing code, you explicitly have a service request interface for invoking child components, along with a provisioned interface that the component provides to the parent component, and the input and output parameters of the methods that make up the interfaces. For each of the parameters, metadata representing the meaning of the parameter, the value to be taken by the parameter, and the conversion reference information of the parameter may be added using the concepts and relationships of the ontology constructed by accessing the ontology building system.I 'component development methods "and that; 상기 서비스 컴포넌트들을 조립하여 소프트웨어를 개발할 때, 상위 컴포넌트(클라이언트 컴포넌트)의 서비스 요청 인터페이스에 부가된 메타데이터와 하위 컴포넌트(서버 컴포넌트)의 서비스 제공 인터페이스에 부가된 메타데이터를 읽어 들이고, 이들을 상기 온톨로지 구축 시스템에 접속하여 구축된 온톨로지들과 비교하여 인터페이스 간 중재(mediation) 컴포넌트 코드를 자동 생성하는 ‘컴포넌트 조립 수단’을 포함하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템When assembling the service components to develop the software, the metadata added to the service request interface of the upper component (client component) and the metadata added to the service providing interface of the lower component (server component) are read and these are built on the ontology. Software development system using ontology-based component assembly technology, comprising a 'component assembly means' for automatically generating mediation component code between interfaces compared to the ontology constructed by connecting to the system 제 1항에 있어서, 상기 서비스 컴포넌트 개발 수단은 컴포넌트의 서비스 제공 및 요청 인터페이스의 메소드들의 각 매개변수에 메타데이터를 부가할 때, 상기 온톨로지 구축 시스템에 접속하여 구축된 온톨로지들을 표시하고 개발자가 해당 매개변수와 관련된 개념이나 관계를 선택하면 자동으로 메타데이터 코드를 생성하는 사용자 인터페이스와 기능을 제공하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템The method of claim 1, wherein the service component development means, when adding metadata to each parameter of methods of a service providing and requesting interface of a component, displays the ontology constructed by connecting to the ontology building system and the developer selects the parameter. Software development system using ontology-based component assembly technology, which provides user interface and function to automatically generate metadata code when selecting concept or relationship related to variable 제 1항에 있어서, 상기 컴포넌트 조립 수단은 개발자가 호출/피호출 관계로 조립될 상위 컴포넌트의 서비스 요청 인터페이스의 메소드와 하위 컴포넌트의 서비스 제공 인터페이스 메소드를 선택하면, 두 메소드의 입/출력 매개변수에 부가된 메타데이터들을 온톨로지 추론 기능을 사용하여 의미상 등가(Semantic Equivalence) 여부를 비교함으로써 상호 조립이 가능한 지의 여부를 자동으로 판별하는 기능을 제공하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템The method of claim 1, wherein the component assembling means selects a method of a service request interface of a higher component and a service providing interface method of a lower component to be assembled in a call / call relationship. Software development using ontology-based component assembly technology, which provides the ability to automatically determine whether mutual assembly is possible by comparing the added metadata with semantic equivalence using the ontology inference function system 제 1항에 있어서, 상기 컴포넌트 조립 수단은 호출/피호출 관계로 조립될 상위 컴포넌트의 서비스 요청 인터페이스의 메소드와 하위 컴포넌트의 서비스 제공 인터페이스 메소드의 입/출력 매개변수에 부가된 메타데이터들을 읽어 들이고, 메타데이터에 포함된 매개변수의 의미에 해당하는 개념들을 도메인 온톨로지와 확장 온톨로지에서 추론 기능을 사용해 비교함으로써 매핑(Mapping)되는 매개변수들의 쌍(상호 중재할 매개변수 쌍)들을 자동 식별하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템The method of claim 1, wherein the component assembling means reads metadata added to input / output parameters of a method of a service request interface of a higher component and a service providing interface method of a lower component to be assembled in a call / call relationship, Automatically identify pairs of mapped parameters (parameter pairs to be mediated) by comparing the concepts corresponding to the meanings of the parameters in the metadata using inference in domain ontology and extended ontology. Software development system using ontology-based component assembly technology 제 1항에 있어서, 상기 컴포넌트 조립 수단은 호출/피호출 관계로 조립될 상위 컴포넌트의 서비스 요청 인터페이스 메소드의 각 매개변수와 매핑되는 하위 컴포넌트의 서비스 제공 인터페이스 메소드의 매개변수에 부가된 메타데이터들을 읽어 들이고, 변환 기준이 '없음(None)'이면 두 매개변수 간 데이터 타입만을 단순 변환하는 중재 코드를 생성하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템The method of claim 1, wherein the component assembling means reads metadata added to parameters of a service providing interface method of a lower component mapped to each parameter of a service request interface method of a higher component to be assembled in a call / call relationship. If the conversion criterion is 'None', the software development system using ontology-based component assembly technology, which generates arbitration code that simply converts only data types between two parameters. 제 1항에 있어서, 상기 컴포넌트 조립 수단은 호출/피호출 관계로 조립될 상위 컴 포넌트의 서비스 요청 인터페이스 메소드의 각 매개변수와 매핑되는 하위 컴포넌트의 서비스 제공 인터페이스 메소드의 매개변수에 부가된 메타데이터들을 읽어 들이고, 매개변수의 변환 기준이 단위(Unit)의 이름이면 두 매개변수 값을 해당 단위에 맞게 변환하는 중재 코드를 생성하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템The method of claim 1, wherein the component assembling means includes metadata added to parameters of a service providing interface method of a lower component mapped to each parameter of a service request interface method of a higher component to be assembled in a call / call relationship. Software development system using ontology-based component assembly technology that reads and generates mediation code that converts two parameter values according to the unit if the parameter is converted to unit name. 제 1항에 있어서, 상기 컴포넌트 조립 수단은 호출/피호출 관계로 조립될 상위 컴포넌트의 서비스 요청 인터페이스 메소드의 각 매개변수와 매핑되는 하위 컴포넌트의 서비스 제공 인터페이스 메소드의 매개변수에 부가된 메타데이터들을 읽어 들이고, 매개변수의 변환 기준이 도메인 온톨로지에서 범위나 값을 나타내는 개념이고, 매개변수의 의미가 밸류 세트(Value Set) 패턴의 휘처(Feature) 개념이면서 매개변수가 취할 값이 개체 이름(IndividualSymbol)일 경우, 변환할 매개변수의 온톨로지와 변환될 매개변수의 온톨로지에서 밸류 세트의 각 개체들과 관계로 연결된 범위(Range)나 값들을 상호 비교하여 의미상 등가의 개체들을 찾고, 변환할 매개변수의 값에 해당하는 개체의 이름을 변환될 매개변수의 온톨로지에 있는 등가의 개체 이름으로 변환해주는 중재 코드를 생성하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 시스템The method of claim 1, wherein the component assembling means reads metadata added to parameters of a service providing interface method of a lower component mapped to each parameter of a service request interface method of a higher component to be assembled in a call / call relationship. The conversion criteria of a parameter is a concept representing a range or a value in a domain ontology, the meaning of the parameter is a feature of a value set pattern, and the value to be taken is an object name (IndividualSymbol). In this case, the ontology of the parameter to be converted and the ontology of the parameter to be converted are compared with each other in the value set to find the semantically equivalent objects, and the value of the parameter to be converted. Converting the name of the corresponding object to the equivalent object name in the ontology of the parameter to be converted Software development system using ontology-based component assembly technology characterized by generating recode 독립적으로 개발된 컴포넌트들의 소스를 수정하지 않고 바이너리 수준에서 조립하여 소프트웨어를 개발하는 방법에 있어서,In the method of developing software by assembling at the binary level without modifying the source of independently developed components, (a) 애플리케이션이 속한 도메인의 개념들과 개념들 간의 관계를 모델링한 도메인 온톨로지를 구축하는 단계;(a) building a domain ontology modeling the concepts of the domain to which the application belongs and the relationships between the concepts; (b) 요구 상항 변화에 따라 상기 도메인 온톨로지의 개념들과 관계를 갖는 새로운 개념들을 추가한 확장 온톨로지를 구축하는 단계;(b) constructing an extended ontology adding new concepts related to the concepts of the domain ontology as the requirements change; (c) 애플리케이션의 기능을 처리하는 서비스 컴포넌트를 구현함에 있어서 하위 컴포넌트들을 호출할 필요가 있을 때, 하위 컴포넌트가 제공하는 인터페이스에 의존하는 코드를 작성하는 대신 독자적으로 서비스 요청 인터페이스를 정의하여 이를 사용하는 코드를 작성함으로써 해당 컴포넌트가 상위의 컴포넌트에게 제공하는 서비스 제공 인터페이스와 더불어 하위 컴포넌트들을 호출하기 위한 서비스 요청 인터페이스를 명시적으로 갖추게 하는 단계;(c) When it is necessary to call a subcomponent in implementing a service component that handles the functions of an application, instead of writing code that relies on the interface provided by the subcomponent, the service request interface is defined and used independently. Explicitly writing a service request interface for invoking child components in addition to a service providing interface provided by the corresponding component to the parent component by writing code; (d) 상기 단계 (c)에서 정의한 인터페이스들을 구성하는 메소드들의 입력 및 출력 매개변수(Parameter) 각각에 대하여, 상기 단계 (a)와 (b)에서 구축된 온톨로지들의 개념과 관계들을 이용하여 매개변수의 의미, 매개변수가 취할 값, 매개변수의 변환 기준정보를 표현한 메타데이터를 부가하는 단계;(d) For each of the input and output parameters of the methods constituting the interfaces defined in step (c), using the concepts and relationships of the ontology constructed in steps (a) and (b), Adding metadata representing a meaning, a value to be taken by the parameter, and conversion reference information of the parameter; (e) 상기 단계 (a) 내지 (d)단계를 거쳐 개발된 서비스 컴포넌트들을 조립할 때, 상위 컴포넌트(클라이언트 컴포넌트)의 서비스 요청 인터페이스에 부가된 메타데이터와 하위 컴포넌트(서버 컴포넌트)의 서비스 제공 인터페이스에 부가된 메타데이터를 읽어 들이고, 이들을 구축된 온톨로지들과 비교하여 인터페이스 간 중재 컴포넌트 코드를 자동 생성하여 컴포넌트들을 조립하는 단계;를 포함하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 방법(e) When assembling the service components developed through the steps (a) to (d), the metadata added to the service request interface of the upper component (client component) and the service providing interface of the lower component (server component) Reading the added metadata, and comparing them with the constructed ontology to automatically generate the inter-intermediate component code to assemble the components; software development method using an ontology-based component assembly technology comprising a 제 8항에 있어, 상기 단계 (e)는,The method of claim 8, wherein step (e) is 상위 컴포넌트의 서비스 요청 인터페이스의 메소드와 하위 콤포넌트의 서비스 제공 인터페이스의 메소드의 입/출력 매개변수에 부가된 메타데이터들을 온톨로지 추론 기능을 사용하여 의미상 등가 여부를 비교함으로써 상호 호출/피호출이 가능한 지의 여부를 자동으로 판별하는 단계;를 포함하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 방법Metadata added to input / output parameters of the method of the service request interface of the parent component and the method of the service providing interface of the child component can be mutually called / called by comparing semantically equivalent using the ontology inference function. Automatically determining whether or not; software development method using an ontology-based component assembly technology comprising a 제 8항에 있어, 상기 단계 (e)는, The method of claim 8, wherein step (e) is (e1) 상위 컴포넌트의 서비스 요청 인터페이스 메소드의 각 매개변수들에 부가된 메타데이터와 하위 컴포넌트의 서비스 제공 인터페이스 메소드의 각 매개변수들에 부가된 메타데이터들을 읽어, 각 매개변수의 의미에 해당하는 개념들을 도메인 올톨로지와 확장 온톨로지에서 추론 기능을 사용해 비교함으로써 매핑되는 매개변수들의 쌍들을 자동 식별하는 단계; (e1) The concept corresponding to the meaning of each parameter by reading metadata added to each parameter of the service request interface method of the upper component and metadata added to each parameter of the service providing interface method of the lower component. Identifying the pairs of mapped parameters by comparing them to the domain ontology and the extension ontology using the inference function; (e2) 식별된 모든 매개변수쌍들 중 중재 코드가 생성되지 않은 매개변수쌍을 선택하는 단계;(e2) selecting a parameter pair of all identified parameter pairs for which no arbitration code has been generated; (e3) 선택된 매개변수쌍의 메타데이터에서 매개변수 변환 기준을 읽는 단계;(e3) reading parameter conversion criteria in metadata of the selected parameter pair; (e4) 상기 단계 (e3)에서 읽은 매개변수 변환 기준이 ‘없음(None)'이면 두 매개변수의 데이터 타입을 비교하여 단순 데이터 타입 변환 코드를 생성하는 단계;(e4) generating a simple data type conversion code by comparing the data types of the two parameters if the parameter conversion criterion read in step (e3) is 'None'; (e5) 상기 단계 (e3)에서 읽은 매개변수 변환 기준이 단위의 이름이면 두 매개변수 의 값을 해당 단위에 맞게 변환하는 코드를 생성하는 단계; (e5) generating a code for converting the values of the two parameters according to the unit if the parameter conversion criterion read in the step (e3) is the name of a unit; (e5) 상기 단계 (e3)에서 읽은 매개변수 변환 기준이 도메인 온톨로지에서 범위나 값을 나타내는 개념이고, 매개변수의 의미가 밸류 세트 패턴의 휘처 개념이면서 매개변수가 취할 값이 개체 이름일 경우, 변환할 매개변수의 온톨로지와 변환될 매개변수의 온톨로지에서 밸류 세트의 각 개체들과 관계로 연결된 범위나 값들을 상호 비교하여 의미상 등가의 개체들을 찾고, 변환할 매개변수의 값에 해당하는 개체의 이름을 변환될 매개변수의 온톨로지에 있는 등가의 개체 이름으로 변환해주는 코드를 생성하는 단계;(e5) If the parameter conversion criterion read in step (e3) is a concept indicating a range or value in the domain ontology, and the meaning of the parameter is a feature of the value set pattern and the value to be taken by the parameter is an entity name, the conversion In the ontology of the parameter to be converted and the ontology of the parameter to be converted, the range or values associated with each object in the value set are compared to find semantically equivalent objects, and the name of the object corresponding to the value of the parameter to be converted. Generating a code for converting to an equivalent object name in the ontology of the parameter to be converted; (e6) 상기 단계 (e2) 내지 (e5)를 모든 매개변수쌍에 대하여 변환 코드가 만들어질 때까지 반복하여 인터페이스 중재 코드를 완성하는 단계;를 포함하는 것을 특징으로 하는 온톨로지 기반 컴포넌트 조립 기술을 이용한 소프트웨어 개발 방법(e6) repeating steps (e2) to (e5) until all the pairs of parameters have been generated, thereby completing the interface arbitration code; using ontology-based component assembly technology Software development method
KR1020090105220A 2009-11-03 2009-11-03 A Software Development System and Method using an Ontology based Component Assembly Technology KR101101519B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090105220A KR101101519B1 (en) 2009-11-03 2009-11-03 A Software Development System and Method using an Ontology based Component Assembly Technology

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090105220A KR101101519B1 (en) 2009-11-03 2009-11-03 A Software Development System and Method using an Ontology based Component Assembly Technology

Publications (2)

Publication Number Publication Date
KR20090122898A KR20090122898A (en) 2009-12-01
KR101101519B1 true KR101101519B1 (en) 2012-01-04

Family

ID=41685312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090105220A KR101101519B1 (en) 2009-11-03 2009-11-03 A Software Development System and Method using an Ontology based Component Assembly Technology

Country Status (1)

Country Link
KR (1) KR101101519B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044185A (en) 2018-10-08 2020-04-29 한국전자통신연구원 Apparatus and method for selecting robot service block
KR102453463B1 (en) 2022-05-25 2022-10-14 (주)헤이븐솔루션 Apparatus for developing application based on JAVA and method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120100457A (en) * 2011-03-04 2012-09-12 애니포인트 미디어 그룹 Method for executing applications using service components and computer-readable medium storing program which performs the same
KR102327083B1 (en) * 2020-09-14 2021-11-15 한화시스템 주식회사 System and method for sharing software component

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070112755A (en) * 2007-11-07 2007-11-27 정안모 A method for software development and operation based on component reuse and dependency injection
US20080168420A1 (en) 2006-03-17 2008-07-10 The Mitre Corporation Semantic system for integrating software components
KR101110202B1 (en) * 2010-08-02 2012-02-16 (주)엔써즈 Method and system for generating database based on mutual relation between moving picture data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168420A1 (en) 2006-03-17 2008-07-10 The Mitre Corporation Semantic system for integrating software components
KR20070112755A (en) * 2007-11-07 2007-11-27 정안모 A method for software development and operation based on component reuse and dependency injection
KR101110202B1 (en) * 2010-08-02 2012-02-16 (주)엔써즈 Method and system for generating database based on mutual relation between moving picture data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
정보과학회논문지: 소프트웨어 및 응용 제34권 제12호 임윤선외 3인공저 컴포넌트 재사용을 지원하는 컴포넌트 모델 및 프레임워크 pp.1011-1020(2007.12)
한국정보과학회 2007 한국컴퓨터종합학술대회 논문집 제34권 제1호(B) 임윤선외 2인공저 독립적으로 개발된 바이너리 컴포넌트들의 조립을 지원하는 컴포넌트 모델 pp.138-142 (2007.6)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044185A (en) 2018-10-08 2020-04-29 한국전자통신연구원 Apparatus and method for selecting robot service block
KR102453463B1 (en) 2022-05-25 2022-10-14 (주)헤이븐솔루션 Apparatus for developing application based on JAVA and method thereof

Also Published As

Publication number Publication date
KR20090122898A (en) 2009-12-01

Similar Documents

Publication Publication Date Title
US11720418B2 (en) Distillation of various application interface data structures distributed over distinctive repositories to form a data source of consolidated application interface data components
García-Galán et al. Automated configuration support for infrastructure migration to the cloud
Ghazouani et al. A survey on cloud service description
Merle et al. A precise metamodel for open cloud computing interface
Sun et al. Survey of service description languages and their issues in cloud computing
CN111913713B (en) Heterogeneous service integration method based on service call tracing
Cretella et al. A semantic engine for porting applications to the cloud and among clouds
Bergmayr et al. Cloud modeling languages by example
KR101101519B1 (en) A Software Development System and Method using an Ontology based Component Assembly Technology
US9299049B2 (en) Contract-based process integration
Corcho et al. A high-level ontology network for ICT infrastructures
Ghiran et al. The model-driven enterprise data fabric: A proposal based on conceptual modelling and knowledge graphs
Zhao et al. Semantic Web-based geospatial knowledge transformation
Barrasa et al. Building Knowledge Graphs
CN101771712A (en) Method for managing Web service registry
Zhang et al. A policy-driven approach for software-as-services customization
Giallorenzo et al. Model-driven generation of microservice interfaces: From LEMMA domain models to Jolie APIs
Kaltman et al. Implementing controlled vocabularies for computer game platforms and media formats in SKOS
KR101101459B1 (en) An Ontology based Data Variability Processing System and Method
Zhang et al. Activity based CIM modeling and transformation for business process systems
Nepal et al. An Ontology-based System for Cloud Infrastructure Services’ Discovery
Lehmann et al. The geoknow handbook
Hidri et al. An ontology for composite cloud services description
Arévalo et al. Formal concept analysis-based service classification to dynamically build efficient software component directories
US20240168967A1 (en) Customized interaction between networked resources and users

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141215

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161223

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee