KR102019108B1 - 프로세스간 통신 방법 - Google Patents

프로세스간 통신 방법 Download PDF

Info

Publication number
KR102019108B1
KR102019108B1 KR1020140016105A KR20140016105A KR102019108B1 KR 102019108 B1 KR102019108 B1 KR 102019108B1 KR 1020140016105 A KR1020140016105 A KR 1020140016105A KR 20140016105 A KR20140016105 A KR 20140016105A KR 102019108 B1 KR102019108 B1 KR 102019108B1
Authority
KR
South Korea
Prior art keywords
message
processes
communication
information
communication channel
Prior art date
Application number
KR1020140016105A
Other languages
English (en)
Other versions
KR20150095052A (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 KR1020140016105A priority Critical patent/KR102019108B1/ko
Publication of KR20150095052A publication Critical patent/KR20150095052A/ko
Application granted granted Critical
Publication of KR102019108B1 publication Critical patent/KR102019108B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

메시지 직접 전달 기능을 포함하는 프로세스간 통신방법이 개시된다. 메시지 직접 전달 기능을 포함하는 프로세스간 통신방법은 복수의 프로세스들과 통신채널을 설정한 IPC 관리자가 상기 설정한 모든 통신채널 정보를 상기 프로세스들 각각에게 제공하고, 상기 IPC 관리자가 상기 프로세스들 각각으로부터 각 프로세스가 통신에 필요한 메시지 식별 정보를 획득한 후, 상기 IPC 관리자 상기 프로세스들 각각에게 상기 획득한 모든 메시지 식별 정보를 제공한다. 따라서, 프로세스간에도 IPC 관리자를 거치지 않고 메시지를 직접 전송할 수 있다.

Description

프로세스간 통신 방법{METHOD FOR INTER-PROCESS COMMUNICATION}
본 발명은 프로세스간 통신방법에 관한 것으로, 더욱 상세하게는 변동성이 심한 환경에서도 안정적으로 동작하고 확장성이 뛰어난 메시지 직접 전달 기능을 포함하는 프로세스간 통신방법에 관한 것이다.
일반적으로 프로세스간 통신(Inter Process Communication, IPC)이란 소프트웨어(Software)의 작업 단위인 프로세스간의 통신을 일컫는 말로서, 하나 또는 다수의 운영체계에서 동시에 수행될 개별 프로세스 사이에 서로 메시지(또는 데이터)를 주고 받는 행위 또는 그에 대한 방법이나 경로를 의미한다.
컴퓨터를 사용하기 시작한 초창기 시절에는 대부분의 경우 프로세스 단위에서 데이터가 가공되고, 가공이 완료된 데이터를 파일의 형태로 저장하여 다른 프로세스에게 전달하였다. 오늘날 프로그램 기능이 갈수록 복잡화, 대형화 됨에 따라 세부 기능들을 별도의 프로세스 또는 스레드(Thread)로 구현하여, 단일 사용자의 요구를 처리하기 위해 여러 프로세스를 수행시키고, 이를 위해 프로세스 간의 많은 연결 및 통신을 고려하여 프로그램을 설계 및 구현하는 것이 중요시 되고 있다.
시스템에서 수행되는 각종 프로세스간 통신(Inter Process Communication)방법은 크게 공유메모리(Shared memory), 시그널(Signal), 파이프(Pipe), 소켓(Soket) 등이 있다. 공유메모리, 시그널 및 파이프가 동일한 시스템 내에 있는 프로세스간의 통신을 위한 방법이라면 소켓을 이용한 통신 방법은 속도는 빠르지 않지만 동일한 시스템 내에 있는 프로세스간뿐만 아니라 서로 다른 시스템에 있는 프로세스간에도 통신이 가능하게 하는 프로세스간 통신방법이다. 소켓은 가장 많은 프로세스간 통신에 사용되는 방법으로, 다른 IPC 방법들 보다 높은 수준에서 추상화가 되어있고 보다 범용적으로 사용할 수 있게 구현되어 있기 때문에, 좀더 직관적으로 IPC를 구현할 수 있고, 매우 범용적으로 사용할 수 있다.
소켓은 프로세스에 대한 IP(Internet Protocol)주소와 포트번호 등의 정보를 담고 있으며 상대 프로세스의 소켓과 연결되어 데이터를 주고 받는다. 따라서 소켓이 생성되고 원하는 정보를 소켓에 연결했으면 그 다음부터는 파일로 데이터를 읽거나 쓰듯이 소켓을 통해서 메시지를 읽거나 쓸 수 있다. 소켓은 커널의 도움이나 파일시스템을 사용하여 메시지를 주고받는 것이 아니라 네트워크 장치를 통해 메시지를 주고받는다. 대부분의 소켓을 이용한 통신은 서로 다른 시스템에 존재하는 프로세스간의 통신을 위해서 선택된다. 이러한 통신 방법은 시스템에 새로운 프로세스가 추가되거나 동작중인 프로세스가 제거되는 경우에는 시스템에 남아서 동작중인 프로세스들을 재시동하는 절차가 필요하다는 문제점이 있고, 이러한 문제점을 해결하기 위하여 프로세스가 통신을 관리하는 IPC 관리자를 통해서 프로세스간 통신을 관리하는 방법을 사용하고 있다.
상기 메시지 관리자를 통해서 프로세스간 통신을 관리하는 방법은 프로세스가 송신한 메시지가 메시지 관리자를 거처서 목적지 프로세스에 전달되기 때문에 시스템 자원을 낭비하는 문제가 있다.
상기한 바와 같은 단점을 극복하기 위한 본 발명의 목적은 변동성이 심한 환경에서도 안정적으로 동작하고 확장성이 뛰어난 메시지 직접 전달 기능을 포함하는 프로세스간 통신방법을 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 프로세스간 통신 방법은 복수의 프로세스들과 통신채널을 설정한 IPC 관리자가 상기 설정한 모든 통신채널을 종합하여 상기 프로세스들에게 제공하는 단계, IPC 관리자가 상기 프로세스들로부터 통신에 필요한 메시지 식별 정보를 획득하는 단계 및 IPC 관리자 상기 프로세스들에게 상기 획득한 메시지 식별 정보를 제공하여 상기 프로세스들에게 직접통신 기능을 제공하는 단계를 포함한다.
상술한 바와 같은 메시지 직접 전달 기능을 포함하는 프로세스간 통신방법에 따르면, 프로세스간 통신 과정에서 메시지 ID를 이용함으로써 동일한 시스템 및 다수의 시스템들에 포함된 프로세스간에도 IPC 관리자를 거치지 않고 메시지를 직접 전송하여 시스템의 자원 효율을 높일 수 있다.
도 1은 프로세스간 통신 방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도이다.
도 3은 도 2에 도시한 IPC 관리자가 생성하는 정보의 일 예를 나타낸 표이다.
도 4는 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도이다.
도 7은 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 관계도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명에서 메시지 ID(Identification)란 프로세스간 통신에서 각 프로세스가 보내는 메시지에 부여되는 고유한 식별자를 말하는 것으로, 각 메시지가 식별력을 가지도록 하는 문자의 조합으로 구성된다. 상기 문자의 조합은 메시지가 가지는 성질을 포함하여 구성될 수 있다. 여러 개의 시스템이 연결된 환경에서는 시스템 식별자 및 프로세스 식별자를 메시지 ID에 포함하여 구성하는 방법으로 식별력을 가질 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이하, 도 1 내지 도 7의 실시예는 적어도 하나의 저장수단과 적어도 하나의 프로세서로 구성된 시스템에서 하나의 프로세서(미도시)가 복수의 프로세스를 실행하는 시스템을 가정한다.
도 1은 프로세스간 통신 방법을 나타내는 순서도로서, 프로세스간 통신을 제어하는 IPC 관리자가 메시지를 송수신하려는 프로세스와 메시지 교환을 위해 통신 채널을 설정하고 메시지 ID를 등록하는 과정을 예시한 것이다.
도 1의 시스템은 설명의 편의를 위해 메시지를 송수신하려는 제1 프로세스(110), 제2 프로세스(120) 및 제3 프로세스(130)와 상기 프로세스들에게 통신기능을 제공하는 IPC 관리자(100)가 존재한다고 가정한다. 상기 IPC 관리자는 시스템이 처음 작동될 때부터 생성되어 존재하거나 시스템에 존재하는 프로세스 중 하나 이상의 프로세스가 통신기능의 제공을 요구하는 신호를 시스템에 보낼 경우 생성될 수 있다.
도 1을 참조하면, 상기 프로세스들 간의 통신을 위해서 IPC 관리자(100)는 프로세스들(110, 120, 130)과 통신채널을 설정한다(S100). 상기 통신채널의 설정은 IPC 관리자가 시스템상에 통신기능을 필요로 하는 프로세스가 있는지 검색하여 실행되거나, 상기 프로세서들이 IPC 관리자에게 요청하여 실행될 수 있다. 이 때, 상기 프로세스들과 IPC 관리자 간의 통신채널 정보는 시스템에 미리 저장된 파일에 포함되어 있거나 통신 시스템 운영자에 의해 입력될 수 있다. IPC 관리자는 과정 S100을 통해 시스템에 존재하는 프로세스 중 상기 통신채널을 설정한 프로세스들이 통신이 가능한 상태에 있다는 것을 파악할 수 있다. IPC 관리자는 주기적으로 통신채널을 설정한 프로세스들이 통신이 가능한 상태인지 확인하여 시스템에 통신 가능한 프로세스가 추가되거나 제거되는 경우에도 안정적으로 프로세스간의 통신기능을 제공할 수 있다.
상기 통신채널 설정이 완료되면, IPC 관리자는 상기 통신채널을 설정한 프로세스(110, 120, 130)에게 프로세스가 수신하려는 메시지 ID(이하, '수신 메시지 ID'로 지칭함)를 등록 받는다(S120). 상기 메시지 ID는 각 프로세스마다 복수일 수 있다. 예를 들면, 제1 프로세스는 세 개의 수신하려는 메시지 ID를 가질 수 있다.
상기 수신 메시지 식별자의 등록이 완료되면, IPC 관리자는 프로세스들로부터 메시지를 수신하는(S140) 경우, 상기 수신된 메시지의 식별자를 수신 메시지 식별자로 등록한 프로세스(이하, '목적지 프로세스'로 지칭함)에게 전달할 수 있다(S150). 도 1에 도시한 바와 같이, 제3 프로세스가 수신하려는 메시지로 제1 메시지를 등록한 경우, 제1 프로세스가 제1 메시지 ID를 IPC 관리자에게 송신하면, IPC 관리자는 상기 송신한 제1 메시지 ID를 제3 프로세스에게 전달한다. IPC 관리자는 상기 메시지의 목적지 프로세스가 복수인 경우, 모든 목적지 프로세스에 상기 수신한 메시지를 전달할 수 있다(S150).
상기 메시지 전달 과정은 IPC 관리자를 통해서만 가능하기 때문에 각 프로세스는 프로세스간 통신을 위해서 별도의 절차가 필요하지 않은 장점이 있지만 IPC 관리자가 메시지를 받아서 다시 목적지 프로세스로 전송함으로써 메시지 교환 횟수가 증가하고 시스템 자원을 낭비하게 된다.
도 2는 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도로서, 메시지가 IPC 관리자를 통하지 않고 메시지를 송신한 프로세스(이하, '출발지 프로세스'라 지칭함)에서 목적지 프로세스로 전달되는 방법을 나타낸다.
도 2의 시스템은 설명의 편의를 위해서 도 1의 시스템과 같다고 가정하며, 도 2의 과정 S200은 도 1의 과정 S100과 동일하므로 중복을 피하기 위해 구체적 설명을 생략한다.
도 2를 참조하면, IPC 관리자(100)와 제1 프로세스(110), 제2 프로세스(120), 제3 프로세스(130) 간의 통신채널의 설정(S200)이 완료되면, IPC 관리자는 상기 통신채널을 설정한 프로세스들에게 IPC 관리자가 프로세스와 설정한 모든 통신채널 을 종합한 정보(이하, '통신채널 설정 정보'라 지칭함)를 제공한다(S210). 상기 정보를 제공받은 프로세스들은 시스템 내의 모든 통신 가능한 프로세스에 대한 채널정보를 가지고 있을 수 있다. 통신채널 설정 정보의 제공이 완료되면, IPC 관리자는 각 프로세스로부터 통신에 필요한 메시지 ID를 등록 받는다(S220). 여기서 상기 통신에 필요한 메시지 ID는 각 프로세스의 수신 메시지 ID를 필수적으로 포함하며 송신하려는 메시지 ID(이하, '송신 메시지 ID'로 지칭함))를 추가로 포함할 수 있다. 또한, 상기 통신에 필요한 메시지 ID는 각 프로세스마다 복수일 수 있다. 예를 들면, 하나의 통신 프로세스가 세 개의 수신 메시지 ID와 두 개의 송신 메시지 ID를 가질 수 있다.
여기서, 상기 각 프로세스로부터 통신에 필요한 메시지 ID를 등록 받는 과정(S220)은 상기 IPC 관리자가 통신채널을 설정한 모든 프로세스의 통신채널 정보를 제공(S210)하는 과정과 순서에 상관 없이 실행될 수 있다. 예를 들면, 과정 S220 이후에 과정 S210이 실행되거나 과정 S210과 과정 S220이 동시에 실행될 수 있다.
상기 메시지 ID의 등록이(S220) 완료되면, IPC 관리자는 상기 등록 메시지 ID를 종합하여 프로세스들이 송신하려는 메시지의 목적지 프로세스를 종합한 목록(이하, '메시지 전송 정보'로 지칭함)을 각 프로세스에게 제공할 수 있다(S230).
이때, 상기 과정 S220에서 IPC 관리자가 프로세스들로부터 수신 메시지 ID만을 등록 받았다면, IPC 관리자는 프로세스들에게 상기 등록 받은 ID를 종합한 수신 목록(Subscribe Table)을 제공할 수 있다. 상기 목록을 제공받은 프로세스는 자신이 송신하려는 메시지가 있을 경우 상기 메시지의 ID를 상기 목록에서 검색하여 목적지 프로세스를 찾을 수 있다. 상기 과정 S220에서 IPC 관리자가 프로세스들로부터 수신 메시지 ID 및 송신 메시지 ID를 등록 받았다면, 상기 등록 받은 ID를 기초로 하여 송신 메시지 ID별로 목적지 프로세스를 종합한 목적지 프로세스 목록을 생성하고, 생성된 목록 중 각 프로세스가 송신하는 메시지의 목적지 프로세스에 관한 정보만을 각 프로세스에게 제공할 수 있다.
과정 S210 내지 과정 S230을 통해 IPC 관리자로부터 메시지 전송 정보를 제공받은 프로세스는 제공받은 정보를 이용하여 자신이 송신하려는 메시지의 목적지 프로세스가 어느 것인지 알 수 있고, 목적지 프로세스의 통신채널 정보도 제공 받아 가지고 있으므로 IPC 관리자를 통하지 않고 직접 목적지 프로세스에 메시지를 전송할 수 있다(S240).
도 3은 도 2에 도시한 IPC 관리자가 생성하는 정보의 일 예를 표로 나타낸 것으로, IPC 관리자를 통해 메시지 ID기반 프로세스간 통신을 하는 과정에서 생성되는 정보를 표로 나타낸 것이다.
도 3의 시스템은 설명의 편의를 위해서 도 1의 시스템과 같다고 가정한다.
도 3을 참조하면 먼저 IPC 관리자(100)는 프로세스들(110, 120, 130)과 통신채널을 설정하고, 상기 설정한 통신채널을 종합하여 각 프로세스에게 통신채널 설정 정보를 제공한다. 상기 통신채널 설정 정보의 제공이 완료되면, IPC 관리자는 프로세스들로부터 수신 메시지 ID 및 송신 메시지 ID를 등록 받는다. 여기서, IPC 관리자는 상기 등록 받은 메시지 ID중 각 프로세스가 수신 메시지 ID를 종합하여 수신목록을 생성하고, 송신 메시지 ID를 종합하여 송신목록을 생성한다. 이후, IPC 관리자는 상기 생성한 수신목록과 송신목록을 종합하여 목적지 프로세스 목록을 생성한다.
도 3에 예시한 바와 같이, 수신 메시지 ID로 제1 프로세스가 MSG_ID_1, MSG_ID_2를, 제2 프로세스가 MSG_ID_1, MSG_ID_3을, 제3 프로세스가 MSG_ID_4, MSG_ID_5를 등록한 경우, 수신목록은 310과 같이 생성될 수 있다. 송신 메시지 ID로 제1 프로세스가 MSG_ID_3을, 제2 프로세스가 MSG_ID_4, MSG_ID_5를, 제3 프로세스가 MSG_ID_1, MSG_ID_3을 등록한 경우, 송신목록은 320과 같이 생성될 수 있다. 상기 310과 320을 종합한 목적지 프로세스 목록은 300과 같은 수 있다.
상기 생성된 목적지 프로세스 목록은 IPC 관리자가 통신 기능을 제공하는 모든 프로세스의 송신 메시지 ID 별 목적지 프로세스에 대한 정보를 포함하고 있다. IPC 관리자는 상기 생성한 목적지 프로세스 목록의 중 각 프로세스가 필요한 정보만을 추출하여 프로세스에게 제공한다. 도 3에 예시한 바와 같이, 제1 프로세스에게는 제1 목적지 프로세스 목록(301)을, 제2 프로세스에게는 제2 목적지 프로세스 목록(302)를, 제3 프로세스에게는 제3 목적지 프로세스 목록(303)을 제공할 수 있다.
상기 목록들(300, 301, 302, 303, 310, 320)은 시스템의 저장수단에 저장되어 프로세스간 통신에 이용될 수 있다.
도 4는 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도로서, IPC 관리자를 통해 메시지 ID기반 프로세스간 통신을 하는 과정에서 시스템에 프로세스가 추가되는 경우 프로세스간에 통신하는 과정을 나타낸다.
도 4는 설명의 편의를 위해서 도 1의 시스템과 같다고 가정하며, 과정 S400 내지 과정 S430(이하, '초기화'라 지칭함)은 도 2의 과정 S200 내지 과정 S230과 동일하므로 중복을 피하기 위해 구체적 설명을 생략한다.
도 4를 참조하면, IPC 관리자는 기존에 통신하고 있는 프로세스들(110, 120, 130)에 새롭게 추가된 제4 프로세스(140)와 통신하기 위하여 초기화 과정을 수행한다. 먼저 IPC 관리자는 제4 프로세스와 통신채널을 설정한다(S400). 상기 통신채널 설정이 완료되면 IPC 관리자는 기존 통신채널 정보에 제4 프로세스가 추가된 새로운 통신채널 정보를 생성하고, 생성한 정보를 프로세스들에게 제공한다(S410). 상기 프로세스들은 새롭게 제공 받은 통신채널 정보를 통해 제4 프로세스가 메시지를 송수신 할 수 있는 상태에 있다는 것을 알 수 있다.
상기 정보의 전달이 완료되면 IPC 관리자는 제4 프로세스로부터 통신하려는 메시지 ID를 등록 받는다(S420). 메시지 ID의 등록이 완료되면 IPC 관리자는 상기 과정 420을 통해 등록 받은 정보를 이용해 메시지 전송 정보를 갱신하고, 갱신한 정보를 시스템 내의 프로세스들(110, 120, 130, 140)에게 전달한다(S430).
상기 초기화 과정을 통해 IPC 관리자가 통신기능을 제공하는 프로세스들(110, 120, 130, 140)은 시스템 내에 새롭게 추가된 제4 프로세스에게 송신할 수 있는 메시지 ID 및 메시지를 송신하기 위한 통신채널 정보를 가지고 있을 수 있으며, 상기 정보를 이용하여 재시동 없이도 IPC 관리자를 통하지 않고 제4 프로세스와 직접 통신할 수 있다(S440).
도 5는 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도로서, IPC 관리자를 통해 메시지 ID 기반 프로세스간 통신을 하는 과정에서 시스템에서 통신하고 있던 프로세스가 제거되는 경우 프로세스간에 통신하는 과정을 나타낸다.
도 5의 시스템은 설명의 편의를 위해서 도 1의 시스템에 도 3의 과정을 통해 제4 프로세스가 추가된 시스템과 같다고 가정하며, 과정 S510 내지 과정 S530은 도 2의 과정 S210 내지 230과 동일하므로 중복을 피하기 위해 구체적 설명을 생략한다.
도 5를 참조하면, 먼저 IPC 관리자는 주기적으로 자신이 통신기능을 제공하고 있는 프로세스들의 동작상태를 확인한다(S501). 이때, 기존에 동작중인 제4 프로세스가 종료되면 IPC 관리자는 기존의 통신채널 설정 정보에서 제4 프로세스를 제거하고(S505), 제4 프로세스가 제거된 새로운 통신채널 설정 정보를 프로세스들(110, 120, 130, 140)에게 제공한다(S510). 상기 프로세스들은 새롭게 제공받은 통신채널 설정 정보를 통해 시스템에서 프로세스가 제거된 경우에도 메시지를 송수신 할 수 있는 프로세스에 대한 정보를 파악하고 있을 수 있다. 상기 통신채널 설정 정보의 제공이 완료되면 IPC 관리자는 수신목록 및 송신목록에서 제4 프로세스가 송신하거나 수신하려는 메시지 ID를 삭제하고, 상기 두 목록을 종합하여 목적지 프로세스 목록을 생성하며, 상기 생성한 목록로부터 프로세스들에게 제공할 새로운 메시지 전송 정보를 갱신할 수 있다(S520). 이후, IPC 관리자는 갱신한 정보를 각 프로세스에게 제공한다(S530).
상기 초기화 과정을 통해 IPC 관리자가 통신기능을 제공하는 프로세스들은 시스템에서 제거된 제4 프로세스에 관한 정보가 제거된 통신채널 정보 및 메시지 전송 정보를 가지고 있을 수 있으며, 상기 정보를 이용하여 재시동 없이도 프로세스간 직접통신을 정상적으로 수행할 수 있다.
도 6은 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 순서도로서, 서로 다른 시스템에 존재하는 프로세스간의 통신하는 과정을 나타낸다.
도 6의 시스템은 설명의 편의를 위해서 시스템간 통신할 수 있는 제1 시스템 및 제2 시스템에서 각각 제1 IPC 관리자(101)와 제2 IPC 관리자(102)가 시스템 내의 프로세스들에게 통신 기능을 제공하고 있고, 상기 IPC 관리자들(101, 102)은 도 2 내지 도 4 에서 설명한 과정을 통해 각각 자신의 시스템에 포함된 프로세스들에게 통신기능을 제공할 수 있는 상태에 있다고 가정한다.
도 6을 참조하면, 먼저 통신을 하기 위해 제1 IPC 관리자와 제2 IPC 관리자는 통신채널을 설정한다(S600). 이때, 상기 두 IPC 관리자간의 통신채널 정보는 각 시스템에 미리 저장된 파일에 포함되어 있거나 통신시스템 운영자에 의해 입력될 수 있다. 통신채널의 설정이 완료되면, 제1 IPC 관리자는 자신이 통신기능을 제공하는 프로세스들의 모든 수신 메시지 ID를 종합한 제1 프로세스 수신목록(610)을 제2 IPC 관리자에게 제공하고, 제2 IPC 관리자는 자신이 통신기능을 제공하는 프로세스들의 모든 수신 메시지 ID를 종합한 제2 프로세스 수신목록(620)을 제1 IPC 관리자에게 제공한다(S610).
제1 IPC 관리자(101)와 제2 IPC 관리자(102)간에 과정 S600 및 과정 S610이 완료되면, 상기 두 시스템에 포함된 프로세스들은 각 시스템의 IPC 관리자를 통해 상대 시스템에 포함된 프로세스에게 메시지를 송수신 할 수 있다.
도 6에 예시한 바와 같이, 제1 IPC 관리자(101)가 제공한 제1 프로세스 수신목록(610)이 MSG_ID_1, MSG_ID_2, ? , MSG_ID_5를 포함하고 있고, 제2 IPC 관리자(102)가 제공한 제2 프로세스 수신목록(620)이 MSG_ID_A, MSG_ID_B, MSG_ID_C를 포함하는 경우, 상기 프로세스 수신목록의 교환을 통해 IPC 관리자들(101, 102)은 상대 시스템에 존재하는 모든 수신 메시지 ID에 대한 정보를 가지고 있을 수 있다. 이후, 제4 프로세스(140)가 MSG_ID_1를 송신하면(S620), 제2 IPC 관리자는 상기 제공받은 제1 프로세스 수신목록에서 MSG_ID_1를 검색할 수 있고(S630), 검색 후, MSG_ID_1을 제2 IPC 관리자에게 전달한다(S640). 제1 IPC 관리자는 제2 IPC 관리자로부터 전달받은 MSG_ID_1을 자신이 관리하고 있는 목적지 프로세스 목록에서 검색하고, MSG_ID_1를 수신 메시지 ID로 등록한 제1 프로세스 및 제2 프로세스에게 MSG_ID_1을 전달할 수 있다(S650).
여기서, 프로세스 또는 IPC 관리자는 는 상기 메시지 ID의 검색 과정에서 자신의 시스템에 검색의 우선순위를 둘 수 있다. 예를 들면, 제2 IPC 관리자가 제2 시스템에 우선순위를 두는 경우, 제2 시스템의 제2 프로세스 수신목록에서 MSG_ID_1을 검색하여 검색결과가 없는 경우에 제1 프로세스 송신수신목록에서 MSG_ID_1을 검색하고, 검색결과가 있는 경우에는 제1 프로세스 수신목록을 검색하지 않을 수 있다.
도 6의 메시지 전달 과정은 다수의 IPC 관리자가 존재하는 환경에서 각 IPC 관리자 사이에 많은 정보가 교환되어야 하기 때문에 시스템 자원을 낭비하게 되고, 기존 시스템들에 새로운 시스템 추가되거나 기존 시스템 중 일부가 제거되는 경우, 안정적으로 프로세스간 통신을 제공할 수 없다.
도 7은 본 발명의 일 실시예에 따른 프로세스간 통신 방법을 나타내는 관계도로서, 여러 시스템에 존재하는 프로세스간의 통신을 위해서 복수의 하위 IPC 관리자를 관리하는 상위 IPC 관리자를 이용하여 통신하는 과정을 나타낸다.
도 7의 시스템은 설명의 편의를 위해서 시스템간 통신할 수 있는 세 개의 시스템들에서 각각 초기화 과정을 통해 프로세스들에게 통신기능을 제공하는 하위 IPC 관리자인 제1 IPC 관리자(101), 제2 IPC 관리자(102) 및 제3 IPC 관리자(103)와 상기 세 개의 IPC 관리자들에게 통신 기능을 제공하는 상위 IPC 관리자(104)가 있다고 가정한다. 여기서, 상위 IPC 관리자는 하위 IPC 관리자와 독립된 시스템에 존재하거나 같은 시스템에 존재할 수 있다. 예를 들면, 하나의 시스템에 상위 IPC 관리자와 하위 IPC 관리자가 동시에 존재할 수 있고, 하위 IPC 관리자의 기능을 포함하는 하나의 상위 IPC 관리자가 존재하여 시스템 내에서는 하위 IPC 관리자의 기능을 수행하고 전체 네트워크 수준에서는 상위 IPC 관리자의 기능을 수행할 수 있다.
도 7의 과정은 도 2와 대응된다. 상위 IPC 관리자(104)가 하위 IPC 관리자들(101, 102, 103)에게 통신기능을 제공하는 과정은 IPC 관리자(100)가 프로세스들(110, 120, 130)에게 통신기능을 제공하는 과정 S200 내지 과정 S230과 대응된다. 따라서, 중복을 피하기 위해 대응되는 과정에 대하여 구체적 설명을 생략한다.
도 7을 참조하면, 먼저 상위 IPC 관리자(104)는 하위 IPC 관리자들(102, 102, 103)과 각각 통신채널을 설정하고, 상기 통신채널을 설정한 IPC 관리자들에게 통신채널을 설정한 모든 하위 IPC 관리자의 통신채널 설정 정보를 전달한다. 상기 전달 받은 정보를 통해서 각 하위 IPC 관리자는 자신과 통신이 가능한 모든 하위 IPC 관리자들에 대한 통신채널 정보를 가지고 있을 수 있다.
전달이 완료되면, 상위 IPC 관리자(104)는 하위 IPC 관리자들(101, 102, 103)에게 하위 IPC 관리자가 관리하고 있는 통신에 필요한 모든 메시지 ID에 관한 목록을 제공 받는다. 여기서 상기 통신에 필요한 모든 메시지 ID는 각 프로세스의 수신 메시지 ID를 필수적으로 포함하며 송신 메시지 ID를 추가로 포함할 수 있다. 상위 IPC 관리자는 상기 제공 받은 목록을 이용하여 하위 IPC 관리자들에게 각 메시지 ID별로 송신할 IPC 관리자의 정보를 제공한다. 상기 제공 받은 정보를 통해 하위 IPC 관리자(101, 102, 103)는, 자신이 통신기능을 제공하고 있는 프로세스가 송신하려는 메시지의 목적지 프로세스를 관리하고 있는 타 하위 IPC 관리자(이하, '목적지 IPC 관리자'라 지칭함)를 파악하고 있을 수 있다.
하위 IPC 관리자는 자신이 통신기능을 제공하고 있는 프로세스가 메시지를 송신하면, 상기 송신한 메시지의 목적지 IPC 관리자 및 상기 목적지 IPC 관리자의 통신채널을 파악하고 있으므로, 상위 IPC 관리자를 거치지 않고 목적지 IPC 관리자에게 직접 메시지를 송신할 수 있다. 또한, 하위 IPC 관리자는 자신이 통신기능을 제공하고 있는 프로세스가 메시지를 송신하면, 먼저 상위 IPC 관리에게 메시지를 전달하고, 상위 IPC 관리자가 다시 상기 메시지를 목적지 IPC 관리자에게 전달하게 하는 간접적인 방법으로 타 하위 IPC 관리자에게 메시지를 송신할 수도 있다.
상위 IPC 관리자(104)를 통해서 다수의 IPC 관리자가 존재하는 환경에서 기존의 시스템들에 새로운 시스템이 추가되거나 기존의 시스템들 중 일부가 제거되는 경우에도 안정적으로 프로세스간 통신을 제공할 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : IPC 관리자 101 : 제1 IPC 관리자
102 : 제2 IPC 관리자 103 : 제3 IPC 관리자
104 : 상위 IPC 관리자
110 : 제1 프로세스 120 : 제2 프로세스
130 : 제3 프로세스 140 : 제4 프로세스
300 : 목적지 프로세스 목록
301 : 제1 목적지 프로세스 목록
302 : 제2 목적지 프로세스 목록
303 : 제3 목적지 프로세스 목록
310 : 수신목록 320 : 송신목록
610 : 제1 프로세스 수신목록 620 : 제1 프로세스 수신목록

Claims (11)

  1. 복수의 프로세스(process)들이 포함된 제1 시스템(system)의 통신을 관리하는 제1 IPC(Inter Process Communication) 관리자에서 수행되는 프로세스를 위한 통신 제공 방법으로서,
    상기 복수의 프로세스들의 통신과 관련된 통신채널 정보를 기반으로 상기 복수의 프로세스들에 대한 통신채널을 설정하는 단계;
    상기 설정된 통신채널에 대한 정보인 제1 통신 채널 설정 정보를 상기 복수의 프로세스들로 전송하는 단계;
    상기 복수의 프로세스들로부터 각각의 프로세스가 다른 프로세스들로부터 수신하는 메시지의 ID(identification)인 수신 메시지 ID와 상기 각각의 프로세스가 상기 다른 프로세스들로 송신하는 메시지의 ID인 송신 메시지 ID에 관한 정보가 포함된 메시지를 수신하는 단계;
    상기 수신 메시지 ID와 상기 송신 메시지 ID에 대한 정보를 종합하여 상기 복수의 프로세스들에 대한 메시지의 전송과 관련된 제1 메시지 전송 정보를 생성하는 단계; 및
    상기 생성된 제1 메시지 전송 정보가 포함된 메시지를 상기 복수의 프로세스들로 전송하는 단계를 포함하는 프로세스를 위한 통신 제공 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 메시지 전송 정보는,
    상기 복수의 프로세스들 각각에서 송신하는 메시지의 ID 및 상기 복수의 프로세스들 각각에서 송신되는 메시지를 수신하는 프로세스에 대한 정보를 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  4. 청구항 1에 있어서,
    상기 프로세스를 위한 통신 제공 방법은,
    상기 복수의 프로세스들 중 상기 통신채널이 설정되지 않은 제1 프로세스에 대한 통신채널의 설정이 추가되는 경우, 상기 제1 프로세스의 통신채널에 대한 정보를 상기 복수의 프로세스들의 통신채널에 대한 정보에 추가하여 제2 통신 채널 설정 정보를 생성하는 단계; 및
    상기 제2 통신 채널 설정 정보가 포함된 메시지를 상기 복수의 프로세스들 및 상기 제1 프로세스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  5. 청구항 4에 있어서,
    상기 프로세스를 위한 통신 제공 방법은,
    상기 제1 프로세스의 통신채널의 설정이 추가되는 경우, 상기 복수의 프로세스들 및 상기 제1 프로세스에서 통신을 위해 사용되는 메시지 ID에 대한 정보가 포함된 메시지를 수신하는 단계;
    상기 복수의 프로세스들 및 상기 제1 프로세스에서 통신을 위해 사용되는 메시지 ID에 대한 정보를 기반으로 상기 복수의 프로세스들 및 상기 제1 프로세스에 대한 메시지의 전송과 관련된 제2 메시지 전송 정보를 생성하는 단계; 및
    상기 제2 메시지 전송 정보가 포함된 메시지를 상기 복수의 프로세스들 및 상기 제1 프로세스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  6. 청구항 1에 있어서,
    상기 프로세스를 위한 통신 제공 방법은,
    상기 복수의 프로세스들 중 통신채널이 설정된 제2 프로세스에 대한 통신채널의 설정이 제거되는 경우, 상기 복수의 프로세스들의 통신채널에 대한 정보에서 상기 제2 프로세스의 통신채널에 대한 정보를 제거하여 제3 통신 채널 설정 정보를 생성하는 단계; 및
    상기 제3 통신 채널 설정 정보가 포함된 메시지를 상기 복수의 프로세스들 중 상기 제2 프로세스를 제외한 적어도 하나의 프로세스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  7. 청구항 6에 있어서,
    상기 프로세스를 위한 통신 제공 방법은,
    상기 복수의 프로세스들 중 통신채널이 설정된 제2 프로세스에 대한 통신채널의 설정이 제거되는 경우, 상기 제1 메시지 전송 정보에서 상기 제2 프로세스의 메시지 ID에 대한 정보를 제거하여 제3 메시지 전송 정보를 생성하는 단계; 및
    상기 제3 메시지 전송 정보가 포함된 메시지를 상기 복수의 프로세스들 중 상기 제2 프로세스를 제외한 적어도 하나의 프로세스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  8. 청구항 1에 있어서,
    상기 프로세스를 위한 통신 제공 방법은,
    상기 제1 IPC 관리자 및 상기 제1 시스템과 서로 다른 제2 시스템의 통신을 관리하는 제2 IPC 관리자 간의 통신채널이 설정되는 경우, 상기 제1 시스템에 포함된 복수의 프로세스들 각각에서 수신하는 메시지의 ID인 수신 메시지 ID에 대한 정보가 포함된 메시지를 상기 제2 IPC 관리자로 전송하는 단계; 및
    상기 제2 IPC 관리자로부터 상기 제2 시스템에 포함된 복수의 프로세스들 각각에서 수신하는 메시지의 ID 인 수신 메시지 ID에 대한 정보가 포함된 메시지를 수신하는 단계를 더 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  9. 청구항 8에 있어서,
    상기 프로세스를 위한 통신 제공 방법은,
    상기 제1 시스템에 포함된 복수의 프로세스들 중 제1 프로세스로부터 제1 메시지 ID의 ID를 가지는 메시지를 수신하는 단계;
    상기 제1 시스템에 포함된 복수의 프로세스들 및 상기 제2 시스템에 포함된 복수의 프로세스들 중 상기 제1 메시지 ID의 ID를 가지는 메시지를 수신하는 적어도 하나의 프로세스를 확인하는 단계; 및
    상기 제1 메시지 ID의 ID를 가지는 메시지를 상기 확인된 적어도 하나의 프로세스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  10. 청구항 9에 있어서,
    상기 적어도 하나의 프로세스를 확인하는 단계는,
    상기 제1 시스템 및 상기 제2 시스템 중 미리 설정된 우선 순위에 기초하여 우선 순위가 높은 하나의 시스템에 포함된 복수의 프로세스들부터 확인하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
  11. 청구항 9에 있어서,
    상기 확인된 적어도 하나의 프로세스로 전송하는 단계는,
    상기 적어도 하나의 프로세스가 제2 시스템에 포함된 경우, 상기 제1 메시지 ID의 ID를 가지는 메시지를 상기 제2 IPC로 전송함으로써 상기 확인된 적어도 하나의 프로세스로 전송하는 것을 특징으로 하는 프로세스를 위한 통신 제공 방법.
KR1020140016105A 2014-02-12 2014-02-12 프로세스간 통신 방법 KR102019108B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140016105A KR102019108B1 (ko) 2014-02-12 2014-02-12 프로세스간 통신 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140016105A KR102019108B1 (ko) 2014-02-12 2014-02-12 프로세스간 통신 방법

Publications (2)

Publication Number Publication Date
KR20150095052A KR20150095052A (ko) 2015-08-20
KR102019108B1 true KR102019108B1 (ko) 2019-09-09

Family

ID=54058189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140016105A KR102019108B1 (ko) 2014-02-12 2014-02-12 프로세스간 통신 방법

Country Status (1)

Country Link
KR (1) KR102019108B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299319A (ja) * 2006-05-02 2007-11-15 Canon Inc 情報処理装置及びプロセス間通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249909A (ja) * 1998-02-27 1999-09-17 Nec Eng Ltd マルチタスクos上でのプロセス再起動方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299319A (ja) * 2006-05-02 2007-11-15 Canon Inc 情報処理装置及びプロセス間通信方法

Also Published As

Publication number Publication date
KR20150095052A (ko) 2015-08-20

Similar Documents

Publication Publication Date Title
US11856065B2 (en) Data transmission for service integration between a virtual private cloud and an intranet
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
US10742697B2 (en) Packet forwarding apparatus for handling multicast packet
US9954775B2 (en) Software-defined network (SDN) system using host abstraction, and method for implementing the same
JP4585944B2 (ja) パケット通信装置
JP5866083B1 (ja) ソフトウェア定義ネットワークにおける制御方法、制御装置およびプロセッサ
JP5962676B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5935418B2 (ja) マルチキャストアドレスの管理のための情報処理装置、情報処理方法及びプログラム、中継装置、中継装置のための情報処理方法及びプログラム、並びに情報処理システム
JP2019519975A (ja) リソースサブスクリプション方法、リソースサブスクリプション装置、及びリソースサブスクリプションシステム
JP2009296128A (ja) 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP2017201776A (ja) 不均一ネットワークにまたがるコンテンツ配送
US10454884B2 (en) Terminal and multicast address distribution server
WO2018120940A1 (zh) 分布式业务服务系统及集中服务控制方法与其相应的装置
CN103475626A (zh) 一种用于请求资源的方法、设备及系统
KR102019108B1 (ko) 프로세스간 통신 방법
US8386692B2 (en) Method for communicating between nodes and server apparatus
WO2020224241A1 (zh) 一种云通信方法及装置、用户设备、网络设备
CN111010425A (zh) 一种服务器连接方法、负载均衡设备及电子设备
CN115225482A (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
JP2010146246A (ja) マルチエージェントシステム用フレームワークコンピュータプログラム、ネットワークシステム、及びエージェント間通信方法
CN114025005A (zh) 一种数据通讯方法、系统、电子设备及存储介质
WO2009026846A1 (fr) Procédé, dispositif et système de transmission de messages permettant la mise en oeuvre de services de multidiffusion
JP2010128573A (ja) エージェントコンピュータプログラム、端末コンピュータ、アプリケーションプログラム取得方法、アプリケーションプログラム配信方法、アプリケーション取得要求データ構造
KR100654464B1 (ko) 네트워크 상에 존재하는 호스트들 간의 정보를 공유하는장치 및 그 방법
US20130227066A1 (en) Data transfer apparatus and data transfer method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant