KR20010007119A - 소프트웨어 모듈사이의 정보 교환 시스템 및 방법 - Google Patents

소프트웨어 모듈사이의 정보 교환 시스템 및 방법 Download PDF

Info

Publication number
KR20010007119A
KR20010007119A KR1020000028278A KR20000028278A KR20010007119A KR 20010007119 A KR20010007119 A KR 20010007119A KR 1020000028278 A KR1020000028278 A KR 1020000028278A KR 20000028278 A KR20000028278 A KR 20000028278A KR 20010007119 A KR20010007119 A KR 20010007119A
Authority
KR
South Korea
Prior art keywords
notifier
broker
observer
lookup table
event
Prior art date
Application number
KR1020000028278A
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 KR20010007119A publication Critical patent/KR20010007119A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에 따른 시스템은 대응하는 이벤트 클래스(event class)를 갖는 트리거링 이벤트를 검색하는 통지기 및 이 트리거링 이벤트 발생에 대한 통지를 수신하는데 관여하는 관측기를 포함하는 소프트웨어 모듈사이에서 정보를 교환하는 브로커링 장치를 포함한다. 이 시스템은 브로커, 관측기 및 통지기를 포함한다. 소프트웨어 모듈은 단일 컴퓨터 메모리 또는 네트워크를 통해 상호 접속된 다중 컴퓨터 메모리의 분리된 어드레싱 가능 위치에 생성된다. 브로커는 아이덴티티 및, 시스템내에 존재하는 모든 통지기와 관측기 소트프웨어 모듈의 메모리 또는 네트워크 위치 뿐만 아니라 모듈이 관련된 이벤트의 클래스를 갖는 하나 이상의 룩업 테이블을 유지한다. 새로운 통지기의 생성시 또는 관측기 모듈에 의해 브로커에 신청할시, 브로커는 하나 이상의 룩업 테이블에 새롭게 생성된 모듈을 부가하며, 그 뒤, 브로커는 공통 이벤트 클래스를 갖는 관측기와 통지기를 정합하도록 스캐닝한다. 통지기와 관측기가 이벤트를 분배하는 것을 브로커가 결정할 경우, 이 브로커는 통지기가 트리거링 이벤트 발생의 통지를 관측기에 직접 전송하도록 지시한다. 그 뒤, 브로커는 통지기와 관측기의 콜백 인터페이스 직접 설정을 조력하지만, 콜백 인터페이스가 설정된 이후에는 통지기와 관측기사이의 차후의 통신에는 관여하지 않는다. 새로운 모듈이 생성되고, 구식 모듈이 제거되거나 재 생성되기 때문에, 룩업 테이블이 갱신되고, 따라서, 관측기는 식별되어, 소프트웨어 구성요소의 소위 "핫 스와핑(hot swapping)"이 허용된다.

Description

소프트웨어 모듈사이의 정보 교환 시스템 및 방법{System and method of exchanging information between software modules}
본 발명은 소프트웨어 모듈사이에 정보를 교환하는 시스템 및 방법에 관한 것으로, 특히, 브로커링 서비스가 제공되어 통지기와 관측기사이의 콜백 인터페이스를 관리하는 소프트웨어 모듈간의 정보를 교환하는 시스템 및 방법에 관한것이다.
오브젝트-오리엔티드 컴퓨터 프로그래밍("OOP")은 컴퓨터 장치에 의해 실행된 상위 동작을 "오브젝트" 또는 "컴포넌트"처럼 당업계에 공지된 분리된 모듈로 해체한다. OOP 이전의 컴퓨터 장치는 통상적으로 장비의 상위 동작 동안 실행될 수 있는 각 테스크에 대한 프로그램 코드를 포함한다. 그러나, OOP는 컴퓨터 장치가 이 장치의 상위 동작의 구조 또는 동작 구성에 대해 최소로 필요한 프로그램 코드만을 포함하도록 하였다. 그 뒤, 컴퓨터 장치의 상위 동작동안 실행될 각각의 특정 테스크는 필요한 기본 사항으로 컴퓨터 장치의 구조로 그 자체가 "콜링된" 컴포넌트로써 제공된다. Washington, Seattle에 위치한 Microsoft Corporation에 의해 보급된 Component Object Model("COM") 또는 Massachusetts, Framingham에 위치한 Object Management Group에 의해 보급된 Common Object Request Broker Architecture("CORBA")등의 당업계의 통상의 지식을 가진자에게 공지된 컴포넌트에 근거한 프로그래밍 플랫폼은 모듈 방식의 컴퓨터 장치를 설계할 목적으로 개발되었다.
일반적으로, 오브젝트들은 컴퓨터 메모리의 분리된 어드레싱가능한 위치내에 통상적으로 존재하는 "관측기" 또는 "통지기"중의 하나 또는 모두가 되도록 고려될 수 있다. 관측기는 소정의 트리거링 이벤트에 의한 검색에 응답하여 사전 정의된 동작을 실행하는데 관여한다. 예를 들면, 원격통신 네트워크에서, 관측기는 사전 기록된 메시지를 재생하고 입력 전화콜이 음성메일에 루틴될 때 입력 메시지를 기록하는데 관여하는 자동 음성메일 장치가 될 수 있다. 통지기는 전화선에 접속되어 관측기에 보고된 입력 콜을 검색함으로써 음성메일 장치를 트리거링 할 수 있다. 그러므로, 소정의 트리거링 이벤트가 발생할 시, 통지기 컴포넌트로부터 관측기 컴포넌트에 메시지를 전송하는 시스템 및 방법을 제공하는 것이 바람직하다.
트리거링 이벤트 발생시 참조할 수 있는 관측기에 대한 공지된 방법중 하나는 통지기의 상태를 결정하기 위해 통지기를 주기적으로 폴링하는 관측기를 갖는 것을 포함한다. 예를 들면, 통지기는 라인상에서 입력 콜을 검색할 때 논리적인 "업"위치와 그 밖의 모든 다른 시간에 논리적인 "다운"위치에 있는 메모리 플래그를 포함할 수 있다. 통지기를 폴링할 때, 관측기는 플래그가 "업"위치에 있는 것을 검색하는 경우에는 트리거링 이벤트 발생을 검색하여 자동 음성메일 장치를 초기화한다. 그러나, 이 방법에 따라, 관측기는 플래그의 위치를 결정하기 위해 빈번하게 소정의 간격으로 통지기를 폴링해야 한다. 이러한 반복된 폴링은 예를 들면, 통지기가 시스템으로부터 제거될 때 실질적인 동작 시간을 소비하고 동작시 문제점을 일킬 수 있다. 더욱이, 통지기를 폴링하는 것은 플래그의 상태가 자주 변하지 않기 때문에 전체적으로 필요없는 대부분의 동작 시간이 된다. 따라서, 폴링은 전반적인 시스템 성능 및 효율을 감소킨다. 따라서, 불필요한 폴링 또는 관측기에 의한 통지기의 질의를 최소화하거나 함께 제거하는 소프트웨어 모듈사이에 정보를 교환하는 시스템 및 방법을 제공하는 것이 바람직하다.
트리거링 이벤트 발생을 관측기에게 통지하는 다른 공지된 방법에는 트리거링 이벤트 발생시 관측기에 메시지를 자발적으로 전송하도록하는 통지기에 관한 것이 있다. 예를 들면, COM 과 같은 오브젝트에 근거한 플랫폼(object-based platform) 은 관측기와 통지기사이에 "콜백 인터페이스"를 설정할 수 있는데, 이로 인해 관측기가 트리거링 이벤트 발생시 통지하는데 관여하는 통지기와 함께 미리 등록된다. 일반적으로, 관측기는 통지기를 위치시킴으로써 그리고, 통지기가 트리거링 이벤트 발생을 검색하는데 적합한지를 결정하도록 통지기를 질의함으로써, 콜백 인터페이스 설정 절차를 초기화하며, 상기 트리거링 이벤트는 관측기가 관여한다. 따라서, 통지기가 트리거링 이벤트 발생에 대해 관측기가 조력하는데 적합한지를 결정한다. 이렇게 되면, 관측기는 통지기와 함께 등록하며, 이 관측기는 트리거링 이벤트가 발생할 때 통지하는데 관여한다.
불행하게도, 콜백 인터페이스가 공지된 방법에 따라 설정됨으로써, 이 과정은 몇가지 질의와 관측기와 통지기 사이에서 교환될 메시지를 요구한다. 더욱이, 관측기는 통지기가 관측기에 관여하는 트리거링 이벤트를 검색할 수 있는 서버상에 존재하는 여부 또는 장소를 알지 못할 수도 있다. 그 결과, 관측기는 시스템내에 존재하는 통지기의 통지 서비스의 장점을 가질 수 있다는 사실을 완전히 알지 못할 수 있으나, 단지 통지기의 존재를 알지 못하기 때문에 실패하여 그렇게 될 수 있다. 관측기가 콜백 인터페이스 설정을 요구함으로 관측기에 관여하는 통지 서비스를 제공하는 통지기를 발견하기 위해, 그 뒤, 관측기가 관여하는 이벤트로 감시하는 통지기를 찾는 전체 시스템을 검색하기 위한 관측기를 요구하기 위해, 그리고, 이 과정에서 모든 통지기와 접촉하기 위해, 관측기가 관여하는 많은 이벤트를 감시하지 않을 수도 있다. 시스템에서 발견되는 각각의 통지기에 대한 질의와 검색은 전반적인 시스템 성능과 효율을 심각하게 저하시킴이 명백하다. 그러므로, 관측기와 통지기사이의 콜백 인터페이스를 설정하는 시스템 및 방법을 제공하는 것이 바람직하며, 여기서, 통지기와의 콜백 인터페이스를 설정하도록 관측기에 대해 최소 검색과 질의가 요구된다.
이를 이루기 위해, 디렉토리 서비스가 시스템상의 임의의 통지기 위치 및 각각 통지기가 감시하는 이벤트 클래스를 포함하는 룩업 테이블로 시스템 상에 때때로 제공된다. 예를 들면, 각각의 통지기가 생성될 때, 엔트리는 통지기 위치 및 통지기가 감시하는 이벤트 클래스를 갖는 디렉토리 서비스 룩업 테이블내에 생성된다. 특정한 이벤트 클래스를 감시하는 통지기에 대해 대규모로 시스템을 검색하면, 통지기로부터 통지를 수신하는 관측기는 여기에 등록된 통지기들을 찾도록 디렉토리 서비스 룩업 테이블을 참고하며, 상기 통지기들은 관측기에 관여하는 이벤트 클래스를 감시한다. 예를 들면, 예로써 상술한 라인 감시 통지기의 생성시 전화선의 무응답 상태의 감시를 참조하여 그 위치를 등록한다. 음성메일 관측기는, 그 뒤, 디렉토리 서비스를 참조할시, 라인 감시 통지기가 그것에 관여하는 이벤트 클래스를 감시하는지를 결정하며, 라인 감시 통지기와의 콜백 관계를 직접적으로 초기화한다. 디렉토리 서비스는 관측기를 통지기에 직접적으로 지정하기 때문에, 관측기는 시스템을 검색하도록 요구되지 않음으로써, 전반적인 시스템 성능 및 효율을 향상시킨다. 그러나, 통지기에 직접적으로 지정된 관측기에 대하여 항상 바람직한 것을 아니다. 예를 들면, 다른 오브젝트, 예를들면, 관측기에 통지기의 위치를 개시하는 것은 보안상의 문제로 남을 수 있다. 그러나, 디렉토리 서비스가 검색 및 통지기와의 콜백 인터페이스를 설정하도록 관측기에 대해 요구되는 질의를 감소시키는 반면에, 관측기는 새로운 통지기가 생성되는지의 여부를 결정하기 위해 서비스를 폴링하는 것이 요구된다.
이벤트 서비스는 때때로 디렉토리 서비스의 대안으로써 제공되는데, 이로 인해, 메시지는 통지기등의 이벤트 서비스를 통해 루틴되며, 관측기는 시스템에 생성되거나 시스템으로부터 제거되며, 통지기는 메시지를 제거된 관측기에 전송하지 않고, 따라서, 이들 통지기에게 명령하는 것이 실패하게 된다. 더욱이, 이벤트 서비스를 사용하면, 관측기는 바람직한 통지기에 시스템을 폴링시킬 필요가 없다. 또한, 이벤트 서비스는 시스템의 모든 통지기로부터 모든 통지 메시지를 수신하여, 이를 사전 선택된 이벤트 클래스를 갖는 메시지의 수신에 관여하는 등록된 관측기에 전송한다. 불행하게도, 이벤트 서비스는 시스템내에 병목현상을 가끔식 발생시켜, 전반적인 시스템 성능 및 효율을 저하시킨다. 시스템 성능은 특히, 이벤트 서비스를 통해 데이터 전송이 많은 이벤트 서비스, 예를 들면, 스트림 오디오 또는 비디오를 이용하면 저하된다. 또한, 기존의 모든 장치는 컴포넌트가 서비스로부터 제거되어 재 저장될때의 가변 인터페이스 회복 절차가 부족하였다.
따라서, 본 기술분야에서, 컴포넌트의 일부에 지금까지 요구된 동작 및 디렉토리 서비스 또는 이벤트 서비스의 잠점적인 제한 형태없이 모듈사이에서 메시지가 직접적으로 전송되는 소프트웨어 모듈사이에서 정보를 교환하는 장치 및 방법이 필요하게 되었다.
본 발명에 따라 이러한 필요가 충족되며, 본 발명에 따른 시스템은 대응하는 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생을 검색하는데 접합한 통지기 및 트리거링 이벤트 발생시 통지를 수신하는 관측기를 포함하는 소프트웨어 모듈사이에서 정보를 교환하는 브로커링 장치를 포함한다. 이 시스템은 브로커, 관측기 및 통지기를 포함한다. 본 실시예에서, 생성기는 네트워크를 통해 상호 접속된 다중 컴퓨터의 메모리 또는 컴퓨터의 메모리의 분리된 엑세싱 가능한 위치에서 소프트웨어 모듈을 생성하는 생성기로 브로커, 관측기 및 통지기를 생성한다. 이 브로커는 모듈과 관련된 이벤트 클래스 뿐만 아니라, 시스템내에 존재하는 관측기 모듈과 모든 통지기의 위치 및, 아이덴티티를 갖는 하나 이상의 룩업 테이블을 유지한다.
새로운 통지기 또는 관측기 모듈의 생성시, 생성기는 새롭게 생성된 모듈이 시스템내에서 생성되어지를 브로커에게 통지하고, 브로커를 새로운 모듈의 위치에 지정한다. 새로운 모듈에 일단 접속되면, 브로커는 그것이 통지 서비스를 제공하는지의 여부 즉, 그것이 통지기인지의 여부를 결정하도록 모듈에 질의한다. 브로커가 새롭게 생성된 모듈이 통지 서비스를 제공하는 것을 결정하면, 브로커는 통지기(들)를 제 1 룩업 테이블에 통지기의 이벤트 클래스와 함께 부가한다.
시스템내에 존재하는 관측기는, 관측기가 생성기에 의해 생성되든지 아니면, 생성되지 않든지, 관측기에 관여하는 이벤트 클래스 또는 클래스들의 조력으로 시스템내의 하나 이상의 통지기에 의해 제공되는 통지 서비스에 예약할 목적으로 브로커를 찾아낸다. 일단 관측기가 브로커를 경유하여 이러한 임의의 통지 서비스에 예약하면, 이 브로커는 관측기의 이벤트 클래스와 함께 관측기(들)를 제 2 룩업 테이블에 부가한다.
통지기 또는 관측기가 브로커의 룩업 테이블에 부가될 때 마다, 브로커는 임의의 통지기 및 관측기가 이벤트 클래스를 분배하는지를 결정하도록 관측기 룩업 테이블과 통지기 룩업 테이블을 비교한다. 이 이벤트에서, 브로커는 통지기와 관측기가 이벤트 클래스를 분배하는지를 결정하며, 브로커는 통지기에게 메시지를 전송하고, 관측기에 트리거링 이벤트 발생에 대한 통지를 직접적으로 전송하도록 통지기에게 알린다. 이에 따라, 브로커는 통지기와 관측기 사이에서 콜백 인터페이스를 설정하는데 조력하지만, 콜백 인터페이스가 설정된 이후에는 통지기와 관측기사이의 차후 통신에는 관여하지 않는다. 새로운 모듈이 생성되면, 구 모듈은 제거되거나 재 생성되고, 룩업 테이블이 갱신되어, 접속 인터페이스가 관측기 및 통지기의 일부에서 임의의 동작없이 생성 및 재생될 수 있으므로, 콜백 인터페이스의 자동 회복 및 소프트웨어 모듈의 소위, "핫 스와핑(hot swapping)"이 가능해진다.
본 발명의 일 국면에 따라, 소프트웨어 모듈사이의 정보 교환 시스템은 등록 모듈용 제 1 룩업 테이블을 갖는 브로커, 등록 모듈용 제 2 룩업 테이블 및 대응하는 이벤트 클래스를 갖는 하나 이상의 트리거링 이벤트 발생을 다른 모듈에 통지하는 통지기 및 대응하는 이벤트 클래스를 갖는 하나 이상의 트리거링 이벤트의 통지를 수신하는 관측기를 포함한다. 제 1 통지기는 제 1 이벤트 클래스를 갖는 소정의 제 1 트리거링 이벤트 발생을 검색하는데 접합하며, 제 1 관측기는 제 2 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는데 관여한다. 상기 브로커는 제 1 통지기가 생성될 때 제 1 룩업 테이블에 제 1 통지기를 부가하고, 제 1 관측기가 소정의 트리거링 이벤트의 통지를 수신하는 것을 브로커에 통지할 때, 즉, 브로커의 서비스에 예약할 때 제 2 룩업 테이블에 제 1 관측기를 부가한다.
본 발명의 다른 국면에 따라, 소프트웨어 모듈사이의 정보 교환 방법은, 제 1 룩업 테이블과 제 2 룩업 테이블을 포함하는 브로커를 생성하는 단계, 제 1 이벤트 클래스를 갖는 소정의 제 1 트리거링 이벤트 발생을 검색하는데 접합한 제 1 통지기를 생성하는 단계, 브로커가 제 1 이벤트 클래스를 갖는 제 1 통지기를 제 1 룩업 테이블에 나열하는 단계, 제 2 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는 제 1 관측기를 생성하는 단계, 제 1 관측기가 소정의 트리거링 이벤트 발생의 통지에 관여하는지를 브로커에게 통지할 때 이 브로커가 제 2 이벤트 클래스를 갖는 제 1 관측기를 제 2 룩업 테이블에 나열하는 단계, 브로커가 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단계 및 상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일한 경우 소정의 제 1 트리거링 이벤트 발생을 제 1 관측기에 직접적으로 통지하도록 브로커가 제 1 통지기에 명령하는 단계를 포함한다.
본 발명의 특징은 소프트웨어 모듈사이에서 정보를 교환하는 시스템 및 방법을 제공하는 것이다. 특히, 통지기 모듈과 관측기 모듈사이의 통신 브로커링을 위한 장치 및 방법을 제공하는 것이다.
본 발명의 다른 특징은 관측기에 의해 통지기의 질의 또는 불필요한 폴링이 제거되는 소프트웨어 무듈사이에서 정보를 교환하는 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 특징은 메시지가 모듈사이에 직접적으로 전달되는 소프트웨어 모듈 사이에서 정보를 교환하는 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 특징은 견고하며 통지기와 관측기 사이의 콜백 인터페이스의 실행이 쉬운 소프트웨어 모듈 사이에서 정보를 교환하는 시스템 및 방법을 제공하는 것이다.
본 발명의 부차적인 특징은 소프트웨어 모듈사이에서 정보를 교환하는 시스템 및 방법을 제공하는 것으로, 여기서, 새로운 통지기 모듈이 생성되거나 기존 모듈이 서비스로부터 제거되어 재생성될 때 통지기와 관측기사이의 접속 회복 가능성이 뛰어나며, 콜백 인터페이스는 자동으로 생성 또는 재생성되어 브로커에 의해 회복된다.
본 발명의 이러한 특징 및 장점은 다음 설명에 의해 당 업계의 통상의 지식을 가진 자들에게 명확해 질 것이며, 특히 본원에 첨부된 특허청구범위에서 지적된 지시 및 조합에 의해 실현될 수 있다.
도 1은 본 발명의 양호한 실시예에 따른 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
도 2는 브로커를 생성하는 제 1 단계와 도 1의 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
도 3은 통지기를 생성하는 제 2 단계와 도 1의 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
도 4는 관측기를 생성하는 부가의 단계와 도 1의 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
도 5는 관측기에 통지하는 부가의 단계와 도 1의 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
도 6은 부가 관측기를 생성하는 부가의 단계와 도 1의 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
도 7은 관측기와 부가 관측기에 통지하는 부가의 단계와 도 1의 소프트웨어 컴포넌트사이에 정보를 교환하는 시스템의 개략도.
* 도면의 주요부분에 대한 부호의 설명*
10: 시스템 20: 생성기
24: 레지스트리 40: 통지기
60: 관측기 80: 브로커
지금부터, 도면을 참조로 설명하면, 도 1은 본 발명에 따른 소프트웨어, 오브젝트 및 컴포넌트등, 이들 사이에서 정보를 교환하는 시스템(10)을 도시한다. 시스템(10)의 실시예는 생성기(20), 브로커(80), 하나 이상의 통지기(40) 및 하나 이상의 관측기(60)을 포함한다. 실시예의 시스템(10)은 하나의 통지기(40) 및 하나의 관측기(60)를 포함하는 것으로 설명되어 있지만, 당 업계의 통상의 지식을 가진자들은 통지기와 관측기의 수는 본 발명의 정신 및 범위를 벗어나지 않고 제공될 수 있음을 알수 있다.
기록한 소프트웨어 컴포넌트, 즉, 생성기(20), 통지기(40), 관측기(60) 및 브로커(80)는 자체적으로 모듈을 포함하는 것으로 설명되었다. 각 모듈은 분리된 가상 어드레스 공간에 있을 수 있고, 모든 모듈은 공통 가상 어드레스 공간에 분배될 수도 있으며, 그 조합으로 배치될 수도 있다. 또한, 각 모듈은 분리된 물리적인 컴퓨터에 존재할 수 있고, 모든 모듈이 동일한 컴퓨터에 존재할 수 있으며, 모듈들이 그 조합으로 배치될 수도 있다. 이러한 모듈들이 어떻게 배치되는냐에 따라, 주어진 모듈은 직접 메모리 어드레싱에 의해(콜링된 모듈이 콜링 모듈로써 동일한 가상 어드레스 공간에 존재하는 경우에) 또는 인터프로세스 통신에 의해(콜링된 모듈이 콜링 모듈로써 동일한 컴퓨터의 분리된 가상 어드레스 공간에 존재하는 경우), 또는 원격 진행 콜에 의해(콜링된 모듈이 콜링된 모듈로부터 분리된 컴퓨터상에 존재하는 경우) 다른 모듈과 액셀싱할 수 있다. 본 발명에 의해 요구되지 않았지만, Washington, Seattle에 위치한 Microsoft Corporation에 의해 개발되어 배급된 Distributed Component Object Model("DCOM), 또는 Massachusettts, Framingham에 위치한 Object Management Group에 의해 배포된 Common object Request Broker Architecture("CORBA")등, 모듈 액세싱을 제공하기 위해 분배된 오브젝트에 근거한 프로그래밍 플래폼의 사용은 중요한 유틸리티를 제공하는데, 이는 콜링 모듈이 그 위치를 파악하지 않고, 또는 엑세스의 3개의 모듈(직접 메모리 어드레싱, 인터프로세스 콩신 및 원격 진행 콜) 사이에서 분배하지 않고 콜링된 모듈을 액세싱 가능하도록 하기 때문이다.
생성기(20)는 브로커(80), 통지기(40) 및 관측기등의 다른 오브젝트를 생성하는데 적합한 소프트웨어 컴포넌트이며, 사전 정의된 상위 동작을 실행하도록 운용 시스템상에 인스톨된 소프트웨어 장치등에 의해, 시스템(10)내에 양호하게 장착된다. 생성기(20)는 설명된 실시예의 브로커(80), 통지기(40) 및 관측기(60)를 생성하는데 책임이 있으므로, 생성기(20)는 크로커(80), 통지기(40) 및 관측기(60)가 생성되기 전에 시스템(10)내에 존재하여야 한다. 그러나, 통지기(40) 뿐만 아니라 시스템(10)의 다른 통지기 및 관측기(60) 뿐만 아니라 시스템(10)의 다른 관측기는 생성기(20)에 의해 생성될 필요가 없지만, 본원에 설명된 이러한 컴포넌트를 생성하는데 적합한 시스템(10)의 다른 컴포넌트에 의해 생성될 수 있다.
일반적으로, 본 실시예에 따른 시스템(10)은 블록(101)에 의해 설명된 컴퓨텅의 메모리내의 어드레싱 가능한 위치의 브로커(80)을 생성하는 생성기(20)에 의해 구성될 수 있다. 생성기(20)는 브로커(80)을 생성하기 때문에, 생성기(20)는 브로커(80)의 위치를 알수 있고, 그로 인해, 생성기(20)는 예를 들면, 메시지 또는 명령을 직접적으로 전송하도록 브로커(80)를 차후 어드레스를 가능하게 한다. 그 뒤, 생성기는 블록(201)에서 설명하는 바와 같이, 다른 위치에서 브로커(80)에 메시지(205)를 전송하며, 오브젝트가 생성되어진 브로커(80)를 통지하고, 새롭게 생성된 통지기(40)의 위치에 직접적으로 브로커(80)를 지적함으로써, 브로커(80)가 직접적으로 통지기(40)에 어드레싱 가능하도록 한다. 또한, 통지기(40)는 통지기(40)에 의해 감시되는 정보의 형태에 관련되는 이벤트 클래스를 포함하며, 그 이벤트 클래스에 관여하며, 브로커에 등록된 시스템(10)의 임의의 컴포넌트에 제공되는 이벤트 발생에 대해 이하 설명한다. 예를 들면, 통지기(40)는 하나 이상의 이벤트 발생을 감시하며, 관여하는 컴포넌트에 의해 요구되는 동작을 실행하고, 필요한 정보를 제공할 수 있다.
생성기(20)는 그 뒤, 블록(301)에 설명한 바와 같이 다른 위치에서 관측기(60)을 생성한다. 생성기(20)는 그 뒤, 메시지(305)를 브로커(80)에 전송하고, 생성되는 다른 오브젝트를 브로커(80)에 알리고 새롭게 생성된 관측기(60)의 위치에 브로커(80)를 지정함으로써, 브로커(80)가 관측기(60)에 직접적으로 어드레싱 가능하게 한다.
시스템(10)에 생성된 오브젝트로써, 브로커(80)는 이들 생성을 통지 받고, 브로커(80)는 이것이 임의이 이벤트 클래스의 서비스 통지를 제공하는지를 결정하도록 즉, 생성된 오브젝트가 통지기인지를 결정하도록 각 오브젝트에 질의한다. 브로커(80)가 새롭게 생성된 오브젝트가 통지기인 것을 결정하는 경우, 브로커(20)는 여기에 포함된 임의의 이벤트 클래스를 결정하도록 통지기(40)에 부가로 질의하고, 브로커(80)는 통지기(40)의 아이덴티티와 함께 도 2의 통지기 룩업 테이블(84)에 부가한다.
브로커(80)가 새롭게 생성된 오브젝트가 관측기이라는 등의 새롭게 생성된 오브젝트가 통지 서비서를 제공하지 않음이 결정되는 경우, 브로커(80)는 새롭게 생성된 오브젝트에 관련된 더 이상의 절차를 진행하지 않는다. 따라서, 관측기는 비-통지기 오브젝트가 생성됨을 통지하는 것 보다 이들의 존재를 브로커(80)에 알리지 않고 시스템(10)내에서 생성될 수 있다. 이 브로커는 관측기가 통지 서비스에 예약할 목적으로 브로커(80)에 접촉되어 있는 시간까지는 관측기(60)등의 관측기들에 명확히 남아 있으며, 이 통지 서비스는 시스템(10)내의 하나 이상의 통지기에 의해 제공된다. 관측기(60)는 브로커(80)에 메시지(601)를 전송함으로써 통지 서비스에 예약하고, 관측기(60)가 요구하는 발생이 통지되는 트리거링 이벤트 발생의 이벤트 클래스와 함께 도 2의 관측기 룩업 테이블(86)에 브로커(80)가 관측기(60)에 부가될 것을 요구한다. 관측기(60)등의 관측기가 통지 서비스에 예약될대, 관측기의 위치를 알리는 브로커(80)는 통지기(40)등의 동일한 이벤트 클래스 또는 클래스들을 갖는 임의의 통지기에 메시지(307)를 전송하고, 트리거링 이벤트 발생의 임의의 통지를 직접적으로 관측기(60)에 연결되도록 통지기(40)에 명령한다. 일단, 통지기(40)가 트리거링 이벤트 발생을 검색하면, 통지기(40)는 메시지(401)를 관측기(60)에 직접적으로 전송한다.
도 2를 부차적으로 참조하면, 본 실시예의 시스템(10)을 통신 시스템을 제어하는 컴퓨터 장치를 참조하여 더 상세히 설명하였다. 본 원에 설명된 시스템(10)이 임의이 장치에 적용될 수 있고, 통신 시스템을 제어하는 컴퓨터 장치에만 한정되지 않음을 당 업계에 통상의 지식을 가진 자에게 명백할 것이다. 상술한 바와 같이, 생성기(20)는 시스템(10)내에 상주하는 어드레싱 가능한 오브젝트이며, 다른 어드레싱 가능한 오브젝트, 컴포넌트 및 모듈등을 생성하는데 적합하다. 생성기(20)는 예를 들면, 통지기(40) 또는 관측기(60)등의 오브젝트를 생성하는 생성 서비스(22)와 같은 소정의 특정 동작을 실행하는데 적합한 생성기(20)의 하나 이상의 서브-처리를 포함한다. 임의의 서비스는 또한, 오브젝트가 생성될 때 마다 브로커(80)에 이를 통지하는 이벤트 서비스로써 동작한다. 또한, 생성기(20)는 생성기(20)에 의해 생성된 모든 오브젝트 및 생성된 오브젝트의 각각의 위치를 나열하는 레지스트리(24;registry)를 포함한다.
초기치 설정시, 생성기(20)는 블록(101)에 설명한 바와 같이, 시스템(10)내의 어드레싱 가능한 위치에 브로커(80)를 생성하여 메시지(103)를 레지스트리(24)에 전송하고, 브로커(80)와 브로커(80)의 위치를 레지스트리(24)에 부가한다. 브로커(80)이 생성될 때, 3개의 테이블이 지정되는데, 이는 통지기 룩업 테이블(80), 관측기 룩업 테이블(86) 및 접속 룩업 테이블(88)등이다. 통지기 룩업 테이블(84)은 시스템(10)내에 생성된 임의의 통지기와 통지기가 보고할 이벤트 클래스를 나열한다. 관측기 룩업 테이블(86)은 시스템(10)내의 통지기에 의해 제공된 하나 이상의 통지 서비스에 예약되어진 시스템(10)내에서 생성된 임의의 관측기 및 관측기가 상기 보고에 관여하는 트리거링 이벤트의 이벤트 클래스를 포함한다. 접속 룩업 테이블(88)은 동일한 이벤트 클래스 또는 클래스들을 가지는 룩업 테이블(84,86)에 나열된 모든 통지기와 관측기 및 상기 이벤트 클래스 또는 클래스, 즉, 즉, 브로커(80)에 의해 브로커링된거나 설정된 접속과 관련된 관측기의 위치를 포함한다.
생성 이후, 즉시, 브로커(80)는 생성기에게 질의를 하며, 생성기가 통지기인지 또는 그 이벤트 클래스가 오브젝트의 생성인지를 결정한다. 브로커(80)는 그 뒤, 통지기 룩업 테이블(84)에 생성기(20)를 부가하고 생성기(20)와 관련된 "생성 오브젝트"로 라벨이 붙여진 이벤트 클래스를 참조한다. 이처럼, 브로커(80)는 시스템(10)에서 오브젝트를 생성하며 오브젝트의 생성을 통지하는데 관여하는 임의의 오브젝터에 통지를 제공한다. 브로커(80)은 그 뒤, 그 자체, 즉 브로커(80)을 관측기 룩업 테이블(86)에 부가하며, 여기서 "생성 오브젝트"로 라벨이 붙여진 이벤트 클래스를 참조한다.
관측기 룩업 테이블(86)에 그 자체가 부가된 이후, 브로커(80)는 통지기 룩업 테이블(84)과 관측기 룩업 테이블(86)을 비교하여 공통 이벤트 클래스의 임의의 예를 찾아낸다. 생성기(20)를 발견하고, 브로커(80)는 "생성 오버젝트"로 라벨리 붙여진 이벤트 클래스를 분배하고, 브로커(20)는 접속 룩업 테이블(88)에 이 접속을 부가하거나 브로커링하며, 새로운 오브젝트가 생성될 때 브로커(80)에 적접 통지하도록 생성기(20)에게 명령하는 생성기(20)에 메시지(109)를 전송한다. 이와 같이, 브로커(80)는 그 자체와 생성기(20)사아에 콜백 관계를 설정함으로써, 브로커(80)는 생성기(20)가 시스템(10)내에 새로운 오브젝트를생성할 때무다 통지된다.
도 3을 참조하면, 생성기(20)는 블록(201)에 설명된 바와 같이, 통지기(40)을 생성하여, 소정의 트리거링 이벤트 발생의 통지를 검색하여 제공한다. 예를 들면, 통지기(40)는 "라인 감시"로 라벨이 붙여질 수 있고, 입력 콜이 존재할 때 통지를 제공하도록 라인"L"의 상태를 감시하기 위해 전화선"L"에 접속될 수 있다. 라인"L"은 입력 콜이 무응답 사용자의 전화선으로부터 종래의 전화 스위칭 동작에 의해 전송된 이후에 만 제공될 수 있도록 될 수 있다. 통지기(40)의 생성시, 생성 서비스(22)는 메시지(203)를 오브젝트 레지스트리(24)에 전달하여 통지기(40)에 부가하며, 브로커(80)에 메시지(205)를 전송하고, 새로운 오브젝트의 생성을 브로커(80)에 알리고, 새롭게 생성된 통지기(40)의 위치에 직접적으로 브로커(80)를 지정한다. 브로커(80)는 통지기(40)가 임의의 이벤트 클래스의 통지 서비스를 제공하는지의 여부를 결정하도록 통지기(40)에 메시지(207)를 전송한다. 본 예에서처럼 이것이 발견되면, 브로커(80)는 그 이벤트 클래스 또는 클래스들을 브로커(80)에 개시할 것을 요구하면서, 다른 메시지(209)를 통지기(40)에 전송한다. 통지기(40)의 이벤트 클래스 또는 클래스들을 통지받으면, 브로커(80)는 통지기(40)의 이벤트 클래스를 통지기 룩업 테이블(84)내의 통지기(40) 다음에 나열한다. 본 실시예에서, 통지기(40)는 "무응답" 이벤트 클래스를 포함하며, 브로커(80)는 통지기 룩업 테이블(84)에 부가된다. 브로커(80)는 그 뒤 이전에 생성되거나 나열된 임의의 관측기가 "무응답"이벤트 클래스를 포함하는지를 결정하도록 관측기 룩업 테이블(86)을 스캐닝하고, 이어서, 시스템(10)내의 오브젝트로부터 부가의 통신을 대기한다.
도 4를 참조하면, 생성기(20)는 블록(301)에 설명한 바와 같이, 관측기(60)을 생성하며, 예를 들면, "기록 메시지" 라벨이 붙여질 수 있고, 소정의 트리거링 이벤트 발생을 통지하는데 관여한다. 예를 들면, 관측기(60)는 입력 콜이 라인"L"상에 제공될 때 통지하는데 관여할 수 있으므로, 관측기(60)는 입력 전화콜이 루틴될 때 입력 메시지를 기록하고 사전 입력 메시지를 재생하는 자동 음성메일 응답 장치를 초기화시킬 수 있다.
관측기(60)의 생성시, 생성 서비스(22)는 오브젝트 레지스트리(24)에 메시지(303)를 전송하여 관측기(60)을 부가하고, 브로커(80)에 메시지(305)를 전송하며, 시스템(10의 새로운 오브젝트의 생성을 브로커(80)에게 통지하고, 새롭게 생성된 관측기(60)의 위치에 브로커(80)를 직접적으로 지정한다. 브로커(80)는 그 다음, 관측기(60)가 통지 서비스를 제공하는지를 결정하도록 새롭게 생성된 오브젝트(60)에 메시지(307)를 전송한다. 이것이 실행되지 않음이 발견되면, 브로커(80)는 새롭게 생성된 관측기(80)에 관련된 동작을 더 이상 실행하지 않지만, 시스템(10)내의 오브젝트로부터 통신을 기다린다. 질의시, 새롭게 생성된 관측기(60)가 통지기 대신 통지 서비스를 제공하는 것을 브로커(80)가 결정하면, 브로커(80)는 상술한 것처럼 진행된다.
이벤트 클래스를 분배하는 관측기와 통지기 사이의 직접 접속은 브로커(80)에 의해 결정되며, 이 브로커(80)는 시스템(10)에 존재하는 모든 통지기 및 이들 각각의 이벤트 클래스에 대해 식별한다. 브로커(80)는 관측기(60)과 그 이벤트 클래스(또는 클래스들)에 대하여 인식하지 못하며, 특히, 관측기가 소망의 이벤트 클래스를 갖는 통지 서비스에 예약하도록 브로커(80)와 접속할 때 까지, 관측기(60)와 그 이벤트 클래스를 관측기 룩업 테이블(86)에 부가하지 않는다. 따라서, 관측기는 브로커(80)으로 통신을 위치화시켜 초기화하는데 적합해야 한다.
관측기(60)가 주어진 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는데 관여할 때, 관측기(60)는 브로커(80)을 배치시켜 브로커(80)에 메시지(309)를 전송하며, 사전 선택된 이벤트 클래스를 갖는 통지 서비스에 예약한다. 이것은 관측기(60)가 메시지(309)의 브로커(80)에 개시하는 관측기(60)의 이벤트 클래스와 함께 관측기 룩업 테이블(86)에 관측기(60)를 부가하는 브로커(80)의 이벤트 클래스에 의해 간단히 성취된다.
본 실시예에서, 관측기(60)는 "무응답" 이벤트 클래스를 갖는 통지기에 의해 제공된 통지 서비스에 예약한다. 브로커(80)는 관측기(60)를 관측기의 "무응답"이벤트 클래스를 참조하여 관측기 룩업 테이블(86)에 부가한다. 이어서, 브로커(80)는 여기에 이리 생성되어 나열된 임의의 통지기가 일치하는 "무응답"이벤트 클래스를 포함하는지의 여부를 결정하도록 통지기 룩업 테이블(84)을 스캐닝한다. 여기에 나열된 "무응답" 이벤트 클래스를 갖는 통지기(40)를 발견하면, 브로커(80)는 통지기(40)-관측기(60) 접속을 접속 룩업 테이블(86)에 부가하며, 관측기(60)의 위치를 기록한다. 통지기(40)의 위치를 통지하는 브로커(80)는 생성기(20)에 의해 상기 위치에 개시된 바와 같이, 메시지(308)를 통지기(40)에 전송하며, 통지기(40)에 명령하여 관측기의 공지 위치에서 관측기(60)에 직접적인 트리거링 이벤트 발생의 통지를 전송하도록 한다. 그로 인해, 브로커(80)는 다른 것들에 대한 검색에 요구되는 컴포넌트없이 관측기(60)와 통지기(40)사이의 직접 콜백 상호관계를 설정한다. 따라서, 관측기(40)와 관측기(60)사이에 설정된 콜백 상호관계를 갖는 브로커(80)는 통지기(40)와 관측기(60)사이에 더 이상의 메시지를 기대하지 않는다.
도 5를 참조하면, 관측기(60)에 직접적으로 지정된 통지기(40)는 소정의 트리거링 이벤트(403)의 발생, 즉, 통지기(40)에 의해 감시되는 라인"L"상에 입력 콜의 존재를 기다린다. 통지기(40)가 이벤트(403)을 검색할 때, 통지기(40)는 메시지(401)를 처리용 관측기(40)에 전송하여, 사전 기록된 메시지를 재생하고, 입력 전화콜리 음성메일에 루틴될 때 입력 메시지를 기록한다.
도 6을 참조하면, 부가의 오브젝트는 상술한 것처럼 콜백 상호관계로 자동으로 통합되는 시스켐(10)에 생성된다. 예를 들면, 생성기(20)는 블록(501)에서 설명하는 바와 같이, "리고 메시지" 관측기(60)처럼 "라이트"로 라벨이 붙여진 새로운 관측기(70)를 생성하며, 입력 콜이, 예를 들면, 콜링된 사용자 전화상에 "콜 대기" 광을 발산하도록 라인"L"상에 존재할 때 통지하는데 관여한다. 새로운 관측기(70)의 생성시, rthks측기 서비스(22)는 메시지(503)를 생성된 오브젝트 레지스트리(24)에 전송하여 거기에 새로운 관측기(70)를 부가하며, 브로커(80)에 메시지(505)를 전송하고, 새로운 오브젝트의 생성을 브로커(80)에 통지하고 새롭게 생성된 오브젝트(70)의 위치에 이 브로커(80)를 지정한다. 브로커(80)는 그 뒤, 새로운 오브젝트가 통지 서비스를 제공하는지 여부를 결정하도록 새롭게 생성된 오브젝트, 즉, 새로운 관측기(70)에 메시지(507)를 전송한다. 이것이 발견되지 않으면, 본 실시예에서 처럼, 브로커는 새로운 관측기(70)에 관한 더 이상의 동작을 하지 않는다.
새로운 관측기(70)가 주어진 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는데 관여하게 될 때, 새로운 관측기(70)는 브로커(80)을 배치하여 브로커(80)에 메시지(509)를 전송하며, 주어진 이벤트 클래스를 갖는 통지 서비스에 예약한다. 이것은 새로운 관측기(70)가 메시지(509)의 브로커(80)에 개시하는새로운 관측기(70)의 이벤트 클래스와 함께 새로운 관측기(70)를 관측기 룩업 테이블(86)에 부가하는 브로커(80)에 의해 간단히 달성된다. 설명한 바와 같이, 새로운 관측기(70)는 "콜 대기" 광이 콜링된 사용자 전화기상에 조명될 수 있도록 입력 콜이 라인"L"상에 수신될 때 통지하는데 관여한다. 새로운 관측기(70)는 그 뒤, "무응답"이벤트 클래를 갖는 통지 서비스에 예약할 것을 소망한다. 이 정보는 관측기 룩업 테이블(86)에 부가된다.
이어서, 브로커(80)는 룩업 테이블(84)에 사전에 생성되어 나열된 임의의 통지기가 "무응답" 이벤트 클래스를 포함하는 지의 여부가 결정되도록 스캐닝한다. "무응답" 이벤트 클래스를 갖는 여기에 나열된 통지기(40)를 발견하면, 브로커(80)는 통지기(40)-새로운 관측기(70)를 접속 룩업 테이블(88)에 부가하며 새로운 관측기(70)의 위치를 기록한다. 생성기(20)에 의해 제공되는 바와같이 통지기(40)의 위치를 통지하는 브로커(80)는 메시지(508)를 통지기(40)에 전송하며, 통지기(40)가 새로운 관측기(70)의 공지된 위치에서 새로운 관측기(70)에 직접적인 트리거링 이벤트 발생의통지를 전송하도록 명령한다. 그로 인해, 브로커(80)는 다른 검색을 갖는 컴포넌트없이, 그리고 통지기(40)와 기존의 "기록 메시지"관측기(60)사이의 기존의 콜백 상호관계를 중단시키지 않고 새로운 관측기(70)와 통지기(40)사이의 직접적인 콜백 상호관계를 설정한다. 따라서, 통지기(40)와 새로운 관측기(70)사이의 콜백 상호관계를 설정하는 브로커(80)는 상기 통지기와 관측기사이의 부가적인 통신에 관여하지 않는다.
도 7을 부가로 참조하면, 관측기(60)와 새로운 관측기(70)모두에 직접적으로 지정된 통지기(40)는 소정의 트리거링 이벤트, 예를 들면, 라인"L"상에 수신된 입력콜의 발생을 대기한다. 입력콜이 라인"L"상에 존재하는 것을 통지기(40)가 검색할 때, 통지기(40)는 메시지(401)를 처리용 관측기(60)에 전송하여, 예를 들면, 사전 기록된 메시지를 재생하고 음성메일 장치용 입력 메지시를 기록하며, 또한, 통지기(40)는 메시지(505)를 새로운 처리용 관측기(70)에 전송하여, 콜링된 사용자의 전화기상의 불빛을 깜빡이게 한다.
관측기가 통지기와의 직접적인 콜백 인터페이스를 결정하지 않기 때문에, 통지기는 예를 들면, 통지기의 수정 또는 실패로 인해 시스템으로부터 제거될 수 있으며, 관측기의 인지 없이 재생성 될 수 있다. 반면에, 과거에는, 관측기는 집적적으로 접속하여, 본 발명에 따른 통지기로부터 메시지를 수신하기 위해 하나 이상의 통지기와 콜백 인터페이스를 결정해야 했으므로, 통지기와 관측기가 브로커(80)를 통해 설정되어 직접적인 결정이 실행될 필요가 없다. 본 발명의 하나의 장점은, 실시예에서 설명한 원격 통신 시스템의 관측기 및 통지기의 소프트웨어 컴포넌트의 소위 "핫 스와핑"을 가능하게 하는 것으로, 이는 이러한 컴포넌트들이 이들의 존재를 브로커(80)에 통지할 필요보다는 콜백 인터페이스를 직접 결정하기 위해 서로 다른 어드레싱을 할 필요가 없기 때문이다. 통지기가 예를 들면, 통지기의 실패로 인해 시스템(10)에서 제거되면, 이와 관련된 트리거링 이벤트 발생을 감시하는 것이 정지되며, 이로 인해, 관측기 또는 관측기들에 메시지를 전송하는 것이 정지된다. 통지기 또는 통지기들이 도착하지 않은 통지 메시지를 대기하더라도, 통지기의 재생성은 통지기와의 콜백 인터페이스를 결정하기 위해 관측기 또는 관측기들을 요청하지 않는다. 대신에, 새로운 통지기가 생성되기 때문에, 그 이벤트 클래스는 브로커(80)의 룩업 테이블(84,86,88)에 인가되며, 관측기의 접속은 이미 상술한 바와 같이 관측기의 인지 없이, 브로커(80)에 의해 동적으로 재생성된다.브로커(80)는 메시지를 재생성 통지기에 전송하며, 통지기가 통지 메시지를 적절한 관측기에 전송하도록 명령한다. 따라서, 시스템(10)은 통지기의 실패로부터의 자동 회복 도는 서비스로부터의 제거를 제공하며, 모든 적절한 관측기와의 콜백 인터페이스에 대한 회복된 통지기의 결정을 제거한다.
계속해서, 통지기는 시스템(10)으로부터 의도적으로 제거될 수 있으며, 이 경우, 통지기(40)는 베시지를 브로커(80)에 전송하며, 브로커(80)가 룩업 테이블(84,86,88)로부터 통지기를 제거하도록 명령한다. 통시지의 재생성은 상술한 바와 같이 관여하는 모든 관측기와의 콜백 인터페이스를 재설정한다. 바람직하게는, 또한, 통지기의 실패는 생성기가 매우 심각하며 예측할 수 없는 실패의 퍼징 동작(purging operation)등을 실행하도록 한다. 유사하게, 의도적이거나, 실패로 인한 연속적인 악화로 인해 관측기들이 제거될 때, 관측기는 브로커(80)를 조력해야 한다.
관측기들은 시스템(10)으로부터 의도적으로 제거될 수도 있으며, 이 경우, 관측기(60)(또는 "재생성" 서비스를 사용하는 생성기)는 메시지를 브로커(80)에 전송하며, 브로커(80)가 룩업 테이블(84,86,88)로부터 관측기를 제거하도록 명령한다. 브로커(80)는 그 뒤, 제거된 관측기가 임의의 통지기와의 접속을 형성하는지의 여부를 결정하도록 룩업 테이블(84,86,88)을 스캐닝할 때 메시지를 적절한 통지기에 전송하며, 통지기가 제거된 관측기에 통지 메시지를 전송하는 것을 정지하도록 명령한다. 이 방식에서, 관측기는 사전에 예약된 통지 서비스를 해지하며, 관측기의 재생성은 테이블(84,86,88)을 갱신하고, 그로 인해, 생성된 관측기의 새로운 위치에 대응하는 통지기를 지정한다. 통지기는 관측기의 상태를 질의하는데 적합하므로, 관측기에 의해 사전에 수신되지 않은 모든 트리거링 이벤트는 재생시에 전송된다. 관측기의 실패등으로 인한 시스템(10)으로부터 관측기의 의도되지 않은 제거는 관측기의 재생시 정정되며, 이때, 룩업 테이블은 갱신되며, 모든 대응하는 관측기는 재생성된 관측기의 새로운 위치에 다시 연결된다. 또한, 새롭게 생성된 관측기는 재생시 모든 이벤트들에 대해 조력하므로, 이들은 시스템(10)의 현재 상태를 인지하게 된다. 따라서, 시스템(10)은 소프트웨어 컴포넌트의 동적 회복 및 "핫 스와핑" 용량 그리고, 컴포넌트들이 제거되어 시스템(10)에 다시 설치될때마다, 접속 인터페이스의 자동 회복을 제공한다.
브로커(80)는 결산 기능(audit function)으로 제공될 수 있으며, 이로 인해, 브로커(80)는 각각의 통지기와 관측기에 주기적으로 질의하여, 그 위치가 룩업 테이블(84,86,88)내에 정확하게 나열되어 있는지의 여부를 결정한다. 룩업 테이블(84,86,88)에 나열된 컴포넌트가 나열된 위치에 더 이상 존재하지 않음을 브로커(80)가 결정하는 이벤트에 있어서, 브로커(80)는 컴포넌트를 대응하는 룩업 테이블에서 자동으로 제거하여, 소멸된 컴포넌트와 관련된 임의의 컴포넌트에 명령한다. 예를 들면, 브로커(80)는 질의시, 이 효과에 대해 브로커(80)를 조력하지 않고 관측기가 그 위치로부터 제거됨을 결정하면, 브로커(80)는 룩업 테이블(84,86,88)로부터 관측기에 대한 임의의 기준을 게거하며, 관측기와의 접속이 제거된 관측기에 메시지 전송을 정지시키도록 접속 룩업 테이블(88)에 나열된 임의의 관측기에 메시지를 전송한다.
이어지는 설명은 다른 컴포넌트에서 메시지를 직접 전송하는 것에 관한 것으로, 종래의 메모리 어드레싱 기술을 사용한다. 당 업계에 통상의 지식을 가진자에게는 이것은 COM, DCOM, CORBA 등의 종래의 컴포넌트를 근거한 플랫폼을 사용하여 이루어질 수 있음이 명백하고, 통지기와 관측기상이의 콜백 인터페이스를 설정하도록 지정하는 소위 접속을 사용한다. 접속 지정 기준 플랫폼에 대해, 브로커(80)는 접속 기준 관리기로써 언급될 수 있다.
새로운 모듈이 생성되면, 구 모듈은 제거되거나 재 생성되고, 룩업 테이블이 갱신되어, 접속 인터페이스가 관측기 및 통지기의 일부에서 임의의 동작없이 생성 및 재생될 수 있으므로, 콜백 인터페이스의 자동 회복 및 소프트웨어 모듈의 소위, "핫 스와핑(hot swapping)"이 가능해진다.
본 발명은 상세히 설정된 특정 실시예들에 의해 설명되었지만, 이것은 단지 설명을 위한 것이며, 본 발명이 이로 인해 제한되어서는 안되며, 이는 본원에 상세히 설명되지 않은 대안의 실시예들이 상기 명세서, 첨부된 도면 및 특허청구의 범위의 관점에서 당 업계에 숙련된 자들에게 명확하기 때문이다. 따라서, 많은 수정이 본 발명의 정신 및 범위를 벗어나지 않고 이루어질 수도 있다.

Claims (25)

  1. 소프트웨어 모듈 사이에서 정보를 교환하는 정보 교환 시스템에 있어서,
    대응하는 이벤트 클래스(event class)를 갖는 하나 이상의 트리거링 이벤트 발생의 다른 모듈을 통지하는 통지기 즉, 모듈을 등록하기 위한 제 1 룩업 테이블 및, 대응하는 이벤트 클래스를 갖는 하나 이상의 트리거링 이벤트 통지를 수신하기 위한 관측기 즉, 모듈을 등록하기 위한 제 2 룩업 테이블을 가진 브로커,
    제 1 이벤트 클래스를 갖는 소정의 제 1 트리커링 이벤트 발생을 검색하는 제 1 통지기 및,
    제 2 이벤트 클래서를 갖는 소정의 트리거닝 이벤트 발생의 통지를 수신하는 제 1 관측기를 포함하며;
    상기 브로커는 상기 제 1 통지기가 생성될 때 상기 제 1 통지기를 상기 제 1 룩업 테이블에 부가하며, 상기 제 1 관측기가 예약 메시지를 상기 브로커에 전송할 때 상기 제 1 관측기를 상기 제 2 룩업 테이블에 부가하며,
    상기 브로커는 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하여, 상기 브로커가 상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일함을 검색할 때, 상기 제 1 통지기가 상기 소정의 제 1 트리거링 이벤트 발생을 상기 제 1 관측기에 직접적으로 통지하도록 지시하는 정보 교환 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 통지기, 제 1 관측기 및 브로커 각각은 컴퓨터의 메모리의 분리된 어드레싱가능 위치에 장착된 정보 교환 시스템.
  3. 제 2 항에 있어서,
    상기 제 1 통지기, 제 1 관측기 및 브로커는 하나 이상의 컴퓨터에 장착된 정보 교환 시스템.
  4. 제 1 항에 있어서,
    상기 브로커는 그 위에 통지기-관측기 접속들을 등록하는 제 3 룩업 테이블을 더 포함하며, 상기 통지기-관측기 접속 중 하나의 접속은 상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일할 때 상기 제 3 룩업 테이블에 부가되는 정보 교환 시스템.
  5. 제 1 항에 있어서,
    제 3 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는 제 2 관측기를 포함하며;
    상기 브로커는 상기 제 2 관측기가 예약 메시지를 상기 브로커에 전송할 때 상기 제 2 관측기를 상기 룩업 테이블에 부가하며, 상기 브로커가 상기 제 1 이벤트 클래스와 제 3 이벤트 클래스가 동일함을 검색할 때 상기 소정의 제 1 이벤트 발생을 상기 제 2 관측기에 직접적으로 통지하도록 상기 제 1 통지기에게 명령하는 정보 교환 시스템.
  6. 제 5 항에 있어서,
    상기 제 2 관측기는 제 5 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는데도 관여하여, 상기 제 2 룩업 테이블에 등록되고, 제 2 통지기를 더 포함하며;
    상기 제 2 통지기는 제 4 이벤트 클래스를 갖는 소정의 제 2 트리거링 이벤트 발생을 검색하는데 적합하며, 상기 브로커는 상기 제 2 통지기가 생성될 때 상기 제 1 룩업 테이블에 상기 제 2 통지기를 부가하며, 상기 브로커가 상기 제 4 이벤트 클래스와 제 5 이벤트 클래스가 동일함을 검색할 때 상기 소정의 제 2 트리거링 이벤트 발생을 상기 제 2 관측기에 직접적으로 통지하도록 상기 제 2 통지기에게 명령하는 정보 교환 시스템.
  7. 제 1 항에 있어서,
    제 4 이벤트 클래스를 갖는 소정의 제 2 트리거링 이벤트 발생을 검색하는 제 2 통지기를 더 포함하며;
    상기 브로커는 상기 제 2 통지기가 생성될 때 상기 제 2 통지기를 상기 제 1 룩업 테이블에 부가하며 상기 브로커가 상기 제 2 이벤트 클래스와 제 4 이벤트 클래스가 동일함을 검색할 때 상기 소정의 제 2 클래스 트리거링 이벤트 발생을 상기 제 1 관측기에 직접적으로 통지하도록 상기 제 2 통지기에게 명령하는 정보 교환 시스템.
  8. 제 7 항에 있어서,
    상기 제 2 통지기는 제 6 이벤트 클래스를 갖는 소정의 제 3 트리거링 이벤트 발생을 검색하는데 더 적합하여, 상기 제 1 룩업 테이블에 기록되어 있고, 제 3 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는 관여하는 제 2 관측기를 더 포함하며;
    상기 브로커는 상기 제 2 관측기가 예약 메시지를 상기 브로커에 전송할 때 상기 제 2 룩업 테이블에 상기 제 2 관측기를 부가하며, 상기 브로커가 상기 제 6 이벤트 클래스와 제 3 이벤트 클래스가 동일함을 검색할 때 상기 소정의 제 3 이벤트 발생을 상기 제 2 관측기에 직접적으로 통지하도록 상기 제 2 통지기에게 명령하는 정보 교환 시스템.
  9. 제 1 항에 있어서,
    소프트웨어 모듈을 생성하는데 적합한 생성기를 더 포함하며;
    사기 브로커는 상기 브로커가 생성될 때 상기 제 1 룩업 테이블에 상기 생성기를 부가하는 정보 교환 시스템.
  10. 제 1 항에 있어서,
    상기 브로커는 상기 브로커가 생성될 때 상기 제 2 룩업 테이블에 상기 브로커를 부가하는 정보 교환 시스템.
  11. 소프트웨어 모듈사이에서 정보를 교환하는 정보 교환 방법에 있어서,
    제 1 룩업 테이블과 제 2 룩업 테이블을 포함하는 브로커를 생성하는 단계,
    제 1 이벤트 클래스를 갖는 소정의 제 1 트리거링 이벤트 발생을 검색하는데 접합한 제 1 통지기를 생성하는 단계,
    상기 제 1 통지기의 생성시 상기 브로커가 상기 제 1 이벤트 클래스와 제 1 통지기를 상기 제 1 룩업 테이블내에 나열하는 단계,
    제 2 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는 제 1 관측기를 생성하는 단계,
    상기 제 1 관측기가 상기 브로커에 예약할 때 상기 브로커가 상기 제 2 이벤트 클래스와 상기 제 1 관측기를 상기 제 2 룩업 테이블내에 나열하는 단계,
    상기 브로커가 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단계 및,
    상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일한 경우, 상기 브로커가 상기 소정의 제 1 트리거링 이벤트 발생을 상기 제 1 관측기에 직접적으로 통지하도록 상기 제 1 통지기에게 명령하는 단계를 포함하는 정보 교환 방법.
  12. 제 11 항에 있어서,
    상기 브로커가 생성될 때 상기 제 1 룩업 테이블에 상기 브로커를 부가하는 브로커 부가 단계를 더 포함하는 정보 교환 방법.
  13. 제 11 항에 있어서,
    상기 제 1 통지기가 상기 소정의 제 1 트리거링 이벤트 발생을 검색하는 단계 및,
    상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일할 때 상기 제 1 통지기가 상기 소정의 제 1 트리거링 이벤트 발생을 상기 제 1 관측기에 통지하는 단계를 더 포함하는 정보 교환 방법.
  14. 제 11 항에 있어서,
    소프트웨어 모듈을 생성하는데 적합한 생성기를 제공하는 단계 및,
    상기 브로커가 생성될 때 상기 브로커가 상기 생성기를 상기 제 1 룩업 테이블에 부가하는 단계를 더 포함하는 정보 교환 방법.
  15. 제 14 항에 있어서,
    상기 제 1 통지기를 생성하는 단계 이후 상기 생성기가 상기 제 1 통지기를 레지스트리에 부가하는 단계 및,
    상기 제 1 관측기를 생성하는 단계 이후 상기 생성기가 상기 제 1 관측기를 상기 레지스트리에 부가하는 단계를 더 포함하는 정보 교환 방법.
  16. 제 11 항에 있어서,
    상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일할 때 상기 브로커가 통지기-관측기 접속을 제 3 룩업 테이블에 부가하는 단계를 더 포함하는 정보 교환 방법.
  17. 제 11 항에 있어서,
    상기 제 3 이벤트 클래스를 갖는 소정의 트리거링 이벤트 발생의 통지를 수신하는 제 2 관측기를 생성하는 단계,
    상기 제 2 관측기가 상기 브로커에 예약할 때 상기 브로커가 상기 제 3 이벤트 클래스와 상기 제 2 관측기를 상기 제 2 룩업 테이블에 나열하는 단계,
    상기 브로커가 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단계 및,
    상기 제 1 이벤트 클래스와 제 3 이벤트 클래스가 동일한 경우 상기 브로커가 상기 소정의 제 1 트리거링 이벤트 발생을 상기 제 2 관측기에 직접적으로 통지하도록 상기 제 1 통지기에게 명령하는 단계를 포함하는 정보 교환 방법.
  18. 제 17 항에 있어서,
    제 4 이벤트 클래스를 갖는 소정의 제 2 트리거링 이벤트 발생을 검색하는 제 2 통지기를 상기 브로커가 생성하는 단계,
    상기 제 2 통지기 생성시 상기 브로커가 상기 제 4 이벤트 클래스와 상기 제 2 통지기를 상기 제 1 룩업 테이블내에 나열하는 단계,
    상기 브로커가 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단계 및,
    상기 제 3 이벤트 클래스와 제 4 이벤트 클래스가 동일한 경우 상기 브로커가 상기 소정의 제 2 트리거링 이벤트 발생을 상기 제 2 관측기에 적접적으로 통지하도록 상기 제 2 통지기에게 명령하는 단계를 더 포함하는 정보 교환 방법.
  19. 제 11 항에 있어서,
    제 4 이벤트 클래스를 갖는 소정의 제 2 트리거링 이벤트 발생을 검색하는 제 2 통지기를 생성하는 단계,
    상기 제 2 통지기의 생성시 상기 브로커가 상기 제 4 이벤트 클래스와 상기 제 2 통지기를 상기 제 1 룩업 테이블내에 나열하는 단계,
    상기 브로커가 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단계 및,
    상기 제 2 이벤트 클래스와 제 4 이벤트 클래스가 동일한 경우, 상기 브로커가 상기 소정의 제 2 트리거링 이벤트 발생을 상기 제 1 관측기에게 직접적으로 통지하도록 상기 제 2 통지기에게 명령하는 단계를 더 포함하는 정보 교환 방법.
  20. 제 11 항에 있어서,
    각 통지기가 서비스 상태에 있는지의 여부를 결정하기 위해 상기 브로커가 상기 제 1 룩업 테이블내에 나열된 각각의 통지기에게 질의하는 단계,
    서비스 상태에 없는 상기 제 1 룩업 테이블로부터 상기 브로커가 각각의 통지기를 제거하는 단계 및,
    상기 브로커가 상기 제 1 룩업 테이블로부터 제거된 각각의 통지기를 모든 관측기에게 통지하는 단계를 더 포함하는 정보 교환 방법.
  21. 제 20 항에 있어서,
    상기 각각의 통지기가 서비스 상태에 있지 않는 제 1 리스트로부터 제거된 각각의 통지기를 상기 모든 관측기에게 상기 브로커가 통지하는 단계를 더 포함하는 정보 교환 방법.
  22. 제 11 항에 있어서,
    상기 각각의 관측기가 서비스 상태에 있는지를 결정하기 위해 상기 제 2 룩업 테이블내에 나열된 각각의 관측기에 질의하는 단계,
    서비스 상태에 있지 않는 상기 제 2 룩업 테이블로부터 각각의 관측기를 제거하는 단계 및,
    상기 제 2 룩업 테이블로부터 제거된 각각의 관측기를 모든 통지기에게 상기 브로커가 통지하는 단계를 더 포함하는 정보 교환 방법.
  23. 제 22 항에 있어서,
    상기 브로커가 각각의 상기 관측기에게 통지하는 것을 멈추도록 상기 제 2 룩업 테이블로부터 제거된 각각의 관측기의 모든 통지기에 명령하는 단계를 더 포함하는 정보 교환 방법.
  24. 제 11 항에 있어서,
    상기 제 1 룩업 테이블로부터 상기 제 1 통지기를 제거하는 단계,
    상기 브로커가 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단계 및,
    상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일한 경우, 상기 제 1 통지기가 서비스 상태에 있지 않음을 상기 브로커가 상기 제 1 관측기에 통지하는 단계를 더 포함하는 정보 교환 방법.
  25. 제 11 항에 있어서,
    상기 제 2 룩업 테이블로부터 상기 제 1 관측기를 제거하는 단계,
    상기 브로커가 상기 제 1 룩업 테이블과 제 2 룩업 테이블을 비교하는 단게 및,
    상기 제 1 이벤트 클래스와 제 2 이벤트 클래스가 동일한 경우, 상기 소정의 제 1 트리거링 이벤트 발생을 상기 제 1 관측기에 통지하는 것을 멈추도록 상기 브로커가 상기 제 1 통지기에 명령하는 단계를 더 포함하는 정보 교환 방법.
KR1020000028278A 1999-05-28 2000-05-25 소프트웨어 모듈사이의 정보 교환 시스템 및 방법 KR20010007119A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/322,362 US6782541B1 (en) 1999-05-28 1999-05-28 System and method of exchanging information between software modules
US09/322362 1999-05-28

Publications (1)

Publication Number Publication Date
KR20010007119A true KR20010007119A (ko) 2001-01-26

Family

ID=23254555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000028278A KR20010007119A (ko) 1999-05-28 2000-05-25 소프트웨어 모듈사이의 정보 교환 시스템 및 방법

Country Status (4)

Country Link
US (1) US6782541B1 (ko)
EP (1) EP1056007A2 (ko)
JP (1) JP3739633B2 (ko)
KR (1) KR20010007119A (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007050363A1 (en) * 2005-10-26 2007-05-03 Microsoft Corporation Statically verifiable inter-process-communicative isolated processes
US7451435B2 (en) 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US7600232B2 (en) 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US7694300B2 (en) 2004-12-06 2010-04-06 Microsoft Corporation Inter-process interference elimination
US7882317B2 (en) 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2281211T3 (es) 1999-11-09 2007-09-16 Opentv, Inc. Procedimiento para reservar eventos.
US6938243B1 (en) * 2000-09-22 2005-08-30 Dell Products L.P. Diagnostic architecture for use with an interface between an operating system and platform firmware
US7010793B1 (en) * 2000-10-12 2006-03-07 Oracle International Corporation Providing an exclusive view of a shared resource
US20020147797A1 (en) * 2001-04-06 2002-10-10 Paul Stephen D. Discovery and configuration of network attached storage devices
US7472396B2 (en) * 2001-05-18 2008-12-30 Qualcomm Incorporated Extensible event notification mechanism
US20030105801A1 (en) * 2001-11-30 2003-06-05 Telefonaktiebolaget L M Ericsson (Publ) (Signed) Method, system and agent for connecting event consumers to event producers in a distributed event management system
US7234147B1 (en) * 2001-12-07 2007-06-19 Versata Development Group, Inc. Method and apparatus for supporting data communication between program components
US7464384B2 (en) 2002-03-14 2008-12-09 International Business Machines Corporation Method for inter-object communication
US7552445B2 (en) * 2002-12-13 2009-06-23 Savvis Communications Corporation Systems and methods for monitoring events from multiple brokers
US7469272B2 (en) * 2003-03-26 2008-12-23 Microsoft Corporation System and method utilizing test notifications
US7594236B2 (en) * 2004-06-28 2009-09-22 Intel Corporation Thread to thread communication
US7487512B2 (en) * 2004-09-30 2009-02-03 Sap Ag Publish-subscribe event notifications
US7774792B2 (en) * 2005-07-05 2010-08-10 Microsoft Corporation Automatic create, update and delete event publishing
US8458725B2 (en) * 2006-04-10 2013-06-04 Oracle International Corporation Computer implemented method for removing an event registration within an event notification infrastructure
US9390118B2 (en) * 2006-04-19 2016-07-12 Oracle International Corporation Computer implemented method for transforming an event notification within a database notification infrastructure
US7761413B2 (en) * 2006-05-10 2010-07-20 Oracle International Corporation Method of ensuring availability of event notification registrations of a database management system
US7895600B2 (en) 2006-05-10 2011-02-22 Oracle International Corporation Method of optimizing propagation of non-persistent messages from a source database management system to a destination database management system
US8464275B2 (en) * 2006-05-10 2013-06-11 Oracle International Corporation Method of using a plurality of subscriber types in managing a message queue of a database management system
US20080148293A1 (en) * 2006-10-17 2008-06-19 Adrian Cowham Configurable event broker
US20100194868A1 (en) * 2006-12-15 2010-08-05 Daniel Peled System, apparatus and method for flexible modular programming for video processors
US9146722B2 (en) * 2008-04-16 2015-09-29 International Business Machines Corporation Reinstalling a computer based on frequency of application utilization
CN103838615B (zh) * 2014-02-28 2017-05-17 广州华多网络科技有限公司 策略执行方法、装置及系统
US10708376B2 (en) * 2015-02-20 2020-07-07 Convida Wireless, Llc Message bus service directory
CN107066341B (zh) * 2017-04-12 2020-08-04 武汉斗鱼网络科技有限公司 一种软件模块间的事件路由框架及方法
CN110377852A (zh) * 2019-06-24 2019-10-25 平安科技(深圳)有限公司 页面展示数据清除方法、装置、计算机设备和存储介质
CN114741063B (zh) * 2022-04-06 2023-08-22 山东赤子城网络技术有限公司 一种基于Lua语言的编程框架实现方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517655A (en) * 1991-04-26 1996-05-14 Hewlett-Packard Company Method for monitoring transactions in an object-oriented environment
US6259446B1 (en) * 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
JPH0822424A (ja) 1994-07-06 1996-01-23 Hitachi Ltd クライアント・サーバ・システムおよびその制御方法
US5761499A (en) 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US5872973A (en) 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
US5721825A (en) * 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment
GB9606733D0 (en) * 1996-03-29 1996-06-05 British Telecomm Collection of events within a distributed object system
US5991536A (en) * 1996-11-12 1999-11-23 International Business Machines Corporation Object-oriented tool for registering objects for observation and causing notifications to be made in the event changes are made to an object which is being observed
US5889954A (en) 1996-12-20 1999-03-30 Ericsson Inc. Network manager providing advanced interconnection capability
US5920692A (en) * 1997-03-24 1999-07-06 International Business Machines Corp. Method and system for a remote notification service for a multi-user server architecture
US5884317A (en) 1997-08-20 1999-03-16 Bea Systems, Inc. Service interface repository
US6363435B1 (en) * 1998-02-03 2002-03-26 Microsoft Corporation Event sourcing and filtering for transient objects in a hierarchical object model
US6275957B1 (en) * 1998-09-21 2001-08-14 Microsoft Corporation Using query language for provider and subscriber registrations
US6367034B1 (en) * 1998-09-21 2002-04-02 Microsoft Corporation Using query language for event filtering and aggregation

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694300B2 (en) 2004-12-06 2010-04-06 Microsoft Corporation Inter-process interference elimination
US7788637B2 (en) 2004-12-06 2010-08-31 Microsoft Corporation Operating system process identification
US7882317B2 (en) 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US8020141B2 (en) 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7451435B2 (en) 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US7600232B2 (en) 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
WO2007050363A1 (en) * 2005-10-26 2007-05-03 Microsoft Corporation Statically verifiable inter-process-communicative isolated processes
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems

Also Published As

Publication number Publication date
JP3739633B2 (ja) 2006-01-25
EP1056007A2 (en) 2000-11-29
US6782541B1 (en) 2004-08-24
JP2001014179A (ja) 2001-01-19

Similar Documents

Publication Publication Date Title
KR20010007119A (ko) 소프트웨어 모듈사이의 정보 교환 시스템 및 방법
US7076691B1 (en) Robust indication processing failure mode handling
EP1643681B1 (en) Scheduled determination of networks resource availability
KR100489690B1 (ko) 실시간 장애 제어를 위한 데이터베이스 테이블 모델링 및이벤트 처리 방법
JP2001509289A (ja) 分散型遠隔通信スイッチ内の通信及びプロセス管理のためのシステム及び方法
US6622265B1 (en) Standby processor with improved data retention
JP3599364B2 (ja) ネットワーク装置
JPH04234240A (ja) 通信セッション監査方法及び装置
US7222174B2 (en) Monitoring control network system
US7769844B2 (en) Peer protocol status query in clustered computer system
CN115480934A (zh) 一种分布式数据处理的方法、装置、设备及储存介质
JP2002366381A (ja) オブジェクトの動的入替え処理方法
JPH10333910A (ja) Com環境の中に分散されるオブジェクト間の通信時のオブジェクトの偶発的な活動停止の管理
WO2000062158A2 (en) Method and apparatus for managing communications between multiple processes
KR100274848B1 (ko) 망관리 시스템에서의 망관리 방법
JP2002149439A (ja) 分散処理システムにおけるサーバ切替え方法及びサーバ装置
CN112328375B (zh) 一种用于跟踪分布式系统的数据片段的关联方法和装置
JP3341707B2 (ja) 自律協調分散処理型管理情報方式
WO1993018464A1 (en) Distributed processing system
JPH10283241A (ja) 監視システムのメンテナンス方式
JPH0757010A (ja) 業務実行制御システムおよびその切替方法
WO2006057349A1 (ja) 管理システム及びそれに用いられる装置と、そのプログラムと、管理方法
JP3860587B2 (ja) マルチプロセッサ装置
WO2023250018A1 (en) Communication system node having multiple modules and a shared memory
JP3518312B2 (ja) トランザクション異常通知システム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid