KR20100017611A - 스케일러블 및 리던던트 원격통신 시스템을 위한 인터-프로세스 통신 방법 및 장치 - Google Patents

스케일러블 및 리던던트 원격통신 시스템을 위한 인터-프로세스 통신 방법 및 장치 Download PDF

Info

Publication number
KR20100017611A
KR20100017611A KR1020097025310A KR20097025310A KR20100017611A KR 20100017611 A KR20100017611 A KR 20100017611A KR 1020097025310 A KR1020097025310 A KR 1020097025310A KR 20097025310 A KR20097025310 A KR 20097025310A KR 20100017611 A KR20100017611 A KR 20100017611A
Authority
KR
South Korea
Prior art keywords
multicast
messaging
registered
software components
message
Prior art date
Application number
KR1020097025310A
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 KR20100017611A publication Critical patent/KR20100017611A/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/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

메시징 시스템 (108) 내에서 인터-프로세스 통신을 위한 메시징 엔티티 (서버 (110a) 또는 클라이언트 (110b)) 는, 소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하고, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하고, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하며, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 한다. 메시징 서버 (110a) 는, 분산된 컴퓨팅 시스템 (100) 내에서 신규한 메시징 클라이언트들 (110b) 을 발견하고, 등록된 메시징 클라이언트들 (110b) 이 동작한다는 것을 검증하고, 등록된 메시징 클라이언트들 (110b) 사이에서 동기화를 유지하고, 리소스 위치 캐시의 마스터 버전 (114a) 을 관리하며, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 을 관리한다.
Figure P1020097025310
메시징 서버, 메시징 클라이언트, 인터-프로세스

Description

스케일러블 및 리던던트 원격통신 시스템을 위한 인터-프로세스 통신 방법 및 장치{INTER-PROCESS COMMUNICATION METHODS AND APPARATUS FOR SCALABLE AND REDUNDANT TELECOMMUNICATIONS SYSTEMS}
35 U.S.C §119 하의 우선권 주장
본 특허 출원은, 2007년 5월 4일자로 출원되어 본 발명의 양수인에게 양도되어 있으며, 여기서 참조로서 명백하게 포함되는 미국 가출원 제 60/916,247 호를 우선권 주장한다.
기술분야
본 발명은 일반적으로 원격통신 시스템에 관한 것이다. 더 상세하게, 본 발명은 스케일러블/리던던트 원격통신 시스템을 구축하기 위한 인터-프로세스 통신 방법 및 장치에 관한 것이다.
배경기술
분산된 및 리던던트 원격통신 시스템들을 구축할 경우, 메시징 레이어의 몇몇 종류가 인터-프로세스 (또는 스레드) 통신을 제공하기 위해 사용된다. 이것은, 분산된 소프트웨어 유한 상태 머신 (finite state machine) 이 서비스를 제공하기 위해 통신하게 한다.
통상적인 메시징 시스템은 컴포넌트들 사이에서 포인트-투-포인트 메시지들을 전송하는 방식을 제공한다. 메시지들을 멀티캐스트 또는 브로드캐스트하는 능력이 종종 제공되지만, 항상 제공되는 것은 아니다.
또한, 많은 인터-프로세스 통신 방식들은 운영 시스템 및/또는 백플레인에 따라 특정된다. 이로 인해, 그 서비스들을 포팅 (port) 하는 것이 어렵고, 시스템의 전체적인 소프트웨어 아키텍처에 영향을 주는데, 이는 일반적으로 메시징이 모든 다른 소프트웨어가 기입되는 근본적인 (fundamental) 서비스이기 때문이다.
많은 다른 시스템들이, 명칭 변환 (name resolution), 네트워크 시간 분배, 및 또 다른 애플리케이션으로서 메시징의 상단상의 분산된 하트비트 (heartbeat) 레이어화와 같은 서비스들을 제공한다. 또한, 이것은 프로세싱에서 비효율성을 유도한다.
도면의 간단한 설명
도 1은 분산된 컴퓨팅 시스템내에 구현된 메시징 시스템의 일 예를 도시한다.
도 2는, 소프트웨어 컴포넌트가 메시징 시스템에 등록할 수도 있는 방법을 나타낸 일 예를 도시한다.
도 3은, 메시징 엔티티가 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 할 수도 있는 방법을 나타낸 일 예를 도시한다.
도 4는, 소프트웨어 컴포넌트가 멀티캐스트 이벤트에 대해 등록할 수도 있는 방법을 나타낸 일 예를 도시한다.
도 5는, 메시징 엔티티가 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 할 수도 있는 방법을 나타낸 일 예를 도시한다.
도 6은, 메시징 서버에 의해 수행될 수도 있는 기능들의 일부를 도시한다.
도 7은 메시징 서버에 의해 수행될 수도 있는 인터-프로세스 통신을 위한 방법의 일 예를 도시한다.
도 7a는 도 7의 방법에 대응하는 수단-플러스-기능 블록들을 도시한다.
도 8은 메시징 엔티티에 의해 수행될 수도 있는 인터-프로세스 통신을 위한 방법의 일 예를 도시한다.
도 8a는, 도 8의 방법에 대응하는 수단-플러스-기능 블록들을 도시한다.
도 9 내지 도 11은, 여기에 설명된 메시징 시스템이 구현될 수도 있는 방법을 나타낸 수 개의 예들을 도시한다.
도 12는, 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하기 위한 장치의 하드웨어 구현의 일부를 도시한다.
상세한 설명
인터-프로세스 통신용 장치가 개시된다. 그 장치는, 메시징 시스템에서 메시징 엔티티로서 사용될 수도 있다. 그 장치는, 프로세서 및 상기 프로세서에 커플링된 회로를 포함할 수도 있다. 그 회로는, 소프트웨어 컴포넌트들에 의해 그 메시징 시스템에 대한 등록을 용이하게 하고, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하고, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하며, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하도록 구성될 수도 있다.
인터-프로세스 통신용 장치가 개시된다. 그 장치는 메시징 시스템에서 메시징 서버로서 사용될 수도 있다. 그 장치는, 프로세서 및 상기 프로세서에 커플링된 회로를 포함할 수도 있다. 그 회로는, 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하고, 등록된 메시징 클라이언트들이 동작한다는 것을 검증하고, 그 등록된 메시징 클라이언트들 사이에서 동기화를 유지하고, 리소스 위치 캐시의 마스터 버전을 관리하며, 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하도록 구성될 수도 있다.
메시징 시스템내의 메시징 엔티티에 의해 수행될 수도 있는 인터-프로세스 통신을 위한 방법이 개시된다. 그 방법은, 소프트웨어 컴포넌트들에 의해 그 메시징 시스템에 대한 등록을 용이하게 하는 단계를 포함할 수도 있다. 또한, 그 방법은, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하는 단계를 포함할 수도 있다. 또한, 그 방법은, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하는 단계를 포함할 수도 있다. 또한, 그 방법은, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하는 단계를 포함할 수도 있다.
메시징 시스템내의 메시징 서버에 의해 수행될 수도 있는 인터-프로세스 통신을 위한 방법이 개시된다. 그 방법은, 분산된 컴퓨팅 시스템내에서 신규한 클라이언트들을 발견하는 단계를 포함할 수도 있다. 또한, 그 방법은, 등록된 메시징 클라이언트들이 동작한다는 것을 검증하는 단계를 포함할 수도 있다. 또한, 그 방법은, 그 등록된 메시징 클라이언트들 사이에서 동기화를 유지하는 단계를 포함할 수도 있다. 또한, 그 방법은, 리소스 위치 캐시의 마스터 버전을 관리하는 단계를 포함할 수도 있다. 또한, 그 방법은, 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하는 단계를 포함할 수도 있다.
분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성된 메시징 엔티티를 포함하는 하드웨어 유닛이 개시된다. 그 메시징 엔티티는, 소프트웨어 컴포넌트들에 의해 그 메시징 시스템에 대한 등록을 용이하게 하도록 구성된 등록 컴포넌트를 포함할 수도 있다. 또한, 메시징 엔티티는, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하도록 구성된 리소스 위치 서버를 포함할 수도 있다. 또한, 그 메시징 엔티티는, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하도록 구성된 멀티캐스트 등록 컴포넌트를 포함할 수도 있다. 또한, 메시징 엔티티는, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하도록 구성된 멀티캐스트 통신 컴포넌트를 포함할 수도 있다.
또한, 분산된 컴퓨팅 시스탬내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성된 메시징 서버를 포함하는 하드웨어 유닛이 개시된다. 그 메시징 서버는, 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하도록 구성된 클라이언트 발견 컴포넌트를 포함할 수도 있다. 또한, 그 메시징 서버는, 등록된 메시징 클라이언트들이 동작한다는 것을 검증하도록 구성된 검증 컴포넌트를 포함할 수도 있다. 또한, 그 메시징 서버는, 그 등록된 메시징 클라이언트들 사이에서 동기화를 유지하도록 구성된 동기화 컴포넌트를 포함할 수도 있다. 또한, 그 메시징 서버는, 리소스 위치 캐시의 마스터 버 전을 관리하도록 구성된 캐시 매니저를 포함할 수도 있다. 또한, 그 메시징 서버는, 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하도록 구성된 멀티캐스트 등록 매니저를 포함할 수도 있다.
또한, 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성된 메시징 엔티티를 포함하는 장치가 개시된다. 그 메시징 엔티티는, 소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하는 수단을 포함할 수도 있다. 또한, 그 메시징 엔티티는, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하는 수단을 포함할 수도 있다. 또한, 그 메시징 엔티티는, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하는 수단을 포함할 수도 있다. 또한, 그 메시징 엔티티는, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하는 수단을 포함할 수도 있다.
또한, 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성된 메시징 서버를 포함하는 장치가 개시된다. 그 장치는, 그 분산된 컴퓨팅 시스탬내에서 신규한 메시징 클라이언트들을 발견하는 수단을 포함할 수도 있다. 또한, 그 장치는, 등록된 메시징 클라이언트들이 동작한다는 것을 검증하는 수단을 포함할 수도 있다. 또한, 그 장치는, 그 등록된 메시징 클라이언트들 사이에서 동기화를 유지하는 수단을 포함할 수도 있다. 또한, 그 장치는, 리소스 위치 캐시의 마스터 버전을 관리하는 수단을 포함할 수도 있다. 또한, 그 장치는, 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하는 수단을 포함할 수도 있다.
또한, 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하기 위한 컴퓨터-프로그램 제품이 개시된다. 그 컴퓨터-프로그램 제품은 명령들을 갖는 컴퓨터 판독가능 매체를 포함할 수도 있다. 그 명령들은, 소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하기 위한 코드를 포함할 수도 있다. 또한, 그 명령들은, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하기 위한 코드를 포함할 수도 있다. 또한, 그 명령들은, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하기 위한 코드를 포함할 수도 있다. 또한, 그 명령들은, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하기 위한 코드를 포함할 수도 있다.
분산된 컴퓨팅 시스탬내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하기 위한 컴퓨터-프로그램 제품이 개시된다. 그 컴퓨터-프로그램 제품은 명령들을 갖는 컴퓨터 판독가능 매체를 포함할 수도 있다. 그 명령들은, 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하기 위한 코드를 포함할 수도 있다. 또한, 그 명령들은, 등록된 메시징 클라이언트들이 동작한다는 것을 검증하기 위한 코드를 포함할 수도 있다. 그 명령들은, 그 등록된 메시징 클라이언트들 사이에서 동기화를 유지하기 위한 코드를 포함할 수도 있다. 또한, 그 명령들은, 리소스 위치 캐시의 마스터 버전을 관리하기 위한 코드를 포함할 수도 있다. 또한, 그 명령들은, 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하기 위한 코드를 포함할 수도 있다.
본 발명은, 메시지들의 메시지 유니캐스팅 및 (브로드캐스팅을 포함하는) 멀티캐스팅할 수 있는 메시징 레이어를 제공하는 분산된 소프트웨어 아키텍처에 관한 것이다. 메시징 시스템은, 그 시스템의 분산 특성을 숨기고, 논리적 명칭들을 물리적인 어드레스들로 변환하기 위한 방법을 제공할 뿐만 아니라, 분산된 모듈들에 네트워크 시간을 분배하며, 그 분산된 모듈들이 여전히 동작한다는 것을 검증할 수 있을 수도 있다.
여기에 설명된 몇몇 양태들의 이점은, 메시징 시스템의 분산 특성을 숨길 수 있는 소프트웨어의 공통 레이어를 제공하기 위해, 많은 상이한 시스템들 (예를 들어, *NIX, Sun Solaris, RTOS, DSP) 에 포팅될 수 있는 메시징 시스템이다. 이것은 유연한 소프트웨어 아키텍처를 제공한다. 명칭된 소프트웨어 컴포넌트들은, 임의의 다른 컴포넌트들에 대한 정보없이, 하드웨어/소프트웨어 아키텍처내의 주변에서 이동할 수도 있다.
여기에 설명된 메시징 시스템은, 소프트웨어 컴포넌트들 사이에서 유니캐스트, 멀티캐스트, 또는 브로드캐스트 메시지들 중 적어도 하나를 수행하는 능력을 제공하기 위해, 단일 통합된 인터페이스 (unified interface) 를 제공할 수도 있다. 또한, 유니캐스트, 멀티캐스트, 또는 브로드캐스트 메시지들 중 적어도 하나가 확인응답될 수 있다. 멀티캐스트 메시지 수신자들은 전송자에 알려지지 않을 수도 있다. 이것은, 수신기로부터 멀티캐스트 메시지의 전송자를 디커플링시킨다. 이러한 디커플링은 매우 유연한 소프트웨어 아키텍처가 구축되게 하 며, 이는 잘 진화한다. 수신기들은, 전송자를 변형시킬 임의의 필요없이 오가는데 자유로울 수도 있다. 이것은, 이벤트 구동된 유한 상태 머신 소프트웨어 전개 모델들에 매우 적합하다.
메시징 시스템내의 모든 또는 수 개의 소프트웨어 컴포넌트들은 논리적 명칭들에 의해 식별될 수도 있다. 논리적 명칭의 전체 시스템에서의 위치는, 소프트웨어 컴포넌트들이 메시징 시스템에 등록하는 런 타임 (run time) 에서 구성될 수도 있다. 그 등록은, 신규한 엔트리가 명칭 캐시에 진입되게 할 수도 있다. 신규한 엔트리들이 명칭 캐시에 부가될 경우, 또한, 그들은 메시징 소프트웨어를 구동시킬 수 있는 모든 하드웨어 엔티티들에 브로드캐스팅될 수도 있다. 캐시가 변형되는 각각의 시간에서, 시퀀스 번호는 그 캐시의 현재 레벨을 나타내기 위해 증분될 수도 있다. 이러한 시퀀스 번호는, 모든 하드웨어 엔티티들이 일관된 명칭 캐시를 갖는다는 것을 확인하기 위해 하트비트 동작에서 사용될 수도 있다. 효율성을 위해, 명칭 캐시 업데이트가 풀 (full) 이거나 증분적일 수 있다. 메시징 시스템은, 요청기가 오래되어 풀 업데이트가 더 신속하지 않다면, 증분적인 업데이트에 대해 시도하도록 구성될 수도 있다.
특정한 컴포넌트에 전송되는 모든 메시지들은 컴포넌트의 논리적 명칭을 이용할 수도 있다. 메시징 시스템 그 자체는, 메시지가 전송을 위해 프로세싱되고 있는 바와 같이, 그 논리적 명칭을 물리적인 위치로 변환할 수도 있다. 이러한 특성은, 시스템의 분산 특성을 숨기며, 임의의 소프트웨어에 영향을 주지 않으면서 컴포넌트들이 시스템내에서 이동되게 한다.
분산된 하드웨어 아키텍처에 관해 사용될 경우, 또한, 메시징 레이어는, 모든 요구되는 컴포넌트들이 응답하고 있다는 것을 확인하기 위해 "하트비트" 메커니즘을 제공할 수도 있다. 하트비트 메시지는, 마스터 네트워크 시간 뿐만 아니라 명칭 캐시를 나타내는 정수를 포함할 수도 있다. 네트워크 시간은, 시스템내의 모든 엔티티들을 시간 동기화시키기 위해 사용될 수도 있다. 명칭 캐시 시퀀스 번호는, 슬래이브 캐시들 각각이 최신인지를 판정하기 위해 사용될 수도 있다. 오래된 것으로 판정된 캐시들은, 그들을 마스터와 동기화시키기 위해 풀 또는 증분적인 업데이트를 요청할 수도 있다.
또한, 메시징 레이어는, 그 메시징 레이어가 (Sun Solaris 기반 서버들과 같은) 단일 운영 시스템 타입의 환경 상에서 또는 원격통신 장비 특유의 분산된 멀티-CPU 환경내에서 사용되게 하도록 구성가능할 수도 있다. 이러한 능력은, 일 환경에서 기입된 소프트웨어가 재컴파일 (recompilation) 만으로 상이한 환경에서 사용되게 한다. 이러한 능력은, 메시징 레이어 위에 구축된 소프트웨어에게 매우 높은 레벨의 휴대성을 제공한다.
도 1은 분산된 컴퓨팅 시스템 (100) 을 도시한다. 분산된 컴퓨팅 시스템 (100) 은, 통신 버스 (104) 를 통해 서로 통신하고 있는 다수의 하드웨어 유닛들 (102) 을 포함한다. 하드웨어 유닛들 (102) 은 원격통신 및 데이터 통신 디바이스들에서 이용될 수도 있다. 예를 들어, 하드웨어 유닛들 (102) 은, 라우터, 스위치, 기지국 등에 포함되는 다양한 프로세싱 모듈들 또는 보드들일 수도 있다. 하드웨어 유닛들 (102) 은, 하나 이상의 태스크들을 수행하도록 함께 작동하는 다양한 소프트웨어 컴포넌트들 (106) 을 포함한다.
메시징 시스템 (108) 은 분산된 컴퓨팅 시스템 (100) 내에 구현된다. 메시징 시스템 (108) 은, 메시징 서버 (110a) 및 하나 이상의 메시징 클라이언트들 (110b) 을 포함한다. "메시징 엔티티" (110) 라는 용어는, 메시징 서버 (110a) 또는 메시징 클라이언트 (110b) 중 어느 하나를 지칭하기 위해 여기에서 사용될 수도 있다.
메시징 시스템 (108) 은, 분산된 컴퓨팅 시스템 (100) 내의 소프트웨어 컴포넌트들 (106) 이 서로 통신하게 한다. 소프트웨어 컴포넌트들 (106) 은 유한 상태 머신들일 수도 있으며, 메시징 시스템 (108) 의 목적은, 통신 중인 유한 상태 머신들이 동기적으로 유지되게 하는 것일 수도 있다.
소프트웨어 컴포넌트들 (106) 사이의 통신은 유니캐스트, 멀티캐스트, 또는 브로드캐스트일 수도 있다. 유리하게, 메시징 시스템 (108) 은, 분산된 컴퓨팅 시스템 (100) 의 분산 특성을 숨길 수 있다. 분산된 컴퓨팅 시스템 (100) 내의 소프트웨어 컴포넌트들 (106) 은 물리적인 어드레스 대신 논리적 명칭들에 의해 식별될 수도 있다. 따라서, 소프트웨어 컴포넌트들 (106) 은, 분산된 컴퓨팅 시스템 (100) 의 토폴로지 (topology) 내의 그들 각각의 위치와는 관계없이 서로 통신할 수 있을 수도 있다.
메시징 서버 (110a) 는, 리소스 위치 캐시의 마스터 버전 (114a) 및 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 을 관리한다. 메시징 클라이언트들 (110b) 각각은, 리소스 위치 캐시의 로컬 카피 (114b) 및 멀티캐스트 등록 데이 터 구조의 로컬 카피 (116b) 와 함께 작동한다.
각각의 메시징 엔티티 (110; 즉, 메시징 서버 (110a) 또는 메시징 클라이언트 (110b) 중 어느 하나) 는, 분산된 컴퓨팅 시스템 (100) 내의 소프트웨어 컴포넌트들 (106) 이 메시징 시스템 (108) 에 등록하게 하도록 구성될 수도 있다. 또한, 각각의 메시징 엔티티 (110) 는, 등록된 소프트웨어 컴포넌트들 (106) 사이에서 통신을 용이하게 할 수도 있다.
이들 기능들을 수행하는 것에 부가하여, 메시징 서버 (110a) 는 분산된 컴퓨팅 시스템 (100) 내에서 신규한 메시징 클라이언트들 (110b) 을 발견하도록, 또한, 구성될 수도 있다. 또한, 메시징 서버 (110a) 는, 등록된 메시징 클라이언트들 (110b) 이 동작한다는 것을 검증할 수도 있다. 또한, 메시징 서버 (110a) 는, 그 등록된 메시징 클라이언트들 (110b) 사이에서 동기화를 유지할 수도 있다. 또한, 메시징 서버 (110a) 는 리소스 위치 캐시의 마스터 버전 (114a) 및 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 을 관리할 수도 있다.
도 2는, 소프트웨어 컴포넌트 (106) 가 메시징 시스템 (108) 에 등록할 수도 있는 방법을 나타낸 일 예를 도시한다. 소프트웨어 컴포넌트 (106) 는 등록 메시지 (222) 를 메시징 서버 (110a) 에 전송할 수도 있다. 등록 메시지 (222) 는, 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224) 를 포함할 수도 있다. 또한, 등록 메시지 (222) 는 소프트웨어 컴포넌트 (106) 에 대한 논리적 명칭 (226) 을 포함할 수도 있다. 또한, 등록 메시지 (222) 는, 논리적 명칭 (226) 에 대한 하나 이상의 별칭 (aliase; 228) 들을 포함할 수도 있다.
등록 메시지 (222) 의 수신에 응답하여, 메시징 서버 (110a) 는, 리소스 위치 캐시의 마스터 버전 (114a) 에서 소프트웨어 컴포넌트 (106) 에 대한 엔트리 (230) 를 생성할 수도 있다. 엔트리 (230) 는, 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224), 소프트웨어 컴포넌트 (106) 의 논리적 명칭 (226), 논리적 명칭 (226) 에 대한 별칭들 (228) 을 연관시킬 수도 있다.
또한, 메시징 서버 (110a) 는, 메시징 시스템 (108) 내의 모든 메시징 클라이언트들 (110b) 로 브로드캐스트 메시지 (232) 를 전송할 수도 있다. 브로드캐스트 메시지 (232) 는, 리소스 위치 캐시의 마스터 버전 (114a) 에 부가되었던 엔트리 (230) 를 포함할 수도 있다. 브로드캐스트 메시지 (232) 의 수신에 응답하여, 각각의 메시징 클라이언트 (110b) 는, 리소스 위치 캐시의 마스터 버전 (114a) 에 부가되었던 엔트리 (230) 를 포함하도록 리소스 위치 캐시의 로컬 카피 (114b) 를 업데이트할 수도 있다.
메시징 서버 (110a) 는 등록 컴포넌트 (234) 를 갖는 것으로 도시되어 있다. 등록 컴포넌트 (234) 는, 소프트웨어 컴포넌트들 (106) 에 의해 메시징 시스템 (108) 에 대한 등록을 용이하게 하도록 구성될 수도 있다. 더 상세하게, 등록 컴포넌트 (234) 는, 등록 메시지 (222) 를 프로세싱하고, 리소스 위치 캐시의 마스터 버전 (114a) 에 적절한 엔트리 (230) 를 부가하며, 메시징 시스템 (108) 내의 모든 메시징 클라이언트들 (110b) 에 엔트리 (230) 를 갖는 브로드캐스트 메시지 (232) 를 전송하도록 구성될 수도 있다.
도 2의 예에서, 소프트웨어 컴포넌트 (106) 는 등록 메시지 (222) 를 메시징 서버 (110a) 에 전송한다. 대안적으로, 소프트웨어 컴포넌트 (106) 는 등록 메시지 (222) 를 메시징 클라이언트 (110b) 에 전송할 수도 있고, 메시징 클라이언트 (110b) 는 관련 정보 (예를 들어, 물리적인 어드레스 (224), 논리적 명칭 (226), 및 별칭들 (228)) 를 메시징 서버 (110a) 에 포워딩할 수도 있다.
도 3은, 메시징 엔티티 (110; 즉, 메시징 서버 (110a) 또는 메시징 클라이언트 (110b) 중 어느 하나) 가 등록된 소프트웨어 컴포넌트들 (106) 사이에서 유니캐스트 통신을 용이하게 할 수도 있는 방법을 나타낸 일 예를 도시한다. 이러한 예에서, 메시징 시스템 (108) 내의 소프트웨어 컴포넌트 (106a) 는, 메시징 시스템 (108) 내의 또 다른 소프트웨어 컴포넌트 (106b) 에 의해 최종 수신되는 메시지 (336) 를 전송한다고 가정할 것이다. 그러나, 전송자 소프트웨어 컴포넌트 (106a) 는, 수신자 소프트웨어 컴포넌트 (106b) 의 물리적인 어드레스 (224) 를 알 필요가 없다. 대신, 전송자 소프트웨어 컴포넌트 (106a) 에 의해 전송되는 메시지 (336) 의 목적지는, 소프트웨어 컴포넌트 (106b) 의 논리적 명칭 (226) 에 의해 식별된다.
전송자 소프트웨어 컴포넌트 (106a) 로부터 메시지 (336) 를 수신할 시에, 메시징 엔티티 (110) 는 수신자 소프트웨어 컴포넌트 (106b) 의 논리적 명칭 (226) 을 수신자 소프트웨어 컴포넌트 (106b) 의 물리적인 어드레스 (224) 로 변환한다. 이것은 리소스 위치 캐시 (114) (메시징 엔티티 (110) 가 메시징 서버 (110a) 이면 리소스 위치 캐시의 마스터 버전 (114a), 또는 메시징 엔티티 (110) 가 메시징 클라이언트 (110b) 이면 리소스 위치 캐시의 로컬 카피 (114b) 중 어느 하나) 를 참조함으로써 달성될 수도 있다. 그 후, 메시징 엔티티 (110) 는 메시지 (336) 를 수신자 소프트웨어 컴포넌트 (106b) 로 포워딩할 수도 있다.
메시징 엔티티 (110) 는 리소스 위치 서버 (340) 를 갖는 것으로 도시되어 있다. 리소스 위치 서버 (340) 는, 등록된 소프트웨어 컴포넌트들 (106) 사이에서 유니캐스트 통신을 용이하게 하도록 구성될 수도 있다. 더 상세하게, 리소스 위치 서버 (340) 는, 전송자 소프트웨어 컴포넌트 (106a) 로부터의 메시지 (336) 를 프로세싱하고, 수신자 소프트웨어 컴포넌트 (106b) 의 논리적 명칭 (226) 을 수신자 소프트웨어 컴포넌트 (106b) 의 물리적인 어드레스 (224) 로 변환하며, 메시지 (336) 를 수신자 소프트웨어 컴포넌트 (106b) 로 포워딩하도록 구성될 수도 있다.
수신자 소프트웨어 컴포넌트 (106b) 는 메시지 (336) 의 수신을 확인응답할 수도 있다. 수신자 소프트웨어 컴포넌트 (106b) 는 확인응답 메시지 (338) 를 메시징 엔티티 (110) 에 역으로 전송할 수도 있다. 메시징 엔티티 (110) 는 확인응답 메시지 (338) 를 전송자 소프트웨어 컴포넌트 (106a) 로 포워딩할 수도 있다.
메시징 시스템 (108) 은, 분산된 컴퓨팅 시스템 (100) 내의 소프트웨어 컴포넌트들 (106) 사이에서 멀티캐스트 통신을 용이하게 할 수도 있다. 도 4는, 소프트웨어 컴포넌트 (106) 가 멀티캐스트 이벤트에 대해 등록할 수도 있는 방법을 나타낸 일 예를 도시한다.
소프트웨어 컴포넌트 (106) 는 멀티캐스트 등록 메시지 (442) 를 메시징 서 버 (110a) 에 전송할 수도 있다. 멀티캐스트 등록 메시지 (442) 는 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224) 를 포함할 수도 있다. 또한, 멀티캐스트 등록 메시지 (442) 는, 소프트웨어 컴포넌트 (106) 가 등록하고 있는 멀티캐스트 이벤트의 논리적 명칭 (444) 을 포함할 수도 있다.
멀티캐스트 등록 메시지 (442) 의 수신에 응답하여, 메시징 서버 (110a) 는, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 에서 소프트웨어 컴포넌트 (106) 에 대한 엔트리 (446) 를 생성할 수도 있다. 엔트리 (446) 는, 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224) 와 소프트웨어 컴포넌트 (106) 가 등록하고 있는 멀티캐스트 이벤트의 논리적 명칭 (444) 을 연관시킬 수도 있다.
또한, 메시징 서버 (110a) 는 메시징 시스템 (108) 내의 모든 메시징 클라이언트들 (110b) 에 브로드캐스트 메시지 (448) 를 전송할 수도 있다. 브로드캐스트 메시지 (448) 는, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 에 부가되었던 엔트리 (446) 를 포함할 수도 있다. 브로드캐스트 메시지 (448) 의 수신에 응답하여, 각각의 메시징 클라이언트 (110b) 는, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 에 부가되었던 엔트리 (446) 를 포함하도록 멀티캐스트 등록 데이터 구조의 로컬 카피 (116a) 를 업데이트할 수도 있다.
메시징 서버 (110a) 는 멀티캐스트 등록 컴포넌트 (450) 를 갖는 것으로 도시되어 있다. 멀티캐스트 등록 컴포넌트 (450) 는 소프트웨어 컴포넌트들 (106) 에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하도록 구성될 수도 있다. 더 상세하게, 멀티캐스트 등록 컴포넌트 (450) 는, 멀티캐스트 등록 메 시지 (442) 를 프로세싱하고, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 에 적절한 엔트리 (446) 를 부가하며, 메시징 시스템 (108) 내의 모든 메시징 클라이언트들 (110b) 에 엔트리 (446) 를 갖는 브로드캐스트 메시지 (448) 를 전송하도록 구성될 수도 있다.
도 4의 예에서, 소프트웨어 컴포넌트 (106) 는 멀티캐스트 등록 메시지 (442) 를 메시징 서버 (110a) 에 전송한다. 대안적으로, 소프트웨어 컴포넌트 (106) 는 멀티캐스트 등록 메시지 (442) 를 메시징 클라이언트 (110b) 에 전송할 수도 있고, 메시징 클라이언트 (110b) 는 관련 정보 (예를 들어, 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224) 및 소프트웨어 컴포넌트 (106) 가 등록하고 있는 멀티캐스트 이벤트의 논리적 명칭 (444)) 를 메시징 서버 (110a) 에 포워딩할 수도 있다.
도 5는, 메시징 엔티티 (110; 즉, 메시징 서버 (110a) 또는 메시징 클라이언트 (110b) 중 어느 하나) 가 등록된 소프트웨어 컴포넌트들 (106) 사이에서 멀티캐스트 통신을 용이하게 할 수도 있는 방법을 나타낸 일 예를 도시한다. 이러한 예에서, 메시징 시스템 (108) 내의 소프트웨어 컴포넌트 (106a) 가 메시징 시스템 (108) 내의 다수의 소프트웨어 컴포넌트들 (106b 내지 106d) 에 의해 최종 수신되는 멀티캐스트 메시지 (552) 를 전송한다고 가정할 것이다. 그러나, 전송자 소프트웨어 컴포넌트 (106a) 는, 수신자 소프트웨어 컴포넌트들 (106b 내지 106d) 의 물리적인 어드레스들 (224b 내지 224d) 을 알 필요는 없다. 대신, 전송자 소프트웨어 컴포넌트 (106a) 에 의해 전송되는 멀티캐스트 메시지 (552) 의 목적지는, 멀티캐스트 이벤트에 대한 논리적 명칭 (444) 에 의해 식별된다.
전송자 소프트웨어 컴포넌트 (106a) 로부터 멀티캐스트 메시지 (552) 를 수신할 시에, 메시징 엔티티 (110) 는, 멀티캐스트 이벤트에 대해 등록한 소프트웨어 컴포넌트들 (106b 내지 106d) 의 물리적인 어드레스들 (224b 내지 224d) 을 식별한다. 이것은, 멀티캐스트 등록 데이터 구조 (116) 를 참조함으로써 달성될 수도 있다. 그 후, 메시징 엔티티 (110) 는 멀티캐스트 메시지 (552) 를 수신자 소프트웨어 컴포넌트들 (106b 내지 106d) 로 포워딩할 수도 있다.
각각의 수신자 소프트웨어 컴포넌트들 (106b 내지 106d) 은, 확인응답 메시지 (554) 를 메시징 엔티티 (110) 에 역으로 전송함으로써 멀티캐스트 메시지 (552) 에 응답할 수도 있다. 멀티캐스트 메시지 (552) 를 수신하도록 의도된 모든 소프트웨어 컴포넌트들 (106b 내지 106d) 이 확인응답 메시지 (554) 로 응답한 이후, 메시지 엔티티 (110) 는 전송자 소프트웨어 컴포넌트 (106a) 에 역으로 단일 확인응답 메시지 (556) 를 전송할 수도 있다.
메시징 엔티티 (110) 는 멀티캐스트 통신 컴포넌트 (558) 를 갖는 것으로 도시되어 있다. 멀티캐스트 통신 컴포넌트 (558) 는, 등록된 소프트웨어 컴포넌트들 (106) 사이에서 멀티캐스트 통신을 용이하게 하도록 구성될 수도 있다. 더 상세하게, 멀티캐스트 통신 컴포넌트 (558) 는, 전송자 소프트웨어 컴포넌트 (106a) 로부터 수신된 멀티캐스트 메시지 (552) 를 프로세싱하고, 멀티캐스트 이벤트에 대해 등록한 소프트웨어 컴포넌트들 (106b 내지 106d) 의 물리적인 어드레스들 (224b 내지 224d) 을 식별하며, 멀티캐스트 메시지 (552) 를 이들 물리적인 어 드레스들 (224b 내지 224d) 로 포워딩하도록 구성될 수도 있다. 또한, 멀티캐스트 통신 컴포넌트 (558) 는, 수신자 소프트웨어 컴포넌트들 (106b 내지 106d) 로부터 수신된 확인응답 메시지 (554) 를 프로세싱하고, 단일 확인응답 메시지 (556) 를 전송자 소프트웨어 컴포넌트 (106a) 에 역으로 전송하도록 구성될 수도 있다.
도 6은, 메시징 서버 (110a) 에 의해 수행될 수도 있는 기능들의 일부를 도시한다. 메시징 서버 (110a) 는 검증 컴포넌트 (680) 를 갖는 것으로 도시되어 있다. 검증 컴포넌트 (680) 는, 등록된 메시징 클라이언트들 (110b) 이 동작한다는 것을 검증하도록 구성될 수도 있다.
메시징 서버 (110a) 는 메시징 시스템 (108) 내의 모든 메시징 클라이언트들 (110b) 에 하트비트 메시지 (662) 를 주기적으로 전송할 수도 있다. 모든 등록된 메시징 클라이언트들 (110b) 은, 하트비트 응답 (664) 을 메시징 서버 (110a) 에 전송함으로써 수신되는 각각의 하트비트 메시지 (662) 에 응답하도록 구성될 수도 있다. 특정한 메시징 클라이언트 (110a) 가 전송되는 하트비트 메시지들 (662) 에 계속 응답하는 한, 메시징 서버 (110a) 는, 메시징 클라이언트 (110b) 가 여전히 동작한다고 결론을 지을 수도 있다. 그러나, 특정한 메시지 클라이언트 (110b) 가 특정한 수의 연속하는 하트비트 메시지들 (662) (예를 들어, 3개의 연속하는 하트비트 메시지들 (662)) 에 응답하기를 실패하면, 메시징 서버 (110a) 는, 메시징 클라이언트 (110b) 가 더 이상 동작하지 않는다고 결론을 지을 수도 있다.
또한, 메시징 서버 (110a) 는 동기화 컴포넌트 (682) 를 갖는 것으로 도시되어 있다. 동기화 컴포넌트 (682) 는 등록된 메시징 클라이언트들 (110b) 사이 에서 동기화를 유지하도록 구성될 수도 있다. 등록된 메시징 클라이언트들 (110b) 사이에서 동기화를 유지하기 위해, 메시징 서버 (110a) 에 의해 전송된 하트비트 메시지들 (662) 은, 메시징 시스템 (108) 에 대한 마스터 시간 (666) 을 포함할 수도 있다. 각각의 메시징 클라이언트 (110b) 는, (즉, 로컬 시간 (668) 이 마스터 시간 (666) 과 동일하도록) 하트비트 메시지들 (662) 에서 수신된 마스터 시간 (666) 에 기초하여, 로컬 시간 (668) 을 업데이트할 수도 있다.
또한, 메시징 서버 (110a) 는 캐시 매니저 (684) 를 갖는 것으로 도시되어 있다. 캐시 매니저 (684) 는, 리소스 위치 캐시 (114a) 의 마스터 버전 (114a) 을 관리하도록 구성될 수도 있다. 캐시 매니저 (684) 는, 리소스 위치 캐시 (114a) 에 대해 변화가 행해질 때마다, 메시징 시스템 (108) 내의 메시징 클라이언트들 (110b) 에 통지하도록 구성될 수도 있다. 그 후, 각각의 메시징 클라이언트 (110b) 는 리소스 위치 캐시의 로컬 카피 (114b) 를 업데이트할 수도 있다.
메시징 서버 (110a) 에 의해 전송된 하트비트 메시지들 (662) 은 캐시 시퀀스 번호 (672a) 를 포함할 수도 있다. 캐시 시퀀스 번호 (672a) 는, 리소스 위치 캐시의 로컬 카피 (114b) 가 리소스 위치 캐시의 마스터 버전 (114a) 에 대해 최신이라는 것을 보장하기 위하여, 메시징 클라이언트들 (110b) 에 의해 사용될 수도 있다.
리소스 위치 캐시의 마스터 버전 (114a) 이 업데이트될 때마다, 메시징 서버 (110a) 는 캐시 시퀀스 번호 (672a) 를 증분시킬 수도 있다. 각각의 메시징 클라이언트 (110b) 는, 하트비트 메시지들 (662) 에 포함된 마스터 캐시 시퀀스 번호 (672a) 와 로컬 캐시 시퀀스 번호 (672b) 를 비교할 수도 있다. 로컬 캐시 시퀀스 번호 (672b) 가 마스터 캐시 시퀀스 번호 (672a) 와 매칭하면, 메시징 클라이언트 (110b) 는 리소스 위치 캐시의 로컬 카피 (114b) 가 최신이라고 결론을 지을 수도 있다. 그러나, 로컬 캐시 시퀀스 번호 (672b) 가 마스터 캐시 시퀀스 번호 (672a) 와 매칭하지 않으면, 매시징 클라이언트 (110b) 는 리소스 위치 캐시의 로컬 카피 (614b) 가 오래된 것이라고 결론을 지을 수도 있다. 그 후, 메시징 클라이언트 (110b) 는 업데이트 요청 (674) 을 메시징 서버 (110a) 에 전송할 수도 있다.
메시징 클라이언트 (110b) 로부터 업데이트 요청 (674) 을 수신할 시에, 메시징 서버 (110a) 는 리소스 위치 캐시 업데이트 (674) 를 메시징 클라이언트 (110b) 에 전송할 수도 있다. 리소스 위치 캐시 업데이트 (676) 는 완전한 업데이트일 수도 있으며, 즉, 리소스 위치 캐시의 마스터 버전 (114a) 전체의 카피가 메시징 클라이언트 (110b) 로 송신될 수도 있다. 대안적으로, 리소스 위치 캐시 업데이트 (676) 는 증분적인 업데이트일 수도 있으며, 즉, 로컬 캐시 (114b) 가 업데이트되었던 최종 시간 이후 발생한 캐시 (114a) 에 대한 변경만이 송신될 수도 있다.
또한, 메시징 서버 (110a) 는 클라이언트 발견 컴포넌트 (678) 를 갖는 것으로 도시되어 있다. 클라이언트 발견 컴포넌트 (678) 는, 분산된 컴퓨팅 시스템 (100) 내에서 신규한 메시징 클라이언트들 (110b) 를 발견하도록 구성될 수도 있다. 분산된 컴퓨팅 시스템 (100) 내의 모든 메시징 클라이언트들 (110b) 에 하 트비트 메시지들 (662) 을 전송함으로써, 신규한 메시징 클라이언트들 (110b) 은 메시징 서버 (110a) 의 아이덴티티를 결정할 수 있다. 그 후, 신규한 클라이언트들 (110b) 은 (예를 들어, 응답 (664) 을 메시징 서버 (110a) 에 전송함으로써) 메시징 시스템 (108) 에 대한 등록에 관해 메시징 서버 (110a) 와 접촉할 수도 있다.
또한, 메시징 서버 (110a) 는 멀티캐스트 등록 매니저 (686) 를 갖는 것으로 도시되어 있다. 멀티캐스트 등록 매니저 (686) 는, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 을 관리하도록 구성될 수도 있다. 멀티캐스트 등록 매니저 (686) 는, 멀티캐스트 등록 데이터 구조 (116a) 에 대한 변화가 행해질 때마다, 메시징 시스템 (108) 내의 메시징 클라이언트들 (110b) 에 통지하도록 구성될 수도 있다. 그 후, 각각의 메시징 클라이언트 (110b) 는 멀티캐스트 등록 데이터 구조의 로컬 카피 (116b) 를 업데이트할 수도 있다.
도 7은, 분산된 컴퓨팅 시스템 (100) 내에 구현되는 메시징 시스템 (108) 내의 메시징 서버 (110a) 에 의해 수행될 수도 있는 인터-프로세스 통신을 위한 방법 (700) 의 일 예를 도시한다.
도시된 방법 (700) 에 따르면, 메시징 서버 (110a) 는 분산된 컴퓨팅 시스템 (100) 내에서 신규한 메시징 클라이언트 (110b) 를 발견할 수도 있다 (702). 이것은, 분산된 컴퓨팅 시스템 (100) 내의 모든 메시징 클라이언트들 (110b) 에 하트비트 메시지들 (662) 을 전송함으로써 달성될 수도 있다. 하트비트 메시지들 (662) 을 수신할 시에, 신규한 메시징 클라이언트들 (110b) 은 메시징 서버 (110a) 의 아이덴티티를 결정할 수 있다. 그 후, 신규한 메시징 클라이언트들 (110b) 은, 메시징 시스템 (108) 에 대한 등록에 관해 메시징 서버 (110a) 와 접촉할 수도 있다.
또한, 메시징 서버 (110a) 는 등록된 메시징 클라이언트들 (110b) 이 동작한다는 것을 검증할 수도 있다 (704). 이것은, 분산된 컴퓨팅 시스템 (100) 내의 모든 메시징 클라이언트들 (110b) 에 하트비트 메시지들 (662) 을 주기적으로 전송함으로써 달성될 수도 있다. 모든 등록된 메시징 클라이언트들 (110b) 은, 메시징 서버 (110a) 에 응답 (664) 을 전송함으로써 수신된 각각의 하트비트 메시지 (662) 에 응답하도록 구성될 수도 있다. 특정한 메시징 클라이언트 (110a) 가 전송되는 하트비트 메시지들 (662) 에 계속 응답하는 한, 메시징 서버 (110a) 는 메시징 클라이언트 (110b) 가 계속 동작한다고 결론을 지을 수도 있다. 그러나, 특정한 메시징 클라이언트 (110b) 가 특정한 수의 연속하는 하트비트 메시지들 (662) (예를 들어, 3개의 연속하는 하트비트 메시지들 (662)) 에 응답하기를 실패하면, 메시징 서버 (110a) 는 메시징 클라이언트 (110b) 가 더 이상 동작하지 않는다고 결론을 지을 수도 있다.
또한, 메시징 서버 (110a) 는 등록된 메시징 클라이언트들 (110b) 사이에서 동기화를 유지할 수도 있다 (706). 메시징 서버 (110a) 에 의해 전송된 하트비트 메시지들 (662) 은, 메시징 시스템 (108) 에 대한 마스터 시간 (666) 을 포함할 수도 있다. 각각의 메시징 클라이언트 (110b) 는, 하트비트 메시지들 (662) 에서 수신되는 마스터 시간 (666) 에 기초하여 로컬 시간 (668) 을 업데이트할 수도 있다.
또한, 메시징 서버 (110a) 는, 메시징 리소스 위치 캐시의 마스터 버전 (114a) 을 관리할 수도 있다 (708). 메시징 서버 (110a) 는, 메시징 리소스 위치 캐시의 마스터 버전 (114a) 에 행해지는 변화들 (예를 들어, 신규한 소프트웨어 컴포넌트 (106) 가 메시징 시스템 (108) 에 등록할 경우) 에 관해 메시징 시스템 (108) 내의 메시징 클라이언트들 (110b) 에 통지할 수도 있다.
또한, 메시징 서버 (110a) 는 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 을 관리할 수도 있다 (710). 메시징 서버 (110a) 는, 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 에 행해지는 변화들 (예를 들어, 소프트웨어 컴포넌트 (106) 가 멀티캐스트 이벤트에 대해 등록할 경우) 에 관해 메시징 시스템 (108) 내의 메시징 클라이언트들 (110b) 에 통지할 수도 있다.
상술된 도 7의 방법 (700) 은, 도 7a에 도시된 수단-플러스-기능 블록들 (700A) 에 대응하는 다양한 하드웨어 및/또는 소프트웨어 컴포넌트(들) 및/또는 모듈(들)에 의해 수행될 수도 있다. 즉, 도 7의 블록들 (702 내지 710) 은 수단-플러스-기능 블록들 (702A 내지 710A) 에 대응한다.
도 8은, 분산된 컴퓨팅 시스템 (100) 내에 구현되는 메시징 시스템 (108) 내의 메시징 엔티티 (110; 즉, 메시징 서버 (110a) 또는 메시징 클라이언트 (110b) 중 어느 하나) 에 의해 수행될 수도 있는 인터-프로세스 통신을 위한 방법 (800) 의 일 예를 도시한다.
도시된 방법 (800) 에 따르면, 메시징 엔티티 (110) 는, 소프트웨어 컴포넌 트 (106) 에 의해 메시징 시스템 (108) 에 대한 등록을 용이하게 할 수도 있다 (802). 소프트웨어 컴포넌트 (106) 는 등록 메시지 (222) 를 메시징 엔티티 (110) 에 전송할 수도 있다. 등록 메시지 (222) 의 수신에 응답하여, 메시징 엔티티 (110) 는, 소프트웨어 컴포넌트 (106) 에 대한 엔트리 (230) 가 리소스 위치 캐시의 마스터 버전 (114a) 에서 생성되게 할 수도 있다. 그 엔트리 (230) 는, 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224), 소프트웨어 컴포넌트 (106) 의 논리적 명칭 (226), 및 논리적 명칭 (226) 에 대해 존재하는 임의의 별칭들 (228) 을 연관시킬 수도 있다. 메시징 시스템 (108) 내의 모든 메시징 클라이언트들 (110b) 은, 리소스 위치 캐시의 마스터 버전 (114a) 에 부가되는 엔트리 (230) 에 관해 통지받을 수도 있다.
또한, 메시징 엔티티 (110) 는 등록된 소프트웨어 컴포넌트들 (106) 사이에서 유니캐스트 통신을 용이하게 할 수도 있다 (804). 메시징 엔티티 (110) 는 메시지 (336) 를 수신할 수도 있으며, 여기서, 목적지는 수신자 소프트웨어 컴포넌트 (106b) 의 논리적 명칭 (226) 에 의해 식별된다. 메시징 엔티티 (110) 는, 수신자 소프트웨어 컴포넌트 (106b) 의 논리적 명칭 (226) 을 수신자 소프트웨어 컴포넌트 (106b) 의 물리적인 어드레스 (224) 로 변환할 수도 있다. 이것은, 리소스 위치 캐시 (114) 를 참조함으로써 달성될 수도 있다. 그 후, 메시징 엔티티 (110) 는, 수신자 소프트웨어 컴포넌트 (106b) 의 물리적인 어드레스 (224) 로 메시지 (336) 를 포워딩할 수도 있다.
또한, 메시징 엔티티 (110) 는, 분산된 컴퓨팅 시스템 (100) 내의 소프트웨 어 컴포넌트들 (106) 에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 할 수도 있다 (806). 멀티캐스트 등록 메시지 (442) 의 수신에 응답하여, 메시징 엔티티 (110) 는 소프트웨어 컴포넌트 (106) 에 대한 엔트리 (446) 가 멀티캐스트 등록 데이터 구조의 마스터 버전 (116a) 에서 생성되게 할 수도 있다. 그 엔트리 (446) 는, 소프트웨어 컴포넌트 (106) 의 물리적인 어드레스 (224) 와 소프트웨어 컴포넌트 (106) 가 등록하고 있는 멀티캐스트 이벤트의 논리적 명칭 (444) 을 연관시킬 수도 있다.
또한, 메시징 엔티티 (110) 는, 등록된 소프트웨어 컴포넌트들 (106) 사이에서 멀티캐스트 통신을 용이하게 할 수도 있다 (808). 멀티캐스트 이벤트에 대한 논리적 명칭 (444) 을 포함하는 멀티캐스트 메시지 (552) 를 수신할 시에, 메시징 엔티티 (110) 는, 멀티캐스트 이벤트에 대해 등록된 소프트웨어 컴포넌트들 (106b 내지 106d) 의 물리적인 어드레스들 (224b 내지 224d) 을 식별할 수도 있다. 이것은, 멀티캐스트 등록 데이터 구조 (116) 를 참조함으로써 달성될 수도 있다. 그 후, 메시징 엔티티 (110) 는 적절한 수신자 소프트웨어 컴포넌트들 (106b 내지 106d) 에 멀티캐스트 메시지 (552) 를 포워딩할 수도 있다.
상술된 도 8의 방법 (800) 은, 도 8a에 도시된 수단-플러스-기능 블록들 (800A) 에 대응하는 다양한 하드웨어 및/또는 소프트웨어 컴포넌트(들) 및/또는 모듈(들)에 의해 수행될 수도 있다. 즉, 도 8의 블록들 (802 내지 808) 은 도 8a에 도시된 수단-플러스-기능들 (802A 내지 808A) 에 대응한다.
도 9는, 여기에 설명된 메시징 시스템이 UNIX 기반 시스템 상에서 구현될 수 도 있는 방법의 일 예를 도시한다. 도시된 예에서, 메시징 시스템은 이더넷 백플레인 (Ethernet backplane) 상에 레이어화되며, 사용자-커널 인터페이스는 소켓 레이어를 사용하여 구현된다. 이러한 아키텍처는, UNIX 로딩가능한 커널 모듈들이 메시징 시스템의 일부이게 하고, 커널과 사용자-공간 컴포넌트들 사이의 구별을 불명확하게 한다. 메시징 시스템은, 메시징 커널 모듈 (902), 리소스 위치 서버 (904), 리소스 위치 캐시 (906), 및 멀티캐스트 메시지 확인응답 프로세싱 컴포넌트 (908) 를 포함한다.
도 10은, 여기에 설명된 메시징 시스템이 Sun Solaris 시스템 상에서 구현될 수도 있는 방법의 일 예를 도시한다. 이러한 시스템은, 단일 OS 시스템 상에서 구동하고 있더라도, 컴포넌트들 사이에서 동일한 메시징 인터페이스를 유지할 수도 있다. 이러한 아키텍처에서, 하트비팅 및 로컬 캐시 유지보수와 같은 메시징 특성들이 자동적으로 디스에이블될 수도 있다. 메시징 커널 모듈이 재작동되고 사용자-공간 소프트웨어가 리눅스에 대해 재컴파일되면, 몇몇 소프트웨어 시스템은 리눅스-기반 시스템 상에서 구동할 수도 있다. 메시징 시스템은, 제어 메시징 컴포넌트 (1002), 리소스 위치 캐시 (1006), 및 멀티캐스트 메시지 확인응답 프로세싱 컴포넌트 (1008) 를 포함한다.
도 11은, 여기에 설명된 메시징 시스템이 실-시간 운영 시스템 (RTOS) 상에서 구현될 수도 있는 방법의 일 예를 도시한다. 메시징 시스템은, 리소스 위치 서버 (1104), 리소스 위치 캐시 (1106), 및 멀티캐스트 메시지 확인응답 프로세싱 컴포넌트 (1108) 를 포함한다.
또한, 모든 메시지 목적지들이 동적으로 구축 및 변환될 수도 있기 때문에, 리던던시가 이러한 시스템내에서 지원될 수도 있다. 이것은, 특정한 하드웨어 유닛이 실패할 경우, 메시징 시스템이 그들 논리적 명칭들을 등록하지 않고 임의의 분산된 캐시들을 업데이트할 수도 있다는 것을 의미한다. 대체물이 온라인으로 운반될 경우, 신규한 유닛은 동일한 논리적 명칭이지만 신규한 물리적인 위치로 등록할 수도 있다. 임의의 애플리케이션들에 대한 임의의 변화없이, 신규한 유닛은 시스템에 완전히 참가하기를 준비할 수도 있다. 또한, 대기 유닛은, 그 대기 유닛을 특정한 논리적 명칭에 대해 등록시킴으로써 "핫 (hot)" 하게 유지될 수 있다. 이것은, 활성 유닛이 (명칭을 변환할 수 있음으로써) 그들의 존재를 결정하게 하고, 또한, 대기 유닛이 동기화되게 유지하도록 업데이트 메시지들을 전송하게 한다. 활성 유닛이 중지되었다는 것을 대기 유닛이 검출할 경우, 모든 활성 유닛 논리적 명칭들에 대해 등록할 수 있다. 이것은, 핫 및 웜 (warm) 리던던시 모두가 구현되게 한다.
도 12는, 상술된 바와 같은 분산된 컴퓨팅 시스템 (100) 내의 소프트웨어 컴포넌트들 (106) 사이에서 인터-프로세스 통신을 용이하게 하기 위한 장치의 하드웨어 구현의 일부를 도시한다. 회로 장치는, 참조 부호 (1200) 에 의해 나타내며, 라우터, 스위치, 기지국 등에 포함된 다양한 프로세싱 모듈들 또는 보드들에서 구현될 수 있다.
장치 (1200) 는 수개의 회로들을 함께 링크시키는 중앙 데이터 버스 (1202) 를 포함한다. 회로는, CPU (중앙 프로세싱 유닛) 또는 제어기 (1204), 수신 회 로 (1206), 송신 회로 (1208), 및 메모리 유닛 (1210) 을 포함한다.
장치 (1200) 가 무선 디바이스의 일부이면, 수신 및 송신 회로들 (1206 및 1208) 은 RF (무선 주파수) 에 접속될 수 있지만, 이것은 도면에 도시되어 있지 않다. 수신 회로 (1206) 는, 수신 신호들을 데이터 버스 (1202) 로 전송하기 전에 그 수신 신호들을 프로세싱 및 버퍼링한다. 한편, 송신 회로 (1208) 는, 데이터를 디바이스 (1200) 로부터 전송하기 전에, 데이터 버스 (1202) 로부터의 데이터를 프로세싱 및 버퍼링한다. 장치 (1200) 가 무선 디바이스의 일부가 아니라면, 수신 및 송신 회로들 (1206 및 1208) 은, 유선 접속을 통해 다른 장치들 (예를 들어, 다른 하드웨어 유닛들 (102)) 로부터 데이터 수신하고 그 장치들로 데이터를 전송하도록 구성될 수도 있다. CPU/제어기 (1204) 는, 데이터 버스 (1202) 의 데이터 관리 기능, 및 메모리 유닛 (1210) 의 명령 콘텐츠들을 실행하는 것을 포함하는 일반적인 데이터 프로세싱 기능을 추가적으로 수행한다.
일 대안으로서, 도 12에 도시된 바와 같이 별개로 배치되는 것 대신에, 송신 회로 (1208) 및 수신 회로 (1206) 는 CPU/제어기 (1204) 의 일부일 수 있다.
메모리 유닛 (1210) 은, 참조 부호 (1212) 에 의해 일반적으로 나타낸 모듈들 및/또는 명령들의 세트를 포함한다. 이러한 실시형태에서, 모듈들/명령들 (1212) 은, 다른 것들 중에서, 소프트웨어 컴포넌트들 (106) 에 의해 메시징 시스템 (108) 에 대한 등록을 용이하게 하기 위한 등록 기능 (1234), 등록된 소프트웨어 컴포넌트들 (106) 사이에서 유니캐스트 통신을 용이하게 하기 위한 유니캐스트 통신 기능 (1218), 소프트웨어 컴포넌트들 (106) 에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하기 위한 멀티캐스트 등록 기능 (1220), 등록된 소프트웨어 컴포넌트들 (106) 사이에서 멀티캐스트 통신을 용이하게 하기 위한 멀티캐스트 통신 기능 (1222), 분산된 컴퓨팅 시스템 (100) 내에서 신규한 메시징 클라이언트들 (110b) 을 발견하기 위한 발견 기능 (1224), 등록된 메시징 클라이언트들 (110b) 이 동작한다는 것을 검증하기 위한 검증 기능 (1226), 등록된 메시징 클라이언트들 (110b) 사이에서 동기화를 유지하기 위한 동기화 기능 (1228), 리소스 위치 캐시 (1214) 를 관리하기 위한 캐시 관리 기능 (1230), 및 멀티캐스트 등록 데이터 구조 (1216) 를 관리하기 위한 멀티캐스트 관리 기능 (1232) 을 포함한다. 등록 기능 (1234), 유니캐스트 통신 기능 (1218), 멀티캐스트 등록 기능 (1220), 멀티캐스트 통신 기능 (1222), 발견 기능 (1224), 검증 기능 (1226), 동기화 기능 (1228), 캐시 관리 기능 (1230), 및 멀티캐스트 관리 기능 (1232) 은, 도 1 내지 11에 도시되고 설명된 바와 같은 프로세스 단계들을 실행하기 위한 컴퓨터 명령들 또는 코드를 포함한다.
일 엔티티에 특정한 특정된 명령들이 선택적으로 구현될 수 있다. 예를 들어, 등록 기능 (1234), 유니캐스트 통신 기능 (1218), 멀티캐스트 등록 기능 (1220), 및 멀티캐스트 통신 기능 (1222) 이 구현될 수도 있다. 장치 (1200) 가 메시징 서버 (110a) 의 기능을 제공하면, 도시된 모든 기능들이 구현될 수도 있다.
또한, 리소스 위치 캐시 (1214) 및 멀티캐스트 등록 데이터 구조 (1216) 는 메모리 유닛 (1210) 에 포함될 수 있다. 일 대안으로서, 리소스 위치 캐시 (1214) 및 멀티캐스트 등록 데이터 구조 (1216) 는 유닛 (1210) 이외에 하나 이상의 다른 메모리 유닛들에 저장될 수 있다.
이러한 실시형태에서, 메모리 유닛 (1210) 은 RAM (랜덤 액세스 메모리) 회로이다. (등록 기능 (1234), 유니캐스트 통신 기능 (1218), 멀티캐스트 등록 기능 (1220), 멀티캐스트 통신 기능 (1222), 발견 기능 (1224), 검증 기능 (1226), 동기화 기능 (1228), 캐시 관리 기능 (1230), 및 멀티캐스트 관리 기능 (1232) 과 같은) 예시적인 기능들은 소프트웨어 루틴들, 모듈들, 및/또는 데이터 세트들이다. 메모리 유닛 (1210) 은, 휘발성 또는 비휘발성 타입 중 어느 하나일 수 있는 또 다른 메모리 회로 (미도시) 에 결합될 수 있다. 일 예로서, 메모리 유닛 (1210) 은, EEPROM (전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리), EPROM (전기적으로 프로그래밍가능 판독 전용 메모리), ROM (판독 전용 메모리), ASIC (주문형 집적 회로), 자기 디스크, 광학 디스크, 및 당업계에 주지된 다른 것들과 같은 다른 회로 타입들로 구성될 수 있다.
또한, 설명된 바와 같은 본 발명의 프로세스들이 당업계에 공지되어 있는 임의의 컴퓨터-판독가능 매체 상에서 운반되는 컴퓨터-판독가능 명령들로서 또한 코딩될 수 있다는 것을 유의해야 한다. 본 명세서 및 첨부된 청구항에서, "컴퓨터-판독가능 매체" 라는 용어는, 실행을 위해, 도 12의 도면에 설명되고 도시되어 있는 CPU/제어기 (1204) 와 같은 임의의 프로세서에 명령들을 제공하는 것에 참가하는 임의의 매체를 지칭한다. 그러한 매체는 저장부 타입일 수 있으며, 또한 상술된 바와 같은, 예를 들어, 도 12의 메모리 유닛 (1210) 의 설명에서의 휘발성 또는 비-휘발성 저장 매체의 형태를 취할 수도 있다. 또한, 그러한 매체는 송신 타입일 수 있으며, 동축 케이블, 구리 배선, 광학 케이블, 및 소리를 운반하는 공중 인터페이스, 머신 또는 컴퓨터에 의해 판독가능한 신호들을 운반할 수 있는 전자기파 또는 광학파를 포함할 수도 있다. 컴퓨터-판독가능 매체는, 장치 (1200) 와는 별개인 컴퓨터 제품의 일부일 수 있다.
여기에서 사용된 바와 같이, "결정하는" 이라는 용어는 광범위한 액션들을 포함하며, 따라서, "결정하는" 은, 계산, 컴퓨팅, 프로세싱, 유도, 조사, 룩업 (예를 들어, 테이블, 데이터베이스 또는 또 다른 데이터 구조에서의 룩업), 확인 등을 포함할 수 있다. 또한, "결정하는" 은 수신 (예를 들어, 정보를 수신), 액세스 (예를 들어, 메모리내의 데이터에 액세스) 등을 포함할 수 있다. 또한, "결정하는" 은 변환, 선택, 선출, 확립 등을 포함할 수 있다.
"에 기초하는" 이라는 어구는 달리 명확하게 특정되지 않으면 "에만 기초하는" 이라는 것을 의미하지 않는다. 즉, "에 기초하는" 이라는 어구는 "에만 기초하는" 및 "에 적어도 기초하는" 양자를 설명한다.
상기에 부가하여, 본 발명과 관련하여 설명된 다양한 다른 예시적인 로직 블록들, 모듈들 및 회로들은, 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 신호 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 여기에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수도 있다.
본 발명과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이들의 조합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 당업계에 공지된 임의의 형태의 저장 매체에 상주할 수도 있다. 상술된 바와 같이, 사용될 수도 있는 저장 매체의 몇몇 예들은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 착탈형 디스크, CD-ROM 등을 포함한다. 소프트웨어 모듈은 단일 명령, 또는 다수의 명령들을 포함할 수도 있으며, 수개의 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에, 및 다수의 저장 매체에 걸쳐 분산될 수도 있다. 저장 매체는, 프로세서가 그 저장 매체로부터 정보를 판독할 수 있고 그 저장 매체에 정보를 기입할 수 있도록, 그 프로세서에 커플링될 수도 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수도 있다.
또한, 도 7 및 도 8에 의해 예시된 것과 같이, 여기에 설명된 방법들 및 기술들을 수행하기 위한 모듈들 및/또는 적절한 수단들이 적용될 바와 같이 이동국 및/또는 기지국에 의해 다운로딩되고/되거나 획득될 수 있음을 인식할 것이다. 예를 들어, 그러한 디바이스는, 여기에 설명된 방법들을 수행하기 위해 전달 수단을 용이하게 하도록 서버에 커플링될 수 있다.
청구항이 정확한 구성 및 상기 예시된 컴포넌트들에 제한되지 않음을 이해할 것이다. 본 발명의 범위를 벗어나지 않고도, 다양한 변형들, 변화들 및 변경들이, 여기에 설명된 배열, 시스템의 동작 및 세부사항, 방법, 및 장치에 행해질 수도 있다.

Claims (40)

  1. 프로세서; 및
    상기 프로세서에 커플링되며, 소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하고, 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하고, 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하며, 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하도록 구성되는 회로를 포함하는, 인터-프로세스 통신용 장치.
  2. 제 1 항에 있어서,
    상기 프로세서에 커플링된 상기 회로는, 상기 소프트웨어 컴포넌트에 의해 메시징 시스템에 대한 등록을 용이하게 하기 위해, 상기 소프트웨어 컴포넌트에 대한 논리적 명칭을 결정하고, 상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 결정하며, 상기 소프트웨어 컴포넌트에 대한 논리적 명칭과 상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 연관시키는 엔트리가 리소스 위치 캐시에 부가되게 하도록, 또한, 구성되는, 인터-프로세스 통신용 장치.
  3. 제 1 항에 있어서,
    상기 프로세서에 커플링된 상기 회로는, 상기 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하기 위해, 소프트웨어 컴포넌트에 대해 예 정된 메시지를 수신하고, 상기 소프트웨어 컴포넌트를 식별하는 논리적 명칭을 물리적인 어드레스로 변환하며, 상기 메시지를 상기 물리적인 어드레스에 전송하도록, 또한, 구성되는, 인터-프로세스 통신용 장치.
  4. 제 1 항에 있어서,
    상기 프로세서에 커플링된 상기 회로는, 상기 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하기 위해, 멀티캐스트 이벤트에 대응하는 멀티캐스트 등록 메시지를 수신하고, 엔트리가 멀티캐스트 등록 데이터 구조에 생성되게 하도록, 또한, 구성되며,
    상기 엔트리는, 상기 소프트웨어 컴포넌트의 물리적인 어드레스와 상기 멀티캐스트 이벤트에 대한 논리적 명칭을 연관시키는, 인터-프로세스 통신용 장치.
  5. 제 1 항에 있어서,
    상기 프로세서에 커플링된 상기 회로는, 상기 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하기 위해,
    멀티캐스트 이벤트에 대응하는 멀티캐스트 메시지를 전송자 소프트웨어 컴포넌트로부터 수신하고,
    어느 소프트웨어 컴포넌트들이 상기 멀티캐스트 이벤트에 대해 등록되었는지를 멀티캐스트 등록 데이터 구조를 참조하여 결정하고,
    상기 멀티캐스트 이벤트에 대해 등록된 소프트웨어 컴포넌트들에 상기 멀티 캐스트 메시지를 전송하고, 상기 멀티캐스트 메시지를 수신한 소프트웨어 컴포넌트들로부터 확인응답 메시지들을 수신하며, 상기 전송자 소프트웨어 컴포넌트에 확인응답 메시지를 전송하도록, 또한, 구성되는, 인터-프로세스 통신용 장치.
  6. 프로세서; 및
    상기 프로세서에 커플링되며, 분배된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하고, 등록된 메시징 클라이언트들이 동작한다는 것을 검증하고, 상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하고, 리소스 위치 캐시의 마스터 버전을 관리하며, 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하도록 구성되는 회로를 포함하는, 인터-프로세스 통신용 장치.
  7. 제 6 항에 있어서,
    상기 프로세서에 커플링된 상기 회로는, 상기 신규한 메시징 클라이언트들을 발견하고, 상기 등록된 메시징 클라이언트들이 동작한다는 것을 검증하며, 상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하기 위해, 메시징 시스템내의 메시징 클라이언트들에 하트비트 (heartbeat) 메시지들을 전송하며, 상기 하트비트 메시지들에 대한 응답들을 프로세싱하도록, 또한, 구성되는, 인터-프로세스 통신용 장치.
  8. 제 6 항에 있어서,
    상기 프로세서에 커플링된 상기 회로는, 상기 리소스 위치 캐시의 마스터 버전을 관리하기 위해, 상기 리소스 위치 캐시에 대해 변화들이 행해질 때마다 메시징 시스템내의 메시징 클라이언트들에게 통지하도록, 또한, 구성되며,
    상기 프로세서에 커플링된 상기 회로는, 상기 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하기 위해, 상기 멀티캐스트 등록 데이터 구조에 대해 변화들이 행해질 때마다 상기 메시징 시스템내의 메시징 클라이언트들에 통지하도록, 또한, 구성되는, 인터-프로세스 통신용 장치.
  9. 메시징 시스템내의 메시징 엔티티에 의해 수행되는 인터-프로세스 통신을 위한 방법으로서,
    소프트웨어 컴포넌트들에 의해 상기 메시징 시스템에 대한 등록을 용이하게 하는 단계;
    등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하는 단계;
    소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하는 단계; 및
    등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  10. 제 9 항에 있어서,
    상기 소프트웨어 컴포넌트에 의해 메시징 시스템에 대한 등록을 용이하게 하는 단계는,
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭을 결정하는 단계;
    상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 결정하는 단계; 및
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭과 상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 연관시키는 엔트리가 리소스 위치 캐시에 부가되게 하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  11. 제 9 항에 있어서,
    상기 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하는 단계는,
    소프트웨어 컴포넌트에 대해 예정된 메시지를 수신하는 단계로서, 상기 소프트웨어 컴포넌트는 논리적 명칭에 의해 식별되는, 상기 예정된 메시지를 수신하는 단계;
    상기 논리적 명칭을 물리적인 어드레스로 변환하는 단계; 및
    상기 물리적인 어드레스에 상기 메시지를 전송하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  12. 제 9 항에 있어서,
    상기 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용 이하게 하는 단계는,
    멀티캐스트 이벤트에 대응하는 멀티캐스트 등록 메시지를 수신하는 단계; 및
    엔트리가 멀티캐스트 등록 데이터 구조에 생성되게 하는 단계를 포함하며,
    상기 엔트리는, 상기 소프트웨어 컴포넌트의 물리적인 어드레스와 상기 멀티캐스트 이벤트에 대한 논리적 명칭을 연관시키는, 인터-프로세스 통신을 위한 방법.
  13. 제 9 항에 있어서,
    상기 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하는 단계는,
    전송자 소프트웨어 컴포넌트로부터, 멀티캐스트 이벤트에 대응하는 멀티캐스트 메시지를 수신하는 단계;
    어느 소프트웨어 컴포넌트들이 상기 멀티캐스트 이벤트에 대해 등록되었는지를 멀티캐스트 등록 데이터 구조를 참조하여 결정하는 단계;
    상기 멀티캐스트 이벤트에 대해 등록된 소프트웨어 컴포넌트들에 상기 멀티캐스트 메시지를 전송하는 단계;
    상기 멀티캐스트 메시지를 수신한 소프트웨어 컴포넌트들로부터 확인응답 메시지를 수신하는 단계; 및
    상기 전송자 소프트웨어 컴포넌트에 확인응답 메시지를 전송하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  14. 분산된 컴퓨팅 시스템내에서 구현된 메시징 시스템내의 메시징 서버에 의해 수행되는 인터-프로세스 통신을 위한 방법으로서,
    상기 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하는 단계;
    등록된 메시징 클라이언트들이 동작한다는 것을 검증하는 단계;
    상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하는 단계;
    리소스 위치 캐시의 마스터 버전을 관리하는 단계; 및
    멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  15. 제 14 항에 있어서,
    상기 신규한 메시징 클라이언트를 발견하는 단계, 상기 등록된 메시징 클라이언트들이 동작한다는 것을 검증하는 단계, 및 상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하는 단계는,
    상기 메시징 시스템내의 메시징 클라이언트들에 하트비트 메시지들을 전송하는 단계; 및
    상기 하트비트 메시지들에 대한 응답들을 프로세싱하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  16. 제 14 항에 있어서,
    상기 리소스 위치 캐시의 마스터 버전을 관리하는 단계는, 상기 리소스 위치 캐시에 대해 변화들이 행해질 때마다 상기 메시징 시스템내의 메시징 클라이언트들에 통지하는 단계를 포함하며,
    상기 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하는 단계는, 상기 멀티캐스트 등록 데이터 구조에 대해 변화들이 행해질 때마다 상기 메시징 시스템내의 메시징 클라이언트들에 통지하는 단계를 포함하는, 인터-프로세스 통신을 위한 방법.
  17. 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성되는 메시징 엔티티를 포함하는 하드웨어 유닛으로서,
    상기 메시징 엔티티는,
    소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하도록 구성되는 등록 컴포넌트;
    등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하도록 구성되는 리소스 위치 서버;
    소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하도록 구성되는 멀티캐스트 등록 컴포넌트; 및
    등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하도록 구성되는 멀티캐스트 통신 컴포넌트를 포함하는, 하드웨어 유닛.
  18. 제 17 항에 있어서,
    상기 등록 컴포넌트는, 또한,
    소프트웨어 컴포넌트에 대한 논리적 명칭을 결정하고;
    상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 결정하며;
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭과 상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 연관시키는 엔트리가 리소스 위치 캐시에 부가되게 하도록 구성되는, 하드웨어 유닛.
  19. 제 17 항에 있어서,
    상기 리소스 위치 서버는, 또한,
    논리적 명칭에 의해 식별되는 소프트웨어 컴포넌트에 대해 예정된 메시지를 수신하고;
    상기 논리적 명칭을 물리적인 어드레스로 변환하며;
    상기 물리적인 어드레스에 상기 메시지를 전송하도록 구성되는, 하드웨어 유닛.
  20. 제 17 항에 있어서,
    상기 멀티캐스트 등록 컴포넌트는, 또한,
    멀티캐스트 이벤트에 대응하는 멀티캐스트 등록 메시지를 수신하고;
    엔트리가 멀티캐스트 등록 데이터 구조에 생성되게 하도록 구성되며;
    상기 엔트리는, 상기 소프트웨어 컴포넌트의 물리적인 어드레스와 상기 멀티캐스트 이벤트에 대한 논리적 명칭을 연관시키는, 하드웨어 유닛.
  21. 제 17 항에 있어서,
    상기 멀티캐스트 통신 컴포넌트는, 또한,
    전송자 소프트웨어 컴포넌트로부터, 멀티캐스트 이벤트에 대응하는 멀티캐스트 메시지를 수신하고;
    어느 소프트웨어 컴포넌트들이 상기 멀티캐스트 이벤트에 대해 등록되는지를 멀티캐스트 등록 데이터 구조를 참조하여 결정하고;
    상기 멀티캐스트 이벤트에 대해 등록된 소프트웨어 컴포넌트들에 상기 멀티캐스트 메시지를 전송하고;
    상기 멀티캐스트 메시지를 수신한 소프트웨어 컴포넌트들로부터 확인응답 메시지들을 수신하며;
    상기 전송자 소프트웨어 컴포넌트에 확인응답 메시지를 전송하도록 구성되는, 하드웨어 유닛.
  22. 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성되는 메시징 서버를 포함하는 하드웨어 유닛으로서,
    상기 메시징 서버는,
    상기 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하도록 구성되는 클라이언트 발견 컴포넌트;
    등록된 메시징 클라이언트들이 동작한다는 것을 검증하도록 구성되는 검증 컴포넌트;
    상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하도록 구성되는 동기화 컴포넌트;
    리소스 위치 캐시의 마스터 버전을 관리하도록 구성되는 캐시 매니저; 및
    멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하도록 구성되는 멀티캐스트 등록 매니저를 포함하는, 하드웨어 유닛.
  23. 제 22 항에 있어서,
    상기 클라이언트 발견 컴포넌트, 상기 검증 컴포넌트, 및 상기 동기화 컴포넌트 각각은,
    메시징 시스템내의 메시징 클라이언트들에 하트비트 메시지들을 전송하며;
    상기 하트비트 메시지들에 대한 응답들을 프로세싱하도록 구성되는, 하드웨어 유닛.
  24. 제 22 항에 있어서,
    상기 캐시 매니저는, 상기 리소스 위치 캐시에 대해 변화들이 행해질 때마다 메시징 시스템내의 메시징 클라이언트들에 통지하도록 구성되며,
    상기 멀티캐스트 등록 매니저는, 상기 멀티캐스트 등록 데이터 구조에 대해 변화들이 행해질 때마다 상기 메시징 시스템내의 메시징 클라이언트들에 통지하도록 구성되는, 하드웨어 유닛.
  25. 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성되는 메시징 엔티티를 포함하는 장치로서,
    상기 메시징 엔티티는,
    소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하는 수단;
    등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하는 수단;
    소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하는 수단; 및
    등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하는 수단을 포함하는, 메시징 엔티티를 포함하는 장치.
  26. 제 25 항에 있어서,
    상기 소프트웨어 컴포넌트에 의해 메시징 시스템에 대한 등록을 용이하게 하는 수단은,
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭을 결정하는 수단;
    상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 결정하는 수단; 및
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭과 상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 연관시키는 엔트리가 리소스 위치 캐시에 부가되게 하는 수단을 포함하는, 메시징 엔티티를 포함하는 장치.
  27. 제 25 항에 있어서,
    상기 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하는 수단은,
    소프트웨어 컴포넌트에 대해 예정된 메시지를 수신하는 수단으로서, 상기 소프트웨어 컴포넌트는 논리적 명칭에 의해 식별되는, 상기 예정된 메시지를 수신하는 수단;
    상기 논리적 명칭을 물리적인 어드레스로 변환하는 수단; 및
    상기 물리적인 어드레스에 상기 메시지를 전송하는 수단을 포함하는, 메시징 엔티티를 포함하는 장치.
  28. 제 25 항에 있어서,
    상기 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하는 수단은,
    멀티캐스트 이벤트에 대응하는 멀티캐스트 등록 메시지를 수신하는 수단; 및
    엔트리가 멀티캐스트 등록 데이터 구조에 생성되게 하는 수단을 포함하며,
    상기 엔트리는, 상기 소프트웨어 컴포넌트의 물리적인 어드레스와 상기 멀티캐스트 이벤트에 대한 논리적 명칭을 연관시키는, 메시징 엔티티를 포함하는 장치.
  29. 제 25 항에 있어서,
    상기 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하는 수단은,
    전송자 소프트웨어 컴포넌트로부터, 멀티캐스트 이벤트에 대응하는 멀티캐스트 메시지를 수신하는 수단;
    어느 소프트웨어 컴포넌트들이 상기 멀티캐스트 이벤트에 대해 등록되는지를 멀티캐스트 등록 데이터 구조를 참조하여 결정하는 수단;
    상기 멀티캐스트 이벤트에 대해 등록된 소프트웨어 컴포넌트들에 상기 멀티캐스트 메시지를 전송하는 수단;
    상기 멀티캐스트 메시지를 수신한 소프트웨어 컴포넌트들로부터 확인응답 메시지들을 수신하는 수단; 및
    상기 전송자 소프트웨어 컴포넌트에 확인응답 메시지를 전송하는 수단을 포함하는, 메시징 엔티티를 포함하는 장치.
  30. 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하도록 구성되는 메시징 서버를 포함하는 장치로서,
    상기 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하는 수단;
    등록된 메시징 클라이언트들이 동작한다는 것을 검증하는 수단;
    상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하는 수단;
    리소스 위치 캐시의 마스터 버전을 관리하는 수단; 및
    멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하는 수단을 포함하는, 메시징 서버를 포함하는 장치.
  31. 제 30 항에 있어서,
    상기 신규한 메시징 클라이언트들을 발견하는 수단, 상기 등록된 메시징 클라이언트들이 동작한다는 것을 검증하는 수단, 및 상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하는 수단 각각은,
    메시징 시스템내의 메시징 클라이언트들에 하트비트 메시지들을 전송하는 수단; 및
    상기 하트비트 메시지들에 대한 응답들을 프로세싱하는 수단을 포함하는, 메시징 서버를 포함하는 장치.
  32. 제 30 항에 있어서,
    상기 리소스 위치 캐시의 마스터 버전을 관리하는 수단은, 상기 리소스 위치 캐시에 대해 변화들이 행해질 때마다 메시징 시스템내의 메시징 클라이언트들에 통지하는 수단을 포함하며,
    상기 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하는 수단은, 상기 멀티캐스트 등록 데이터 구조에 대해 변화들이 행해질 때마다 상기 메시징 시스템내의 메시징 클라이언트들에 통지하는 수단을 포함하는, 메시징 서버를 포함하는 장치.
  33. 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하기 위한 컴퓨터-프로그램 제품으로서, 상기 컴퓨터-프로그램 제품은 명령들을 갖는 컴퓨터 판독가능 매체를 포함하며,
    상기 명령들은,
    소프트웨어 컴포넌트들에 의해 메시징 시스템에 대한 등록을 용이하게 하기 위한 코드;
    등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하기 위한 코드;
    소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하기 위한 코드; 및
    등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  34. 제 33 항에 있어서,
    상기 소프트웨어 컴포넌트에 의해 메시징 시스템에 대한 등록을 용이하게 하 기 위한 코드는,
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭을 결정하기 위한 코드;
    상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 결정하기 위한 코드; 및
    상기 소프트웨어 컴포넌트에 대한 논리적 명칭과 상기 소프트웨어 컴포넌트에 대한 물리적인 어드레스를 연관시키는 엔트리가 리소스 위치 캐시에 부가되게 하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  35. 제 33 항에 있어서,
    상기 등록된 소프트웨어 컴포넌트들 사이에서 유니캐스트 통신을 용이하게 하기 위한 코드는,
    소프트웨어 컴포넌트에 대해 예정된 메시지를 수신하기 위한 코드로서, 상기 소프트웨어 컴포넌트는 논리적 명칭에 의해 식별되는, 상기 예정된 메시지를 수신하기 위한 코드;
    상기 논리적 명칭을 물리적인 어드레스로 변환하기 위한 코드; 및
    상기 물리적인 어드레스에 상기 메시지를 전송하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  36. 제 33 항에 있어서,
    상기 소프트웨어 컴포넌트들에 의해 멀티캐스트 이벤트들에 대한 등록을 용이하게 하기 위한 코드는,
    멀티캐스트 이벤트에 대응하는 멀티캐스트 등록 메시지를 수신하기 위한 코드; 및
    엔트리가 멀티캐스트 등록 데이터 구조에 생성되게 하기 위한 코드를 포함하며,
    상기 엔트리는 상기 소프트웨어 컴포넌트의 물리적인 어드레스와 상기 멀티캐스트 이벤트에 대한 논리적 명칭을 연관시키는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  37. 제 33 항에 있어서,
    상기 등록된 소프트웨어 컴포넌트들 사이에서 멀티캐스트 통신을 용이하게 하기 위한 코드는,
    전송자 소프트웨어 컴포넌트로부터, 멀티캐스트 이벤트에 대응하는 멀티캐스트 메시지를 수신하기 위한 코드;
    어느 소프트웨어 컴포넌트들이 상기 멀티캐스트 이벤트에 대해 등록되는지를 멀티캐스트 등록 데이터 구조를 참조하여 결정하기 위한 코드;
    상기 멀티캐스트 이벤트에 대해 등록된 소프트웨어 컴포넌트들에 상기 멀티캐스트 메시지를 전송하기 위한 코드;
    상기 멀티캐스트 메시지를 수신한 소프트웨어 컴포넌트들로부터 확인응답 메 시지들을 수신하기 위한 코드; 및
    상기 전송자 소프트웨어 컴포넌트에 확인응답 메시지를 전송하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  38. 분산된 컴퓨팅 시스템내의 소프트웨어 컴포넌트들 사이에서 인터-프로세스 통신을 용이하게 하기 위한 컴퓨터-프로그램 제품으로서, 상기 컴퓨터-프로그램 제품은 명령들을 갖는 컴퓨터 판독가능 매체를 포함하며,
    상기 명령들은,
    상기 분산된 컴퓨팅 시스템내에서 신규한 메시징 클라이언트들을 발견하기 위한 코드;
    등록된 메시징 클라이언트들이 동작한다는 것을 검증하기 위한 코드;
    상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하기 위한 코드;
    리소스 위치 캐시의 마스터 버전을 관리하기 위한 코드; 및
    멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  39. 제 38 항에 있어서,
    상기 신규한 메시징 클라이언트들을 발견하기 위한 코드, 상기 등록된 메시징 클라이언트들이 동작하고 있다는 것을 검증하기 위한 코드, 및 상기 등록된 메시징 클라이언트들 사이에서 동기화를 유지하기 위한 코드 각각은,
    메시징 시스템내의 메시징 클라이언트들에 하트비트 메시지들을 전송하기 위한 코드; 및
    상기 하트비트 메시지들에 대한 응답들을 프로세싱하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  40. 제 38 항에 있어서,
    상기 리소스 위치 캐시의 마스터 버전을 관리하기 위한 코드는, 상기 리소스 위치 캐시에 대해 변화들이 행해질 때마다 메시징 시스템내의 메시징 클라이언트들에 통지하기 위한 코드를 포함하며,
    상기 멀티캐스트 등록 데이터 구조의 마스터 버전을 관리하기 위한 코드는, 상기 멀티캐스트 등록 데이터 구조에 대해 변화들이 행해질 때마다 상기 메시징 시스템내의 메시징 클라이언트들에 통지하기 위한 코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
KR1020097025310A 2007-05-04 2008-05-02 스케일러블 및 리던던트 원격통신 시스템을 위한 인터-프로세스 통신 방법 및 장치 KR20100017611A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US91624707P 2007-05-04 2007-05-04
US60/916,247 2007-05-04
US12/112,961 US8464272B2 (en) 2007-05-04 2008-04-30 Inter-process communication methods and apparatus for building scalable/redundant telecommunications systems
US12/112,961 2008-04-30

Publications (1)

Publication Number Publication Date
KR20100017611A true KR20100017611A (ko) 2010-02-16

Family

ID=39940504

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097025310A KR20100017611A (ko) 2007-05-04 2008-05-02 스케일러블 및 리던던트 원격통신 시스템을 위한 인터-프로세스 통신 방법 및 장치

Country Status (7)

Country Link
US (1) US8464272B2 (ko)
EP (1) EP2156313A2 (ko)
JP (1) JP2010529524A (ko)
KR (1) KR20100017611A (ko)
CN (1) CN101675424A (ko)
TW (1) TW200910108A (ko)
WO (1) WO2008137668A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589732B2 (en) 2010-10-25 2013-11-19 Microsoft Corporation Consistent messaging with replication
US9992034B2 (en) * 2014-03-13 2018-06-05 Hewlett Packard Enterprise Development Lp Component multicast protocol
US9952908B2 (en) * 2014-09-11 2018-04-24 Cisco Technology, Inc. Crowd sourced cloud computing
CN105426260B (zh) * 2015-10-30 2018-08-21 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法
CN105391711A (zh) * 2015-11-05 2016-03-09 山东超越数控电子有限公司 业务平台及基于tipc协议的通信方法
US10873540B2 (en) 2016-07-06 2020-12-22 Cisco Technology, Inc. Crowd-sourced cloud computing resource validation
US10360606B2 (en) 2016-07-19 2019-07-23 Cisco Technology, Inc. Crowd-sourced cloud computing in a multiple resource provider environment
CN107920012B (zh) * 2016-10-10 2021-05-11 腾讯科技(深圳)有限公司 即时通信消息的存储方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4667393A (en) 1992-07-07 1994-01-31 Systems Strategies, Inc. Apparatus and method for providing service oriented, message-based interprocess communication in a networked computing system
DE4417588A1 (de) 1993-08-30 1995-03-02 Hewlett Packard Co Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung
JPH0830455A (ja) 1994-07-18 1996-02-02 Hitachi Ltd オブジェクト指向情報処理システム
WO1997021175A1 (en) * 1995-12-08 1997-06-12 Amsc Subsidiary Corporation Mobile communications from computer aided dispatch system via a customer premises gateway for satellite communication system
US6430698B1 (en) * 1998-10-05 2002-08-06 Nortel Networks Limited Virtual distributed home agent protocol
US20040031033A1 (en) 2001-06-02 2004-02-12 Ravi Chandra Method and apparatus for inter-process communication management
US6920485B2 (en) 2001-10-04 2005-07-19 Hewlett-Packard Development Company, L.P. Packet processing in shared memory multi-computer systems
TW589907B (en) 2002-03-15 2004-06-01 Ind Tech Res Inst Method and system of multicast management mechanism for mobile networks
US7080151B1 (en) * 2002-04-01 2006-07-18 Utstarcom, Inc. Method and system for mobile IP home agent redundancy by using home agent control nodes for managing multiple home agents
US6721907B2 (en) * 2002-06-12 2004-04-13 Zambeel, Inc. System and method for monitoring the state and operability of components in distributed computing systems
US7734681B2 (en) 2002-08-20 2010-06-08 Symantec Operating Corporation Inter-process messaging using multiple client-server pairs
JP4292890B2 (ja) * 2003-06-26 2009-07-08 株式会社日立製作所 マルチキャスト配信方法、配信装置およびシステム
US7721907B2 (en) 2005-11-22 2010-05-25 Rexam Closure Systems Inc. Child-resistant flip-top dispensing closure and package
US8560651B2 (en) * 2006-03-07 2013-10-15 Cisco Technology, Inc. Method and system for streaming user-customized information

Also Published As

Publication number Publication date
TW200910108A (en) 2009-03-01
US20080276249A1 (en) 2008-11-06
WO2008137668A3 (en) 2008-12-31
US8464272B2 (en) 2013-06-11
JP2010529524A (ja) 2010-08-26
CN101675424A (zh) 2010-03-17
WO2008137668A2 (en) 2008-11-13
EP2156313A2 (en) 2010-02-24

Similar Documents

Publication Publication Date Title
US8464272B2 (en) Inter-process communication methods and apparatus for building scalable/redundant telecommunications systems
JP4583452B2 (ja) サーバ間の直接通信を用いることによってノード構成におけるサーバ・イベントを監視するための方法及びシステム
US6308207B1 (en) Distributed service subsystem architecture for distributed network management
US7912055B1 (en) Method and apparatus for configuration and analysis of network multicast routing protocols
US8578055B2 (en) Propogation of DNS server IP addresses in a private network
US20060206611A1 (en) Method and system for managing programs with network address
CN111259072B (zh) 数据同步方法、装置、电子设备和计算机可读存储介质
US6992985B1 (en) Method and system for auto discovery of IP-based network elements
CN103220160A (zh) 在分布式开关中管理全局转发表
US6119159A (en) Distributed service subsystem protocol for distributed network management
US20230036465A1 (en) Association with a Network Data Analytics Function
JPH1027147A (ja) サーバアドレス管理方式
CN107077429A (zh) 数据读取方法、设备和系统
JP2018014049A (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
US12030535B2 (en) Railway automation network and method for transmitting messages in a railway automation network
CN110401716A (zh) 边缘节点之间的通信方法及系统
US8078576B2 (en) Network management information (NMI) distribution
CN115996187A (zh) 路由信息处理方法、装置、路由信息交互系统和路由设备
JP2009508211A (ja) エンドポイントに透過な独立したメッセージ処理システム及び方法
US8223653B2 (en) Broadcast capable file system
US20100005164A1 (en) Methods and apparatus for providing a control channel in a data network
US8769062B2 (en) Determining a network address for managed devices to use to communicate with manager server in response to a change in a currently used network address
CN114884917B (zh) 一种地址解析协议报文的控制系统及方法
US9019964B2 (en) Methods and systems for routing application traffic
JPH10289142A (ja) ネットワークのファイル更新システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application