KR20040002624A - 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및그 방법 - Google Patents

실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및그 방법 Download PDF

Info

Publication number
KR20040002624A
KR20040002624A KR1020030039361A KR20030039361A KR20040002624A KR 20040002624 A KR20040002624 A KR 20040002624A KR 1020030039361 A KR1020030039361 A KR 1020030039361A KR 20030039361 A KR20030039361 A KR 20030039361A KR 20040002624 A KR20040002624 A KR 20040002624A
Authority
KR
South Korea
Prior art keywords
middleware
message
protocol
server
internal communication
Prior art date
Application number
KR1020030039361A
Other languages
English (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 (주)마하넷
Publication of KR20040002624A publication Critical patent/KR20040002624A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및 그 방법에 관한 것으로, 미들웨어 컴포넌트들이 실시간 시스템에서 프로토콜에 독립적이고 유연한 서비스를 제공할 수 있도록 하기 위하여, 클라이언트/서버 구조를 갖는 분산시스템에 있어서, 서버 컴포넌트를 등록/관리하기 위한 명명(naming) 서비스 기능부; 응용 프로그램 인터페이스(Application Program Interface : API)의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능부; 동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어부; 및 원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 드라이버 기능부; 를 포함하는 것을 특징으로 한다.

Description

실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및 그 방법{The Apparatus & Method to link Multi Protocol For Component Middleware In Real-Time}
본 발명은 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는, 네트워크 환경에서 미들웨어 컴포넌트들이 멀티 프로토콜을 사용할 수 있도록 지원함으로써, 프로토콜 독립적인 편리한 분산 응용 서비스를 개발할 수 있고, 그에 필요한 서비스를 제공할 수 있도록 미들웨어 구성 요소들을 효과적으로 구성하여 멀티 프로토콜 실시간 미들웨어가 실질적인 컴포넌트 개발 도구로서 사용되도록 하기 위한, 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및 그 방법에 관한 것이다.
일반적으로 분산 시스템은 다층의 클라이언트/서버 구조를 취한다. 즉, 시스템내의 구성요소나 다른 시스템상에 있는 구성요소가 상호 연결되어 동작한다. 이러한 분산 시스템은 필수적으로 네트워크를 이용하게 되며, 미들웨어는 네트워킹 기능을 필수 기능으로하여 분산 시스템을 쉽게 구성할 수 있도록 지원한다.
미들웨어는 분산형 컴퓨팅을 보다 쉽게 구현한다는 목표하에 여러 기종간의 차이를 극복하도록 범용적으로 개발된 소프트웨어라고 할 수 있다. 미들웨어는 여러 상이한 시스템에 탑재되어 네트워크 환경에서 다양한 시스템을 쉽게 제어하고 상호 정보교환을 보장할 수 있어야 한다. 즉, 하부 네트워크 물리 매체나 운영체제 및 프로토콜에 무관하게 프로그램 개발자에게 친숙한 환경을 제공해야 한다.
하지만, 소프트웨어는 프로토콜 종속성 및 설계된 시스템에 대한 종속성을 상당 부분 가질 수 밖에 없으며, 이러한 종속성은 시험 및 실제 수행을 통해 발생하는 문제의 해결을 위하여, 또는, 평가의 결과로 합리적인 새 프로토콜 사용을 반영하거나, 합리적인 시스템 구성을 새롭게 반영하기 위하여 시스템을 재구성 하고자 하는 등의 경우에 불가피하게 소프트웨어의 많은 부분이 새롭게 개발되거나 코드가 수정될 수 밖에 없으며, 상기 개발/수정의 정당성을 검증하기 위한 시험을 다시 수행하여야만 하는 문제점이 있다.
따라서, 이러한 문제점에 의해 멀티 프로토콜 지원 시스템이 요구된다.
멀티 프로토콜 실시간 미들웨어는, 멀티 프로토콜 연동을 지원하고 미들웨어 컴포넌트들의 내부 통신 및 시스템간 통신을 지원하도록 구성된다.
여기서, 멀티 프로토콜 연동의 지원이라 함은 프로토콜 드라이버를 통해 미들웨어 응용 컴포넌트들이 다양한 종류의 프로토콜로 상호간 동작할 수 있음을 말하고, 내부 통신 관리라 함은, 미들웨어 응용 컴포넌트들이 동일 플랫폼내에서 통신하기 위해 사용하는 공유 자원들에 대한 관리가 이루어 짐을 말하며, 시스템간 통신 관리라 함은, 미들웨어 응용 컴포넌트들이 다른 플랫폼과 통신하기 위해 사용하는 네트워크 및 인터페이스 자원들에 대한 관리가 이루어짐을 말한다.
또한, 이 미들웨어 구성 요소들은 네트워크 환경에서 프로토콜과 플랫폼에 독립적인 편리한 분산 응용 서비스를 개발할 수 있는 기능들을 포함한다.
따라서, 멀티 프로토콜 실시간 미들웨어는 다양한 프로토콜들을 연동시켜서, 프로토콜에 독립적인 분산 응용 프로그램을 개발하는데 필요한 하부 구조와 서비스를 제공한다.
미들웨어 프레임 워크가 속한 종래 기술들은 다음과 같다.
RPC(Remote Procedure Calls)는 미들웨어 중에서 가장 광범위하게 사용되며, 기타 다른 미들웨어 시스템의 하부 구조로 이용되는 미들웨어이다. RPC는 사용자에게 원격지에 있는 함수를 호출할 수 있는 방법을 제공한다. RPC는 IDL(Interface Definition Language) 과 IDL 컴파일러를 제공하며 사용자는 상기 IDL을 이용해서 원하는 함수를 작성한다.
메시지 기반 미들웨어(Message Oriented Middleware, MOM)는 비연결적인 비동기 통신을 제공한다. 즉, 클라이언트와 서버의 연결은 로컬 큐와 원격 큐 사이에서 보내기(Send)와 받기(Receive) 명령을 서로 교환함으로써 구축되는데, 클라이언트와 서버는 메시지에 대한 응답을 기다리지 않고 계속 수행된다. 통신에 관련된 일은 큐 매니저(Queue Manager)가 관장한다.
종래의 객체(Object) 기반 미들웨어인 DCOM(Distributed Component Object Model)은 COM(Component Object Model)이 네트워크에 걸쳐 분산 되어 있어, 객체 클라이언트는 마치 상기 객체 클라이언트가 자신의 어드레스 영역에 있는 것처럼 인식한다. 즉, 객체가 로컬에 있든 원격 기계에 있든지 개의치 않고 다룰 수 있는서비스를 제공한다.
또한, 자바(Java) RMI(Remote Method Invocation)는, 자바 객체를 사용하는 분산 프로그래밍을 위한 간단하고 직접적인 모델을 제공한다. RMI를 기반으로 하는 시스템은 어떠한 자바 가상 머신에서도 높은 이식과 수행이 가능하다.
한편, CORBA(Common Object Request Broker Architecture)는 OMG(Object Management Group)라는 컨소시엄에서 제안한 표준안으로서, 객체 지향 기술을 기반으로 한 분산 애플리케이션 프로그램을 통합할 수 있는 표준 기술이라 할 수 있다. CORBA에서는 컴포넌트의 인터페이스를 정의하기 위한 표준 메커니즘을 제공하며, 개발자의 특정 언어를 사용하는 이들 인터페이스의 구현을 쉽게 하는 도구들을 제공한다.
그러나, 위에서 언급한 미들웨어들은 멀티 프로토콜 서비스를 지원하지 않으며, 인터넷 프로토콜을 기반으로 하여 동작한다. 따라서, 다양한 인터페이스와 프로토콜을 사용하고 있는 시스템이 갖는 많은 제약과 특성들을 제대로 반영하지 못하는 한계를 갖고 있다.
따라서, 네트워크 환경에 있어서 미들웨어 컴포넌트들 사이에 사용 프로토콜에 따른 제약없이 자유로운 커뮤니케이션이 가능하도록 함으로써, 사용자가 소프트웨어 개발을 완료한 뒤에도 프로토콜에 관계없이 소프트웨어들을 자유롭게 조립하거나 새로운 프로토콜을 응용 프로그램과 관계없이 자유롭게 확장할 수 있는, 실시간 멀티 프로토콜을 지원하기 위한 방안이 요구되고 있다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로, 네트워크 환경에서 미들웨어 컴포넌트들이 멀티 프로토콜을 사용할 수 있도록 지원함으로써 프로토콜 독립적인 편리한 분산 응용 서비스를 개발할 수 있고, 그에 필요한 서비스를 제공할 수 있도록 미들웨어 구성 요소들을 효과적으로 구성하여 멀티 프로토콜 실시간 미들웨어가 실질적인 컴포넌트 개발 도구로서 사용되도록 하기 위한, 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 그 목적이 있다.
도 1 은 본 발명이 적용되는 멀티 프로토콜 실시간 미들웨어 시스템의 일예시 개요도.
도 2 는 본 발명이 적용되는 멀티 프로토콜 실시간 미들웨어 시스템의 하드웨어 구성 일예시도.
도 3 은 본 발명에 따른 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치의 일실시예 구성도.
도 4a 및 도 4b 는 본 발명에 따른 내부 통신 프로토콜 데이터 형식의 일예시도.
도 5 는 본 발명에 따른 외부 통신 프로토콜 데이터 형식의 일예시도.
도 6 은 본 발명에 따른 클라이언트 컴포넌트의 메시지 처리 흐름 일예시도.
도 7 은 본 발명에 따른 런타임 라이브러리의 송신 메시지 처리 흐름 일에시도.
도 8 은 본 발명에 따른 내부 통신 제어기의 초기화 흐름 일예시도.
도 9 는 본 발명에 따른 내부 통신 제어기의 메시지 처리 흐름 일예시도.
도 10 은 본 발명에 따른 내부 통신 제어기의 Time Out 처리 흐름 일예시도.
도 11 은 본 발명에 따른 내부 통신 제어기의 컴포넌트 상태 감시 흐름 일예시도.
도 12 는 본 발명에 따른 프로토콜 드라이버 내부 통신 메시지 처리 흐름 일예시도.
도 13 은 본 발명에 따른 프로토콜 드라이버 외부 통신 메시지 처리 흐름 일예시도.
도 14 는 본 발명에 따른 서버 컴포넌트의 메시지 처리 흐름 일예시도.
도 15 는 본 발명에 따른 런타임 라이브러리의 수신 메시지 처리 흐름 일예시도.
* 도면의 주요 부분에 대한 부호의 설명
301 : 서버 응용 컴포넌트 302 : 클라이언트 응용 컴포넌트
310 : 명명 서버 311 : 런타임 라이브러리
312 : 내부 통신 제어기 313 : 프로토콜 드라이버
상기 목적을 달성하기 위한 본 발명은, 클라이언트/서버 구조를 갖는 분산시스템에 있어서, 서버 컴포넌트를 등록/관리하기 위한 명명(naming) 서비스 기능부; 응용 프로그램 인터페이스(Application Program Interface : API)의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능부; 동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어부; 및 원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 드라이버 기능부;를 포함하는 것을 특징으로 한다.
또한, 본 발명의 방법은, 클라이언트/서버 구조를 갖는 분산시스템에 적용되는 멀티 프로토콜 연동 방법에 있어서, 서버 컴포넌트를 등록/관리하기 위한 명명 서비스 단계; API 의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능 수행 단계; 동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어 단계; 및 원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 연동/변환 단계;를 포함하는 것을 특징으로 한다.
그리고, 본 발명은, 프로세서를 구비한 실시간 미들웨어 구성 시스템에, 서버 컴포넌트를 등록/관리하기 위한 명명 서비스 기능; API 의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능; 동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어 기능; 및 원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 연동/변환 기능;을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이를 위하여, 본 발명에 따른 멀티 프로토콜 연동 장치는, 동일 호스트 내 컴포넌트들이 통신을 할 수 있도록 하는 내부 통신 제어기와 각종 외부 통신을 위한 프로토콜 드라이버를 연동 시킨다.
또한, 컴포넌트 서비스에 대한 분산 트랜잭션 처리 및 관리 기능과 컴포넌트 서비스의 요구 및 응답을 보관할 미들웨어 서비스 큐를 제공하고, 컴포넌트 상태 관리 기능을 제공한다.
그리고, 컴포넌트 풀(서비스 풀)을 관리하고, 컴포넌트의 다중 분산된 복제본의 부하 균형(load balancing)을 유지하며, 사용 가능한 컴포넌트에 대한 신속한 통신 경로를 설정할 수 있도록 한다.
또한, 클라이언트/프로세스/컴퓨터 및 네트워크 고장에도 지속적인 컴포넌트 작동을 유지시킬 수 있고, 통신 암호화/접근 권한 부여/요청자 인증을 포함한 보안 기능을 제공한다. 통신 인터페이스를 단순화하고 다양한 종류의 클라이언트들을 지원하여 사용 편의성도 제공한다. 그리고, 기존의 프로토콜뿐만 아니라, 사용자가 새로이 정의하는 프로토콜로도 통신 가능할 수 있도록 프로토콜 추가 절차를 제공한다.
본 발명의 목적을 달성하기 위하여 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치는, 인터페이스 정의 언어(IDL : Interface Definition Language, 이하 'IDL' 이라고 한다.) 편집기, IDL 컴파일러, 명명 서버, 미들웨어 런타임 라이브러리, 내부 통신 제어기 및 프로토콜 드라이버를 구비함을 그 특징으로 한다.
상기 각각의 구성요소들에 대해 설명하면 다음과 같다.
먼저, 상기 IDL 편집기는, 미들웨어 응용 컴포넌트간의 통신 방식을 정의 하기 위한 IDL 작성 및 편집을 위해 사용자에게 제공되는 사용자 인터페이스 프로그램이며, 상기 IDL 컴파일러는, 사용자가 작성한 IDL을 플랫폼과 프로그램 언어에 맞는 통신 코드로 변환하기 위한 장치이다.
이때, IDL 컴파일을 통해 생성되는 것은 클라이언트/서버의 헤더 파일과 라이브러리 및 Makefile 그리고 사용자가 그 실제 내용을 구현해야 하는 stub들 등이다.
상기 IDL 컴파일러는, IDL에 의해 작성된 인터페이스를 파싱하여 해당하는 통신 코드(프로그램 소스(stub/skeleton)와 라이브러리)를 생성하여 주는데, 이를 이용하여 사용자는 클라이언트/서버 응용 컴포넌트 프로그램을 작성 한다.
또한, 상기 IDL 컴파일러는 사용자에게 세부 옵션을 제공하여 최적화된 결과를 제공하며, IDL 인터페이스의 토큰 또는 문법적 오류 검사 기능(에러 처리 기능)을 가진다.
여기서, 사용자는, 생성된 코드와 사용자가 작성한 프로그램 코드를 함께 컴파일하여 응용 컴포넌트 프로그램을 만들게 된다.
다음, 상기 명명 서버는, 서버 컴포넌트들을 등록하고 관리하며 상기 등록된 서버에 대한 클라이언트의 정보 요청에 대해 해당 정보를 제공해 주는 기능을 수행하고, 컴포넌트들의 요구에 의해 상기 서버 컴포넌트들의 인증 및 등록 기능과, 등록된 서버의 논리적인 표현 방식을 통하여 물리적인 주소 정보를 제공한다.
또한, 같은 이름을 갖는 서버 컴포넌트에 대한 인터페이스 개수를 제공하는 기능과 서버 컴포넌트가 속한 플랫폼이 어떠한 프로토콜들을 사용하는지 알아내어 그 정보를 제공하는 기능을 가진다.
그리고, 명명 서버들은 서로에게 명명 서버의 상태를 보고하는 기능을 가지며, 명명 서버 사이에서 필요한 정보 테이블들을 전달하는 기능이 있다.
또한, 상위 명명 서버는, 죽어 있는 하위 명명 서버에게 주기적인 등록 요청을 하는 기능이 있고 정보 테이블의 내용을 변경하는 기능이 있으며, 외부의 요청으로 특정 컴포넌트들의 동작을 정지시키는 기능과 컴포넌트 등록/변경 및 컴포넌트 적재를 수행하는 기능이 및 프로토콜 드라이버 관리 기능이 있다.
그리고, 하위의 subnet 및 명명 테이블을 구성하고, 라우팅 요청에 의해 라우팅 정보를 제공한다.
다음으로, 상기 미들웨어 런타임 라이브러리는, 사용자가 IDL로 정의한 프로시져, 쓰레드 등을 비롯하여 응용 프로그램 인터페이스(API : Application Program Interface : 이하 'API' 라고 한다.)의 동작을 실현한다.
여기서, 미들웨어 서비스는 크게 두가지로 구분되는데, 서버에서 사용하는 미들웨어 서비스와 클라이언트에서 사용하는 미들웨어 서비스가 그것이다.
먼저, 서버에서 사용하는 미들웨어 서비스의 기능은 서버 등록 기능, 기본 쓰레드 생성 기능, 메시지 큐 생성 기능 등이 있으며, 프로그램이 처음 구동되면 서비스 요청이 오기를 기다리게 된다.
그리고, 클라이언트에서 사용하는 미들웨어 서비스의 기능으로는 원격 파일 접근 기능, 공유 메모리 접근 기능, 원격 프로그램 수행 기능 등이 있다.
또한, 클라이언트와 서버가 사용하는 공통적인 서비스 기능으로는 핸들러(handler) 생성/종료 기능, 멀티 프로토콜 실시간 미들웨어 서비스의 수행 후 오류를 체크하는 기능, 주소 요청/등록/상태 등을 보고하는 명명 서비스 관련 기능, 클러스터링 기능, Multi-thread / Single-thread 기능, 컴포넌트의 서비스 응답 만료 시간 체크 기능, 메모리/파일 중복 기능, 메모리/서버/파일 락(lacking) 기능, 라이센스 기능, 디버그 기능, XDR(External Data Representation: 외부 데이터 표현) 기능, Load balancing 기능, 보안 기능, 특정 컴포넌트에 이상이 있을 경우에 명명 서버에게 보고하는 상태 변경 기능, 응용 프로그램에서 요청한 서비스를 처리하기 위하여 처리 쓰레드를 관리하는 스케줄링 기능, 미들웨어 컴포넌트들이 사용하는 공유 메모리 관리 기능 및 컴포넌트의 정보를 알 수 있는 기능 등이 있다.
다음, 상기 내부 통신 제어기는, 동일 호스트 내의 컴포넌트들 간 통신 매커니즘을 제공한다.
컴포넌트들에게 내부 통신이 가능하도록 내부 통신 포트와 프로토콜을 구현하며, 상기 내부 통신 포트를 할당/반납하는 기능을 실행한다. 그리고, 메시지 수신시 지정되는 서비스 제한 시간을 등록 받고, 해당 시간 안에 메시지가 수신되지 않았을 경우에 컴포넌트에게 통보하는 기능을 가지게 된다.
또한, 요구가 접수되었을 경우에 내부 통신 포트를 사용하는 컴포넌트의 상태를 체크하여 통보해 주는 기능도 가진다.
마지막으로, 상기 프로토콜 드라이버는, 서로 다른 프로토콜을 사용하는 원격의 미들웨어 응용 컴포넌트 사이에 통신을 담당한다. 해당 프로토콜(UDP(User Datagram Protocol : 인터넷 표준 전송 프로토콜 : 이하 'UDP' 라고 한다), TCP(Transmission Control Protocol: 전송 제어 규약 프로토콜 : 이하 'TCP' 라고 한다), ATM(Asynchronous Transfer Mode: 비동기식 전달 방식 : 이하 'ATM' 이라 한다.), SERIAL(직렬 프로토콜: 이하 'Serial' 이라 한다.) 등)에 맞는 형태로 필요한 호스트에 언제든지 위치할 수 있으며, 내부 통신 제어기와 연동하여 서로 다른 프로토콜 사이에 프로토콜 변환을 실행한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 도면 및 실시예는 본 발명의 예시일 뿐 본 발명의 기술적 사상이 이에 한정되거나 이로 인해 변경되는 것은 아니다.
도 1 은 본 발명이 적용되는 멀티 프로토콜 실시간 미들웨어 시스템의 일예시 개요도 이다.
도 1 에 도시된 바와 같이, 본 발명이 적용되는 멀티 프로토콜 실시간 미들웨어 시스템에 있어서, 사용자는 IDL 편집기(101)의 그래픽 사용자 인터페이스(GUI: Graphical User Interface, 이하 'GUI' 라고 한다.) 등의 환경을 이용하여 IDL을 작성하게 된다.
상기 작성된 IDL은 IDL 컴파일러(102)에 의해 컴파일 되어서, 미들웨어가 제공하는 서비스를 사용할 수 있는 클라이언트 컴포넌트(103)와 기능 서버 컴포넌트(104) 형태로 생성된다.
미들웨어 계층은 인터페이스(110)와 서비스(120), 내부 통신 제어기(140) 및 프로토콜 드라이버(150)로 구성된다.
인터페이스(110) 기능부에서는 클라이언트(103)/기능 서버(104)간에 서비스를 요청하고 제공하기 위해서 원격 프로시져 호출(111), 원격 라이브러리 호출(112), 원격 쓰레드 수행(113), 원격 파일 접근(114), 원격 메모리 접근(115), 원격 프로그램 수행(116)의 인터페이스를 제공 한다.
그리고, 서비스(120) 기능부에서는 명명(121), 클러스터링(122), 쓰레드(123), 메시지 수신 시간 제어(124), 중복(125), 멀티 프로토콜(126), 메시지 추적(127), 락(128), 사용 권한 감시(129), 디버깅(130), 데이터 보정(131), 부하 분담(132), 보안(133) 및 동작 감시(134) 등과 같은 서비스들이 제공된다.
또한, 클라이언트(103)와 응용 서버 컴포넌트(104)가 동일 호스트 내에서 통신하는 경우에는, 내부 통신 제어기(140)를 이용하게 되고, 외부 컴포넌트와의 통신은 내부 통신 제어기(140)와 프로토콜 드라이버(150)를 통해서 이루어진다.
이러한 서비스들은 모든 운용 체계(Solaris, Linux, Windows, VxWorks 등)와프로토콜(TCP, UDP, Serial, ATM 등) 상에서 동일한 방식으로 컴포넌트들이 통신할 수 있도록 제공된다.
도 2 는 본 발명이 적용되는 멀티 프로토콜 실시간 미들웨어 시스템의 하드웨어 구성 일예시도 이다.
도 2 에 도시된 바와 같이, 본 발명이 적용되는 멀티 프로토콜 실시간 미들웨어 시스템은, 통상의 내장 시스템(201), 개인용 컴퓨터(202), 워크스테이션(203) 및 개인 휴대 단말기(204) 등의 다양한 시스템에 탑재 가능하여 각 응용 컴포넌트들의 네트워킹을 담당하게 된다. 여기서, 모든 컴포넌트의 통신들은 본 발명의 멀티 프로토콜 실시간 미들웨어를 통해 이루어지므로, 프로토콜과 플랫폼에 독립적으로 네트워킹 영역을 제공할 수 있게 되는 것이다.
도 3 은 본 발명에 따른 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치의 일실시예 구성도 이다.
도 3 에 도시된 바와 같이, 본 발명에 따른 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치는, 분산시스템의 클라이언트(301)/서버(302) 컴포넌트 사이의 통신과 원격 통신을 위해 다양한 프로토콜 사이의 연동을 통한 실시간 미들웨어 구성을 수행한다.
이를 좀 더 자세히 살펴보면 다음과 같다.
클라이언트 컴포넌트(302)는 미들웨어 런타임 라이브러리(311)의 API 함수를이용하여 서버 컴포넌트(301)의 서비스를 호출(303)하고 그 응답(304)을 받는다.
명명 서버(310)는 런타임 라이브러리(311)와 내부 통신 제어기(312), 프로토콜 드라이버(313)들이 컴포넌트 정보 제공(315, 319, 317)을 요청하면, 그 정보를 제공(315, 318, 316)한다.
컴포넌트들의 내부 통신은 내부 통신 제어기(312)를 통해 이루어진다. 그리고, 내부 통신 제어기(312)는 필요에 의해 컴포넌트들의 상태를 명명 서버에게 통보(318,319)한다. 그리고, 호스트 외부의 컴포넌트와 통신이 필요할 경우에는 프로토콜 드라이버(313)를 통해서 통신을 하는데, 이때 통신에 필요한 정보들은 명명 서버(310)를 이용해서 얻게 되고(316,317), 런타임 라이브러리(311)의 API 함수를 이용(324,325)해 다른 호스트의 프로토콜 드라이버와 통신을 한다.
도 4a 및 도 4b 는 본 발명에 따른 내부 통신 프로토콜 데이터 형식의 일예시도로서, 같은 호스트 내의 클라이언트(103)와 응용 컴포넌트(104) 간에 통신 메시지가 송수신되는 경우의 데이터 형식을 보이고 있다.
여기서, 내부 통신 메시지 헤더는 수신지 내부 통신 포트 번호, 송신지 내부 통신 포트 번호, 수신지 명명 서버 아이디, 송신지 명명 서버 아이디 및 게이트웨이 정보들로 구성되는데, 상기 게이트웨이 정보는 사용 여부를 나타내는 플래그와 명명 서버 지정자로 구성된다.
여기서, 상기 플래그는, 게이트웨이 사용 여부를 나타내는 used flag, 라우팅 정보를 사용할 경우에 라우팅을 하는 쪽인지, 라우팅을 받는 쪽인지를 나타내는route flag, 게트웨이 정보의 명명 서버 지정자가 자신의 명명 서버 지정자인지 체크하는 init flag, 라우팅 정보를 사용하는지를 나타내는 route init flag 등을 포함한다.
이때, 실제 서비스의 내용은 내부 통신 메시지 헤더 이후의 미들웨어 메시지 데이터에 실리게 된다. 상기 미들웨어 메시지 데이터는 메시지 헤더와 실제 데이터로 나뉘는데, 상기 메시지 헤더는 서비스 유형, 체크 썸, 서비스 상태, 서비스 지정자, 메시지 개수, 메시지 일련 번호, 메시지 길이 및 서비스 길이 등으로 구성되며, 상기 데이터는 실제 컴포넌트 간 송수신되는 내용으로 구성된다.
도 5 는 본 발명에 따른 외부 통신 프로토콜 데이터 형식의 일예시도로서, 서로 다른 호스트에 위치하는 클라이언트(103)와 응용 컴포넌트(104) 사이에 메시지가 송수신되는 경우의 외부 통신 데이터 형식을 나타내고 있다.
이때, 도 5 에 도시된 본 발명의 실시예에서는, 외부 통신 헤더는 16 바이트 내에서 프로토콜 드라이버(313)가 자유롭게 정의하여 사용하도록 하였다.
본 발명의 실시예에 따른 미들웨어에서 사용되는 TCP 프로토콜 드라이버의 외부 통신 데이터 형식을 예로 들어 설명하면 다음과 같다.
먼저, 외부 통신 헤더로 4 바이트를 사용하는데, 이 가운데 0~2 바이트는 TCP 통신용 포트(port) 번호를 넣고, 3~4 바이트는 다른 용도로 예약하도록 정의해서 사용하고 있다.
Serial 통신용 헤더에서는 메시지 시작을 알리는 <특수문자1> 및<특수문자2>를 넣도록 연속으로 1 바이트씩 2 바이트를 사용하고, Serial 전체 메시지 길이를 넣도록 2 바이트를 할당해서 사용하고 있다.
그밖에 어떤 종류의 프로토콜도 최대 길이 16 바이트까지 사용자 정의로 사용할 수 있으며, 데이터에는 내부 통신 프로토콜 데이터(도 4a)가 위치하게 된다.
도 6 은 본 발명에 따른 클라이언트 컴포넌트의 메시지 처리 흐름 일예시도 이다.
도 6 에 도시된 바와 같이, 서비스를 요청하는 클라이언트(103)에서 런타임 라이브러리(311)의 API 함수를 이용하여 핸들러를 생성한 뒤(601) 사용할 서비스를 호출(602)한다. 그리고, 응용 서버 컴포넌트로부터 처리 결과값을 수신하거나 응답 시간 만료(Time Out)를 수신하여(603) 시간 초과 여부와 결과값의 정상 수신 여부를 판단하고(604), 시간 내에 정상 수신되었다면 서비스 호출을 완료(606)하게 된다.
이때, 만일 지정된 오류 발생 시간을 초과하여도 결과값이 수신되지 않는 경우에는 오류값을 반환하게 된다(605).
도 7 은 본 발명에 따른 런타임 라이브러리의 송신 메시지 처리 흐름 일에시도로서, 응용 컴포넌트가 다른 컴포넌트에게 메시지를 송신하는 경우 런타임 라이브러리를 사용하는 과정을 보여 주고 있다.
이를 구체적으로 설명하면 다음과 같다.
먼저, 클라이언트가 서비스 호출(<도 6>의 602)을 함으로써 송신 메시지 처리가 시작되며, 메시지 송신 요구가 발생하면, 보낼 메시지를 기준 데이터 형식으로 변환(701)하여 송신 메시지를 작성한다.
여기서, 상기 송신 데이터는 총 길이가 최대 허용 길이를 초과하지 않는 범위내에서 생성되어야 한다(702).
다음, 송신 메시지를 수신할 응용 컴포넌트의 위치 정보를 얻기 위하여 명명 서버(310)에게 위치 정보를 얻은 후(703), 메시지를 송수신하는 두 컴포넌트가 사용하는 내부 통신 포트가 정상 상태인지를 확인(704)한다.
그래서, 상기 송수신용 두 내부 통신 포트중 하나라도 비정상 상태이면, 오류 메시지를 출력(711)하고 종료(712)하며, 그렇지 않고, 두 내부 통신 포트 모두 정상 상태이면 송신 컴포넌트의 내부 통신 포트를 사용중 상태로 변경(705)하고, 공유 메시지 버퍼에 전송할 메시지와 정보들을 넣은(706) 후, 상기 송신 컴포넌트의 내부 통신 포트의 사용중 상태를 해제한다(707).
그리고, 이러한 과정에 의해 메시지에 대한 처리가 모두 끝나면, 내부 통신 제어기에게 메시지 송신 시그널을 보낸 후(708), 서버로부터 송신 메시지에 대한 응답이 수신되면(709) 모든 메시지를 송신 (710)한 뒤 종료(712)한다.
도 8 은 본 발명에 따른 내부 통신 제어기의 초기화 흐름 일예시도로서, 처음 내부 통신 제어기가 구동될 때의 초기화 과정 및 통신 메시지들을 관리할 준비 과정을 자세하게 보여 주고 있다.
내부 통신 제어기는 동일 호스트에서 컴포넌트들의 메시지 송수신을 관리하는 기능을 수행하는데, 상기 내부 통신 제어기가 처음 구동되면, 먼저 내부 통신 포트의 정보를 유지하라는 옵션(801)이 주어졌는지 확인한 후 공유 메모리를 초기화 (803)한다.
다음, 내부 통신 포트의 정보 유지 플래그가 설정되어 있을 경우에는 내부 통신 포트의 정보를 초기화(802)하며, 상기 초기화가 모두 끝나면, 내부 통신 포트 테이블 전체를 검색하여 등록되어 있는 컴포넌트들의 상태가 모두 정상인지를 확인(804)하게 되며, 여기서, 모든 컴포넌트가 정상 상태가 아닐 경우, 해당 컴포넌트가 사용하는 내부 통신 포트를 비롯하여, 메시지 큐, 메시지 테이블 및 공유 자원들을 반납하고 초기화(805)한다.
이때, 컴포넌트들의 상태 체크가 끝나면, 메시지를 처리하는 쓰레드(806)와 응답 만료 시간 알림 서비스를 처리하는 타이머 쓰레드(807)를 구동시키게 되는데, 상기 두 쓰레드의 동작은 다음의 <도 9>와 <도 10>에서 보다 상세히 설명하기로 한다.
도 9 는 본 발명에 따른 내부 통신 제어기의 메시지 처리 흐름 일예시도 이다.
쓰레드는 내부 통신 제어기의 초기화(<도 8>의 806)에 의해 구동되며, 컴포넌트들이 동일 호스트 내에서 메시지를 송수신 할 경우에 메시지를 처리하기 위해서 사용한다.
상기 메시지 처리는 메시지의 송수신을 알리는 런타임 라이브러리의 시그널(signal, <도 7>의 708)에 의해 처리가 시작되며, 시그널이 수신(901)되면, 메시지 큐의 인덱스 순서대로 메시지 테이블의 정보를 가져온다(902). 그리고, 내부 통신 제어기가 가지고 있는 내부 버퍼 영역에 현재 검색중인 내부 포트의 메시지가 보관되어 있는지 여부를 확인(903)한다.
다음, 내부 버퍼 영역에 상기 확인(903)된 해당 메시지가 없을 경우에는 해당 내부 통신 포트를 사용하는 컴포넌트에게 메시지 큐에 있는 메시지를 송신(905)하며, 내부 버퍼에 해당 메시지가 있을 경우에는, 메시지들의 순서를 맞추어서(904) 해당 컴포넌트에게 메시지를 송신(905)하게 된다.
메시지를 송신한 다음에는 해당 내부 통신 포트가 사용 종료 되었는지 확인(906)하여, 만약 사용 종료되었으면, 내부 통신 포트가 사용하던 공유 메모리 값과, 내부 통신 포트를 반납(907)하고 다음 메시지 테이블을 검색하게 되는데, 이 과정을 상기 메시지 큐의 마지막 인덱스까지 계속 반복 수행한다.
도 10 은 본 발명에 따른 내부 통신 제어기의 Time Out 처리 흐름 일예시도 이다.
도 10 에 도시된 타이머 쓰레드는, 내부 통신 제어기의 초기화(<도 8>의 807)에 의해 구동되며 컴포넌트들의 응답 시간 만료를 통보하는 역할을 한다.
상기 쓰레드는 일정 시간 마다(1101) 공유 메모리에 있는 내부 통신 포트 테이블을 검색하는데, 우선 예약/사용되는 내부 통신 포트들을 먼저 검색한 후, 동적으로 할당되어 사용되어지는 내부 통신 포트들을 검색한다.
이때, 내부 통신 포트를 검색하는 내용은 상기 두 경우 모두 동일한데 다음과 같은 과정을 통해 수행된다.
먼저, 내부 통신 포트의 상태가 대기 상태인지 확인(1002)한 후, 대기 상태가 아니면 다음 내부 통신 포트를 검색하고, 대기 상태일 경우에는 응답 시간이 만료된 상태인지 확인(1003)한다.
그리고, 만일 응답 시간 만료 상태일 경우라면, 해당 내부 통신 포트를 사용하는 컴포넌트에게 응답 시간 만료를 통보(1005)하고, 응답 시간 만료 상태가 아니라면, 내부 통신 포트 테이블의 응답 시간을 1초 감소(1004)시킨 후, 다음 내부 통신 포트를 검색한다.
도 11 은 본 발명에 따른 내부 통신 제어기의 컴포넌트 상태 감시 흐름 일예시도 이다.
도 11 에 도시된 바와 같이, 컴포넌트의 상태 감시는 필요에 의한 호출에 의해 수행되기 시작한다. 즉, 컴포넌트 상태 체크 메시지가 수신(1101)되면, 예약되어 사용되는 내부 통신 포트와 동적으로 할당되어 사용되는 내부 통신 포트를 차례대로 검색하는데, 그 과정은 다음과 같다.
먼저, 해당되는 내부통신 포트가 사용되고 있는지 검사(1102)하여, 사용되지 않는 내부 통신 포트이면 다음 포트로 검색이 넘어가고 사용되는 포트이면 사용하고 있는 컴포넌트가 정상 상태인지 확인(1103)한다.
다음, 상기 확인(1103)의 결과, 상기 컴포넌트가 정상 상태라면 다음 포트를 검색하고 비정상 상태라면 상기 컴포넌트가 사용하고 있던 공유 자원들을 반납(1104)한다. 그리고, 해당 컴포넌트가 서버로 사용되었으면, 그 내부 통신 포트를 결과값으로 반납(1106)한다.
도 12 는 본 발명에 따른 프로토콜 드라이버 내부 통신 메시지 처리 흐름 일예시도 이다.
프로토콜 드라이버는 처음 구동되면, 통신 요구 처리 쓰레드를 생성시키고(1201), 내부 통신 요구를 처리하기 위한 초기화(1202)를 진행한다. 초기화가 끝나고 통신 메시지를 수신할 수 있는 상태가 되면 수신되는 통신 메시지를 처리할 수 있게 된다.
내부 통신 메시지가 수신(1203)되면 메시지를 송신할 다음 호스트의 물리적 주소를 얻기 위해 명명 서버에게 주소 요청(1204)을 한다.
다음, 상기 명명 서버로부터 메시지를 보낼 호스트의 물리적 주소가 수신(1205)되면, 상기 수신된 물리적 주소에서 다음 명명 서버 지정자와 목적지 명명 서버 지정자가 같은 값인지 비교(1206)한다. 이 때, 상기 두 값이 같다면 보낼 통신 메시지 헤더에 위치한 게이트웨이를 설정(1207)하여 외부로 메시지를 송신(1209)하고, 다르다면 내부 통신 메시지 헤더에 위치한 게이트웨이 정보를 해제(1208)하여 상기 메시지를 외부로 송신(1209)한다.
도 13 은 본 발명에 따른 프로토콜 드라이버 외부 통신 메시지 처리 흐름 일예시도로서, 외부로부터 통신 요구가 수신되었을 경우에 프로토콜 드라이버가 외부 통신 메시지를 처리하는 과정을 나타낸다.
도 13 에 도시된 바와 같이, 프로토콜 드라이버는, 외부 통신 메시지의 처리에 필요한 초기화 과정(1301)을 통해 외부 통신 메시지를 수신(1302)할 수 있는 대기 상태가 되며, 이 상태에서 외부 통신 메시지 처리 요구가 전달되면, 우선 내 호스트가 수신된 메시지의 목적지인지 판단(1303)한다.
여기서, 만일 내 호스트가 목적지라면 해당 내부 통신 포트를 사용하고 있는 컴포넌트에게 메시지를 송신(1307)하고 다시 외부 통신 메시지 수신 대기 상태로 가며, 내 호스트가 목적지가 아니라면, 명명 서버에게 메시지를 전달할 다음 호스트의 물리적 주소를 요청(1304)한다.
그리고, 상기 요청(1304)의 결과로 명명 서버로부터 물리적 주소가 수신(1305)되면, 다음 호스트의 명명 서버 지정자와 목적지 명명 서버 지정자가 같은지 판단(1306)한다.
이때, 상기 두 값이 같을 경우에는 보낼 통신 메시지의 데이터 부분에 위치한 내부 통신 헤더의 게이트웨이 정보를 설정(1308)하여 외부로 메시지를 송신(1310)하고, 다를 경우에는, 게이트웨이 정보를 해제(1309)한 후, 메시지를 외부로 송신(1310)한다.
도 14 는 본 발명에 따른 서버 컴포넌트의 메시지 처리 흐름 일예시도로서,컴포넌트가 서비스를 제공하기 위해 메시지를 처리하는 과정을 나타내고 있다.
도 14 에 도시된 바와 같이, 서버 컴포넌트가 처음 구동되면, 서버 컴포넌트의 수행 옵션을 얻고(1401) 서버 컴포넌트가 서비스를 제공할 수 있는 환경 변수를 설정(1402)하게 된다.
이를 통해, 상기 서버 컴포넌트가 서비스를 제공할 수 있는 환경이 갖추어 지면, 서버의 핸들러를 생성(1403)하고 명명 서버에 자신을 등록(1404)시킨다. 이때, 상기 명명 서버의 등록에 실패하면, 오류 메시지를 출력(1406)하고 서버 컴포넌트의 수행을 종료(1408)시키며, 명명 서버에 등록 성공하면, 다른 컴포넌트에게서 요청받은 서비스를 수신하고 처리(1405)하게 된다.
만일 서비스의 처리 도중 예외 상황이 발생(1407)되면 상기 서버 컴포넌트의 실행을 종료(1408) 시킨다.
도 15 는 본 발명에 따른 런타임 라이브러리의 수신 메시지 처리 흐름 일예시도 이다.
이 과정은, 메시지를 수신해야 하는 상황이 발생할 경우에 사용되며, 상기 <도 14>에서 보였듯이 서비스 수신 및 처리(1405)의 과정으로부터 시작된다.
우선 메시지를 수신할 내부 통신 포트가 정상 상태인지를 검증(1501)하여 만일 정상 상태가 아닐 경우에는, 에러 메시지를 출력(1512)하고 종료하며, 정상 상태일 경우에는 내부 통신 포트의 상태를 대기 상태로 변경하고, 결과값을 받기 위한 응답 시간을 등록 한다(1502).
내부 통신 제어기(312)로부터 메시지 송신 시그널이 전달되면(1503), 통신 메시지를 수신(1504)하여 상기 수신된 메시지가 응답 시간 만료를 통보하는 메시지인지 확인(1505)하게 되는데, 만일 응답 시간 만료를 통보하는 메시지라면 내부 통신 포트에 응답 시간 만료 처리(1513)를 하고 종료하며, 정상적인 데이터 수신 메시지일 경우라면 통신 메시지 데이터에서 서비스 지정자(1506)와 서비스 인수(1507)를 얻어온다.
다음, 상기 얻어온 서비스 지정자의 상기 서버 컴포넌트 내 존재 여부를 검사(1508)하여, 존재하지 않는다면 오류값을 전송(1514)하고 메시지 수신 처리를 완료(1515)하고, 서버 컴포넌트내에 서비스 지정자가 존재하면 해당 서비스를 호출하고 서비스 처리후 반환되는 값을 플랫폼 기준 데이터형식으로 변환(1510)하여, 상기 서비스 결과를, 상기 서비스를 호출한 컴포넌트에게 전송(1511)하고 메시지 수신 처리를 완료한다(1515).
상술한 바와 같은 본 발명의 방법은, 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같은 본 발명은, 시스템 소프트웨어 개발에 있어 플랫폼과 네트워크 프로토콜 그리고 개발 언어에 대한 독립적인 환경을 제공하여 개발 시간을 단축시키며, 새로운 프로토콜과 플랫폼에 대한 응용 프로그램의 수용에 있어 유연성을 지원하여 응용 컴포넌트의 이식성과 호환성을 높이는 효과가 있다.
또한, 범용 컴퓨터 환경에 비해 상대적으로 취약한 개발 환경을 갖고 있는 임베디드 시스템(Embedded System) 상에서 개발되고 수행되어야 할 소프트웨어를 범용 컴퓨터 상에서 보다 쉽게 시뮬레이션을 할 수 있도록 미들웨어 요소들을 구성할 수 있게 함으로써, 범용 컴퓨터 상에서 지원되는 많은 개발 도구의 임베디드 시스템 상에서의 사용을 가능하도록 하며, 임베디드 시스템(Embedded System)이 갖춰 있지 않은 공간 또는 환경에서도 소프트웨어의 개발을 가능하게 하는 효과가 있다.
아울러 여러 대의 장비가 연동되어야 하는 시스템의 개발에 있어서 단 한 대의 장비만으로 시스템의 개발이 가능하도록 하는 효과가 있다.
특히, 프로토콜 드라이버를 사용하여 각종 프로토콜들이 서로 연동됨으로써, 사용자가 소프트웨어 개발을 완료한 뒤에도 프로토콜에 관계없이 소프트웨어들을 자유롭게 조립하거나 새로운 프로토콜을 응용 프로그램과 관계없이 자유롭게 확장할 수 있도록 하는 효과가 있다.
또한, 명명 서비스(Naming Service)는, 시스템을 구성하는 소프트웨어 요소들의 위치와 상태 등을 정적·동적으로 관리해 줌으로써 새로운 개발이나 코드의 수정 없이도 재구성을 효과적으로 반영할 수 있도록 하는 효과가 있다.
그러므로 본 발명에 따른 멀티 프로토콜 연동 서비스가 실현되면, 응용 컴포넌트는 여러개의 프로토콜 및 인터페이스를 이용한 통신이 가능하게 되어, 결국, 통신 가능한 영역이 확장되는 것과 마찬가지의 효과를 얻게 된다.

Claims (16)

  1. 클라이언트/서버 구조를 갖는 분산시스템에 있어서,
    서버 컴포넌트를 등록/관리하기 위한 명명(naming) 서비스 기능 수단;
    응용 프로그램 인터페이스(Application Program Interface : API)의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능 수단;
    동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어 수단; 및
    원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 드라이버 기능 수단;
    을 포함하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  2. 제 1 항에 있어서,
    사용자에 의한 인터페이스 정의 언어(Interface Definition Language : IDL)의 작성과 편집을 위한 IDL 편집 수단; 및
    상기 IDL 편집 수단에 의해 작성된 IDL을 컴파일 하기 위한 IDL 컴파일 수단;
    을 더 포함하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 명명 서비스 기능수단은,
    적어도 하나의 하위 명명 서비스 기능부; 및
    상기 하위 명명 서비스 기능부가 포함된 전체 시스템을 관리하기 위한 최상위 명명 서비스 기능부;를 포함하되,
    상기 다수의 명명 서비스 기능부는 논리적/계층적으로 구성된 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  4. 제 3 항에 있어서,
    상기 명명 서비스 기능 수단은,
    상기 런타임 라이브러리 기능 수단, 내부 통신 제어 수단 및 프로토콜 드라이버 기능 수단으로 부터 요청이 있을 경우, 상기 요청에 대응되는 컴포넌트에 대한 정보를 제공하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  5. 제 4 항에 있어서,
    상기 다수의 명명 서비스 기능부는,
    상호간에 상태 정보를 포함하는 요청 정보의 전달을 통해 명명 테이블을 구성하고, 라우팅 요청에 의해 라우팅 정보를 제공하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 미들웨어 런타임 라이브러리 기능 수단은,
    서버 등록부, 기본 쓰레드 생성부 및 메시지 큐 생성부를 포함하는 서버용 미들웨어 서비스 기능부;
    원격 파일 접근부, 공유 메모리 접근부 및 원격 프로그램 수행부를 포함하는 클라이언트용 미들웨어 서비스 기능부; 및
    핸들러(handler) 생성부, 클러스터링 기능부, 스케줄링 기능부 및 공유 메모리 관리부를 포함하는 공통 서비스 기능부;를 포함하여 구성되는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  7. 제 1 항 또는 제 2 항에 있어서,
    상기 내부 통신 제어 수단은,
    상기 각각의 컴포넌트들 사이의 내부 통신이 가능하도록 내부 통신 포트 및 프로토콜을 구현, 할당 및 반납하기 위한 내부 통신 포트 및 프로토콜 제어부;
    지정된 서비스 제한 시간 내에 메시지 수신이 이루어지지 않을 경우 해당 컴포넌트에 이를 통보하기 위한 제한 시간 처리부; 및
    요청 메시지가 수신되었을 경우 내부 통신 포트를 사용하는 해당 컴포넌트의 상태를 파악하여 통보하기 위한 컴포넌트 상태 체킹부;를 포함하여 구성되는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 프로토콜 드라이버 기능 수단은,
    상기 내부 통신 제어 수단과 연동되어, 원격의 미들웨어 컴포넌트와의 통신에 있어 상호 프로토콜을 비교/대조하고 일치하지 않을 경우 상기 프로토콜의 변환을 통해 프로토콜을 일치시키도록 하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  9. 제 8 항에 있어서,
    상기 프로토콜 드라이버 기능 수단은,
    원격의 외부 컴포넌트와의 통신에 필요한 정보는 상기 명명 서비스 기능 수단으로부터 제공받으며, 상기 미들웨어 런타임 라이브러리 기능 수단으로부터 제공되는 API를 이용해 외부 호스트의 프로토콜 드라이버 기능 수단과 통신하는 것을특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치.
  10. 클라이언트/서버 구조를 갖는 분산시스템에 적용되는 멀티 프로토콜 연동 방법에 있어서,
    서버 컴포넌트를 등록/관리하기 위한 명명 서비스 과정;
    API 의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능 수행 과정;
    동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어 과정; 및
    원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 연동/변환 과정;
    을 포함하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 방법.
  11. 제 10 항에 있어서,
    상기 런타임 라이브러리 기능 수행 과정 중 클라이언트용 미들웨어 서비스를 수행하는 과정은,
    송신할 데이터를 변환하는 단계(701);
    명명 서버로부터 메시지를 송신할 응용 서버의 주소를 제공받는 단계(703);
    메시지를 송수신할 컴포넌트들의 내부 통신 포트 정상 여부를 체크하는 단계(704);
    상기 송신할 데이터를 공유 메시지 버퍼에 넣는 단계(706);
    내부 통신 제어기로 메시지 송신 시그널을 송신하는 단계(708);및
    모든 송신 메시지를 처리한 후 응답을 처리하는 단계(710);를 포함하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 방법.
  12. 제 10 항에 있어서,
    상기 런타임 라이브러리 기능 수행 과정 중 서버용 미들웨어 서비스를 수행하는 과정은,
    메시지를 수신할 내부 통신 포트가 정상 상태인지 확인하는 단계(1501);
    내부 통신 포트를 대기 상태로 변경하고, 응답 만료 시간을 등록하는 단계(1502);
    내부 통신 제어기로부터 메시지 송신 시그널을 수신하는 단계(1503);
    통신 메시지를 수신하여 해당 서비스를 호출하는 단계(1509);
    응답 시간 만료 시그널이 입력될 경우 응답 시간 만료 처리를 하는 단계(1513); 및
    서비스 처리 후 서비스 결과를 전송하는 단계(1511);를 포함하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 방법.
  13. 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 내부 통신 제어 과정은,
    통신 메시지 시그널을 수신하는 단계(901);
    메시지 큐를 검색하면서 메시지가 속해 있는 내부 통신 포트의 정보를 알아내는 단계(902);
    내부 통신 제어기의 내부 버퍼에, 검색 중인 내부 통신 포트의 메시지가 있을 경우 메시지의 순서를 맞추는 단계(904);
    검색 중인 내부 통신 포트를 사용하고 있는 컴포넌트의 응답 시간이 만료 되었을 경우에 응답 만료 처리를 하는 단계(1005);
    검색 중인 내부 통신 포트를 사용하고 있는 컴포넌트로 메시지를 송신하는 단계(905); 및
    검색 중인 내부 통신 포트를 사용하는 컴포넌트가 실행 종료 되었을 경우, 그 컴포넌트가 사용하던 공유 자원과 내부 통신 포트를 반납하는 단계(907);를 포함하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 방법.
  14. 제 13 항에 있어서,
    클라이언트용 미들웨어 서비스를 수행하기 위한 상기 프로토콜 연동/변환 과정은,
    외부 통신 요구 처리 쓰레드를 생성하는 단계(1201);
    내부 통신 초기화 단계(1202);
    내부 통신 메시지 수신 단계(1203);
    명명 서버로부터, 메시지가 전달될 다음 호스트의 물리적 주소 정보를 얻는 단계(1205);
    다음 명명 서버 지정자와 목적지 명명 서버 지정자가 같을 경우 메시지 헤더에 존재하는 게이트웨이의 정보를 설정하고(1207), 다음 명명 서버 지정자와 목적지 명명 서버 지정자가 같지 않을 경우 메시지 헤더에 존재하는 게이트웨이의 정보를 해제 하는 단계(1208); 및
    메시지를 호스트 외부로 송신하는 단계(1209);를 포함하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 방법.
  15. 제 13 항에 있어서,
    서버용 미들웨어 서비스를 수행하기 위한 상기 프로토콜 연동/변환 과정은,
    외부 통신 초기화 단계(1301);
    외부 통신 메시지 수신 단계(1302);
    수신된 외부 통신 메시지의 목적지가 내 호스트인지 검사하는 단계(1303);
    수신된 외부 통신 메시지의 목적지가 내 호스트일 경우 내부 컴포넌트로 메시지를 전송 하는 단계(1307);
    수신된 외부 통신 메시지의 다음 목적지의 물리적 주소의 정보를 명명 서버로부터 제공받는 단계(1305);
    외부로 메시지를 보낼 경우, 다음 목적지 명명 서버 지정자와 목적지 명명 서버 지정자가 같으면 메시지 헤더에 존재하는 게이트웨이의 정보를 설정 하고(1307), 다음 목적지 명명 서버 지정자와 목적지 명명 서버 지정자가 같지 않으면 메시지 헤더에 존재하는 게이트웨이의 정보를 해제 하는 단계 (1309); 및
    호스트 외부로 메시지를 송신하는 단계(1310);를 포함하는 것을 특징으로 하는 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 방법.
  16. 프로세서를 구비한 실시간 미들웨어 구성 시스템에,
    서버 컴포넌트를 등록/관리하기 위한 명명 서비스 기능;
    API 의 동작 실현을 통해 서버용 미들웨어 서비스와 클라이언트용 미들웨어 서비스를 수행하기 위한 미들웨어 런타임 라이브러리 기능;
    동일 호스트 내의 컴포넌트들 사이에 통신 매커니즘을 제공하기 위한 내부 통신 제어 기능; 및
    원격의 미들웨어 컴포넌트 사이에 프로토콜을 연동/변환시켜 통신 가능하도록 하기 위한 프로토콜 연동/변환 기능;
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020030039361A 2002-06-18 2003-06-18 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및그 방법 KR20040002624A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20020034123 2002-06-18
KR1020020034123 2002-06-18

Publications (1)

Publication Number Publication Date
KR20040002624A true KR20040002624A (ko) 2004-01-07

Family

ID=37314079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030039361A KR20040002624A (ko) 2002-06-18 2003-06-18 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및그 방법

Country Status (1)

Country Link
KR (1) KR20040002624A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100754870B1 (ko) * 2005-12-08 2007-09-04 한국전자통신연구원 에스시에이 어댑터 및 이의 운용방법
WO2009078553A1 (en) * 2007-12-18 2009-06-25 Electronics And Telecommunications Research Institute Port setting method of application system
KR101157485B1 (ko) * 2010-12-09 2012-06-20 국방과학연구소 Mil-std-1553b를 지원하는 통합 미들웨어 시스템, 장치 및 방법
KR101496333B1 (ko) * 2008-12-09 2015-02-26 삼성전자주식회사 소프트웨어 버스를 이용한 컴포넌트 연결 시스템 및 방법
KR20160112845A (ko) * 2015-03-20 2016-09-28 주식회사 뉴론웍스 표준/비표준 응용 프로토콜간 데이터 교환 방법과 사용자 정의 조건에 따른 동적제어 가능한 미들웨어 장치
CN114827307A (zh) * 2022-04-14 2022-07-29 中国建设银行股份有限公司 基于多数据系统的数据共享方法、系统及服务器

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100754870B1 (ko) * 2005-12-08 2007-09-04 한국전자통신연구원 에스시에이 어댑터 및 이의 운용방법
WO2009078553A1 (en) * 2007-12-18 2009-06-25 Electronics And Telecommunications Research Institute Port setting method of application system
KR100927232B1 (ko) * 2007-12-18 2009-11-16 한국전자통신연구원 어플리케이션 시스템의 포트 설정방법
US8219717B2 (en) 2007-12-18 2012-07-10 Electronics And Telecommunications Research Institute Port setting method of application system
KR101496333B1 (ko) * 2008-12-09 2015-02-26 삼성전자주식회사 소프트웨어 버스를 이용한 컴포넌트 연결 시스템 및 방법
KR101157485B1 (ko) * 2010-12-09 2012-06-20 국방과학연구소 Mil-std-1553b를 지원하는 통합 미들웨어 시스템, 장치 및 방법
KR20160112845A (ko) * 2015-03-20 2016-09-28 주식회사 뉴론웍스 표준/비표준 응용 프로토콜간 데이터 교환 방법과 사용자 정의 조건에 따른 동적제어 가능한 미들웨어 장치
CN114827307A (zh) * 2022-04-14 2022-07-29 中国建设银行股份有限公司 基于多数据系统的数据共享方法、系统及服务器
CN114827307B (zh) * 2022-04-14 2024-04-19 中国建设银行股份有限公司 基于多数据系统的数据共享方法、系统及服务器

Similar Documents

Publication Publication Date Title
EP2622484B1 (en) Debugger launch and attach on compute clusters
US7051098B2 (en) System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
Arulanthu et al. The design and performance of a scalable ORB architecture for CORBA asynchronous messaging
US6111894A (en) Hardware interface between a switch adapter and a communications subsystem in a data processing system
JP5956565B2 (ja) メッセージングアプリケーションプログラムインターフェイスを提供するためのシステムおよび方法
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
US6633923B1 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US8010967B2 (en) Method and system for dynamic configuration of interceptors in a client-server environment
EP1117033A1 (en) Dynamic dispatch function
JP2000020490A (ja) 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
JP2008306714A (ja) ネットワークアプリケーションにおける通信方法、通信装置及びそのためのプログラム
KR100370548B1 (ko) 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법
Lacour et al. Deploying CORBA components on a Computational Grid: General principles and early experiments using the Globus Toolkit
JP3361663B2 (ja) 通信管理方法
Snelling et al. A unicore globus interoperability layer
KR20040002624A (ko) 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및그 방법
US20170286261A1 (en) System and method for providing runtime tracing for a web-based client accessing a transactional middleware platform using an extension interface
Schmidt et al. Applying patterns to develop a pluggable protocols framework for orb middleware
Campos et al. The chance for Ada to support distribution and real-time in embedded systems
EP1122644A1 (en) A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment
IM management, device management, virtual file system management and other functions. Configurable components are components that provide specific functional requirements for different airborne software, mainly including C
US7475031B1 (en) Communication interface for providing accounting support for print services
Margaris Local Area Multicomputer (LAM-MPI)
Cooper et al. The design and evaluation of mpi-style web services

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee