KR102207344B1 - 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치 - Google Patents

서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치 Download PDF

Info

Publication number
KR102207344B1
KR102207344B1 KR1020200049655A KR20200049655A KR102207344B1 KR 102207344 B1 KR102207344 B1 KR 102207344B1 KR 1020200049655 A KR1020200049655 A KR 1020200049655A KR 20200049655 A KR20200049655 A KR 20200049655A KR 102207344 B1 KR102207344 B1 KR 102207344B1
Authority
KR
South Korea
Prior art keywords
event
items
grouping
group
groups
Prior art date
Application number
KR1020200049655A
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 KR1020200049655A priority Critical patent/KR102207344B1/ko
Application granted granted Critical
Publication of KR102207344B1 publication Critical patent/KR102207344B1/ko

Links

Images

Classifications

    • H04L67/2833
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • H04L67/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 장치는, 사용자의 선택에 따라, 네트워크에 연결된 기기들이 필요로 하는 이벤트 항목들에 대해 그룹핑하는 모드를 지정하는 처리부와, 그 지정되는 모드에 따라, 상기 이벤트 항목들을 복수개의 이벤트 그룹들로 지정함으로써, 상기 이벤트 항목들의 각각을 적어도 하나의 이벤트 그룹에 매핑시키는 그룹핑 맵을 생성하는 그룹핑부를 포함하여 구성된다. 이 그룹핑부는, 특정 모드로 지정될 때, 상기 기기들이 각기 어떤 이벤트 항목들을 필요로 하는지에 대해 기재하고 있는 프로파일의 정보에 근거하여, 상기 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가 상기 이벤트 항목들을 그룹핑하지 않았을 때에 비해서 감소하도록 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑한다.

Description

서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치 {Method for grouping service-based events and using grouped events and an apparatus for said method}
본 발명은, 네트워크에 연결된 복수의 기기들에서 실행되는 응용 프로그램들이 관리하는 많은 상태들에 대해서 다른 기기들에 그 변화 등을 서비스 기반으로 알리기 위해 사용하는 이벤트(event)들에 대하여 그룹핑(grouping)하고, 그 그룹핑에 근거해서 서비스 기반의 이벤트를 이용할 수 있게 하는 방법과 그 방법을 위한 장치나 기기 등에 관한 것이다.
사람의 생활을 편리하게 하는 수 많은 종류의 특정 용도의 장치들, 특히 차량 등과 같이 그 기능이 매우 다양하고 복잡한 장치들은, 수많은 정보가 일명 전자제어 유니트( ECU: Electronic Control Unit )라고 불리는 기기 들간에 실시간으로 통신되는 것에 기반하고 있다.
그리고, 그 장치의 기능이나 성능 향상을 위해, 데이터를 직접 처리하는 전자제어 유니트에 대해서는, 높은 사양의 유니트가 점진적으로 적용되고 있다. 이와 같은 고사양의 전자제어 유니트는, 생산업자가, 해당 자원( CPU, 메모리, 통신소자, 다양한 종류의 입출력 인터페이스들, ADC 등 )의 효율적인 사용을 위한 운영시스템(O/S)도 함께 제공되고 있어서, 차량과 같은 특정 장치에 전자제어 유니트를 적용하고자 할 때, 그 운영시스템을 기반으로 보다 쉽게 전자제어 유니트에서 원하는 동작을 수행하는 응용 프로그램을 개발하여 적용할 수 있다.
도 1은, 이러한 유형의 전자제어 유니트들이 네트워크를 통해 서로 연결되어 있는 단순한 예를 보여준다. 도 1에 도시된 예에서, 개발자가 개발하여 임의의 한 전자제어 유니트(11)에 설치하여 실행시키는 응용 프로그램은, 해당 전자제어 유니트가 관리 또는 제어하도록 신호연결된, 보다 구체적으로 그 유니트에 직접 연결된 각종의 센서나 부품, 기계적 또는 전기적 모듈 등에서 입력되는, 또는 자체적으로 생성하는 신호를 확인하는 확인하는 한편, 그들에 대해 원하는 값이나 레벨로 설정하는 동작을 위한 것일 수 있다. 이에 더하여, 그 응용 프로그램은, 예시된 바와 같이, 다른 전자제어 유니트(12)에서 담당하여 처리하는 신호에 대한 확인( 요청 후에 그에 따른 응답의 수신 )이나 설정의 동작도 함께 할 수 있는 것일 수도 있다.
이와 같은 다른 기기와의 정보 교환을 통한 타 기기의 신호 상태 확인동작이 정상적으로 이루어지게 하기 위해서는, 프로그램 개발자는, 전자제어 유니트에서 실행될 응용 프로그램(11a)을 개발할 때, 그 프로그램에 의해 의도되는 동작에 필요한 각각의 신호에 대해 구체적으로 파악하고 있어야 한다. 예를 들어, 해당 신호가 또는 해당 신호에 상응하는 정보가, 그 응용 프로그램이 실행될 전자제어 유니트를 포함하여 어떤 전자제어 유니트에서 처리하는 것인 지, 그 전자제어 유니트에서 어떤 응용 프로그램이 처리하는 것인 지, 그리고 네트워크 상에서 어떤 포맷으로 해당 신호의 정보가 실려서 전송되는지 등을 파악하고, 그에 맞추어 프로그래밍(programming)하여야 한다.
그런데, 이러한 프로그래밍에 따라 개발되는 응용 프로그램은 이식성(移植性)이 매우 낮을 수 밖에 없어서, 다른 전자제어 유니트에 동일한 프로그램 소스(source)를 컴파일(compile)하여 실행시킬 때, 그 포팅(porting)된 전자제어 유니트에서 동일한 동작을 정상적으로 수행할 가능성이 희박하다. 예를 들어, 전자제어 유니트들이 장착되는 특정 용도의 장치가 차량인 경우, 임의의 한 모델의 차량의 전자제어 유니트에 대해서 개발된 응용 프로그램을, 다른 모델의 동일 기능의 전자제어 유니트에 그 프로그램 소스를 그대로 이식하였을 때, 정상적으로 동작하지 않는 것이 일반적이다. 차량들이 모델별로 전자제어 유니트들에 대한 네트워크 구축환경이 부분적으로 다르고, 또한 처리하는 신호나 정보들의 종류에도 부분적으로 차이가 있어서, 그러한 신호나 정보의 종류의 차이에 따라, 정보 전달을 위한 포맷이나 정보를 특정하는 식별자 등이 완전하게 서로 일치하지 않기 때문이다.
따라서, 전자제어 유니트에서 실행될 응용 프로그램을 개발하는 개발자는, 임의의 한 모델의 차량에 대해 개발된 응용 프로그램을 다른 모델의 차량에 적용하기 위해서는, 그 적용할 모델 차량에 맞도록, 관련된 프로그램 부분을 찾아서 모두 수정하여야 한다. 이러한 프로그램 수정이나 보완 작업은, 동일 종류의 차량에 대해서, 성능 개선 등을 위해 해당 응용 프로그램을 다른 전자제어 유니트로 이식시키는 경우에도 마찬가지로 필요할 수 있다.
하지만, 동일 동작을 위한 응용 프로그램을, 적용하는 특정 용도의 장치의 종류가 달라질 때마다 또는 적용 네트워크의 환경이 달라질 때마다, 그에 맞게 수정, 보완하는 작업은, 개발자에게 있어 대단히 번거로운 일이고, 또한, 그러한 수정 보완 작업이 필요하다는 사실은, 해당 장치의 생산자 입장에서 보면, 성능 개선이나 새로운 모델의 장치의 개발에 있어 시간과 비용을 더 많이 투입해야 할 필요가 있음을 의미한다.
이러한 문제점을 해결하기 위해, 전자제어 유니트들 간의 네트워크를 경유하는 정보 교환이 서비스 기반으로 이루어지게 하는 방안이 제안된 바 있다. 이 방안에 따르면, 응용 프로그램은 지정된 서비스 규칙에 따른 인터페이싱 방식에 맞게 개발되면, 그 서비스 규칙에 따른 통신을 지원하는 네트워크 상의 전자제어 유니트들 중에서 그 어떤 유니트에 이식되어 실행되어도 정상적으로 동작하게 된다.
이와 같은 서비스 규칙에 따르면, 전자제어 유니트와 같은 임의의 기기가, 자신이 직접 신호나 정보를 발생시키게 되는 내부 상태들, 또는 적절한 입출력 인터페이스를 통해 그와 직접 연결된 센서, 부품, 기계적 또는 전기적 모듈 등의 주변 기기들( 이하, '전속 주변부'라 칭한다. )이 만들거나 형성할 수 있는 각종의 상태들 또는 그에 의해 제어되는 물리량 등의 상태들( 본 명세서에서는, 열거된 이와 같은 상태들에 대해서, 그 임의의 기기가 "전담한다"는 표현을 사용한다. ), 또는 그들의 집합들에 대해서 하나 이상의 '서비스 항목'이 지정된다.
그리고, 각각의 서비스 항목에는, 하나 이상의 서비스의 대상이 되는 변수( 이하, '상태 변수'라 칭한다. )와 그 상태 변수에 대해 허용되는 액션(action)( 예를 들어, 조회 또는 설정과 같은 동작 ) 또는 그 서비스 항목에서 지원하는 액션( 이하에서는 이를 '메소드'(method)라 칭한다. )이 정의되고, 그리고 이벤트 항목들이 또한 정의된다. 여기서, 이벤트 항목이란, 해당 서비스 항목으로 관리되는 특정 신호나 정보, 또는 물리량 등의 변화 시에 대해 또는 특정 조건의 충족 시에 대해 지정된 변수로서, 지정된 변화가 발생하거나 조건 충족이 이루어질 때 해당 변수가 비활성값에서 활성값으로 변하게 되는 항목을 지칭한다.
위와 같은 서비스 규칙의 서비스 항목의 정의에 따라, 전자제어 유니트와 같은 임의의 기기에 실행시킬 응용 프로그램의 개발자는, 네트워크 상의 다른 기기 또는 그 다른 기기의 전속 주변부의 특정 물리량에 대해서 확인하거나 제어하고자 할 때, 그 특정 물리량이, 적용할 특정 용도의 장치에서 구체적으로 어떤 수치나 코드로써 특정되는지를 파악할 필요없이, 그 특정 물리량에 대해 정의하고 있는 서비스 항목 내의 해당 상태 변수와, 그 서비스 항목에서 지원하는 메소드 또는 상태 변수에 대해 원하는 메소드에 대해 각기 텍스트 형식으로 특정하여 프로그래밍하면 된다.
이렇게 프로그래밍된 응용 프로그램은, 앞서 언급한 바와 같이, 동일한 서비스 규칙을 지원하는 네트워크 상의 기기들 중에서 어떤 기기에서 실행되어도 원하는 동작이 정상적으로 수행된다. 즉, 네트워크에 연결된 임의의 기기에서, 이와 같이 서비스 기반으로 동작할 때는, 원하는 상태 변수와 그 상태 변수에 대해 원하는 메소드, 예를 들어 조회를 지정하여 네트워크로 송신하게 되면, 해당 상태 변수를 전담하는 타 기기로부터 그 상태 변수에 대한 현재값을 수신할 수 있게 된다.
그런데, 조회 메소드를 이용하는 이와 같은 타 기기가 전담하는 상태 변수의 현재값 확인은, 해당 상태 변수의 값이 변하는 시점을 놓칠 수 있다. 해당 상태 변수의 값이 변할 수 있는 평균적인 시간격보다 훨씬 짧은 간격으로 반복적으로 조회하면, 해당 상변 변수의 값이 변한 시점과 매우 근접하여 그 변한 현재값을 확인할 수 있지만, 이러한 반복적인 조회 방식은, 네트워크 상에 큰 부하를 초래하게 된다.
따라서, 값이 변하는 시점에 즉시 파악하는 것이 중요한 상태 변수의 경우에는, 해당 상태 변수의 값의 변화나 특정 조건의 충족에 대해 지정하고 있는 이벤트 항목에 대해, 해당 상태 변수를 전담하는 기기에 이벤트 통지를 등록( 이를 일반적으로 '가입'이라고 지칭한다. )해 두게 되면, 이러한 반복적인 상태 변수의 조회없이도, 해당 상태 변수가 변하거나 그 상태 변수가 특정 조건을 충족할 때, 그 값이나 상태를 알리는 정보를 포함하여 통지하는 이벤트 메시지를 통해 즉시 알 수 있다. 도 1은, 이 과정을 간략하게 개념적으로 도시한 것이다.
도 1에 도시된 바와 같이, 전자제어 유니트와 같은 기기들(11,12)이 네트워크 상에서 노드(node)를 형성하고 있는 상태에서, 임의의 한 노드에 해당하는 기기(11)에 설치되어 실행되는 응용 프로그램(11a)은, 의도된 동작을 수행하기 위해 필요한, 다른 노드에 해당하는 기기(12)가 전담하는 상태 변수의 변화 시에 대해 지정하고 있는 이벤트 항목의 가입 요청을 네트워크를 통해 송신하고(S01), 이 가입 요청을 수신하는 기기(12) 내에서 해당 상태 변수를 전담하는 응용 프로그램(12a)은, 그 이벤트 가입 요청에 따라, 해당되는 이벤트 항목에 대해서 타 기기로 통지할 피가입 항목으로 지정해 두게 된다.
이후, 피가입 이벤트 항목의 이벤트가 활성상태가 되면( 즉, 해당 상태 변수에 대한 값이 변경되거나 지정된 특정 조건이 충족되면 )(S02), 그 응용 프로그램(12a)은, 그 활성화된 이벤트와 연관된 값, 예를 들어 해당 상태 변수의 현재값과 부수적인 정보( 해당 상태를 보다 구체적으로 나타내는 파라미터들의 값 )을 포함하여 이벤트 발생을 통지하는 메시지( 이하에서는 이를 '이벤팅(eventing)' 메시지라 칭한다. )를 네트워크로 전송하게 되고(S03), 그 이벤트 항목에 대해서 가입해 둔 응용 프로그램(11a)은, 상기 이벤팅 메시지를 수신함으로써, 해당 상태 변수의 값의 변경 시 등에 즉시 그 상태 변수의 값을 알 수 있게 된다.
이와 같이, 타 기기가 전담하는 상태 변수들에 대해서 이벤트 가입을 해 두게 되면, 해당 상태 변수들에 대해서 반복적인 조회 동작이 불필요하게 되므로, 네트워크에 가해지는 부하의 측면에서 보면 매우 유리하다.
그런데, 이렇게 타 기기들이 전담하는 상태 변수들에 대해서 이벤트 항목들에 가입을 하여 상태 변화 등에 즉시 통지를 받는 방법은, 초기에 네트워크에 부하를 집중시키게 되는 약점이 있다.
예를 들어, 서비스 기반으로 동작하는 네트워크 시스템( 네트워크와 이에 연결되어 서비스 기반으로 동작하는 복수의 기기들을 통칭한다. )이 특정 용도의 기계 장치, 예를 들어 자동차에 장착되었을 때, 해당 장치가 시동될 때마다, 그 네트워크 시스템 내의 각각의 기기에서 실행되는 모든 응용 프로그램들은, 자신이 필요로 하는 타 기기의 전담 상태 변수들과 관련된 이벤트 항목들에 대하여 가입을 요청할 것이기 때문에, 장치의 초기 시동 시에 이벤트 가입을 위한 트래픽이 네트워크에 집중된다.
이렇게 되면, 장치의 초기에는, 각각의 응용 프로그램이 파악하게 되는 타 기기의 전담 상태 변수의 초기값 확인이 지연되는 현상이 발생할 것이다. 따라서, 이벤트 항목들에 대한 가입 요청들이, 이렇게 일시에 네트워크에 가하게 되는 트래픽을 경감시킬 필요가 있다.
본 발명은, 네트워크 상의 타 기기들에 가입해야 하는 이벤트 항목들에 대해서 그룹화함으로써 이벤트 가입에 따른 트래픽 부하를 경감시킬 수 있게 하는 방법과 그 방법을 위한 장치를 제공하는 것에 일 목적이 있는 것이다.
본 발명의 다른 목적은, 타 기기에 가입 요청해야 하는 이벤트 항목들이 네트워크 상의 각 기기에 어떻게 분포되어 있는지에 근거하여 이벤트 항목들을 그룹화하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 이벤트 가입을 위한 트래픽 발생을 억제시킬 가능성이 높아지도록 이벤트 항목들 간의 상관성에 근거하여 그룹핑하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 네트워크 상의 기기들이 의도된 동작을 위해 어떤 이벤트 항목들을 필요로 하는지에 대한 정보에 근거하여, 이벤트 가입과 통지를 위한 트래픽에서의 이익과 손실을 파악하고, 손실에 대한 상대적 이익이 원하는 수준이 되도록 이벤트 항목들을 그룹핑하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 네트워크 상의 기기들이 어떤 이벤트 항목들을 필요로 하는지에 대한 정보에 근거하여, 이벤트 가입에서의 트래픽 발생을 최소화시키는 이벤트 그룹핑 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 그룹핑된 이벤트 항목들에 대한 통지방식이 멀티캐스트(multicast)로 이루어지게 되는 경우를 고려하여, 이벤트 가입과 통지를 위한 트래픽 관점에서 보다 이익이 되도록 이벤트 항목들을 그룹핑하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 이후의 이벤트 그룹핑이 보다 더 효율적으로 이루어지도록 하기 위해, 현재 사용되고 있는 이벤트 항목들의 그룹핑 정보에 대하여 이벤트 발생현황에 대한 통계정보를 생성하는 방법과 그 방법을 위한 기기를 제공하는 것이다.
또한, 본 발명은, 네트워크를 통해 서비스 기반의 정보 교환이 이루어지는 기기들에 적용할 수 있는 응용 프로그램 인터페이스를, 사용자가 선택하는 정보에 따라, 지정된 서비스 규약정보에 근거하여 자동적으로 생성하는 방법과 그 방법을 위한 장치를 제시하는 것을 또 다른 목적으로 한다.
본 발명의 목적은, 상기 명시적으로 서술된 목적에 국한되는 것은 아니며, 본 발명에 대한 구체적이고 예시적인 하기의 설명에서 도출될 수 있는 효과를 달성하는 것을 그 목적에 당연히 포함한다.
본 발명의 일 측면에 따른, 네트워크에 연결되어 타 기기에서의 발생 이벤트를 통지받을 수 있는 기기들에 적용되는 이벤트 관리에 필요한 정보를 생성하기 위한 장치는, 사용자의 선택에 따라, 상기 기기들이 필요로 하는 이벤트 항목들에 대해 그룹핑하는 모드를 지정하도록 구성된 처리부와, 상기 지정되는 모드에 따라, 상기 이벤트 항목들을 복수개의 이벤트 그룹들로 지정함으로써, 상기 이벤트 항목들의 각각을 적어도 하나의 이벤트 그룹에 매핑(mapping)시키는 그룹핑 맵을 생성하도록 구성된 그룹핑부를 포함하여 구성된다. 그리고, 상기 그룹핑부는, 상기 지정되는 모드가 제 1모드이면, 상기 기기들이 각기 어떤 이벤트 항목들을 필요로 하는지에 대해 기재하고 있는 프로파일의 정보에 근거하여, 상기 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가 상기 이벤트 항목들을 그룹핑하지 않았을 때에 비해서 감소하도록 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑한다.
본 발명에 따른 일 실시예에서는, 상기 그룹핑부가, 상기 제 1모드가 지정되면, 임의 개수의 대상 이벤트 항목들에 대하여, 그 대상 이벤트 항목들을 하나의 이벤트 그룹으로 그룹핑했을 때의 이벤트 가입에서 나타나는 이익과, 이벤트 통지에서 발생하는 손실로부터 산출하는 손익반영 값이, 정해진 기준을 충족시킬 때, 상기 대상 이벤트 항목들을 하나의 이벤트 그룹으로 그룹핑하는 방식으로 상기 이벤트 항목들을 그룹핑한다. 이때, 상기 이익은, 이벤트 항목에 대해 그룹기반으로 가입함에 따라 감소하는 요청 횟수 또는 데이터양이고, 상기 손실은, 이벤트 발생 시에 통지에서 증가하는 횟수 또는 데이터양일 수 있다. 그리고, 본 실시예에서는, 상기 그룹핑부가, 필요로 하는 기기의 수가 기 지정된 최소수보다 작은 이벤트 항목, 또는 상기 손익반영 값이 상기 정해진 기준을 충족시키게 되는 다른 이벤트 항목의 수가 기 지정된 수 이하가 되는 이벤트 항목에 대해서는 상기 방식에서의 그룹핑에서 배제하고, 상기 방식과는 다른 방식을 적용하여, 적어도 상기 배제한 이벤트 항목들이 전체로 또는 나뉘어서 하나 이상의 그룹에 속하도록 이벤트 그룹을 지정할 수 있다.
전술한 실시예에서, 상기 다른 방식에서는, 상기 배제된 이벤트 항목들이 전체로 하나의 이벤트 그룹으로 지정될 수도 있고, 상기 배제된 이벤트 항목들 중에서, 필요로 하는 기기들이 동일한 이벤트 항목들의 조합에 대해서는 개별적으로 이벤트 그룹으로 지정되고, 상기 조합으로 묶이지 않은 나머지 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정되거나, 각각이 개별적인 이벤트 그룹으로 지정될 수도 있다. 또한, 상기 다른 방식에서는, 상기 이벤트 항목들 중에서, 필요로 하는 기기가 있는 이벤트 항목들만이 선택되어 하나의 이벤트 그룹으로 지정되거나, 또는 상기 이벤트 항목들이 전체로서 하나의 이벤트 그룹으로 지정될 수도 있다.
그리고, 전술한 실시예에서, 상기 그룹핑부는, 상기 기준에 대해서 제 1기준을 정해서 상기 방식을 적용함으로써 상기 이벤트 항목들을 1차로 그룹핑하고, 그 1차의 그룹핑에서 이벤트 그룹으로 매핑되지 않은 나머지 이벤트 항목들에 대해서는 상기 기준에 대해 제 2기준을 정하여 상기 방식을 적용함으로써 이벤트 그룹들로 그룹핑할 수도 있으며, 이 경우, 상기 제 2기준은, 상기 손익반영 값이 충족하게 되는 기준이 상기 제 1기준에 비해서 완화된 것이 된다.
본 발명에 따른 다른 일 실시예에서는, 상기 그룹핑부가, 상기 제 1모드가 지정될 때, 상기 기기들이 각기 필요로 하는 이벤트 항목들의 집합에 대해 개별적으로 이벤트 그룹으로 지정하는데, 이러한 그룹핑과정에서 2이상의 기기들이 필요로 하는 이벤트 항목들이 서로 일치하는 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정한다. 본 실시예에서는, 상기 그룹핑부가, 상기 기기들 중 임의의 한 기기가 필요로 하여 하나의 그룹으로 지정될 이벤트 항목들의 부분집합이 적어도 하나의 다른 기기가 필요로 하는 이벤트 항목들과 일치할 때는, 상기 하나의 그룹으로 지정될 이벤트 항목들에 대해서, 상기 부분집합의 이벤트 항목들과 상기 부분집합에 속하지 않는 이벤트 항목들을 서로 구분하여 2이상의 이벤트 그룹들로 지정할 수도 있다.
본 발명에 따른 일 실시예에서는, 상기 지정되는 모드가 제 2모드이면, 상기 그룹핑부가, 상기 이벤트 항목들 간의 상호 연관성을 확인하고, 그 상호 연관성이 지정된 기준치 이상에 해당하는 이벤트 항목들끼리 그룹핑하여 상기 복수개의 이벤트 그룹들로 지정한다. 이때, 서로 다른 서비스 항목에 속하는 이벤트 항목들 간에는 상호 연관성이 없는 것을 전제로 하여 그룹핑할 수도 있다.
본 발명에 따른 다른 일 실시예에서는, 상기 지정되는 모드가 제 2모드일 때, 상기 그룹핑부가, 상기 이벤트 항목들이 각기 속하는 서비스 오브젝트(object)들 간의 상호 연관성을 확인하고, 그 상호 연관성이 정해진 기준치 이상에 해당하는 서비스 오브젝트들끼리 그룹핑한 후, 그 그룹핑에 의해 지정된 오브젝트 그룹들의 각각에 속하는 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정할 수도 있다.
전술한 실시예에서와 같이 상호 연관성에 근거하여 이벤트 항목들을 그룹핑할 때, 그 상호 연관성은, 둘 사이에 직접 연관된 정도를 나타내는 직접 상관지수이거나, 둘 사이에 적어도 다른 하나를 매개로 하여 연관되어 있어, 그 매개가 되는 적어도 다른 하나와의 복수의 상기 직접 상관지수로부터 산출되는 간접 상관지수일 수 있다. 그리고, 상기 그룹핑부는, 상기 처리부에 의해 지정된 상관성 깊이를 초과하는 수의 매개에 의해 서로 간에 연관되는 둘 사이에 대해서는 상기 간접 상관지수를 산출하지 않는다. 즉, 둘 중 어느 하나가 그룹핑 대상에서 배제된다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 지정되는 모드가 제 2모드일 때, 상기 그룹핑부가, 상기 이벤트 항목들에 대해서 발생빈도에 근거하여 상기 복수개의 이벤트 그룹들로 그룹핑한다. 이경우, 하나의 이벤트 그룹에 매핑시키는 이벤트 항목들은, 상기 이벤트 항목들을 발생빈도에 따라 배열하였을 때 발생빈도에 있어서 서로 연이어지는 것들이다. 본 실시예에서는, 발생빈도가 높은 이벤트 항목들이 속하는 임의의 제 1이벤트 그룹이 발생빈도가 낮은 이벤트 항목들이 속하는 임의의 제 2이벤트 그룹에 비해서 더 적은 수의 이벤트 항목들을 포함하는 방식으로 그룹핑될 수도 있다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 지정되는 모드가 제 2모드일 때, 상기 그룹핑부가, 상기 이벤트 항목들 각각의 발생빈도에 근거하여 산출하는 빈도 상관성과, 상기 이벤트 항목들 간에 대해 지정되어 있는 상호 연관성의 가중 평균치에 근거하여 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑할 수도 있다. 이때의 빈도 상관성은, 발생빈도에서의 차이가 적을수록 높은 상관성을 나타내는 값이 결과로 주어지는 규칙에 따라 산출되는 것일 수 있다.
전술한 실시예들에 있어서, 상기 그룹핑부는, 상기 제 2모드에 따라 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑한 후, 상기 프로파일의 정보에 근거하여, 상기 복수개의 이벤트 그룹들의 적어도 일부에 대해서, 해당 이벤트 그룹에 매핑되어 있는 이벤트 항목들을 보정할 수도 있다. 여기서의 보정은, 임의 이벤트 그룹에 매핑되어 있는 이벤트 항목들을 축소 시키거나, 또는 그 임의 이벤트 그룹에 매핑된 이벤트 항목들을 모두 하나 이상의 다른 이벤트 그룹으로 매핑시킴으로써 그 임의 이벤트 그룹을 해제시키는 것을 포함한다.
본 발명에 따른 일 실시예에서는, 상기 그룹핑부가, 상기 이벤트 항목들에 대한 그룹핑에 의해 얻어지는 이벤트 그룹들의 수가 상기 처리부가 지정하는 그룹 허용개수를 넘지 않도록 상기 복수개의 이벤트 그룹들로 그룹핑한다. 만약, 상기 이벤트 항목들에 대해 그룹핑하여 얻은 이벤트 그룹의 수가 상기 그룹 허용개수를 넘게 되면, 그 그룹핑에서 하나의 그룹으로 지정하기 위해 적용하였던 조건을 완화하여 상기 이벤트 항목들에 대해 적어도 부분적으로 그룹핑을 다시 하여, 이벤트 그룹들의 수가 상기 그룹 허용개수를 넘지 않도록 한다.
본 발명에 따른 일 실시예에서는, 상기 그룹핑부가, 발생된 이벤트를 통지하는데 필요한 데이터양이 기 지정된 기준치 이상이거나, 또는 그 통지하는 데이터의 내용이 특정의 중요도 이상인 이벤트 항목에 대해서는 그 단독으로 하나의 이벤트 그룹을 지정할 수도 있다.
본 발명에 따른 일 실시예에서는, 상기 그룹핑부는, 상기 기기들이 필요로 하는 서로 다른 이벤트 항목들의 전체 수가 기 지정된 문턱치 이상일 때만, 상기 제 1모드로 지정된 이벤트 그룹핑을 수행할 수도 있다. 이에 따라 제 1모드에 따른 그룹핑에서 제외되는 이벤트 항목들에 대해서는, 각기 하나씩 이벤트 그룹으로 지정할 수도 있다.
전술한 실시예들에서, 상기 그룹핑부는, 발생된 이벤트를 통지하는데 필요한 데이터양이 기 지정된 기준치 이하이거나, 발생하는 빈도가 기 지정된 기준치보다 낮은 이벤트 항목들이 복수개 있으면, 그 복수개의 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정할 수도 있다.
또한, 전술한 실시예들에서, 상기 이벤트 항목들에 대한 그룹핑의 결과로 얻어진 이벤트 그룹들 중 어느 하나의 이벤트 그룹 내의 모든 이벤트 항목들이 기 지정된 특정의 요건을 충족시키게 되면( 예를 들어, 발생된 이벤트를 통지하는 필요한 데이터양이 기 지정된 기준치 이하이면 ), 상기 그룹핑부는, 상기 어느 하나의 이벤트 그룹에 매핑된 이벤트 항목들을 다른 이벤트 그룹으로 다시 매핑시켜 상기 어느 하나의 이벤트 그룹을 해제시킬 수도 있다.
본 발명에 따른 일 실시예에서는, 상기 처리부가, 사용자의 선택을 위해 필요한 정보가 디스플레이부의 화면에 표시되게 하고, 그 표시된 정보에 따른 사용자의 선택 내용을 입력받아, 그 선택 내용에 의해 지정되는, 특정의 서비스지향(Service-Oriented)의 규칙에서 정하고 있는 하나 이상의 서비스 구성 엘리먼트(element)에 대해서 응용 프로그램 인터페이스를 기 지정된 형식으로 기록한 파일을 생성한다. 그리고, 상기 서비스 구성 엘리먼트는, 상기 특정의 서비스지향의 규칙에서 정하고 있는 서비스 항목, 상태 변수, 메소드 그리고 이벤트 항목 중 적어도 임의의 어느 하나에 해당한다.
본 발명의 다른 일 측면에 따라서, 컴퓨팅 장치에 의해 실행될 수 있는 명령 코드들로써 이루어진 특정 프로그램을 수록하고 있는 기록매체가 제공된다. 이 기록매체에 수록된 상기 특정 프로그램은, 임의의 컴퓨팅 장치에 의해 실행되는 경우, 네트워크에 연결되어 타 기기에서의 발생 이벤트를 통지받을 수 있는 기기들이 필요로 하는 이벤트 항목들에 대해 그룹핑하는 모드를 사용자의 선택에 따라 지정하는 제 1기능과, 상기 지정되는 모드에 따라, 상기 이벤트 항목들을 복수개의 이벤트 그룹들로 지정함으로써, 상기 이벤트 항목들의 각각을 적어도 하나의 이벤트 그룹에 매핑시키는 그룹핑 맵을 생성하는 제 2기능을 수행하는 코드들로 이루어져 있다. 그리고, 상기 제 2기능은, 상기 지정되는 모드가 제 1모드이면, 상기 기기들이 각기 어떤 이벤트 항목들을 필요로 하는지에 대해 기재하고 있는 프로파일의 정보에 근거하여, 상기 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가 상기 이벤트 항목들을 그룹핑하지 않았을 때에 비해서 감소하도록 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑하는 기능을 포함한다.
본 발명의 또 다른 일 측면에 따른, 네트워크에 연결되어 그 네트워크를 통하여 다른 기기들과 이벤트에 관한 정보를 송수신할 수 있는 기기는, 상기 네트워크에 연결된 모든 기기들이 고유하게 식별할 수 있는 식별자를 각기 갖는 이벤트 항목들에 대해서 복수개의 이벤트 그룹들로 매핑하고 있는 그룹핑 정보를 구비하고, 또한, 상기 네트워크를 통해 상기 다른 기기들과 메시지를 주고 받을 수 있도록 구성된 제 1처리부와, 상기 기기에서 실행되는 응용 프로그램으로부터 수신되는 상기 다른 기기들 중 어느 하나의 기기에 대한 이벤트 가입 요청에 대하여, 상기 그룹핑 정보를 참조하여 그 가입 요청에 포함된 이벤트 식별자가 속하는 임의의 이벤트 그룹을 확인하고, 그 확인된 임의의 이벤트 그룹을 나타내는 식별자를 포함하는 그룹기반의 가입요청 메시지를 상기 제 1처리부에 전달함으로써, 상기 네트워크로 전송되게 하도록 구성된 제 2처리부를 포함하여 구성된다. 그리고, 상기 그룹핑 정보는, 상기 모든 기기들이 각기 필요로 하는 이벤트 항목들의 전부에 대해서, 상기 모든 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가, 상기 이벤트 항목들의 전부를 상기 복수개의 이벤트 그룹들로 그룹핑하지 않았을 때에 비해서 감소하도록 이벤트 그룹들로 그룹핑하고 있는 것이다.
본 발명에 따른 일 실시예에서는, 상기 그룹핑 정보에 포함되어 있는 하나 이상의 이벤트 그룹의 각각이, 해당 그룹에 속하는 이벤트 항목들을 그룹핑했을 때의 이벤트 가입에서 나타나는 이익과, 이벤트 통지에서 발생하는 손실로부터 산출하는 손익반영 값이, 기 정해진 기준 이상되는 이벤트 항목들의 집합으로 이루어져 있는 것인 기기.
본 발명에 따른 다른 일 실시예에서는, 상기 그룹핑 정보가, 상기 모든 기기들이 각기 필요로 하는 이벤트 항목들의 집합에 대해 개별적으로 이벤트 그룹으로 지정하고 있되, 2이상의 기기들이 필요로 하는 이벤트 항목들이 서로 일치하는 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정하고 있다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 그룹핑 정보가, 발생빈도가 높은 이벤트 항목들이 속하는 임의의 제 1이벤트 그룹이, 발생빈도가 낮은 이벤트 항목들이 속하는 임의의 제 2이벤트 그룹에 비해서 더 적은 수의 이벤트 항목들을 포함하도록 그룹핑되어 있다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 그룹핑 정보가, 발생된 이벤트를 통지하는데 필요한 데이터양이 기 지정된 기준치 이상이거나, 또는 그 통지하는 데이터의 내용이 특정의 중요도 이상인 이벤트 항목에 대해서 단독으로 하나의 이벤트 그룹으로 지정되어 있다.
본 발명에 따른 일 실시예에서는, 상기 제 2처리부가, 상기 기기에서, 상기 그룹핑 정보에 지정되어 있는 임의의 이벤트 항목에 해당하는 이벤트가 발생하면, 상기 그룹핑 정보에서 지정하고 있는 상기 발생한 이벤트가 속하는 이벤트 그룹에 그 발생 횟수를 기록함으로써, 상기 그룹핑 정보의 각 이벤트 그룹에 대하여 어떤 이벤트 항목들이 얼마나 발생하였는지를 나타내는 정보를 생성한다.
전술한 본 발명 또는, 하기에서 첨부된 도면과 함께 상세히 설명되는 본 발명의 적어도 일 실시예에 따른, 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법은, 네트워크 상에 연결된, 각기 서비스 기반으로 타 기기와 정보를 교환하는 기기들이, 이벤트성으로 타 기기로부터 원하는 상태에 대한 현재 정보를 즉시 수신하고자 해당 이벤트 항목에 가입하는 동작에 따라 네트워크에 일시에 집중적으로 가해지는 트래픽을 감소시킬 수 있다.
그리고, 본 발명은, 이벤트 항목에의 가입을 위한 트래픽이, 이벤트 항목들의 그룹핑 정보가 적용될 네트워크 상의 모든 기기들이 어떤 이벤트 항목들을 필요로 하는지를 알지 못하는 조건에서도 감소될 수 있도록, 또한 각 기기가 어떤 이벤트 항목들을 필요로 하는지를 아는 조건에서는 훨씬 효과적으로 감소될 수 있도록 이벤트 항목들을 그룹핑한다.
또한, 이벤트 가입에 대해서 트래픽을 감소시키는 양과 그 감소를 위해 복수개의 이벤트들을 그룹핑했을 때 불필요한 통지를 위해 발생되는 트래픽 양을 서로 비교하여, 보다 이익이 되는 방향으로 선택적으로 이벤트를 그룹핑함으로써, 네트워크 상의 기기들에의 적용 시에 가장 효과적인 시간 상에서의 트래픽 분산이 이루어지도록 한다.
그리고, 본 발명의 일 실시예에 따르면, 이벤트 항목들에 대해 그룹핑한 정보를 적용했을 때, 그룹당 이벤트들의 실제 발생빈도 등을 파악하여 제공함으로써, 가입을 위한 트래픽 양의 축소나, 또는 가입과 통지 간의 최적의 트래픽 분배에 있어서 보다 더 효과적인 이벤트 항목들에 대한 재그룹핑이 이루어지도록 할 수 있다.
더욱이, 본 발명은, 자동차 등과 같은 특정 용도의 장치에 설치되는 네트워크 시스템에서 서비스 기반으로 정보 교환이 이루어지는 기기들에 적용되는 응용 프로그램을 개발함에 있어서, 그 응용 프로그램이 서비스 기반의 요청을 위해 준수해야 하는 응용 프로그램 인터페이스를, 사용자가 선택하는 서비스 항목이나 메소드 등에 대해 자동적으로 생성하여 이를 기반으로 응용 프로그램을 개발할 수 있게 함으로써, 필요한 통신규약에 대한 개발자들의 오해나 코딩에서의 오류를 방지할 수 있고, 이로 인해, 서로 다른 개발자들이 각기 개발한 응용 프로그램들을 네트워크 시스템 통합시키는 과정에서의 시험이나 정합 상의 오류정정에 소요되는 시간을 단축시킬 수 있게 한다.
도 1은, 임의의 기기에서 실행되는 응용 프로그램들이, 타 기기로부터 특정 상태를 이벤트성으로 통지받기 위해 네트워크를 통해 서로 필요한 정보를 교환하는 과정을 개념적으로 도시한 것이고,
도 2는, 본 발명의 일 실시예에 따른, 서비스 기반의 이벤트 항목들에 대해서 다양한 방법으로 그룹핑할 수 있는 장치의 구성을 도시한 것이고,
도 3은, 본 발명의 일 실시예에 따른, 특정 용도의 임의 장치에 대해 지정되는 서비스 규칙에 대해 트리 형태로 구조화된 규약정보의 예를 부분적으로 나타낸 것이고,
도 4는, 본 발명의 일 실시예에 따라, 사용자로부터 입력되거나 선택된 정보를 기반으로 하여 도 2의 장치가 자동적으로 생성하는 응용 프로그램 인터페이스의 형식을 간략히 예시한 것이고,
도 5a는, 본 발명의 일 실시예에 따른, 서비스 항목별로 이벤트 항목들을 그룹핑하는 방법을 도식적으로 나타낸 것이고,
도 5b는, 본 발명의 일 실시예에 따른, 모든 이벤트 항목들이 각각의 그룹에 배정되고, 임의의 이벤트 항목에 대한 가입 요청에 대해서는, 배정된 이벤트 그룹으로 가입하게 되는 과정을 보여주는 도면이고,
도 6은, 본 발명의 다른 일 실시예에 따른, 서비스 오브젝트(object)들 간의 상관성에 근거하여 서비스 오브젝트들을 각각의 세트(set)로 구분하고, 그 구분된 세트마다 이벤트 그룹을 지정하는 방법을 도식적으로 나타낸 것이고,
도 7a 내지 7c는, 본 발명의 또 다른 일 실시예에 따라, 이벤트 항목들에 대하여 그 발생빈도에 근거하여 그룹핑하는 각 방법과 그 방법들 간의 이벤트 발생 통지에서의 차이를 예시적으로 보여주는 도표들이고,
도 8은, 본 발명의 또 다른 일 실시예에 따라, 이벤트들 간의 상관성과 발생빈도를 함께 고려하여 그룹핑하기 위해, 이벤트들 간의 발생빈도를 상관성으로 치환할 때 적용할 수 있는 하나의 규칙을 예시하는 그래프이고,
도 9는, 본 발명의 또 다른 일 실시예에 따른, 네트워크 상의 어떤 기기가 어떤 이벤트 항목들을 필요로 하는지를 지정하고 있는 정보에 근거하여 이벤트들을 그룹핑하는 방법을 설명하기 위해, 간단한 예로서 나타낸 네트워크 시스템과 이벤트 프로파일을 보여주는 도면이고,
도 10은, 본 발명의 일 실시예에 따른, 도 9에 예시된 바와 같은 이벤트 프로파일로부터 산출할 수 있는, 이벤트 항목들을 그룹핑할 때의 이익과 손실에 근거하여 이벤트 항목들을 그룹핑하는 방법을 예시적으로 보여주는 흐름도이고,
도 11은, 본 발명의 다른 일 실시예에 따른, 네트워크 상의 각 기기가 필요로 하는 이벤트 항목들에 대한 가입에 따라 발생하는 트래픽을 최소화시키는 이벤트 그룹핑 방법을 예시적으로 보여주는 도면이고,
도 12는, 도 11에 예시된 방법을 적용하는 실시예에 있어서, 이벤트에 대한 통지가 멀티캐스트(multicast) 방식으로 이루어지는 것을 고려하여, 하나의 기기가 필요로 하는 이벤트 항목들에 대해서 분할하여 그룹핑할 때의 잇점을 예시적으로 보여주는 도면이고,
도 13은, 본 발명의 일 실시예에 따른, 이벤트 항목들의 그룹핑 정보를 참조하여, 이벤트 가입을 연결된 네트워크를 통해 타 기기에 요청할 수 있는, 네트워크 상의 노드가 되는 임의 기기의 구성을 예시한 것이고,
도 14는, 본 발명의 일 실시예에 따라, 도 13의 기기가 발생되는 이벤트들에 대해서 해당되는 이벤트 그룹별로 기록하여 생성하는 통계정보의 일 예를 나타낸 것이다.
이하에서는, 본 발명에 따른 다양한 실시예들에 대해 첨부된 도면을 참조하여 상세히 설명한다.
이하의 본 발명에 따른 실시예들의 설명과 첨부된 도면에 있어서, 부기된 동일 번호는 특별한 사정이 없는 한 동일한 구성요소를 지칭한다. 물론, 설명의 편의와 이해에의 도움을 위해, 필요에 따라서는 동일한 구성요소에 대해서도 서로 다른 번호로 부기될 수도 있다.
도 2는, 본 발명의 일 실시예에 따른, 서비스 기반의 이벤트 항목들에 대해서, 지정되는 조건에 맞게 다양한 방법으로 그룹핑할 수 있는 장치의 구성을 도시한 것으로서, 서비스 기반의 동작을 하는데 필요한 기반정보( 응용 프로그램 인터페이스, 이벤트들에 대한 그룹핑 정보 등 )를 생성하는 것을 주 기능으로 하는 장치( 이하, '기반정보 생성장치'라 칭한다. )이다.
상기 기반정보 생성장치(100)는, 입력되는 데이터를 영상, 이미지, 문자 등의 형태로 시각적으로 표현하는 디스플레이부(114)와, 키보드 및/또는 마우스 등과, 이들에 의한 신호를 처리하는 기기를 포함하여 구성되어 사용자로부터의 입력 및/또는 선택을 감지하여 그에 상응하는 입력 데이터나 정보를 출력하는 사용자 입력부(115)( 이 사용자 입력부에는, 상기 디스플레이부(114)의 전면에 부착된 터치 스크린이 포함될 수도 있다. )와, 다른 저장장치나 기기가 직접 연결될 수 있는 포트를 구비하거나 또는 무선신호 방식으로 신호교환할 수 있도록 구성된 기기 인터페이스부(112)와, 설정된 서비스 규칙에 맞는 응용 프로그램 인터페이스의 생성을 위해 필요한, 상기 사용자 입력부(115)로부터의 선택 및/또는 정보 입력이 적절히 이루어질 수 있도록, UI 화면을 상기 디스플레이부(114) 상에 표시하는 주 처리부(110)와, 상기 설정된 서비스 규칙에 따라 이후에 다른 기기들이 이용하게 되는 이벤트 항목들에 대해서, 상기 주 처리부(110)가 인가하는 정보나 조건 등에 따라 복수개의 그룹으로 분류하는 이벤트 그룹핑부(111)와, 상기 주 처리부(110)의 동작 또는 그에 의해 실행되는 프로세스, 그리고 상기 이벤트 그룹핑부(111)의 동작을 위해 필요한 데이터 저장공간을 제공하는 스토리지부(113)를 포함하여 구성된다.
상기 주 처리부(110)는, 자신에게 구비된 펌웨어(firmware) 등의 기 저장된 명령코드들, 또는 펌웨어에 의해 상기 스토리지부(113)에 수록된 프로그램의 명령코드들을 구비된 중앙처리장치(CPU)가 실행함으로써, 구비된 주변 하드웨어 요소들과 함께 이하에서 상세히 설명하는 다양한 동작들을 수행하는 형태로 구성될 수 있다. 이는, 상기 이벤트 그룹핑부(111)의 경우에도 마찬가지이다.
또한, 본 발명의 개념과 주제에 대한 이해를 돕기 위해, 상기 기반정보 생성장치(100)의 구성요소를 도면에 예시된 바와 같이 기능적으로 구분하였지만, 이들 구성요소들은 필요에 따라 더 세분된 구성요소로 분해될 수도 있고, 또는 일부 구성요소들은 서로 선택적으로 조합되어 하나의 구성요소가 될 수도 있으며( 예를 들어, 상기 이벤트 그룹핑부(111)가 상기 주 처리부(110)에 결합되어 하나의 구성요소가 될 수도 있다. ), 본 발명의 실시예에 따라서는, 도시되지 않은 구성요소가 더 포함되어 상기 기반정보 생성장치(100)를 구성할 수도 있다.
이하에서 그 동작이 상세히 설명되는 상기 기반정보 생성장치(100), 특히 상기 주 처리부(110)와 상기 이벤트 그룹핑부(111)의 모든 기능은, 범용의 컴퓨팅(computing) 장치에서 그 운영시스템을 기반으로 실행되는 명령 코드(code)들로써 구성된 프로세스(process) 또는 실행 모듈(executable module)에 의해 달성될 수 있다. 이러한 경우에는, 범용의 컴퓨팅 장치에서 프로세스 또는 실행모듈이 될 명령 코드들로써 이루어진 하나 이상의 파일이 상기 주 처리부(110)와 상기 이벤트 그룹핑부(111)에 해당할 수 있다. 그리고, 이들(110,111)의 파일은, 별도의 휴대용 저장장치나 서버 등의 하드 디스크와 같은 기록매체에 구비되어, 범용의 컴퓨팅 장치와 직접 연결되어 복사/이동되거나 또는 온라인으로 다운로드되어 그 범용의 컴퓨팅 장치의 메모리에 로드(load)된 후 실행될 수 있다.
이렇게 실행된 상태의 범용의 컴퓨팅 장치는, 본 발명에 따른, 서비스 기반의 이벤트 항목들을 그룹핑하여 그 그룹핑된 결과를 제공하는 등의 동작을 하는 상기 기반정보 생성장치(100)가 된다.
한편, 상기 주 처리부(110)와 이벤트 그룹핑부(111)의 기능들의 적어도 일부가 미들웨어(middleware), 또는 응용 프로그램들이 기반하는 플랫폼(platform) 형태로, 또는 운영시스템(OS)의 일부의 형태로 범용의 컴퓨팅 장치에 구현되어 있을 수도 있고, 하드웨어(hardware)의 구성을 포함함으로써, 이하에서 상세히 설명하는 기능들의 일부를 그 하드웨어를 통해 수행할 수도 있다.
따라서, 본 발명에 따른 다양한 실시예들에서 그 구성과 동작이 상세히 설명되는 도 2에 예시된 상기 기반정보 생성장치(100)는, 그 구현하는 형태 또는 사용된 자원(resource)의 유형 등에 의해 본 발명의 범위가 제한되는 것은 아니다.
이하에서는, 도 2에 그 구성된 예시된 기반정보 생성장치(100)가, 기 지정된 서비스 규칙에 따른 응용 프로그램 인터페이스를 생성하고, 이와 함께 그 서비스 규칙에서 정하고 있는 이벤트 항목들에 대해서 다양한 방식에 따라 그룹핑하는 방법에 대해서 구체적으로 설명한다.
도 2의 상기 스토리지부(113)에는, 도 3에 예시된 바와 같은, 기 지정된 서비스 규칙에 맞게 트리 형태로 구조화된 서비스 규약정보(300)가 저장된다. 그리고, 이 규약정보(300)에는, 그 규약을 구성하는 모든 요소들( 즉, 각 서비스 항목(310ki), 각 상태 변수(320kij), 각 메소드(330kij), 그리고 각 이벤트 항목(340kij). 이하에서는, 이들에 대해서 별도로 구분하지 않고 통칭할 필요가 있을 때, '서비스 구성 엘리먼트(element)'라는 용어를 사용한다. )에 적어도 일부에 대해서, 상기 기반정보 생성장치(100)의 사용자, 일반적으로 응용 프로그램 개발자 등이 직관적으로 알 수 있는 명칭(311ki,321kij,331kij,341ki)( 이하, 이를 '범용명'이라 칭한다. )이, 해당 서비스 구성 엘리먼트에 연계되어 부가되어 있을 수도 있다. 예를 들어, 응용 프로그램에 실제 사용되는 이벤트 항목에 대한 이벤트명이 'PositionMoved'와 같을 때, 이에 대한 범용명은 '좌석이동시'일 수 있다.
그리고, 상기 규약정보(300)의 각각의 서비스 항목(310ki)에 속하는 각 메소드(330kij)에는, 해당 메소드의 실행에 필요한 입력 및/또는 출력 파라미터(parameter), 그리고 그 파라미터가 어떤 형식의 타입이어야 하는지 등에 대한 사항을 정의하고 있는 메소드 사양정보(330akij)가 포함되어 있고, 각 이벤트 항목(340ki)에는, 그 항목의 이벤트 발생 시에 선택적으로 제공하게 되는 정보 외에 그 이벤트 항목에 대한 고유 식별자를 포함하는 이벤트 부가정보(340akij)가 포함되어 있을 수도 있다. 본 발명에 따른 일 실시예에서는, 상기 이벤트 부가정보(340akij)에, 해당 이벤트의 발생 빈도의 정도를 나타내는 정보가 포함되어 있을 수도 있다.
위와 같이 구조화된 서비스 규약정보(300)의 서비스 항목(310ki)들에 대해서는, 도시된 바와 같이 그들 간의 유사성 등에 따라 다수의 서비스 그룹(33)에 속하도록 분류할 수 있다. 물론, 이러한 서비스 그룹(33)으로의 분류는 선택적인 것이며, 반드시 이러한 그룹으로의 분류가 필요한 것은 아니다. 그리고, 서비스 항목(310ki)들에 대해서 서비스 그룹(33)으로 분류하는 경우에는, 각 서비스 그룹(300k)에 대해서도, 서비스 구성 엘리먼트와 같이 범용명이 부가되어 있을 수 있다.
그리고, 각각의 서비스 항목(310ki)들은, 또는 서비스 항목들이 상위 개념의 서비스 그룹으로 분류되어 있는 경우에는 각각의 서비스 그룹(300k)들은, 상기 규약정보(300)가 적용되는 특정 용도의 장치, 예를 들어 자동차의 어떤 부품, 어떤 부속품 또는 어떤 기기나 계통(32)에 대해서 제공되는 것인 지에 따라 기분류되어 있다. 그리고, 각 부품, 기기, 계통 등(32)은, 또한 그 특정 용도의 장치에 대해 일반적으로 구분하는 최상위 분류 항목들(31) 중 어느 하나에 속하도록 지정되어 있다. 자동차의 경우, 도 3에 예시된 바와 같이, 이러한 최상위 분류 항목은 차체(body)와 새시(shassis)가 될 수 있다.
도 3에 예시된 바와 같이, 자동차와 같은 적용대상 장치에 대해 분류된 분류 항목들(31,32,33)( 서비스 그룹(300k)은 분류 항목으로 포함되어 있지 않을 수도 있다. )과 연계되어 구축된 상기 규약정보(300)를 '서비스 계층정보'(3)라 칭한다.
상기 서비스 계층정보(3)는, 상기 기반정보 생성장치(100)의 기기 인터페이스부(112)를 매개로 통신로가 연결된 다른 기기나 장치로부터, 상기 주 처리부(110)가 수신하여 또는 착탈식으로 직접 연결된 저장장치로부터 읽어서 상기 스토리지부(113)에 미리 저장해 두게 된다.
상기 기반정보 생성장치(100)의 사용자가, 서비스 기반의 응용 프로그램을 개발하기 위해 필요한 원하는 서비스 항목들에 대한 응용 프로그램 인터페이스를 생성코자 하면, 상기 사용자 입력부(115)를 통해 상기 주 처리부(110)에 이를 요청하게 된다.
이 요청이 있으면, 상기 주 처리부(110)는, 상기 서비스 계층정보(30)에 근거하여, 사용자가 원하는 서비스 구성 엘리먼트를 선택할 수 있는 메뉴 화면을 구성하여 상기 디스플레이부(114)에 제공한다. 이 메뉴 화면은, 응용 프로그램이 적용될 특정 용도의 장치에 대한 분류 항목(31,32,33)들이 탑-다운(Top-Down) 방식으로 보여지게 되는 구분된 창을 포함하고 있을 수 있다.
이와 같이 제공된 메뉴 화면 상에서, 사용자가 원하는 특정 부품을 선택하면, 상기 주 처리부(110)는, 그 선택된 부품( 서비스 그룹의 분류가 있는 경우에는 이 선택 이후에 선택된 서비스 그룹 )에 대해 연계되어 있는 하나 또는 그 이상의 서비스 항목들을 상기 서비스 계층정보(30)에서 확인하여 상기 디스플레이부(114) 상에 나열한다. 이때 해당 서비스 항목에 대해 범용명이 연계되어 있으면 그 범용명을 표시하고, 그렇지 않으면 그 서비스 항목을 응용 프로그램에서 직접 사용하는 그 서비스 항목명을 그대로 표시한다. 이러한 표시는 다른 서비스 구성 엘리먼트, 즉 상태 변수, 메소드 및 이벤트 항목을 표시하는 경우에도 마찬가지이다.
상기 주 처리부(110)는, 상기 디스플레이부(114) 상에 나열한 서비스 항목들에서 하나가 선택되면, 상기 서비스 규약정보(300)에서, 그 선택된 서비스 항목에 대한 상태 변수, 메소드 그리고 이벤트 항목들을 상기 디스플레이부(114) 상에 표시한다. 이때, 각 상태 변수에 대해 수행할 수 있는 하나 이상의 메소드에 대하여 그 명칭( 해당 메소드를 응용 프로그램에서 실제 특정하는 변수명, 또는 전술한 바의 범용명 )을 함께 표시할 수도 있다. 다르게는, 특정 상태 변수가 선택된 시점에 그 상태 변수에 대해 지원되는 메소드를 표시할 수도 있다.
이와 같은 방식으로 하나 이상의 상태 변수, 하나 이상의 메소드 또는 하나 이상의 이벤트 항목에 대하여 선택된 상태에서, 상기 주 처리부(110)가 상기 디스플레이부(114) 상에 제공한 메뉴 화면 상에서 사용자가 특정 명령, 예를 들어 '내보내기'를 상기 사용자 입력부(115)를 통해 인가하면, 상기 주 처리부(110)는, 현재 선택되어 있는 서비스 구성 엘리먼트들에 대하여 응용 프로그램 인터페이스를 기 지정된 형식으로 수록한 파일을 상기 스토리지부(113)에 저장하거나, 상기 기기 인터페이스부(112)를 통해 외부의 기기나 장치로 전달한다.
도 4는, 이러한 방식으로 생성된 응용 프로그램 인터페이스에 대한 간단한 예로서, FIDL( Fuchsia Interface Definition Language ) 구문법(syntax)에 의해 작성된 것이다. 물론, 사용자가 선택하는 출력 형식에 따라서는, 상기 주 처리부(110)가 다른 구문법에 따라, 예를 들어 XML( eXtensible Markup Language ) 형식으로 작성하여 제공할 수도 있다.
도 4는, 자동차를 전제로 하여, 차체(41)의 최상위 분류에 속하는 좌석의 부품(42)에 대해 제공하는 '제어'라는 서비스 그룹(43)에서 '위치'라는 서비스 항목(44)에서 지원하는 메소드와 이벤트 항목이 선택됨으로써 작성된 응용 프로그램 인터페이스의 간단한 예시로서, 선택된 메소드에는 위치를 이동시키는 명령(401)이, 이벤트 항목에는 위치이동시 활성화되는 항목(402)이 포함되어 있는 예이다.
도 4에 예에서와 같이, 선택된 메소드(401)와 이벤트 항목(402)에는, 입력 및/또는 출력 변수에 대한 요건과 그 형식에 대한 정보가 구조체 형태로 정의되는데, 이와 같은 형식의 정의를 위해 필요한 정보는, 상기 서비스 규약정보(300)에 포함된 메소드 사양정보(330akij)와 이벤트 부가정보(340aki)로부터 얻게 된다.
도 4의 예에서, 작성된 이벤트 항목(402)에 전치된 'broadcast'는 해당 명칭이 이벤트에 대한 것임을 나타내는 지시자이다. 물론, 이 지시자는 다른 용어로써 정의될 수도 있다.
도 4에 예시된 바와 같이 작성된 응용 프로그램 인터페이스는, 컴파일링(compiling) 과정을 거쳐, 전자제어 유니트와 같은 기기나 장치에 실행될 응용 프로그램을 개발하는 컴퓨팅 장치 등에 구비되거나, 예시된 구문법으로 작성된 그대로 구비되어, 개발하는 응용 프로그램과 함께 컴파일링 된다. 그러면, 그 컴퓨팅 장치에서 개발하고 있는 또는 개발된 응용 프로그램들이 그 응용 프로그램 인터페이스의 구문법에 맞추어서 작성된 것인지 또는 실행되는 것인지를 알 수 있게 된다.
앞서 설명한, 사용자, 특히 응용 프로그램 개발자가 자신이 개발코자 하는 응용 프로그램에 대해서, 상기 기반정보 생성장치(100)를 이용하여 적용하고자 하는 부품과 서비스 항목 등을 선택하여 얻은 응용 프로그램 인터페이스를 기반으로 했을 때 오류가 없도록 프로그래밍하게 되면, 상기 기반정보 생성장치(100)와 동일한 장치를 이용하여 같은 방식으로 얻은 응용 프로그램 인터페이스를 기반으로 오류가 없도록 개발한 응용 프로그램들과의 정보 교환에서 정합성이 완벽하게 보장된다.
따라서, 상기 기반정보 생성장치(100)를 각기 사용한다면, 서로 다른 장소에서 서로 다른 개발자들이 완전히 독립적으로, 네트워크를 통해 서로 통신이 이루어져야 하는 응용 프로그램들을 개발할 수 있다. 이는, 응용 프로그램 인터페이싱에 대한 오해석 등으로 인한 응용 프로그램들의 인터페이싱, 또는 이들 간의 통신에서의 정합을 위한 개발자들의 시험과 오류 정정에 소요되는 시간과 노력을 크게 감소시키게 된다.
한편, 상기 주 처리부(110)는, 전술한 바와 같은 방식으로, 사용자가 선택한 서비스 구성 엘리먼트들에 대해서 응용 프로그램 인터페이스를 제공하는 것과 함께, 상기 서비스 규약정보(300)에 정의된 모든 이벤트 항목들에 대해서 복수개의 이벤트 그룹들로 매핑(mapping)시켜서 그룹핑한 정보( 이하, '이벤트 그룹핑 맵'이라 칭하며, 필요에 따라서는 '그룹핑 맵'으로 약칭한다. )를 제공한다. 이하의 구체적인 실시예들의 설명에서 분명해지겠지만, 이 그룹핑 맵에는, 하나의 이벤트 항목이 2이상의 이벤트 그룹들에 매핑되어 있을 수 있다.
이벤트 그룹핑 맵을 제공하기 위해서는, 먼저, 상기 주 처리부(110)가, 상기 디스플레이부(114) 상에 메뉴 화면을 제시하고, 그 메뉴 화면에서 사용자가 '이벤트 그룹핑'의 명령을 선택하면, 상기 이벤트 그룹핑부(111)에 이벤트 그룹핑을 명령한다.
본 발명에 따른 다양한 실시예들에서는, 이때의 그룹핑하는 명령에, 그룹핑할 방식을 지정하는 모드 정보를 전달하거나, 필요에 따라서는 구체적인 조건을 지정하는 파라미터를 전달할 수도 있다. 이러한 실시예들에 대해서는 이후에 설명된다.
이벤트 그룹핑 명령이 인가되면, 본 발명에 따른 일 실시예에서는, 상기 이벤트 그룹핑부(111)가, 상기 스토리지부(113)에 저장되어 있는 상기 서비스 규약정보(300)를 검색하여, 도 5a에 예시된 바와 같이, 모든 이벤트 항목들에 대하여 그 이벤트 항목들이 속한 서비스 항목별로 그룹핑한다. 이를 보다 구체적으로 설명하면, 하나의 서비스 항목에 속한 이벤트 항목들(51i, i=1,2,..)을 하나의 그룹으로 하여, 그 그룹에 속한 이벤트 항목들의 각각에 대해 할당되어 있는 이벤트 고유 식별자들을 하나의 그룹(52i, i=1,2,..)으로 하여 이벤트 그룹 식별자(53i, i=1,2,..)( 이하, '그룹 식별자'로 약칭한다. )를 할당한다. 상기 이벤트 고유 식별자( 이하, '이벤트 식별자'라 약칭한다. )는, 전술하였던 바와 같이, 해당 이벤트 항목에 연계되어 있는 이벤트 부가정보(340aki)에 포함되어 있으면 해당 부가정보로부터 알 수 있으며, 다르게는, 분류상의 계층에 따른 속명(屬名)을 순차적으로 전치시킨 이벤트명으로써 유일 식별할 수 있게 정의될 수 있다. 예를 들어, 도 4의 예에서 볼 때, 예시된 이벤트 항목(402)의 식별자는, 'Body.Seat.Control.Position.PositionMoved'로 정해져 사용될 수 있다.
앞서 설명한 바와 같은 방식으로, 서비스 항목별로 하나의 이벤트 그룹을 할당함으로써, 서비스 기반 하에서 가입하고 그 가입에 따라 이벤트 발생 시 통지하게 되는 전체 이벤트들이 그 수보다 적은 수의, 각기 이벤트 그룹 식별자가 부여된 그룹들로 분류된다. 도 5b는 이에 따라 구성된 이벤트 그룹핑 맵(500)의 예를 보여준다.
상기 이벤트 그룹핑부(111)는, 본 발명의 일 실시예에 따라, 모든 이벤트 항목들을 이렇게 분류하여 그룹핑함으로써 얻은 그룹핑 맵(500)을 기 정해진 형식으로 작성하여 상기 주 처리부(110)에 앞선 그룹핑 명령의 응답으로서 전달한다.
그러면, 상기 주 처리부(110)는, 응용 프로그램 인터페이스에 대해 처리하는 것과 동일한 방식으로 상기 기기 인터페이스부(112)를 통해 외부의 저장장치나 기기 등에 제공한다. 이렇게 제공된 이벤트 그룹핑 맵(500)은, 네트워크에 연결되어 서비스 기반으로 동작하는 전자제어 유니트와 같은 기기나 장치( 본 명세서에서는, 이를 '노드(node)'라 통칭한다. )에 구비되어, 해당 노드에서 실행되는 응용 프로그램들의 이벤트 가입 시에 참조되는데, 이러한 참조를 기반으로 필요한 이벤트 항목에 대해서 해당 그룹으로 가입하는 동작은, 해당 노드에서 실행되는, 응용 프로그램들이 기반하여 동작하게 하는 미들웨어(middleware)나 플랫폼, 또는 특별한 에이전트(agent) 개체에 의해 수행될 수 있다.
도 5b에는, 구비된 이벤트 그룹핑 맵(500)에 근거하여 이벤트 가입이 이루어지는 과정이 도식화되어 있다. 임의의 응용 프로그램(55)이, 네트워크 상의 타 기기가 전담하는 상태 변수와 연관된 특정 이벤트 항목에 가입코자 하여 그 이벤트 항목의 식별자와 함께, 전술한 바의 미들웨어나 특별한 에이전트 개체와 같은 실행 모듈에 가입을 요청하면(p51), 그 실행 모듈은, 동일 노드 내에 기 구비된 그룹핑 맵(500)을 참조하여, 그 이벤트 식별자가 어떤 이벤트 그룹에 속하는 지를 확인한 후, 그 확인된 이벤트 그룹의 식별자로써 타 기기에 이벤트 가입 요청 메시지를 전송하게 된다(p52). 즉, 개별적인 이벤트 가입을 이벤트의 그룹 가입으로 변경시켜 가입 요청을 하게 되는 것이다.
임의의 이벤트 그룹 내의 NEVNT개의 이벤트 항목들에 대하여 가입 요청을 개별적으로 하게 되면, NEVNT개의 가입 요청 메시지의 트래픽이 네트워크 상에 발생하게 되지만, 앞서 설명한 바와 같이 이벤트 그룹으로 하게 되면, 해당 그룹의 식별자로써 한번에 할 수 있으므로, 네트워크에 가해지는 트래픽의 양은 개별적인 경우에 비해 1/NEVNT로 감소하게 된다.
따라서, 특정용도의 장치에서 부팅과 같은 초기에 이벤트 가입을 위해 집중되는 트래픽의 양이 현저히 감소하게 되어, 이벤트 가입이 집중됨에 따른 초기 지연의 발생가능성이 그만큼 감소하게 된다.
본 발명에 따른 다양한 실시예들에서는, 상기 이벤트 그룹핑부(111)가 이벤트 항목들에 대해서 서비스 항목별 그룹핑이 아닌 다른 방식으로 그룹핑할 수도 있다. 이하에서는 이러한 실시예들에 대해서 설명한다.
다른 방식으로 이벤트 항목들을 그룹핑하는 실시예들 중 하나는, 서비스 항목들 간의 상호 연관성에 따라 이벤트 항목들을 그룹핑하는 것이고 다른 하나는 서비스 그룹들 간의 상호 연관성에 따라 이벤트 항목들을 그룹핑하는 것이다. 본 명세서에서는, 서비스 항목과 서비스 그룹을 통칭하여 '서비스 오브젝트(object)'라 칭한다. 즉, 본 명세서에서의 설명이나 청구항에서의 서비스 오브젝트의 용어는, 설명이나 기재의 내용상 그 적용이 배척될 수 밖에 없는 경우가 아니라면, 서비스 항목을 지칭하거나 아니면 서비스 그룹, 또는 그 둘 모두를 지칭하는 것일 수 있다.
서비스 오브젝트들 간의 상호 연관성에 따라 이벤트 항목들을 그룹핑하기 위해서는, 도 6에 개념적으로 예시한 서비스 오브젝트들 간의 상호 연관성을 나타내는 지수( 이하, '상관지수'라 칭한다. )가 사전에 결정되어 서비스 오브젝트의 상관성 정보로서, 상기 기반정보 생성장치(100)에 입력되어 상기 스토리지부(113)에 미리 저장된다. 도 6의 예에서, 서비스 오브젝트들 간에 링크(link)로써 연결되어 있지 않은 것은, 그들 상호 간의 상관지수가 0임을 의미한다.
서비스 오브젝트들 간의 상관지수는, 임의의 응용 프로그램이 하나의 서비스 오브젝트에 대한 동작을 수행할 때 그 서비스 오브젝트에 기반한 동작과 함께 수행할 가능성이 있는 다른 서비스 오브젝트들에 대해서 그 가능성을 나타내는 값으로서, 이들 값은 모든 오브젝트들에 대해 사전에 결정되어 상기 이벤트 그룹핑부(111)에 의해 사용된다.
도 6에 예시된 바와 같은 서비스 오브젝트들 간의 상호 연관성을 나타내는 정보(600)( 이하, '연관성 정보'로 약칭한다. )가 상기 스토리지부(113)에 수록되어 있으면, 상기 이벤트 그룹핑부(111)는, 그 정보(600)에서, 임의의 순서로 하나씩 서비스 오브젝트를 선택하면서, 다른 오브젝트와의 상관지수에 근거하여 서비스 오브젝트들에 대해서 그룹핑하게 된다. 물론, 이와 같은 상관지수에 근거한 서비스 오브젝트들의 그룹핑( 최종적으로는, 그 서비스 오브젝트들의 그룹핑 결과에 따른 이벤트 항목들에 대한 그룹핑 )은, 상기 주 처리부(110)로부터의 그룹핑 명령 인가와 함께 전달되는 지정 모드와, 그 모드의 파라미터로서 동반 전달되는 상관지수 기준치에 근거하여 이루어지게 된다.
상기 주 처리부(110)는, 상기 디스플레이부(114)에 표시된 메뉴 화면에 따라, 상기 사용자 입력부(115)를 통해 사용자가 선택한 또는 입력한 값에 근거하여, 상관성 기반 그룹핑을 지정하는 모드와 상관지수 기준치( 이하, '상관 기준치'라 칭한다. )를 결정하여 상기 이벤트 그룹핑부(111)에 그룹핑 명령과 함께 전달하게 된다.
도 6의 예는, 상기 주 처리부(110)에서 지정한 상관 기준치가 0.5일 때에, 상기 연관성 정보(600)에 근거하여, 상기 이벤트 그룹핑부(111)가 서비스 오브젝트들을 그룹핑하는 과정에서의 한 시점을 보여주고 있다.
상기 이벤트 그룹핑부(111)는, 서비스 오브젝트들에 대해서 임의의 순서로 선택하면서, 현재 선택된 서비스 오브젝트(610)와 직접 연관되어 있는 서비스 오브젝트들(611,612,613,614,615)( 여기서, '직접 연관'은, 임의의 서비스 오브젝트에 대해서, 그 오브젝트와의 상관지수가 지정되어 있는 다른 서비스 오브젝트가 있을 때, 이들 서비스 오브젝트 간의 관계를 의미하며, 도 6의 예에서는, 실선의 링크로써 표현되어 있다. )에서, 아직 그룹핑되지 않은 서비스 오브젝트들(611,612,614,615)을 그룹핑 후보군으로 선정한다.
그리고, 이렇게 선정된 후보군에서, 상기 주 처리부(110)로부터 인가된 상관 기준치, 즉 0.5 이상인 서비스 오브젝트들(611,612)만을 잠정적으로 현재의 서비스 오브젝트(610)와 함께 하나의 서비스 오브젝트 그룹으로 묶는다.
그런 다음, 이렇게 잠정적으로 그룹핑된 다른 서비스 오브젝트들(611,612)들 각각에 대해서는, 그 다른 오브젝트와 직접 연관된 또 다른 서비스 오브젝트들과의 간접 상관지수를 계산하고, 그 간접 상관지수가 상기 상관 기준치 이상이 되는 또 다른 서비스 오브젝트가 있으면, 그 서비스 오브젝트를 앞서 잠정적으로 그룹핑한 그룹에 포함시킴으로써 최종적으로 하나의 서비스 오브젝트 그룹을 확정한다(p61).
상기 간접 상관지수는, 직접 연관된 오브젝트들 간의 상관지수를 서로 곱하여 얻어질 수 있다. 도 6의 예에서, 직접 연관된 다른 서비스 오브젝트(611)와의 상관지수 0.9가, 그 서비스 오브젝트(611)와 직접 연관된 또 다른 서비스 오브젝트(622)와의 상관지수 0.5와 서로 곱해져, 현재 서비스 오브젝트(610)와 그 또 다른 서비스 오브젝트(622)와의 간접 상관지수 0.45가 산출된 것(631)을 보여주고 있으며, 그 산출된 간접 상관지수(631)가 상관 기준치 미만이어서, 그 또 다른 서비스 오브젝트(622)는, 현재 서비스 오브젝트(610)의 그룹핑에 묶이지 않게 된다.
이에 반해, 또 다른 서비스 오브젝트(621)와의 간접 상관지수는 0.56으로서(632) 현재 지정된 상관 기준치 이상이므로, 최종 확정하는 서비스 오브젝트 그룹(p61)에 속하게 된다.
위에 설명한 간접 상관지수는, 하나의 서비스 오브젝트를 매개로 상관성이 서로 맺어지는 서비스 오브젝트들 뿐만 아니라, 2개 이상의 서비스 오브젝트들을 매개로 상관성이 서로 맺어지는 오브젝트들에 대해서도 산출되어, 현재의 서비스 오브젝트의 그룹핑에 포함시킬 지 여부의 결정에 이용될 수 있다.
본 발명에 따른 일 실시예에서는, 이와 같이 서비스 오브젝트들의 그룹핑을 위해 산출하는 간접 상관지수에 대해서 그 깊이에 대한 제한을 상기 주 처리부(110)로부터 파라미터로서 입력받아 서비스 오브젝트의 그룹핑에 반영할 수도 있다. 상관성 깊이는, 현재의 서비스 오브젝트에 대한 그룹핑에서, 그 오브젝트와 직접 연관되지 않은 서비스 오브젝트에 대해서, 몇 개의 서비스 오브젝트를 매개로 상관성이 맺어지는 서비스 오브젝트들까지를 간접 상관지수에 근거하여 포함시킬 수 있는 지를 제한시키기 위한 값으로서, 예를 들어, 0이면, 현재의 서비스 오브젝트와의 상관성에 근거한 그룹핑에 있어서, 직접 연관된 서비스 오브젝트들만을 대상으로 하고, 1이면, 1개의 오브젝트를 매개로 상관성이 맺어지는 오브젝트들까지만( 즉, 그 이상의 수로써 매개되어 상관성이 맺어지는 경우에는 간접 상관지수를 산출하지 않고 ), 그리고 2이면 2개의 오브젝트를 매개로 상관성이 맺어지는 오브젝트들까지만 그 대상으로 하는 것을 지정한다.
상관성 깊이는, 전술하였던 바와 같이, 상기 주 처리부(110)가 상기 디스플레이부(114)에 제시한 메뉴 화면 상에서 사용자가 지정하여 그룹핑 환경정보 등으로 설정함으로써 상기 주 처리부(110)가 이 값을 획득할 수 있게 된다.
도 6을 참조로 설명한 바의, 서비스 오브젝트들 간의 상관지수에 근거한 그룹핑이 그룹핑되어 있지 않은 서비스 오브젝트들에 대하여 차례로 진행됨으로써, 모든 서비스 오브젝트들에 대한 서비스 오브젝트 그룹으로의 구획을 완료한다.
본 발명에 따른 일 실시예에서는, 하나의 서비스 오브젝트가 둘 이상의 그룹에 중복하여 그룹핑될 수도 있다. 본 실시예에서는, 간접 상관지수에 의해 임의의 서비스 오브젝트 그룹에 속하는 것으로 그룹핑된 서비스 오브젝트(621)에 대해서는, 그 서비스 오브젝트를 기준으로 하여, 그 임의의 서비스 오브젝트 그룹에 속하지 않는 다른 서비스 오브젝트들(622,623)과의 상관지수를 상관 기준치와 비교하여 선택적으로 서비스 오브젝트 그룹을 생성할 수 있다(p62).
모든 서비스 오브젝트들에 대한 서비스 오브젝트 그룹으로의 구획을 완료하면, 상기 이벤트 그룹핑부(111)는, 각 서비스 오브젝트 그룹에 속하는 하나 이상의 서비스 오브젝트에 속하는 이벤트 항목들을 하나의 이벤트 그룹으로 하여 그룹 식별자를 할당한다(62i, i=..,m,m+1,m+2,..).
그리고, 이렇게 그룹 식별자를 할당함으로써 이벤트 그룹핑 맵을 작성 완료하면, 전술한 바와 마찬가지로, 상기 이벤트 그룹핑부(111)는 상기 주 처리부(110)에 앞선 그룹핑 명령의 응답으로서 전달한다. 이후의 과정은, 도 5b를 참조로 설명한 바와 동일하다.
지금까지 설명한 서비스 오브젝트들 간의 상관성에 근거한 이벤트 그룹핑은, 서비스 오브젝트의 상위 개념의 분류 항목, 예를 들어, 부품이나 기기에 적용하거나, 이벤트 항목들에 직접 적용할 수도 있다.
전자의 경우는, 부품이나 기기들 간의 상관지수가, 도 6에 예시된 바와 같은 방식으로, 각 부품이나 기기에 대해서 미리 지정되고, 상기 이벤트 그룹핑부(111)는, 각 부품이나 기기에 대해서, 전술한 실시예에서와 동일한 방식으로 그룹핑한 후, 그 결과로 얻어진 각 그룹에 대해서, 해당 그룹에 속하는 부품이나 기기를 위해 정의된 모든 서비스 오브젝트들에 속하는 이벤트 항목들을 하나의 이벤트 그룹으로 묶게 된다.
그리고, 이벤트 항목들에 직접 적용하는 후자의 경우는, 상기 서비스 규약정보(300)에 정의된 모든 이벤트 항목들에 대해서 개별적으로 다른 이벤트 항목들과의 상관지수가, 도 6에 예시된 바와 같은 방식으로 미리 지정된다. 그리고 상기 이벤트 그룹핑부(111)는, 도 6을 참조로 설명한 바와 동일한 방식으로, 각각의 이벤트 항목에 대해서 다른 이벤트 항목과의 직접 상관지수를 이용하여( 또는 간접 상관지수도 함께 이용하거나, 실시예에 따라서는 지정된 상관성 깊이에 근거하여 ) 이벤트 그룹핑을 함으로써, 바로 그룹핑 맵을 작성하게 된다.
한편, 모든 이벤트 항목들에 대해 다른 이벤트 항목들과의 상관지수가 지정될 때, 서로 다른 서비스 항목에 속하는 이벤트 항목들 간에는 상관지수가 0으로 지정될 수도 있다. 이렇게 지정되면, 서로 다른 서비스 항목에 속하는 이벤트 항목들은 동일한 이벤트 그룹에 매핑되지 않을 수 있다.
전술한 실시예들에서와 같이, 상관지수에 근거해 이벤트 항목들을 그룹핑할 때, 그 기준이 상관 기준치로서 주어질 수도 있지만, 다른 요건으로서 주어질 수도 있다. 본 발명에 따른 일 실시예에서는, 이벤트 그룹에 대한 허용 개수가 이러한 요건일 수 있다. 이벤트 그룹의 허용 개수는, 전술하였던 바와 같이, 특정용도의 임의 장치에 설치된 네트워크 시스템의 초기에 이벤트 가압을 위해 발생시키게 되는 트랙픽의 양을 제한시키는 작용을 한다. 즉, 이벤트 그룹의 수를 적게 하면 그룹기반의 이벤트 가입을 위한 트래픽의 양이 감소하고, 많게 하면 가입을 위한 트래픽의 양이 증가하기 때문에, 이벤트 그룹의 수를 최대 일정 개수까지만 허용 하게 되면, 이벤트 가입을 위한 트래픽 양을 대략적으로 제한시킬 수 있다.
그런데, 초기의 이벤트 가입을 위한 트래픽 양을 감소시키기 위해 이벤트 그룹의 수를 적게 하면, 이는 곧 이벤트 그룹에 포함시키게 되는 이벤트들의 수가 평균적으로 많아지게 된다. 그룹내의 이벤트 수가 많아지면, 네트워크 시스템에서 이벤트가 발생하였을 때 이를 불필요하게 통지하게 되는 데이터 양이 증가하게 된다. 이에 대해서는 이후의 보다 구체적으로 설명된다.
따라서, 적용하는 네트워크 시스템에서의 모든 이벤트 항목들에 대해서, 초기에 집중되는 트래픽과 동작 중의 이벤트 발생 시에 불필요하게 발생되는 데이터 양을 예측 비교하여 적정한 수의 이벤트 그룹들로 그룹핑하는 것으로 결정할 수 있다. 이렇게 결정된 이벤트 그룹들의 허용 개수에 대해서, 상기 기반정보 생성장치(100)의 사용자가 상기 사용자 입력부(115)를 통해 상기 주 처리부(110)에 입력하고, 상기 주 처리부(110)는 이렇게 입력된 이벤트 그룹 허용 개수를, 파라미터로서 모드 지정과 함께 그룹핑 명령을 상기 이벤트 그룹핑부(111)에 인가함으로써 전달하게 된다.
그러면, 상기 이벤트 그룹핑부(111)는, 그 전달받은 허용 갯수를 제한 그룹수로하여, 전술한 바의 상관지수에 근거한 이벤트 그룹핑을 하게 된다. 이때, 초기에는 상관 기준치를 중간값, 예를 들어, 0.5로 하여 이벤트 그룹핑을 하고, 그 결과에 따라 만들어진 그룹핑 맵의 전체 이벤트 그룹 수를 확인한 후, 그 그룹 수가 상기 제한 그룹수보다 작으면 상관 기준치를 일정 간격 증가시키고, 크면 일정 간격 감소시켜 이벤트 그룹핑을 재수행한다. 이와 같은 방식으로, 상관 기준치를 일정 간격씩 적응적으로 변경시키면서 이벤트 그룹핑을 함으로써, 최종적으로, 상기 제한 그룹수보다 크지 않은 최대의 그룹 수가 되는 이벤트 그룹핑 맵을 작성하게 된다.
본 발명에 따른 다른 일 실시예에서는, 이벤트 항목들에 대해서 그룹핑할 때, 각 이벤트 항목의 발생빈도에 근거할 수도 있다. 각 이벤트 항목의 발생빈도는, 전술한 바의 이벤트 부가정보(340aki)에 해당 이벤트 항목에 대해 개별적으로 지정되어 있을 수 있으며, 다르게는, 발생빈도별로 이벤트 항목들을 정렬하여 리스트한 이벤트 발생빈도 일람표의 형태로 제공되어 상기 스토리지부(113)에 저장되어 사용될 수도 있다.
그리고, 상기 이벤트 발생빈도 일람표에는, 발생빈도가 구체적인 시간으로서 지정될 수도 있고, 그렇지 않고 발생빈도를 그 정도에 따라 여러 레벨로 분류해 둔 레벨들 중 어느 하나의 레벨로 지정될 수도 있다. 이벤트의 경우에, 정확한 주기로 항상 발생하는 종류도 있지만, 발생 주기가 일정치 않고 변동하면서 발생하는 종류도 있을 수 있으며, 발생 여부가 특정용도의 장치 사용자에게 전적으로 의존하는 종류도 있다.
따라서, 이벤트 항목들을 발생빈도에 따라 그룹핑하기 위해서는, 특정용도의 장치가 동작하면 언제나 반복하여 발생하지만 그 간격이 일정치 않은 종류의 이벤트들에 대해서는, 그 이벤트의 발생 간격의 확률적 평균치를 나타내는 시간으로서 지정하고( 또는 분류된 레벨들 중 그 시간이 속하는 레벨로 지정하고 ), 발생 여부가 사용자 의존인 종류에 대해서는, 발생빈도에 대해 지정하는 시간 중에서 가장 긴 시간으로( 또는 가장 긴 간격에 대한 레벨로 ) 지정해 두게 된다.
모든 이벤트 항목들에 대해 발생빈도가 지정되어 있고, 상기 주 처리부(110)로부터 발생빈도에 따른 그룹핑을 지정한 모드와 함께 그룹핑 명령이 인가되면, 상기 이벤트 그룹핑부(111)는, 도 7a에 예시된 바와 같이, 모든 이벤트 항목들을 발생빈도가 동일하거나 비슷한 것들끼리 그룹핑하기 위해, 빠른 순서부터( 또는 그 역순으로 ) 시작하여 순차적으로 일정 개수씩 그룹핑을 하여 그룹핑 맵을 작성하게 된다.
이때 하나의 그룹으로 그룹핑하는 개수에 대해서는, 사용자가 입력하는 값( 또는 그룹핑 환경정보에 설정된 값)을 상기 주 처리부(110)가 상기 모드 지정에 수반되는 파라미터에 포함시켜 전달할 수도 있다. 또는, 전술한 바와 같이, 이벤트 그룹 허용 갯수가 파라미터로서 전달될 수도 있다. 이 경우에는, 당연히 전체 이벤트 항목들의 수를, 그 허용 갯수로 나누어서 얻어지는 값에 가장 가까운 큰 정수가 그룹핑하는 개수로 정해진다.
한편, 이벤트 항목들을 그룹핑한 그룹핑 맵은, 특정용도의 임의 장치 등에 적용되어 운용될 때, 그 장치에 설치된 네트워크 시스템의 각 노드가, 필요한 이벤트 항목의 이벤트 발생 시에 통지받기 위해 그 이벤트 항목에의 가입을 이벤트 그룹으로 가입할 때 이용되지만, 이벤트가 발생했을 때의 그 통지는 그룹핑 맵에서 지정하고 있는 그룹핑과는 무관하게 이루어진다. 즉, 이벤트 발생의 통지는 이벤트 그룹이 아닌 해당되는 이벤트 항목을 고유하게 나타내는 이벤트 식별자로써 개별적으로 이루어진다.
따라서, 임의 발생된 이벤트에 대해서 그 식별자로써 네트워크로 통지할 때, 그 이벤트의 항목이 속한 그룹으로 가입된 다른 노드들에 대해서도 동일하게 이벤트 발생을 통지하게 된다. 이는, 이벤트 그룹으로 가입되었기 때문에, 동일 이벤트 그룹으로 가입된 노드들이 그 이벤트 그룹 내의 어떤 이벤트 항목에의 가입을 의도하여 해당 이벤트 그룹으로 가입하였는지 알 수 없기 때문이다. 물론, 하나의 이벤트 발생에 대해서 멀티캐스트(multicast) 방식으로 통지할 수도 있는데, 이 경우에는 해당 이벤트 그룹에 가입된 모든 노드들에게 개별적으로 이벤팅 메시지를 전송할 필요는 없다. 이러한 멀티캐스트 방식의 이벤트 통지의 경우에 대해서는 이후에 보다 상세히 설명한다.
전술한 점을 고려하여, 본 발명에 따른 다른 일 실시예에서는, 발생빈도가 짧은 이벤트 항목들일수록 발생빈도가 긴 이벤트 항목들에 비해 그룹핑되는 이벤트 항목들의 수를 더 작게 하여 그룹핑한다. 도 7b는, 본 실시예에 따라, 도 7a와 동일한 예에 대해서 이벤트 그룹핑한 예를 보여준다. 도 7b에 따른 실시예에서는, 발생빈도가 매우 높은 이벤트 항목에 대해서는 그 이벤트 항목 하나가 하나의 그룹으로 지정될 수도 있다.
도 7b의 실시예에서도, 이벤트 그룹 허용 개수가 상기 주 처리부(110)로부터 인가된 경우에는, 발생빈도가 높은 이벤트 항목들에 대해서 항목들의 수를 상대적으로 적게 하여 그룹핑함에 따라 이벤트 그룹 수가 허용된 개수를 초과하지 않도록, 그룹의 항목 수 축소로 인해 해당 그룹에서 베제된 이벤트 항목들의 수만큼 다른 그룹, 즉 발생빈도가 그보다 낮은 그룹 또는 그룹들의 이벤트 항목 수를 증가시키게 된다.
도 7b에 예시된 바와 같이, 발생빈도가 높은 이벤트 항목들에 대해서, 그보다 발생빈도가 낮은 이벤트 항목들에 대한 그룹핑에서의 항목 수보다 더 작은 수의 항목들로써 그룹핑을 하여 그룹핑 맵을 작성하게 되면, 불필요하게 이벤트 발생을 통지하게 되는, 즉 네트워크에 불필요하게 트래픽을 발생시키는 되는 데이터양을 확률적으로 감소시킬 수 있다. 여기서의 '불필요'한 트래픽이란, 해당 이벤트의 발생을 통지받기를 의도하지 않은 노드들을 대상으로 하여 이벤트 통지를 하는데 사용되는, 또는, 그들이 그러한 이벤트 발생을 필요없이 인지하게 되는데 사용되는 데이터임을 지칭하는 것이다.
도 7c는, 이벤트 항목들의 발생빈도에 따라 그룹핑되는 수를 다르게 결정하여 그룹핑하는 도 7b에 따른 실시예가, 이벤트 발생을 통지함에 있어서의 불필요하게 발생하게 되는 데이터양이, 도 7a에 따른 실시예보다 상대적으로 적음을 구체적인 수치로써 보여주고 있다. 도 7c의 구체적인 비교의 예시는, 설명과 이해의 편의를 위해, 예시된 10개의 이벤트 항목들에 대해서 10개의 노드들이 각기 서로 다른 이벤트 항목을 의도하여 해당되는 각 그룹에 가입된 것으로 단순화한 결과에 따른 것이다.
도 7a의 실시예에서는, 초당 각 그룹에서 발생되는 이벤트 수가, 그룹 식별자 IDm과 IDm+1의 그룹에서 각각 20과 1.05가 되고, 위 가정에 따라 2개의 이벤트 그룹에서, 1초당 불필요하게 이벤트 발생을 알리게 되는 통지의 수는 80과 4.2로서 총 84.2번이 된다(71). 물론, 이러한 불필요한 통지의 수는, 이벤트 발생에 대해서, 해당 이벤트 그룹에 가입된 노드들에 대해서 개별적으로, 즉 유니캐스트(unicast) 방식으로 통지하는 것을 전제함에 따른 것이다.
이에 반해, 동일한 조건에서, 도 7b의 실시예는, 그룹 식별자 IDm과 IDm+1의 그룹에서 초당 발생되는 이벤트 수가 각각 57과 10,25가 되고, 1초 동안에 불필요하게 알리게 되는 통지의 수는 67.25가 된다(72).
따라서, 이벤트 항목들의 발생빈도가 높은 항목들에 대해서는, 그보다 발생빈도가 낮은 이벤트 항목들보다 적은 수로써 그룹핑함으로써 불필요한 트래픽 양을 상대적으로 감소시킬 수 있다.
앞서 언급한 바와 같이, 이벤트 발생에 대해서 유니캐스트 방식으로 해당 이벤트 그룹에 가입된 노드들에 개별적으로 통지하는 경우에, 발생빈도에 따라 그 수를 다르게 하여 이벤트 그룹핑하는 실시예의 상대적 잇점이 나타난다.
만약, 발생된 이벤트에 대해 멀티캐스트 방식으로 통지하게 되면, 임의의 그룹에 NND개의 노드들이 가입된 경우라도, 발생된 이벤트에 대해서 한번의 멀티캐스트 방식의 통지만 하면 NND개의 모든 노드들이 수신하게 되므로, 통지를 위한 메시지가 2번 이상 전송될 필요가 없다.
그런데, 노드들 간의 통신을 위해 제공하는 네트워크가, 모든 노드들이 구비된 스위치 또는 허브와 일대일로 연결되는 방식의 스타형(star-type)이라면, 어느 한 노드에서 전송한 멀티캐스트의 이벤트 통지가 스위치 또는 허브에 의해 다른 노드들과 개별적으로 연결된 각 링크로 복사되어 전송된다. 즉, 전체 네트워크 관점에서 보면, 네트워크 상에는 결국 NND개( 멀티캐스트 이벤팅 메시지의 송신지까지 고려하면 NND+1개 )의 멀티캐스트 이벤트 통지 메시지가 수송되는 것이다.
이와 같이 네트워크가 허브 등을 이용하여 스타형으로 구축된 경우라면, 앞서 설명한 바와는 반대로, 이벤트 항목들의 발생빈도가 높은 이벤트들에 대해서는, 그보다 발생빈도가 낮은 이벤트들보다 많은 수로써 그룹핑함으로써, 불필요한 트래픽양을 확률적으로 낮추는 효과를 얻을 수 있다.
예시된 10개의 노드들이 각각의 링크를 통해 스위치 또는 허브에 연결되고 또 다른 노드( 이벤트 발생원 )가 그 스위치 또는 허브에 연결되어 구축된 네트워크 시스템에서, 멀티캐스트 방식으로 이벤팅 메시지를 전송한다면, 해당 이벤트의 그룹에 가입하지 않은 노드들과 연결된 링크로 전송되는 메시지는 불필요한 트래픽이 된다.
따라서, 동일한 위와 동일한 가정에 의하면, 도 7a에 따른 실시예에서는, 노드와 연결된 링크들에 나타나는 불필요한 이벤팅 메시지의 수는, 식별자 IDm과 IDm+1의 그룹에서 각각 100과 5.25개가 되어 전체로 105.25개(73)가 되고, 도 7b에 따른 실시예에서는, 식별자 IDm과 IDm+1의 그룹에서 각각 114와 8.2개가 되어 전체로 122.2개(74)가 되어 도 7a에 따른 실시예보다 더 많은 수가 된다. 이는, 발생빈도가 높은 이벤트 항목들에 대해서 상대적으로 더 많은 수의 이벤트 항목들을 그룹핑하는 것이, 네트워크의 링크들에 발생시키는 통지를 위한 트래픽의 감소에 유리함을 의미한다.
하지만, 도 7c의 비교예는, 각각의 그룹에 가입된 노드들의 모두 동일하고 또한 서로 다른 이벤트 항목을 의도하여 가입된 전제에 따른 것이므로, 실제 노드들의 어떤 이벤트 항목들을 필요로 하는지에 따라 발생빈도에 따른 항목들의 수를 다르게 그룹핑하는 방식의 유불리는 앞서 설명한 바와 달라질 수도 있다.
한편, 네트워크가 멀티드롭(multi-drop) 방식의 연결을 지원하는 버스형이면, 멀티캐스트 방식의 이벤트 통지는, 해당 이벤트에 가입된 노드들의 수가 얼마가 되었던 1회의 메시지 전송으로써 충분하다. 즉, 1번의 멀티캐스트 방식의 이벤트 통지만 있으면, 그 통지는 복사없이 그 버스에 실려, 해당 이벤트의 발생에 대하여 통지받기를 의도한 노드와 그렇지 않은 노드들에 모두에게 전달된다.
도 7c의 비교 예시에서, 도 7a에 따른 실시예나 도 7b에 따른 실시예에 따른 이벤트 그룹핑에서 모두 초당 21.05개의 멀티캐스트 방식의 이벤트 통지가 진행되므로, 네트워크에 가해지는 트래픽양은 서로 동일하다.
따라서, 네트워크가 멀티드롭(multi-drop) 방식의 연결을 지원하는 버스형이고, 이벤트들이 멀티캐스트 방식으로 통지되는 네트워크 시스템에 적용되는 경우에는( 적용되는 네트워크의 유형에 대한 정보는, 전술한 바의 그룹핑 환경정보에 설정됨으로써, 상기 이벤트 그룹핑부(111)가 해당 정보를 이용할 수 있다), 상기 이벤트 그룹핑부(111)는, 이벤트 그룹핑에 있어서 발생빈도에 무관하게 그룹핑하여 그룹핑 맵을 작성할 수 있다.
하지만, 상기 기반정보 생성장치(100)에서 생성하여 제공하는 이벤트 그룹핑 맵이 적용되는 네트워크 시스템의 노드들이 모든 이벤트들에 대해 멀티캐스트 방식으로 통지하지 않고, 일부에 대해서만, 예를 들어, 동일 이벤트 그룹에 가입한 노드들의 수가 기 지정된 수 이상될 때에 그 그룹에 매핑되어 있는 이벤트 항목들에 대해 멀티캐스트 방식으로 전환할 수도 있으므로, 그러한 전환이 있기 전까지, 그리고 멀티캐스트 방식으로 전환되지 않는 이벤트 그룹에 대해서는, 도 7b에 따라 이벤트 그룹핑하는 것이 여전히 실익이 있을 수 있다.
따라서, 네트워크가 멀티드롭(multi-drop) 방식의 연결을 지원하는 버스형을 기반하는 네트워크 시스템에 적용되는 경우에도, 본 발명에 따른 실시예에서는, 발생빈도가 짧은 이벤트들에 대해서는, 발생빈도가 긴 이벤트들보다 더 적은 수로써 그룹핑하는 방법이 적용될 수 있다.
본 발명에 따른 일 실시예에서는, 발생빈도에 있어서 다른 이벤트 항목과 차이가 나는 정도를, 전술한 바의 상관지수에 함께 반영하여 그룹핑 맵을 작성할 수도 있다. 발생빈도에 있어서의 근접성을 나타내는 값( 이하, '빈도 상관성'이라 칭한다. )은, 도 8에 그래프(80)로써 예시된 규칙에 따라 정해질 수 있다.
도 8은, 빈도 상관성이 정해지는 극히 단순한 하나의 예일 뿐, 타 이벤트 항목과의 발생빈도에서의 차이의 자신의 발생빈도에 대한 비율이 낮을수록 빈도 상관성이 높아지는 규칙이 준수된다면, 어떤 방식에 의한 것이라도 적용될 수 있다.
본 실시예에서는, 상기 이벤트 그룹핑부(111)가, 각각의 이벤트 항목에 대해서 전술한 바의 상관지수와 빈도 상관성에 근거하여 이벤트 그룹핑을 하게 된다. 이를 위해, 먼저, 현재 그룹핑하고자 하는 순서의 이벤트 항목( 이하, '원(源) 이벤트' 항목이라 한다. )에 그룹화시킬지 여부를 결정해야 하는 임의의 이벤트 항목( 이하, '대상 이벤트' 항목이라 칭하며, 이 대상 이벤트 항목은, 직접 또는 간접 상관지수가 기 지정된 하한치 이상되는 미그룹된 이벤트 항목으로 제한될 수 있다. )에 대하여, 도 8에 예시된 바와 같은 규칙에 따라 발생빈도 차분율을 먼저 구한 후, 그 발생빈도 차분율에 해당하는 빈도 상관성 FIDX를 결정한다.
이렇게 대상 이벤트 항목에 대해서 빈도 상관성 FIDX가 결정되면, 다음의 식 [1]에 따라, 그 대상 이벤트 항목에 대해서 원 이벤트 항목과의 복합 상관지수 CCIDX를 구한다.
CCIDX = αC ·CIDX + αF ·FIDX, αCF=1 식 [1]
여기서, CIDX는 원 이벤트 항목과 대상 이벤트 항목 사이에 대해 지정된 직접 상관지수( 또는 연산된 간접 상관지수 )이고, αC는 상관지수에 대해 부여된 가중치이며, αF는 빈도 상관성에 대해 부여된 가중치이다.
상기 식 [1]에 사용되는 각 가중치 αC와αF는, 상기 주 처리부(110)로부터 인가되며, 이들 값은, 사용자로부터 미리 입력받아 설정한 이벤트 그룹핑을 위한 환경정보에 포함되어 있을 수 있다.
상기 복합 상관지수 CCIDX가 구해지면, 상기 이벤트 그룹핑부(111)는, 복합 상관지수에 대해 상기 주 처리부(110)로부터 입력된 기준치와 상기 복합 상관지수 CCIDX를 비교하여, 전술한 바와 같은 방법으로 이벤트 항목들을 그룹핑한다. 즉, 기준치 이상의 복합 상관지수를 갖게 되는 대상 이벤트 항목을 원 이벤트 항목의 그룹에 포함시키게 된다.
앞서 설명한 실시예에서와 같이, 이벤트 그룹 허용 개수에 따라 제한 그룹수가 정해진 경우에는, 상기 이벤트 그룹핑부(111)는, 복합 상관지수에 대해 기준치를 적응적으로 변경하면서, 즉, 그룹핑을 위해 적용된 기준을 완화하면서 이벤트 그룹의 수가 상기 제한 그룹수를 넘어서지 않는 최대가 되도록 이벤트 그룹핑을 반복하여 최종적인 그룹핑 맵을 확정하게 된다.
본 발명에 따른 일 실시예에서는, 이벤트 항목에 대하여 보다 구체적인 정보, 예를 들어 해당 이벤트를 통지하는 메시지의 크기, 그 이벤트로서 통지되는 데이터 내용의 중요도나 보안성 등이 해당 이벤트의 부가정보(340aki)에 포함되어 있으면, 상기 이벤트 그룹핑부(111)는 이를 이벤트 그룹핑에 반영할 수 있다.
이와 같은 이벤트 항목에 대한 보다 상세한 정보는, 이벤트 식별자에 연계하여 그러한 정보가 테이블 형식으로 기록된 파일을 상기 기기 인터페이스부(112)를 통해 상기 주 처리부(110)가 수신하여 해당 파일의 내용을 분석한 후, 각각의 이벤트 식별자에 대해 연계되어 있는 상세 정보를, 상기 스토리지부(113)에 앞서 저장하고 있는 상기 서비스 규약정보(300)에서 해당되는 각 이벤트 항목(340ki)에 연계된 부가정보(340aki)에 추가할 수 있다.
상기 이벤트 그룹핑부(111)는, 각 이벤트 항목의 부가정보에, 앞서 언급한 바와 같은 상세 정보가 있는 경우에는, 그 상세 정보를 이벤트 그룹핑에 반영하여 그룹핑 맵을 작성한다. 이에 대해서 보다 구체적으로 설명하면, 상기 이벤트 그룹핑부(111)는, 상관지수, 발생빈도 또는 복합 상관지수에 근거하여 하나의 이벤트 그룹을 결정할 때, 그 결정된 이벤트 그룹 내의 각 이벤트 항목에 대해서 연관된 부가정보를 확인하고, 그 확인된 부가정보가 특정의 독립요건, 예를 들어, 이벤팅 메시지의 크기가 지정된 상한치 이상이거나 또는 중요도( 또는 보안성 )가 제한치 이상인 내용을 통지하는 이벤트 항목인 것을 충족하면, 그 특정 요건을 충족하는 이벤트 항목에 대해서는 해당 그룹에서 제외하고 독립적인 하나의 그룹으로 지정한다.
이벤트 항목에 대한 상세정보를 이벤트 그룹핑에 반영하는 또 다른 방법으로서는, 발생된 이벤트를 통지하는 이벤팅 메시지의 크기가 지정된 최소 크기 이하이거나, 또는 이벤트의 발생하는 빈도가 지정된 기준보다 낮은 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정하거나, 그들의 수가 많을 때는 이벤팅 메시지의 크기의 평균이 또는 발생 빈도의 평균이 가급적 균등하도록 분배하여 2이상의 이벤트 그룹들로 지정한다. 다르게는, 이러한 요건을 충족하는 이벤트 항목들에 대해서는 별도의 이벤트 그룹으로 그룹핑하지 않고, 모두 다른 이벤트 그룹으로 매핑시킬 수도 있다.
각각의 이벤트 항목을 다른 그룹으로 매핑시킬 때는, 상관지수가 가장 높은 또는 발생빈도가 가장 가까운 이벤트 항목이 있는 그룹으로 매핑시킬 수 있다.
전술한 바와 같은 이벤트 항목의 상세정보를 이벤트 그룹핑에 반영하는 것은, 이벤트항목들을 그룹핑하는 과정에 적용할 수도 있지만, 이벤트 그룹핑을 완료하여 생성한 그룹핑 맵에 대해 각 그룹의 이벤트 항목들의 상세정보를 확인하여 그룹핑 맵의 이벤트 그룹들을 보정하는 방식으로 진행할 수도 있다.
그리고, 이벤트 항목에 대한 상세정보를 이벤트 그룹핑에 반영하는데 필요한 기준정보, 즉 앞서 언급한 상한치 또는 최소 크기 등은, 상기 기반정보 생성장치(100)의 사용자가 상기 사용자 인터페이스부(115)를 통해 입력하게 되고 상기 주 처리부(110)가 그 입력된 정보를 이벤트 그룹핑 명령에 수반되는 파라미터로서 상기 이벤트 그룹핑부(111)에 전달할 수 있다.
다르게는, 이벤트 그룹핑을 위해 필요한 여러 다양한 변수들( 앞서 설명한 기준이 되거나 제한시키는 용도로 사용하는 값, 또는 가중치 등 )에 대하여 지정값들이 취합되어 있는 이벤트 환경정보의 형태로 상기 이벤트 그룹핑부(111)에 전달될 수도 있다.
한편, 앞서 설명한 실시예에서와 같이, 제한 그룹수가 적용되는 경우에는, 이벤트 항목에 대한 상세정보에 근거하여 임의의 이벤트 항목을 해당 그룹으로부터 분리하여 독립시킴에 따라, 전체 이벤트 그룹 수가 그 제한 그룹수를 넘어서게 되면, 2개 이상의 그룹들을 서로 병합시켜 정해진 제한 그룹수가 준수되게 하거나, 각기 별도의 그룹으로 독립시킨 이벤트 항목들을 제외한 나머지 이벤트 항목들에 대하여 그룹핑을 새로운 기준으로 다시 함으로써 전체적으로 제한 그룹수를 넘어서지 않도록 조정한다.
전자의 경우처럼 병합시킬 때는, 발생빈도가 가장 낮은 것부터 시작하여, 또는 그룹내의 이벤트들이 통지 시에 필요로 하는 전체 데이터 양이 가장 적은 것부터 시작하여, 필요한 수만큼의 그룹들을 하나 또는 2개 이상의 그룹들로 각기 병합시키게 되고, 후자의 경우에는, 기준이 되는 상관지수( 또는 복합 상관지수 )를 일정 간격 감소시켜 재그룹핑함으로써 정해진 제한 그룹수 이하를 충족시키게 된다.
지금까지 설명한 다양한 실시예들은 모두, 작성된 이벤트 그룹핑 맵이 적용될 네트워크 시스템에서의 노드들이 어떠한 이벤트 항목들을 각기 필요로 하는지에 대한 구체적 정보가 없는 상태에서 이벤트 항목들을 그룹핑하는 방법에 대한 것이었다. 만약, 작성된 그룹핑 맵이 적용될 네트워크 시스템의 노드별 필요 이벤트 항목( 이벤트 통지를 요구하게 되는 이벤트 항목 )에 대한 정보를 사전에 알 수 있다면, 이 정보를 이용해 이벤트 그룹핑에 반영할 수 있다. 이하에서는 이러한 실시예들에 대해 구체적으로 설명한다.
이벤트 그룹핑 맵이 적용될 네트워크 시스템의 각 노드가 가입 요청하게 될( 또는 요청할 것으로 예상되는 ) 이벤트 항목들에 대한 정보( 이하, '이벤트 프로파일'이라 칭한다. )는, 상기 기기 인터페이스부(112)를 통해 상기 주 처리부(110)에 파일로서 제공되어 상기 스토리지부(113)에 저장됨으로써 상기 이벤트 그룹핑부(111)가 그 이벤트 프로파일와 정보를 공유할 수 있다.
그리고, 상기 이벤트 프로파일은, 그룹핑 맵이 적용될 네트워크 시스템을 전체적으로 설계하는 개발자가, 그 네트워크 시스템의 각 노드에 어떤 응용 프로그램들을 탑재시킬 것인지, 그리고 그 응용 프로그램은 어떤 이벤트 항목들을 필요로 할 것인지를 파악하고, 그 파악된 정보에 근거하여 사전에 작성될 수 있다.
도 9는, 본 발명의 일 실시예에 따른, 이벤트 프로파일에 근거한 이벤트 그룹핑 방법을 설명하기 위한 간단한 예로서 나타낸 이벤트 프로파일(90)이고, 도 10은, 본 발명의 일 실시예에 따른 이벤트 프로파일에 근거한 이벤트 그룹핑 방법에 대한 예시적인 하나의 흐름도로서, 이벤트 프로파일에 근거한 그룹핑 방법에 대해서 이들 도면을 참조하여 이하에서 구체적으로 설명한다.
이벤트 프로파일에 근거한 그룹핑 명령이 해당 모드 등의 지정을 통해서 상기 주 처리부(110)로부터 상기 이벤트 그룹핑부(111)에 인가되면, 상기 이벤트 그룹핑부(111)는, 도 9에 예시된 바와 같은 이벤트 프로파일(90)에 등재되어 있는 모든 이벤트 항목들, 즉 그룹화대상 이벤트 항목들에서, 필요로 하는 노드( 이하, '피이벤팅 노드'라 칭한다. )들이 가장 많은 이벤트 항목(91)을 선택하고, 그 선택된 항목을 원 이벤트 항목으로 하여 그룹핑할 현재 그룹으로 지정한다(S101).
그리고, 현재 그룹에 속하는 이벤트 항목( 또는 항목들 )의 피이벤팅 노드들의 합집합과 가장 많이 중복되는 노드들이 필요로 하는 이벤트 항목을 상기 이벤트 프로파일(90)에서 찾는다(S102). 도 9의 예에서, 현재 그룹에 식별자 e1인 항목이 원 이벤트 항목으로서 1개 포함되어 있는 상태라면, 피이벤팅 노드들이 중복되는 수가 가장 많은 것이 4개인 이벤트 식별자 e6인 항목(92)이므로 이 단계(S102)에서 이벤트 항목 e6가 찾아진다.
이렇게 현재 그룹에 그룹핑시킬지 여부를 결정할 하나의 대상 이벤트 항목이 찾아지면, 상기 이벤트 그룹핑부(111)는 그 대상 이벤트 항목(92)의 피이벤팅 노드들의 수가 기 설정된 최저치 이상인지를 확인한다(S104). 만약, 이 설정된 최저치가 2라고 하면, 상기 찾은 이벤트 항목(92)을 현재 그룹에 그룹핑했을 때의 이득과 손실을 계산한다(S111).
이득과 손실은 여러가지 방법으로 산출될 수 있다. 본 발명에 따른 일 실시예에서는, 이득은, 그룹핑했을 때 이벤트 가입 횟수가 감소되는 수가 되고, 손실은 그룹핑했을 때 불필요하게 발생하는 이벤트 통지 횟수가 될 수 있다. 물론, 후자의 경우는, 이벤트 통지가 유니캐스트 방식으로 이루어지는 경우를 전제한 것이다.
도 9의 이벤트 프로파일의 예에서, 상기 대상 이벤트 항목(92)의 경우, 이득은 4가 된다. 식별자 e1과 e6인 이벤트 항목을 개별로 둘 때, 노드 A,C,D,E가 각각 2번의 가입을, 노드 B가 1번의 가입을 하여 총 9번의 가입이 이루어지지만, 이들을 그룹핑하면, 그 노드들( 노드 A 내지 E )이 그 그룹으로 각각 1번씩 총 5번의 가입을 하게 되므로, 이득은 그 차이인 4가 된다.
이에 반해, 손실은 1이 된다. 즉, 식별자 e6 항목의 이벤트 발생 시에 노드 B는 그 항목의 이벤트의 통지를 의도하지 않았음에도 그 노드에 이벤트 발생을 통지하게 되는 횟수가 손실이 된다.
이와 같이 이득과 손실이 계산되면, 상기 이벤트 그룹핑부(111)는, 이들 간의 상대적 값, 예를 들어 이득에 대한 손실의 비율( 이하, '손익비율'이라 칭한다. )이 그룹핑 요건을 충족하는지를 확인한다(S112). 예를 들어, 손익비율이 기 설정된 기준치 이하인 조건을 충족하는지를 확인한다. 만약, 이 기준치가 1로 설정되어 있으면, 상기 손익비율은 0.25( = 1/4 )이므로, 대상 이벤트 항목(92)을 현재 그룹에 귀속시킨다(S113).
손익비율에 대한 기준치를 1로 설정하면, 이는, 이익과 손실이 균등할 때를 그룹핑 여부의 기준으로 한다는 것을 의미한다. 그런데, 그룹핑에 따른 이익은, 모든 노드들이 각기 필요로 하는 이벤트 항목들에 대한 가입을 위해 동시에 요청하는 시점, 즉 트래픽이 일시에 집중될 때 얻어지는 것이고, 손실은 네트워크 시스템의 동작 중에 임의 이벤트에 대해 일부 노드를 대상으로 하는 트래픽에서 발생하는 것이다. 따라서, 트래픽의 집중이라는 관점에 볼 때, 이득과 손실의 가치는 다르다. 이러한 점을 고려하여, 손익비율에 대한 기준치를 1보다 큰 값, 예를 들어 2, 3 등으로 설정할 수도 있다. 이는, 기준치는 그대로 두고서, 산출되는 이익에 손실보다 가중치를 더 준채로 손익비율을 계산하는 것과 같다.
한편, 손익비율에 대한 기준치는, 전술한 바의 다른 변수들과 마찬가지로, 상기 기반정보 생성장치(100)의 사용자에 의해 입력됨으로써, 상기 주 처리부(110)가 이를 전달하거나, 또는 전술한 바의 그룹핑 환경정보로서 전달된다.
전술한 바와 같이 현재의 대상 이벤트 항목에 대해서 현재 그룹에 귀속시키고 나면(S113), 상기 이벤트 그룹핑부(111)는, 그 현재 그룹에 속하는 이벤트 항목들(e1,e6)과 피이벤팅 노드들이 다음으로 많이 중복되는 항목( 현재 그룹핑된 대상 이벤트 항목(92)과 피이벤팅 노드 수가 동일한 항목일 수도 있다. )을, 현재 그룹화대상 이벤트 항목들에서 찾아서(S102) 전술한 동작을 동일하게 진행한다.
만약, 손익비율에 대한 기준치가 1로 설정된 경우라면, 위의 설명한 방식의 그룹핑에 의해 현재 그룹에는 식별자 e1, e5( e5의 이벤트 항목에 대한 손익비율은 2/3 = 0.67이다. ) 및 e6가 하나의 이벤트 그룹(910)으로 지정되고, 현재 그룹과 피이벤팅 노드가 중복되는 수가 2개인 식별자 e2의 이벤트 항목은, 현재 그룹과의 손익비율이 1.5( =3/2 )이어서 그룹핑 조건을 충족하지 못하여, 별도의 다른 그룹으로 지정된다.
만약, 현재 그룹에 속하는 이벤트 항목(들)의 피이벤팅 노드가 중복되는 다른 이벤트 항목이 없거나(S103), 피이벤팅 노드가 중복되는 다른 이벤트 항목을 필요로 하는 노드들의 수가 기 지정된 최소수 미만이거나(S104), 또는 산출된 손익비율이 그룹핑 요건을 충족하지 못하면(S112), 상기 이벤트 그룹핑부(111)는, 현재 그룹에 귀속되어 있는 이벤트 항목의 수를 확인한다(S121).
만약, 그 수가 그룹핑을 위한 최소 이벤트 항목 수, 예를 들어 2 미만이면( 현재 그룹 내에 한 개의 이벤트 항목만이 속해 있으면 ), 상기 이벤트 그룹핑부(111)는, 이 현재 그룹의 지정을 해제하고, 그 그룹 내의 이벤트 항목(들)에 대해서는 일단 그룹화대상 이벤트 항목들에서 배제시키고(S122). 최소 이벤트 수 이상이면, 현재 그룹에 대해서 그룹 식별자를 할당하여 새로운 이벤트 그룹으로 확정한다(S123).
현재 그룹을 해제시킨 후, 또는 새로운 이벤트 그룹을 확정한 후에는, 상기 이벤트 그룹핑부(111)는, 현재의 그룹화대상 이벤트 항목들에서 피이벤팅 노드들의 수가 가장 많은 항목을 찾는다(S124).
도 9의 이벤트 프로파일(90)의 예를 기준으로 하면, 이 단계(S124)에서, 식별자 e2인 이벤트 항목(93)이 찾아질 수 있다. 상기 이벤트 그룹핑부(111)는, 이 이벤트 항목(93)에 대해서 피이벤팅 노드 수가 기 지정된 최소수 이상인지 확인한 후(S125), 최소수 이상이면, 원 이밴트 항목으로 하는 현재 그룹으로 지정하여(S126) 전술한 바의 동작을 반복한다. 이에 따라, 만약, 손익비율에 대한 기준치가 1이라면, 식별자 e3인 이벤트 항목은, e2인 이벤트 항목과 손익비율이 0.5( =1/2)이므로, 현재 그룹에 귀속되어 또 다른 하나의 이벤트 그룹(920)으로 확정될 수 있다.
도 10에 예시된 바와 같은 흐름도에 따라 이벤트 그룹핑 동작이 진행되면, 종국적으로 최소수 미만의 피이벤팅 노드 수를 갖는 이벤트 항목들과 그룹화대상 이벤트 항목들에서 배제된 이벤트 항목들만 미그룹된 채로 남게 된다. 만약, 상기 최소수가 2로 설정되어 있다면, 식별자 e4와 e7인 이벤트 항목들(94i, i=1,2,..)이 미그룹 상태로 남게 되고, 만약, 노드 G, H, I( 도면 미도시 )에서만 필요로 하는 식별자 e8인 이벤트 항목이 하나 더 있다면 이 이벤트 항목도 그룹화대상 이벤트 항목들에서 배제되어 미그룹 상태로 남게 된다. 상기 이벤트 그룹핑부(111)는, 이렇게 남은 모든 이벤트 항목들(94i, i=1,2,..)에 대해서는 총괄적으로 처리하게 된다.
이러한 총괄적 처리의 제 1방법으로는, 피이벤팅 노드의 중복여부와 무관하게 이들을 하나로 그룹핑한 그룹을 생성하는 것이다. 즉, 식별자 e4와 e7의 항목(94i, i=1,2,..)을 하나의 이벤트 그룹으로 지정하는 것이다.
총괄적 처리의 제 2방법으로는, 피이벤팅 노드가 서로 중복되는 항목이 있으면, 이 이벤트 항목들에 대해서만 별도의 그룹을 생성하고, 나머지의 이벤트 항목들을 모두 그룹핑하는 것이다.
총괄적 처리의 제 3방법으로는, 피이벤팅 노드가 서로 중복되는 항목이 있으면 이 이벤트 항목들에 대해서만 별도의 그룹을 생성하고, 나머지의 이벤트 항목들에 대해서는 모두 개별적으로 그룹핑하는 것이다. 즉, 도 9의 예에서 식별자 e4와 e7의 항목을 각각 별개의 그룹으로 지정하는 것이다.
총괄적 처리의 제 4방법으로는, 총괄적 처리를 위해 남은 이벤트 항목들에 대해서 별도로 그룹핑하지 않고, 피이벤팅 노드가 있는 모든 이벤트 항목들의 합집합을 하나의 그룹으로 생성함으로써 이 합집합의 그룹에 귀속되게 하는 것이다. 즉, 도 9의 예에서, 식별자 e1 내지 e6까지를 하나의 그룹으로 지정하는 것이다.
총괄적 처리의 제 5방법으로는, 상기 제 4방법과 마찬가지로, 총괄적 처리를 위해 남은 이벤트 항목들에 대해서 별도로 그룹핑하지 않고, 상기 이벤트 프로파일(90)에 등재되어 있는 모든 이벤트 항목들을 하나의 그룹으로 하는 이벤트 그룹을 생성함으로써 이 전체 이벤트의 그룹에 귀속되게 하는 것이다.
만약, 전술한 바의 제한 그룹수가 정해지고, 총괄적 처리의 상기 제 3방법에 의해 그룹핑한 결과, 그룹핑 맵의 전체 이벤트 그룹 수가 상기 제한 그룹수를 넘어시게 되면, 상기 이벤트 그룹핑부(111)는, 현재 총괄적 처리된 이벤트 항목들 전체 또는 일부에 대해, 총괄적 처리의 다른 방법을 적용하여 상기 제한 그룹수 이하가 되도록 한다.
앞서 설명한 손익비율에 따른 이벤트 그룹핑에서 기준치를 높게 설정하면 낮게 설정할 때보다 하나의 그룹에 매핑되는 이벤트 항목들의 수가 확률적으로 더 많아지게 된다. 따라서, 상기 이벤트 그룹핑부(111)는 현재 작성 완료한 그룹핑 맵 내의 이벤트 그룹의 수가 상기 제한 그룹수를 초과하면, 손익비율에 대한 기준치를 일정 간격씩 더 높여 가면서 재그룹핑함으로써 최종적으로 상기 제한 그룹수를 넘어서지 않는 그룹의 수가 되는 그룹핑 맵을 작성할 수 있다.
도 10에 예시된 흐름도를 참조하여 설명한 손익비율에 근거하여 이벤트 항목들을 그룹핑하는 방법은, 다단계로 수행될 수도 있다. 예를 들어, 손익비율에 대한 기준치를 0으로 설정하여, 도 10에 따라 이벤트 그룹핑을 수행함으로써 그 조건( 손익비율이 기준치 이하 )을 충족하는 이벤트 그룹을 1차적으로 지정하고, 그 1차 그룹핑에서 이벤트 그룹으로 매핑되지 않고 남은 이벤트 항목들에 대해서는, 적용 기준을 조금씩 완화하면서, 즉 기준치를 조금씩( 예를 들어, 0.25, 0.5, 1, 2와 같이 ) 증가시키면서, 도 10에 따른 이벤트 그룹핑을 반복 수행하는 방식으로, 전체 이벤트 항목들에 대해서 그룹핑할 수도 있다. 본 실시예에서는, 당연히, 마지막 기준치를 적용하여 이벤트 그룹핑을 할 때까지는, 도 10에 예시된 흐름도에서의 한 단계인, 남아 있는 이벤트 항목들에 대한 총괄적 처리(S130)는 수행하지 않고, 마지막 기준치를 적용하여 그룹핑할 때만 남은 이벤트 항목들에 대해 총괄적 처리를 하게 된다.
참고로, 손익비율에 대한 기준치를 0으로 설정하여 이벤트 그룹핑을 하면, 각각의 이벤트 항목에 대해서 피이벤팅 노드들의 조합이 서로 완전히 동일한 이벤트들만이 하나의 그룹으로 지정된다.
전술한 실시예들에서, 현재 그룹에 그룹핑시킬지 여부를 결정하기 위한 근거로 사용하는 이득과 손실은 각각 감소되는 이벤트 가입 횟수와 불필요하게 발생하는 이벤트 통지 횟수였다. 본 발명에 따른 다른 일 실시예에서는, 그룹핑 여부를 결정하는 데 사용하는 이 이득과 손실을 데이터 양의 측면에서 산출할 수도 있다.
앞서 설명하였던 바와 같이, 이벤트를 통지할 때의 데이터 크기, 즉 이벤팅 메시지의 크기는 해당 이벤트 항목의 부가정보(340aki)에 포함되어 있을 수 있다. 이러한 경우에, 손익비율 DrLtoP을 다음의 식 [2]에 의하여 구할 수 있다.
Figure 112020042153797-pat00001
식 [2]
여기서, f(e i )는, 그룹핑하고자 하는 이벤트 항목들에 속하는 식별자가 ei인 이벤트 항목의 해당 이벤팅 메시지의 데이터 크기이고, Ni는 이벤트 항목들을 그룹핑했을 때 식별자 ei의 이벤트 항목에 대해서 불필요하게 통지하게 되는 횟수이며, DSESub는, 그룹기반의 이벤트 가입을 위한 메시지의 크기이고, MS는 그룹핑에 의해 이벤트 가입에서의 축소되는 횟수를 나타낸다.
위 식 [2]에서와 같이 손익비율을 구한 뒤, 그 손익비율에 대해 정해져 있는 기준치와 비교함으로써, 대상 이벤트 항목을 현재 그룹에 포함시킬지 여부를 결정하게 되면, 네트워크에 실제로 가해지는 트래픽의 관점에서 보다 이익이 되는 방향으로 이벤트 항목들을 그룹핑시킬 수 있다. 예를 들어, 이벤트 발생을 알릴 때 그 데이터 양이 극히 짧은 이벤트 항목이라면, 불필요하게 통지하는 횟수가 많더라도, 식 [2]에 의해 산출되는 손익비율이 기 설정된 기준치 이하가 되어 그룹핑될 확률이 높아진다. 이는, 이벤트 가입 시의 집중 트래픽을 감소시키는데 도움이 된다.
본 발명에 따른 다른 실시예들에서는, 이벤트 항목들을 그룹핑함에 있어서 근거로 사용한 손익비율 대신 다른 요소를 그룹핑 허용요건으로 사용할 수도 있다.
그룹핑 허용요건의 한가지는, 이벤트 가입 시에 발생하는 트래픽 양을 최소화는 것으로서, 노드별로 이벤트 그룹을 허용하는 것이다. 도 11은 이에 따른 이벤트 그룹핑의 예를 보여준다.
도 11에 따른 일 실시예에서는, 이벤트 프로파일을 분석하여, 필요로 하는 이벤트 항목들이 서로 동일한 노드들을 먼저 찾는다. 상기 이벤트 그룹핑부(111)는 이러한 노드들이 찾아지면, 그 노드들이 필요로 하는 동일한 이벤트 조합에 대해서 각각 이벤트 그룹(EG ID1, EG ID2)을 지정한다. 그리고, 필요로 하는 이벤트 항목들이 동일한 다른 노드가 없는 노드들이 각각 필요로 하는 이벤트들의 조합들(1101,1102)에 대해서는 이벤트 그룹(EG ID1, EG ID2)을 개별적으로 지정한다.
도 11에 예시된 바와 같이 이벤트 그룹을 할당하면, 각 노드는, 해당 노드를 형성하는 기기에서 실행되는 응용 프로그램들이 필요로 하는 모든 이벤트 항목들에 대해서, 한번의 그룹기반의 이벤트 가입으로 가입절차가 완료되므로, 초기의 이벤트 가입 트래픽을 최대한으로 감소시킬 수 있다.
본 발명에 따른 일 실시예에서는, 도 11에 예시된 바와 같이 이벤트 그룹핑을 수행할 때, 이벤트 발생의 통지가 유니캐스트로 이루어지는지 멀티캐스트로 이루어지는지를 고려할 수 있다. 구비된 그룹핑 맵을 참조하여, 발생된 이벤트를 통지하게 되는 노드는, 이벤트 그룹에 가입한 노드의 수가 복수개가 되면, 그 이벤트 그룹에 속하는 항목의 이벤트가 발생될 때의 통지 방식을 유니캐스트에서 멀티캐스트로 변경할 수 있다.
이러한 점을 고려하여, 각 노드가 필요로 하는 이벤트 항목들의 집합마다 각각 할당한 이벤트 그룹들에 대해서 보완적 부분 그룹핑을 할 수 있다. 도 12는, 이러한 보완적 부분 그룹핑을, 도 11의 그룹핑을 예로 하여 구체적으로 설명하기 위한 것이다.
도 12의 예에서 (a)의 경우는, 도 11과 같이 이벤트 그룹핑하였을 때, 식별자 e2와 e4인 이벤트(1103,1104)가 각각 발생하는 상황을 가정함에 따른 이벤트 통지를 나타낸 것으로서, 이벤트 e4(1104)가 발생하면, 그 이벤트 항목이 속한 이벤트 그룹들(EG ID2, EG ID3)에 대해 가입한 노드 B, C, D에 각각 유니캐스트로 이벤트 발생의 통지가 있게 되고, 이벤트 e2(1103)가 발생하면, 그 이벤트 항목이 속한 이벤트 그룹(EG ID3)에 대해 가입한 노드 C에만 한번의 유니캐스트방식의 통지가 있게 되는 것을 보여준다.
이에 반해, 도 12의 (b)는, 하나의 노드가 필요로 하는 이벤트 항목들의 조합(e3,e4,e7)이 다른 노드가 필요로 하는 이벤트 항목들의 조합(e2,e3,e4,e5,e6,e7)의 부분집합이 될 때, 그 부분집합이 되는 이벤트 항목들(e3,e4,e7)과 그렇지 않는 이벤트 항목들(e2,e5,e8)을 각각의 이벤트 그룹(EG ID2,EG ID3')으로 지정함에 따른 이벤트 발생의 통지를 보여준다.
도 12의 (b)에 예시된 바와 같이, 어느 하나의 노드가 필요로 하는 이벤트 항목들(1101)에 대해서, 그 부분 집합(e3,e4,e7)이 다른 노드가 요구하는 전 이벤트 항목들과 동일할 때, 이 부분 집합의 이벤트 항목들과 그 여집합의 이벤트들(e2,e5,e8)을 각각의 이벤트 그룹(EG ID2, EG ID3')으로 분리하여 지정하게 되면, 타 노드와 공통되는 이벤트 조합, 즉 상기 부분 집합의 이벤트 그룹(1110)( 이하, '공통 이벤트 그룹'이라 칭한다. )에 대해서는, 당연히 2개 이상의 복수의 노드들이 이벤트 가입을 하게 되므로, 이 공통 이벤트 그룹 내의 이벤트 항목들에 대해서는 멀티캐스트 방식으로 이벤트를 통지할 가능성이 높아진다.
그렇게 되면, (b)에 예시된 바와 같이, 그 공통 이벤트 그룹(1110) 내의 이벤트 항목에 대해서는 멀티캐스트 방식의 1번의 통지로써, 그 발생 사실을 가입된 노드들에 모두 알릴 수 있다. 그러면, 각 노드가 필요로 하는 이벤트 조합별로 그룹을 생성하였을 때의 경우( 도 12의 (a) )에 비해 이벤트 발생을 알리는 통지 횟수는 감소할 수 밖에 없다.
하지만, 상기 공통 이벤트 그룹(1110)의 이벤트 항목들을 부분 집합으로 포함하고 있는 이벤트 항목들을 필요로 하는 노드 C의 입장에서 보면, (a)의 경우에 한번의 요청으로 필요한 이벤트 항목들에 대한 가입을 완료할 수 있는 것을, (b)의 경우에는 필요로 하는 이벤트 항목들이 2개의 그룹으로 나뉘어져 있어서, 각각의 그룹에 가입해야 하기 때문에 이벤트 가입을 2회 하여야 한다(1121). 즉, 이벤트 통지에서는, 멀티캐스트 방식에 따른 잇점을 얻게 되지만 이벤트 가입에서는 추가 트래픽 발생이라는 손실이 생긴다.
따라서, 본 실시예에서는, 임의의 한 노드가 필요로 하는 이벤트 항목들에 공통 이벤트 그룹이 한 개 이상 있어서, 그 공통 이벤트 그룹에 속하지 않는 이벤트 항목들만으로 하나의 이벤트 그룹을 지정함으로써, 2개 또는 그 이상의 그룹으로 분할하여 지정하고자 할 때, 그러한 분합 그룹핑이 가져다 주는 이익과 손실을 고려하여 그 지정여부를 결정한다. 여기서, 이익은, 분할 그룹핑에 따라 멀티캐스트 방식이 이벤트 통지에 적용됨으로써 감소하는 이벤트 통지의 수( 정확하게는 이벤팅 메시지의 수 )가 되고, 손실은, 필요한 이벤트 항목들에 대해서 분할 그룹핑이 적용된 노드에서의 이벤트 가입 횟수의 증가분이 된다.
이와 같은 손실에 대한 이익의 비율( 이하, '분할 이익율'이라 칭한다. )에 대해서 기준값을 설정하고, 임의의 노드가 필요로 하는 대상 이벤트 항목들에 대해서 분할 그룹핑을 할 때의 분할 이익율을 구하고, 그 분할 이익율이 기 설정된 기준치 이상이면, 상기 이벤트 그룹핑부(111)는 그 대상 이벤트 항목들을 하나 이상의 공통 이벤트 그룹과, 공통 이벤트 그룹에 속하지 않는 이벤트 항목들을 구분하여, 후자의 대해서 별도의 이벤트 그룹을 지정하게 된다.
도 12의 (b)에 예시된 구체적인 예에서, 이익은 2이고 손실은 1이다. 따라서 분할 이익율은 2가 되고, 기준치가 1 또는 2로 되어 있다면, 그 기준치 이상의 분할 이익율이므로, 노드 C의 이벤트 항목들에 대해서는, 다른 노드(들)의 필요구 이벤트 항목들로 인해 이미 지정된( 또는 현재 지정될 ) 그룹 EG ID2와 새로운 그룹 EG ID3'로 이벤트 그룹이 분할된다. 만약, 노드 D가 없다고 가정하면, 분할 이익율은 1이 되므로, 기준치가 1.5 또는 2로 되어 있는 경우, 이벤트 항목들은 분할되지 않고 그 항목들 전체에 하나의 이벤트 그룹이 지정될 것이다.
전술한 실시예에서와 마찬가지로, 상기 분할 이익율은 실제의 데이터 양의 비율로서 적용될 수도 있다. 즉, 멀티캐스트 방식의 통지로 인해 감소하는 통지 횟수에 해당 이벤트를 통지하는 메시지가 필요로 하는 데이터양( 또는 각 이벤팅 메시지들의 평균적인 데이터양 )을 곱하여 얻는 값을 이익으로 하고, 그룹기반의 이벤트 가입 메시지의 데이터 크기에 증가하는 가입횟수를 곱하여 얻는 값을 손실로 하여 상기 분할 이익율을 산출하고, 그에 대해 설정된 기준치와 비교함으로써 분할 그룹핑 여부를 결정할 수도 있다.
본 발명에 따른 다른 일 실시예에서는, 전술한 바의 손익비율 대신 적용할 수도 있는 상기 그룹핑 허용요건이, 불필요하게 이벤트 통지를 수신하게 되는 노드( 이하, '불요(不要) 노드'라 칭한다. )의 수로 지정될 수 있다. 예를 들어, 불요 노드에 대한 허용치를 2까지로 제한하면, 도 9의 이벤트 프로파일의 예에서, 식별자 e1과 e6는 하나의 그룹으로 묶이지만, 식별자 e5는 그 그룹에 함께 그룹핑되지 않는다. e5의 이벤트 항목까지 그룹핑하게 되면, 그 그룹에는, 불요 노드들의 수가 전체로 3개( e5 이벤트 시에 노드 A와 C, 그리고 e6 이벤트 시에 노드 B )가 되기 때문이다.
불요 노드의 수로써 지정하는 그룹핑 허용요건을 설정함에 있어서, 그룹 전체에 대해서가 아닌, 그룹 내의 임의의 한 이벤트에 대한 불요 노드의 수로 설정할 수도 있다. 이를 '이벤트당 불요노드 허용치'라고 할 때, 이 허용치를 2로 하면, 식별자 e1, e5 그리고 e6의 이벤트 항목들은 하나의 그룹으로 그룹핑된다. 식별자 e5인 이벤트가 발생했을 때 불요 노드들은 노드 A와 C로 최대로 2개가 되기 때문이다.
본 발명에 따른 다른 일 실시예에서는, 그룹핑 허용 요건을, 불필요하게 수신하게 되는 이벤트( 이하, '무익(無益) 이벤트'라 칭한다. )의 수로써 설정할 수도 있다. 이 허용치 또한, 그룹 전체에 대해서 설정될 수도 있고, 그 그룹에 속하는 적어도 하나의 이벤트 항목을 필요로 하는 임의 노드에 대해서 설정될 수도 있다. 구체적인 예시로서, 전자의 경우, 무익 이벤트의 허용치를 1로 설정하면, 식별자 e1과 e6의 이벤트 항목들이 하나의 그룹으로 묶이게 된다. 이 그룹들을 전체로 볼 때, 식별자 e6인 이벤트 항목 1개가 불필요한 노드로 전송되기 때문이다.
무익 이벤트의 수를 임의 노드에 대한 것으로 설정하는 후자의 경우에는, 동일한 허용치로 설정한다면, 식별자 e1, e5 및 e6인 이벤트 항목들이 하나의 그룹으로 그룹핑되거나, 또는 식별자 e1 및 e2의 이벤트 항목들이 하나의 그룹으로 그룹핑된다. 노드 C, D, E가 불필요하게 식별자 e2와 한 개의 이벤트 항목을, 노드 F가 식별자 e1의 한 개의 이벤트 항목을 수신하게 되는 조합이기 때문이다.
본 발명에 따른 다른 일 실시예에서는, 이벤트 항목들을 그룹핑하는데 기준으로 사용되는 상기 그룹핑 허용요건을, 불요 노드의 수 또는 무익 이벤트의 수 대신, 무익 이벤트의 빈도나 데이터 양으로써 설정할 수도 있다.
임의 이벤트 항목의 빈도나 통지에 필요한 데이터 양은, 전술한 바와 같이, 해당 이벤트 항목의 부가정보에 기록되어 있을 수 있다.
무익 이벤트의 빈도나 데이터 양으로써 그룹핑 허용요건이 설정되어 있으면, 상기 이벤트 그룹핑부(111)는, 그룹핑 여부를 결정할 대상 이벤트 항목들에 대해 그들을 그룹핑했을 때, 무익 이벤트가 되는 항목들을 먼저 확인하고( 그룹 전체의 관점에서 또는 그 그룹내의 적어도 하나의 이벤트 항목을 필요로 하는 임의의 노드 관점에서 ), 그 확인된 무익 이벤트 항목들의 빈도 평균 또는 통지하는 데이터 양의 평균을 구한 후, 그 평균치를 그룹핑 허용요건에서 지정하고 있는 기준치와 비교하고, 기준치 이하로 확인될 때 그 대상 이벤트 항목들을 그룹핑하게 된다.
이상에서 설명한 이벤트 프로파일에 근거한 이벤트 그룹핑 방법은, 다른 요건에 근거해 이미 그룹핑되어 있는 그룹핑 맵을 대상으로 하여, 이벤트 그룹들을 적어도 부분적으로 보정하여 네트워크 시스템에 적용할 이벤트 그룹핑 맵을 최종 확정할 수도 있다.
이에 대해 보다 구체적으로 설명하면, 이벤트 항목들 간의 상관지수나 각 이벤트 항목의 빈도 등에 따라 이벤트 항목들이 그룹핑된 그룹핑 맵에 대하여, 이벤트 프로파일이 주어지면, 상기 이벤트 그룹핑부(111)는, 상기 주 처리부(110)로부터 인가된 현재 지정된 모드에 따라, 손익비율 또는 설정된 그룹핑 허용요건에 근거해 각 이벤트 그룹의 적정성을 확인한다.
적정성이 부족하다고 판별되면, 즉, 손익비율이 기 설정된 기준치를 초과하거나, 또는 그룹핑 허용요건을 벗어난 것으로 확인되면, 상기 이벤트 그룹핑부(111)는, 해당 이벤트 그룹에 대해서, 적합한 이벤트 항목들로만 축소하여 그룹핑하거나 또는 해당 그룹을 해제하고, 그에 따라 미그룹 상태가 된 이벤트 항목에 대해서는, 손익비율이나 그룹핑 허용요건에서 기준을 충족하는 다른 그룹에 귀속시키게 된다.
물론, 이 과정에서, 복수개로 구분되어 있는 이벤트 그룹들이 손익비율이나 그룹핑 허용요건에서 주어진 기준을 충족하게 되면, 이들에 대해서는 단일의 그룹으로 재그룹핑될 수도 있다.
본 발명에 따른 일 실시예에서는, 이벤트 프로파일이 주어졌을 때, 상기 이벤트 그룹핑부(111)가, 그 프로파일의 정보를 분석하여 수행하는 전술한 다양한 실시예들 중 어느 하나 또는 2이상이 결합된 방법에 따른 이벤트 그룹핑을, 조건에 따라 선택적으로 수행하게 할 수도 있다. 예를 들어, 본 실시예에서는, 상기 주 처리부(110)로부터 모드의 지정과 함께 이벤트 그룹핑 명령이 인가되었을 때, 상기 이벤트 그룹핑부(111)가 주어진 이벤트 프로파일의 정보를 분석하여, 각각의 노드들이 필요로 하는 이벤트 항목들의 확인한 뒤, 그들이 필요로 하는 서로 다른 이벤트 항목들의 전체 수가 기 지정된 문턱치 이상이면, 모드 지정에 따른 이벤트 그룹핑( 이벤트 프로파일을 기반으로 하는 전술한 실시예들 중 어느 하나에 의한, 또는 2이상이 결합된 그룹핑 )을 수행하고, 만약 그 문턱치 미만이면, 모드 지정에 따른 이벤트 그룹핑을 수행하지 않고, 그 대신 상기 확인된 서로 다른 이벤트 이벤트 항목들에 대해서 각기 하나씩 이벤트 그룹으로 지정하여 그룹핑 맵을 작성한다. 그리고, 이와 같은 단일 이벤트당 그룹이 하나씩 지정된 사실을 상기 주 처리부(110)에 통지함으로써, 사용자가 그 사실을 알 수 있는 안내 메시지 등이 상기 디스플레이부(114)에 표시될 수 있게 한다.
지금까지 설명한 다양한 실시예들 중 어느 하나의 방법에 따라, 또는 2개 이상이 결합된 방법에 따라 상기 이벤트 그룹핑부(111)가 이벤트 항목들을 그룹핑하여 작성한 이벤트 그룹핑 맵은, 상기 스토리지부(113)에 저장되고, 그 작성완료 사실이 상기 주 처리부(110)에 통지된다.
그러면, 상기 주 처리부(110)는, 그룹핑 맵의 작성완료를 상기 디스플레이부(114)에 별도의 창으로써 표시하여 사용자에게 안내한다. 이 안내에 따라 외부의 특정 기기나 저장장치로의 내보내기를 사용자가 요청하면, 그 요청에 따라 상기 스토리지부(113)에 저장되어 있는 그룹핑 맵을 상기 기기 인터패이스부(112)를 통해 하나의 파일로서 지정된 기기 등으로 전송한다.
이와 같이 내보내진 그룹핑 맵의 파일은, 서비스 기반의 정보 교환을 지원하는, 특정용도의 임의 장치에 장착된 네트워크 시스템의 각 노드에 이식된다. 다르게는, 각 노드가, 연결된 네트워크를 통해 특정 노드에 저장된 그룹핑 맵을 다운로드하여 구비할 수도 있다.
도 13은, 전술한 바와 같이 작성된 그룹핑 맵을 구비하고, 그 구비된 그룹핑 맵을 참조하여 이벤트 가입을, 그리고 발생된 이벤트를 연결된 네트워크를 통해 타 노드에 요청하거나 통지할 수 있는 노드, 예를 들어 전자제어 유니트의 구성을 예시한 것이다.
예시된 노드의 기기(20)에는, 서비스 지향 인터페이싱 에이전트(Service-Oriented Interfacing Agent)(200)( 이하, '서비스 에이전트'로 약칭한다. )가 구비되며, 이 서비스 에이전트(200)는, 그 노드에서 실행되는 응용 프로그램들(10i, i=1,2,..)과 운영시스템(OS) 사이에 개입하여, 그 기기(20)가 전담하는 상태 변수들에 연관된 각종의 신호나 정보에 대하여, 그리고 네트워크 상의 다른 노드에 해당하는 기기가 전담하는 상태 변수들에 연관된 신호나 정보에 대하여 조회하고 설정할 수 있게 하며, 또한, 타 기기가 전담하는 상태 변수에 대하여 실시간으로 특정 상태나 특정 값이 된 것을 통지받기 위해, 그 타 기기에 이벤트 그룹을 기반으로 이벤트 가입을 하는 동작 등을 수행한다.
도 13의 서비스 에이전트(200)는, 임의의 응용 프로그램(10i)이 서비스 기반의 정보 조회(query)와 설정( '서비스 기반의 정보 조회와 설정'을 통칭하여 '서비스 기반(의) 액션요청'이라 칭한다. ), 그리고 서비스 기반의 이벤트 가입요청을 할 수 있도록, 그러한 요청을, 정해진 서비스 구문법(syntax)에 따라 해석하도록 구성된 서비스 인터페이스부(201)와, 상기 서비스 인터페이스부(201)가 임의의 서비스 기반의 액션요청과 이벤트 가입요청( 이 액션요청과 가입요청을 통칭하여 '서비스 기반요청'이라 한다. )을 해석하여 그 요청에 의해 수행되어야 할 메소드와 그 메소드의 대상이 되는 상태 변수를, 기 약속된 방식으로 각각 특정하여 전달하면, 그 특정된 상태 변수에 대해 그 특정된 메소드가 실행되게 하는 동작을 수행하도록 구성된 서비스 처리부(202)와, 운영시스템(OS) 또는 별도로 구비되는 미들웨어 등이 제공하는 다양한 통신용 프로토콜 실행 루틴들을 적절히 호출함으로써, 네트워크 상의 다른 기기들과 기 정해진 프로토콜, 예를 들어 SOME/IP (Scalable service-Oriented Middleware over IP)와 같은 프로토콜에 따라 메시지들을 주고 받을 수 있도록 구성된 메시지 처리부인 메시지 핸들러(handler)(203)와, 운영시스템이 제공하는 다양한 인터페이스용 실행 루틴들을 통해, 해당 기기(20)의 전속 주변부로부터 신호나 정보를 획득하거나 그들에 대해 특정 값을 설정하도록 구성된 로컬 정보 처리부인 로컬 상태 핸들러(204)를 포함하여 구성된다.
또한, 상기 서비스 에이전트(200)에는, 상기 기기(20)가 전담하는 상태 변수들에 대해 모니터링되는 현재 값들 그리고 이벤트 상황이 기록되도록, 서비스 항목별로 상태 변수 및 이벤트 항목과 연계되어 조직화되어 있는 목록인 상태 데이터베이스(220)가 구비되고, 전술한 바와 같이 작성된 그룹핑 맵(210)이 각각 구비된다. 상기 상태 데이터베이스(220)는, 전술한 바의 서비스 인터페이스부(201), 서비스 처리부(202), 그리고 로컬 상태 핸들러(204)에 의해 조회되거나 또는 적어도 일부의 정보가 갱신될 수 있다.
그리고, 상기 로컬 상태 핸들러(204)는, 상기 상태 데이터베이스(220)에 지정되어 있는 이벤트 항목에 해당하는 이벤트가 발생하면, 필요한 경우 상기 상태 데이터베이스(220)에서 해당 상태 변수의 값을 변경함과 함께, 이벤트의 발생 사실을, 해당 이벤트 항목에 대한 정보와 함께 상기 서비스 처리부(202)에 통지하게 된다.
한편, 본 발명에 따른 일 실시예에서는, 상기 서비스 에이전트(200)를 구성하는 서비스 인터페이스부(201), 서비스 처리부(202), 메시지 핸들러(203) 그리고 로컬 상태 핸들러(204)가 운영시스템의 기반 하에 각기 개별적으로 수행되는 실행개체일 수 있다. 다르게는, 이들(201,202,203,204)을 포함하는 상기 서비스 에이전트(200k)가 단일의 실행개체로서 구현될 수도 있다. 또한, 이들의 각 기능의 일부는 하드웨어를 통해 수행될 수도 있다. 따라서, 상기 서비스 에이전트(200)는, 그 구현하는 형태 또는 사용된 자원(resource)의 유형 등이 본 멍세서에서의 예시적인 설명과 상이하다는 이유로 본 발명의 범위가 미치지 않는 것으로 해석되어서는 안된다.
도 13의 기기(20)에 전원이 인가됨으로써 상기 서비스 에이전트(200)가 기동되면, 상기 서비스 처리부(202)는, 어떤 서비스 항목들에 대하여 서비스 기반 요청에 응할 수 있는지를 기록하고 있는 고유 프로파일의 내용을 상기 메시지 핸들러(203)에 제공함으로써, 동일 네트워크에 연결된 모든 기기들, 즉 그 기기들의 각 서비스 처리부가 그 내용을 파악할 수 있도록 한다.
상기 메시지 핸들러(203)는, 상기 서비스 처리부(202)가 전달하는 내용을, 하나의 메시지로 또는 복수의 메시지들로 구성하여, 연결된 네트워크 상의 송수신에 요구되는 프로토콜에 따른 포맷, 예를 들어 UDP 또는 TCP 방식의 수송 프레임에 실어서 네트워크로 송신한다.
이와 같은 방식으로 각 기기의 고유 프로파일이 교환되고 나면, 네트워크 상의 모든 기기의 서비스 처리부는, 어떤 기기에서 어떤 서비스 항목( 즉, 상태 변수와 메소드, 그리고 이벤트 항목 )을 지원하고 있는지를 파악하게 되고, 이 파악된 정보를 별도의 '외부 서비스 현황정보'로 저장한다.
한편, 상기 기기(20)에 전원이 인가되어 그 기기에서 응용 프로그램들(10i)이 실행되면, 의도된 동작을 수행하기 위해 필요한 이벤트 항목에 대한 가입을 상기 서비스 에이전트(200)에 각기 요청한다. 이 서비스 기반의 이벤트 가입요청에는, 이벤트 식별자가 포함된다.
이 이벤트 가입요청이 상기 서비스 인터페이스부(201)를 통해 수신되면, 상기 서비스 처리부(202)는, 상기 상태 데이터베이스(220)에서 그 수신된 이벤트 식별자를 검색하여, 가입 요청된 이벤트 식별자가 자신이 관리하고 있는 이벤트 항목에 대한 것인지를 확인한다.
만약, 상기 상태 데이터베이스(220)에서 찾을 수 없으면, 앞서 저장해 둔 상기 외부 서비스 현황정보에서 그 이벤트 식별자의 이벤트 항목을 찾아서, 어떤 노드에서 지원하고 있는지를 확인한다.
이와 함께, 상기 수신된 이벤트 식별자를 상기 그룹핑 맵(210)에서 검색하여, 그 이벤트 식별자가 어떤 이벤트 그룹에 속하는 것인지를 파악한다. 이때 검색되는, 상기 그룹핑 맵(210)은, 상기 기기(20)가 연결되어 구축된 네트워크 시스템의 각각의 노드, 즉 각 기기에서 실행되는 응용 프로그램들이 가입 요청하는 이벤트 항목들을 모두 미리 반영하여 작성된 이벤트 프로파일에 대해서, 전술하였던 바와 같이, 손익비율 또는 그룹핑 허용요건에 근거하여 이벤트 항목들을 그룹핑하고 있는 정보일 수 있다. 다르게는, 이벤트 프로파일이 반영되지 않고, 전술한 하나 이상의 실시예에 따라 작성된 이벤트 그룹핑에 대한 정보일 수도 있다.
가입요청된 이벤트 항목에 대해서 그 이벤트 항목을 지원하고 있는 노드가 확인되고, 또한 그 이벤트가 속한 이벤트 그룹이 확인되면, 상기 서비스 인터페이스부(201)는, 그 이벤트 그룹을 식별케 하는 그룹 식별자를 포함시킨 그룹기반의 가입요청 메시지를 구성하여, 상기 확인된 지원 노드에 대한 주소를 지정하면서 상기 메시지 핸들러(203)에 전송함으로써, 해당 노드에 이벤트 그룹에의 가입을 요청한다. 이때 그 이벤트 그룹에의 가입이 지속되는 시간을 지정하는 유효시간( TTL: Time To Live )을 포함시켜 전송한다.
상기 서비스 에이전트(200)가, 전술한 바와 같은 이벤트 항목에 대한 그룹 기반의 가입을 다른 기기들에 하는 동안, 상기 서비스 에이전트(200)도, 자신이 관리하고 있는 이벤트 항목들에 대해서, 다른 기기들의 각 서비스 에이전트로부터의 이벤트 그룹 기반의 가입요청을 수신하게 된다.
이러한 가입 요청은 상기 메시지 핸들러(203)를 통해 상기 서비스 처리부(202)에 전달되는데, 이러한 이벤트 그룹에 대한 가입요청이 있으면, 상기 서비스 처리부(202)는, 도 14에 예시된 바와 같은 구조의 이벤트 통계정보(1200)를, 상기 그룹핑 맵(210)의 정보를 참조하여 작성한다. 최초 작성 시에는, 이벤트 그룹마다 해당 그룹에 속하는 이벤트 항목들의 식별자를 부가하고(1210), 다른 필드들에 대해서는 0으로 초기화시킨다.
그리고, 각각의 그룹기반의 가입요청이 있을 때마다, 해당 이벤트 그룹에 대해서 가입요청한 노드의 식별자( 예를 들어, 맥(MAC) 또는 IP주소 등 )를 기록하고, 가입된 노드의 수를 그에 맞게 기록하며(1220), 그 가입요청에 대해서는 가입응답 메시지를 구성하여 상기 메시지 핸들러(203)를 통해 전송한다. 이 가입응답 메시지에는, 가입요청한 이벤트 그룹에 대해서 멀티캐스트 방식으로 전송할 수도 있음을 나타내는 멀티캐스트 주소를 실어서 전송할 수도 있다.
노드들 간의 이벤트 항목들에 대한 가입이 전술한 바와 같은 서로 간의 메시지 교환에 의해 완료되고 나면, 그 이후부터는, 가입이 등록된 이벤트 그룹에 속하는 항목의 이벤트가 발생하면, 이를 통지하는 동작이 다음과 같이 이루어진다.
상기 기기(20) 내에서, 상기 로컬 상태 핸들러(204)로부터 이벤트 발생 사실이 상기 서비스 처리부(202)로 통지되면, 그 통지에 수반된 이벤트 항목의 정보를, 상기 그룹핑 맵(210)에서 검색하여 해당 이벤트 식별자가 어떤 이벤트 그룹에 속하는지를 확인한다.
이벤트 그룹이 확인되면, 상기 서비스 처리부(202)는, 이벤트 식별자와 이벤트의 내용을 담은, 이벤트 발생사실을 알리는 메시지를 구성하여, 앞서 확인된 이벤트 그룹에 가입한 노드들 각각에 대하여 전송하게 된다.
해당 이벤트 그룹에 대해 가입한 노드들이 적정한 수 이상이 되어, 그 이벤트 그룹에 대해서는 멀티캐스트 방식으로 통지하는 것으로 지정한 경우에는, 그 멀티캐스트를 위해 할당한 멀티캐스트 주소로, 상기 구성한 이벤트 발생 통지 메시지를 상기 메시지 핸들러(203)를 통해 1회만 전송할 수 있다.
발생된 이벤트를 알리는 이벤팅 메시지를 네트워크로 전송하고 나면 또는 그 전송 전에, 상기 서비스 처리부(202)는, 어느 하나의 이벤트가 발생했던 이벤트 그룹에 대해서, 해당 이벤트에 대한 발생 횟수를 1증가시켜 상기 이벤트 통계정보(1200)에 기록한다(1231).
이런 방식으로 카운트하는 발생 횟수는, 해당 이벤트 그룹에 대해 가입요청하는 메시지에 실려 있는 유효시간(TTL) 단위로 초기화되고, 그때까지 카운트된 이벤트별 발생횟수는 이력을 위해 별도로 저장한다(1240). 이렇게 저장할 때, 각 이벤트 항목에 대한 발생횟수에 그 이벤트 항목의 통지에 수반되는 데이터 양을 곱하여 해당 시간 동안의 총 데이터 양(dSi, i=j,j+1,..,m)을 구하고, 또한, 하나의 이벤트 그룹 내에서의 총 데이터 양(dSi, i=j,..,j+3)들 간의 비율(βi, i=j,..,j+3)을 구하여 각 이벤트 항목에 대해 기록한다.
본 발명에 따른 다른 일 실시예에서는, 임의 이벤트 그룹에 속하는 이벤트의 발생에 대해 카운트할 때, 집계하는 시간 단위를, 상기 유효시간이 아닌 각 기기에서 동작하는 서비스 에이전트에 대해 동일하게 설정된 특정 시간격으로 할 수도 있다.
상기 서비스 처리부(202)는, 도 14에 예시된 바와 같이 작성된 이벤트 통계정보(1200)를, 일정 주기로 기 지정된 주소의 네트워크 상의 특정 기기에 제공하여 집중 저장되게 할 수 있다. 또는 그 특정 기기로부터의 요청에 따라 제공할 수도 있다. 이와 같이, 상기 특정 기기에 집중된 이벤트 통계정보들에 대해서는 특별한 장치를 통해 읽어 내어, 상기 기반정보 생성장치(100)에 이벤트 그룹핑을 위한 자료로서, 예를 들어, 전술한 바의 이벤트 프로파일의 정보를 추출하여 사용하도록 제공할 수도 있다.
지금까지 구체적으로 설명한, 본 발명에 따른 서비스 기반의 이벤트들의 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치에 대한 다양한 실시예들과, 그 실시예에서 설명된 구성 및 작용 등은 서로 양립할 수 없는 경우가 아니라면, 상호 다양한 방식으로 선택적으로 결합되어 실시 가능하다.
이상, 전술한 본 발명의 실시예들은, 예시의 목적을 위해 개시된 것으로, 당업자라면, 이하 첨부된 청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 또 다른 다양한 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.
10i,12a,12a: 응용 프로그램 11,12: 통상의 전자제어 유니트
12a,12a: 응용 프로그램 20: 기기
100: 기반정보 생성장치 110: 주 처리부
111: 이벤트 그룹핑부 112: 기기 인터페이스부
113: 스토리지부 114: 디스플레이부
115: 사용자 입력부
200: 서비스 지향 인터페이싱 에이전트
201: 서비스 인터페이스부 202: 서비스 처리부
203: 메시지 핸들러 204: 로컬 상태 핸들러
210: 이벤트 그룹핑 맵 220: 상태 데이터베이스

Claims (38)

  1. 네트워크에 연결되어 타 기기에서의 발생 이벤트를 통지받을 수 있는 기기들에 적용되는 이벤트 관리에 필요한 정보를 생성하기 위한 장치에 있어서,
    사용자의 선택에 따라, 상기 기기들이 필요로 하는 이벤트 항목들에 대해 그룹핑하는 모드를 지정하도록 구성된 처리부와,
    상기 지정되는 모드에 따라, 상기 이벤트 항목들을 복수개의 이벤트 그룹들로 지정함으로써, 상기 이벤트 항목들의 각각을 적어도 하나의 이벤트 그룹에 매핑시키는 그룹핑 맵을 생성하도록 구성된 그룹핑부를 포함하여 구성되되,
    상기 그룹핑부는, 상기 지정되는 모드가 제 1모드이면, 상기 기기들이 각기 어떤 이벤트 항목들을 필요로 하는지에 대해 기재하고 있는 프로파일의 정보에 근거하여, 상기 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가 상기 이벤트 항목들을 그룹핑하지 않았을 때에 비해서 감소하도록 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑하도록 구성된 것인 장치.
  2. 제 1항에 있어서,
    상기 그룹핑부는, 상기 제 1모드가 지정되면, 임의 개수의 대상 이벤트 항목들에 대하여, 그 대상 이벤트 항목들을 하나의 이벤트 그룹으로 그룹핑했을 때의 이벤트 가입에서 나타나는 이익과, 이벤트 통지에서 발생하는 손실로부터 산출하는 손익반영 값이, 정해진 기준을 충족시킬 때, 상기 대상 이벤트 항목들을 하나의 이벤트 그룹으로 그룹핑하는 방식으로 상기 이벤트 항목들을 그룹핑하도록 구성된 것인 장치.
  3. 제 2항에 있어서,
    상기 이익은, 이벤트 항목에 대해 그룹기반으로 가입함에 따라 감소하는 요청 횟수이고, 상기 손실은, 이벤트 발생 시에 통지에서 증가하는 횟수인 것인 장치.
  4. 제 2항에 있어서,
    상기 이익은, 이벤트 항목에 대해 그룹기반으로 가입함에 따라 감소하는 트래픽 양이고, 상기 손실은, 이벤트 발생 시에 통지에서 증가하는 데이터 양인 것인 장치.
  5. 제 2항에 있어서,
    상기 그룹핑부는, 필요로 하는 기기의 수가 기 지정된 최소수보다 작은 이벤트 항목, 또는 상기 손익반영 값이 상기 정해진 기준을 충족시키게 되는 다른 이벤트 항목의 수가 기 지정된 수 이하가 되는 이벤트 항목에 대해서는 상기 방식에서의 그룹핑에서 배제하고, 상기 방식과는 다른 방식을 적용하여, 적어도 상기 배제한 이벤트 항목들이 전체로 또는 나뉘어서 하나 이상의 그룹에 속하도록 이벤트 그룹을 지정하도록 구성된 것인 장치.
  6. 제 5항에 있어서,
    상기 다른 방식은, 상기 배제된 이벤트 항목들을 전체로 하나의 이벤트 그룹으로 지정하는 것인 장치.
  7. 제 5항에 있어서,
    상기 다른 방식은, 상기 배제된 이벤트 항목들 중에서, 필요로 하는 기기들이 동일한 이벤트 항목들의 조합에 대해서는 개별적으로 이벤트 그룹으로 지정하고, 상기 조합으로 묶이지 않은 나머지 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정하는 것인 장치.
  8. 제 5항에 있어서,
    상기 다른 방식은, 상기 배제된 이벤트 항목들 중에서, 필요로 하는 기기들이 동일한 이벤트 항목들의 조합에 대해서는 개별적으로 이벤트 그룹으로 지정하고, 상기 조합으로 묶이지 않은 나머지 이벤트 항목들에 대해서는 각각을 개별적인 이벤트 그룹으로 지정하는 것인 장치.
  9. 제 5항에 있어서,
    상기 다른 방식은, 상기 이벤트 항목들 중에서, 필요로 하는 기기가 있는 이벤트 항목들만을 선택하여 하나의 이벤트 그룹으로 지정하도록 구성된 것인 장치.
  10. 제 5항에 있어서,
    상기 다른 방식은, 상기 이벤트 항목들을 전체로 하나의 이벤트 그룹으로 지정하는 것인 장치.
  11. 제 2항에 있어서,
    상기 그룹핑부는, 상기 기준에 대해서 제 1기준을 정해서 상기 방식을 적용함으로써 상기 이벤트 항목들을 1차로 그룹핑하고, 그 1차의 그룹핑에서 이벤트 그룹으로 매핑되지 않은 나머지 이벤트 항목들에 대해서는 상기 기준에 대해 제 2기준을 정하여 상기 방식을 적용함으로써 이벤트 그룹들로 그룹핑하되,
    상기 제 2기준은, 상기 손익반영 값이 충족하게 되는 기준이 상기 제 1기준에 비해서 완화된 것인 장치.
  12. 제 1항에 있어서,
    상기 그룹핑부는, 상기 제 1모드가 지정되면, 상기 기기들이 각기 필요로 하는 이벤트 항목들의 집합에 대해 개별적으로 이벤트 그룹으로 지정하되, 2이상의 기기들이 필요로 하는 이벤트 항목들이 서로 일치하는 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정하도록 구성된 것인 장치.
  13. 제 12항에 있어서,
    상기 그룹핑부는, 상기 기기들 중 임의의 한 기기가 필요로 하여 하나의 그룹으로 지정될 이벤트 항목들의 부분집합이 적어도 하나의 다른 기기가 필요로 하는 이벤트 항목들과 일치할 때는, 상기 하나의 그룹으로 지정될 이벤트 항목들에 대해서, 상기 부분집합의 이벤트 항목들과 상기 부분집합에 속하지 않는 이벤트 항목들을 서로 구분하여 2이상의 이벤트 그룹들로 지정하는 것인 장치.
  14. 제 1항에 있어서,
    상기 그룹핑부는, 상기 지정되는 모드가 제 2모드이면, 상기 이벤트 항목들 간의 상호 연관성을 확인하고, 그 상호 연관성이 지정된 기준치 이상에 해당하는 이벤트 항목들끼리 그룹핑하여 상기 복수개의 이벤트 그룹들로 지정하도록 구성된 것인 장치.
  15. 제 14항에 있어서,
    상기 그룹핑부는, 상기 이벤트 항목들에 대해서 이벤트 그룹들로 그룹핑함에 있어서, 서로 다른 서비스 항목에 속하는 이벤트 항목들 간에는 상호 연관성이 없는 것을 전제로 하여 상기 기준치와의 비교를 통해 그룹핑하도록 구성된 것인 장치.
  16. 제 1항에 있어서,
    상기 그룹핑부는, 상기 지정되는 모드가 제 2모드이면, 상기 이벤트 항목들이 각기 속하는 서비스 오브젝트(object)들 간의 상호 연관성을 확인하고, 그 상호 연관성이 정해진 기준치 이상에 해당하는 서비스 오브젝트들끼리 그룹핑한 후, 그 그룹핑에 의해 지정된 오브젝트 그룹들의 각각에 속하는 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정하도록 구성된 것인 장치.
  17. 제 14항 내지 제 16항 중 어느 한 항에 있어서,
    상기 상호 연관성은, 둘 사이에 직접 연관된 정도를 나타내는 직접 상관지수이거나, 둘 사이에 적어도 다른 하나를 매개로 하여 연관되어 있어, 그 매개가 되는 적어도 다른 하나와의 복수의 상기 직접 상관지수로부터 산출되는 간접 상관지수인 것인 장치.
  18. 제 17항에 있어서,
    상기 그룹핑부는, 상기 처리부에 의해 지정된 상관성 깊이를 초과하는 수의 매개에 의해 서로 간에 연관되는 둘 사이에 대해서는 상기 간접 상관지수를 산출하지 않도록 구성된 것인 장치.
  19. 제 1항에 있어서,
    상기 그룹핑부는, 상기 지정되는 모드가 제 2모드이면, 상기 이벤트 항목들에 대해서 발생빈도에 근거하여 상기 복수개의 이벤트 그룹들로 그룹핑하되, 하나의 이벤트 그룹에 매핑시키는 이벤트 항목들은, 상기 이벤트 항목들을 발생빈도에 따라 배열하였을 때 발생빈도에 있어서 서로 연이어지는 것들인 것인 장치.
  20. 제 19항에 있어서,
    상기 그룹핑부는, 발생빈도가 높은 이벤트 항목들이 속하는 임의의 제 1이벤트 그룹이 발생빈도가 낮은 이벤트 항목들이 속하는 임의의 제 2이벤트 그룹에 비해서 더 적은 수의 이벤트 항목들을 포함하게 하는 방식으로 그룹핑하도록 구성된 것인 장치.
  21. 제 1항에 있어서,
    상기 그룹핑부는, 상기 지정되는 모드가 제 2모드이면, 상기 이벤트 항목들 각각의 발생빈도에 근거하여 산출하는 빈도 상관성과, 상기 이벤트 항목들 간에 대해 지정되어 있는 상호 연관성의 가중 평균치에 근거하여 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑하도록 구성되되,
    상기 빈도 상관성은, 발생빈도에서의 차이가 적을수록 높은 상관성을 나타내는 값이 결과로 주어지는 규칙에 따라 산출되는 것인 장치.
  22. 제 16항, 제 19항 또는 제 21항에 있어서,
    상기 그룹핑부는, 상기 제 2모드에 따라 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑한 후, 상기 프로파일의 정보에 근거하여, 상기 복수개의 이벤트 그룹들의 적어도 일부에 대해서, 해당 이벤트 그룹에 매핑되어 있는 이벤트 항목들을 보정하도록 구성되되,
    상기 보정에는, 임의 이벤트 그룹에 매핑되어 있는 이벤트 항목들을 축소 시키거나, 또는 그 임의 이벤트 그룹에 매핑된 이벤트 항목들을 모두 하나 이상의 다른 이벤트 그룹으로 매핑시킴으로써 그 임의 이벤트 그룹을 해제시키는 것이 포함되는 것인 장치.
  23. 제 1항에 있어서,
    상기 그룹핑부는, 상기 이벤트 항목들에 대한 그룹핑에 의해 얻어지는 이벤트 그룹들의 수가 상기 처리부가 지정하는 그룹 허용개수를 넘지 않도록 상기 복수개의 이벤트 그룹들로 그룹핑하도록 구성된 것인 장치.
  24. 제 23항에 있어서,
    상기 그룹핑부는, 상기 이벤트 항목들에 대해 그룹핑하여 얻은 이벤트 그룹의 수가 상기 그룹 허용개수를 넘게 되면, 그 그룹핑에서 하나의 그룹으로 지정하기 위해 적용하였던 조건을 완화하여 상기 이벤트 항목들에 대해 적어도 부분적으로 그룹핑을 다시 하여, 이벤트 그룹들의 수가 상기 그룹 허용개수를 넘지 않도록 하는 것인 장치.
  25. 제 1항 또는 제 23항에 있어서,
    상기 그룹핑부는, 상기 이벤트 항목들을 그룹핑함에 있어서, 발생된 이벤트를 통지하는데 필요한 데이터양이 기 지정된 기준치 이상이거나, 또는 그 통지하는 데이터의 내용이 특정의 중요도 이상인 이벤트 항목에 대해서는 그 단독으로 하나의 이벤트 그룹을 지정하도록 구성된 것인 장치.
  26. 제 1항 내지 제 13항 중 어느 한 항에 있어서,
    상기 그룹핑부는, 상기 기기들이 필요로 하는 서로 다른 이벤트 항목들의 전체 수가 기 지정된 문턱치 이상일 때만, 상기 제 1모드로 지정된 이벤트 그룹핑을 수행하도록 구성된 것인 장치.
  27. 제 26항에 있어서,
    상기 그룹핑부는, 상기 전체 수가 상기 문턱치 미만일 때는, 상기 서로 다른 이벤트 항목들에 대해서 각기 하나씩 이벤트 그룹으로 지정하도록 구성된 것인 장치.
  28. 제 1항 내지 제 16항, 제 19항 내지 21항, 제 23항 그리고 제 24항 중 어느 한 항에 있어서,
    상기 그룹핑부는, 발생된 이벤트를 통지하는데 필요한 데이터양이 기 지정된 기준치 이하이거나, 발생하는 빈도가 기 지정된 기준치보다 낮은 이벤트 항목들이 복수개 있으면, 그 복수개의 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정하도록 구성된 것인 장치.
  29. 제 14항 내지 제 16항, 제 19항 내지 제 21항 그리고 제 23항 중 어느 한 항에 있어서,
    상기 그룹핑부는, 상기 이벤트 항목들에 대한 그룹핑의 결과로 얻어진 이벤트 그룹들 중 어느 하나의 이벤트 그룹 내의 모든 이벤트 항목들이 기 지정된 특정의 요건을 충족시키게 되면, 상기 어느 하나의 이벤트 그룹에 매핑된 이벤트 항목들을 다른 이벤트 그룹으로 다시 매핑시켜 상기 어느 하나의 이벤트 그룹을 해제시키되,
    상기 특정의 요건은, 발생된 이벤트를 통지하는 필요한 데이터양이 기 지정된 기준치 이하인 것인 장치.
  30. 제 1항에 있어서,
    상기 처리부는, 사용자의 선택을 위해 필요한 정보가 디스플레이부의 화면에 표시되게 하고, 그 표시된 정보에 따른 사용자의 선택 내용을 입력받아, 그 선택 내용에 의해 지정되는, 특정의 서비스지향(Service-Oriented)의 규칙에서 정하고 있는 하나 이상의 서비스 구성 엘리먼트(element)에 대해서 응용 프로그램 인터페이스를 기 지정된 형식으로 기록한 파일을 생성하도록 더 구성된 것인 장치.
  31. 제 30항에 있어서,
    상기 서비스 구성 엘리먼트는, 상기 특정의 서비스지향의 규칙에서 정하고 있는 서비스 항목, 상태 변수, 메소드(method) 그리고 이벤트 항목 중 적어도 임의의 어느 하나에 해당하는 것인 장치.
  32. 컴퓨팅 장치에 의해 실행될 수 있는 명령 코드들로써 이루어진 특정 프로그램을 수록하고 있는 기록매체에 있어서,
    상기 특정 프로그램은, 임의의 컴퓨팅 장치에 의해 실행되는 경우,
    네트워크에 연결되어 타 기기에서의 발생 이벤트를 통지받을 수 있는 기기들이 필요로 하는 이벤트 항목들에 대해 그룹핑하는 모드를 사용자의 선택에 따라 지정하는 제 1기능과,
    상기 지정되는 모드에 따라, 상기 이벤트 항목들을 복수개의 이벤트 그룹들로 지정함으로써, 상기 이벤트 항목들의 각각을 적어도 하나의 이벤트 그룹에 매핑시키는 그룹핑 맵을 생성하는 제 2기능을 수행하는 코드들로 이루어져 있되,
    상기 제 2기능은, 상기 지정되는 모드가 제 1모드이면, 상기 기기들이 각기 어떤 이벤트 항목들을 필요로 하는지에 대해 기재하고 있는 프로파일의 정보에 근거하여, 상기 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가 상기 이벤트 항목들을 그룹핑하지 않았을 때에 비해서 감소하도록 상기 이벤트 항목들을 상기 복수개의 이벤트 그룹들로 그룹핑하는 기능을 포함하고 있는 것인 기록매체.
  33. 네트워크에 연결되어 그 네트워크를 통하여 다른 기기들과 이벤트에 관한 정보를 송수신할 수 있는 기기에 있어서,
    상기 네트워크에 연결된 모든 기기들이 고유하게 식별할 수 있는 식별자를 각기 갖는 이벤트 항목들에 대해서 복수개의 이벤트 그룹들로 매핑(mapping)하고 있는 그룹핑 정보를 구비하고, 또한,
    상기 네트워크를 통해 상기 다른 기기들과 메시지를 주고 받을 수 있도록 구성된 제 1처리부와,
    상기 기기에서 실행되는 응용 프로그램으로부터 수신되는 상기 다른 기기들 중 어느 하나의 기기에 대한 이벤트 가입 요청에 대하여, 상기 그룹핑 정보를 참조하여 그 가입 요청에 포함된 이벤트 식별자가 속하는 임의의 이벤트 그룹을 확인하고, 그 확인된 임의의 이벤트 그룹을 나타내는 식별자를 포함하는 그룹기반의 가입요청 메시지를 상기 제 1처리부에 전달함으로써, 상기 네트워크로 전송되게 하도록 구성된 제 2처리부를 포함하여 구성되되,
    상기 그룹핑 정보는, 상기 모든 기기들이 각기 필요로 하는 이벤트 항목들의 전부에 대해서, 상기 모든 기기들 중 적어도 하나의 기기에서 볼 때, 해당 기기가 필요로 하는 하나 이상의 이벤트 항목에 대해 가입하게 되는 횟수가, 상기 이벤트 항목들의 전부를 상기 복수개의 이벤트 그룹들로 그룹핑하지 않았을 때에 비해서 감소하도록 이벤트 그룹들로 그룹핑하고 있는 것인 기기.
  34. 제 33항에 있어서,
    상기 그룹핑 정보에는, 하나 이상의 이벤트 그룹의 각각이, 해당 그룹에 속하는 이벤트 항목들을 그룹핑했을 때의 이벤트 가입에서 나타나는 이익과, 이벤트 통지에서 발생하는 손실로부터 산출하는 손익반영 값이, 기 정해진 기준 이상되는 이벤트 항목들의 집합으로 이루어져 있는 것인 기기.
  35. 제 33항에 있어서,
    상기 그룹핑 정보에는, 상기 모든 기기들이 각기 필요로 하는 이벤트 항목들의 집합에 대해 개별적으로 이벤트 그룹으로 지정되어 있되, 2이상의 기기들이 필요로 하는 이벤트 항목들이 서로 일치하는 이벤트 항목들에 대해서는 하나의 이벤트 그룹으로 지정되어 있는 것인 기기.
  36. 제 33항에 있어서,
    상기 그룹핑 정보에는, 발생빈도가 높은 이벤트 항목들이 속하는 임의의 제 1이벤트 그룹이, 발생빈도가 낮은 이벤트 항목들이 속하는 임의의 제 2이벤트 그룹에 비해서 더 적은 수의 이벤트 항목들을 포함하여 그룹핑되어 있는 것인 기기.
  37. 제 33항에 있어서,
    상기 그룹핑 정보에는, 발생된 이벤트를 통지하는데 필요한 데이터양이 기 지정된 기준치 이상이거나, 또는 그 통지하는 데이터의 내용이 특정의 중요도 이상인 이벤트 항목이 단독으로 하나의 이벤트 그룹으로 지정되어 있는 것인 기기.
  38. 제 33항에 있어서,
    상기 제 2처리부는, 상기 기기에서, 상기 그룹핑 정보에 지정되어 있는 임의의 이벤트 항목에 해당하는 이벤트가 발생하면, 상기 그룹핑 정보에서 지정하고 있는 상기 발생한 이벤트가 속하는 이벤트 그룹에 그 발생 횟수를 기록함으로써, 상기 그룹핑 정보의 각 이벤트 그룹에 대하여 어떤 이벤트 항목들이 얼마나 발생하였는지를 나타내는 정보를 생성하도록 더 구성된 것인 기기.
KR1020200049655A 2020-04-23 2020-04-23 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치 KR102207344B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200049655A KR102207344B1 (ko) 2020-04-23 2020-04-23 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200049655A KR102207344B1 (ko) 2020-04-23 2020-04-23 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치

Publications (1)

Publication Number Publication Date
KR102207344B1 true KR102207344B1 (ko) 2021-01-26

Family

ID=74310371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200049655A KR102207344B1 (ko) 2020-04-23 2020-04-23 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치

Country Status (1)

Country Link
KR (1) KR102207344B1 (ko)

Citations (4)

* 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
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 (4)

* 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
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
US11243704B2 (en) Data pipeline architecture for analytics processing stack
US10324711B2 (en) System and method for the data management in the interaction between machines
KR102415845B1 (ko) 사물 인터넷 리소스 구독 방법, 디바이스, 및 시스템
CN108510082B (zh) 对机器学习模型进行处理的方法及装置
CN108696381B (zh) 一种协议配置方法及装置
US10462262B2 (en) Middleware abstraction layer (MAL)
CN102185900B (zh) 一种应用服务平台系统和一种开发应用服务的方法
CN109213519B (zh) 一种异构api适配处理方法及系统
CN107479984B (zh) 基于消息的分布式空间数据处理系统
US20210034595A1 (en) Database systems and related multichannel communication methods
CN110505162A (zh) 消息传输方法、装置及电子设备
CN110769018A (zh) 一种消息推送方法及装置
KR102207344B1 (ko) 서비스 기반의 이벤트들에 대한 그룹핑 및 그룹핑된 이벤트들의 이용 방법과 그 방법을 위한 장치
CN116661978B (zh) 一种分布式的流程处理方法、装置及分布式业务流程引擎
CN116302448B (zh) 任务调度方法和系统
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
CN116244383A (zh) 基于bom中台的bom同步处理方法、设备及介质
CN113791766B (zh) 组合数据接口的方法、电子设备和可读存储介质
KR20130078037A (ko) 온 더 플라이 학습 기반 검색을 이용한 큐 오 에스 인식 웹 서비스 구성방법
CN116389552A (zh) 一种基于发布订阅模型的异构数据传输系统
CN116884504A (zh) 工作流生成方法、装置、计算机系统及计算机存储介质
CN116186022A (zh) 表单处理方法、装置、分布式表单系统和计算机存储介质
US10958514B2 (en) Generating application-server provisioning configurations
CN113691575A (zh) 通信方法、装置及系统
KR102545640B1 (ko) 철도차량 시스템의 소프트웨어 개발 시스템 및 방법

Legal Events

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