KR101354573B1 - 통신처리장치, 통신처리방법 및 기억매체 - Google Patents
통신처리장치, 통신처리방법 및 기억매체 Download PDFInfo
- Publication number
- KR101354573B1 KR101354573B1 KR1020110026183A KR20110026183A KR101354573B1 KR 101354573 B1 KR101354573 B1 KR 101354573B1 KR 1020110026183 A KR1020110026183 A KR 1020110026183A KR 20110026183 A KR20110026183 A KR 20110026183A KR 101354573 B1 KR101354573 B1 KR 101354573B1
- Authority
- KR
- South Korea
- Prior art keywords
- communication
- processing apparatus
- unit
- information processing
- communication unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명의 일 국면에 따른 통신처리장치는, 제1통신부와 제2통신부를 갖고, 상기 제2통신부는, 상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부; 송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 취득부; 상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 실행부; 및 상기 통지부에 의해 상기 정보처리장치가 정지한 것을 통지하였을 때에, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 무효화부를 구비한다.
Description
본 발명은 네트워크의 노드에 미들웨어를 거쳐서 접속된 통신처리장치 및 그 제어 방법에 관한 것이다.
최근의 소프트웨어 시스템 개발에 있어서는, 소프트웨어를 컴포넌트로 분할하는 방법이 추진되고 있다. 보다 구체적으로, 소프트웨어를 서로 의존도가 낮은 컴포넌트(부품)단위로 분할하고, 이들 컴포넌트를 여러가지 통신채널을 가진 복수의 정보처리장치(노드)에 배치한다. 그리고, 컴포넌트끼리는, 서로 통신을 행하면서 동작한다. 추가로, 컴포넌트간의 통신에서는, 통신을 중앙 제어하는 통신 미들웨어가 도입된다. 이 통신 미들웨어는, 상이한 통신채널을 은폐해서 통신 인터페이스를 통일한다. 이 인터페이스의 통일에 의해, 시스템의 보수성을 향상시키거나, 컴포넌트의 재이용에 의한 생산성을 향상시킨다.
이 통일된 인터페이스에 있어서, 통신 상대가 되는 컴포넌트를 특정하기 위한 ID로서 이용될 정보는, 시스템 설계에 있어서 중요한 사항이다. 이것은, 그 이용될 정보가 컴포넌트 설계의 유연성과 시스템의 동작 속도에 영향을 주기 때문이다.
일반적으로, 통신 상대를 특정하는 ID로서는, 추상도가 낮은 물리ID를 사용하거나, 추상도가 높은 논리ID를 사용하는 것이 가능하다. 전자는, 통신 상대가 배치되어 있는 노드, 통신 상대가 소속하는 프로세스, 및 관련된 큐(queue) 등의 물리 배치에 관한 정보(이후, 간단히 '물리 배치'라고 함)를 내포한 물리ID를 이용해서 통신을 행하는 방법(이하, '물리ID를 사용한 통신 방법'이라고 부른다)이다. 후자는, 컴포넌트 명칭등의 추상도가 높은 논리ID를 사용해서 통신 상대를 특정하는 방법이다. 후자의 방법에서는, 통신 미들웨어가 컴포넌트 명칭과 통신 상대의 물리적인 정보와의 관계를 관리하고, 통신시에 논리ID로부터 물리적인 정보(예를 들면, 물리ID)로의 변환한다.(이하, 이 방법을 '논리ID를 사용한 통신 방법'이라고 부른다.)
'물리ID를 사용한 통신 방법'에서는, ID에 통신 경로를 특정하는 정보가 포함되어 있기 때문에, 통신 처리 시간을 감소할 수 있고, 고속 통신을 행할 수 있다. 한편, 이 방법은, 컴포넌트 설계에 대한 유연성을 감소시킨다.
또한, '논리ID를 사용한 통신 방법'에서는, 통신을 행할 때마다 논리ID로부터 물리적인 정보로의 변환 처리를 행해야 한다. 복수 노드로 이루어진 시스템에서는, 노드 각각의 컴포넌트의 물리적인 정보가 집중 관리된다. 따라서, '논리ID를 사용한 통신 방법'에서는, 통신원이 되는 컴포넌트로부터 통신처가 되는 컴포넌트의 물리적인 정보에 액세스 처리, 즉 논리ID를 물리적인 정보로 변환하는 처리에는 상당한 시간이 걸린다. 이것은, 통신을 위한 계산 비용을 증가시킨다. 그렇지만, 각 컴포넌트는, 동작시에 복수 노드 중 어떠한 노드에도 배치될 수 있어, 설계의 유연성을 증가시킨다.
물리ID와 논리ID의 장점을 충분히 살리기 위해서, 이것들을 병용하는 방법이 가능하다. 즉, 첫회의 통신동안만 논리ID로부터 물리적인 정보로 변환하고, 2번째부터는 상기 얻어진 물리적인 정보를 사용해서 통신을 행한다(이하, 이 방법을 '첫회만 논리ID를 사용하는 방법'). 이 방법에서는 높은 설계 유연성의 정도와 빠른 통신 속도 양쪽을 달성할 수 있다. 그렇지만, 시스템 동작중에 컴포넌트의 물리 배치가 변해버리는 시스템에 있어서는, 통신처의 물리적인 정보를 일부의 방법으로 보정해야 한다.
일본국 공개특허공보 특개2009-009607호는, 데이터의 물리적인 배치 정보와 논리적인 명칭간의 대응을 테이블을 사용하여 관리 함에 의해, 물리배치를 은폐하는 미들웨어에 관한 것이다. 물리배치가 변경이 되었을 경우에, 테이블을 자동으로 갱신하여, 액세스원(access source)의 프로그램은 데이터의 배치 변경을 알고 있을 필요가 없다.
일본국 공개특허공보 특개2007-281839호는, 버스 리셋트가 발생했을 경우에, 네트워크의 구성 변경이 있는 것인가 아닌가를 주사(scan)하고, 변경이 있는 경우 물리적인 배치 정보와 논리적인 위치 정보간의 대응 테이블을 갱신하는 방법을 제안하고 있다.
복수 노드로 구성되는 시스템에 있어서, 시스템 자체가 동작 중인 동안에 일부 노드만이 때때로 재기동한다. 일부 노드가 재기동하면, 해당 노드 위에 있는 컴포넌트가 소속하는 프로세스ID등의 정보가 변화되어버리기도 한다.
예를 들면, 일부 노드가 정지한 후에 재기동하면, 그 노드에 배치된 컴포넌트는 한번 종료한 후에 재기동하게 된다. 일반적인 컴퓨터의 OS에 있어서, 프로세스ID는, 기동 순서로 할당된다. 또한, 복수의 프로세스로 이루어진 시스템에 있어서는, 그 프로세스들의 기동 순서는, 엄밀하게는 일리 있게 결정되지 않는다.
즉, 일부 노드가 재기동했을 경우, 그 노드에 배치된 컴포넌트에는, 재기동 전과 같은 프로세스ID가 반드시 할당되지 않는다. 결과적으로, 프로세스ID를 내포하는 물리ID로 나타낸 물리배치도 재기동의 전과 다르기도 하다. 이 경우에, '첫회만 논리ID를 사용하는 방법'에서는, 통신처의 물리적인 정보가 변화되어버리기 때문에, 더 이상 정상적인 통신을 할 수 없다. 통신 상대의 옳은 물리적인 정보를 취득하기 위해서는, 일부의 노드가 재기동한 후에 논리ID로부터 물리정보로 변환시키는 변환 처리를 다시 행해야 한다. 그러나, 시스템내에 다수의 컴포넌트가 존재할 경우, 모든 컴포넌트에 노드 재기동의 검지 처리와 재변환 처리를 설치하는 것은, 비용이 증가하여 비효율이다.
일본국 공개특허공보 특개2009-009607호의 방법에서는, 복수의 노드로 이루어진 시스템에서는, 노드 각각의 컴포넌트의 정보를 집중 관리해야 한다. 이 정보를 관리하는 테이블에 동작을 행할 때마다 액세스하면, 통신 부하가 증가되기도 한다.
또 일본국 공개특허공보 특개2007-281839호에서는, 버스 리셋트로 인해 정보가 변경할 때마다, 모든 디바이스(통신 끝점)를 주사해서 배치 정보를 갱신하고 있다. 이것은, 재기동되지 않는 디바이스에서 동작하는 컴포넌트의 정보등이 불필요하게 갱신되기 때문에, 트래픽이 증가한다.
본 발명은 상기 과제를 감안하여 이루어진 것으로, 미들웨어를 거쳐서 네트워크에 접속된 복수의 통신 컴포넌트를 구비하는 통신처리장치에 있어서, 네트워크상의 통신처의 컴포넌트의 물리배치가 변화되는 경우도, 정상적인 통신을 행할 수 있는 기술을 제공한다.
본 발명의 일 국면에 따른 통신처리장치는, 정보처리장치와 통신하는 제1통신부와, 상기 정보처리장치상에서 동작하는 프로세스와 상기 제1통신부를 거쳐서 통신하는 제2통신부를 갖는 통신처리장치로서, 상기 제1통신부는, 상기 정보처리장치의 정지를 상기 제2통신부에 통지하는 통지부를 구비하고, 상기 제2통신부는, 상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부; 송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 취득부; 상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 실행부; 및 상기 통지부에 의해 상기 정보처리장치가 정지한 것을 통지하였을 때에, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 무효화부를 구비한다.
본 발명의 다른 국면에 따른 통신처리방법은, 정보처리장치와 통신하는 제1통신부와, 상기 정보처리장치상에서 동작하는 프로세스와 상기 제1통신부를 거쳐서 통신하는 제2통신부를 갖는 통신처리장치의 통신처리방법으로서, 상기 제2통신부는, 상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부를 포함하고, 상기 방법은, 상기 제2통신부가, 송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 단계; 상기 제2통신부가, 상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 단계; 상기 제1통신부가, 상기 정보처리장치가 정지한 것을 상기 제2통신부에 통지하는 단계; 및 상기 제2통신부가, 상기 정보처리장치가 정지한 것을 상기 통지부에 의해 통지하였을 때, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 단계를 포함한다.
본 발명의 또 다른 국면에 따른 컴퓨터 판독 가능한 기억매체는, 컴퓨터에게, 정보처리장치와 통신하는 제1통신부와, 상기 정보처리장치상에서 동작하는 프로세스와 상기 제1통신부를 거쳐서 통신하는 제2통신부를 갖는 통신처리장치로서 기능하게 하는 컴퓨터 프로그램을 기억한 컴퓨터 판독 가능한 기억매체로서, 상기 제1통신부는, 상기 정보처리장치의 정지를 상기 제2통신부에 통지하는 통지부를 구비하고, 상기 제2통신부는, 상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부; 송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 취득부; 상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 실행부; 및 상기 통지부에 의해 상기 정보처리장치가 정지한 것을 통지하였을 때에, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 무효화부를 구비한다.
본 발명의 또 다른 특징들은, (첨부도면을 참조하여) 아래의 예시적 실시예들의 설명으로부터 명백해질 것이다.
도 1은 통신 처리 시스템의 전체를 도시한 도면;
도 2는 물리ID의 예를 나타내는 도면;
도 3은 ID변환 테이블의 실질적인 예를 나타내는 도면;
도 4는 '물리ID를 사용한 통신 방법'에서 사용된 구성을 도시한 도면;
도 5는 '물리ID를 사용한 통신 방법'에서 행해진 메시지 송신의 흐름도;
도 6은 '논리ID를 사용한 통신 방법'에서 사용된 구성을 도시한 도면;
도 7은 '논리ID를 사용한 통신 방법'에서 행해진 메시지 송신의 흐름도;
도 8은 '첫회만 논리ID를 사용하는 통신 방법'에서 행해진 메시지 송신의 흐름도;
도 9는 본 발명의 메시지 송신의 흐름도;
도 10은 본 발명의 노드 정지 검출시 행해진 처리 흐름도;
도 11은 본 발명의 추가의 처리 흐름도;
도 12는 통신처리장치(노드)의 하드웨어 구성을 상세하게 나타내는 시스템도;
도 13은 컴포넌트와 통신 미들웨어의 사이에서 행해진 통신 흐름도다.
도 2는 물리ID의 예를 나타내는 도면;
도 3은 ID변환 테이블의 실질적인 예를 나타내는 도면;
도 4는 '물리ID를 사용한 통신 방법'에서 사용된 구성을 도시한 도면;
도 5는 '물리ID를 사용한 통신 방법'에서 행해진 메시지 송신의 흐름도;
도 6은 '논리ID를 사용한 통신 방법'에서 사용된 구성을 도시한 도면;
도 7은 '논리ID를 사용한 통신 방법'에서 행해진 메시지 송신의 흐름도;
도 8은 '첫회만 논리ID를 사용하는 통신 방법'에서 행해진 메시지 송신의 흐름도;
도 9는 본 발명의 메시지 송신의 흐름도;
도 10은 본 발명의 노드 정지 검출시 행해진 처리 흐름도;
도 11은 본 발명의 추가의 처리 흐름도;
도 12는 통신처리장치(노드)의 하드웨어 구성을 상세하게 나타내는 시스템도;
도 13은 컴포넌트와 통신 미들웨어의 사이에서 행해진 통신 흐름도다.
<제1 실시예>
도 12는, 제1 실시예에 따른 통신처리장치의 구성 예를 도시한 도면이다. 도 12를 참조하면, 노드01 및 노드02 각각은, 본 실시예에 따른 통신처리장치다. 도 12에 있어서, 노드01과 노드02는, 통신로(12)를 거쳐서 서로 통신할 수 있다. 이하에, 노드01의 상세한 구성에 관하여 설명한다. 노드02는 노드01과 동일한 구성을 가진다. 이 때문에, 노드02에 관한 상세한 설명은 생략한다.
노드01은, 시스템 버스(04)에 의해 서로 접속된 CPU(13), 네트워크 콘트롤러(03) 및 메모리(05)를 구비한다. 메모리(05)는, CPU(13)의 메모리 보호 기구에 의해 프로세스마다 분할되어 있다. 도 12의 예에서는, 노드(01)에서는 통신 미들웨어(제1통신부)와, 컴포넌트A 및 컴포넌트B가 동작하고 있다. 따라서, 메모리(05)내에는 통신 미들웨어용 메모리 공간(06), 컴포넌트A용 메모리 공간(07),및 컴포넌트B용 메모리 공간(08)이 존재한다.
메모리 공간(06∼08) 각각에는, 논리ID와 물리ID의 사이에 변환 테이블이 독립적으로 보유되어 있다. 즉, 통신 미들웨어용 메모리 공간(06)내에는 변환 테이블09가, 컴포넌트A용 메모리 공간(07)내에는 변환 테이블10이, 컴포넌트B용 메모리 공간(08)내에는 변환 테이블11이, 각각 존재한다. 전술한 바와 같이, 노드01은 통신로(12)를 경유해서 노드02와 접속되어 있다. 노드01의 통신 미들웨어는, 네트워크 콘트롤러(03)를 거쳐서 노드02와 통신을 행한다.
도 1은, 네트워크를 거쳐서 통신 컴포넌트간에 통신을 행하는 통신 처리 시스템의 개략을 도시한 도면이다. 이 통신 처리 시스템은, 통신처리장치(정보처리장치)인 노드01, 02를 포함한다. 또한, 이 통신 처리 시스템은, 통신기능을 제공하는 통신 미들웨어(103)와 복수의 컴포넌트A, B를 포함한다. 통신 미들웨어(103)는, 노드간 및 컴포넌트간 통신을 추상화하는 기능을 갖는다. 도 12를 참조하여 설명한 것처럼, 통신 미들웨어는, 노드01 및 02 각각에서 동작하고 있다. 이들 통신 미들웨어는, 도 1에 나타낸 통신 미들웨어(103)를 서로 연계하여 시행한다. 보다 구체적으로는, 통신 미들웨어(103)는, ID관리부(104) 및 노드 감시부(105)를 구비한다. 노드 감시부(105)는, 시스템을 구성하는 각 노드의 상태를 감시하고, 그 노드가 현재 동작중인지, 혹은 정지중인지를 관리한다. 통신 미들웨어(103) 위에는, 각각이 통신 끝점인 복수의 소프트웨어의 컴포넌트A, B가 동작하고 있다(도 4 참조). 그리고, 컴포넌트A는 노드01위에서 동작하고, 또 컴포넌트B는 노드02위에서 동작하고 있다. 통신 컴포넌트(제2통신부)인 컴포넌트A에는, ID변환 테이블(108)(격납부), 노드 판별기(109), 및 ID무효화부(110)가 배치되어 있다. 통신 미들웨어(103)는, 통신 컴포넌트의 물리배치를 의미하는 물리ID와, 컴포넌트의 배치에 의존하지 않는 논리ID를 해석하는 기능을 갖는다.
또한, 통신 미들웨어(103)는, 송신처 노드 판별기(111)를 구비해도 좋다. 송신처 노드 판별기(111)는, 상기 노드 판별기(109)와 연계하고, 메시지의 송신처인 물리ID로부터 송신처 컴포넌트가 소속하는 노드를 판별한다.
도 2는, 제1 실시예에 있어서의 네트워크상의 통신 컴포넌트의 물리배치를 나타내는 물리ID의 예다. 물리ID(201)는, 4자리수의 수치로 구성된다. 물리ID(201)는, 해당 컴포넌트가 배치된 노드를 식별하는 2자리수의 노드ID(202)와, 해당 컴포넌트가 배치된 프로세스를 식별하는 2자리수의 프로세스ID(203)와의 조합이다.
도 3은, 통신을 위해 각 컴포넌트내에 인스톨된 ID변환 테이블(108)의 실제의 예를 나타낸다. 이 ID변환 테이블(108)은, 각 컴포넌트내에 보유되어 있다. 따라서, '논리ID를 사용한 통신 방법'과 같이 통신을 행할 때마다 통신 미들웨어가 제공하는 변환 기능을 사용하는 방법과 비교하여, 고속 처리가 가능하다. 통신 상대(통신처)의 컴포넌트에 대하여, 이 도 3과 같이, 식별 정보는, 엔트리 번호(305), 논리ID(306), 및 물리ID(307)를 포함하고, 이 물리ID(307)에는, 노드와 프로세스의 정보가 포함되어 있다.
도 3은 컴포넌트A가 보유하는 ID변환 테이블(108)을 나타낸다. ID 변환 테이블(108)에는, 통신 상대로서 컴포넌트B, 컴포넌트C, 컴포넌트D의 3개의 컴포넌트의 정보가 등록되어 있다. 이 ID변환 테이블(108)은, 등록되어 있는 각 컴포넌트에 대해서, 상기 엔트리 번호(305), 상기 논리ID, 및 상기 물리배치를 나타내는 물리ID(201)를 관련되게 만든다. 보다 구체적으로는, 상기 엔트리 번호(305)는 ID변환 테이블(108)내에 있는 송신처를 식별할 수 있는 일련 번호이며, 상기 논리ID(306)는 송신처 컴포넌트를 캐릭터 열로 표현하고, 상기 물리ID(307)는 송신처 컴포넌트의 물리적 정보를 표현한다. 도 3의 예에서는, 컴포넌트B의 물리ID는 0101이고, 컴포넌트C의 물리ID는 0201이고, 컴포넌트D의 물리ID는 0202이다. 이것들 물리ID는, 컴포넌트B, C, D가 각각 노드01의 프로세스01, 노드02의 프로세스01, 노드02의 프로세스02에 배치되어 있는 것을 뜻한다. 이상과 같이, 이 ID변환 테이블에는, 컴포넌트(프로세스)의 프로세스ID와, 이 컴포넌트(프로세스)에 미리 할당되어 있는 논리ID간의 대응을 나타낸 대응정보가 격납되어 있다.
우선, 종래기술의 '물리ID를 사용한 통신 방법', '논리ID를 사용한 통신 방법' 및 '첫회만 논리ID를 사용하는 통신 방법'에 있어서의 시스템 구성, 및 통신 미들웨어를 사용한 메시지 송신의 동작에 관하여 설명한다. 이하의 설명에 의해, 본 발명의 제1 실시예와의 차이가 명확해질 것이다.
도 4 및 도 5는, 일반적인 '물리ID를 사용한 통신 방법'을 설명하기 위한 도면이다. 도 4에 도시된 것처럼, 2개의 노드01, 02를 포함하는 시스템에 통신 미들웨어(403)가 설치되어 있다. 통신 미들웨어(403) 위에는 복수의 소프트웨어 컴포넌트A, B, C, D가 동작하고 있다. 컴포넌트A는, 노드01 위에 배치되어, 컴포넌트A가 소속하는 프로세스ID는 01이다. 마찬가지로, 컴포넌트B는 노드01상의 프로세스02, 컴포넌트C는 노드02상의 프로세스01, 컴포넌트D는 노드02상의 프로세스02에 소속하고 있다. 컴포넌트A, B, C, D를 나타내는 물리ID는, 각각 OxOlOl, OxOlO2, OxO201, OxO202이다.
이하, 도 5의 흐름도를 참조하여 '물리ID를 사용한 통신 방법'의 동작에 관하여 설명한다. S501에 있어서, 일부 컴포넌트는, 송신 지시를 접수하고, 메시지의 송신 처리를 시작한다. S502에 있어서, 통신 미들웨어는, 송신처의 물리ID로부터 송신처 컴포넌트의 물리ID를 특정한다. '물리ID를 사용한 통신 방법'에 있어서는, 통신 컴포넌트는 송신처를 물리ID로 지정한다. 물리ID는, 도 2에 나타낸 것처럼 상기 송신처 컴포넌트의 물리적인 정보를 내포하고 있어, 이 특정 처리의 부하는 작다.
S503에 있어서, 특정된 송신처의 물리ID를 사용해서 통신 미들웨어가 실제의 메시지 송신 처리를 행한다. S504에서, 송신처가 존재하는 것인가 아닌가에 따라, 송신 결과를 취득한다. 송신처에의 통신이 성공하면, 즉 송신처가 존재하면 통신은 성공적이며, S505의 처리에 이행한다. S504에서, 송신처가 존재하지 않는 등의 에러가 발생하면, 통신은 실패가 되어 S506의 처리에 이행한다.
도 6 및 도 7은, '논리ID를 사용한 통신 방법'을 설명하기 위한 도면이다. 도 6을 참조하면, 2개의 노드01, 02를 포함하는 시스템에 통신 미들웨어(603)가 설치되어 있다. 통신 미들웨어(603)는, ID관리부(604)를 구비하고 있다. 통신 미들웨어(603) 위에는, 복수의 소프트웨어 컴포넌트A, B, C, D가 동작하고 있다. 컴포넌트A는 노드01 위에 배치되어, 컴포넌트A가 소속하는 프로세스ID는 01이다. 마찬가지로, 컴포넌트B는 노드01상의 프로세스02, 컴포넌트C는 노드02상의 프로세스01, 컴포넌트D는 노드02상의 프로세스02에 소속하고 있다. 컴포넌트A, B, C, D를 의미하는 물리ID는, 각각 OxOlOl, OxOlO2, OxO201, OxO202이다.
이하, 도 7의 흐름도를 참조하여 '논리ID를 사용한 통신 방법'의 동작에 관하여 설명한다. S701에 있어서, 통신 컴포넌트는, 송신 지시를 접수하고, 메시지의 송신 처리를 시작한다. 이 시점에서, 통신 컴포넌트는, 송신처의 논리ID를 접수하고 있다. S702에서, 통신 컴포넌트는, 통신 미들웨어(603)에 문의한다. 통신 미들웨어(603)의 ID관리부(604)는, 논리ID를 물리ID로 변환한다. '논리ID를 사용한 통신 방법'에서는, 통신 컴포넌트는, 송신처를 논리ID로 지정한다. 이 논리ID에서, 통신 컴포넌트는, 예를 들면 컴포넌트 명칭을 의미하는 캐릭터 열을 지정한다. 또한, 통신 미들웨어의 ID관리부(604)는, 복수의 노드의 각각에 대해 컴포넌트들의 정보를 동적 또한 일원적으로 관리해야 한다.
S703에서, 문의를 받은 통신 미들웨어내의 ID관리부(604)는, 지정된 논리ID를 갖는 컴포넌트가 시스템내에 존재하는 것인가 아닌가의 판정을 행한다. 시스템내에 해당 컴포넌트가 존재하지 않은 경우, S704에서, 송신처가 존재하지 않는 것을 나타내는 에러가 송신원 컴포넌트에 송신된다.
시스템내에 해당 컴포넌트가 존재하는 경우, 논리ID를 물리ID로 변환하는 처리가 행해진다. 그 후의 과정은, 도 5를 참조하여 설명한 '물리ID를 사용한 통신 방법'과 동일하다. 즉, S705에서, ID관리부(604)는, 물리ID로부터 송신처 컴포넌트를 특정한다.
S705에서, ID관리부(604)는, 특정한 송신처 컴포넌트에 대해 실제의 송신 처리를 행한다. 그리고, S707에서, ID관리부(604)는, 통신의 성공여부를 판정한다. 최종적으로 송신처가 존재하면, 통신은 성공이며, S708의 처리에 이행하고, 존재하지 않으면, 에러가 있는 것으로 간주하여 S709의 처리에 이행한다.
도 8은, 종래기술 '첫회만 논리ID를 사용하는 방법'을 설명하기 위한 도면이다. 이 종래기술의 시스템 구성은, 도 6의 '논리ID를 사용한 통신 방법'과 같다. S801에서, 통신 컴포넌트가 메시지의 송신 처리를 시작한다. S802에서, 통신 컴포넌트는, 이것이 해당 송신처에 대한 첫회의 송신인가 아닌가를 판정한다.
통신 컴포넌트가 이것이 첫회의 송신이라고 판정하면, S803의 처리에 이행한다. S803에서, 통신 컴포넌트는 통신 미들웨어(603)에 문의를 행하고, ID 관리부(604)는, 논리ID로부터 물리ID로 변환한다.'첫회만 논리ID를 사용하는 방법'의 첫회의 통신에서는 송신처를 논리ID로 지정한다.
S804에서, '논리ID를 사용한 통신 방법'과 같이, 통신 미들웨어(603)내의 ID관리부(604)는, 지정된 논리ID를 갖는 컴포넌트가 시스템내에 존재하는 것인가 아닌가의 판정을 행한다. 이 단계는, S703의 과정과 같다. 시스템내에 해당 컴포넌트가 존재하지 않은 경우에는, S805에서, ID관리부(604)는, 송신처가 존재하지 않는 것을 나타내는 에러를 되돌려 놓는다. 이 단계는 S704와 같다.
시스템내에 해당 컴포넌트가 존재하고, ID 관리부(604)가 논리ID를 물리ID로 성공적으로 변환하는 경우에는, S806의 처리로 이행하고, ID관리부(604)는, 변환후의 물리ID를 컴포넌트의 내부 메모리(도면에 나타내지 않는다, 컴포넌트가 속하는 프로세스의 메모리 공간)에 격납되어 있다. 물리ID가 격납되어 있으므로, 2회째의 송신으로부터는 고비용을 필요로 하는 S803을 실행할 필요가 없다.
물리ID를 격납한 후, 혹은 통신 컴포넌트가 이것이 S802에 있어서 2회째 이후의 통신이라고 판정한 경우에는, ID관리부(604)는, 물리ID를 사용해서 통신을 행한다. 이후의 처리는, 도 7에 도시된 '논리ID를 사용한 통신 방법'과 같다. 즉, S807로부터 S811까지의 단계는, 각각 도 7의 S705로부터 S709까지의 단계에 대응하므로, 각 설명을 생략한다.
이하, 본 발명의 실시예에 관하여 설명한다. 도 9는, 본 실시예에 있어서 메시지를 송신하는 컴포넌트의 동작을 나타내는 흐름도다. 도 10은, 본 실시예에 있어서 노드 정지 검출시의 통신 미들웨어의 동작을 나타내는 흐름도다. 본 실시예의 시스템 구성은, 도 1을 참조하여 설명한 바와 같다. S901에 있어서, 통신 컴포넌트가 메시지의 송신 처리를 시작한다. S902에서, 통신 컴포넌트는, 컴포넌트내의 ID변환 테이블(108)을 참조하고, 송신처에 해당하는 엔트리가 테이블내에 존재하는 것인가 아닌가를 판정한다. 본 실시예에 있어서는, 도 3의 ID변환 테이블(108)의 구성으로 나타나 있는 바와 같이, 송신처를 논리ID로 지정하거나 ID변환 테이블의 엔트리 번호로 지정해도 좋다.
ID변환 테이블(108)내에 엔트리가 발견된 경우에는, S903의 처리로 이행하고, 컴포넌트는, 이 엔트리가 무효화되었는지의 여부를 판정한다. (ID변환 테이블(108)내의 엔트리를 무효화하는 처리에 대해서는, 도 10을 참조하여 후술한다.)
엔트리가 이미 무효화된 경우에는 S904의 처리에 이행하고, 컴포넌트는, ID변환 테이블(108)로부터 이 엔트리에 포함되는 논리ID를 취득한다. 또한, S905에서, 통신 컴포넌트는, 통신 미들웨어(103)에 문의를 행한다. ID 관리부(104)는, 논리ID를 물리ID로 변환하는 처리를 행한다. 이 처리는 '논리ID를 사용한 통신 방법'의 S702와 같은 처리이며, 통신 미들웨어(103)에의 문의가 발생한다.
S902에 있어서, 송신처에 해당하는 엔트리가 존재하지 않은 경우에는, 통신 컴포넌트는, 송신처로서 지정된 논리ID를 사용하여, 마찬가지로, 통신 미들웨어(103)에 문의한다(문의부). S905에서, ID관리부(104)가 논리ID를 물리ID로 변환한다. ID 관리부(104)는, 네트워크상의 모든 컴포넌트의 물리ID를 집중적으로 등록하는 집중 ID테이블을 가진다. ID 관리부(104)는, 이 집중 ID테이블을 참조하여서, 송신처로서 지정된 논리ID를, 대응하는 물리ID로 변환한다. 즉, 이 집중 ID테이블에는, 각 컴포넌트(프로세스)의 프로세스ID와 논리ID간의 대응을 나타내는 대응 정보가 격납되어 있다.
다음에, S906에 있어서, '논리ID를 사용한 통신 방법'의 S703과 같이, 통신 미들웨어(103)내의 ID관리부(104)를 사용하여, 통신 미들웨어(103)는 지정된 논리ID를 갖는 컴포넌트가 시스템내에 존재하는 것인가 아닌가의 판정을 행한다. 해당 컴포넌트가 미등록되어 존재하지 않은 경우에는 S907의 처리로 이행하고, 통신 미들웨어는 송신처가 존재하지 않는 것을 나타내는 에러를 통신 컴포넌트에 반환한다. 이 처리는, S704와 같은 처리다.
S906에서, ID관리부(104)가 논리ID를 물리ID로 성공적으로 변환하면, S908의 처리에 이행하고, 통신 컴포넌트는 ID변환 테이블(108)에서의 변환 결과로서 얻어진 논리ID와 물리ID의 조합을 추가로 등록한다(등록부). 보다 구체적으로는, S902에 있어서 송신처 엔트리가 존재하지 않은 경우에는, 컴포넌트는 ID변환 테이블(108)에 새로운 엔트리를 생성해서 추가로 등록한다. 또는, S903에 있어서, 엔트리가 무효화된 경우에는, 통신 컴포넌트는 S905에서 재취득된 물리ID를 옳은 물리ID로서 사용하여, 상기 엔트리를 갱신한다.
S903에서, 송신처가 되는 엔트리가 무효화되고 있지 않고 유효한 경우에는, 통신 컴포넌트는, S909의 엔트리로부터 물리ID를 취득한다. 이 처리는, 예를 들면, 도 3의 ID변환 테이블(108)에 대응하고 송신원 컴포넌트내에 보유되어 있는 ID변환 테이블(108)로부터, ID를 추출하는 처리다. 따라서, S905와 같은 통신 미들웨어에 문의를 행하는 처리가 발생하지 않는다.
S909에 있어서 물리ID를 취득한 경우, 또는 S908에서 ID변환 테이블(108)에의 추가 등록이 완료하면, 통신 컴포넌트는 상기 취득된 물리ID를 사용해서 통신을 행한다. 이것 이후의 과정은, 도 7의 '논리ID를 사용한 통신 방법'과 같다. 즉, S910 내지 S914의 단계는, 도 7의 S705 내지 S709의 단계에 대응하므로, 각 설명을 생략한다. 이상과 같이, 변환 테이블(108)은, 도 9의 S902 내지 S906 및 S908의 단계로 재구축된다.
이하, 도 10을 참조하여, 노드의 부분적인 재기동으로 인해 발생하기도 하는, ID변환 테이블(108)내의 엔트리를 무효화하는 처리를 설명한다. SlOOl에서, 통신 미들웨어(103)는, 상기 시스템을 구성하는 전체의 노드의 동작 상태를 감시한다. SlOO2에서, 통신 미들웨어(103)는, 노드가 정지한 것인가 아닌가를 검출한다. 노드가 정지한 것을 검출했을 경우, SlOO3에서, 통신 미들웨어(103)는, 정지한 노드의 정보를 모든 컴포넌트에 통지한다. 이 단계에서, 통신 미들웨어(103)내의 노드 감시부(105)는, 실제로 노드의 정지를 검출해서 통지를 행한다. 통지를 받은 모든 컴포넌트는, 이하의 처리를 행한다.
SlOO4에서 정지를 통지받은 각 컴포넌트는, 우선, SlOO5에서, 컴포넌트에 보유된 ID변환 테이블(108)을 주사한다. 보다 구체적으로는, 모든 컴포넌트는, 이하의 처리를 테이블에 포함된 모든 엔트리에 대하여 행한다(SlOO6). SlOO7에서, 상기 컴포넌트는, 상기 엔트리에 보유되어 있는 물리ID로부터 노드 번호를 취득한다. 노드 판별기(109)는, 물리ID에 대응하는 노드를 판별한다. 이 판별은, 노드 판별기(109)에 의해 행해지고, 도 2를 참조하여 이전에 서술한 것 같이, 물리ID의 상위 2자리수를 추출하는 처리에 해당한다.
다음에, SlOO8에 있어서, 통지를 수신한 컴포넌트는, SlOO7에서 추출한 노드와 SlOO2에서 통지된 정지 노드를 비교하여, 그 2개의 노드가 일치하고 있는 것인가 아닌가를 판단한다. 만약 2개의 노드가 일치하면, SlOO9의 처리에 이행한다. SlOO9에서, 상기 컴포넌트는 해당 엔트리가 정지한 노드에 관한 것이라고 판단하고, ID 무효화부(110)는 상기 엔트리를 무효화한다. 보다 구체적으로는, 상기 엔트리에 플래그를 부가하거나, 물리ID를 무효 값으로 갱신하는 것이 가능하다. 상기 무효화된 엔트리는, S903에서, 메시지 송신시에 ID가 무효인가 아닌가를 판정하는데 이용된다. 이상의 처리를 모든 엔트리에 대하여 행하고, SlOlO에서 처리를 종료한다.
이하, 도 13을 참조하여, 노드의 재기동 전후에 있어서의 컴포넌트와 통신 미들웨어의 동작을 설명한다. 도 13을 참조하여, 노드01은 컴포넌트(1301, 1302), 및 통신 미들웨어(1303)를 포함한다. 노드02는 통신 미들웨어(1304) 및 컴포넌트(1305)를 포함한다.
우선, 노드02의 재기동전에, 이하에서 컴포넌트(1301)가 행하는 통신에 관하여 설명한다. 컴포넌트1301은, 논리ID가 기지인 컴포넌트1305와 통신하기를 희망하는 것으로 한다. 또한, 컴포넌트1301의 ID변환 테이블에는, 컴포넌트1305의 물리ID가 등록되지 않고 있는 것으로 한다.
S1306에서, 컴포넌트1301은, 컴포넌트1301과 동일 노드에 배치되어 있는 통신 미들웨어(1303)에 대하여, 컴포넌트1305의 물리ID를 문의한다. 보다 구체적으로는, 컴포넌트1301은, 통신 미들웨어(1303)에 통신 대상인 컴포넌트1305의 논리ID를 송신하고, 컴포넌트1305의 물리ID의 송신을 요구한다. 컴포넌트1305의 물리ID를 취득한 후, S1307에 있어서 컴포넌트1301은, 컴포넌트1305에 데이터를 송신한다(실행부). 또한, 전술한 바와 같이, 컴포넌트1301은, 컴포넌트1305의 논리ID와 물리ID를 포함하는 정보를 ID변환 테이블에 등록한다.
노드02가 정지한 것으로 가정한다. S1308에 있어서, 노드01의 통신 미들웨어(1303)는, 노드02의 정지를 검지한다. 노드02의 정지의 검지는, 여러가지 방법에 의해 행할 수 있다. 예를 들면, 노드01의 네트워크 콘트롤러가 통신로의 절단을 검지할 수 있다. 또는, 통신 미들웨어1303과 통신 미들웨어1304간의 정기적인 통신이 절단되었을 경우에, 통신 미들웨어는 통신로가 절단된 것이라고 판단할 수 있다.
S1309에서, 통신 미들웨어(1303)는, 노드01에 배치된 컴포넌트1301 및 1302에 대하여, 노드02가 정지한 것을 통지한다. 도 10을 참조해서 상기한 바와 같이, 이 통지를 받은 컴포넌트(1301,1302)는, 자신이 갖는 ID변환 테이블을 각각 체크하고, 노드02에 배치되어 있는 컴포넌트(1305)에 관한 엔트리를 무효화한다.
노드02가 재기동한 것으로 한다. S1310에 있어서, 재기동한 노드02의 통신 미들웨어(1304)는, 다른 노드에 노드02가 재기동한 것을 통지한다. 보다 구체적으로는, 통신 미들웨어1304는, 통신 미들웨어1303에 노드02가 재기동한 것을 통지한다.
그 후에 노드02에 배치된 컴포넌트(1305)도 재기동된 것으로 한다. 이 경우에, 노드02의 제어부(예를 들면, (도면에 나타내지 않은) 오퍼레이팅 시스템)는, 프로세스ID를 컴포넌트(1305)에 할당한다. 본 실시예에 있어서는, 물리ID는 노드ID와 프로세스ID로 구성되고, 보통 노드ID는 고정되어 있다. 따라서, 프로세스ID를 할당할 때, 컴포넌트(1305)는 자신의 물리ID를 안다. 그렇지만, 노드02의 제어부도, 직접 물리ID의 컴포넌트(1305)를 통지할 수 있다.
S1311에 있어서, 컴포넌트(1305)는, 컴포넌트(1305)가 배치되어 있는 노드02의 통신 미들웨어(1304)에, 컴포넌트(1305)의 물리ID를 통지한다. 통신 미들웨어(1304)는, 통신 미들웨어(1304)의 ID변환 테이블에, 컴포넌트(1305)의 물리ID와 논리ID를 서로 관련시켜서 격납한다.
S1312에 있어서, 노드01의 통신 미들웨어1303과 노드02의 통신 미들웨어1304는, 그들의 ID변환 테이블을 동기한다. 도 13에 도시된 예에서, S1312에 있어서, 노드01의 통신 미들웨어(1303)가 보유하는 ID변환 테이블에, 컴포넌트(1305)의 물리ID와 논리ID를 서로 관련시켜서 격납한다. 이 ID변환 테이블의 동기는, 소정시간마다 행해져도 좋거나, 새로운 컴포넌트가 기동해서 일부의 노드상의 통신 미들웨어에 그 컴포넌트에 관한 정보가 추가된 것에 응답하여 행해져도 좋다.
이 상태에서 컴포넌트1301이 컴포넌트1305와 통신을 희망하는 것으로 한다. 전술한 바와 같이, S1309에 있어서, 컴포넌트1305의 정보는, 컴포넌트S1301의 ID변환 테이블로부터 삭제된다. 따라서, S1313에 있어서, S1306과 같이, 컴포넌트(1305)는 통신 미들웨어(1303)에 문의를 행한다.
최후에, S1314에 있어서, S1307과 같이, 컴포넌트1301은 컴포넌트1305에 데이터를 송신한다. 이렇게, S1313에 있어서 컴포넌트1301은 통신 미들웨어(1303)에 컴포넌트1305의 물리ID를 문의한다. 따라서, 노드02가 재기동되기 때문에 컴포넌트1305의 물리ID가 변화되기도 하지만 컴포넌트1305에 상기 데이터를 정확하게 송신한다.
본 실시예에 있어서는, S910에서 송신처 컴포넌트의 물리배치를 특정한 타이밍으로부터 S911에서 실제로 송신을 행하는 타이밍까지의 기간에, 통신 컴포넌트는 송신처 컴포넌트가 소속하는 노드의 동작 상태를 판정할 수 있다. 노드가 정지된 경우에는, 그 송신하지 못하게 하여도 된다. 이 판정을 행함으로써, 정지된 노드에 대하여 송신 처리를 행하는 경우에 일어난 송신 에러나 송신 타임아웃을 막을 수 있다.
이하, 도 11을 참조하여, 이 추가 처리를 설명한다. SllOl에 있어서, 송신처 컴포넌트의 물리ID로부터 송신처의 물리적 정보를 특정한다(이것은 S910의 처리에 해당한다). SllO2에 있어서, 송신처 컴포넌트가 소속하는 노드가 정지중인지의 여부를 판정한다. SllOl에 있어서 송신처 컴포넌트의 물리적 정보가 특정되므로, 판정 대상으로서의 노드를 유일하게 결정하는 것이 가능하다.
해당 노드가 동작중이면, SllO3에서, 실제의 송신을 행한다(이것은 S911의 처리에 해당한다). SllO4에서, 해당 노드가 정지중이면 에러를 발생시켜, 실제로 송신하지 못하게 한다. 물론, 노드 정지중이면, 도 10에 나타낸 엔트리를 무효화하는 것도 가능하다.
이상과 같은 제어를 함으로써, 논리ID 사용에 의한 유연한 컴포넌트 설계와, 물리ID 사용에 의한 고속 통신을 이루는 것이 가능해진다. 또한, 시스템을 구성하는 노드의 일부가 정지해 재기동할 때 물리ID의 변화를 극복하는 것도 가능하다. 한층 더, 본 실시예의 구성은, 컴포넌트 설치의 복잡화를 억제할 수 있다.
<기타 실시예>
상기 실시예는, 각 컴포넌트가 노드의 프로세스에 배치되어 있다고 가정하여 설명하였다. 즉, 노드의 컴포넌트와의 통신은 노드의 프로세스와의 통신을 의미한다. 또한, 상기 실시예에서, 논리ID는 송신처 컴포넌트를 표현하는 캐릭터 열이다. 그렇지만, 논리ID는 캐릭터 열에 한정되고, 또한 수치 등일 수 있다. 각 컴포넌트에는, 유일한 논리ID가 미리 할당되어도 된다. 예를 들면, 노드01이 통신 가능한 노드에서 동작하는 컴포넌트들에, 다른 논리ID가 할당될 수 있다.
상기 실시예에 있어서, 상기 미들웨어는 ID변환 테이블을 갖고, 다른 노드의 미들웨어의 ID변환 테이블과 동기를 한다. 그렇지만, 상기 미들웨어는 ID변환 테이블을 가질 필요는 없다. 예를 들면, (미도시된) 관리 노드는, 각 컴포넌트의 논리ID와 물리ID를 서로 관련시켜 격납할 수 있다. 이 경우에 미들웨어는, 논리ID에 대응하는 물리ID를 컴포넌트로부터 문의 받았을 때에, 이 관리 노드에 문의를 행하여, 물리ID를 취득할 수 있다.
도 12에 도시된 예에서는, 통신 미들웨어와 컴포넌트는, 퍼스널 컴퓨터 등의 노드에 의해 프로그램을 실행하여서 실현된다. 그렇지만, 본 발명에 따른 통신처리장치가 전용 하드웨어에 의해서 구성될 수도 있다는 것은 당업자에게 있어서 명확하다. 즉, 본 발명에 따른 통신처리장치는, 통신 미들웨어로서 동작하는 회로와, 그 통신처리장치내에서의 컴포넌트로서 동작하는 회로에 의해 구성될 수도 있다.
또한, 본 발명의 국면들은, 메모리 디바이스에 기록된 프로그램을 판독 및 실행하여 상기 실시예(들)의 기능들을 수행하는 시스템 또는 장치(또는 CPU 또는 MPU 등의 디바이스들)의 컴퓨터에 의해서, 또한, 시스템 또는 장치의 컴퓨터에 의해 수행된 단계들, 예를 들면, 메모리 디바이스에 기록된 프로그램을 판독 및 실행하여 상기 실시예(들)의 기능들을 수행하는 방법에 의해, 실현될 수도 있다. 이를 위해, 상기 프로그램은, 예를 들면, 네트워크를 통해 또는, 여러 가지 형태의 메모리 디바이스의 기록매체(예를 들면, 컴퓨터 판독 가능한 매체)로부터, 상기 컴퓨터에 제공된다.
본 발명을 예시적 실시예들을 참조하여 기재하였지만, 본 발명은 상기 개시된 예시적 실시예들에 한정되지 않는다는 것을 알 것이다. 아래의 청구항의 범위는, 모든 변형, 동등한 구조 및 기능을 포함하도록 아주 넓게 해석해야 한다.
Claims (5)
- 정보처리장치와 통신하는 제1통신부와, 상기 정보처리장치상에서 동작하는 프로세스와 상기 제1통신부를 거쳐서 통신하는 제2통신부를 갖는 통신처리장치로서,
상기 제1통신부는, 상기 정보처리장치의 정지를 상기 제2통신부에 통지하는 통지부를 구비하고,
상기 제2통신부는,
상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부;
송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 취득부;
상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 실행부; 및
상기 통지부에 의해 상기 정보처리장치가 정지한 것을 통지하였을 때에, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 무효화부를 구비한, 통신처리장치.
- 제 1 항에 있어서,
상기 제2통신부는,
송신처 프로세스에 관한 상기 대응 정보가 상기 격납부에 격납되어 있지 않거나 또는 무효화되어 있는 경우, 상기 송신처 프로세스의 상기 논리ID에 대응하는 프로세스ID를 상기 제1통신부에 문의하는 문의부; 및
상기 문의에 대한 응답으로서 상기 제1통신부로부터 상기 송신처 프로세스의 상기 프로세스ID를 취득하고, 상기 프로세스ID와, 상기 송신처 프로세스의 상기 논리ID간의 대응을 나타내는 상기 대응 정보를 상기 격납부에 격납하는 등록부를 더 구비한, 통신처리장치.
- 제 2 항에 있어서,
상기 제1통신부는,
복수의 정보처리장치의 각각의 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스의 상기 논리ID간의 대응을 나타내는 대응 정보를 격납하는 관리부; 및
상기 제2통신부로부터 상기 문의를 받았을 경우에, 상기 송신처 프로세스의 상기 논리ID에 대응하는 프로세스ID를 상기 관리부를 참조해서 취득하고, 상기 취득한 프로세스ID를 상기 제2통신부에 송신하는 송신부를 더 구비한, 통신처리장치.
- 정보처리장치와 통신하는 제1통신부와, 상기 정보처리장치상에서 동작하는 프로세스와 상기 제1통신부를 거쳐서 통신하는 제2통신부를 갖는 통신처리장치의 통신처리방법으로서,
상기 제2통신부는, 상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부를 포함하고,
상기 방법은,
상기 제2통신부가, 송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 단계;
상기 제2통신부가, 상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 단계;
상기 제1통신부가, 상기 정보처리장치가 정지한 것을 상기 제2통신부에 통지하는 단계; 및
상기 제2통신부가, 상기 정보처리장치가 정지한 것을 상기 통지부에 의해 통지하였을 때, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 단계를 포함한, 통신처리방법.
- 컴퓨터에게, 정보처리장치와 통신하는 제1통신부와, 상기 정보처리장치상에서 동작하는 프로세스와 상기 제1통신부를 거쳐서 통신하는 제2통신부를 갖는 통신처리장치의 통신처리방법으로서 기능하게 하는 컴퓨터 프로그램을 기억한 컴퓨터 판독 가능한 기억매체로서,
상기 제2통신부는, 상기 정보처리장치상에서 동작하고 있는 프로세스의 프로세스ID와, 상기 프로세스에 미리 할당되어 있는 논리ID간의 대응을 나타내는 대응 정보를 격납하는 격납부를 포함하고,
상기 방법은,
상기 제2통신부가, 송신처 프로세스의 논리ID에 대응하는 프로세스ID를 상기 격납부를 참조해서 취득하는 단계;
상기 제2통신부가, 상기 취득부가 취득한 상기 프로세스ID를 갖는 상기 정보처리장치상에서 동작하는 프로세스와의 통신을 실행하는 단계;
상기 제1통신부가, 상기 정보처리장치가 정지한 것을 상기 제2통신부에 통지하는 단계; 및
상기 제2통신부가, 상기 정보처리장치가 정지한 것을 상기 통지부에 의해 통지하였을 때, 상기 정보처리장치상에서 동작하는 각 프로세스에 관한 상기 대응 정보를 무효화하는 단계를 포함한, 통신처리방법으로서 기능하게 하는 컴퓨터 프로그램을 기억한 컴퓨터 판독 가능한 기억매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010083403 | 2010-03-31 | ||
JPJP-P-2010-083403 | 2010-03-31 | ||
JP2010283734A JP5671327B2 (ja) | 2010-03-31 | 2010-12-20 | 通信処理装置および通信処理方法 |
JPJP-P-2010-283734 | 2010-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110109909A KR20110109909A (ko) | 2011-10-06 |
KR101354573B1 true KR101354573B1 (ko) | 2014-01-22 |
Family
ID=44711153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110026183A KR101354573B1 (ko) | 2010-03-31 | 2011-03-24 | 통신처리장치, 통신처리방법 및 기억매체 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110247012A1 (ko) |
JP (1) | JP5671327B2 (ko) |
KR (1) | KR101354573B1 (ko) |
CN (1) | CN102279837B (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US20130117168A1 (en) | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
US9448847B2 (en) | 2011-07-15 | 2016-09-20 | Throughputer, Inc. | Concurrent program execution optimization |
CN104980450B (zh) * | 2014-04-01 | 2018-08-24 | 阿里巴巴集团控股有限公司 | 一种消息传递方法和系统及消息处理设备 |
US12093758B2 (en) * | 2019-03-07 | 2024-09-17 | International Business Machines Corporation | Middleware in web framework |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11196110A (ja) * | 1998-01-05 | 1999-07-21 | Yokogawa Electric Corp | トポロジー認識装置 |
KR20080100237A (ko) * | 2008-09-05 | 2008-11-14 | 후지쯔 가부시끼가이샤 | 컴퓨터 시스템 및 컴퓨터 시스템 구성 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511165A (en) * | 1992-10-23 | 1996-04-23 | International Business Machines Corporation | Method and apparatus for communicating data across a bus bridge upon request |
US5870599A (en) * | 1994-03-01 | 1999-02-09 | Intel Corporation | Computer system employing streaming buffer for instruction preetching |
JPH10161921A (ja) * | 1996-12-03 | 1998-06-19 | Nippon Telegr & Teleph Corp <Ntt> | バインド情報を用いたキャッシュ情報運用管理方法 |
US6810452B1 (en) * | 1999-03-19 | 2004-10-26 | Sony Corporation | Method and system for quarantine during bus topology configuration |
US7024463B1 (en) * | 1999-10-15 | 2006-04-04 | Omron Corporation | Network system, control method, control apparatus, and multiprocessor |
US6647446B1 (en) * | 2000-03-18 | 2003-11-11 | Sony Corporation | Method and system for using a new bus identifier resulting from a bus topology change |
US6950928B2 (en) * | 2001-03-30 | 2005-09-27 | Intel Corporation | Apparatus, method and system for fast register renaming using virtual renaming, including by using rename information or a renamed register |
US7797393B2 (en) * | 2004-01-08 | 2010-09-14 | Agency For Science, Technology And Research | Shared storage network system and a method for operating a shared storage network system |
GB2418326B (en) * | 2004-09-17 | 2007-04-11 | Hewlett Packard Development Co | Network vitrualization |
WO2007074611A1 (ja) * | 2005-12-26 | 2007-07-05 | Matsushita Electric Industrial Co., Ltd. | アドレス管理方法および通信機器 |
JP4890916B2 (ja) * | 2006-04-06 | 2012-03-07 | ルネサスエレクトロニクス株式会社 | ネットワークに接続された通信装置の管理方法、機器認識装置及びコンピュータプログラム |
US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
-
2010
- 2010-12-20 JP JP2010283734A patent/JP5671327B2/ja not_active Expired - Fee Related
-
2011
- 2011-02-14 US US13/027,017 patent/US20110247012A1/en not_active Abandoned
- 2011-03-24 KR KR1020110026183A patent/KR101354573B1/ko active IP Right Grant
- 2011-03-28 CN CN201110077584.9A patent/CN102279837B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11196110A (ja) * | 1998-01-05 | 1999-07-21 | Yokogawa Electric Corp | トポロジー認識装置 |
KR20080100237A (ko) * | 2008-09-05 | 2008-11-14 | 후지쯔 가부시끼가이샤 | 컴퓨터 시스템 및 컴퓨터 시스템 구성 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20110247012A1 (en) | 2011-10-06 |
JP2011227867A (ja) | 2011-11-10 |
JP5671327B2 (ja) | 2015-02-18 |
CN102279837B (zh) | 2015-08-05 |
CN102279837A (zh) | 2011-12-14 |
KR20110109909A (ko) | 2011-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101354573B1 (ko) | 통신처리장치, 통신처리방법 및 기억매체 | |
US20110238820A1 (en) | Computer, communication device, and communication control system | |
JP4083505B2 (ja) | 画像形成装置,プログラム更新方法および記録媒体 | |
EP2624502B1 (en) | Data processing apparatus, information processing method, and storage medium | |
EP4095678A1 (en) | Method and apparatus of deploying a cluster, device and storage medium | |
EP1292102A2 (en) | Image forming apparatus, program updating method and recording medium | |
JP5802049B2 (ja) | デバイス制御装置及び方法、クライアント装置、並びにデバイス制御システム | |
US20230412742A1 (en) | Apparatus, method, and system for monitoring image-forming apparatus, and storage medium | |
US8239862B2 (en) | Apparatus, method, and computer program product for processing information | |
JP2012048385A (ja) | 画像形成装置、プログラム状態判定方法、プログラム状態判定プログラム、及びプログラム状態判定システム | |
US20170270031A1 (en) | Information processing apparatus, test execution method, and computer-readable recording medium | |
JP2015092769A (ja) | 画像形成装置,プログラム更新方法および記録媒体 | |
JP2008227884A (ja) | 画像処理装置 | |
JP2009271858A (ja) | 計算機システム及びプログラム | |
JP5268597B2 (ja) | アプリケーションプラットフォーム、情報処理装置、情報処理装置の制御方法、プログラム、及び記憶媒体 | |
CN114385458A (zh) | 一种基于事件总线模型的传感器监控的方法和装置 | |
CN115993979A (zh) | 配置转换方法、平滑升级方法、装置、设备及存储介质 | |
JPWO2014087654A1 (ja) | データ送信装置、データ送信方法、及び記録媒体 | |
JP5464449B2 (ja) | 障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステム | |
CN112000618A (zh) | 集群节点的文件变动管理方法、装置、设备及存储介质 | |
JP2001202316A (ja) | 情報処理装置及びシステム及び方法並びに記憶媒体 | |
US20240323302A1 (en) | Information processing system and non-transitory computer readable medium storing program | |
KR102125791B1 (ko) | 멀티코어 환경에서 네트워크 세션 관리 방법 및 장치 | |
JP2020177404A (ja) | 装置登録システム、サーバー装置及び装置登録プログラム | |
KR20100069232A (ko) | 네트워크 버퍼를 이용한 컨텍스트 상태 정보 기반 미리 읽기 시스템 및 방법 |
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: 20161227 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171226 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200107 Year of fee payment: 7 |