KR20130052276A - 소프트웨어 컴포넌트 합성 시스템 - Google Patents

소프트웨어 컴포넌트 합성 시스템 Download PDF

Info

Publication number
KR20130052276A
KR20130052276A KR1020110117636A KR20110117636A KR20130052276A KR 20130052276 A KR20130052276 A KR 20130052276A KR 1020110117636 A KR1020110117636 A KR 1020110117636A KR 20110117636 A KR20110117636 A KR 20110117636A KR 20130052276 A KR20130052276 A KR 20130052276A
Authority
KR
South Korea
Prior art keywords
component
service
control
connector
interface module
Prior art date
Application number
KR1020110117636A
Other languages
English (en)
Other versions
KR101341885B1 (ko
Inventor
강교철
남혜지
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR1020110117636A priority Critical patent/KR101341885B1/ko
Publication of KR20130052276A publication Critical patent/KR20130052276A/ko
Application granted granted Critical
Publication of KR101341885B1 publication Critical patent/KR101341885B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

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

Abstract

본 발명에 따른 소프트웨어 컴포넌트 합성 시스템이 개시된다. 본 발명에 따른 소프트웨어 컴포넌트 합성 시스템은 제어 컴포넌트, 제어 인터페이스 모듈, 적어도 하나의 제어 커넥터를 포함하는 소프트웨어 컴포넌트 호출장치를 포함하는 소프트웨어 컴포넌트 합성 시스템으로, 소프트웨어 컴포넌트 호출장치는 적어도 하나의 서비스 컴포넌트, 서비스 인터페이스 모듈, 적어도 하나의 서비스 커넥터를 포함하는 소프트웨어 컴포넌트 실행장치와 연결되어 동작하고 각 서비스 컴포넌트는 명령의 수행에 필요한 함수를 갖고, 제어 컴포넌트는 수신한 명령의 수행에 필요한 함수를 갖는 서비스 컴포넌트를 호출하고, 제어 인터페이스 모듈은 제어 컴포넌트가 호출하는 서비스 컴포넌트의 연결방식에 따라 제어 컴포넌트의 호출을 적어도 하나의 제어 커넥터 중 하나의 커넥터로 전달하도록 구성된다. 따라서, 본 발명에 따른 소프트웨어 컴포넌트 합성시스템을 이용할 경우에는 소프트웨어 컴포넌트 코드에 컴포넌트간의 연결을 위한 코드를 직접 코딩하지 않고, 컴포넌트에 독립적인 별도의 커넥터 코드를 구현하고, 인터페이스 모듈을 통하여 소프트웨어 컴포넌트와 커넥터를 연결시킴으로써, 연결방법에 독립적인 컴포넌트를 구현할 수 있다.

Description

소프트웨어 컴포넌트 합성 시스템{SYSTEM FOR SYNTHESIZING SOFTWARE COMPONENTS}
본 발명은 소프트웨어 컴포넌트 합성시스템에 관한 것으로, 더욱 상세하게는 재사용 가능한 소프트웨어를 이용하여 컴포넌트를 합성하는 소프트웨어 컴포넌트 시스템에 관한 것이다.
소프트웨어의 개발의 신속성 및 좋은 품질에 대한 요구가 더욱 늘어남에 따라, 기존의 소프트웨어를 재사용하여 새로운 소프트웨어를 만드는 소프트웨어 재사용 기법에 관심이 모아지고 있다. 이러한 소프트웨어 재사용 기법 중 하나로 소프트웨어 합성 기법이 있다. 이는 기존의 소프트웨어 컴포넌트를 모아서 재사용하는 방법이다. 즉, 새로운 소프트웨어 생성에 필요한 컴포넌트들을 모아 합성하여 원하는 소프트웨어를 만드는 방법이다.
이 경우, 소프트웨어를 처음부터 새로 개발하는 것이 아니라 기존의 소프트웨어 컴포넌트를 재사용하기 때문에 생산성이 높아질 수 있으며, 신뢰성이 검증된 소프트웨어를 재사용 할 경우 품질도 보장받을 수 있는 장점이 있다.
소프트웨어 컴포넌트를 합성하기 위해서는 컴포넌트 간에 서로 통신할 수 있도록 연결해주는 매체가 필요한데 그것을 커넥터라고 한다. 커넥터는 소프트웨어의 특징에 따라 자바 소켓, 원격 메소드 호출 (RMI: Remote Method Invocation), 옵저버 패턴(Observer Pattern) 등 여러 가지 방법으로 구현될 수 있다.
소켓(Socket)이란 네트워크상에서 서버와 클라이언트 두 개의 프로그램이 특정 포트를 통해 양방향 통신이 가능하도록 만들어주는 소프트웨어 장치라고 할 수 있다. 자바의 경우 소켓 클래스가 서버와 클라이언트 프로그램들간의 연결을 가능하도록 만들어준다. 즉, java.net 패키지에 있는 두 개의 클래스 ServerSocket 클래스(서버 측에서만 필요)와 Socket 클래스(서버와 클라이언트 측 양쪽에서 다 필요)를 이용하여 서버와 클라이언트간의 통신을 가능하게 만든다.
옵저버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메소드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다.
원격 메소드 호출 (RMI: Remote Mothod Invocation)은 로컬 컴퓨터에서 원격 컴퓨터의 메소드를 호출하는 기술로서, 실제 클라이언트에서 원격 컴퓨터에 존재하는 메소드를 호출하고 클라이언트가 원격 메소드를 호출하면 원격 컴퓨터의 CPU를 사용하며, 클라이언트는 그 결과값만을 네트워크를 통해 전송 받는다. 자바 소켓(Socket)은 분산되어 있는 객체간의 메시지 교환을 위해서는 프로그래머가 일일이 응용 레벨 프로토콜을 직접 설계해야 하지만, RMI를 통해 분산된 객체들을 마치 로컬 객체처럼 사용이 가능하다.
일반적으로 커넥터는 사용하고자 하는 소프트웨어 컴포넌트의 코드에 직접 구현하는 경우가 대부분이다. 따라서 커넥터를 변경하고 싶을 때, 기존에 구현한 커넥터 코드를 새로운 코드로 구현해야 하는 문제가 있다. 이 경우 시간도 많이 소요될 뿐만 아니라 커넥터 코드를 수정하는 과정에서 오류가 발생할 수 있는 소지가 있어서 문제가 된다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 소프트웨어 컴포넌트 커넥터의 변경에 독립적인 소프트웨어 컴포넌트 합성시스템을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예는, 수신한 명령의 수행에 필요한 함수를 갖는 서비스 컴포넌트를 호출하는 제어 컴포넌트, 상기 제어 컴포넌트와 상기 서비스 컴포넌트간의 데이터 송수신을 지원하는 적어도 하나의 제어 커넥터 및 상기 제어 컴포넌트의 호출을 상기 적어도 하나의 제어 커넥터로 전달하는 제어 인터페이스 모듈을 포함하는 소프트웨어 컴포넌트 호출 장치를 제공한다.
여기서, 상기 제어 인터페이스 모듈은 상기 제어 컴포넌트가 서비스 컴포넌트를 호출하면, 상기 제어 컴포넌트로부터 호출되는 상기 서비스 컴포넌트의 연결방식을 통지 받아, 상기 연결방식에 기초하여 상기 적어도 하나의 제어 커넥터 중 하나의 커넥터를 선택하여 상기 제어 컴포넌트의 호출을 상기 선택된 커넥터로 전달하는 것을 특징으로 한다.
여기서, 상기 제어 커넥터는 상기 제어 인터페이스 모듈로부터 상기 제어 컴포넌트의 호출을 전달받으면, 상기 제어 커넥터와 연결된 서비스 커넥터를 매개로 상기 호출된 서비스 컴포넌트가 보유한 함수를 호출하는 것을 특징으로 한다.
여기서, 상기 제어 커넥터는 자바 소켓, RMI, 옵저버 패턴, 공유 메모리 중 어느 하나로 구현되는 것을 특징으로 한다.
여기서, 상기 제어 컴포넌트는 상기 명령의 수행에 필요한 적어도 하나의 함수와 상기 각 함수를 가진 서비스 컴포넌트들을 식별하고, 상기 식별된 컴포넌트들에 상기 명령의 수행을 위한 작업을 분배하는 것을 특징으로 한다.
여기서, 상기 제어 컴포넌트와 상기 서비스 컴포넌트와는 네트워크 상의 다른 노드에 존재하는 것을 특징으로 한다.
여기서 상기 제어 커넥터와 상기 서비스 커넥터는 서로 동일한 연결방식으로 연결되는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예는 명령의 수행에 필요한 적어도 하나의 함수를 갖는 적어도 하나의 서비스 컴포넌트, 상기 적어도 하나의 서비스 컴포넌트가 보유한 함수를 호출하는 적어도 하나의 서비스 커넥터 및 상기 각 서비스 컴포넌트의 연결방식에 따라 상기 서비스 커넥터에 상기 서비스 컴포넌트를 할당하는 서비스 인터페이스 모듈을 포함하는 소프트웨어 컴포넌트 실행 장치를 제공한다. 여기서, 상기 서비스 커넥터는 서비스 컴포넌트를 호출하는 외부 컴포넌트의 호출명령을 상기 외부 컴포넌트와 연결된 외부 커넥터로부터 전달받는 것을 특징으로 한다.
여기서, 상기 서비스 인터페이스 모듈은 상기 서비스 컴포넌트 중 어느 하나의 컴포넌트로부터 연결방식을 통지 받으면, 상기 서비스 컴포넌트를 상기 적어도 하나의 서비스 커넥터 중 상기 통지된 연결방식에 대응하는 연결방식을 갖는 서비스 커넥터에 할당하는 것을 특징으로 한다.
여기서, 상기 서비스 커넥터는 자바 소켓, RMI, 옵저버 패턴, 공유 메모리 중 어느 하나로 구현되는 것을 특징으로 한다.
여기서, 상기 외부 컴포넌트와 상기 서비스 컴포넌트와는 네트웍 상의 다른 노드에 존재하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 또 다른 실시예는, 제어 컴포넌트, 제어 인터페이스 모듈, 적어도 하나의 제어 커넥터를 포함하는 소프트웨어 컴포넌트 호출장치를 포함하는 소프트웨어 컴포넌트 합성 시스템으로, 상기 소프트웨어 컴포넌트 호출장치는 적어도 하나의 서비스 컴포넌트, 서비스 인터페이스 모듈, 적어도 하나의 서비스 커넥터를 포함하는 소프트웨어 컴포넌트 실행장치와 연결되어 동작하고 상기 각 서비스 컴포넌트는 명령의 수행에 필요한 함수를 갖고, 상기 제어 컴포넌트는 수신한 명령의 수행에 필요한 함수를 갖는 서비스 컴포넌트를 호출하고, 상기 제어 인터페이스 모듈은 상기 제어 컴포넌트가 호출하는 서비스 컴포넌트의 연결방식에 따라 상기 제어 컴포넌트의 호출을 상기 적어도 하나의 제어 커넥터 중 하나의 커넥터로 전달하고, 상기 서비스 인터페이스 모듈은 상기 각 서비스 컴포넌트의 연결방식에 따라 상기 각 서비스 커넥터에 상기 각 서비스 컴포넌트를 할당하고, 상기 제어 커넥터는 상기 제어 컴포넌트의 호출을 상기 제어 커넥터와 연결된 서비스 커넥터에 전달하고, 상기 서비스 커넥터는 상기 제어 커넥터로부터 전달받은 상기 제어 컴포넌트의 호출에 따라, 상기 호출되는 서비스 컴포넌트가 보유한 함수를 호출하는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템을 제공한다.
여기서, 상기 제어 인터페이스 모듈은 상기 제어 컴포넌트가 서비스 컴포넌트를 호출하면, 상기 제어 컴포넌트로부터 통지 받은 상기 호출되는 서비스 컴포넌트의 연결방식에 기초하여 상기 적어도 하나의 제어 커넥터 중 하나의 제어 커넥터를 선택하여 상기 제어 컴포넌트의 호출을 상기 선택된 제어 커넥터로 전달하는 것을 특징으로 한다.
여기서, 상기 제어 컴포넌트는 상기 수신한 명령의 수행에 필요한 적어도 하나의 함수와 상기 각 함수를 갖는 서비스 컴포넌트들을 식별하고, 상기 식별된 컴포넌트들에 상기 명령의 수행을 위한 작업을 분배하고, 상기 분배에 따라 상기 식별된 컴포넌트들을 호출하는 것을 특징으로 한다.
여기서, 상기 서비스 인터페이스 모듈은 상기 각 서비스 컴포넌트로부터 연결방식을 통지 받아서, 상기 각 서비스 컴포넌트를 상기 통지 받은 각 연결방식에 대응하는 연결방식을 갖는 서비스 커넥터에 할당하는 것을 특징으로 한다.
여기서, 상기 제어 커넥터와 상기 서비스 커넥터는 자바 소켓, RMI, 옵저버 패턴(observer pattern), 공유 메모리 중 어느 하나로 구현되는 것을 특징으로 한다.
여기서, 상기 제어 커넥터와 상기 서비스 커넥터는 서로 동일한 연결방식으로 연결되는 것을 특징으로 한다.
상기와 같은 본 발명에 따른 소프트웨어 컴포넌트 합성시스템을 이용할 경우에는 소프트웨어 컴포넌트 코드에 컴포넌트간의 연결을 위한 코드를 직접 코딩 하지 않고, 컴포넌트에 독립적인 별도의 커넥터 코드를 구현하고, 인터페이스 모듈을 통하여 소프트웨어 컴포넌트와 커넥터를 연결시킴으로써, 연결방법에 독립적인 컴포넌트를 구현할 수 있다.
또한, 소프트웨어 컴포넌트 간의 연결을 느슨하게 하여 커넥터 선택을 지연시킬 수 있게 하고 커넥터 변경을 쉽게 할 수 있도록 하는 아키텍처 커넥션 메커니즘을 통해 컴포넌트를 쉽게 합성할 수 있고 새로운 제품을 빨리 생산할 수 있는 효과가 있다.
도 1은 소켓 연결을 통해 클라이언트와 서버간의 데이터를 송수신하는 것을 보여주는 메시지 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 합성시스템의 구성을 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 서비스 컴포넌트의 연결방식을 설정하는 과정을 보여주는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 명령을 수신하여 처리하는 과정을 보여주는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명의 실시예에 따른 소프트웨어 컴포넌트 합성시스템이 개시된다. 본 발명의 실시예는 소프트웨어 컴포넌트의 합성시, 소프트웨어 컴포넌트를 연결하기 위한 커넥터를 소프트웨어 컴포넌트 내부가 아닌 독립적인 코드로 구현하여, 컴포넌트가 연결방법에 종속되지 않도록 하는 구성을 보여준다. 또한 소프트웨어 컴포넌트와 커넥터를 연결할 수 있는 인터페이스 모듈을 구현하여 소프트웨어 컴포넌트의 코드 변경 없이 연결방식에 따라 연관되는 커넥터만 바꾸어 줄 수 있도록 하는 구성이 개시된다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면들을 참조하여 상세하게 설명한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
먼저, 본 발명의 주요 구성요소인 커넥터의 일 예로 자바 소켓의 예를 들어 커넥터의 일반적인 동작방법을 설명하기로 한다.
도 1은 소켓 연결을 통해 클라이언트와 서버간의 데이터를 송수신하는 것을 보여주는 메시지 흐름도이다.
도 1을 참조하면, 클라이언트와 서버간의 데이터를 송수신하기 위해서, 먼저 서버에서 클라이언트의 요청을 받아들이기 위한 초기화 작업으로, 서버의 Socket 클래스를 생성(S1)한다. 클라이언트가 연결요청(S2)을 하면 accept() 메소드를 이용(S3)하여 데이터 송수신을 위한 준비를 한다. 그리고 생성된 서버의 Socket 클래스를 통해 서버와 클라이언트간의 소켓 연결고리를 만들어 서로 통신할 수 있는 선로를 확보하고 클라이언트와의 데이터 송수신을 한다(S4, S5).
위에 설명된 것처럼 클라이언트 서버간의 데이터를 송수신하기 위해서는 서버측 커넥터와 클라이언트 측 커넥터의 연결을 설정 후 데이터를 송수신하게 된다. 본 발명의 실시예는, 컴포넌트 간의 연결을 위하여 커넥터를 구현하는 코드를 컴포넌트에 직접 구현하는 것이 아니라 별도의 독립된 코드로 구현하는 것을 보여준다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 합성시스템의 구성을 보여주는 블록도이다.
도 2를 참조하면 본 발명의 일 실시예에 따른 소프트웨어 합성시스템은 소프트웨어 컴포넌트 호출장치(10)와 실행장치(20)로 구성되며, 호출장치(10)는 제어 컴포넌트(110), 제어 인터페이스 모듈(120), 복수의 제어 커넥터(131-132)를 포함할 수 있다. 또한 실행장치(20)는 복수의 서비스 컴포넌트(141-143), 서비스 인터페이스 모듈(150), 복수의 서비스 커넥터(161-162)를 포함할 수 있다.
또한, 도 2를 참조하면 본 발명의 일 실시예에 따른 소프트웨어 합성시스템의 각 구성요소는 다음과 같이 설명될 수 있다.
호출장치(10)는 명령을 수신하여 명령과 관련된 함수를 포함하는 컴포넌트를 호출하고 컴포넌트 별로 작업을 분배하는 부분일 수 있다. 또한 실행장치(20)는 호출장치(10)의 명령에 따라 호출된 컴포넌트의 함수를 실행시키는 부분일 수 있다.
또한 호출장치(10)와 실행장치(20)는 네트워크상의 다른 노드에서 각각 수행되는 장치일 수 있고, 각각의 커넥터를 통해 연결되어 동작할 수 있다. 즉, 명령의 실행을 위한 컴포넌트 호출 시, 컴포넌트간의 독립성을 보장하기 위하여 호출에 관련된 부분과 연결에 관련된 부분을 별도의 구성요소인 커넥터 구성할 수 있다. 이하 호출장치(10)와 실행장치(20)의 각 구성요소에 대하여 좀 더 상세하게 설명한다.
제어 컴포넌트(110)는 수신한 명령의 수행에 필요한 함수를 보유한 서비스 컴포넌트를 호출하는 부분일 수 있다. 즉, 제어 컴포넌트(110)는 명령의 수행에 필요한 함수들을 찾아내고, 해당 함수를 보유한 서비스 컴포넌트들을 식별하여, 식별된 컴포넌트들에 상기 명령의 수행을 위한 작업을 분배하여, 호출할 수 있다.
예를 들면, 제어 컴포넌트(110)는 service()함수를 가지고 있고, 사용자가 사용자 인터페이스를 통해 작업을 요청하면, 제어 컴포넌트(110)는 service()함수 를 통해 서비스 컴포넌트로의 일련의 작업 분배를 실행할 수 있다. 이때 사용자가 요청한 작업에는 연결방식이 포함될 수 있다.
또한 제어 컴포넌트(110)는 호출할 서비스 컴포넌트의 연결방식을 제어 인터페이스 모듈(120)에 전달할 수 있다. 즉 호출할 서비스 컴포넌트의 식별자, 연결방식 함수 명 등 매개변수로 제어 인터페이스 모듈(120)에 포함된 service() 함수를 호출할 수 있다.
제어 인터페이스 모듈(120)은 제어 컴포넌트가 호출하는 서비스 컴포넌트의 연결방식에 따라 제어 컴포넌트의 호출을 복수의 제어 커넥터(131-132) 중 하나의 커넥터로 전달하는 부분일 수 있다. 즉, 제어 인터페이스 모듈(120)은 제어 컴포넌트(110)가 서비스 컴포넌트를 호출하면, 제어 컴포넌트(110)로부터 상기 호출에 따른 연결방식을 통지 받아, 상기 연결방식에 기초하여 복수의 제어 커넥터(131-132) 중 하나의 커넥터를 선택하여 제어 컴포넌트(110)의 호출을 전달할 수 있다.
제어 커넥터(131-132)는 제어 컴포넌트(110)의 서비스 컴포넌트 호출을 제어 커넥터(131-132)와 연결된 서비스 커넥터에 전달하는 부분일 수 있다. 특히 서로 연결되는 제어 커넥터와 서비스 커넥터는 동일한 연결방식을 사용할 수 있다.
서비스 컴포넌트(141-143)는 명령의 수행에 필요한 함수를 보유하고 있는 부분일 수 있다. 즉 서비스()함수를 보유할 수 있다. 또한 서비스 컴포넌트는 재사용 가능한 컴포넌트로, 라이브러리로 구축되어 있을 수 있다.
서비스 인터페이스 모듈(150)은 각 서비스 컴포넌트(141-143)의 연결방식에 따라 각 서비스 커넥터(161-162)에 각 서비스 컴포넌트(141-143)를 할당하는 부분일 수 있다. 즉, 서비스 인터페이스 모듈(150)은 각 서비스 컴포넌트로부터 연결방식을 통지 받아서, 상기 각 서비스 컴포넌트를 상기 통지 받은 각 연결방식에 대응하는 연결방식을 갖는 서비스 커넥터에 할당하는 부분일 수 있다.
서비스 커넥터(161-162)는 제어 커넥터로부터 제어 컴포넌트(110)의 호출 명령을 전달 받고, 호출되는 서비스 컴포넌트의 함수를 호출하는 부분일 수 있다.
상술한 바와 같이 제어 인터페이스 모듈(120)과 서비스 인터페이스 모듈(150)은 커넥터 구현이 유연하게 해주는 구성이다. 즉 제어 인터페이스 모듈(120)과 서비스 인터페이스 모듈(150)이 제어/서비스 컴포넌트와 제어/서비스 커넥터 사이에서 가교 역할을 해 주기 때문에, 커넥터가 제어/서비스 컴포넌트에 영향을 주지 않고 자유롭게 다른 연결방식으로 변경될 수 있다. 즉 제어 컴포넌트 및 서비스 컴포넌트의 코드 변경 없이 커넥터를 변경할 수 있다.
예를 들면, 제어 컴포넌트(110)가 서비스 컴포넌트 호출 시 연결 방식, 컴포넌트 이름, 함수 이름을 제어 인터페이스 모듈(120)에 넘기면, 제어 인터페이스 모듈(120)이 연결 방식에 따라 알맞은 제어 커넥터로의 연결을 하기 때문에, 연결 방식, 컴포넌트 이름, 함수 이름이 계속 변경되더라도 제어 컴포넌트(110)내의 service()함수의 구현은 변경되지 않을 수 있다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 합성 시스템에서 서비스 컴포넌트의 연결방식을 설정하는 과정을 보여주는 흐름도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 서비스 컴포넌트의 연결방식을 설정하는 과정은 도1의 실행장치(20)에서 수행되는 과정으로 서비스 컴포넌트의 연결방식 통보 단계(S210), 서비스 커넥터 할당 단계 (S220)를 포함하여 구성될 수 있다.
또한, 도 3을 참조하면, 또한 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 서비스 컴포넌트의 연결방식을 설정하는 과정의 각 단계는 다음과 같이 설명될 수 있다.
서비스 컴포넌트의 연결방식 통보 단계(S210)는 각 서비스 컴포넌트(141-143)가 자신의 연결방식을 결정 후 서비스 인터페이스 모듈(150)로 통보하는 단계이다.
서비스 커넥터 할당 단계(S220)는 서비스 인터페이스 모듈(150)이 서비스 컴포넌트로부터 연결방식을 통보 받으면, 상기 연결방식과 동일한 연결방식을 사용하는 서비스 커넥터를 선택하여, 선택된 서비스 커넥터에 상기 서비스 컴포넌트를 할당하는 단계일 수 있다.
예를 들면, 서비스 컴포넌트 1(141)이 연결 방식을 메시지/응답 방식으로 결정하고, 이를 서비스 인터페이스 모듈(150)에 통보한다. 이에 따라, 서비스 인터페이스 모듈(150)은 통보 받은 메시지/응답 방식의 서비스 커넥터1(161)를 찾아서, 서비스 컴포넌트 1(141)을 서비스 커넥터1(161)에 할당하게 된다.
한편, 서비스 컴포넌트 2(142)와 서비스 컴포넌트 3(143)이 각각 연결 방식을 메시지 큐 방식으로 결정하고, 이를 서비스 인터페이스 모듈(150)에 통보하면, 즉 매개변수로서 "메시지큐"를 넘기면, 서비스 인터페이스 모듈(150)은 메시지 큐 방식의 서비스 커넥터2(162)에 서비스 컴포넌트 2(142)와 서비스 컴포넌트 3(143)을 할당하게 된다.
이와 같이, 연결방식에 따라 서비스 컴포넌트가 해당하는 서비스 커넥터에 할당되면, 메시지 응답 방식의 서비스 커넥터1(161)이 서비스 컴포넌트1(142)을 호출하는 명령을 직접 호출장치(10)로부터 전달 받아서, 서비스 컴포넌트1(142)의 함수를 호출할 수 있다. 따라서, 서비스 컴포넌트1(142)은 어떤 연결방식을 사용하느냐에 상관없이 독립적으로 구현되고, 메시지 큐 방식으로 변경하려는 경우 별도의 코드 변경 없이 서비스 인터페이스(150)를 통해 서비스 커넥터1(161)에서 서비스 커넥터 2(162)로 할당되기만 하면 된다.
또한, 제어 컴포넌트(110)는 서비스 커넥터1(161)를 통해서 서비스 컴포넌트가 메시지 큐 방식으로 연결되었다는 정보를 갖는다.
연결방식은 메시지/응답, 메시지 큐 방식에 제한 되지 않는다. 이벤트, 데이터 저장소 방식 등 다양한 연결 메커니즘으로의 확장이나 변경이 가능하다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 명령을 수신하여 처리하는 과정을 보여주는 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 명령을 수신하여 처리하는 과정은 도1의 호출장치(10)에서 수행되는 과정으로 서비스 컴포넌트 호출 단계(S310), 제어 커넥터 호출 단계(S320), 서비스 커넥터 호출 단계(S330), 함수 호출 단계(S340)를 포함하여 구성될 수 있다.
또한, 도 4를 참조하면, 또한 발명의 일 실시예에 따른 소프트웨어 합성시스템에서 명령을 수신하여 처리하는 과정의 각 단계는 다음과 같이 설명될 수 있다.
서비스 컴포넌트 호출 단계(S310)는 사용자의 명령을 수신한 제어 컴포넌트(110)가 수신한 명령과 관련된 함수와 함수를 보유한 서비스 컴포넌트를 호출하는 단계일 수 있다. 특히 호출할 서비스 컴포넌트가 복수일 경우 명령과 관련된 작업을 배분하여 호출할 수 있다. 이때 제어 컴포넌트(110)는 호출할 서비스 컴포넌트의 연결방식을 제어 인터페이스 모듈(120)로 전달할 수 있다.
즉, 제어 컴포넌트(110)는 명령과 관련된 함수와 상기 함수를 포함하는 서비스 컴포넌트 및 상기 서비스 컴포넌트의 연결방식을 알고 있고, 명령의 수행을 위한 서비스 컴포넌트 호출 시, 상기 함수, 서비스 컴포넌트, 연결방식을 매개변수로 호출하게 된다.
제어 커넥터 호출 단계(S320)는 제어 컴포넌트(110)가 서비스 컴포넌트를 호출하면 제어 인터페이스 모듈(120)은 상기 호출을 제어 커넥터에 전달하는 단계 일 수 있다. 이때, 복수의 제어 커넥터(131, 132) 중에서 상기 전달받은 연결방식을 사용하는 제어 커넥터에게, 상기 호출을 전달할 수 있다.
서비스 커넥터 호출 단계(S330)는 제어 컴포넌트(110)의 호출을 전달받은 제어 커넥터가 상기 호출을 실행장치(20)의 서비스 커넥터에 전달하는 단계이다. 즉 동일한 연결방식을 갖는 서비스 커넥터로 상기 호출을 전달할 수 있다.
이와 같이, 제어 컴포넌트(110)는 서비스 컴포넌트의 호출을 담당하고 제어 커넥터(131, 132)는 상기 호출명령의 전달을 담당함으로써 제어 컴포넌트(110)가 연결방식에 종속되지 않는 독립적인 구성을 가질 수 있도록 할 수 있다.
함수 호출 단계(S340)는 실행장치(20)에서 수행되는 단계일 수 있다. 즉 제어 커넥터로부터 서비스 컴포넌트에 대한 호출 명령을 전달 받은 서비스 커넥터가 상기 서비스 컴포넌트의 함수를 호출하는 단계일 수 있다.
예를 들면, 제어 컴포넌트(110)가 사용자로부터 명령을 수신하면, 수신된 명령에 따른 작업을 처리하기 위하여 서비스 컴포넌트1(141)의 함수를 호출하게 된다. 이때, 제어 컴포넌트(110)는 호출할 서비스 컴포넌트1(141)의 클래스명과 함수, 그리고 서비스 컴포넌트1(141)의 연결 방식인 메시지/ 응답 방식을 제어 인터페이스 모듈(120)에 전달한다.
다음으로, 제어 인터페이스 모듈(120)은, 예를 들면, if-else 문을 통해 메시지 큐/응답 방식의 제어 커넥터2(132)에 서비스 컴포넌트1(141)의 클래스 이름과 실행할 함수의 이름을 넘겨주게 된다. 상기 호출과 관련된 정보를 넘겨받은 제어 커넥터2(132)는 서비스 커넥터1(161)에 서비스 컴포넌트1(141)의 클래스 이름과 실행할 함수 이름을 전달하게 되고, 서비스 커넥터1(161)는 서비스 컴포넌트1(141)의 함수를 호출하게 된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (18)

  1. 수신한 명령의 수행에 필요한 함수를 갖는 서비스 컴포넌트를 호출하는 제어 컴포넌트;
    상기 제어 컴포넌트와 상기 서비스 컴포넌트간의 데이터 송수신을 지원하는 적어도 하나의 제어 커넥터; 및
    상기 제어 컴포넌트의 호출을 상기 적어도 하나의 제어 커넥터로 전달하는 제어 인터페이스 모듈을 포함하는 소프트웨어 컴포넌트 호출 장치.
  2. 제 1항에 있어서,
    상기 제어 인터페이스 모듈은 상기 제어 컴포넌트가 서비스 컴포넌트를 호출하면,
    상기 제어 컴포넌트로부터 호출되는 상기 서비스 컴포넌트의 연결방식을 통지 받아, 상기 연결방식에 기초하여 상기 적어도 하나의 제어 커넥터 중 하나의 커넥터를 선택하여 상기 제어 컴포넌트의 호출을 상기 선택된 커넥터로 전달하는 것을 특징으로 하는 소프트웨어 컴포넌트 호출 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 제어 커넥터는 상기 제어 인터페이스 모듈로부터 상기 제어 컴포넌트의 호출을 전달받으면, 상기 제어 커넥터와 연결된 서비스 커넥터를 매개로 상기 호출된 서비스 컴포넌트가 보유한 함수를 호출하는 것을 특징으로 하는 소프트웨어 컴포넌트 호출 장치.
  4. 제 3항에 있어서,
    상기 제어 커넥터는 자바 소켓, RMI, 옵저버 패턴, 공유 메모리 중 어느 하나로 구현되는 것을 특징으로 하는 소프트웨어 컴포넌트 호출 장치.
  5. 제 1항에 있어서,
    상기 제어 컴포넌트는 상기 명령의 수행에 필요한 적어도 하나의 함수와 상기 각 함수를 가진 서비스 컴포넌트들을 식별하고, 상기 식별된 컴포넌트들에 상기 명령의 수행을 위한 작업을 분배하는 것을 특징으로 하는 소프트웨어 컴포넌트 호출 장치.
  6. 제 1항에 있어서,
    상기 제어 컴포넌트와 상기 서비스 컴포넌트와는 네트워크 상의 다른 노드에 존재하는 것을 특징으로 하는 소프트웨어 컴포넌트 호출 장치.
  7. 제 1항에 있어서,
    상기 제어 커넥터와 상기 서비스 커넥터는 서로 동일한 연결방식으로 연결되는 것을 특징으로 하는 소프트웨어 컴포넌트 호출 장치.
  8. 명령의 수행에 필요한 적어도 하나의 함수를 갖는 적어도 하나의 서비스 컴포넌트;
    상기 적어도 하나의 서비스 컴포넌트가 보유한 함수를 호출하는 적어도 하나의 서비스 커넥터; 및
    상기 각 서비스 컴포넌트의 연결방식에 따라 상기 서비스 커넥터에 상기 서비스 컴포넌트를 할당하는 서비스 인터페이스 모듈을 포함하는 소프트웨어 컴포넌트 실행 장치.
  9. 제 8항에 있어서,
    상기 서비스 커넥터는 서비스 컴포넌트를 호출하는 외부 컴포넌트의 호출명령을 상기 외부 컴포넌트와 연결된 외부 커넥터로부터 전달받는 것을 특징으로 하는 소프트웨어 컴포넌트 실행 장치.
  10. 제 8항에 있어서,
    상기 서비스 인터페이스 모듈은 상기 서비스 컴포넌트 중 어느 하나의 컴포넌트로부터 연결방식을 통지 받으면, 상기 서비스 컴포넌트를 상기 적어도 하나의 서비스 커넥터 중 상기 통지된 연결방식에 대응하는 연결방식을 갖는 서비스 커넥터에 할당하는 것을 특징으로 하는 소프트웨어 컴포넌트 실행 장치.
  11. 제 8항에 있어서,
    상기 서비스 커넥터는 자바 소켓, RMI, 옵저버 패턴, 공유 메모리 중 어느 하나로 구현되는 것을 특징으로 하는 소프트웨어 컴포넌트 실행 장치.
  12. 제 8항에 있어서,
    상기 외부 컴포넌트와 상기 서비스 컴포넌트와는 네트웍상의 다른 노드에 존재하는 것을 특징으로 하는 소프트웨어 컴포넌트 실행 장치.
  13. 제어 컴포넌트, 제어 인터페이스 모듈, 적어도 하나의 제어 커넥터를 포함하는 소프트웨어 컴포넌트 호출장치를 포함하는 소프트웨어 컴포넌트 합성 시스템으로,
    상기 소프트웨어 컴포넌트 호출장치는 적어도 하나의 서비스 컴포넌트, 서비스 인터페이스 모듈, 적어도 하나의 서비스 커넥터를 포함하는 소프트웨어 컴포넌트 실행장치와 연결되어 동작하고
    상기 각 서비스 컴포넌트는 명령의 수행에 필요한 함수를 갖고,
    상기 제어 컴포넌트는 수신한 명령의 수행에 필요한 함수를 갖는 서비스 컴포넌트를 호출하고,
    상기 제어 인터페이스 모듈은 상기 제어 컴포넌트가 호출하는 서비스 컴포넌트의 연결방식에 따라 상기 제어 컴포넌트의 호출을 상기 적어도 하나의 제어 커넥터 중 하나의 커넥터로 전달하고,
    상기 서비스 인터페이스 모듈은 상기 각 서비스 컴포넌트의 연결방식에 따라 상기 각 서비스 커넥터에 상기 각 서비스 컴포넌트를 할당하고,
    상기 제어 커넥터는 상기 제어 컴포넌트의 호출을 상기 제어 커넥터와 연결된 서비스 커넥터에 전달하고,
    상기 서비스 커넥터는 상기 제어 커넥터로부터 전달받은 상기 제어 컴포넌트의 호출에 따라, 상기 호출되는 서비스 컴포넌트가 보유한 함수를 호출하는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템.
  14. 제 13항에 있어서,
    상기 제어 인터페이스 모듈은 상기 제어 컴포넌트가 서비스 컴포넌트를 호출하면, 상기 제어 컴포넌트로부터 통지 받은 상기 호출되는 서비스 컴포넌트의 연결방식에 기초하여 상기 적어도 하나의 제어 커넥터 중 하나의 제어 커넥터를 선택하여 상기 제어 컴포넌트의 호출을 상기 선택된 제어 커넥터로 전달하는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템.
  15. 제 13항에 있어서,
    상기 제어 컴포넌트는 상기 수신한 명령의 수행에 필요한 적어도 하나의 함수와 상기 각 함수를 갖는 서비스 컴포넌트들을 식별하고, 상기 식별된 컴포넌트들에 상기 명령의 수행을 위한 작업을 분배하고, 상기 분배에 따라 상기 식별된 컴포넌트들을 호출하는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템.
  16. 제 13항에 있어서,
    상기 서비스 인터페이스 모듈은 상기 각 서비스 컴포넌트로부터 연결방식을 통지 받아서, 상기 각 서비스 컴포넌트를 상기 통지 받은 각 연결방식에 대응하는 연결방식을 갖는 서비스 커넥터에 할당하는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템.
  17. 제 13항에 있어서,
    상기 제어 커넥터와 상기 서비스 커넥터는 자바 소켓, RMI, 옵저버 패턴(observer pattern), 공유 메모리 중 어느 하나로 구현되는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템.
  18. 제 13항에 있어서,
    상기 제어 커넥터와 상기 서비스 커넥터는 서로 동일한 연결방식으로 연결되는 것을 특징으로 하는 소프트웨어 컴포넌트 합성 시스템.
KR1020110117636A 2011-11-11 2011-11-11 소프트웨어 컴포넌트 합성 시스템 KR101341885B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110117636A KR101341885B1 (ko) 2011-11-11 2011-11-11 소프트웨어 컴포넌트 합성 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110117636A KR101341885B1 (ko) 2011-11-11 2011-11-11 소프트웨어 컴포넌트 합성 시스템

Publications (2)

Publication Number Publication Date
KR20130052276A true KR20130052276A (ko) 2013-05-22
KR101341885B1 KR101341885B1 (ko) 2013-12-16

Family

ID=48661939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110117636A KR101341885B1 (ko) 2011-11-11 2011-11-11 소프트웨어 컴포넌트 합성 시스템

Country Status (1)

Country Link
KR (1) KR101341885B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606789B2 (en) 2013-10-31 2020-03-31 Lg Chem, Ltd. Application module provided with stationary interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606789B2 (en) 2013-10-31 2020-03-31 Lg Chem, Ltd. Application module provided with stationary interface

Also Published As

Publication number Publication date
KR101341885B1 (ko) 2013-12-16

Similar Documents

Publication Publication Date Title
US5060140A (en) Universal programmable data communication connection system
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
CN113032166B (zh) 核间通信的方法、处理器、核间通信系统及计算机可读存储介质
CN107479984B (zh) 基于消息的分布式空间数据处理系统
CN107005452A (zh) 一种网络功能虚拟化资源处理方法及虚拟网络功能管理器
KR20210105378A (ko) 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체
US10353857B2 (en) Parallel processing apparatus and method for controlling communication
CN108028806A (zh) 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置
CN113382077B (zh) 微服务调度方法、装置、计算机设备和存储介质
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
CN116643854A (zh) 一种服务编排方法、装置、流程控制器及任务处理器
CN107391221B (zh) 调度服务器、编译服务器及分布式编译方法
KR101341885B1 (ko) 소프트웨어 컴포넌트 합성 시스템
CN114615308A (zh) 基于rpc的异步多线程并发网络通讯方法及装置
CN111427634A (zh) 一种原子服务调度的方法及装置
CN109450913A (zh) 一种基于策略的多节点注册调度方法
CN109962788B (zh) 多控制器调度方法、装置和系统及计算机可读存储介质
KR20170111246A (ko) 네트워크 기능 가상화를 위한 자원 제어방법과 자원 스케줄링 방법 및 그 네트워크 기능 가상화 시스템
US7706840B2 (en) Manifold in a radio base station and method of using such a radio base station
US20070208835A1 (en) Radio Base Station Controlled by a Monitor Coordinating Xml-Defined Tasks, Method of Operating Such a Radio Base Station, and Corresponding Computer Program Product
TWI795262B (zh) 高可用服務之部署系統、方法及其電腦可讀媒介
KR102582777B1 (ko) 에지 컴퓨팅 환경을 위한 경량 큐브에지 구성 방법 및 장치
EP4344157A1 (en) System and method for managing the distribution of communication resources to consumers in a communication system
US7624220B2 (en) Multisectional bus in radio base station and method of using such a radio base station
JP6125734B2 (ja) 内視鏡システム

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
LAPS Lapse due to unpaid annual fee