KR102248285B1 - 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기 - Google Patents

필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기 Download PDF

Info

Publication number
KR102248285B1
KR102248285B1 KR1020200086848A KR20200086848A KR102248285B1 KR 102248285 B1 KR102248285 B1 KR 102248285B1 KR 1020200086848 A KR1020200086848 A KR 1020200086848A KR 20200086848 A KR20200086848 A KR 20200086848A KR 102248285 B1 KR102248285 B1 KR 102248285B1
Authority
KR
South Korea
Prior art keywords
event
group
items
event group
subscription
Prior art date
Application number
KR1020200086848A
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 주식회사에어플러그
Priority to KR1020200086848A priority Critical patent/KR102248285B1/ko
Application granted granted Critical
Publication of KR102248285B1 publication Critical patent/KR102248285B1/ko

Links

Images

Classifications

    • H04L67/2833
    • H04L67/16
    • H04L67/2823

Landscapes

  • Computer And Data Communications (AREA)

Abstract

본 발명의 따른 기기는, 다른 기기에 하나 이상의 이벤트 항목에 대한 가입이 필요할 때, 이벤트 항목들을 그룹핑하여 복수의 그룹들로 매핑시킨 정보의 이벤트 그룹핑 맵을 검색하여 상기 하나 이상의 이벤트 항목을 포함하고 있는 이벤트 그룹을 찾고, 그 찾은 이벤트 그룹이 2개 이상일 때는, 이후의 이벤트 항목과 관련된 처리 횟수 또는 처리량을 상대적으로 덜 초래하게 되는 하나의 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정하며, 그 선정된 이벤트 그룹에 대한 가입을 요청하는 메시지를 구성하기 위한 서비스 처리부와, 상기 구성된 메시지를 기 지정된 포맷에 따라 상기 네트워크를 통해, 상기 하나 이상의 이벤트 항목을 지원하는 타 기기로 전송하도록 구성된 메시지 처리부를 포함하여 구성된다.

Description

필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기 {Optimized group-based subscritpion method for events required to be notified of necessary information and device for said method }
본 발명은, 네트워크에 연결된 복수의 기기들에서 실행되는 응용 프로그램들이 관리하는 해당 기기에 대한 상태들의 변화여부나 현재 값 등을 서비스 기반으로 통지받기 위해, 해당 상태에 대해 지정된 이벤트(event) 항목들에 대하여 타 기기에서 가입하는데 필요한 기술에 관한 것이다.
사람의 생활을 편리하게 하는 수 많은 종류의 특정 용도의 장치들, 특히 자동차 등과 같이 그 기능이 매우 다양하고 복잡한 장치들은, 수많은 정보가 일명 전자제어 유니트( ECU: Electronic Control Unit )라고 불리는 기기 들간에 실시간으로 통신되는 것에 기반하고 있다.
그리고, 그 장치의 기능이나 성능 향상을 위해, 데이터를 직접 처리하는 전자제어 유니트에 대해서는, 높은 사양의 유니트가 점진적으로 적용되고 있다. 이와 같은 고사양의 전자제어 유니트는, 생산업자가, 해당 자원( CPU, 메모리, 통신소자, 다양한 종류의 입출력 인터페이스들, ADC 등 )의 효율적인 사용을 위한 운영시스템(O/S)도 함께 제공되고 있어서, 차량과 같은 특정 장치에 전자제어 유니트를 적용하고자 할 때, 그 운영시스템을 기반으로 보다 쉽게 전자제어 유니트에서 원하는 동작을 수행하는 응용 프로그램을 개발하여 적용할 수 있다.
도 1a는, 이러한 유형의 전자제어 유니트들이 네트워크를 통해 서로 연결되어 있는 단순한 예를 보여준다. 도 1a에 도시된 예에서, 개발자가 개발하여 임의의 한 전자제어 유니트(1,2)에 설치하여 실행시키는 응용 프로그램은, 해당 전자제어 유니트가 관리 또는 제어하도록 신호연결된 각종의 센서나 부품, 기계적 또는 전기적 모듈과 같은 주변 기기들( 이하, 이들에 대해 해당 전자제어 유니트의 '전속 주변부'라 칭한다. ) 등이 나타내는 임의 물리량의 상태에 대한 값들, 또는 그들로부터 입력되거나 발생하는 신호, 또는 전자제어 유니트에서 자체적으로 생성하는 신호에 대한 정보를 취득하거나, 설정가능한 물리량이나 신호인 경우에 그들에 대해 원하는 상태로 또는 원하는 값이나 레벨로 설정하는 동작을 위한 것일 수 있지만, 이에 그치지 않고, 네트워크에 연결된 다른 전자제어 유니트에서 전담하여 처리하는 신호나 임의 물리량의 상태에 대한 확인( 요청 후에 그에 따른 응답의 수신 )이나 설정의 동작도 함께 하기 위한 것일 수도 있다.
그리고, 이처럼 네트워크 상의 다른 기기가 담당하는 정보에 대한 응용 프로그램에서의 조회나 설정을 위한 요청 등은, 기기나 네트워크에서 채택한 통신방식에 영향을 받지 않도록 하기 위해, 정해진 통신규약에 준하여 이루어지게 된다. 이러한 통신규약 중 하나가 서비스 기반의 정보 교환방식( 이하, '서비스기반 통신규약'이라 한다. )을 정하고 있는 SOME/IP (Scalable service-Oriented Middleware over IP)이다.
이와 같은 서비스기반 통신규약에 따르면, 전자제어 유니트와 같은 임의의 기기가 처리를 담당하는 정보, 또는 기기나 전속주변부의 상태 등에 대해서, '서비스 항목'이 지정된다. 각각의 서비스 항목에는, 서비스 항목에서 지원하는 메소드(method)들과 이벤트 항목들이 정의된다. 또한, 메소드와 관련해서는, 그 메소드가 수행될 수 있는 기기나 전속 주변부의 상태, 물리량 또는 정보를 나타내는 변수( 이하, '상태 변수'라 통칭한다. )가 더 정의될 수 있다. 이벤트 항목은, 연관된 상태 변수( 즉, 기기나 전속 주변부의 상태, 물리량 또는 발생되는 신호나 정보 등 )의 변화 시에 대해 또는 특정 조건의 충족 시에 대해 지정된 것으로서, 연관된 상태 변수에 지정된 변화가 발생하거나 조건 충족이 이루어질 때, 해당 이벤트 항목의 변수가 비활성값에서 활성값으로 변하게 되는 항목을 지칭한다.
따라서, 서비스기반 통신규약에 따라, 임의의 응용 프로그램이 다른 기기가 지원하는 서비스 항목에서 지정된 특정 이벤트 항목에 대해, 그 통지를 등록( 이를 일반적으로 '가입'이라고 지칭한다. )해 두게 되면, 그 이벤트 항목에 연관된 상태 변수가 변하거나 그 상태 변수가 특정 조건을 충족할 때, 그 상태 변수의 값이나 상태를 나타내는 정보를 포함하여 전송하는 이벤트 메시지를 통해 즉시 알 수 있으므로, 다른 기기의 상태 변수에 대해 원하는 설정요청을 하기 전에, 관련된 상태를 파악하기 위해 반복하여 조회요청할 필요가 없다. 도 1a는, 이 과정이 간략하게 개념적으로 도시되어 있다.
도 1a에 도시된 바와 같이, 전자제어 유니트와 같은 기기들(1,2)이 네트워크 상에서 노드(node)를 형성하고 있는 상태에서, 임의의 한 노드에 해당하는 기기(1)에 설치되어 실행되는 응용 프로그램(1a)은, 의도된 동작을 수행하기 위해 필요한, 다른 노드에 해당하는 기기(2)가 담당하는 필요한 이벤트 항목에 대한 가입 요청을 네트워크를 통해 송신하고(S01), 이 가입 요청을 수신하는 기기(2) 내에서 해당 이벤트 항목의 처리를 담당하는 응용 프로그램(2a)은, 그 이벤트 가입 요청에 따라, 해당되는 이벤트 항목에 대해서 타 기기로 통지할 피가입 항목으로 지정해 두게 된다.
이후, 피가입 이벤트 항목의 이벤트가 활성상태가 되면( 즉, 관련된 상태 변수에 대한 값이 변경되거나 지정된 특정 조건이 충족되면 )(S02), 그 응용 프로그램(2a)은, 그 활성화된 이벤트에 연관된 상태 변수의 값, 또는 상태를 알 수 있게 하는 정보 등을 포함하여 이벤트 발생을 통지하는( 이하에서는, 발생한 이벤트에 대한 통지를 '이벤팅'(eventing)이라 칭한다. ) 메시지를 네트워크로 전송하게 되고(S03), 그 이벤트 항목에 대해서 가입해 둔 응용 프로그램(1a)은, 그 이벤팅 메시지를 수신함으로써, 자신이 필요로 하는 타 기기(2)의 특정 상태에 대한 값의 변경 시 또는 특정 조건의 충족 시 등에 즉시 그 상태 변수의 값을 알 수 있게 된다.
이렇게 타 기기들이 전담하는 이벤트 항목들에 가입을 하여 관련된 상태 변수들에 변화 등이 있을 때 그 즉시 통지를 받는 방법은, 필요한 다른 기기의 상태 변수를 파악하기 위해 반복하여 조회요청하지 않아도 되게 함으로써, 네트워크에 가해지는 부하를 경감시키는데 매우 유리하지만, 초기에 네트워크에 부하를 집중시키게 되는 약점이 있다.
예를 들어, 서비스 기반으로 동작하는 네트워크 시스템( 네트워크와 이에 연결되어 서비스 기반으로 동작하는 복수의 기기들을 통칭한다. )이, 특정 용도의 기계 장치, 예를 들어 자동차에 장착되었을 때, 해당 장치가 시동될 때마다, 그 네트워크 시스템의 기기들 각각에서 실행되는 모든 응용 프로그램들은, 자신이 필요로 하는 타 기기의 전담 상태 변수들과 관련된 이벤트 항목들에 대하여 가입을 요청할 것이기 때문에, 장치의 초기 시동 시에 이벤트 가입을 위한 트래픽이 네트워크에 집중된다. 이렇게 되면, 장치의 초기에는, 각각의 응용 프로그램이 파악해야 하는 타 기기의 전담 상태 변수의 초기값에 대한 확인이 지연되는 현상이 발생하게 된다.
이러한 문제를 미연에 방지하기 위해, SOME/IP와 같은 서비스기반 통신규약에서는, 타 기기에 대한 이벤트 가입에 대해서, 개별적인 가입을 배제하고, 이벤트들에 대해서 그룹기반으로 가입하도록 정하고 있다.
도 1b는, 이와 같은 그룹기반의 이벤트 가입의 예를 보여준다. 도 1b에 예시된 표(100)는, 상태 변수들과 연관하여 정의된어 이벤트 항목들에 대하여 몇 개의 그룹으로 분류하여 개개의 그룹으로 할당한 단순한 예로서, 이와 같은 방식으로 이벤트 항목들을 분류하여 이벤트 그룹을 할당한 정보(100)( 이하, '그룹핑 맵'이라 약칭한다. )가, 서비스 기반으로 동작하는 기기들에 구비되어, 타 기기가 전담하는 이벤트 항목에 대한 가입이 필요할 때 참조되어 이벤트 항목에 대해 그룹으로 가입하게 된다.
도 1b에 예시된 그룹핑 맵(100)이 구비된 경우에, 임의의 응용 프로그램이 식별자 e2의 이벤트 항목(111)에 대한 가입이 필요할 때, 그 이벤트 항목은 식별자가 EG_C인 이벤트 그룹(110)에 속하므로, 그 가입요청은, 이벤트 그룹 EG_C가 지정되어 다른 기기로 전송된다(p10).
그리고, 이러한 그룹기반의 이벤트 가입요청은, 실제의 구현에 있어서는, 응용 프로그램들의 가입요청을 집중하여 처리하는 미들웨어(middleware) 형식의 특수 기능의 프로그램( 이하, '서비스 에이전트'라 칭한다. )에 의해, 네트워크를 경유하여 다른 기기로 전송되는데, 이 서비스 에이전트가, 응용 프로그램들로부터 개별적으로 수신되는 이벤트 항목에 대한 가입요청에 대해서, 해당되는 이벤트 그룹으로의 가입요청으로 변경함에 따라, 필요한 이벤트 항목들에 대한 가입에서의 트래픽이 감소하게 된다. 예를 들어, 식별자 e7,e8,e9 및 e10인 이벤트들(121)에 대해서, 임의의 한 기기에서 하나 이상의 응용 프로그램이 가입요청을 한 경우에, 이벤트 항목별로 가입하게 되면 4번의 가입요청 메시지에 의한 트래픽이 발생하게 되지만, 그룹기반의 가입요청에서는, 식별자 EG_F의 이벤트 그룹(120)에 대한 한번의 가입요청에 따른 트래픽만 발생할 뿐이다.
그런데, 특정 용도의 장치에 장착될 네트워크 시스템에 대해서, 기기들이 필요로 하는 이벤트 항목들에 대한 이벤트 그룹으로의 매핑(mapping), 즉, 이벤트 항목들을 분류하여 이벤트 그룹으로 할당하는 규칙은, 서비스기반 통신규약에 정의되어 있지 않으며, 그 특정 용도의 장치를 개발 또는 설계하는 자들이 임의적으로 할 수 있게 되어 있다. 그렇기 때문에, 모든 이벤트 항목들이 각기 하나의 이벤트 그룹에만 속하도록 매핑되지 않고, 이벤트 항목에 연관된 상태 변수의 특성이나 속성, 또는 상호 간의 연관성 또는 이벤트 가입의 간편성 등을 위해, 하나의 이벤트 항목이 2이상의 이벤트 그룹에 매핑되게 할 수도 있다. 즉, 도 1b에 예시된 식별자 e3,e5,e7 및 e8의 이벤트 항목처럼, 구성되는 그룹핑 맵(100)에는 복수의 이벤트 그룹에 속하는 이벤트 항목들이 있을 수 있다.
그리고, 향후에는, 확정된 그룹핑 맵이 기기에 이식되어 그룹기반의 이벤트 가입에 참조되게 하더라도, 네트워크 시스템의 동작 중에 이벤트 가입되는 현황에 근거하여, 이벤트 항목들에 대한 그룹핑이 자동적으로 갱신되거나 또는 재매핑이 이루어지도록 할 수도 있다. 이러한 프로그램에 의한 동적인 이벤트 항목의 그룹 매핑은, 그 매핑이 추구하는 바( 예를 들어, 가입횟수의 감소, 이벤트 통지를 위한 데이터 양의 감소 등 )에 따라, 하나의 이벤트 항목이 둘 이상의 이벤트 그룹에 속하는 것을 허용할 가능성이 매우 높다.
그런데, 하나의 이벤트 항목이 복수개의 이벤트 그룹들에 속하게 되면, 그 이벤트 항목의 가입요청에 대해서는, 복수개의 이벤트 그룹들 중에서 하나의 이벤트 그룹을 선택하여 그룹기반으로 가입요청을 해야 한다. 이렇게, 하나의 이벤트 항목이 속하는 복수개의 이벤트 그룹들 중에서, 가입요청을 위해 하나의 그룹을 선택해야 할 때, 네트워크 시스템이나 그 이벤트와 관련된 기기들의 관점에서 더 이익이 되는 이벤트 그룹이 선택되게 하는 방안이 필요하다.
본 발명은, 필요한 이벤트 항목에 대해 가입요청할 수 있는 복수개의 이벤트 그룹들에 대해서, 상대적으로 부하를 덜 초래하는 이벤트 그룹을 선택하여 그룹기반으로 가입하기 위한 방법과 기기를 제공하는 것에 일 목적이 있는 것이다.
본 발명의 다른 목적은, 이벤트에 대한 다중(multple) 또는 중복 통지가 최소화될 수 있도록 이벤트 그룹을 선택하여 그룹기반으로 가입하기 위한 방법과 기기를 제공하는 것이다.
본 발명의 목적은, 상기 명시적으로 서술된 목적에 국한되는 것은 아니며, 본 발명에 대한 구체적이고 예시적인 하기의 설명에서 도출될 수 있는 효과를 달성하는 것을 그 목적에 당연히 포함한다.
본 발명의 일 측면에 따른, 네트워크를 통해 연결된 기기들과 필요한 정보를 이벤트를 통해 주고받을 수 있는 기기는, 상기 네트워크에 연결된 기기들이 필요한 정보를 통지받기 위해 이용할 수 있도록 지정된 이벤트 항목들을, 적어도 하나의 이벤트 항목은 서로 다른 이벤트 그룹에 중복하여 속하도록 복수개의 이벤트 그룹들에 매핑(mapping)하고 있는 이벤트 그룹핑 맵과, 이벤트를 통지받기 위해 타 기기에 가입해야 할 하나 이상의 이벤트 항목에 대하여, 상기 이벤트 그룹핑 맵을 검색하여 상기 하나 이상의 이벤트 항목을 포함하고 있는 이벤트 그룹을 찾고, 그 찾은 이벤트 그룹이 2개 이상일 때는, 이후의 이벤트 항목과 관련된 처리 횟수 또는 처리량을 상대적으로 덜 초래하게 되는 하나의 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정하며, 그 선정된 이벤트 그룹에 대한 가입을 요청하는 메시지를 구성하기 위한 서비스 처리부와, 상기 구성된 메시지를 기 지정된 포맷에 따라 상기 네트워크를 통해, 상기 하나 이상의 이벤트 항목을 지원하는 특정 기기로 전송하도록 구성된 메시지 처리부를 포함하여 구성된다.
본 발명에 따른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 속하는 이벤트 항목들의 수, 또는 현재 가입요청된 적이 없는 이벤트 항목의 수가 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정한다.
본 발명에 따른 다른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 상기 하나 이상의 이벤트 항목과 일치하는 이벤트 항목의 수의 비율을 나타내는 매칭(matching) 비율이 가장 높은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정한다. 매칭 비율은, 이벤트 그룹에 속하는 이벤트 항목들의 수, 또는 그 이벤트 그룹에서 현재 가입요청된 적이 없는 이벤트 항목의 수에 대한 상기 하나 이상의 이벤트 항목과 일치하는 수의 비율을 지칭한다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에, 상기 하나 이상의 이벤트 항목과 일치하는 이벤트 항목의 수의 비율을 나타내는 매칭 비율이 100%인 완전정합된(fully-matched) 이벤트 그룹이 있는 경우에, 상기 2개 이상의 이벤트 그룹들에서 상기 완전정합된 이벤트 그룹을 배제한 그룹들 중 매칭 비율이 가장 높은 차위(次位)의 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정할 수도 있다.
본 실시예에 따라 상기 차위의 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하는 경우는, 상기 차위의 이벤트 그룹의 상기 매칭 비율이 기 설정된 기준치 이상이 되는 경우이거나, 또는 상기 차위의 이벤트 그룹이 상기 완전정합된 이벤트 그룹에 비해 상기 하나 이상의 이벤트 항목과 더 일치하는 하나 이상의 추가 매칭 이벤트 항목에 대한 가입을 위해 필요한 제 1처리가, 상기 차위의 이벤트 그룹에서 상기 하나 이상의 이벤트 항목과 매칭되지 않는 하나 이상의 비매칭 이벤트 항목에 대한 이벤트 통지에 따른 제 2처리보다 횟수나 데이터양을 더 요구하는 경우일 수 있다. 후자의 경우는, 상기 제 1처리에서 상기 하나 이상의 추가 매칭 이벤트 항목에 대해 가입해야 할 이벤트 그룹의 수가, 상기 하나 이상의 비매칭 이벤트 항목의 수보다 클 때이거나, 상기 제 1처리에서 상기 하나 이상의 추가 매칭 이벤트 항목에 대해 가입해야 하는 하나 이상의 이벤트 그룹에 대해 이후에 반복하여 행하게 될 가입의 평균적인 빈도가, 상기 하나 이상의 비매칭 이벤트 항목에 대해 발생될 이벤트의 평균적인 빈도보다 클 때이거나, 또는, 상기 제 1처리에서 상기 하나 이상의 추가 매칭 이벤트 항목에 대해 가입해야 하는 하나 이상의 이벤트 그룹에 대해 이후에 행하게 될 반복적인 가입에 따라 일정 시간당 발생하는 데이터양의 평균이, 상기 하나 이상의 비매칭 이벤트 항목에 대한 이벤트의 통지에 따라 상기 일정 시간당 발생하게 될 데이터양의 평균보다 클 때일 수 있다.
본 발명에 따른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 상기 매칭 비율에 근거하여 상기 하나의 이벤트 그룹의 선정하는 방식을, 앞서 가입요청된 이벤트 항목들에 대해서 수행하여, 그 이벤트 항목들에 대해 가입할 이벤트 그룹을 다시 결정한다. 본 실시예에서는, 기 지정된 시간 동안에 이벤트 항목에 대한 추가적인 가입요청이 없을 때, 상기 방식을 선택적으로 수행할 수 있다. 예를 들어, 상기 기 지정된 시간이 경과한 시점에, 그 동안 가입요청된 이벤트 항목들의 수가 기준치 미만이면 상기 방식을 수행하지 않고, 그 기준치 이상일 때만 수행할 수 있다.
본 발명에 따른 다른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 속하는 이벤트 항목들의 전부 또는 일부에 대한 이벤트 통지빈도의 평균이 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정한다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 속하는 이벤트 항목들의 전부 또는 일부에 대해 구한 평균적인 데이터 발생률이 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정한다. 평균적인 데이터 발생률이란, 상기 전부 또는 일부의 이벤트 항목들 각각에 대해서, 해당 이벤트 항목의 이벤트 통지빈도에 이벤트 통지를 위해 필요한 데이터양을 곱하여 얻은 데이터 발생률을 평균한 값을 의미한다. 본 실시예에서, 상기 일부의 이벤트 항목들은, 현재 가입요청된 적이 없는 이벤트 항목에 해당한다.
본 발명에 따른 일 실시예에서는, 이벤트 그룹에 속하는 이벤트 항목들의 수, 또는 현재 가입요청된 적이 없는 이벤트 항목의 수에 근거하여 선정한 상기 하나의 이벤트 그룹에 대하여 가입을 요청하는 메시지를 상기 특정 기기로 전송된 이후에, 상기 하나 이상의 이벤트 항목에 대하여 다시 이벤트 그룹으로 가입하고자 할 때는, 상기 서비스 처리부가, 이벤트 항목들에 대해 파악된 상기 기기로의 통지빈도에 근거하여, 다시 가입할 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정할 수도 있다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 재가입하게 될 때까지의 간격을 상대적으로 알 수 있는 시간에 대해 가장 길게 지정된 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정한다.
본 발명에 따른 일 실시예에서는, 상기 서비스 처리부가, 상기 네트워크를 통해 특정의 메시지가 수신되면, 그 특정의 메시지가 지원하고 있음을 알리는 사항과 연관된 이벤트 항목에 대하여 앞서 가입요청했던 이벤트 그룹을 다시 가입요청하도록 구성된다. 이 경우, 상기 서비스 처리부는, 상기 하나 이상의 이벤트 항목에 대하여 지원하고 있음을 상기 특정의 메시지로써 알린 상기 특정 기기에서 동작하는 복수개의 실행개체들 중에서, 그 특정의 메시지를 발송하는 간격이 가장 긴 실행개체를 대상으로 하여 가입을 요청하는 메시지가 상기 특정 기기로 전송되게 한다.
본 발명에 따른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들에서, 이벤트 항목에 대한 이벤트의 발생 시 그 통지를 위한 메시지가 상대적으로 더 적은 횟수로 발송되게 하는 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정할 수도 있다. 이런 선정방식에는, 다른 이벤트 항목에 대하여 이미 가입을 요청한 다른 이벤트 그룹과 동일한 멀티캐스트 주소가 할당되어 있는 이벤트 그룹을 선정하는 방식이 포함되거나, 또는 발생되는 이벤트에 대해 항상 멀티캐스트 방식으로 통지하는 것으로 지정되어 있는 이벤트 그룹을 선정하는 방식이 포함될 수 있다.
본 발명에 따른 일 실시예에서는, 상기 서비스 처리부가, 제 1결정방식, 제 2결정방식 및 제 3결정방식을 포함하는 결정방식들 중에서 택일(擇一)하여 적용할 수 있도록 구성될 수도 있다. 여기서, 제 1결정방식은, 해당 이벤트 그룹에 속하는 이벤트 항목의 수 또는 현재 가입요청된 적이 없는 이벤트 항목의 수에 근거하여 이벤트 그룹을 결정하는 방식이고, 제 2결정방식은, 해당 이벤트 그룹에서 가입요청된 적이 없는 이벤트 항목에 대한 이벤트의 발생빈도나 데이터 발생률에 근거하여 이벤트 그룹을 결정하는 방식이며, 제 3결정방식은, 해당 이벤트 그룹에 가입을 반복하게 되는 시간격에 근거하여 이벤트 그룹을 결정하는 방식이다. 그리고, 상기 결정방식들에는, 해당 이벤트 그룹에 대해 할당된 멀티캐스트 주소가 이미 가입요청된 다른 이벤트 그룹에 할당된 멀티캐스트 주소와 동일한지의 여부, 또는 발생되는 이벤트에 대해서 항상 멀티캐스트 방식으로 통지하는지의 여부에 근거하여 이벤트 그룹을 결정하는 방식이 더 포함될 수도 있다.
본 발명에 따른 다른 일 실시예에서는, 상기 서비스 처리부가, 상기 2개 이상의 이벤트 그룹들의 각각에 대해, 제 1산정방식과 제 2산정방식를 포함하는 적합도 산정방식들 중 적어도 2개의 산정방식의 각각에 의해 구한 적합도의 가중 평균치가, 상기 2개 이상의 이벤트 그룹들에서 가장 높은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정한다. 여기서, 제 1산정방식은, 해당 이벤트 그룹에 속하는 이벤트 항목의 수 또는 현재 가입요청된 적이 없는 이벤트 항목의 수가 적을수록 더 높은 적합도를 부여하는 방식이고, 제 2산정방식은, 해당 이벤트 그룹에 가입을 반복하게 되는 시간격이 길수록 더 높은 적합도를 부여하는 방식이다. 상기 제 1산정방식은, 해당 이벤트 그룹에서 가입요청된 적이 없는 이벤트 항목에 대한 이벤트의 발생빈도나 데이터 발생률이 낮을수록 더 높은 적합도를 부여하는 방식으로 대체될 수도 있다. 본 실시예에서는, 상기 적합도 산정방식들에, 해당 이벤트 그룹에 대해 할당된 멀티캐스트 주소가 이미 가입요청된 다른 이벤트 그룹에 할당된 멀티캐스트 주소와 동일하면, 동일하지 않은 경우에 비해 비해 더 높은 적합도를 부여하는 방식이나, 해당 이벤트 그룹이 발생되는 이벤트에 대해서 항상 할당된 멀티캐스트 방식으로 통지되는 그룹일 때는, 항상 유니캐스트 방식으로 통지되거나 또는 유니캐스트 방식의 통지에서 도중에 멀티캐스트 방식의 통지로 변경되는 그룹일 때에 비해 비해 더 높은 적합도를 부여하는 방식이 더 포함될 수도 있고, 상기 적어도 2개의 산정방식의 각각에 의해 구한 적합도의 가중 평균치를 산출할 때, 각 적합도에 적용하는 가중치에 대해서 변경하여 적용할 수도 있다.
전술한 기기와 다양한 실시예들에서, 상기 하나 이상의 이벤트 항목은, 상기 기기에서 동작하는 하나 이상의 실행개체로부터 가입요청된 것이거나, 또는 타 기기에 가입요청할 이벤트 항목의 목록에 등재되어 있는 것일 수 있다.
본 발명의 다른 일 측면에 따른, 네트워크에 연결된 임의의 기기가 타 기기들로부터 필요한 정보를 이벤트를 통해 제공받기 위해 가입하는 방법은, 타 기기에 가입요청해야 할 하나 이상의 이벤트 항목을 확인하는 1단계와, 상기 네트워크에 연결된 기기들이 필요한 정보를 통지받기 위해 이용할 수 있도록 지정된 이벤트 항목들을, 적어도 하나의 이벤트 항목은 서로 다른 이벤트 그룹에 중복하여 속하도록 복수개의 이벤트 그룹들에 매핑하고 있는 이벤트 그룹핑 맵을 검색하여, 상기 하나 이상의 이벤트 항목을 포함하고 있는 이벤트 그룹을 찾는 2단계와, 상기 2단계에서 찾은 이벤트 그룹이 2개 이상이면, 이후의 이벤트 항목과 관련된 처리 횟수 또는 처리량을 상대적으로 덜 초래하게 되는 하나의 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정하고, 그 선정된 이벤트 그룹에 대한 가입을 요청하는 메시지를 상기 네트워크를 통해, 상기 하나 이상의 이벤트 항목을 지원하는 다른 기기로 전송하는 3단계를 포함하여 이루어진다.
전술한 본 발명 또는, 하기에서 첨부된 도면과 함께 상세히 설명되는 본 발명의 적어도 일 실시예에 따른, 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법은, 네트워크 상에 연결된, 각기 서비스 기반으로 타 기기와 정보를 교환하는 기기들이, 이벤트성으로 타 기기로부터 원하는 상태에 대한 현재 정보를 즉시 수신하고자 해당 이벤트 항목에 대해 그룹기반으로 가입함에 있어서, 불필요한 이벤팅 정보의 수신이, 또는 일정 시간당 이벤트 그룹에 대해 반복하여 가입하게 되는 횟수가 최대한 적어지는 그룹으로 가입하게 한다.
이로 인해, 이벤팅 정보를 필요로 하는 기기는, 자신의 자원(resource)이나 처리능력이 불필요하게 소모되는 정도를 최소화시키게 되고, 이는, 이벤트를 통지하는 기기로 하여금 이벤팅 정보의 전송을 덜 수행케 할 가능성을 높이게 된다.
또한, 그룹기반의 이벤트 가입에서, 불필요한 이벤팅 정보를 유발시키게 되는 예상 손실과, 그 불필요한 이벤팅 정보를 유발시키지 않기 위해서 이벤트 그룹에 추가 가입해야 할 때의 예상 손실을 비교하고, 이 비교를 통해, 보다 이익이 되는 방향으로 이벤트 항목들의 조합을 선택하여 가입할 이벤트 그룹을 결정함으로써, 이벤팅 정보를 제공하고 이를 소비하는 기기들은 물론 네트워크에 대해서도 이벤트와 관련한 트래픽의 부하를 최적화시킬 수 있다.
그리고, 본 발명의 일 실시예에 따르면, 가입요청된 이벤트 항목에 대해 이벤팅 정보를 제공하는 기기가 그 정보를 다중통지 방식으로 제공할 때, 가능하면 반복하여 제공하지 않도록 이벤트 그룹을 결정하여 가입함으로써, 이벤팅 정보의 제공 기기에 대해서 자원이나 처리능력의 소모 또한 불필요하게 증가하지 않게 한다.
도 1a는, 임의의 기기에서 실행되는 응용 프로그램들이, 타 기기로부터 특정 상태를 이벤트성으로 통지받기 위해 네트워크를 통해 서로 필요한 정보를 교환하는 과정을 개념적으로 도시한 것이고,
도 1b는, 이벤트 항목들을 그룹핑하여 구축된 표와, 그 표의 정보를 기반으로 필요한 이벤트 항목에 대해서 그룹기반으로 타 기기에 가입하는 과정을 도식적으로 나타낸 것이고,
도 2는, 본 발명의 일 실시예에 따른, 네트워크 상의 임의 기기의 구성에 대하여, 이벤트 항목들의 그룹핑 정보를 참조하여, 필요한 이벤트 항목에 대해서 가입할 이벤트 그룹을 결정하고, 그 결정된 그룹으로의 가입을 네트워크를 통해 타 기기에 요청할 수 있는, 서비스 기반으로 동작하는 에이전트(Agent)를 중심으로 예시한 것이고,
도 3a와 3b는, 본 발명의 일 실시예에 따른, 불필요한 이벤팅 정보가 될 이벤트 항목의 수가 최소가 되는 이벤트 그룹을 가입할 그룹으로 결정하는 방법을 도식적으로 설명하기 위한 도면들이고,
도 4는, 본 발명의 다른 일 실시예에 따른, 취합된 복수개의 가입요청된 이벤트 항목들에 대해서, 불필요한 이벤팅 정보가 될 이벤트 항목의 수가 가능한 최소가 되게 하는 이벤트 항목의 조합과 가입할 이벤트 그룹을 함께 결정하는 방법에 대한 예시적인 흐름도이고,
도 5는, 도 4에 예시된 방법에 따라, 이벤트 항목들의 조합과 그 조합에 대해 가입진행할 이벤트 그룹이 함께 결정되는 구체적인 예를 보여주는 것이고,
도 6은, 본 발명의 또 다른 일 실시예에 따라, 가입요청된 이벤트 항목들에 대하여 그들의 제 1조합을 포함하는 이벤트 그룹을 그 제 1조합에 대해 가입할 그룹으로 결정할지, 그 제 1조합에 이벤트 항목이 추가된 제 2조합을 포함하는 다른 이벤트 그룹을 그 제 2조합에 대해 가입할 그룹으로 결정할지를 판단하기 위해, 그 다른 이벤트 그룹에 대한 예상이익을 산출하는 과정을 도식적으로 나타낸 것이고,
도 7은, 본 발명의 또 다른 일 실시예에 따른, 이벤트 항목에 대해 가입을 반복하게 되는 시간격이 가능한 길어지도록, 가입할 이벤트 그룹을 결정하는 방법을 도식적으로 나타낸 것이고,
도 8은, 본 발명의 일 실시예에 따른, 가입요청된 이벤트 항목에 대해 결정된 하나의 임의 이벤트 그룹에 대해, 그 임의 이벤트 그룹을 지원하는 실행개체들이 타 기기에 복수개 있을 때, 반복하여 가입하게 되는 횟수가 가능한 적어지게 되는 실행개체를 가입 대상으로 결정하는 방법을 도식적으로 나타낸 것이고,
도 9는, 본 발명의 일 실시예에 따른, 이벤트 발생 시에 다중통지 방식으로 이벤팅하는 기기의 입장에서 그 통지 횟수가 가능한 적어지게 하는 방식으로, 이벤트 항목에 대해 가입할 이벤트 그룹을 결정하는 방법을 도식적으로 나타낸 것이다.
이하에서는, 본 발명에 따른 다양한 실시예들에 대해 첨부된 도면을 참조하여 상세히 설명한다.
이하의 본 발명에 따른 실시예들의 설명과 첨부된 도면에 있어서, 부기된 동일 번호는 특별한 사정이 없는 한 동일한 구성요소를 지칭한다. 물론, 설명의 편의와 이해에의 도움을 위해, 필요에 따라서는 동일한 구성요소에 대해서도 서로 다른 번호로 부기될 수도 있다.
도 2는, 본 발명의 일 실시예에 따른, 필요한 정보를 통지받기 위한 이벤트 항목에 대한 최적화된 그룹기반의 가입 방법이 구현된 노드, 예를 들어 전자제어 유니트의 구성을, 그 기기 내에서 동작하는 특수 기능의 모듈(module)을 중심으로 예시한 것이다.
예시된 노드의 기기(20)에는, 특수 기능의 모듈인 서비스 지향 인터페이싱 에이전트(Service-Oriented Interfacing Agent)(200)( 이하, '서비스 에이전트'로 약칭한다. )가 구비되며, 이 서비스 에이전트(200)는, 그 노드에 이식되어 실행되는 응용 프로그램들(10i, i=1,2,..)과 운영시스템(OS) 사이에 개입하여, 그 기기(20)가 전담하는 상태 변수들에 연관된 각종의 신호나 정보에 대하여, 그리고 네트워크 상의 다른 노드의 기기가 전담하는 상태 변수들에 연관된 신호나 정보에 대하여 조회하고 설정할 수 있게 하며, 또한, 다른 기기가 전담하는 상태 변수들에 대하여 실시간으로 상태의 변화나 특정 조건이 충족된 상태임을 통지받기 위해, 그 다른 기기에 이벤트 그룹을 기반으로 이벤트 가입을 하는 동작 등을 수행한다.
도 2의 서비스 에이전트(200)는, 임의의 응용 프로그램(10i)이 서비스 기반의 정보 조회와 설정( '서비스 기반의 정보 조회와 설정'을 통칭하여 '서비스 기반(의) 요청'이라 한다. ), 그리고 서비스 기반의 이벤트 가입요청을 할 수 있도록, 그러한 요청을, 정해진 서비스 구문법(syntax)에 따라 해석하도록 구성된 서비스 인터페이스부(201)와, 상기 서비스 인터페이스부(201)가 임의의 서비스 기반 요청과 이벤트 가입요청을 해석하여, 그 요청에 의해 수행되어야 할 메소드 또는 이벤트 가입의 대상을, 기 약속된 방식으로 각각 특정하여 전달하면, 그 특정된 메소드가 로컬에서 또는 원격지에서 실행되게 하거나 이벤트 가입을 위한 동작을 수행하도록 구성된 서비스 처리부(202)와, 운영시스템(OS) 또는 별도로 구비되는 미들웨어 등이 제공하는 다양한 통신용 프로토콜 실행 루틴들을 적절히 호출함으로써, 네트워크 상의 다른 기기들과 기 정해진 서비스기반 통신규약, 예를 들어 SOME/IP의 프로토콜에 따라 메시지들을 주고 받을 수 있도록 구성된 메시지 처리부인 메시지 핸들러(handler)(203)와, 운영시스템이 제공하는 다양한 인터페이스용 실행 루틴들을 통해, 해당 기기(20)의 전속 주변부로부터 신호나 정보를 획득하거나 그들에 대해 특정 값을 설정하도록 구성된 로컬 정보 처리부인 로컬 상태 핸들러(204)를 포함하여 구성된다.
또한, 상기 서비스 에이전트(200)에는, 상기 기기(20)가 전담하는 상태 변수들에 대해 모니터링되는 현재 값들 그리고 이벤트 상황이 기록되도록, 기 지정된 서비스 항목별로, 메소드에 연관된 상태 변수와 이벤트 항목에 연관된 상태 변수의 현재 값들이 연계되어 조직화되어 있는 목록인 상태 데이터베이스(220)가 구비되고, 또한, 각각의 서비스 항목별로, 해당 서비스 항목에 속하는 이벤트 항목들에 대해 하나 이상의 이벤트 그룹으로 분류하여 지정하고 있는 이벤트 항목들의 그룹핑 맵(210)이 구비된다. 상기 상태 데이터베이스(220)는, 전술한 바의 서비스 인터페이스부(201), 서비스 처리부(202), 그리고 로컬 상태 핸들러(204)에 의해 조회되거나 또는 적어도 일부의 정보가 갱신될 수 있다.
그리고, 상기 로컬 상태 핸들러(204)는, 상기 상태 데이터베이스(220)에 지정되어 있는 이벤트 항목들 중 어느 하나에 연관된 상태 변수의 값의 변화 등으로 부터 이벤트 발생을 감지하면, 필요한 경우, 상기 상태 데이터베이스(220)에서 해당 상태 변수의 현재 값을 변경함과 함께, 이벤트의 발생 사실을, 해당 이벤트 항목에 대한 정보와 함께 상기 서비스 처리부(202)에 통지하게 된다.
이하에서 그 동작이 상세히 설명되는 상기 서비스 에이전트(200)의 모든 기능 또는 부분적 기능은, 해당 기기(20)의 운영시스템을 기반으로 실행되는 명령 코드(code)들로써 구성된 프로세스(process) 또는 실행 모듈(executable module)( 이하에서는, '프로세스'와 '실행 모듈'을 통칭하여 '실행 개체'라는 용어가 사용될 수 있다. )에 의해 달성될 수 있다. 경우에 따라서는, 상기 서비스 에이전트(200)의 기능들의 적어도 일부가 미들웨어(middleware), 또는 응용 프로그램들이 기반하는 플랫폼(platform) 형태로, 또는 운영시스템(OS)의 일부의 형태로 상기 기기(20)에 구현되어 있을 수도 있다.
또한 상기 서비스 에이전트(200)는 하드웨어(hardware)의 구성을 포함함으로써, 이하에서 상세히 설명하는 기능들의 일부를 그 하드웨어를 통해 수행할 수도 있다. 따라서, 본 발명에 따른 다양한 실시예들에서 그 구성과 동작방식이 상세히 설명되는 상기 서비스 에이전트(200)는, 그 구현하는 형태 또는 사용된 자원의 유형 등에 의해 본 발명의 범위가 제한되는 것은 아니다.
본 발명에 따른 일 실시예에서는, 상기 서비스 에이전트(200)를 구성하는 서비스 인터페이스부(201), 서비스 처리부(202), 메시지 핸들러(203) 그리고 로컬 상태 핸들러(204)가 운영시스템의 기반 하에 각기 개별적으로 수행되는 실행개체일 수 있다. 다르게는, 이들(201,202,203,204)을 포함하는 상기 서비스 에이전트(200)가 단일의 실행개체로서 구현될 수도 있다.
또한, 본 발명에 따른 일 실시예에서는, 상기 서비스 에이전트(200)가, 해당 기기(20)의 운영시스템 또는 부트 로더(boot loader)에 의해서, 해당 기기(20)의 플래시 메모리로부터 로딩되어 실행되거나, 또는, 해당 기기(20)가 연결된 네트워크 상에서 특정 네트워크 주소( 예를 들어, IP주소, 또는 MAC 주소 등 )로 지정된 노드(node)로부터 다운로드되어 해당 기기(20)에서 실행될 수 있다.
본 발명의 원리와 기술적 사상은, 상기 서비스 에이전트(200)가, 네트워크로 연결된 적어도 2개의 기기들에 각기 구현된 상태에서 구체적으로 실현될 수 있다. 따라서, 이하의 본 발명에 따른 다양한 실시예들에 대한 설명은, 도 2에 예시된 바와 같이 구성된 적어도 2개의 전자제어 기기들이 서로 네트워크로 연결된 네트워크 시스템을 전제로 하여 설명한다.
본 발명에 따른, 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법의 다양한 실시예들에 대해서, 도 2의 서비스 에이전트(200)가 수행하는 동작을 위주로 하여 이하에서 구체적으로 설명한다.
도 2의 기기(20)가 연결된 네트워크 시스템에 전원이 인가됨으로써 그 시스템 내의 각 기기에도 동시에 전원이 인가되면, 상기 서비스 에이전트(200)가 기동된다. 상기 서비스 에이전트(200)가 기동되면, 상기 서비스 처리부(202)는, 어떤 서비스 항목들에 대하여 서비스 기반 요청에 응할 수 있는지, 즉 어떤 서비스 항목을 지원하고 있는지를 기록하고 있는 고유 프로파일의 내용을, 기 지정된 특정 형식의 메시지 형태로 상기 메시지 핸들러(203)에 제공하면서 멀티캐스트(multicast)의 전송을 요청함으로써, 동일 네트워크에 연결된 모든 기기들, 즉 그 기기들의 각 서비스 처리부가 그 내용을 파악할 수 있도록 한다. SOME/IP 프로토콜을 적용한 실시예라면, 이 특정 형식의 메시지는 제공서비스(Offer Service) 안내 메시지에 해당된다.
상기 메시지 핸들러(203)는, 상기 서비스 처리부(202)가 전달하는 내용을, 하나의 메시지로 또는 복수의 메시지들로 구성하여, 연결된 네트워크 상의 송수신에 요구되는 프로토콜에 따른 포맷, 예를 들어 UDP 또는 TCP 방식의 수송 프레임에 실어서 네트워크로 송신한다.
이와 같은 방식으로 각 기기의 고유 프로파일이 교환되고 나면, 네트워크 상의 모든 기기의 서비스 처리부는, 어떤 기기에서 어떤 서비스 항목( 즉, 어떤 메소드와 이벤트 항목 )을 지원하고 있는지를 파악하게 되고, 이 파악된 정보를 별도의 '외부 서비스 현황정보'로 저장한다.
한편, 상기 기기(20)에 전원이 인가되어 그 기기에서 응용 프로그램들(10i)이 실행되면, 의도된 동작을 수행하기 위해 필요한 이벤트 항목에 대한 가입을 상기 서비스 에이전트(200)에 각기 요청한다. 이 서비스 기반의 이벤트 가입요청에는 이벤트 식별자가 포함된다.
이 이벤트 가입요청이 상기 서비스 인터페이스부(201)를 통해 수신되어 어떤 이벤트 항목에 대해 가입요청된 것인지가 확인되면, 상기 서비스 처리부(202)는, 상기 상태 데이터베이스(220)에서 그 확인된 이벤트 식별자를 검색하여, 가입 요청된 이벤트 식별자가 자신이 지원하고 있는 이벤트 항목에 대한 것인지를 확인한다.
만약, 상기 상태 데이터베이스(220)에서 찾을 수 없으면, 앞서 저장해 둔 상기 외부 서비스 현황정보에서 그 이벤트 식별자의 이벤트 항목을 찾아서, 어떤 노드, 즉 네트워크 시스템에서 어떤 기기에서 지원하고 있는지를 확인한다.
이와 함께, 상기 확인된 이벤트 식별자를 상기 그룹핑 맵(210)에서 검색하여, 그 이벤트 식별자가 어떤 이벤트 그룹에 속하는 것인지를 파악한다. 임의의 이벤트 항목은 하나의 서비스 항목에 포함되어 정의되어 있지만, 전술한 바와 같이, 이벤트 그룹의 경우에 복수의 그룹에 속하도록 정해져 있을 수 있다. 따라서, 상기 서비스 처리부(202)는, 가입요청된 이벤트 식별자를 상기 그룹핑 맵(210)에서 검색하여, 2이상의 이벤트 그룹에 속해 있으면 어떤 이벤트 그룹을 선택하여 가입을 진행할 것인지를 결정하게 된다.
이러한 이벤트 그룹의 선택에 있어서, 본 발명에 따른 일 실시예에서는, 그룹핑된 이벤트 항목의 수가 가장 적은 이벤트 그룹을 가입진행할 그룹으로 선택한다. 도 3a는 본 실시예에 따른 이벤트 그룹 결정 방법을 도식적으로 나타낸 것이다.
상기 서비스 처리부(202)는, 응용 프로그램으로부터 가입요청된 이벤트 항목(30)의 식별자를, 상기 그룹핑 맵(210)에서 찾는다(P31). 이벤트 항목들에 대한 그룹핑이 동일 서비스 항목에 속하는 이벤트 항목들끼리만 조합되어진 경우에는, 상기 그룹핑 맵(210)에서, 가입요청된 이벤트 항목이 속하는 서비스 항목 내의 이벤트 그룹들만을 대상으로 검색하게 된다.
그리고, 상기 서비스 처리부(202)는, 가입요청된 이벤트 항목에 대하여, 그 식별자가 앞서 가입요청된 적이 없는 새로운 것이면, 그 이벤트 항목의 식별자와, 가입요청을 한 응용 프로그램의 식별자, 예를 들어 프로세스 ID를 서로 연계시켜, 통보요구 이벤트 목록에 새로운 항목으로 등재해 둔다. 만약, 새로운 식별자가 아니고, 앞서 다른 응용 프로그램이 이미 가입요청함으로써, 이후에 설명하는 동작에 따라 그 이벤트 항목을 지원하는 기기에 가입한 것이라면, 상기 통보요구 이벤트 목록에서 동일한 식별자의 이벤트 항목을 찾아서, 그 찾은 항목에, 가입요청한 응용 프로그램의 식별자만을 추가로 기록해 둔다. 상기 통보요구 이벤트 목록에 대한 이와 같은 정보 관리는, 이후에 다른 기기로부터 임의의 이벤트 발생을 통지받을 때, 그 이벤팅 정보를, 가입요청한 응용 프로그램에만 선별적으로 통보하기 위함이다.
이하에서 설명하는, 응용 프로그램으로부터 가입요청된 이벤트 항목에 대하여 가입할 이벤트 그룹을 결정하는 방법들은, 앞서 이미 가입요청한 이벤트 항목들에는 해당하지 않는 새로이 가입요청된 이벤트 항목일 때에 대한 것이다.
한편, 상기의 검색(P31)에서, 식별자가 일치하는 이벤트가 속한 하나 이상의 이벤트 그룹이 찾아지면( 이와 같이, 가입요청된 이벤트 항목을 포함하고 있는 이벤트 그룹을 '후보 그룹'이라 칭한다. ), 상기 서비스 처리부(202)는, 그 하나 이상의 후보 그룹의 각각에 대하여, 해당 그룹에 속하는 이벤트 항목들의 수를 확인하여 가장 그 수가 적은 이벤트 그룹을 가입할 그룹으로 결정하게 된다.
이벤트 항목의 수가 적으면, 가입요청된 이벤트 항목을 의도하여 그 이벤트 그룹으로 가입하였을 때, 통지를 의도하지 않음에도 불구하고 그룹가입으로 인해 이벤팅 정보가 제공될 미가입 이벤트 항목들의 수( 이하, '미가입 이벤트 수'라 약칭한다. )도 적어질 가능성이 높기 때문이다.
하지만, 이벤트 그룹에 대해서, 현재 미가입된 이벤트 항목에 국한하여 그 수를 이벤트 그룹의 결정 근거로 사용하는 것이 보다 바람직하다. 그 이유는, 도 3b에 예시된 바와 같다.
도 3b에 예시된, 이벤트 그룹에 속하는 이벤트 항목들의 수에 근거하여 이벤트 그룹을 결정하는 방식의 경우에, 이벤트 항목 e2,e3 및 e4에 대해서 순차적으로 가입요청된다면, 첫번째의 이벤트 항목(351)과 두번째의 이벤트 항목(352)에 대해서, 그 이벤트 항목을 포함하면서 수가 가장 적은 이벤트 그룹 EGA(321)가 가입할 그룹으로 각각 결정될 것이다(S361,S362). 이어서 세번째 이벤트 항목(353)이 가입요청되면, 그룹핑 맵(210)이, 그 세번째 항목을 포함하고 있는 이벤트 그룹 EGB(322)와 EGC(323) 중에서, 이벤트 그룹 EGC(323)에 대해서 상대적으로 더 적은 수의 이벤트 항목들을 그룹핑하고 있기 때문에, 그 이벤트 그룹 EGC(323)을 가입할 그룹으로 결정하게 될 것이다(S363).
그런데, 이런 경우에 이벤트 그룹 EGB(322)를 선택하여 가입하는 것이 더 유리하다. 왜냐하면, 이벤트 그룹 EGB(322)에는, 이미 그룹기반으로 가입을 하게 된 필요 이벤트 항목 e2와 e3가 포함되어 있어서, 이벤트 항목 e4를 위해 이벤트 그룹 EGB(322)를 결정하여 이 그룹으로 가입하게 되어도, 현 시점에 가입요청되지 않은 불필요한 이벤트 항목은 e5로서 1개가 되기 때문이다. 이에 반해, 전체 이벤트 항목의 수가 하나 더 적은 이벤트 그룹 EGC(323)를 선택하여 가입하더라도, 오히려 현재 시점에 불필요한 미가입 이벤트 항목은 e6와 e7로서 2개가 된다.
이러한 경우의 발생을 고려할 때, 가입요청된 이벤트 항목에 대해서 가입할 이벤트 그룹을 결정함에 있어서, 후보 그룹에 대해, 현재 미가입된 이벤트 항목에 국한하여 그 수를 이벤트 그룹 결정의 근거로 사용하는 것이 바람직하다.
따라서, 도 3a에 따른 실시예에서는, 상기 서비스 처리부(202)가, 후보 그룹(들)의 각각에 대해서, 현시점에서의 미가입 이벤트 수(NcNS[EG_i], i=..O,P,Q,R,..)를 확인하여, 가장 개수가 적은 이벤트 그룹을 결정한다(S32). 각 후보 그룹의 미가입 이벤트 수에 대해서는, 최초에 해당 이벤트 그룹에 속하는 전체 이벤트 항목의 수로써 초기화한 후, 이후에 설명하는 방법에 따라 이벤트 그룹이 결정되고, 그 결정된 이벤트 그룹으로써 이벤트 가입요청을 하게 되면, 그 그룹기반의 가입요청의 근거가 된 이벤트 항목의 식별자를 포함하고 있는 이벤트 그룹에 대해서는 모두 1을 차감시키게 된다(P34). 이후에 설명하는 실시예에 따라서는, 1을 차감한 이벤트 그룹에서, 현재 타 기기에 가입요청하게 되는 이벤트 항목에 대해서 별도의 마크를 부기해 둘 수 있다. 이는, 해당 이벤트 그룹에서, 현재 어떤 이벤트 항목이 아직 가입요청되지 않은, 즉 미가입 이벤트 항목인지를 구분하기 위해서이다.
이렇게 하나의 이벤트 그룹이 결정되면, 상기 서비스 처리부(202)는, 가입요청된 이벤트 항목를 지원하고 있는 노드를 상기 외부 서비스 현황정보로부터 확인한 후, 그 이벤트 그룹을 식별케 하는 그룹 식별자(EGR)를 포함시킨 그룹기반의 가입요청 메시지를 구성하여, 상기 확인된 지원 노드에 대한 주소를 지정하면서 상기 메시지 핸들러(203)에 전송함으로써, 해당 노드에 이벤트 그룹에의 가입을 요청한다(S33).
한편, 가입할 이벤트 그룹이 결정되었을 때, 그 결정된 이벤트 그룹이, 앞선 다른 이벤트 항목의 가입요청에 의해서 결정되어 이미 가입요청한 적이 있는 그룹일 수 있다. 상기 서비스 처리부(202)는, 이런 경우에는 당연히 결정된 이벤트 그룹에 대한 가입요청을 하지 않는다. 이를 위해, 상기 서비스 처리부(202)는, 가입그룹 목록을 별도로 구비하여. 그 목록에 가입요청한 이벤트 그룹의 식별자를 기록해 두는 정보관리 동작을 수행하며, 결정된 이벤트 그룹에 대한 가입요청 전에 상기 가입그룹 목록에 이미 등재된 그룹, 즉 이미 가입완료한 그룹인지 여부를 확인한다. 이하에서 설명하는 다른 다양한 실시예들에서도 이러한 동작은 동일하게 수행된다.
본 실시예에서와 같이, 응용 프로그램으로부터 가입요청된 이벤트 항목을 포함하는 이벤트 그룹들에서 이벤트 항목들의 수, 바람직하게는 현재 미가입 이벤트 수가 가장 적은 이벤트 그룹을 지정하여 가입하게 되면, 이후에 상기 기기(20), 즉, 상기 서비스 에이전트(200)로 이벤팅 정보가 불필요하게 통지되는 횟수가 상대적으로 더 적어지므로, 이후에 초래되는, 상기 서비스 에이전트(200)의 데이터 수신처리에서의 부담이, 다른 이벤트 그룹을 선택하여 가입했을 때보다 상대적으로 줄어든다.
이와 같은 상대적 부담의 감소는, 그 이벤트 그룹 내의 이벤트 항목들, 즉 그 이벤트 항목들이 속하는 서비스 항목을 지원하고 있는 기기가, 그 이벤트 그룹에 속하는 임의의 이벤트 항목에 대한 이벤트 발생이 감지되었을 때, 그 이벤트 그룹으로 가입요청한 기기들 모두에 이벤팅 정보를 제공함에 기인한다. 보다 구체적인 예로서 설명하면, 도 3a의 예에서, 상기 서비스 처리부(202)가 식별자 eK인 이벤트 항목을 의도하여 이벤트 그룹 EGR에 가입하였지만, 이벤트 항목 ek가 아닌 다른 이벤트 항목(311)에 대해서 이벤트가 발생하였을 때도, 상기 서비스 처리부(202)가 가입요청한 이벤트 그룹에 속한 항목이므로, 그 이벤트에 대한 이벤팅 정보를 수신하게 된다.
따라서, 가입요청을 의도한 이벤트 항목 이외의 수가 많으면 많을수록, 자신이 가입요청을 의도하지 않은 다른 이벤트 항목의 이벤트 발생으로 인한 이벤팅 정보를 수신하게 되는 경우가 많아질 수 밖에 없다.
그렇기 때문에, 도 3a에 예시된 바와 같이, 이벤트 그룹 내의 이벤트 항목의 수, 바람직하게는, 미가입 이벤트 수가 가장 적은 이벤트 그룹을 지정하여 가입요청하게 되면, 가입이 요청되지 않아 자신에게는 불필요한 이벤팅 정보를 담은 이벤팅 메시지를 수신하게 되는 경우 수가 상대적으로 감소하게 되고, 이에 따라 수신 처리능력에서의 손실을 상대적으로 줄일 수 있다.
도 3a를 참조로 설명한 실시예에서는, 가입요청한 이벤트 항목이 하나임을 전제하여 설명하였지만, 그 기본적 원리는 복수의 이벤트 항목들이 하나의 응용 프로그램으로부터 함께 요청된 경우에도 적용될 수 있다. 예를 들어, 가입요청된 이벤트 항목들이 e1, e2 및 e3일 때, 이 3개의 이벤트 항목들이 모두 속한 이벤트 그룹들 중에서 현재 미가입 이벤트 수가 가장 적은 이벤트 그룹을 가입할 그룹으로 결정하게 되고, 3개의 이벤트 항목들이 모두 속한 이벤트 그룹이 없는 경우에는, 개별적으로, 또는 2개와 1개의 나뉘어진 이벤트 항목(들)에 대해서, 현재 미가입 이벤트 수가 가장 적은 이벤트 그룹이 각각 가입할 그룹으로 결정될 것이다.
그런데, 상기 서비스 처리부(202)가, 응용 프로그램으로부터 이벤트 가입요청이 있을 때마다, 그 즉시 대응하여 가입요청된 하나의 이벤트 항목에 대해 전술한 바와 같은 방법으로 이벤트 그룹을 결정하여 타 노드에 가입요청을 하게 되면, 도 3a에 예시된 실시예가 의도하는, 불필요한 이벤팅 정보를 최소화시키는 이벤트 그룹의 선정이 되지 않는 경우가 아래와 같이 발생할 수도 있다.
응용 프로그램 A, B 및 C가 순차적으로 이벤트 항목 e1, e2 및 e5를 각각 가입요청하고, e1, e2 또는 e4를 포함하는 이벤트 그룹으로서 EGA={e1,e2,e3}와, EGB={e1,e2,e4,e5}가 지정되어 있다고 가정할 때, 상기 서비스 처리부(202)는, 순차적으로 가입요청되는 이벤트 항목 e1과 e2에 대해서 이벤트 그룹 EGA가 그 시점에 최소 미가입 이벤트 수를 가지므로, EGA를 가입할 이벤트 그룹으로 결정하게 된다. 그리고, 이어서 이벤트 항목 e4의 가입요청에 대해서는, 해당 이벤트 항목을 유일하게 포함하고 있는 이벤트 그룹 EGB를 가입할 그룹으로 결정하게 될 것이다. 즉, 이 예에서, 이벤트 항목 e1,e2,e4에 대한 순차적인 가입요청에 대해서, 가입하게 되는 이벤트 그룹이 2개로 결정되고, 이에 따라, 각각의 이벤트 그룹에서 불필요한 이벤팅 정보를 수신하게 되는 이벤트 항목이 e3와 e5로 각각 한 개씩 총 2개가 된다. 하지만, 이 예에서는, 이벤트 항목 e1,e2,e4에 대해서 하나의 이벤트 그룹 EGB에 가입함으로써 충분하며, 이렇게 가입하게 되면 이벤트 항목 e5 만이 불필요한 이벤팅 정보가 된다.
따라서, 응용 프로그램들이 가입요청하는 이벤트 항목들에 대해서, 각각의 가입요청에 대해서 즉시 응답하여 가입처리하는 것보다, 가입요청된 이벤트 항목들을 어느 정도 취합하고, 그 취합된 이벤트 항목들에 대해서 가입할 이벤트 그룹을 결정하는 것이 바람직할 수도 있다. 즉, 상기 서비스 에이전트(200)가 기동 후 일정 시간( 예를 들어, 100 또는 500 msec 등 ) 대기하면서, 그 동안 응용 프로그램들로부터 가입요청되는 이벤트 항목들을 취합하고, 그 일정 시간이 경과된 시점에 취합된 모든 이벤트 항목들에 대해서 그들의 다양한 조합을 고려하여 불필요한 이벤팅 정보의 수신이 최소화되도록 가입할 이벤트 그룹을 결정하는 것이 바람직할 수 있다.
도 4는, 응용 프로그램들로부터 가입요청된 이벤트 항목들을 어느 정도 취합한 후에, 불필요한 이벤팅 정보가 최소화될 수 있게 하는, 본 발명의 일 실시예에 따른, 취합된 이벤트 항목들에 대한 이벤트 그룹 결정 방법의 흐름도이다. 도 4에 예시된 흐름도는, 전술하였던 바와 같이, 동일한 서비스 항목에 속하는 이벤트 항목들끼리만 조합되어 이벤트 그룹으로 매핑되어 있는 것을 전제로 한 것이며, 이하에서 예시된 흐름도에 따른 동작을 상세히 설명한다.
상기 서비스 처리부(202)는, 응용 프로그램들이 가입요청함으로써 전달된 이벤트 항목들에 대해서 먼저 서비스 항목별로 분류한다(S401). 그리고, 미리 지정된 순서선정 방식에 따라, 그 분류된 이벤트 항목들에 대해서 첫번째 분류를 선정한다(S402).
이렇게 하나의 분류가 선정되면, 상기 서비스 처리부(202)는, 그 분류에 속하는 이벤트 항목들을 대상 항목들로 하여, 그 대상 항목들을 임의로 조합하면서, 상기 그룹핑 맵(210)에 정해져 있는 이벤트 그룹들과의 매칭비율(Matching Rate)을 구하여 최고의 매칭비율을 보이는 이벤트 그룹을 선택한다(S403). 본 명세서와 도면에서 사용하는 '매칭비율'의 용어는, 대상 항목들 중 적어도 하나의 이벤트 항목을 포함하는 이벤트 그룹에 대해, 그 이벤트 그룹의 총 이벤트 항목들의 수에 대한 대상 항목과 일치하는 이벤트 항목들의 수의 비율을 의미한다. 실시예에 따라서는, 매칭비율이, 해당 이벤트 그룹의 현재 미가입 이벤트 수에 대한 대상 항목과 일치하는 이벤트 항목들의 수의 비율을 의미할 수도 있다. 이하의 설명에서도, 그 적용이 배제되지 않는 한, 매칭비율은, 미가입 이벤트 수에 근거하여 산출한 것일 수 있다.
도 5는, 이런 방식에 의해 이벤트 그룹의 조합과 하나의 이벤트 그룹이 함께 선택되는 것에 대한 구체적인 예를 보여준다. 도시된 예에서는, 가입요청되어 취합된 모든 이벤트 항목들의 분류들(51) 중에서 현재 선정된 분류의 대상 항목들(510)에 대하여, 이벤트 항목 e1,e2 및 e3가 매칭되어 최고 매칭비율을 나타내는 이벤트 그룹 EGB(520)가 선택된다. 다른 이벤트 그룹 EGC(530)가 매칭되는 이벤트 항목의 수가 5개로서 더 많지만, 그 이벤트 그룹(530)의 매칭비율은 83.3% (=5/6)여서 100%보다 작으므로, EGC대신 EGB의 이벤트 그룹이 선택된다.
만약, 동일한 최고 매칭비율이, 2개 이상의 이벤트 그룹들에 대해서 나타나면, 매칭된 이벤트 항목들이 더 많은 이벤트 그룹을 선택하고(S402), 매칭된 수도 모두 동일하면, 그 이벤트 그룹들 중에서 임의의 하나를 선택한다.
하나의 이벤트 그룹을 선택하고 나면, 최고 매칭비율이 100%인지를 확인한다(S410). 최고 매칭비율이 100%가 아니면, 상기 서비스 처리부(202)는, 대상 항목들에서 최고 매칭비율을 나타낸 이벤트 항목의 조합과 이벤트 그룹을 결정하여{ 도 5의 예에서, 만약, 이벤트 그룹 EGB가 지정되어 있지 않다면, 6개에서 5개가 일치하여 83.3%의 매칭비율을 보인 조합( e1,e2,e3,e4,e6 )과 이벤트 그룹 EGC가 각각 결정될 것이다. }, 그 매칭된 조합을 현재의 대상 항목들에서 배제한다(S422).
만약, 최고 매칭비율이 100%이면, 상기 서비스 처리부(202)는, 해당 이벤트 그룹에 속하는 이벤트 항목들이( 실시예에 따라서는, 현재 미가입된 이벤트 항목들이 ) 모두 대상 항목들의 임의 조합(511)과 일치하는 것이므로, 상기 서비스 처리부(202)는, 매칭된 조합(511)을 포함하면서 동시에 적어도 하나의 다른 대상 항목을 포함하고 있어야 하는 조건을 충족하는 다른 이벤트 그룹이 있는지를 확인한다(S411). 도 5의 예시에서는, 이벤트 그룹 EGC(530)가 매칭된 조합(511) 외에 다른 대상 항목들(512)도 포함하고 있어서, 이 이벤트 그룹 EGC(530)가 이 확인과정(S411)에서 찾아진다.
상기의 조건을 충족하는 다른 이벤트 그룹, 즉 매칭 비율에 있어 차위(次位)의 이벤트 그룹이 하나 이상 찾아지면( 이렇게 찾아진 이벤트 그룹의 이벤트 항목들과 일치하는 대상 항목들의 조합(511과 512)을 '확장된 매칭조합'이라 칭한다. ), 상기 서비스 처리부(202)는, 그 하나 이상의 이벤트 그룹의 각각에 대하여 매칭비율을 구함으로써 최고 매칭비율을 파악한다(S412). 그리고, 그 파악된 최고 매칭비율을 기 설정된 기준비율과 비교한다(S420). 도 5에서는, 상기의 조건을 충족하는 이벤트 그룹이 EGC(530) 하나만 예시되어 있어서, 이 이벤트 그룹에 대해 산출한(S541) 매칭비율이 곧 최고 매칭비율이 되고, 이 매칭비율이 기 설정된 기준비율과 비교된다(S542).
상기 조건을 충족하는 하나 이상의 다른 이벤트 그룹에 대해서 구한 최고 매칭비율이 설정된 기준비율 이상이면, 상기 서비스 처리부(202)는, 그 최고 매칭비율을 보인 다른 이벤트 그룹(530)을, 앞서 매칭된 조합(511) 대신 확장된 매칭조합(511과 512)에 대해 가입할 그룹으로 결정하고, 그 확장된 매칭조합은 현재의 대상 항목들에서 배제한다(S421). 도 5의 예에서, 만약 기준 비율이 80%로 설정되어 있다면, 계산된 매칭비율이 83.3%여서 기준비율보다 크므로, 확장된 매칭조합, 즉 이벤트 항목 e1,e2,e3,e4 및 e6의 조합에 대해 가입할 이벤트 그룹이 EGC(530)로 결정되고, 이 조합의 이벤트 항목들이 대상 항목들에서 배제된다(S543).
만약, 최고 매칭비율이 상기 기준비율보다 작으면, 상기 서비스 처리부(202)는, 타 이벤트 그룹들에 대해서 구한 매칭비율은 무시하고, 앞서, 최고 매칭비율을 보여서 선택하였던(S403) 이벤트 그룹을, 상기 매칭된 조합(511)의 이벤트 항목들에 대해 가입할 그룹으로 결정하며, 그 매칭된 조합(511)을 현재의 대상 항목들에서 배제한다(S422). 도 5의 예에서, 만약 기준 비율이 90%로 설정되어 있다면, 계산된 매칭비율이 기준비율보다 작으므로, 원래 매칭된 조합(511), 즉 이벤트 항목 e1,e2 및 e3들에 대해, 가입할 이벤트 그룹으로서 완전 정합된(fully-matched) 그룹 EGB(520)로 결정되고, 이 조합의 이벤트 항목들이 대상 항목들에서 배제된다(S544).
이와 같은 방식으로, 대상 항목들(510)의 임의의 조합에 대해 가입할 이벤트 그룹을 결정하고 그 대상 항목들(51)에 대해서는 그 임의의 조합을 배제시킨 후, 상기 서비스 처리부(202)는, 현재 분류(510) 내에 이벤트 그룹을 결정해야 할 대상 항목이 더 있는지를 확인한다(S430). 더 남아 있다면, 전술한 바와 같은 방식으로, 현재의 대상 항목들의 임의 조합으로써 최고 매칭비율이 되는 이벤트 그룹을 찾아서 선택한다(S431). 이후의 과정은 전술한 바와 동일하다.
만약, 현재 분류 내의 이벤트 항목들에 대해서 모두 이벤트 그룹이 지정되고 나면, 상기 서비스 처리부(202)는, 현재의 분류가, 가입요청한 이벤트 항목들에 대해 서비스 항목별로 구분한 분류들 중 마지막인지를 확인하고(S440), 마지막이 아니면, 정해진 순서선정 방식에 따라 다음 순서의 분류를 선정한 후(S441), 그 선정된 분류에 속하는 이벤트 항목들에 대해서 전술한 바의 이벤트 그룹 결정 방법을 그대로 수행하게 된다.
이상에서 설명한 실시예의 방법에 따라, 동 기기에서 실행되는 응용 프로그램들(10i, i=1,2,..)로부터 가입요청되어 취합된 이벤트 항목들에 대해서, 가능한 매칭비율이 높은 이벤트 그룹들이 가입할 그룹들로 결정된다. 이는 곧, 매칭되지 않은 이벤트 항목, 즉, 불필요한 이벤팅 정보가 되는 이벤트 항목의 수가 가능한 적은 이벤트 그룹이 가입할 이벤트 그룹으로 결정되게 하는 것이어서, 해당 기기의 수신 처리능력에서의 불가피한 손실을 최대한 줄이게 된다.
전술한 실시예에서는, 확장된 매칭조합(511과 512)을 포함하는 다른 이벤트 그룹(530)을 확장된 매칭조합에 대해 가입할 이벤트 그룹으로 결정할지 여부를, 그 이벤트 그룹에 대해 구한 매칭비율과 설정된 기준비율 간의 대소 여부에 근거하였다. 본 발명에 따른 다른 일 실시예에서는, 이와 같은 고정된 기준값과의 대소비교 대신, 확장된 매칭조합에 대하여 가입할 이벤트 그룹을 결정했을 때의 예상이익( 그 결정에 따라 하지 않게 되는 데이터 처리에서의 이익 )과 예상손실( 그 결정에 따라 감수하게 되는 데이터 처리에서의 손실 )에 근거할 수도 있다. 이하에서 본 실시예에 대해 구체적으로 설명한다.
본 실시예에서는, 예상이익이 예상손실보다 클 때, 관련된 데이터 처리에 있어 전자가 후자보다 횟수나 데이터양에서 더 부담이 되는 경우일 때, 매칭된 조합 대신, 확장된 매칭조합을 포함하고 있는 이벤트 그룹(530)( 이하, '2차 이벤트 그룹'이라 칭한다. 이에 반해, 매칭된 조합만을 포함하고 있는 완전정합된 이벤트 그룹(520)에 대해서는 '1차 이벤트 그룹'이라 칭한다. )을 확장된 매칭조합에 대해 가입요청할 그룹으로 결졍하게 된다.
본 발명에 따른 일 실시예에서는, 상기 예상손실이, 2차 이벤트 그룹에서 비매칭되는( 가입요청한 이벤트 항목에 해당되지 않는 ) 하나 이상의 이벤트 항목의 수가 될 수 있고, 이에 대응하여, 상기 예상이익은, 매칭된 조합에는 속하지 않고 확장된 매칭조합에만 속하는 하나 이상의 이벤트 항목(512)( 이하, '추가 매칭조합'이라 칭한다. )으로 인해, 추가적인 가입이 예상되는 이벤트 그룹의 수가 될 수 있다. 즉, 추가로 가입이 예상되는 이벤트 그룹의 수가 2차 이벤트 그룹에서 비매칭되는 이벤트 항목의 수 이상이면, 상기 서비스 처리부(202)는, 확장된 매칭조합에 대해 2차 이벤트 그룹을 가입할 그룹으로 결정하고, 그렇지 않으면, 매칭된 조합에 대해 완전정합된 1차 이벤트 그룹을 가입할 그룹으로 결정하게 된다.
가입할 그룹을 2차 이벤트 그룹으로 결정하지 않고 1차 이벤트 그룹으로 결정하게 되면, 추가 매칭조합(512)의 이벤트 항목들에 대해서는, 1차 이벤트 그룹 외의 적어도 하나의 다른 이벤트 그룹으로 가입해야 할 필요가 생긴다. 그렇기 때문에, 가입할 그룹을 2차 이벤트 그룹으로 결정하게 되면, 이러한 추가적인 이벤트 그룹으로의 가입의 필요가 없어지게 되어 가입을 위한 트랙픽 관점에서 보면 이익이 될 수 있다. 이러한 이유로 본 명세서에는 예상이익이라는 용어를 사용한다. 2차 이벤트 그룹에 대해 예상이익을 산출하는 방법에 대해서는 이하에서 구체적으로 설명한다.
도 6은, 본 산출 방법을 예시적으로 설명하기 위한 도면으로서, 추가 매칭조합의 이벤트 항목들(60)이 4개인 것을 가정한 것이다. 이 수는 단지 예시적인 것일 뿐이며, 이하에서 설명하는 방법의 원리는 당연히 다른 수의 이벤트 항목들로써 이루어진 추가 매칭조합에 대해서도 적용하여 예상이익을 산출할 수 있다.
상기 서비스 처리부(202)는, 상기 그룹핑 맵(210)을 검색하여, 하나의 이벤트 그룹으로써 또는 둘 이상의 이벤트 그룹들의 조합으로써, 상기 추가 매칭조합(60)의 이벤트 항목들을 모두 포함하게 되는 이벤트 그룹 세트(set)를 지정한다. 이때, 둘 이상의 이벤트 그룹들의 조합이 상기 추가 매칭조합(60)의 이벤트 항목들을 모두 포함하게 되더라도, 상기 추가 매칭조합(60)의 이벤트 항목들만을 국한하여 볼 때, 어느 하나의 이벤트 그룹이 다른 이벤트 그룹의 부분집합이 되는 조합은 배제하는 규칙하에서 세트를 지정한다. 즉, 도 6의 예에서, 이벤트 그룹 EGO와 EGP의 조합이, 상기 추가 매칭조합(60)의 모든 원소들, 즉 이벤트 항목들(eK,eL,eM,eN)을 포함하게 되지만, 추가 매칭조합(60)의 원소에만 국한해서 보면, 이벤트 그룹 EGO는 이벤트 그룹 EGP의 부분집합이 되므로 이러한 이벤트 그룹의 조합은 세트로 지정하지 않는다. 이벤트 그룹 EGP와 EGQ의 조합도 마찬가지이다.
상기 서비스 처리부(202)는, 상기 부분집합 배제의 규칙하에서, 추가 매칭조합의 원소들만을 기준으로 볼 때, 교집합의 원소가 0인 세트( 이는 곧, 하나의 이벤트 그룹이 추가 매칭조합의 모든 이벤트 항목들을 포함하는 경우이다. ), 교집합의 원소가 1개가 되는 조합의 세트, 교집합의 원소가 2개가 되는 조합의 세트 순서로 세트들을 지정한다(P61). 이러한 세트의 지정은, 교집합의 수가, 추가 매칭조합의 이벤트 항목들의 수(61)보다 2작은 수(=NadMeC -2)까지 진행한다. 교집합의 수가 추가 매칭조합의 원소들의 수(61)보다 1작은 수가 되기 위해서는, 그 조합에서 어느 한 쪽의 이벤트 그룹이 추가 매칭조합의 모든 원소들을 포함해야 하는데, 이런 경우에 대해서는, 앞서 이미 세트로 지정되므로 세트 지정을 진행할 필요가 없다.
이와 같은 방식으로 세트들이 지정되면, 상기 서비스 처리부(202)는, 각 세트에 대해서, 추가 매칭조합 외의 이벤트 항목들의 수를 계산한다(P62). 이 이벤트 항목들의 수는, 해당 세트에 속하는 이벤트 그룹(들)의 이벤트 항목들의 수의 합에서, 중첩되는 이벤트들의 수와 추가 매칭조합의 이벤트 수를 감산함으로써 얻을 수 있다.
지정한 모든 세트들에 대해서 추가 매칭조합 외의 이벤트 항목들의 수가 각각 계산되면, 상기 서비스 처리부(202)는, 그 수들(630) 중에서 최소의 수를 선정하고, 그 최소 수를 나타낸 세트로부터 예상이익을 산출한다(S63). 본 실시예에서는, 그 결정된 세트에 포함된 이벤트 그룹의 수를 예상이익으로 결정한다(640). 이렇게 결정된 세트의 이벤트 그룹들은, 만약, 매칭된 조합에 대해서만 1차 이벤트 그룹을 결정하여 가입하였다면, 추가 매칭조합(60)의 이벤트 항목들에 대해서, 추가로 가입하게 될 가능성이 매우 높은 그룹이므로, 이 그룹의 수가, 2차 이벤트 그룹으로써 가입한다면, 그룹기반의 이벤트 가입에서 감소가 예상되는 횟수가 될 것이다. 따라서 이를 2차 이벤트 그룹으로의 결정 시의 이익으로 예상할 수 있다.
상기 산출된 예상이익, 즉 결정된 세트의 이벤트 그룹의 수가, 앞서 파악한 예상손실, 즉, 2차 이벤트 그룹에서 비매칭되는 하나 이상의 이벤트 항목의 수보다 크면, 상기 서비스 처리부(202)는, 확장된 매칭조합 대해서 2차 이벤트 그룹을 결정하여 가입요청을 하게 되고, 이벤트 항목의 수 이하이면, 매칭된 조합에 대해서만 1차 이벤트 그룹으로써 가입요청을 하게 된다.
본 발명에 따른 다른 일 실시예에서는, 예상이익과 예상손실을, 관련된 처리동작의 발생빈도( 예를 들어, 초당 또는 분당 처리하게 되는 횟수 )를 근거로 산출할 수도 있다. 본 실시예에서는, 앞서 결정한 세트에 속하는 이벤트 그룹에 대한 가입을 반복하게 되는 빈도의 평균을 예상이익으로, 2차 이벤트 그룹에서 비매칭되는 하나 이상의 이벤트 항목들에 대한 이벤트 통지빈도의 평균을 예상손실로 적용할 수 있다.
각 기기의 서비스 에이전트에 구비되는 상기 그룹핑 맵(210)에 지정되어 있는 각 이벤트 그룹에는 가입 유효시간이 지정되어 있을 수 있다. 이 가입 유효시간은, 해당 이벤트 그룹에 대해 한번 가입 후 다시 가입요청하게 될 때까지의 예상시간을 가리키는 것으로서, 이 가입 유효시간은, 해당 이벤트 그룹의 이벤트 항목들에 대해서 지원하고 있음을 알리는 제공서비스 안내 메시지에 실려서 전달되는 서비스 유효시간( TTL: Time To Live )으로부터 정해지며, 이 시간이 미리 파악되어 상기 그룹핑 맵(210)에 지정되어 있을 수 있다. 다르게는, 동작 중에 수신되는 제공서비스 안내 메시지로부터 확인될 때, 해당되는 이벤트 그룹에 대해 가입 유효시간을 지정해 둘 수 있다.
서비스 항목을 지원하는 기기는, 서비스 유효시간이 경과하기 이전에 제공서비스 안내 메시지를 다시 송신하는데, 이 메시지를 수신하게 되면, 상기 서비스 처리부(202)는, 그 제공서비스 안내 메시지에서 지원하는 것으로 확인되는 이벤트 항목들로써 정의된 이벤트 그룹에 대해서는 다시 가입요청하게 된다. 따라서, 가입한 이벤트 그룹에 대해 지정되어 있는 가입 유효시간은 가입요청을 반복하게 되는 시간격을 정확하게 나타내는 것은 아니지만, 가입을 반복하게 되는 시간격의 상대적인 길이는 알 수 있게 한다. 상대적으로 긴 가입 유효시간을 지정한 제공서비스 안내 메시지는, 그보다 짧은 가입 유효시간을 지정한 제공서비스 안내 메시지보다 더 긴 간격으로서 반복하여 전송될 것이기 때문이다.
그렇기 때문에, 본 실시예에서는, 상기 서비스 처리부(202)가, 앞서 결정한 세트에 속하는 이벤트 그룹(들)에 대해, 해당 가입 유효시간(들)의 평균을 계산하고, 그 계산된 평균값의 역수를 취한 값을, 정확한 가입빈도는 아니지만, 대략적인 가입빈도로 간주하여 이들의 평균치를 예상이익으로 간주한다. 만약, 가입 유효시간과 제공서비스 안내 메시지를 반복하여 전송하는 시간 사이에 공통적으로 적용되는 정해진 비율이 있다면, 그 비율을 적용하여 정확한 가입빈도를 구하여 예상이익을 산출할 수도 있다. 예를 들어, 가입 유효시간의 3/4가 되는 시간에 제공서비스 안내 메시지를 전송하는 것이 공통적으로 적용되는 사항이라면, 가입 유효시간의 3/4의 시간으로부터 가입빈도를 구하게 된다. 다르게는, 가입빈도의 평균치를 계산함에 있어서, 가입 유효시간 대신, 이후에 설명하는 순환적 제공 지연시간을 파악하여 사용할 수도 있다.
그리고, 2차 이벤트 그룹에서 비매칭되는 하나 이상의 이벤트 항목들에 대한 이벤트 통지빈도를 각기 파악하여 이들의 평균을 구하여 예상손실을 산출한다. 각 이벤트 항목에 대한 이벤트 통지빈도는, 별도로 구비되는, 기기들이 필요로 하는 모든 서비스 항목들에 대한 정보를 수록하고 있는 서비스 사양표의 각 서비스 항목에 포함되어 지정된 각각의 이벤트 항목에 대해 개별적으로 지정되어 있을 수 있으며, 다르게는, 발생빈도별로 이벤트 항목들을 정렬하여 리스트한 이벤트 발생빈도 일람표의 형태로 미리 제공되어 상기 서비스 에이전트(200)에 구비될 수도 있다.
상기 서비스 사양표 또는 상기 이벤트 발생빈도 일람표는, 네트워크 시스템의 각 기기에 미리 이식됨으로써 구비될 수도 있고, 각 기기에서 상기 서비스 에이전트(200)의 기동 시에, 상기 서비스 처리부(202)가, 네트워크를 이용하여 기 지정된 주소의 기기나 장치에 접속하여 다운로드하여 구비할 수도 있다.
그리고, 상기 서비스 사양표 또는 상기 이벤트 발생빈도 일람표에는, 발생빈도가 구체적인 시간으로서 지정될 수도 있고, 그렇지 않고 발생빈도를 그 정도에 따라 여러 레벨로 분류해 둔 레벨들 중 어느 하나의 레벨로 지정될 수도 있다. 이벤트 항목의 경우에, 정확한 주기로 항상 발생하는 종류도 있지만, 발생 주기가 일정치 않고 변동하면서 발생하는 종류도 있을 수 있고, 발생 여부가 특정 용도의 장치의 사용자에게 전적으로 의존하는 종류도 있을 수 있다.
따라서, 가능한 모든 이벤트 항목들에 대해서 예상손실을 산출할 수 있도록, 특정 용도의 장치가 동작할 때는 언제나 반복하여 발생하지만 그 간격이 일정치 않은 종류의 이벤트 항목들에 대해서는, 그 이벤트 항목의 발생 간격의 확률적 평균치를 나타내는 시간으로서 지정하고( 또는 분류된 레벨들 중 그 시간이 속하는 레벨로 지정하고 ), 발생 여부가 사용자 의존인 종류에 대해서는, 발생빈도에 대해 지정하는 시간 중에서 가장 긴 시간으로( 또는 가장 긴 간격에 대한 레벨로 ) 지정해 둔다. 물론, 레벨로 지정하는 경우에는, 각 레벨에 대해 치환하여 사용하는 빈도의 수치가 미리 지정되어 있게 된다.
이와 같이, 각각의 이벤트 항목에 대한 발생빈도를 알 수 있는 정보가, 상기 서비스 사양표 또는 이벤트 발생빈도 일람표에 기록되어 있으면, 상기 서비스 처리부(202)는, 그 기록된 발생빈도 정보로부터, 2차 이벤트 그룹에서 비매칭되는 하나 이상의 이벤트 항목들의 각각에 해당하는 발생빈도, 즉 자신에게 통지되는 빈도를 확인하고, 그 확인된 발생빈도들의 평균을 구하여 이를 예상손실로 간주한다.
이렇게 예상이익과 예상손실이 확인되면, 상기 서비스 처리부(202)는, 예상이익이 예상손실보다 클 때, 즉, 전술한 바와 같이 결정한 세트(S63)에 포함된 이벤트 그룹에 대한 가입빈도의 평균이 2차 이벤트 그룹에서 비매칭되는 이벤트 항목에 대한 이벤트 통지빈도의 평균치보다 크면, 확장된 매칭조합에 대해서 2차 이벤트 그룹을 결정하여 가입을 하게 되고, 이벤트 항목에 대한 이벤트 통지빈도의 평균치 이하이면, 매칭된 조합에 대해서만 1차 이벤트 그룹으로 가입을 하게 된다.
본 실시예에서는, 이벤트 그룹에 대한 가입빈도의 평균을 구할 때, 전술한 바의 가입 유효시간 대신, 하나 이상의 서비스 항목을 지원하는 기기가 자신이 지원하고 있는 사항을 주기적으로 알리기 위해 발송하는 제공서비스 안내 메시지의 주기를 사용할 수도 있다. 이는, 가입 유효시간이 경과하기 전이라도, 그룹기반으로 가입요청한 이벤트 항목을 지원하는 기기로부터, 그 이벤트 항목이 속하는 서비스 항목을 지원하고 있음을 알리는 제공서비스 안내 메시지가 수신되면, 그 시점에, 해당 이벤트 항목에 대한 그룹기반의 가입요청을 다시 할 수도 있기 때문이다.
따라서, 본 실시예에서, 앞서 결정한 세트에 속하는 하나 이상의 이벤트 그룹에 대한 가입빈도로써 예상이익을 산출할 때, 해당 이벤트 그룹과 관련된 서비스 항목의 지원을 알리는 제공서비스 안내 메시지의 주기를 사용한다.
네트워크 시스템에서 이용하는 모든 서비스 항목들에 대하여, 해당 서비스 항목을 지원하고 있음을 알리는 제공서비스 안내 메시지의 주기가, 전술한 바의 서비스 사양표에 기록되어 있어서, 상기 서비스 처리부(202)가, 이 기록된 주기의 정보를 참조하여 전술한 바와 같이 예상이익을 산출할 수 있다.
다르게는, 상기 서비스 처리부(202)가, 네트워크 시스템 상의 다른 기기들이 전송하는 제공서비스 안내 메시지를 반복하여 수신할 때, 해당 서비스 항목에 대한 제공서비스 안내 메시지의 주기를 파악함으로써, 그 파악된 주기를 이후의 예상이익 산출에 이용할 수 있다. 이와 같은 방식으로 예상이익을 산출할 수 있기 전까지는, 도 5를 참조로 설명한, 매칭비율의 설정된 기준 비율과의 비교에 근거하여 가입할 이벤트 그룹을 결정하고, 이후에는, 즉, 제공서비스 안내 메시지를 수신함으로써, 해당 서비스 항목과 관련하여 가입요청한 이벤트 항목(들)을 재가입하고자 할 때는, 파악된 주기에 근거하여 산출하는 예상이익과 전술한 바와 같이 구하는 예상손실의 비교를 통해 가입할 이벤트 그룹을 결정하게 된다.
또한, 본 실시예에서는, 이벤트 항목에 대한 이벤트 통지빈도에 대해서도, 미리 구비되는 서비스 사양표 또는 이벤트 발생빈도 일람표에 기록된 빈도 정보를 사용하는 대신, 네트워크 시스템의 실제의 동작 중에 발생되는 이벤트들을 실제로 측정하여 사용할 수도 있다.
본 발명에 따른 다른 일 실시예에서는, 가입/발생 빈도 대신 데이터양으로써 예상이익과 예상손실을 산출하여 서로 비교할 수도 있다. 예상이익에 대해서는, 전술한 바와 같이 결정한 세트의 각 이벤트 그룹에 대해, 가입빈도와 가입시에 필요한 메시지의 크기를 곱하여 일정시간당( 예를 들어, 초당 또는 분당 ) 데이터 발생량( 일정시간당의 데이터 발생량에 대해서, 이하에서는, '데이터 발생률'이라 지칭한다. )을 구하고, 그 데이터 발생률을 평균하여 예상이익으로 사용한다. 예상손실에 대해서는, 2차 이벤트 그룹에서 비매칭되는 이벤트 항목에 대한 이벤트 통지빈도에, 해당되는 이벤트를 통지하는 메시지의 크기를 곱하여 데이터 발생률을 구하고, 그 데이터 발생률들을 평균하여 예상손실로 사용하게 된다.
발생된 이벤트를 수신하는 경우에는, 상기 기기(20)의 통신자원이 즉각 점유되어 그 처리가 행해져야 한다. 그리고, 이벤트 가입을 위한 메시지는 다른 정보를 전송하기 위한 메시지들과 함께 전송될 가능성이 높지만, 이벤트 통지의 메시지는 대부분 단독으로 즉시 전송된다. 따라서, 동일한 데이터양의 처리라 하더라도, 이벤트 통지의 경우가 이벤트 그룹에의 가입보다 더 많은 처리능력을 소모하게 한다.
따라서, 이와 같은 처리능력 소모에서의 상대적 차이를, 가입할 이벤트 그룹의 결정에 적용할 수 있다. 에를 들어, 전술한 예상이익과 예상손실의 산출 방법들 중 어느 하나의 방법으로 예상이익과 예상손실을 산출한 후, 각각에 대해 할당한 가중치( 예상손실이 이벤트 발생에 연관되어 있으므로, 예상이익에 비해 예상손실에 더 큰 값의 가중치가 할당된다. )를 곱하여 얻은 양 값을 서로 비교하여, 예상이익 측이 예상손실 측보다 더 크면, 확장된 매칭조합에 대해서 2차 이벤트 그룹을 가입할 그룹으로 결정하고, 그렇지 않으면, 매칭된 조합에 대해서 1차 이벤트 그룹을 가입할 그룹으로 결정하는 것이다.
본 발명에 따른 일 실시예에서는, 최고 매칭비율이 되는 이벤트 그룹이 선택되었을 때, 그 최고 매칭비율이 100%인지를 확인하지 않고, 매칭된 이벤트 항목의 조합에 대해 그 선택된 그룹으로 가입할 수도 있다.
전술한 실시예들은, 가입요청된 이벤트 항목에 대해, 이벤트 그룹의 이벤트 항목의 수, 바람직하게는, 미가입 이벤트 수( 또는 가입요청된 이벤트 항목들의 조합에 대한 비매칭 비율 )가 가능한 최소가 되는 이벤트 그룹의 선택을 추구하는 것들이었다. 본 발명에 따른 다른 실시예에서는, 가입요청된 이벤트 항목을 그룹기반으로 가입함에 따라 감내할 수 밖에 없는, 불필요한 정보에 대하여 자원이나 처리능력이 할당됨으로 인한 손실( 이하에서는, 이 손실을 '부차적 손실'이라 지칭한다. )과 관련하여, 전술한 바와 같이 이벤트 그룹에서의 이벤트 항목들의 수 또는 미가입 이벤트 수로써 부차적 손실을 계량화하여 이용하는 대신, 불필요 이벤트의 통지빈도나 데이터 발생률로써 부차적 손실을 계량화하여 가입할 이벤트 그룹의 결정에 이용할 수 있다.
부차적 손실에 대해서 불필요 이벤트의 통지빈도로 계량화하는 실시예에서는, 가입요청된 이벤트 항목에 대한 후보 그룹(들)에 대하여, 이벤트 항목들 또는 현재 시점의 미가입 이벤트 항목(들)의 각각의 이벤트 발생빈도( 에를 들어, 초당 또는 분당 발생횟수 )를 평균하여 부차적 손실을 구하고, 이렇게 각각의 후보 그룹에 대해 구한 부차적 손실에서 가장 최소값을 나타내는 후보 그룹을 가입할 이벤트 그룹으로 결정하게 된다.
부차적 손실에 대해서 불필요 이벤트의 데이터 발생률로 계량화하는 실시예에서는, 가입요청된 이벤트 항목에 대한 후보 그룹(들)에 대하여, 이벤트 항목들 또는 현재 시점의 미가입 이벤트 항목(들)의 각각의 이벤트 통지빈도에 해당 이벤트 항목의 이벤팅 정보를 수송하는 메시지의 크기를 곱하여 데이터 발생률을 구하고, 그렇게 구해진 데이터 발생률들을 평균하여 부차적 손실을 산출한다. 그리고, 이렇게 각각의 후보 그룹에 대해 산출한 부차적 손실에서 가장 최소값을 나타내는 후보 그룹을 가입할 이벤트 그룹으로 결정하게 된다. 이와 같이 가입할 이벤트 그룹을 결정하게 되면, 이후에 데이터 처리를 초래하게 되는 데이터양이, 다른 이벤트 그룹을 선택하여 가입했을 때보다 상대적으로 줄어든다.
본 발명에 따른 일 실시예에서는, 가입요청된 이벤트 항목들에 대하여 가입할 이벤트 그룹을 결정하는 방법을 자동적으로 변경할 수도 있다. 네트워크 시스템의 기동 시에는, 각 기기의 서비스 에이전트가, 부차적 손실에 대해서 이벤트 그룹 내의 이벤트 항목의 수, 또는 바람직하게는 미가입 이벤트 수를 적용하여 가입할 이벤트 그룹을 결정하여 그에 따라 가입한 후에, 네트워크 시스템의 동작 중에, 각 서비스 에이전트의 상기 서비스 처리부(202)가, 타 기기로부터 통지되는 이벤트들에 대해서 항목별로 카운트하여, 자신이 그룹으로 가입요청하게 된 각 이벤트 항목별로 발생하는 빈도를 파악하여 그 평균을 구하게 되면, 그 시점에 자동적으로, 부차적 손실에 대해서 불필요 이벤트의 통지빈도나 데이터 발생률을 적용하여 가입할 이벤트 그룹을 재결정하여, 가입 유효시간이 경과하여 다시 가입해야 할 때( 또는, 이후에 설명하는, 순환적 제공 지연시간마다 제공서비스 안내 메시지를 수신하여 다시 가입해야 할 때 ), 그 재결정된 이벤트 그룹들을 가입 시에 적용하게 된다.
지금까지 설명한 실시에들에서는, 응용 프로그램들로부터 가입요청된 이벤트 항목들에 대하여 가입할 이벤트 그룹을 결정함에 있어서, 자신이 필요로 하지 않는 이벤트 항목의 수가 최대한 적도록, 또는 그러한 이벤트의 통지 횟수나 통지 데이터양이 최대한 적어지도록 이벤트 그룹을 결정하였다. 본 발명에 따른 다른 일 실시예에서는, 가입요청받은 이벤트 항목에 대해서, 반복해야 하는 가입을 가능한 긴 간격으로 할 수 있는 이벤트 그룹을 가입할 그룹으로 결정할 수 있다. 도 7은, 본 실시예에 따른, 이벤트 그룹에 대한 가입빈도에 근거하여 가입할 이벤트 그룹의 결정방법을 도식적으로 나타낸 것이다.
본 실시예에서는, 상기 서비스 처리부(202)가, 가입요청된 이벤트 항목(70)의 식별자를, 상기 그룹핑 맵(210)에서 찾고(P71). 이 검색(P71)에서 식별자가 일치하는 이벤트가 속한 하나 이상의 후보 그룹이 찾아지면, 그 하나 이상의 후보 그룹에 대해 각기 지정되어 있는, 전술한 바의 가입 유효시간(710)을 확인하여, 가장 긴 시간의 이벤트 그룹을 결정한다(S72). 이렇게 결정하면, 가입빈도가 상대적으로 낮아진다. 즉, 이후에 초래되는, 이벤트 항목과 관련한 가입을 위한 처리의 횟수가, 다른 이벤트 그룹을 결정했을 때보다 상대적으로 줄어들게 된다.
이렇게 하나의 이벤트 그룹이 결정되면, 상기 서비스 처리부(202)는, 가입요청된 이벤트 항목를 지원하고 있는 노드를 상기 외부 서비스 현황정보로부터 확인한 후, 그 이벤트 그룹을 식별케 하는 그룹 식별자(EGO)를 포함시킨 그룹기반의 가입요청 메시지를 구성하여, 상기 확인된 지원 노드에 대한 주소를 지정하면서 상기 메시지 핸들러(203)에 전송함으로써, 해당 노드에 이벤트 그룹으로의 가입을 요청한다(S73).
본 발명을 구체적으로 적용하여 네트워크 시스템을 구축함에 있어서, 하나의 이벤트 그룹에 복수개의 가입 유효시간이 지정될 수 있다. 이는, 해당 이벤트 그룹의 이벤트 항목들을 지원하는, 실행개체가 복수개 생성되어 동작할 수 있고, 이들이 해당 이벤트 항목들에 대한 지원의 유효시간이 서로 다를 수 있기 때문이다. 이러한 경우에 가입할 대상 실행개체를 결정하는 방법에 대해서는 후술한다. 상기 서비스 처리부(202)는, 후보 그룹들 중 하나 이상에 대해 복수개의 가입 유효시간이 지정되어 있으면, 그들에 대해서는 가장 긴 시간의 가입 유효시간을 선택하여, 후보 그룹들 간에 비교하여 가입할 이벤트 그룹을 결정하게 된다. 이는, 이후에 설명하는 실시예에 따라, 가장 긴 가입 유효시간을 지정하여 제공서비스 안내 메시지를 전송하는 실행개체를 대상으로 해당 이벤트 그룹에 대해 가입할 것을 전제함에 따른 것이다.
본 발명에 따른 다른 일 실시예에서는, 도 4에 예시된 흐름도를 참조하여 설명한 가입할 이벤트 그룹의 결정방법이, 응용 프로그램들이 가입요청하는 이벤트 항목에 대해서 기 지정된 일정 시간동안 취합된 이벤트 항목들에 대해서 수행되는 대신, 가입할 응용 프로그램들로부터 더 이상의 가입요청 이벤트 항목이 없을 때 수행될 수도 있다. 본 실시예에서는, 상기 서비스 처리부(202)가, 1차적으로는, 임의의 응용 프로그램으로부터의 이벤트 항목에 대한 가입요청이 있을 때마다, 도 3a를 참조로 설명한 방법에 따라, 그 요청에 즉시 대응하여 가입할 이벤트 그룹을 결정하여 그 결정된 그룹으로써 이벤트 가입을 한다.
그리고, 임의의 이벤트 항목에 대한 가입요청을 수신한 시점부터 기 지정된 확인 시간격( 이 시간격은, 앞서 가입요청 이벤트 항목들을 취합하기 위해 대기하는 시간보다 훨씬 긴 시간일 수 있다. ) 동안, 임의의 응용 프로그램으로부터의 어떠한 이벤트 항목에 대한 가입요청도 없으면, 응용 프로그램들로부터의 이벤트 항목에 대한 가입요청은 더 이상 없는 것으로 판단하고, 이 시점에, 가입요청에 대해서 순차적으로 즉시 대응하여 개별적으로 그룹기반으로 가입한 이벤트 항목들, 즉 앞선 가입요청에 따라 전술한 바의 통보요구 이벤트 목록에 등재된 이벤트 항목들 전부에 대해서, 도 4에 예시된 방법에 따라, 가입할 이벤트 그룹들을 다시 결정한다.
이와 같은 재결정에 의해, 앞서 이벤트 항목들에 대해 개별적으로 대응하여 결정한 이벤트 그룹과의 차이가 있으면, 상기 서비스 처리부(202)는, 그 차이에 따른 이벤트 그룹의 정정 가입절차를 2차적으로 수행한다. 이 정정 가입절차에는, 상기 재결정에서 새로이 추가된 이벤트 그룹에 대해서는 전술한 바와 동일하게 해당 이벤트 그룹을 지정하여 가입요청하는 메시지를 상기 메시지 핸들러(203)를 통해 전송하는 동작과, 상기 재결정에서는 제외된 앞서 결정된 이벤트 그룹에 대해서는, 그 이벤트 그룹을 지정하면서 해당 이벤트 그룹에의 가입의 중지를 요청하는 메시지를, 앞서 가입요청의 대상 노드로 전송하는 동작이 포함된다.
본 발명에 따른 일 실시예에서는, 이벤트 항목에 대한 더 이상의 가입요청이 없다고 판단될 때, 도 4에 예시된 흐름도에 따른 이벤트 그룹에 대한 재결정을 선택적으로 수행할 수도 있다. 예를 들어, 앞서 개별적으로 이벤트 그룹을 결정하여 그룹기반으로 가입하게 된 이벤트 항목들의 수, 즉 상기 통보요구 이벤트 목록에 등재한 이벤트 항목들 수가 기 지정된 하한치 미만이면, 상기 서비스 처리부(202)는, 이벤트 그룹의 재결정을 수행하지 않고, 상기 하한치 이상일 때만 재결정을 수행할 수 있다.
지금까지 설명한 실시예들은, 이벤트 그룹이 결정되어 해당 이벤트 그룹으로써 가입할 때, 해당 이벤트 그룹에 대해 가입할 수 있는 대상 실행개체가 단일인 것을 전제한 것이다. 즉, 해당 이벤트 그룹이 속하는 서비스 항목을 지원하는 실행개체가 네트워크 시스템 상의 임의 기기에서 유일함을 전제한 것이다. 이런 전제하에서는, 전술한 실시예들에서와 같이, 이벤트 그룹이 결정되면, 그 이벤트 그룹에 대해 대응할 수 있는 서비스 항목을 지원하고 있음을 알리는 제공서비스 안내 메시지를 전송한 실행개체가 자연히 특정되므로, 그 실행개체가 동작하고 있는 기기로 전송하게 된다.
그런데, 본 발명에 따른 다른 실시예에서는, 임의의 한 서비스 항목을 지원하는 실행개체가 하나의 기기에서 다수개 생성되어 동작할 수도 있다. 이렇게 동일한 서비스 항목을 지원하는 실행개체들이 다수개 생성되는 실시예에서는, 이들에 대해서 개별적으로 '서비스 인스턴스(instance)'라 지칭하며, 모두 동일한 서비스 항목을 지원하고 있기 때문에, 인스턴스 식별자가 부여되어 이들이 서로 구분되어 특정될 수 있다.
이와 같이, 동일한 서비스 항목에 대해 지원하는 서비스 인스턴스들이 복수개 있는 경우에는, 그 서비스 인스턴스들이, 지원하는 서비스 항목을 알리는 제공서비스 안내 메시지를 발송하는 주기에 있어 서로 다를 수 있다. 이 주기가 다르면, 해당 서비스 항목에 대한 그룹기반의 가입을 반복하는 주기도 달라진다. 이에 대해서는 후술한다.
따라서, 본 발명에 따른 일 실시예에서는, 전술한 바와 같이 결정된 이벤트 그룹에 대해서 가입하고자 할 때, 그 가입 대상인 서비스 인스턴스가 다수개 있을 때, 그 서비스 인스턴스가 발송하는 제공서비스 안내 메시지의 주기에 근거하여 가입할 대상을 결정하게 된다. 도 8은, 본 실시예에 따른, 가입할 대상의 서비스 인스턴스를 결정하는 방법을 도식적으로 나타낸 것이다.
본 실시예에서는, 상기 서비스 처리부(202)가, 가입요청된 이벤트 항목(80)에 대해서, 전술한 실시예들 중 어느 하나의 실시예에 따라 가입할 이벤트 그룹을 결정하고(P81). 그 결정된 이벤트 그룹에 속하는 이벤트 항목들을 지원하는 서비스 인스턴스들들의 블록(block)을 지정한다(P82).
서비스 인스턴스들의 지원 서비스 항목에 대한 정보는, 네트워크 시스템 상의 각 기기로부터 수신되는 제공서비스 안내 메시지로부터 파악한다. 이 제공서비스 안내 메시지에는, 제공되는 서비스 항목, 해당 서비스 항목을 지원하는 서비스 인스턴스 식별자(ID), 그리고 서비스 제공의 가입 유효시간 등이 포함되어 있으므로, 이러한 제공서비스 안내 메시지가 상기 메시지 핸들러(203)를 통해 수신될 때마다, 상기 서비스 처리부(202)는, 동일한 서비스 항목을 지원하는 서비스 인스턴스들끼리 블록화로 구분하여 해당 서비스 항목의 식별자( 이하, '서비스 식별자'라 약칭한다. )를 부가하는 방식으로 서비스 인스턴스 블록맵(800)을 구성하거나 관련 정보를 기록 또는 갱신해 둔다. 여기서, 기록 또는 갱신되는 관련 정보에는, 동일한 서비스 인스턴스가 반복하여 발송하는 제공서비스 안내 메시지들의 수신 시점으로부터 파악하는 메시지 간의 시간차, 즉 전술한 바의 주기의 정보가 포함된다. 이 시간차는, 해당 서비스 인스턴스가, 서비스 항목을 지원하고 있음과 자신이 정상동작 중임을 순환적으로 알리는 데 있어서 지연되는 시간에 해당하므로 순환적 제공 지연( COD: Cyclic Offer Delay ) 시간이라 지칭할 수 있다.
한편 상기 서비스 인스턴스 블록맵(800)은, 전술한 바의 외부 서비스 현황정보에 일부분으로서 포함되어 관리될 수 있다.
상기 서비스 처리부(202)는, 인스턴스 블록맵(800)에서 서비스 인스턴스 블록(810)을 지정하고 나면, 그 지정된 블록(810)에 속하는 각각의 서비스 인스턴스의 순환적 제공 지연시간을 확인하여, 가장 긴 시간의 서비스 인스턴스를 결정한다(P83).
이렇게 하나의 서비스 인스턴스가 결정되면, 상기 서비스 처리부(202)는, 가입요청된 이벤트 항목를 지원하고 있는 노드를 상기 외부 서비스 현황정보로부터 확인한 후, 이미 결정된 이벤트 그룹을 식별케 하는 그룹 식별자에 더하여, 여기서 결정한 서비스 인스턴스 식별자(IIx3)를 포함시킨 그룹기반의 가입요청 메시지를 구성하여, 상기 확인된 지원 노드에 대한 주소를 지정하면서 상기 메시지 핸들러(203)에 전송함으로써, 해당 노드에 그룹기반의 가입을 요청한다(P84).
본 실시예에서와 같이, 순환적 제공 지연시간이 가장 긴 서비스 인스턴스를 대상으로 하여 이벤트 그룹을 가입하게 되면, 일정 시간당 반복하여 이벤트 그룹에 가입하게 되는 횟수가 다른 서비스 인스턴스에 가입했을 때보다 상대적으로 줄어들게 된다.
응용 프로그램들로부터 요청된 이벤트 가입이 해제되지 않는 한, 그 이벤트의 발생을 지속적으로 알릴 수 있도록 하기 위해, 상기 서비스 처리부(202)는, 타 기기에서 생성된 서비스 인스턴스가 자신이 지정한 가입 유효시간이 경과하기 전에, 기 설정된 순환적 제공 지연시간에 맞춰 제공서비스 안내 메시지를 다시 전송할 때, 그 안내 메시지에 대응하여 해당 서비스 인스턴스를 대상으로 앞서 가입하였던 동일한 이벤트 그룹으로 재가입하기 때문에, 순환적 제공 지연시간이 상대적으로 길게 설정된 서비스 인스턴스에 가입할수록, 그만큼 더 재가입하는 횟수가 줄어들게 되는 것이다. 이와 같은 가입할 대상 서비스 인스턴스의 결정방법은, 트래픽 발생이나 기기의 자원사용의 측면에서 볼 때 이익이 된다.
지금까지는, 이벤트 항목을 가입요청하는 노드의 입장에서, 자신의 자원이나 처리능력이 가능한 불필요하게 사용되지 않게 하는 것을 우선시 하는 본 발명에 따른 실시예들에 대해 설명하였다. 본 발명에 따른 다른 실시예에서는, 가입요청된 이벤트 항목에 대해서 이벤팅 정보를 제공하는 노드의 입장에서 효율적인 통지가 되도록 가입하는 측에서 이벤트 그룹을 결정하여 가입요청할 수도 있다. 도 9는, 이러한 실시예의 한가지를 구체적으로 보여주는 도면이다.
도 9에 도식적으로 그 방법이 예시된 실시예에서는, 임의의 응용 프로그램으로부터 가입요청된 이벤트 항목(90)에 대해서, 상기 서비스 처리부(202)가, 상기 그룹핑 맵(210)을 검색하여(P91), 그 이벤트 항목을 위해 가입할 수 있는 후보 그룹들을 선정한다(P92).
그리고, 그 선정한 후보 그룹들에 속하는 각각의 이벤트 그룹에 대해서, 그 이벤트 그룹에 대해 지정되어 있는 멀티캐스트 주소를 각각 읽어서, 상기 이벤트 항목(90)의 가입요청에 앞선 가입요청에 의해 이미 가입한 적이 있는 이벤트 그룹들에 각기 지정되어 있는 멀티캐스트 주소들과 비교하여 동일한 것이 있는지를 확인한다(P93).
이벤트 그룹에 대한 멀티캐스트 주소는, 각 이벤트 그룹마다 미리 할당되어 상기 그룹핑 맵(210)에 기록되어 있을 수 있다.
다르게는, 그룹기반의 이벤트 가입요청에 대해서, 그 요청을 수신한 노드가 가입이 되었음을 알리는 가입응답 메시지에 포함시켜 알려 주는 멀티캐스트 주소를, 해당 이벤트 그룹에 대해 기록함으로써, 이후에 그 기록된 주소정보를 이용할 수도 있다. 물론, 이와 같은 경우에는, 상기 그룹핑 맵(210) 상의 이벤트 그룹들에 대하여 부분적으로 멀티캐스트 주소가 지정되게 되므로, 가입요청된 이벤트 항목들에 대해서 가입 유효시간에 따라 재가입할 때, 또는 제공서비스 안내 메시지의 수신에 대응하여 재가입할 때, 멀티캐스트 주소가 지정된 이벤트 그룹들에 대해서만 도 9에 따른 실시예를 적용하게 된다.
상기 서비스 처리부(202)는, 선정된 후보 그룹들에, 앞서 가입요청한 이벤트 그룹(910,920)에 지정된 멀티캐스트 주소와 동일한 주소가 지정된 이벤트 그룹이 있다면, 그 이벤트 그룹을 가입할 이벤트 그룹으로 결정한다(P94). 만약, 없으면, 전술한 바의 실시예들 중 어느 하나의 실시예에 따라 가입할 이벤트 그룹을 결정하게 된다.
이와 같이, 이미 가입한 이벤트 그룹과 멀티캐스트 주소가 동일한 이벤트 그룹으로 가입하게 되면, 이후에 관련된 이벤트 항목에 대한 이벤트의 발생 시, 그 이벤트를 지원하는 노드가 이벤팅 정보를 통지하는 횟수가 줄어들 수 있다.
임의의 노드에서 실행되는 서비스 에이전트는, 자신의 노드가 가입 대상이 되는 이벤트 그룹에 대해서 가입한 수가 기 지정된 기준 이상이 되면, 그 그룹에 속하는 이벤트 항목들의 이벤팅 정보를 전송하는 방식을 유니캐스트(unicast)에서 멀티캐스트로 전환한다. 이는, 이벤트 발생 통지의 효율성을 위함이다. 따라서, 가입하는 임의의 이벤트 그룹은, 멀티캐스트 방식으로 그 이벤트가 통지될 가능성이 항상 있다.
이와 같이 이벤팅 정보가 멀티캐스트 방식으로 통지된다면, 동일한 멀티캐스트 주소의 이벤트 그룹을 선택하여 가입한 효과가 나타난다. 도 9를 예로 하여 좀 더 구체적으로 설명하면, 가입요청된 이벤트 항목 e4에 대해서, 이미 가입된 이벤트 그룹 EGB와 지정된 멀티캐스트 주소(MCAd1)가 동일한 이벤트 그룹 EGA로 가입하게 되면, 이후에 이벤트 항목 e3에 대한 이벤트가 발생하였을 때, 그 이벤트의 처리를 담당하는 노드는, MCAd1을 주소로 하는 한번의 멀티캐스트 통지만 하면 된다. 이에 반해, 가입요청된 이벤트 항목 e4에 대해서, 이미 가입된 이벤트 그룹 EGB와 지정된 멀티캐스트 주소가 다른 이벤트 그룹 EGC로 가입하게 되면, 동일한 상황에서, MCAd1을 주소로 하는 멀티캐스트 통지와 MCAd2를 주소로 하는 멀티캐스트 통지를 각각 해야 한다.
따라서, 전술한 바와 같이, 가입요청된 이벤트 항목에 대해 선정한 후보 그룹들에, 이미 가입된 이벤트 그룹과 동일한 멀티캐스트 주소가 지정된 이벤트 그룹이 있다면, 그 이벤트 그룹으로 가입하는 것이 유리하다. 다만, 이와 같은 이벤트 그룹의 결정은, 다른 조건이 동일할 때에 한해 적용될 수 있다. 예를 들어, 도 9의 예에서와 같이, 이벤트 항목 e4에 대해 가입요청되었을 때, 아직 가입된 적이 없는 이벤트 그룹 EGA와 EGC 중 어느 것을 선택하더라도 이벤트 항목 수 또는 미가입된 이벤트 수가 동일하므로, 이와 같은 경우에, 멀티캐스트 주소의 동일성 여부를 이벤트 그룹 결정의 근거로 사용할 수 있다.
만약, 이벤트 그룹 EGA가 이벤트 항목 e6를 더 포함함으로써 {e3,e4,e5,e6}로 구성된 경우라면, 이벤트 그룹 EGC와는 이벤트 항목 수 또는 미가입 이벤트 수의 조건에서 달라지게 된다. 이런 경우에는, 이미 가입된 이벤트 그룹 EGB와 EGA가 멀티캐스트 주소가 동일함에도 불구하고, 이벤트 항목 수 또는 미가입 이벤트 수가 더 적은 이벤트 그룹 EGC를 가입할 그룹으로 결정할 수 있다.
이벤트를 지원하는 노드가 이벤팅 정보를 통지하는 횟수가 줄도록 이벤트 그룹을 결정하는 본 발명에 따른 다른 실시예에서는, 후보 그룹들에서, 가입한 수에 무관하게 처음부터 멀티캐스트로 통지하는 것이 지정되어 있는 그룹이 있으면 그 후보 그룹을 가입할 이벤트 그룹으로 결정할 수 있다. 물론, 이러한 통지방식이 이루진다는 것에 대해서는, 상기 그룹핑 맵(210)의 해당 이벤트 그룹에 대해 미리 지정되어 있음을 전제한다. 그리고, 항상 멀티캐스트로 통지하도록 지정된 이벤트 그룹인지를 가입할 이벤트 그룹의 결정에 반영하는 것은, 전술한 바의 다른 조건이 동일할 때일 수 있다.
본 발명에 따른 다른 일 실시예에서는, 동일 조건이 아니어도 멀티캐스트 주소의 동일성 여부, 또는 항상 멀티캐스트 통지의 여부를 가입할 이벤트 그룹 결정에 근거로 사용할 수도 있다. 예를 들어, 이벤트 발생을 통지받는 노드의 처리부담보다 이벤트 발생을 통지하는 노드의 처리부담의 경감에 더 중점을 두는 경우라면, 이미 가입된 이벤트 그룹과 멀티캐스트 주소가 동일할 때, 또는 항상 멀티캐스트로 통지하는 그룹일 때에 이익 환산치로서 1을( 멀티캐스트 주소가 동일하지 않거나, 항상 멀티캐스트로 통지하는 그룹이 아닐 때는 이익 환산치로서 0을 ) 부여하고, 이벤트 그룹 내의 미가입 이벤트 항목당 손실 환산치로서 =0.5를 부여한 후, 산출된 총 손실 환산치와 이익 환산치를 가산하여 얻어진 값이 가장 큰 이벤트 그룹을 후보 그룹들에서 선택하여 가입할 그룹으로 결정할 수 있다.
이와 같은 구체적 수치의 예에 따르면, 앞서 가입된 이벤트 그룹과 멀티캐스트 주소가 같거나, 또는 속하는 이벤트 항목에 대해서 항상 멀티캐스트로 통지하는 것으로 정해진 이벤트 그룹은, 미가입 이벤트 수에서 2개가 더 적은 이벤트 그룹과 서로 동일한 조건이 된다. 따라서, 가입된 이벤트 그룹과 멀티캐스트 주소가 동일하지 않거나, 유니캐스트로 통지하는( 유니캐스트로 통지하다가 가입한 수가 일정 이상이 되면 멀티캐스트로 통지방식이 전환되는 ) 이벤트 그룹이, 설령 미가입 이벤트 수에서 1개가 더 적어도( 필요로 하지 않음에도 통지될 이벤트 항목이 1개 더 적어도 ), 그 이벤트 그룹이 아닌, 멀티캐스트 주소가 동일한 또는 항상 멀티캐스트로 통지되는 이벤트 그룹을 가입할 그룹으로 결정하게 된다.
위에 예로서 제시한 이익 환산치와 손실 환산치의 수치는, 미가입 이벤트 수에 있어서 동일한 조건이 아님에도, 멀티캐스트 주소의 동일성 여부 또는 항상 멀티캐스트 방식으로의 통지 여부가 이벤트 그룹의 결정에 반영될 수 있다는 것을 보여주기 위한 단순한 예일 뿐이며, 적용하는 네트워크 시스템에 맞게 필요에 따라 적절한 수치를 정함으로써, 멀티캐스트 주소의 동일성과 항상 멀티캐스트 방식으로의 통지에 대하여 어느 정도의 중점을 둘 것인지를 반영할 수 있다.
또한, 멀티캐스트 주소의 기 가입 그룹과의 동일성 여부와 항상 멀티캐스트 방식으로의 통지 여부는, 전술한 방법과 동일하게, 도 7을 참조로 설명한 가입 유효시간과 함께 고려되어 이벤트 그룹의 결정에 사용될 수 있다. 즉, 이익 환산치는 전술한 바와 동일하게 부여하고, 가입 유효시간의 길이에 대해서는, 기 지정된 일정 시간당 -0.5의 손실 환산치를, 또는 후보 그룹들 중에서 가장 긴 가입 유효시간을 기준으로 하여 10%의 시간당 -0.5의 손실 환산치를 부여함으로써, 총 손실 환산치와 이익 환산치의 합이 최대인 이벤트 그룹을 후보 그룹들에서 선택할 수 있다.
본 발명에 따른 또 다른 일 실시예에서는, 현재 가입해야 할 이벤트 항목에 대해 정한 후보 그룹들에서, 미가입 이벤트 수, 불필요한( 즉, 미가입 이벤트 항목에 대한 ) 이벤트의 통지빈도나 데이터 발생률, 이벤트 그룹 대한 가입빈도, 이미 가입한 이벤트 그룹의 멀티캐스트 주소와의 동일 주소 여부, 그리고 항상 멀티캐스트 방식으로의 통지 여부를 모두 함께 반영하여 가입할 이베트 그룹을 결정할 수도 있다. 본 실시예에서는, 각각의 반영 요소에 대해 그 적합성을 나타내는 점수, 즉 적합도를 구하고, 그 적합도에 각 반영 요소에 할당한 가중치를 곱하여 얻은 총 점수가 가장 큰 값이 되는 이벤트 그룹을 가입할 그룹으로 결정할 수 있다.
본 실시예에 대해 보다 구체적으로 설명하면, 미가입 이벤트 수의 반영 요소에 대해서는 식 [1]에 의해 점수 PtN_NSub를 산출하고, 불필요한 이벤트의 통지빈도나 데이터 발생률에 대해서는 식 [2]에 의해 점수 Ptf_NSub를 산출하며, 가입 유효시간의 반영 요소에 대해서는, 식 [2]에 따라 점수 PtsTTL을 산출한다.
PtN _ NSub =1 - 0.1×NNS ( NNS는 미가입 이벤트 수 ) 식 [1]
Ptf _ NSub =1 - 0.1×[mFoRNS / RFoR] 식 [2]
( mFoRNS는 불필요한 이벤트 항목들에 대한 이벤트 통지빈도 또는 데이터 발생률의 평균값이고, RFoR은 기 지정된 기준치이며, [x]는 x를 넘지 않는 최대 정수를 나타내는 함수이다. )
PtsTTL= 1 - 0.1×[ (sTTLMAX -sTTLCUR) / (0.05·sTTLMAX) 식 [3]
( sTTLCUR은 현재 이벤트 그룹에 대해 지정된 가입 유효시간이고, sTTLMAX는 선정된 후보군내에서 가장 긴 시간의 가입 유효시간을 나타낸다. )
그리고, 멀티캐스트 주소의 동일성 여부 또는 항상 멀티캐스트 방식으로의 통지 여부의 반영 요소에 대해서는, 멀티캐스트 주소가 동일하거나, 또는 항상 멀티캐스트 방식으로 통지하는 그룹일 때 1을, 그렇지 않을 때는 0을 점수 PtMAddr로 할당한다. 후자에 대해서, 전자보다 더 높은 점수를 할당할 수도 있다.
그리고, 이렇게 각 반영 요소에 구한 점수들에 대해서, 각 반영 요소에 대해 기 할당된 가중치 αN _ NSub, αf _ NSub, αsTTL, αMAddr를 각각 곱하여 가중 평균치 Pt_m( =αN_NSub·PtN_NSub + αf _ NSub·Ptf _ NSubsTTL·PtsTTL + αMAddr·PtMAddr )을 구하고, 모든 후보 그룹들에 대해서 가중 평균치의 최종 적합도가 구해지면 그 중 가장 큰 최종 적합도 Pt_mMAX가 얻어진 후보 그룹을, 가입요청된 이벤트 항목에 대해 가입할 이벤트 그룹으로 결정하게 된다.
전술한, 복수의 요소들을 반영하여 통합적으로 이벤트 그룹을 결정하는 방법에서, 미가입 이벤트 수의 요소와 불필요한 이벤트의 통지빈도나 데이터 발생률의 요소는 둘 중 어느 하나만이 선택되어 이벤트 그룹 결정에 반영될 수도 있다.
본 발명에 따른 일 실시예에서는, 상기 가중치들 αN_NSub, αf_NSub, αsTTL 및 αMAddr에 대해서 그 값을 변경하여, 이벤트 항목에 대해 가입 유효시간이 경과하는 시점에, 또는 해당 이벤트 항목을 포함하는 서비스 항목에 대한 제공서비스 안내 메시지가 수신된 시점에 재가입하게 될 때 이벤트 그룹을 다시 결정하는데 적용할 수도 있다.
예를 들어, 상기 기기(20)의 초기에는, 상기 서비스 처리부(202)가, 불필요한 이벤트의 통지빈도나 데이터 발생률의 요소에 의한 적합도에 작용하는 가중치 αf_NSub에 대해 낮은 값을 부여하였다가, 네트워크 시스템이 어느 정도 동작하게 되면, 예를 들어, 응용 프로그램들로부터 가입요청된 이벤트 항목들의 일정 비율 이상에 대해 이벤트 발생 통지가 있게 되면, 가중치 αf_NSub에 대해 높은 값으로 변경할 수 있다. 또는, 네트워크 시스템의 동작 중에 이벤트의 통지빈도가 기 지정된 기준치 이하를 유지하게 되면, 이벤트 그룹에 대한 가입빈도에 의한 적합도에 작용하는 가중치 αsTTL에 대해 보다 높은 값으로 변경할 수도 있다.
이벤트 그룹의 결정에 반영할 요소들에 적용되는 상기 가중치들에 대한 변경은 상기 기기(20)의 외부에서 지정될 수도 있다. 본 실시예에서는, 각 노드의 서비스 처리부가, 네트워크를 통해 기 지정된 기기( 예를 들어, 네트워크 시스템 상의 기기들에 각기 실행되는 서비스 에이전트 중 마스터 에이전트로 지정된 특정 서비스 에이전트가 실행되고 있는 기기 )나 장치에 주기적으로 액세스하여 변경할 가중치 정보를 획득할 수 있고, 다르게는, 그 기기나 장치로부터 주기적으로 또는 임의적으로 전송되는 각 노드의 서비스 에이전트를 대상으로 하는 제어용 메시지로부터 변경할 가중치 정보를 획득할 수도 있다.
또한, 전술한 실시예들 중 어떤 실시예를 가입할 이벤트 그룹의 결정방법으로 사용할 지도, 다른 기기나 장치로부터 네트워크를 통해 전송되는 제어용 메시지의 명령에 의해서 동적으로 지정될 수 있다. 다르게는, 상기 서비스 처리부(202)가, 기기(20)의 동작 중에, 현재의 동작 조건이나 이벤트 발생의 상황 등에 근거하여 자동적으로 선택하여 적용할 수도 있다. 예를 들어, 초기에는, 이벤트 그룹의 이벤트 항목들의 수( 또는 미가입 이벤트 수 )에 근거하여 이벤트 그룹을 결정하는 방식을 적용하고, 네트워크 시스템의 동작 중에 파악되는, 타 기기들에서 발생되어 자신에게 통지되는 이벤트 통지의 빈도가 기 지정된 기준치 이하이면, 이벤트 그룹을 결정하는 방식을, 이벤트 그룹에 대한 가입빈도에 근거하는 방식으로 변경할 수도 있다. 만약, 타 기기들에서 발생되어 자신에게 이벤팅되는 빈도가 기 지정된 상한치 이상이면, 이벤트 그룹을 결정하는 방식을, 미가입 이벤트 항목에 대한 이벤트 통지빈도나 데이터 발생률의 평균치에 근거하는 방식으로 변경할 수도 있다.
전술한 본 발명에 따른 실시예들에서는, 가입할 이벤트 그룹을 결정하게 되는 이벤트 항목들이, 해당 기기에서 실행되는 응용 프로그램들로부터 가입요청된 것이었다. 하지만, 본 발명에 따른 다른 실시예에서는, 동일 기기에서 실행되는 응용 프로그램들로부터 이벤트 항목에 대한 가입요청이 없어도, 이벤트 그룹을 결정하여 타 노드에 그 결정된 이벤트 그룹에 대한 가압을 요청할 수도 있다. 본 실시예에서는, 각 서비스 에이전트별로 타 노드에 가입해야 할 이벤트 항목들에 대한 목록이 미리 설정되거나, 또는 기 지정된 다른 기기로부터 제공받을 수도 있다. 이와 같이, 타 노드에 대해 가입해야 할 이벤트 항목들이 목록으로 주어져 있으면, 상기 서비스 처리부(202)는 그 목록에서 확인되는 이벤트 항목들에 대해, 전술한 실시예들 중 하나 또는 그 이상이 결합된 방법을 적용하여 가입할 이벤트 그룹을 결정하게 된다.
지금까지 구체적으로 설명한, 본 발명에 따른 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 장치에 대한 다양한 실시예들과, 그 실시예에서 설명된 구성 및 작용 등은 서로 양립할 수 없는 경우가 아니라면, 상호 다양한 방식으로 선택적으로 결합되어 실시 가능하다.
이상, 전술한 본 발명의 실시예들은, 예시의 목적을 위해 개시된 것으로, 당업자라면, 이하 첨부된 청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 또 다른 다양한 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.
1,2: 서비스 기반으로 동작하는 기기 1a,2a,10i: 응용 프로그램
20: 기기 200: 서비스 에이전트
201: 서비스 인터페이스부 202: 서비스 처리부
203: 메시지 핸들러 204: 로컬 상태 핸들러
210: 이벤트 항목들의 그룹핑 맵 220: 상태 데이터베이스

Claims (30)

  1. 네트워크를 통해 연결된 기기들과 필요한 정보를 이벤트를 통해 주고받을 수 있는 기기에 있어서,
    상기 네트워크에 연결된 기기들이 필요한 정보를 통지받기 위해 이용할 수 있도록 지정된 이벤트 항목들을, 적어도 하나의 이벤트 항목은 서로 다른 이벤트 그룹에 중복하여 속하도록 복수개의 이벤트 그룹들에 매핑(mapping)하고 있는 이벤트 그룹핑 맵과,
    이벤트를 통지받기 위해 타 기기에 가입해야 할 하나 이상의 이벤트 항목에 대하여, 상기 이벤트 그룹핑 맵을 검색하여 상기 하나 이상의 이벤트 항목을 포함하고 있는 이벤트 그룹을 찾고, 그 찾은 이벤트 그룹이 2개 이상일 때는, 이후의 이벤트 항목과 관련된 처리 횟수 또는 처리량을 상대적으로 덜 초래하게 되는 하나의 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정하며, 그 선정된 이벤트 그룹에 대한 가입을 요청하는 메시지를 구성하기 위한 서비스 처리부와,
    상기 구성된 메시지를 기 지정된 포맷에 따라 상기 네트워크를 통해, 상기 하나 이상의 이벤트 항목을 지원하는 특정 기기로 전송하도록 구성된 메시지 처리부를 포함하여 구성된 기기.
  2. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 속하는 이벤트 항목들의 수가 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성된 것인 기기.
  3. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 현재 가입요청된 적이 없는 이벤트 항목의 수가 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성된 것인 기기.
  4. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 상기 하나 이상의 이벤트 항목과 일치하는 이벤트 항목의 수의 비율을 나타내는 매칭(matching) 비율이 가장 높은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성된 것이되,
    상기 매칭 비율은, 이벤트 그룹에 속하는 이벤트 항목들의 수, 또는 그 이벤트 그룹에서 현재 가입요청된 적이 없는 이벤트 항목의 수에 대한 상기 하나 이상의 이벤트 항목과 일치하는 수의 비율인 것인 기기.
  5. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에, 상기 하나 이상의 이벤트 항목과 일치하는 이벤트 항목의 수의 비율을 나타내는 매칭 비율이 100%인 완전정합된(fully-matched) 이벤트 그룹이 있는 경우에, 상기 2개 이상의 이벤트 그룹들에서 상기 완전정합된 이벤트 그룹을 배제한 그룹들 중 상기 매칭 비율이 가장 높은 차위(次位)의 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정할 수 있도록 구성되되,
    상기 매칭 비율은, 이벤트 그룹에 속하는 이벤트 항목들의 수, 또는 그 이벤트 그룹에서 현재 가입요청된 적이 없는 이벤트 항목의 수에 대한 상기 하나 이상의 이벤트 항목과 일치하는 수의 비율인 것인 기기.
  6. 제 5항에 있어서,
    상기 서비스 처리부는, 상기 차위의 이벤트 그룹의 상기 매칭 비율이 기 설정된 기준치 이상일 때에 한하여 상기 차위의 이벤트 그룹을 선정하도록 구성된 것인 기기.
  7. 제 5항에 있어서,
    상기 서비스 처리부는, 상기 차위의 이벤트 그룹이 상기 완전정합된 이벤트 그룹에 비해 상기 하나 이상의 이벤트 항목과 더 일치하는 하나 이상의 추가 매칭 이벤트 항목에 대한 가입을 위해 필요한 제 1처리가, 상기 차위의 이벤트 그룹에서 상기 하나 이상의 이벤트 항목과 매칭되지 않는 하나 이상의 비매칭 이벤트 항목에 대한 이벤트 통지에 따른 제 2처리보다 횟수나 데이터양을 더 요구하는 경우일 때에 한하여 상기 차위의 이벤트 그룹을 선정하도록 구성된 것인 기기.
  8. 제 7항에 있어서,
    상기 서비스 처리부는, 상기 제 1처리에서 상기 하나 이상의 추가 매칭 이벤트 항목에 대해 가입해야 할 이벤트 그룹의 수가, 상기 하나 이상의 비매칭 이벤트 항목의 수보다 클 때, 상기 차위의 이벤트 그룹을 선정하도록 구성된 것인 기기.
  9. 제 7항에 있어서,
    상기 서비스 처리부는, 상기 제 1처리에서 상기 하나 이상의 추가 매칭 이벤트 항목에 대해 가입해야 하는 하나 이상의 이벤트 그룹에 대해 이후에 반복하여 행하게 될 가입의 평균적인 빈도가, 상기 하나 이상의 비매칭 이벤트 항목에 대해 발생될 이벤트의 평균적인 빈도보다 클 때, 상기 차위의 이벤트 그룹을 선정하도록 구성된 것인 기기.
  10. 제 7항에 있어서,
    상기 서비스 처리부는, 상기 제 1처리에서 상기 하나 이상의 추가 매칭 이벤트 항목에 대해 가입해야 하는 하나 이상의 이벤트 그룹에 대해 이후에 행하게 될 반복적인 가입에 따라 일정 시간당 발생하는 데이터양의 평균이, 상기 하나 이상의 비매칭 이벤트 항목에 대한 이벤트의 통지에 따라 상기 일정 시간당 발생하게 될 데이터양의 평균보다 클 때, 상기 차위의 이벤트 그룹을 선정하도록 구성된 것인 기기.
  11. 제 4항 내지 제 10항 중 어느 한 항에 있어서,
    상기 서비스 처리부는, 상기 2개 이상의 이벤트 그룹들에서, 상기 매칭 비율에 근거하여 상기 하나의 이벤트 그룹의 선정하는 방식을, 앞서 가입요청된 이벤트 항목들에 대해서 수행하여, 그 이벤트 항목들에 대해 가입할 이벤트 그룹을 다시 결정하도록 구성된 것인 기기.
  12. 제 11항에 있어서,
    상기 서비스 처리부는, 기 지정된 시간 동안에 이벤트 항목에 대한 추가적인 가입요청이 없을 때, 상기 방식을 선택적으로 수행하도록 구성되되, 상기 기 지정된 시간이 경과한 시점에, 그 동안 가입요청된 이벤트 항목들의 수가 기준치 미만이면 상기 방식을 수행하지 않는 것인 기기.
  13. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 속하는 이벤트 항목들의 전부 또는 일부에 대한 이벤트 통지빈도의 평균이 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성된 것인 기기.
  14. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 속하는 이벤트 항목들의 전부 또는 일부에 대해 구한 평균적인 데이터 발생률이 가장 적은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성되되,
    상기 평균적인 데이터 발생률은, 상기 전부 또는 일부의 이벤트 항목들 각각에 대해서, 해당 이벤트 항목의 이벤트 통지빈도에 이벤트 통지를 위해 필요한 데이터양을 곱하여 얻은 데이터 발생률을 평균한 값인 것인 기기.
  15. 제 13항 또는 제 14항에 있어서,
    상기 일부의 이벤트 항목들은, 현재 가입요청된 적이 없는 이벤트 항목인 것인 기기.
  16. 제 2항 또는 제 3항에 있어서,
    상기 서비스 처리부는, 상기 하나의 이벤트 그룹에 대한 가입을 요청하는 상기 메시지가 상기 특정 기기로 전송된 이후에, 상기 하나 이상의 이벤트 항목에 대하여 다시 이벤트 그룹으로 가입하고자 할 때는, 이벤트 항목들에 대해 파악된 상기 기기로의 통지빈도에 근거하여, 다시 가입할 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정하도록 구성된 것인 기기.
  17. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 재가입하게 될 때까지의 간격을 상대적으로 알 수 있는 시간에 대해 가장 길게 지정된 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성된 것인 기기.
  18. 제 1항에 있어서,
    상기 서비스 처리부는, 상기 네트워크를 통해 특정의 메시지가 수신되면, 그 특정의 메시지가 지원하고 있음을 알리는 사항과 연관된 이벤트 항목에 대하여 앞서 가입요청했던 이벤트 그룹을 다시 가입요청하도록 구성되되,
    상기 서비스 처리부는, 상기 하나 이상의 이벤트 항목에 대하여 지원하고 있음을 상기 특정의 메시지로써 알린 상기 특정 기기에서 동작하는 복수개의 실행개체들 중에서, 그 특정의 메시지를 발송하는 간격이 가장 긴 실행개체를 대상으로 하여 가입을 요청하는 메시지가 상기 특정 기기로 전송되게 하도록 구성된 것인 기기.
  19. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들에서, 이벤트 항목에 대한 이벤트의 발생 시 그 통지를 위한 메시지가 상대적으로 더 적은 횟수로 발송되게 하는 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정할 수 있도록 더 구성된 것인 기기.
  20. 제 19항에 있어서,
    상기 서비스 처리부에 의해 선정되는 상기 하나의 이벤트 그룹은, 다른 이벤트 항목에 대하여 이미 가입을 요청한 다른 이벤트 그룹과 동일한 멀티캐스트 주소가 할당되어 있는 이벤트 그룹인 것인 기기.
  21. 제 19항에 있어서,
    상기 서비스 처리부에 의해 선정되는 상기 하나의 이벤트 그룹은, 발생되는 이벤트에 대해 항상 멀티캐스트 방식으로 통지하는 것으로 지정되어 있는 이벤트 그룹인 것인 기기.
  22. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 제 1결정방식, 제 2결정방식 및 제 3결정방식을 포함하는 결정방식들 중에서 택일(擇一)하여 적용할 수 있도록 구성되되,
    상기 제 1결정방식은, 해당 이벤트 그룹에 속하는 이벤트 항목의 수 또는 현재 가입요청된 적이 없는 이벤트 항목의 수에 근거하여 이벤트 그룹을 결정하는 방식이고,
    상기 제 2결정방식은, 해당 이벤트 그룹에서 가입요청된 적이 없는 이벤트 항목에 대한 이벤트의 발생빈도나 데이터 발생률에 근거하여 이벤트 그룹을 결정하는 방식이며,
    상기 제 3결정방식은, 해당 이벤트 그룹에 가입을 반복하게 되는 시간격에 근거하여 이벤트 그룹을 결정하는 방식인 것인 기기.
  23. 제 22항에 있어서,
    상기 결정방식들에는, 해당 이벤트 그룹에 대해 할당된 멀티캐스트 주소가 이미 가입요청된 다른 이벤트 그룹에 할당된 멀티캐스트 주소와 동일한지의 여부, 또는 발생되는 이벤트에 대해서 항상 멀티캐스트 방식으로 통지하는지의 여부에 근거하여 이벤트 그룹을 결정하는 방식이 더 포함되는 것인 기기.
  24. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들의 각각에 대해, 제 1산정방식과 제 2산정방식를 포함하는 적합도 산정방식들 중 적어도 2개의 산정방식의 각각에 의해 구한 적합도의 가중 평균치가, 상기 2개 이상의 이벤트 그룹들에서 가장 높은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성되되,
    상기 제 1산정방식은, 해당 이벤트 그룹에 속하는 이벤트 항목의 수 또는 현재 가입요청된 적이 없는 이벤트 항목의 수가 적을수록 더 높은 적합도를 부여하는 방식이고,
    상기 제 2산정방식은, 해당 이벤트 그룹에 가입을 반복하게 되는 시간격이 길수록 더 높은 적합도를 부여하는 방식인 것인 기기.
  25. 제 1항에 있어서,
    상기 서비스 처리부는, 이벤트 그룹에 대한 상기 선정에 있어서, 상기 2개 이상의 이벤트 그룹들의 각각에 대해, 제 1산정방식과 제 2산정방식을 포함하는 적합도 산정방식들 중 적어도 2개의 산정방식의 각각에 의해 구한 적합도의 가중 평균치가, 상기 2개 이상의 이벤트 그룹들에서 가장 높은 이벤트 그룹을 상기 하나의 이벤트 그룹으로 선정하도록 구성되되,
    상기 제 1산정방식은, 해당 이벤트 그룹에서 가입요청된 적이 없는 이벤트 항목에 대한 이벤트의 발생빈도나 데이터 발생률이 낮을수록 더 높은 적합도를 부여하는 방식이고,
    상기 제 2산정방식은, 해당 이벤트 그룹에 가입을 반복하게 되는 시간격이 길수록 더 높은 적합도를 부여하는 방식인 것인 기기.
  26. 제 24항 또는 제 25항에 있어서,
    상기 적합도 산정방식들에는, 해당 이벤트 그룹에 대해 할당된 멀티캐스트 주소가 이미 가입요청된 다른 이벤트 그룹에 할당된 멀티캐스트 주소와 동일하면, 동일하지 않은 경우에 비해 비해 더 높은 적합도를 부여하는 방식이 더 포함되는 것인 기기.
  27. 제 24항 또는 제 25항에 있어서,
    상기 적합도 산정방식들에는, 해당 이벤트 그룹이 발생되는 이벤트에 대해서 항상 할당된 멀티캐스트 방식으로 통지되는 그룹일 때는, 항상 유니캐스트 방식으로 통지되거나 또는 유니캐스트 방식의 통지에서 도중에 멀티캐스트 방식의 통지로 변경되는 그룹일 때에 비해 비해 더 높은 적합도를 부여하는 방식이 더 포함되는 것인 기기.
  28. 제 24항 또는 제 25항에 있어서,
    상기 서비스 처리부는, 상기 적어도 2개의 산정방식의 각각에 의해 구한 적합도의 가중 평균치를 산출할 때, 각 적합도에 적용하는 가중치에 대해서 변경하여 적용할 수 있도록 구성된 것인 기기.
  29. 제 1항에 있어서,
    상기 하나 이상의 이벤트 항목은, 상기 기기에서 동작하는 하나 이상의 실행개체로부터 가입요청된 것이거나, 또는 타 기기에 가입요청할 이벤트 항목의 목록에 등재되어 있는 것인 기기.
  30. 네트워크에 연결된 임의의 기기가 타 기기들로부터 필요한 정보를 이벤트를 통해 제공받기 위해 가입하는 방법에 있어서,
    타 기기에 가입요청해야 할 하나 이상의 이벤트 항목을 확인하는 1단계와,
    상기 네트워크에 연결된 기기들이 필요한 정보를 통지받기 위해 이용할 수 있도록 지정된 이벤트 항목들을, 적어도 하나의 이벤트 항목은 서로 다른 이벤트 그룹에 중복하여 속하도록 복수개의 이벤트 그룹들에 매핑(mapping)하고 있는 이벤트 그룹핑 맵을 검색하여, 상기 하나 이상의 이벤트 항목을 포함하고 있는 이벤트 그룹을 찾는 2단계와,
    상기 2단계에서 찾은 이벤트 그룹이 2개 이상이면, 이후의 이벤트 항목과 관련된 처리 횟수 또는 처리량을 상대적으로 덜 초래하게 되는 하나의 이벤트 그룹을 상기 2개 이상의 이벤트 그룹들에서 선정하고, 그 선정된 이벤트 그룹에 대한 가입을 요청하는 메시지를 상기 네트워크를 통해, 상기 하나 이상의 이벤트 항목을 지원하는 다른 기기로 전송하는 3단계를 포함하여 이루어지는 방법.
KR1020200086848A 2020-07-14 2020-07-14 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기 KR102248285B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200086848A KR102248285B1 (ko) 2020-07-14 2020-07-14 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200086848A KR102248285B1 (ko) 2020-07-14 2020-07-14 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기

Publications (1)

Publication Number Publication Date
KR102248285B1 true KR102248285B1 (ko) 2021-05-06

Family

ID=75916205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200086848A KR102248285B1 (ko) 2020-07-14 2020-07-14 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기

Country Status (1)

Country Link
KR (1) KR102248285B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008113211A (ja) * 2006-10-30 2008-05-15 Denso Corp 車両用通信システム
WO2009054769A1 (en) * 2007-10-22 2009-04-30 Volvo Lastvagnar Ab System and method for changing the state of vehicle components
JP2010061324A (ja) * 2008-09-03 2010-03-18 Hitachi Automotive Systems Ltd 分散制御用制御ソフトウェアおよび電子制御装置
KR20100066468A (ko) * 2007-09-14 2010-06-17 인터내셔널 비지네스 머신즈 코포레이션 네트워크 관리 시스템에서 가속화된 이벤트를 전파하는 방법 및 장치
KR20130138468A (ko) * 2012-06-11 2013-12-19 한국전자통신연구원 응용 소프트웨어와 autosar 서비스를 연결하기 위한 장치 및 방법
KR20160119830A (ko) * 2014-02-17 2016-10-14 스카니아 씨브이 악티에볼라그 차량용 인프라 시스템
US20180295011A1 (en) * 2017-04-05 2018-10-11 GM Global Technology Operations LLC Architectures and methods for management of in-vehicle networked controllers and devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008113211A (ja) * 2006-10-30 2008-05-15 Denso Corp 車両用通信システム
KR20100066468A (ko) * 2007-09-14 2010-06-17 인터내셔널 비지네스 머신즈 코포레이션 네트워크 관리 시스템에서 가속화된 이벤트를 전파하는 방법 및 장치
WO2009054769A1 (en) * 2007-10-22 2009-04-30 Volvo Lastvagnar Ab System and method for changing the state of vehicle components
JP2010061324A (ja) * 2008-09-03 2010-03-18 Hitachi Automotive Systems Ltd 分散制御用制御ソフトウェアおよび電子制御装置
KR20130138468A (ko) * 2012-06-11 2013-12-19 한국전자통신연구원 응용 소프트웨어와 autosar 서비스를 연결하기 위한 장치 및 방법
KR20160119830A (ko) * 2014-02-17 2016-10-14 스카니아 씨브이 악티에볼라그 차량용 인프라 시스템
US20180295011A1 (en) * 2017-04-05 2018-10-11 GM Global Technology Operations LLC Architectures and methods for management of in-vehicle networked controllers and devices

Similar Documents

Publication Publication Date Title
US11411897B2 (en) Communication method and communication apparatus for message queue telemetry transport
US7558859B2 (en) Peer-to-peer auction based data distribution
US6061713A (en) Communications system for client-server data processing systems
US7644408B2 (en) System for assigning and monitoring grid jobs on a computing grid
US20180013693A1 (en) System and method for routing service requests
CN100382021C (zh) 用于提供上下文感知服务的设备和方法
CN110716796B (zh) 智能任务调度方法及装置、存储介质、电子设备
WO2000060860A1 (en) Computer system and method for sharing a job on a computer network using ip multicast
CN110677347B (zh) 一种用于微服务的服务注册和服务发现的方法
CN110413845B (zh) 基于物联网操作系统的资源存储方法及装置
US20160344582A1 (en) Call home cluster
US11947534B2 (en) Connection pools for parallel processing applications accessing distributed databases
CN115113997A (zh) 一种任务调度方法、装置、电子设备及存储介质
CN111556135A (zh) 一种请求调度方法、系统、装置及电子设备
CN114281524A (zh) 一种智能电缆业务处理系统管理方法及装置
KR102248285B1 (ko) 필요한 정보를 통지받기 위한 이벤트에 대한 최적화된 그룹기반의 가입 방법과 그 방법을 위한 기기
CN102023997B (zh) 一种数据查询系统及其构建方法与相应的数据查询方法
CN109005071B (zh) 一种决策部署方法和调度设备
CN111092952A (zh) 一种数据交互方法及相关产品
CN115242687A (zh) 一种节点探活方法、装置、设备及介质
CN113596746B (zh) 集群消息的处理方法、装置、电子设备和介质
KR101146742B1 (ko) SaaS의 분산된 세션 관리 방법 및 그 관리 시스템
CN113067869B (zh) 节点控制方法及装置、节点管理方法及装置、分布式系统
KR102207344B1 (ko) 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치
KR102394486B1 (ko) 복수의 기기들에 정보를 제공하는 방식을 그 정보에 대한 시간적 요구사항에 따라 결정하는 방법과 그 방법을 위한 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant