KR100998307B1 - 유비쿼터스 컴퓨팅 환경을 위한 분산형 규칙 처리 - Google Patents

유비쿼터스 컴퓨팅 환경을 위한 분산형 규칙 처리 Download PDF

Info

Publication number
KR100998307B1
KR100998307B1 KR1020080105738A KR20080105738A KR100998307B1 KR 100998307 B1 KR100998307 B1 KR 100998307B1 KR 1020080105738 A KR1020080105738 A KR 1020080105738A KR 20080105738 A KR20080105738 A KR 20080105738A KR 100998307 B1 KR100998307 B1 KR 100998307B1
Authority
KR
South Korea
Prior art keywords
rule
rules
rule set
evaluated
candidate
Prior art date
Application number
KR1020080105738A
Other languages
English (en)
Other versions
KR20090124894A (ko
Inventor
우철 정
대령 이
스텔라 제이 미첼
조나단 문선
문주 박
데이비드 에이 우드
Original Assignee
한국산업기술평가관리원
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국산업기술평가관리원, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 한국산업기술평가관리원
Publication of KR20090124894A publication Critical patent/KR20090124894A/ko
Application granted granted Critical
Publication of KR100998307B1 publication Critical patent/KR100998307B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

감지 및 응답 시스템 내의 분산형 규칙 처리를 위한 방법 및 장치가 제공된다. 후보 규칙 세트를 식별하기 위한 방법이 개시되고, 이 방법은 하나 이상의 센서로부터 정보를 수신하는 하나 이상의 규칙을 식별하여 제1 후보 규칙 세트를 생성하는 단계; 식별된 규칙 각각을 평가하여 초기 후보 규칙 세트를 식별하는 단계로서, 선택된 디바이스가 평가되고 있는 규칙에 대한 정보를 생성하는 것이 가능한 센서와 관련되는 경우, 선택된 디바이스가 평가되고 있는 규칙에 의해 요구되는 입력 정보를 국부적으로 제공하는 것이 가능한 경우, 그리고 평가되고 있는 규칙이 디바이스 그룹과 관련되고 디바이스 그룹 내의 다른 디바이스로부터 발생된 이벤트를 소비하는 어떠한 상관 연산자도 존재하지 않는 경우에, 초기 후보 세트에 규칙이 추가되는 것인, 초기 후보 규칙 세트를 식별하는 단계; 및 초기 후보 세트 내의 각각의 규칙을 평가하여 최종 후보 규칙 세트를 식별하는 단계로서, 선택된 디바이스가 정보를 수신하는 규칙에 의해 요구되는 입력 정보를 국부적으로 만족시키는 것이 가능한 경우, 그리고 정보를 수신하는 규칙이 디바이스 그룹과 관련되고, 디바이스 그룹 내의 다른 디바이스로부터 발생된 이벤트를 소비하는 어떠한 상관 연산자도 존재하지 않는 경우에, 평가되고 있는 규칙으로부터 정보를 수신하는 임의의 규칙이 초기 후보 세트에 추가되어 최종 후보 세트를 생성하는 것인, 최종 후보 규칙 세트를 식별하는 단계를 포함한다.

Description

유비쿼터스 컴퓨팅 환경을 위한 분산형 규칙 처리 {DISTRIBUTED RULE PROCESSING FOR UBIQUITOUS COMPUTING ENVIRONMENTS}
본 발명은 감지-응답(sense-response) 기술에 관한 것이다.
저가의 센서 기술, 저전력 컴퓨팅 기술 및 광범위하게 이용 가능한 무선 네트워크의 출연으로 인해, 물질계(physical world)를 감지하고, 물질계의 다수의 파라미터를 분석하고, 물질계 내의 변화에 신속하게 응답하는 기회가 증가하고 있다. 기업은 이들 기능을 자본화하기를 원할 수 있지만, 이를 수행하기 위한 기업의 능력은 데이터를 획득하고, 데이터를 적절한 처리 노드로 전달하고, 필요하지 않은 데이터를 필터링하고, 관련 데이터를 다른 정보와 상관시키고, 관심 조건 또는 이벤트가 발생하는지를 판정하는데 요구되는 다양한 시스템의 고유의 복잡성에 의해 제한되어 왔다.
조건이 발생하였는지를 판정하는데 필요한 데이터가 부피가 크거나 고주파수에서 요구될 때, 추가 과제가 발생한다. 데이터는 무선 네트워크를 과부화시킬 수 있거나 또는 상당한 네트워크 이용 요금이 발생되게 할 수 있다. 또한, 처리 및 통신 부하를 취급하기 위해 서버로부터 요구되는 컴퓨팅 전력이 매우 고가일 수도 있 다.
또한, 감지-응답(sense-response) 애플리케이션은 즉각적인 로컬 응답을 요구할 수 있다. 서버 상에서 실행되는 비즈니스 로직에 데이터를 송신하고, 응답을 컴퓨팅하고, 이어서 로컬 에이전트에 결과를 재전달하는 종래의 모델은 불만족스러운 지연을 초래할 수 있다.
이들 과제에 대한 유용한 접근법은 센서 기술과 함께 설치된 데이터 소스에 인접한 곳에 처리 기능을 배치하는 것이다[이러한 디바이스를 통상 "모트(mote)"라 한다]. 그러나, 복잡한 비즈니스 수요가 디바이스와 다양한 센서 기술의 이종 세트를 포함하는 경우, 이러한 형태의 감지-응답 기술을 프로그래밍하는 것은 도전 과제가 될 수 있다.
따라서, 개발자가 링크된 규칙 세트로서 관심의 조건을 정의할 수 있고, 프레임워크가 대부분 관련되는 위치로 규칙을 지능적으로 배치하는 감지-응답 프로그래밍 모델에 대한 요구가 존재한다.
일반적으로, 감지 및 응답 시스템에서의 분산형 규칙 처리를 위한 방법 및 장치가 제공된다. 본 발명의 일 양태에 따르면, 후보 규칙 세트를 식별하기 위한 방법은, 하나 이상의 센서로부터 정보를 수신하는 하나 이상의 규칙을 식별하여 제1 후보 규칙 세트를 생성하는 단계; 식별된 규칙 각각을 평가하여 초기 후보 규칙 세트를 식별하는 단계로서, 선택된 디바이스가 평가되고 있는 규칙에 대한 정보를 생성하는 것이 가능한 센서와 관련되는 경우, 선택된 디바이스가 평가되고 있는 규칙에 의해 요구되는 입력 정보를 국부적으로 제공하는 것이 가능한 경우, 그리고 평가되고 있는 규칙이 디바이스 그룹과 관련되고 디바이스 그룹 내의 다른 디바이스로부터 발생된 이벤트를 소비하는 어떠한 상관 연산자도 존재하지 않는 경우에, 초기 후보 세트에 규칙이 추가되는 것인, 초기 후보 규칙 세트를 식별하는 단계; 및 초기 후보 세트 내의 각각의 규칙을 평가하여 최종 후보 규칙 세트를 식별하는 단계로서, 선택된 디바이스가 정보를 수신하는 규칙에 의해 요구되는 입력 정보를 국부적으로 만족시키는 것이 가능한 경우, 그리고 정보를 수신하는 규칙이 디바이스 그룹과 관련되고, 디바이스 그룹 내의 다른 디바이스로부터 발생된 이벤트를 소 비하는 어떠한 상관 연산자도 존재하지 않는 경우에, 평가되고 있는 규칙으로부터 정보를 수신하는 임의의 규칙이 초기 후보 세트에 추가되어 최종 후보 세트를 생성하는 것인, 최종 후보 규칙 세트를 식별하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, 소정 기간 동안 디바이스 상에서 하나 이상의 규칙을 비활성화하기 위한 방법은, 한정된 기간 동안 규칙에 입력될 하나 이상의 값의 범위를 추정하는 단계; 이 값의 범위 중 적어도 하나에 대해 규칙을 평가하는 단계로서, 이 평가는 값에 대해 확률 분포를 산출하는 것인, 규칙을 평가하는 단계; 평가가 값의 범위에 대해 거짓이면 평가된 규칙을 비활성화하는 단계를 포함한다.
본 발명의 더 완전한 이해뿐만 아니라 본 발명의 추가의 특징 및 장점은 이하의 상세한 설명 및 도면을 참조하여 얻어질 것이다.
감지 및 응답 시스템 내의 분산형 규칙 처리를 위한 방법 및 장치가 제공된다.
중요한 모바일-컴퓨팅 애플리케이션의 부류는 가능하게는 실시간으로 모바일 사용자의 물리적 환경 내의 조건을 감지하고, 이들 조건에 응답하는 것을 포함한다. 이 애플리케이션의 부류는 통상적으로 "감지 및 응답"으로서 공지되어 있다. 감지 및 응답 시스템의 예는 모바일 전자 상거래(mobile commerce), 선박 물류관리(fleet logistics), 및 자산 및 개인 추적을 포함하는 다양한 분야에서 발견된 다.
시공간 이벤트 검출 환경(STEDE, Spatio-Temporal Event Detection Environment)은, 애플리케이션이 2개의 부분: (1) 저레벨 입력 이벤트에 대해 동작하고, 트리거될 때 하이레벨 애플리케이션 정의 이벤트를 생성하는 규칙 세트; 및 (2) STEDE의 외부 및 통상 규칙을 배치하는 엔터프라이즈 환경 내에 배치되는 하이레벨 이벤트 대해 동작하는 로직으로 분할되는 규칙 기반 프로그래밍 모델을 제공한다. 예를 들어, 중국의 홍콩에서 2006년 12월 4일부터 5일까지 개최되었던 웹 및 무선 지리학 정보 시스템에 대한 제6차 국제 심호지엄의 회보에 실린, Jung, W. C., Lee, D. R., Lee, W. I., Mitchell, S., Munson, J. P.의 An Event-Detection Service for Spatio-Temporal Applications을 보면, 시공간 이벤트 검출 환경에 대한 상세한 설명을 얻을 수 있으며, 이는 본 명세서에 참조로서 포함된다.
본 발명의 일 양태에서, 프로그래머가 규칙 세트의 형태로 관심 조건을 표현하는 프로그래밍 프레임워크가 개시된다. 각각의 규칙은 센서 또는 다른 규칙(들)의 출력(들)으로부터, 또는 이들 모두로부터 수신된 입력을 처리한다. 프로그래머는 부류 및/또는 절차로의 프로그램 분해와 유사한 컴퓨팅의 논리적 분해에 기초하여 규칙 세트를 형성한다. 규칙은 표준 논리 및 비교 연산자뿐만 아니라 입력형 특정 연산자(예를 들어, 공간 연산자)로 구성된 불 연산식(boolean expression)을 포함한다. 규칙은 또한 이벤트 상관 원형(primitive)을 포함할 수 있다. 논리 규칙이 어떤 형태를 취할것인지 지정할 필요는 없다. 본 발명의 프레임워크는 공간 데이터 또는 입력을 공급하는 개체(entity)의 속성(예컨대, 트럭의 총 중량)과 같은 프레 임워크 관리 외부 자원을 규칙이 참조하는 것을 허용한다.
본 발명의 다른 양태에서, 규칙은 개체의 속성(예컨대, 트럭, 인간, 또는 몇몇 다른 디바이스)으로서 입력을 참조한다. 규칙은 또한 개체 그룹의 입력을 참조할 수도 있다. 개체 그룹은 규칙에 의해 참조되도록 하는 식별자를 갖는 임의의 개체의 세트이다. 규칙 가입 시에, 이는 그룹의 각각의 개체 구성원을 위한 가입의 생성과 동일하다. 그룹은 영속하는 구조이며, 그룹 구성원이 추가 및 제거되고, 규칙 가입이 이에 대응하여 추가 및 제거된다.
규칙 세트는 규칙 평가 노드의 시스템 상에 배치된다. 노드는 하나의 개체에 전용될 수 있거나 또는 다수의 개체로부터의 입력을 처리할 수 있다. 시스템은 규칙 세트에 대한 가입을 승인하고, 시스템 내에 규칙(들)을 배치하는데, 이는 규칙을 호스팅하는 규칙 평가 노드로 전달될 필수 규칙 입력 또는 규칙 출력 데이터를 배열하는 단계, 규칙을 호스팅하는 규칙 평가 노드에서 이용 가능하도록 필수 규칙 자원을 배열하는 단계, 및 규칙의 출력을 요구하는 이러한 규칙에 규칙의 출력을 전달하는 단계를 포함한다.이는 자동으로 수행되는데, 프로그래머는 규칙 처리 네트워크의 물리적 특징을 인식할 필요 없다.
본 발명의 일 예시적인 실시예에서, 시스템은 센서에 근접하고 내장형 노드를 호스팅하는 디바이스의 사용자에 근접하게 위치된 내장형 노드와, 다수의 사용자의 데이터를 획득하고 고출력 컴퓨팅 설비 상에서 실행하는 것이 가능한 집중형 노드로 구성된다. 사용자는 자신이 관심이 있는 검출의 조건의 서술을 생성한다.
규칙 세트는 분할되어 몇몇 요소가 데이터 이용 가능성, 비용 비교 및 함수 사용에 기초하여 내장형 규칙 평가 노드 상에서 평가될 수 있게 한다. 본 발명의 또 다른 양태에서, 디바이스의 추정된 입력 범위에 기초하여 규칙을 지능적으로 비활성화함으로써, 그리고 디바이스의 추정된 입력 범위에 기초한 규칙 평가에 필요한 디바이스에 그러한 규칙 자원만을 복제함으로써 디바이스 자원이 보존된다.
도 1은 종래의 집중형 STEDE 시스템의 예시적인 실시예이다. 도 1에 도시되어 있는 바와 같이, 프로그래머는 이벤트(110)가 검출될 때 "트리거링"[참(true)으로 복귀함]되는 규칙(120)의 형태로 관심 이벤트(110)를 나타낸다. 규칙(120)은 데이터 획득 시스템(130)으로부터 수신된 입력과 애플리케이션 프로그래머에 의해 공급되어 관리되는 데이터 자원 양자 모두에 대해 동작한다. 애플리케이션 자원의 예로는, 창고 부지의 영역을 서술하는 지리학적 다각형이 있고, 이는 부지로의 트럭의 진입을 검출하는 규칙(120)에 사용된다.
규칙(120)은 물질계의 데이터 획득 시스템(130)으로부터 수신된 입력에 기초하여 트리거될 수 있다. 규칙(120)은 공간 함수(예를 들어, InPolygon 및 InProximityOfGroup) 및 이벤트 상관 연산자(예를 들어, 이벤트 시퀀스 및 이벤트 카운터)를 사용할 수 있다. 규칙(120)은 상호 접속될 수 있는데, 즉 하나의 규칙(120)의 출력이 다른 규칙(120)으로의 입력일 수 있다. 규칙(120)은 부착된 센서를 갖는 내장형 컴퓨터에 통상적으로 다운로드된다.
애플리케이션(150)은 규칙(120)에 가입하여 규칙(120)의 트리거의 발생의 이벤트 통지(160)를 수신한다. 수신된 이벤트 통지(160)는 규칙(120)의 평가시에 계산되었을 수 있는 임의의 결과를 포함한다. 예를 들면, 모바일 개체의 위치가 규 칙(120)과 관련된 프로모션(promotion)을 갖는 임의의 구역 내에 있는지를 판정하는 규칙(120)은, 위치가 임의의 그러한 구역 내에 있다면, 규칙(120)에 가입되어 있는 애플리케이션(150)으로의 이벤트 통지(160) 내의 구역의 세트(식별자를 통해)를 포함한다. 가입은 또한 이벤트 전달 정보를 포함하여, 규칙(120)이 참으로 평가될 때(또는 타임 아웃), 이벤트 통지(160)가 처리용 비즈니스 애플리케이션으로 송신될 수 한다. 이러한 아키텍쳐의 결과로서, 감지 및 응답 애플리케이션의 응답 로직이 애플리케이션의 규칙부(120)로부터 분리될 수 있다. 애플리케이션(150)은 규칙(120)을 단순히 교체하고, 수정하고, 추가하거나 또는 삭제함으로써 임의의 시간에 적소에서 업데이트될 수 있다.
집중형 STEDE 시스템(100)은 집중형 규칙 평가를 수행한다. 집중형 규칙 평가에서, 상황의 검출에 수반되는 모든 데이터는 집중형 규칙 평가 서버(170)로 전달되어야 한다. 이러한 아키텍쳐는 단순하며, 집중형 STEDE 시스템(100)의 에지에서 디바이스(125)에 의해 요구되는 기능들이 주로 데이터 획득 시스템(130) 및 데이터 전송이라는 점에서 경제적일 수 있지만, 데이터 전송은 비용이 상당하고, 데이터가 발생되는 위치에서 응답이 이루어진다면(예를 들어, 위치 및 조건에 대해 고속으로 진행하는 트럭의 운전자에게 경고가 전달되어야 함), 클라이언트(125)가 규칙 평가 서버(170)에 데이터를 송신하고 규칙 평가 서버(170)가 클라이언트(125)에 응답을 송신하는데 요구되는 시간만큼 응답이 지연될 것이다.
많은 "네트워크의 에지" 디바이스(125)(예를 들어, 텔레매틱스 디바이스, "스마트폰", 및 PDA)가 상당한 처리 기능을 갖는다면, 규칙 입력 데이터가 수집되고 응답이 전달되어야 하는 디바이스(125) 상에서 특정 규칙(120)이 평가될 수 있는 것이다. 그러나, 규칙 자원 및 그룹 정의의 공급에 무관하게 호스팅된 규칙 평가를 포함하는 STEDE 프로그래밍 모델을 유지하는 것이 유리하다. 그러나, STEDE 프로그래밍 모델을 유지하는데에는 특정 과제가 존재하는데, 이들은 이하의 사항을 포함한다:
1. 규칙 분배: 몇몇 규칙(120)은 이벤트(110)의 사용자/디바이스(125) 그룹 또는 집합에 대한 함수를 포함한다. 단지 개별 사용자 또는 디바이스(125)에 관한 규칙(120)의 부분이 이들 사용자 또는 디바이스(125)에 대해 국부적으로 평가될 수 있고 규칙(120)의 나머지는 서버(170)에서 평가되는 것이 바람직하다.
2. 디바이스 CPU 보존: 다수의 디바이스(125)가 규칙 평가가 가능하지만, 이들의 자원은 제한되어 있고, 따라서 규칙(120)이 중심으로 평가될 때보다 더 큰 자원의 보존에 대한 문제가 있다. 더욱이, 특정 상황에서, 클라이언트의 상태(예를 들어, 위치)가 제공되면 규칙(120)은 아마도 가까운 미래에 트리거될 수 없는 것으로 판정될 수 있다. 이러한 경우에, 일반적인 방식으로 규칙(120)이 특정 기간 동안 안전하게 비활성화될 수 있을 때를 판정하는 것이 바람직하다.
3. 디바이스 메모리 보존: 규칙의 자원은 제한된 자원 디바이스(125)에 비해 너무 큰 기하구조(geometry)(예를 들어, 트럭에 대한 중량 스테이션의 전국적인 위치)의 매우 큰 세트를 포함할 수 있다. 규칙 자원을 지능적으로 복제하기 위한 방법을 갖는 것이 바람직하다.
시스템 모델
제1 과제인 규칙 분배를 다루는데 있어서, 주 요건은 규칙 평가 함수가 그 함수를 요구하는 애플리케이션에 무관한 서비스에 의해 공급되는, 서비스로서의 규칙 평가의 STEDE 프로그래밍 모델의 보존이었다. STEDE 프로그래밍 모델의 보존은, 개발자가 규칙(120)을 평가할 집중형 STEDE 시스템(100)의 특징을 과도하게 인식할 필요가 없다는 것을 암시한다.
도 2는 분산형 STEDE 시스템(200)의 시스템 모델의 블록도이다. 집중형 STEDE 시스템(100)의 예시적인 종래의 실시예에서, 규칙(120)의 모든 요소는 집중형 규칙 평가 서버(170) 클러스터에서 평가되는데, 프로그래머가 인식할 필요가 있는 어떠한 분산형 시스템도 존재하지 않는다. 본 발명의 일 양태에서, 개발자가 분산형 STEDE 시스템(200) 특징의 일부 정보를 이용하여 규칙(120)을 분해하는 접근법이 개시된다. 이미 분해된 규칙(120)이 제공되면, STEDE의 주요 역할은 평가 노드(275)에 규칙 요소를 할당하는 것으로 제한된다. 단순성과 더불어, 이러한 접근법은 기술 특정 분해 분석이 요구되지 않기 때문에, 그 규칙 엔진을 사용하는 기술에 대해 STEDE 시스템이 융통성을 갖도록 허용하는 장점을 갖는다.
분해된 규칙(120)은 "규칙 세트"의 형태를 취한다. 도 3은 예시적인 규칙 세트(300)이다. 규칙 세트(300)는 명시적으로 표현된 입력/출력 관계를 통해 서로 연결되어 있는 규칙(120)의 세트이다. 규칙(120)은 데이터 획득 시스템(130, 230)으로부터 또는 다른 규칙(들)(120)의 출력(들)으로부터, 또는 이들 모두로부터 입력을 수신할 수 있다. 규칙 출력은 (입력으로서) 다른 규칙으로 진행되거나 또는 애플리케이션(150)으로 직접 진행될 수 있다.
시스템 서술
도 4는 본 발명의 특징을 포함하는 분산형 STEDE 시스템(400)의 블록도이다. 규칙 가입 관리자(RSM)(410)는 가입 세트 관리자(SSM)(도시 생략)로부터 가입 정보를 수신하고, 데이터 획득 관리자(DAM)(도시 생략), 이벤트 전달 관리자(EFM)(420), 규칙 평가 관리자(REM)(425) 및 규칙 자원 관리자(RRM)(430)로 평가를 위해 정보를 분배한다. RSM(410)은 STEDE 런타임 시스템의 시작점이다. RSM(410)은 또한 가입 데이터베이스를 관리하고, 각각의 가입을 위한 활성화 시간에 따라 DAM, EFM(420), REM(425) 및 RRM(430)을 관리한다.
데이터 가입 관리자(DSM)(435)는 입력 소스(448)에 관한 데이터베이스 테이블을 관리하고, 가입 및 자원(SNR) 파일에 서술되어 있는 입력 데이터 리스트를 입력 소스(448)에 등록한다.
규칙 평가 관리자(REM)(425)는 규칙(120)의 정보를 관리하고, 활성화 시간 리스트에 따라 입력 수신기(IR)(440) 및 규칙 평가기(RE)(445)에서 규칙(120)을 활성화하거나 또는 비활성화한다.
이벤트 전달 관리자(EFM)(420)는 이벤트(110)를 트리거링하는 규칙(들)(120)의 통지를 전달한다.
규칙 자원 관리자(RRM)(430)는 통상적으로 XML 포맷으로 정의되는 규칙 자원(120)을 관리한다. 2개의 미리 정의된 유형의 규칙 자원(120), 즉 지리학적 포인트 및 다각형이 존재한다. 추가의 규칙 자원 유형(예를 들어, 원, 직사각형 및 도로)이 추가될 수 있다. RRM(430)은 또한 사용자 자원을 관리하며, 이는 규칙 프로 그래머가 런타임에서의 값들을 저장하고 검색할 수 있게 허용하는 설비이다.
입력 수신기(IR)(440)는 데이터 획득 및 이벤트 디스패치(dispatch) 컴포넌트이다. 새로운 입력 데이터 이벤트(110)가 도달할 때, 하나 이상의 규칙(120)이 평가될 필요가 있다. IR(440)의 역할은 적절한 규칙 평가기 노드(445)[즉, 평가될 필요가 있는 규칙(120)의 인스턴스를 갖는 규칙 평가 노드(445)]에 이벤트(110)를 디스패치하는 것이다. 데이터 소유자(개체) 및 타겟 규칙(120) 모두는 규칙 평가기 노드(445)를 선택하는데 사용된다. 분산형 STEDE 시스템(400)의 엔트리 포인트(즉, 외부 데이터 소스로의 인터페이스)는 대기행렬(queue)이고, 대기행렬 취급은 메시지 구동 빈(Message Driven Bean)(MDB)을 이용하여 구현된다. 분산형 STEDE 시스템(400)은 다수의 IR(440)로 구성될 수 있다. 이러한 경우, 각각의 IR(440)은 동일한 구조 및 기능성을 갖는다. 외부 데이터 소스는 오직 하나의 IR(440)에만 접속되고, 따라서 분산형 STEDE 시스템(400) 내의 각각의 입력 이벤트(110)는 오직 하나의 IR(440)에 의해서만 취급될 것이다. 배치 컴포넌트에 의해 송신된 구조 이벤트는 모든 IR(440)에 송신된다.
규칙 평가기(RE)(445)는 애플리케이션 규칙 개발자에 의해 기록된 비즈니스 규칙(120)의 분석(parsing) 및 평가를 수행하는 분산형 STEDE 시스템(400)의 부분이다. 규칙 평가기(445)는 4개의 주요 부분, 즉 규칙 버퍼, 규칙 풀(Rule Pool), 규칙 인스턴스(Rule Instance) 및 규칙 엔진을 갖는다. 규칙 엔진은 상이한 규칙 엔진 기술의 플러그 인을 허용하는 인터페이스이다. 예시적인 분산형 STEDE 시스템(400)에서, ABLE 규칙 엔진이 규칙 엔진 인터페이스를 구현하는데 사용된다. 더 양호한 성능을 성취하기 위해, 각각의 규칙 평가기 노드(445)는 입력 버퍼의 국부적인 카피를 유지한다. 국부적인 입력 버퍼는, 이들이 데이터베이스 테이블 대신에 메모리 내에 유지되는 점을 제외하고는 전술된 공유 입력 버퍼와 유사하고, 국부 입력 버퍼는 단지 소유 노드에 라우팅되는 데이터 아이템을 위한 엔트리만을 포함한다. 규칙 평가기(445)는 먼저 그 국부적인 입력 버퍼에서 필요로 하는 임의의 데이터 아이템을 조사하고, 임의의 데이터 아이템이 발견되지 않는다면, 공유 입력 버퍼로부터 데이터를 검색한다. 규칙 인스턴스는 단일 개체를 서빙하는 개체 그룹 전반에 정의된 규칙의 인스턴스이다. 규칙 풀은 더 양호한 성능을 위해 메모리 내에 유지되는 한 세트의 이러한 인스턴스이다. 분산형 STEDE 시스템(400)은 다수의 규칙 평가기(445)로 구성될 수 있다. 이러한 경우, 각각의 규칙 평가기(445)는 상이한 세트의 개체/규칙 조합을 취급한다.
이벤트 전달 관리자(EFM)(420)는 트리거된 규칙(120)의 이벤트 통지(160)를 관리한다. 비즈니스 애플리케이션(150)은 규칙(120)에 가입하여 이들의 트리거링 또는 타임 아웃의 이벤트 통지(160)를 수신한다. 규칙 가입은 목적지 어드레스 및 프로토콜 표시자를 포함하는 이벤트 전달 지정기(specifier)를 포함한다. 지원된 프로토콜은 http 및 파일과 같은 공통 URL 체계, (이벤트(110)를 취급하기 위해 애플리케이션 정의된 클래스를 인스턴스화하는)클래스, 및 확장을 지원하기 위한 인터페이스를 포함한다. 규칙(120)이 트리거될 때(참으로 평가될 때), EFM(420)은 규칙 가입에 지정된 목적지에 검출된 상황을 나타내는 이벤트 통지(160)를 송신한다. 이벤트 통지(160)는 규칙(120)의 평가시 계산되었던 임의의 결과를 포함한다. 예를 들면, 임의의 구역들과 관련된 프로모션을 갖는 임의의 구역 내에 모바일 개체의 위치가 있는지 여부를 판정하는 규칙(120)은 가입된 애플리케이션(150)으로의 이벤트 통지(160) 내에 (식별자를 경유하는)구역 세트를 포함할 수 있다. 분산형 STEDE 시스템(400)은 다수의 EFM(420)으로 구성될 수 있다. 이러한 경우, 각각의 EFM(420)은 동일한 구조 및 기능성을 갖는다. 규칙 평가기(445)는 다양한 부하 평형 프로세스 중 하나에 기초하여 EFM(440)에 통지 요청을 라우팅할 수 있다.
내장형 STEDE 게이트웨이(450)는 내장형 STEDE 프로파일 관리를 수행하고, 내장형 STEDE 클라이언트를 위한 규칙(120) 및 규칙 자원을 배치, 업데이트, 및 삭제하며, 내장형 규칙 관련 동작의 이력을 추적한다.
규칙 분배 관리자(RDM)(460)는 가입 배치 시간에 규칙 평가기 노드(445) 또는 RE 노드(445)의 범위로 규칙(120)을 할당한다.
규칙 그룹 관리자(UGM)(460)는 사용자의 그룹을 관리한다. 각각의 사용자는 하나보다 많은 그룹에 속할 수 있고, UGM(460)은 그룹으로의 추가 또는 그룹으로의 삭제를 취급한다. UGM(460)은 또한 새로운 그룹을 생성하거나 또는 기존의 그룹을 업데이트, 삭제, 및 검색한다.
메시지 통지 서비스(MNS)(465)는 간단한 공개/가입 설비를 제공하는 경량의 컴포넌트이다. 다른 모듈이 관심가질 수 있는 이벤트(110)를 갖는 모듈은 스트링 시퀀스로서 이벤트(110)를 공표하고, 여기서 제1 스트링은 ("UGS" 또는 "RELB"와 같은) 모듈을 식별한다.
규칙 엔진 부하 평형기(RELB)(470)는 다수의 규칙 평가기 노드(445) 상에 설 치되는 규칙(120)의 경우에, 런타임에서의 규칙 평가기 노드(445)에 개체를 할당한다.
내장형 STEDE 게이트웨이 에이전트(ESGA) 노드(455)는 직접 센서 데이터를 수신하는 것이다. ESGA 에지 노드(455)는 고속도로 요금 징수소, 트럭 검사 스테이션, 또는 고속도로 센서 데이터 수집점과 같은 정지 환경에서뿐만 아니라 내장형 시스템에도 배치될 수 있다.
내장형 규칙 가입 관리자(e-RSM)(472)는 ESGA(450)로부터 자원을 수신하고, 내장형 입력 수신기(e-IR)(475), 내장형 규칙 평가기(e-RE)(476), 및 내장형 이벤트 전달기(e-EF)(477)에 평가용 규칙(120), 규칙(120)을 위한 데이터 입력의 유형, 및 규칙(120)이 트리거링될 때의 보고 URL(들)과 같은 적절한 정보를 송신한다. 규칙(120)은, 규칙(120), 또는 이미 제출된 규칙(120)의 참조뿐만 아니라 이벤트 전달에 대한 지시어들을 포함하는 규칙 "가입"으로서 제출된다. 가입 정보는 가입 아카이브(SAR, Subscription Archive) 파일에 포함되고 e-RSM에 의해 관리된다. 규칙 가입의 수신시에, e-RSM(472)은 이하의 기능을 수행한다:
1) 필수 입력 데이터를 결정하기 위한 규칙(120)의 분석.
2) 입력 어댑터(들)을 위한 가입 정보 준비.
3) e-RE(476)로의 규칙(120) 배치.
4) e-EF(477)로의 규칙 가입 데이터의 배치[애플리케이션 이벤트를 생성하고, e-RE(476)로부터 규칙 트리거된 이벤트(110)를 수신할 때 규칙 가입에 의해 지정된 목적지에 그 애플리케이션 이벤트를 전달함].
내장형 데이터 가입 관리자(e-DSM)(480)는 입력소스에 입력 데이터 리스트를 등록한다.
내장형 규칙 평가 관리자(e-REM)(485)는 규칙(120)의 정보를 관리하고, 활성화 시간 리스트에 따라 e-IR(475) 및 e-RE(476)로 규칙(120)을 활성화하거나 또는 비활성화한다.
내장형 이벤트 전달 관리자(e-EFM)(490)는 규칙 트리거링 이벤트(110)의 이벤트 통지(160)를 전달한다.
내장형 규칙 자원 관리자(e-RRM)(491)는, 규칙(120)에 의해 참조되는 외부 정보인 규칙 자원(120)과, 프로그래머가 런타임에 값을 저장 및 검색할 수 있게 허용하는 설비인 사용자 자원을 관리한다.
내장형 입력 수신기(e-IR)(475)는 입력 어댑터(들) 또는 e-EF(477)로부터 데이터를 수신하고, 이들을 e-RE(476)에 공급한다.
내장형 규칙 평가기(e-RE)(476)는 평가될 규칙(120)의 세트를 관리한다. 내장형 입력 수신기(475)로부터 입력 데이터를 수신할 때, e-RE(476)는 입력 데이터를 요구하는 규칙(120)의 서브세트를 결정하고, 규칙 엔진을 호출하여 규칙(120)의 서브세트를 평가한다. 규칙(120)이 '트리거링되면"(참으로 복귀함), 트리거링 입력 및 규칙(120)에 의해 계산된 임의의 부작용(side-effect) 데이터를 포함하는 이벤트 통지가 e-EF(477)로 송신된다.
내장형 이벤트 전달기(e-EF)(477)는 내장형 규칙 평가기(476)로부터 규칙 트리거링 이벤트를 수신하고, 관련 규칙 가입에 의해 지정된 바와 같은 목적지로 이 들을 전달한다. 규칙 트리거링 이벤트 통지는 콘텐츠 푸쉬 에이전트(Content Push Agent)를 통해 규칙 평가 서버(170) 또는 내장형 애플리케이션으로 전달될 수 있다.
연쇄 규칙 분배 및 평가
규칙 가입
규칙 시퀀스 내의 규칙(120)에 대해 7개의 중요한 필드가 있다:
규칙 ID(Rule ID) 고유한 규칙 식별자.
규칙 파일(Rule file) 규칙 파일의 명칭.
유형(Type) 유형은 어떠한 규칙 엔진이 이러한
규칙에 사용될 것인지를 나타낸다(분 산형 STEDE 시스템은 규칙 엔진에 무 관함).
데이터입력(dataInputs) 이 규칙에 대한 입력 유형.
연쇄규칙입력(chainedRuleInput) 이러한 규칙이 '규칙ID'를 갖는 규칙 의 다음 평가를 위해 사용되는지를 나타낸다.
파라미터(Parameter) 입력 이벤트를 평가하기 위한 규칙
자원의 서술.
전달URL(deliveryURL) 정상 규칙 처리에서, 전달URL은 애플 리케이션의 URL이고, 연쇄 규칙 처리 의 경우에는 다음 입력 수신기의 URL 이다.
분배 프로토콜
원격 디바이스(125)는 앞서 공지된 규칙 평가 서버(170)에 셋업 요청을 송신한다. 원격 디바이스(125)의 개체 ID는 규칙 평가 서버(170)에 이미 등록되어 있다. 요청시, 디바이스(125)의 URL 또는 IP 어드레스가 포함된다. 규칙 평가 서버(170)는 디바이스(125)가 요구하는 규칙 ID의 리스트를 송신한다. 디바이스(125)가 규칙(120) 및 자원을 저장하기 위한 영구 저장 장치를 갖는다면, 디바이스(125)는 규칙 ID의 리스트를 저장된 규칙 ID와 비교하고, 어느 규칙(120)이 다운로드되어야 하는지를 판정한다. 리스트 내에 있지 않은 규칙(120)은 파일 시스템으로부터 삭제된다. 리스트 내에 있지만 그 영구 저장 장치 내에서 발견되지 않은 규칙(120)은 누락된 것으로 표기되고, 그렇지 않으면 비교 절차가 스킵되고 리스트 내의 모든 규칙(120)이 누락된 것으로 가정된다. 원격 디바이스(125)는 ESGA로 요청 메시지를 송신함으로써 누락 규칙(120)을 요청한다.
동적 배치
디바이스 초기화 시간 후에 디바이스(125)로의 규칙(120) 또는 규칙 자원의 배치가 규칙 평가 서버(170)에 의해 개시된다. (가입, 규칙 ID) 쌍 또는 (규칙 자원, 규칙 ID) 쌍이 토파즈(TOPAZ) 콘텐츠 푸쉬 서비스 또는 무선 캐리어의 멀티미디어 메시징 서비스와 같은 푸쉬 메커니즘을 이용하여 디바이스(125)로 푸쉬된다. ESGA(450)는 ESGA(450)로의 ACK 메시지를 통해 가입/자원의 수신을 확인 응답한다. 예를 들어, 2006년 12월 시카고에서 개최된 제4차 서비스 지향 컴퓨팅 국제 컨퍼런스(ICSOC)의 회보에 실린 Kim, J. H., Lee, W. I., Munson, J.P., Tak, Y. J.의 Services-Oriented Computing in Ubiquitous Computing Platform을 보면, TOPAZ 콘텐츠 푸쉬 서비스의 상세한 설명을 참고할 수 있고, 이는 본 명세서에 참조로서 인용된다.
비정상적인 경우
존재하지 않는 규칙 ID에 대한 자원 배치
내장형 STEDE 게이트웨이 에이전트(450)는, 디바이스(125)가 갖지 않는 규칙 ID에 대한 자원 파일을 얻으면, ESG(455)에 규칙(120) 요청을 송신한다. 요청시에, ESG(455)는 (가입, 규칙 ID) 쌍을 푸쉬한다. ESGA(450)는 재송신할 것이기 때문에 제1 푸쉬에 대한 확인 응답(ACK)을 송신할 필요는 없다.
디바이스로부터의 응답이 없음:
클라이언트 디바이스(125) 상의 ESGA(450)가 ESG(450)로부터 메시지에 응답하지 않는다면, ESG(450)는 미리 결정된 시간 기간 후에 그 메시지를 재송신할 수 있다. 미리 결정된 수의 시도 후에, 클라이언트는 비활성인 것으로 기록된다.
활성 디바이스로부터의 셋업 요청
디바이스(125)는 종종 통지 없이 전원 차단되기 때문에, 프로토콜 시퀀스 내에 있지 않은 셋업 요청은 디바이스 재시동으로서 추측된다. 규칙 평가 서버(170)는 디바이스(125)와의 현재 통신 상황에 무관하게 초기 절차를 따를 수 있다.
규칙 가입의 목적지 어드레스는 입력 수신기(440)의 URL 또는 애플리케이 션(150)의 URL일 수 있다. 정상적인 규칙 처리의 경우, 목적지 어드레스는 애플리케이션(150)의 어드레스이지만, 연쇄 규칙 처리의 경우, 목적지 어드레스는 동일한 시스템 또는 상이한 물리적 시스템인지의 여부에 상관없이 입력 수신기(440)의 URL이다.
동일한 시스템에서의 프로세스 흐름
도 5는 연쇄 규칙이 동일한 시스템 내로 배치될 때의 프로세스 흐름을 도시하고 있다. 입력 수신기(440)는 원시 데이터를 수신하고, 적절한 규칙 ID를 검색한다(단계 510). 규칙 평가기(445)는 적절한 규칙 ID를 갖는 원시 데이터를 얻고, 이것이 참인지 여부를 평가한다(단계 520). 적절한 규칙 ID를 갖는 원시 데이터의 평가가 참이면, 이벤트 전달기(447)는 규칙 ID를 갖는 결과를 동일한 시스템 내의 입력 수신기(440)로 송신한다(단계 530). 다음, 입력 수신기(440)는 규칙 ID를 갖는 결과를 수신하고, 이전의 규칙 ID로서 규칙입력(ruleInput)을 갖는 적절한 규칙 ID를 검색한다(단계 540). 규칙 평가기(445)는 규칙(120)을 평가한다(단계 550). 평가가 참이면, EFM(420)은 애플리케이션(150)에 결과를 송신한다(단계 560).
이 경우, 규칙 가입의 예는 아래와 같다:
규칙-1
규칙 ID(Rule ID) : 규칙1
규칙 파일(Rule File) : 규칙1.able
유형 : ABLE
* 데이터입력 : 속도, 주행기록계
연쇄규칙입력(chainedRuleInput): 널(null)
파라미터(parameters) : ...
전달URL(deliveryURL) : 입력 수신기의 URL
규칙-2
규칙 ID(Rule ID) : 규칙2
규칙 파일(Rule File) : 규칙2.able
유형 : ABLE
데이터입력 : ...
연쇄규칙입력(chainedRuleInput): rule1
파라미터(parameters) : ...
전달URL(deliveryURL) : 입력 수신기의 URL
상이한 시스템 내의 프로세스 흐름
연쇄 규칙은 상이한 시스템 내에서 또한 사용될 수 있다. 예를 들면, 제1 규칙(120)은 한 시스템에서 평가될 수 있고, 다음의 규칙(120)은 상이한 시스템에서 평가될 수 있다. 이러한 경우, 차이점은 제1 규칙(120) 내의 전달URL 뿐이다.
상기 규칙 예에서, 규칙-1에서의 전달URL은 상이한 시스템 내의 다음의 입력 수신기(440)의 URL이다.
자동 규칙 분배
주어진 규칙 세트(300) 내의 규칙(120)이 e-STEDE 클라이언트(125)로 분배될 수 있는지의 여부의 판정은 3개의 단계로 진행된다. 첫째로, 규칙(120)은 분산형 STEDE 시스템(400)과의 기본 호환성에 대해 검사된다. 둘째로, 규칙(120)의 평가 비용이 추정된다. 셋째로, 평가 비용 추정에 기초하여, 규칙(120)이 현재 배치되는 다른 규칙(120)에 제공된 클라이언트(125) 상에 평가될 수 없다고 판정되면, 어떠한 규칙(들)(120)이 배치되는지의 선택이 규칙(120)의 우선 순위화에 기초하여 행해질 수 있다. 이 판정은 규칙 분배 관리자(RDM)(460)의 기능이고, 최종 결과는 분산형 STEDE 시스템(400)이 활성화될 때 내장형 STEDE 게이트웨이(455)에 의해 사용된다.
3개의 단계가 이하에 설명된다. 프로세스의 출력은 초기에는 비어 있는 "클라이언트 규칙 세트"로서 공지된 규칙 세트(300)이다.
e-STEDE와의 호환성
규칙(120)은 이하의 모든 조건이 유지되면 분산형 STEDE 시스템(400)과 호환성이 있다:
1) 규칙(120)이 클라이언트(125) 상에서 이용 가능한 데이터 획득 시스템(130)으로부터 또는 클라이언트 규칙 세트 내에 이미 존재하는 규칙(120)으로부터 입력 데이터를 수신한다;
2) 규칙(120)은 RDM(460)에 의해 유지되는 구성 가능한 테이블에 의해 결정되는 바와 같이, 클라이언트(125) 상에 이용 가능한 함수 및 연산자만을 사용한다[사용자 또는 디바이스(125)의 그룹으로부터의 입력을 요구하는 것들을 포함하는 함수는 제외됨]; 및
3) 규칙(120)은 그룹 내의 사용자 또는 디바이스(125)로부터 이벤트(110)를 소비할 수 있는 어떠한 상관 연산자도 사용하지 않는다.
규칙(120)이 호환성이 있으면, 이는 클라이언트 규칙 세트(300)에 추가된다.
평가 비용 견적
클라이언트 규칙 세트(300) 내의 각각의 규칙(120)에 대해, 규칙(120)을 평가하는 비용에 대한 추정이 행해지는데, 비용은 (1) 평가의 구성 함수 및 연산자 각각의 평가 시간을 합산함으로써 결정되는 밀리초 단위의 예상 평가 시간; 및 (2) 규칙(120)의 함수에 의해 참조되는 자원의 저장 요건을 합산함으로써 결정되는 바이트 단위의 측정된 저장 요건으로 이루어진 2-부분의 양이다.
임의의 규칙(120) 비용이 그 자체로 미리 결정된 규칙당 예산[선택적으로 주어진 클라이언트(125)에 특정한]을 초과하면, 그 규칙(120)은 클라이언트 규칙 세트(300)로부터 제거된다.
규칙 우선 순위화
분산형 STEDE 시스템(400)의 모델에서, 다수의 애플리케이션(150)의 규칙 세트(300)는 동시에 평가된다. 따라서, 규칙당 비용 예산에 추가하여, RDM(460)은 주어진 디바이스(125) 상에서 실행되는 모든 규칙(120)에 대한 총 비용 예산을 부과한다. 클라이언트 규칙 세트(300)가 디바이스(125)에 배치되기 전에, 클라이언트(125) 상에 이미 평가되고 있는 규칙 세트(300)의 비용에 추가될 때, RDM(460)은 클라이언트 규칙 세트(300)를 평가하는 총 추정 비용이 디바이스(125)의 예산을 초과하지 않는지를 확인한다. 클라이언트(125) 상에 이미 평가되고 있는 규칙 세 트(300)의 비용에 추가될 때 클라이언트 규칙 세트(300)를 평가하는 총 추정 비용이 디바이스(125)의 예산을 초과하면, 우선 순위화 방식이 사용되어 어느 규칙(120)이 디바이스(125) 상에서 평가되어야 하는지를 판정한다:
1) 규칙 세트(300)의 우선 순위는 분산형 STEDE 시스템(400)의 외부의 몇몇 프로세스를 통해 결정된다. 예를 들면, 입찰 프로세스에 의해 결정될 수 있다.
2) 배치되고 있는 규칙 세트(300)보다 낮은 우선 순위를 갖는 규칙 세트(300)는 이러한 규칙 세트(300)가 더 이상 존재하지 않을 때까지 또는 배치되고 있는 규칙 세트(300)가 "적합(fit)"할 때까지 디바이스(125)로부터 제거된다.
클라이언트당 규칙 활성화/비활성화
디바이스(125) 상의 규칙(120)이 활성화되거나 또는 비활성화될 때를 결정하기 위한 프로세스는 특정 입력 변수가 주어진 미래의 시간 기간에 걸쳐 소요되는 값의 범위의 추정에 기초한다. 예를 들면, 위치 입력 변수가 프로세스에 의해 지원될 수 있다. 프로세스는 또한 부작용으로서, 주어진 기간 동안 클라이언트(125)에서 복제될 필요가 있는 규칙 자원 기하구조를 컴퓨팅한다.
프로세스는 "범위"라 부르는 데이터 유형 확장을 사용한다. 범위는 데이터 유형에 대한 확률 분포이므로, 범위 내의 임의의 값은 동일하게 예상 가능하다(즉, 분포가 균일함). 범위 확장은 불리언, 스칼라, 및 포인트 유형에 대해 정의된다. 모든 불리언 범위 값의 세트는 거짓, 참, 및 거짓/참인데, 이들은 각각 단지 거짓만이 가능하고, 단지 참만이 가능하고, 또는 거짓과 참의 모두가 동등하게 가능한 것을 의미한다. 스칼라 범위 값은 각각의 간격의 엔드포인트가 포함되거나 또는 포 함되지 않는 하나 이상의 연속적인 비중첩 간격으로 이루어진다. 스칼라 범위의 예는 0 내지 10(양 엔드포인트가 포함됨)이다. 포인트 범위는 본 발명에 있어서 공간 내의 연속적인 영역으로서 적절하게 모델링되는(물리적 객체의 위치가 모델링되기 때문에) 포인트의 세트이다.
1) 분산형 STEDE 시스템(400)으로의 각각의 입력에 대해, 입력값이 주어진 시간 기간 동안 소요될 수 있는 범위가 (도메인 정보를 사용하여)추정될 수 있다.
2) 규칙 언어는 몇몇의 공간 함수를 포함한다. 각각의 함수는 2개의 기호(signature)를 갖는데, 이들은 함수를 평가하는데 사용되는 일반적인 기호[예를 들어, containedInPolygon(Point p, Polygon r)→Boolean, 여기서 p는 시간 가변 입력이고, Polygon r은 정적 값임], 및 원래의 기호 내의 각각의 입력에 대해 입력 범위를 취하는 다른 기호이다. 이는 "환원(reduction)" 기호라 한다[예를 들어, containedInPolygon(PointRange p, Polygon r)→BooleanRange]. 각각의 입력 유형(예를 들어, 포인트)에 대해, 입력이 주어진 기간(예를 들어, 국부적으로는 연속적인 영역이지만 다각형으로서 통상 표현될 수 있는 포인트 범위)에 걸쳐 소요될 수 있는 값의 확률 분포를 나타내는 범위 유형이 존재한다. 환원 기호의 복귀 유형은 평가 기호의 복귀 유형의 범위 유형이다.
3) 논리 연산자가 확장되어 불리언범위(BooleanRange) 유형에 대해 연산하고, 표 2에 따라 불리언범위 값으로 복귀한다.
4) 상관 연산자가 확장되어 스칼라범위(ScalarRange) 유형(숫자-라인 범위의 통상적인 개념)에 대해 연산한다. 연산자의 정의는 표 3에 제공되어 있다.
규칙(120)의 평가 빈도수보다 상당히 낮은 빈도수로, 규칙의 환원된 조건 표현이 현재의 값 및 입력의 도메인 정보에 기초하여 미래의 기간 동안 규칙의 입력의 추정된 범위를 사용하여 상기와 같이 평가된다. 예를 들면, 다음의 10분 내에 개체의 위치의 범위를 추정하기 위해, 합당한 최대 속도가 사용될 수도 있다. 환원된 조건 표현은 불리언범위 값(참, 거짓, 또는 거짓/참)으로 복귀할 것이다. 거짓이면, 규칙(120)은 비활성될 것이고, 또는 이미 비활성화되어 있으면 비활성화 유지될 것이다. 참 또는 거짓/참이면, 규칙(120)은 활성화 유지되거나 또는 활성화될 것이다.
상관 연산자의 환원은 상관 규칙 함수의 2개의 스칼라함수 성분의 환원 방법에 의해 복귀된 범위의 값과의 비교에 따른다. 2개의 값 범위가 주어지면, 상관 연산자에 중요한 6개의 비교의 경우가 존재한다. 표 1은 상기 경우 각각에 대해 상관 규칙 함수 클래스의 각각에 대한 정적 환원의 결과를 나타낸다. 'T' 및 'F'는 함수가 각각 "참" 및 "거짓"으로 환원될 수 있는 것을 의미하고, 'F/T'는 함수가 환원될 수 없음을 나타낸다.
STEDE 공간 함수 및 이들의 평가와 환원 기호
함수 서술 평가 기호 환원 기호
containedInPolygon 주어진 포인트 입력이 주어진 다각형 자원(r) 내에 포함되어 있으면 참으로 복귀 Point p X
Polygon r -->
Boolean
PointRange p X
Polygon r -->
BooleanRange
containedInPolygon
set
주어진 포인트 입력이 다각형 자원의 주어진 세트(rs) 중 임의의 하나 이상 내에 포함되면 참으로 복귀함. 또한, 포인트를 포함하는 다각형의 서브세트로 복귀함. Point p X
PolygonSet rs
--> Boolean X
List(r)
PointRange p X
PolygonSet rs -->
BooleanRange
inProximityOfPoint 주어진 포인트가 주어진 포인트(r)의 주어진 거리 내에 있으면 참으로 복귀함 Point p X
Point r X
Scalar d -->
Boolean
PointRange p X
Point r X Scalar d
-->
BooleanRange
inProximityOfPoint
Set
주어진 포인트 입력이 주어진 포인트의 세트(rs) 중 임의의 세트의 주어진 거리 내에 있으면 참으로 복귀함 Point p X
PointSet rs X
Scalar d -->
Boolean X
List(r)
PointRange p X
PointSet rs X
Scalar d -->
BooleanRange
distanceFromPoint 주어진 포인트 입력이 주어진 포인트(r)로부터인 거리로 복귀함 Point p X
Point r -->
Scalar
PointRange p X
Point r -->
ScalarRange X
Point
불리언범위 값에 대한 참 표
X Y X AND Y X OR Y NOT Y
F F/T F F/T F/T
T F/T F/T T
F/T F/T F/T F/T
스칼라범위 연산에 대한 경우
경우 심볼
좌측 범위가 전체적으로 우측 범위보다 작음 RANGELT
좌측 범위의 상단이 우측 범위의 하단과 동일함 RANGELE
2개의 범위가 논제로 중첩을 가짐 OVERLAP
양 범위가 단일 포인트로 이루어지고, 동일함 EQPTS
좌측 범위의 하단이 우측 범위의 상단과 동일함 RANGEGE
좌측 범위가 전체적으로 우측 범위보다 큼 RANGEGT
스칼라범위 값에 대한 상관 연산자의 정의
경우 LT LE EQ NE GE GT
RANGELT T T F T F F
RANGELE F/T T F/T F/T F/T F
OVERLAP F/T F/T F/T F/T F/T F/T
EQPTS F T T F T F
RANGEGE F F/T F/T F/T T F/T
RANGEGT F F F T T T
규칙 자원 복제/분배
간단한 규칙(120)은 규칙(120) 자체에 내장되어 있는 파라미터 값만을 요구할 수 있다. 그러나, 더 복잡한 규칙(120)은 지속되고 있고 규칙(120)의 외부에서 관리되는 데이터를 참조할 수 있다. 데이터는 다수의 규칙(120)에 의해 참조될 수 있고, 규칙(120) 또는 규칙 엔진의 외부에서 프로세스에 의해 업데이트될 수 있다. "규칙 자원"은 데이터용 범용 저장 위치이다. 기하학적 포인트 및 다각형과 같은 공간 함수에서 사용되는 자원에 일부 추가 지원이 제공된다.
이들 자원에 있어서, 자원 세트의 개념이 지원되어 "containedInPolygonSet"와 같은 함수를 가능하게 한다. 규칙 자원은 훨씬 더 많은 유연성을 규칙(120)에 제공하고, 자원에 대해 그러나 자원의 수명을 관리하는 것과는 관련이 없는 규칙(120)을 규칙 프로그래머가 기록할 수 있게 한다.
분산형 STEDE 시스템(400)은 또한 개별 개체와 관련된 규칙 자원을 지원한다. 이는 애플리케이션이 개별 개체에 대해 규칙 액세스 가능 상태를 유지할 수 있게 한다. 예를 들면, 규칙(120)은 특정 지리학적 영역으로의 각각의 차량의 진입의 시간을 기록하여 영역 내에서 소비한 차량의 총 시간을 판단할 수 있도록 한다.
내장형 클라이언트(125) 내의 메모리에 대한 제한에 기인하여, 클라이언트(125)는 종종 넓은 영역을 커버하는 모든 규칙 자원을 갖지 않을 수도 있다. 따라서, 클라이언트(125)는 가능한 한 자신의 메모리 내에 규칙 자원의 양을 적게 유지할 필요가 있는데, 이는 자원의 위치 및 시간에 기초하여 클라이언트(125)에 복제될 규칙 자원을 요구한다. 분산형 STEDE 아키텍쳐의 규칙 자원 복제/분배 방법이 이하에 설명된다.
어떤 자원이 특정 클라이언트(125) 상의 적소에 위치되어야 하는지를 판정하는 것은, 규칙 활성화/비활성화 프로세스로부터 이하와 같이 부가의 정보를 복귀시킴으로써 판정된다.
1) 표제 "클라이언트당 규칙 활성화/비활성화"의 섹션에서의 단계 #2를 참조하면, 몇몇 함수는 파라미터[예를 들어, containedInPolygon (Point p, Polygon r)]로서 자원 참조 또는 자원-세트 참조, 여기서 r은 다각형 자원에 대한 참조임]를 취한다. 이러한 함수의 환원된 버전이 평가될 때, 결과가 참 또는 어느 한쪽이면, 참조값은 범위 결과에 더해진다. 함수가 참인 자원 참조의 리스트를 또한 복귀시키는(인/아웃 파라미터를 통해) 함수가 또한 이들의 범위 결과를 통해 이 리스트를 복귀시킨다.
2) 표제 "클라이언트당 규칙 활성화/비활성화"의 섹션에서의 단계 #3을 참조하면, 논리적 연산자의 환원 기호의 복귀 유형은 결과가 참 또는 어느 한쪽일 때 불리언범위 입력의 자원 참조를 포함한다.
3) 표제 "클라이언트당 규칙 활성화/비활성화"의 섹션에서의 단계 #4를 참조하면, 상관 연산자에 있어서, 입력에 더해진 모든 자원 참조는 결과가 참 또는 어느 한쪽일 때 출력에 더해진다.
이들 가수(addenda)에 의해, 규칙 활성화/비활성화 프로세스의 실행은 프로세스에 제공된 시간 윈도우에 대해 클라이언트(125)에 존재해야 하는 규칙 자원의 세트를 생성한다. 복제 관리 동작은 프로세스가 실행된 마지막 시간에 계산된 자원 세트와 프로세스 결과 사이의 세트 차이를 계산함으로써 이들로부터 유도된다.
규칙 자원은 서비스 공급자에 의해 임의의 시간에 업데이트, 추가, 또는 삭제될 수 있다. 이들 동작이 규칙(120)을 활성화되거나 또는 비활성화시킬 수 있게 하기 때문에, 규칙 활성화/비활성화 프로세스는 이들 동작들 중 임의의 동작이 수행될 때마다 실행된다.
규칙 환원 프로세스
예시적인 일 실시예에서, 규칙 환원 프로세스는 이하의 단계를 포함한다:
1. 규칙의 조건 표현을 트리(tree)로서 표현하는데, 여기서 표현 내의 각각의 연산자 또는 함수는 트리 내의 노드이고, 규칙 입력, 규칙 자원 및 상수는 트리의 잎(leaf)이다.
2. 전술된 바와 같은 도메인 정보를 사용하여, 각각의 입력에 대한 범위 값을 결정한다.
3. 트리의 루트 연산자 또는 함수로 시작하여, 표 1, 표 2 및 표 3의 정의에 따라 연산자/함수의 입력의 환원을 먼저 평가하고 이어서 연산자/함수를 평가함으로써 연산자/함수의 환원을 평가한다. 이는 표현 트리의 각각의 노드가 환원되게 할 것이다.
4. 프로세스의 결과는 루트 노드의 환원이다.
시스템 구현
도 6은 분산형 STEDE 시스템(400)의 서버측의 하이레벨 아키텍쳐의 블록도이다. e-STEDE 게이트웨이(ESG)(455)는 사진의 런타임 메모리 내에 각각의 클라이언트(125)의 세션 정보를 유지하고, 클라이언트(125)를 위한 가입, 규칙(120) 및 자원을 관리하는데 이를 사용한다. ESG(455)와 클라이언트(125) 사이의 통신은 TOPAZ 콘텐츠 푸쉬 서비스(CPS)의 사용을 포함하여 유연성이 있다.
규칙 분배 관리자(RDM)(460)는 가입이 분산형 STEDE 시스템(400) 내로 배치될 때 실행된다. RDM(460)은 표제 "클라이언트당 규칙 활성화/비활성화"의 섹션에서 설명된 프로세스를 실행하고, 결과의 규칙 분배를 실행한다. 결과는 또한 데이터베이스 내에 기록되어 이후에 ESG(455)에 의해 사용된다.
도 7은 e-STEDE 클라이언트(125)의 하이레벨 아키텍쳐의 블록도이다. 내장형 STEDE 게이트웨이 에이전트(ESGA)(450)는 규칙 평가 서버(170) 내의 내장형 STEDE 게이트웨이(ESG)(455)와 통신한다. ESGA(455)는 시동시에 분산형 e-STEDE 시스템(400) 내에서 평가될 규칙(120)의 리스트를 요청한다. 내장형 규칙 가입 관리자(E-RSM)(472)는 ESGA(455)로부터 자원을 수신하고, 규칙(120)이 트리거될 때 평가용 규칙(120), 규칙(120)을 위한 입력 데이터의 유형, 및 보고의 URL(들)과 같은 적절한 정보를 e-IR(475), e-RE(476) 및 e-EF(477)에 송신한다.
규칙(120)은 규칙(120) 또는 이미 제출된 규칙(120)으로의 참조, 뿐만 아니라 이벤트 전달에 대한 지시어를 포함하는 규칙 "가입"으로서 제출된다. 가입 정보는 서버측에서 실행되는 ESG(455)에 의해 TOPAZ 콘텐츠 푸쉬 서비스를 사용하여 푸쉬된다.
규칙 가입을 수신할 때, e-RSM(470)은,
1) 입력 어댑터에 가입 정보를 제공하고;
2) 규칙(120)을 e-RE(476)에 배치하고;
3) 규칙 가입 데이터를 내장형 이벤트 전달기(490)에 배치한다.
내장형 규칙 평가기(e-RE)(476)는 평가될 규칙(120)의 세트를 관리한다. 내장형 입력 수신기(e-IR)(475)로부터 입력 데이터를 수신할 때, e-RE(476)는 입력 데이터를 요구하는 규칙(120)의 서브세트를 결정하고 규칙 엔진을 호출하여 이들을 평가한다. 규칙(120)이 '트리거"되면(참으로 복귀함), 규칙(120)에 의해 계산된 트리거링 입력 및 임의의 부작용 데이터를 포함하는 이벤트 통지(160)가 e-EF(477)로 송신된다. 예시적인 분산형 STEDE 시스템(400)에서, AMiT 규칙 엔진이 이용되어 규칙 평가를 지원한다. [AMiT 규칙 엔진의 상세한 설명을 위해, 예를 들어 본 명세서에 참조로서 인용되어 있는 Adi, A.와 Etzion, O.의 2000년 6월의 상황 관리자 규칙 언어(The Situation Manager Rule Language), 시멘틱 웹 세미나의 비즈니스 규칙을 위한 규칙 마크업 언어의 국제 워크샵의 회의록을 참조하라.] 내장형 이벤트 전달기(e-EF)(477)는 내장형 규칙 평가기(476)로부터 규칙 트리거된 이벤트 통지(160)를 수신하고 관련 규칙 가입에 의해 지정된 바와 같은 목적지로 이들을 전달한다. 규칙 트리거된 이벤트 통지(160)는 콘텐츠 푸쉬 에이전트를 통해 규칙 평가 서버(170)로 또는 내장형 애플리케이션(150)으로 전달될 수 있다.
내장형 STEDE 콘텐츠 수신기(e-SCR)(720)는 e-STEDE의 외부의 콘텐츠 푸쉬 에이전트(710)로부터 규칙 자원을 수신한다. 콘텐츠 푸쉬 에이전트(710)는 서버 또는 e-EF(477)로부터 자원을 수신한다. E-SCR(720)은 CPA(710)와 분산형 STEDE 시스템(400) 사이의 인터페이스를 제공한다. CPA(710)는 e-SCR(720)에 의해 노출되어 정의된 함수를 사용하여 분산형 STEDE 시스템(400)에 규칙 자원을 제공할 수 있다.
입력 어댑터(IA)(730)를 위한 서비스 액세스 포인트(SAP)(725)는 특정 환경에서의 다양한 데이터 소스 및 이들의 인터페이스를 e-IR(475)에 의해 요구된 균일한 인터페이스로 브리징한다. 분산형 STEDE 시스템(400)은 주문형 모듈, 입력 어댑터(730)를 제공한다.
IA(730)가 2개의 모듈, 즉 가입 핸들러(732) 및 e-STEDE 원격(telemetry) 수신기(733)를 갖는 것으로 가정한다. 가입 핸들러(732)는 보고 기간 및 데이터 유형과 같은 각각의 가입의 정보를 수신한다. 지정된 기간을 이용하여, e-STEDE 원격 수신기(733)는 지정된 데이터 유형의 형태로 데이터를 보고한다. 가입의 요청된 기간에 데이터 소스의 기간을 적응시키고, 가입의 요청된 데이터 유형에 데이터 소스의 데이터 유형을 적응시키는 것은 IA(730)의 임무이다.
IA(730)를 위한 SAP는 IA(730)와 분산형 STEDE 시스템(400) 사이의 인터페이스를 제공한다. IA(730)의 구현자, 아마도 분산형 STEDE 시스템(400)이 실행될 수 있는 내장형 디바이스(125)의 소프트웨어 개발자는, SAP에 정의된 함수를 사용해야 한다. IA(730)를 위한 SAP는 다른 애플리케이션(150)으로부터 호출될 수 있는 외부 함수를 정의한다. 가입 정보를 얻고 데이터를 e-IR(475)에 입력하는 함수가 존재한다.
분산형 STEDE 시스템(400)이 시동될 때, 이는 공지된 서버로 셋업 요청을 송신한다. 서버는 디바이스(125)가 가져야할 필요가 있는 규칙 ID의 리스트를 송신한다. 분산형 STEDE 시스템(400)이 규칙(120) 및 자원을 위한 영구 저장 장치를 갖는다면, 분산형 STEDE 시스템(400)은 리스트를 저장된 규칙 ID와 비교하고, 어떠한 규칙(120)이 다운로드 되어야 하는지를 결정한다. 리스트 내에 있지 않은 규칙(120)은 파일 시스템으로부터 삭제된다. 리스트 내에 있지만 그 영구 저장 장치 내에서 발견되지 않는 규칙(120)은 누락된 것으로 표기되고, 그렇지 않으면 비교 절차가 스킵되고 리스트 내의 모든 규칙(120)이 누락된 것으로 가정된다. 분산형 STEDE 시스템(400)은 요청 메시지를 송신함으로써 누락 규칙(120)을 요청한다.
ESGA(450)가 분산형 STEDE 시스템(400)이 갖지 않는 규칙 ID를 위한 자원 파일을 얻으면, 이는 규칙(120) 요청을 ESG(455)에 송신한다. 요청의 수신시에, ESG(455)는 규칙 ID의 SAR 파일을 푸쉬한다. ESGA(455)는 ESG(455)에 의해 재송신될 것이기 때문에 제1 푸쉬에 대한 ACK를 송신할 필요가 없다. 분산형 STEDE 시스템(400)으로부터 어떠한 응답도 없다면, ESG(455)는 클라이언트를 비활성화하기 전에 미리 결정된 수의 재시도를 실행할 것이다. 내장형 디바이스(125)가 종종 통지 없이 전원 차단되기 때문에, 프로토콜 시퀀스 내에 존재하지 않는 셋업 요청은 디바이스 재시동으로서 가정된다. 서버는 디바이스(125))와의 현재 통신 상황에 무관하게 시동 절차를 따를 것이다.
본 명세서에 설명되고 나타낸 실시예 및 변형예는 단지 본 발명의 원리를 예시할 뿐이고, 다양한 수정이 본 발명의 범주 및 사상으로부터 벗어나지 않고 당업자들에 의해 구현될 수 있다는 것을 이해해야 한다.
도 1은 종래의 집중형 STEDE 시스템의 예시적인 실시예의 도면.
도 2는 분산형 STEDE 시스템의 시스템 모델의 블록도.
도 3은 예시적인 규칙 세트의 도면.
도 4는 본 발명의 특징을 구비하는 STEDE 시스템의 블록도.
도 5는 연쇄 규칙이 동일한 시스템 내로 배치될 때의 프로세스 흐름도.
도 6은 e-STEDE 시스템의 서버측의 하이레벨 아키텍쳐(architecture)의 블록도.
도 7은 e-STEDE 클라이언트의 하이레벨 아키텍쳐의 블록도.

Claims (19)

  1. 후보 규칙 세트를 식별하기 위한 방법으로서,
    하나 이상의 센서로부터 정보를 수신하는 하나 이상의 규칙을 식별하여 제1 후보 규칙 세트를 생성하는 단계와;
    상기 식별된 규칙 각각을 평가하여 초기 후보 규칙 세트를 식별하는 단계로서, 선택된 디바이스가, 평가되고 있는 규칙에 대한 정보를 생성할 수 있는 센서와 관련되는 경우, 상기 선택된 디바이스가 상기 평가되고 있는 규칙에 의해 요구되는 입력 정보를 자체적으로(locally) 제공하는 것이 가능해지는 경우, 그리고 상기 평가되고 있는 규칙이 디바이스의 그룹과 관련되고, 상기 디바이스의 그룹 내의 다른 디바이스로부터 발생된 이벤트와 연관되는 어떠한 상관 연산자-이 상관 연산자는 이벤트 시퀀스 또는 이벤트 카운터를 포함함-도 존재하지 않는 경우에, 상기 평가되고 있는 규칙이 상기 초기 후보 규칙 세트에 추가되는 것인, 초기 후보 규칙 세트를 식별하는 단계와;
    상기 초기 후보 규칙 세트 내의 각각의 규칙을 평가하여 최종 후보 규칙 세트를 식별하는 단계로서, 상기 선택된 디바이스가 상기 평가되고 있는 규칙으로부터의 정보를 입력으로서 수신하는 임의의 다른 규칙에 의해 요구된 입력 정보를 자체적으로 만족시키는 것이 가능해지는 경우, 그리고 상기 임의의 다른 규칙이 디바이스의 그룹과 관련되고, 상기 디바이스의 그룹 내의 다른 디바이스로부터 발생된 이벤트와 연관되는 어떠한 상관 연산자-이 상관 연산자는 이벤트 시퀀스 또는 이벤트 카운터를 포함함-도 존재하지 않는 경우에, 상기 임의의 다른 규칙이 상기 초기 후보 규칙 세트에 추가되어 최종 후보 규칙 세트를 생성하는 것인, 최종 후보 규칙 세트를 식별하는 단계
    를 포함하는 후보 규칙 세트를 식별하기 위한 방법.
  2. 제1항에 있어서, 상기 규칙들 중 하나 이상은 공간 함수 및 이벤트 상관 연산자를 이용하는 것인 후보 규칙 세트를 식별하기 위한 방법.
  3. 제1항에 있어서, 상기 방법은 디바이스의 그룹 내의 각각의 디바이스에 대해 수행되는 것인 후보 규칙 세트를 식별하기 위한 방법.
  4. 제1항에 있어서,
    (1) 상기 최종 후보 규칙 세트에 대한 자원 사용 분석을 수행하여 규칙 자원의 프로세서 용량에 있어서 규칙을 평가하는 비용을 판정하는 단계와;
    (2) 상기 자원 사용 분석에 의해 판정된 상기 용량과 디바이스의 추정된 용량을 비교하는 단계와;
    (3) 상기 자원 사용 분석에 의해 판정된 상기 용량이 상기 디바이스의 상기 추정된 용량을 초과한다면, 상기 최종 후보 규칙 세트로부터 하나 이상의 규칙을 제거하여 후보 규칙 세트를 생성하는 단계와;
    상기 디바이스의 상기 추정된 용량이 상기 자원 사용 분석을 초과할 때까지 단계 (1) 내지 (3)을 반복하는 단계
    를 더 포함하는 후보 규칙 세트를 식별하기 위한 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서, 상기 용량은 저장 장치 자원에 기초하는 것인 후보 규칙 세트를 식별하기 위한 방법.
  7. 제1항에 있어서, 상기 최종 후보 규칙 세트의 하나 이상의 규칙이 하나 이상의 다운로드된 규칙보다 상위의 우선 순위를 갖는다면, 상기 하나 이상의 다운로드된 규칙을 상기 최종 후보 규칙 세트의 상기 하나 이상의 규칙으로 교체하는 단계를 더 포함하는 후보 규칙 세트를 식별하기 위한 방법.
  8. 한 주기의 시간 동안 디바이스 상에서 하나 이상의 규칙을 비활성화하기 위한 방법으로서,
    유한한 기간 동안 규칙에 입력될 하나 이상의 범위의 값들을 추정하는 단계와;
    상기 범위의 값들 중 적어도 하나에 대한 규칙을 규칙 평가 함수를 이용하여 평가하는 단계로서, 상기 평가는 상기 값들에 대한 확률 분포를 생성하는 것인, 규칙 평가 단계와;
    상기 범위의 값들에 대해 상기 규칙 평가 함수가 거짓으로 환원된다면, 상기 평가된 규칙을 비활성화하는 단계
    를 포함하는 하나 이상의 규칙을 비활성화하기 위한 방법.
  9. 제8항에 있어서, 활성 규칙에 의한 사용을 위해 상기 디바이스 상에 규칙 자원의 서브세트를 유지하는 단계를 더 포함하는 하나 이상의 규칙을 비활성화하기 위한 방법.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서, 상기 하나 이상의 규칙이 상기 유한한 기간 동안 트리거되지 않는다면, 상기 하나 이상의 규칙은 비활성화되는 것인 하나 이상의 규칙을 비활성화하기 위한 방법.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서, 상기 범위의 값들에 대해 상기 규칙 평가 함수가 참으로 환원되는 경우에 요구되는 자원의 세트를 상기 평가가 생성하는 것인 하나 이상의 규칙을 비활성화하기 위한 방법.
  12. 후보 규칙 세트를 식별하기 위한 장치로서,
    메모리와;
    상기 메모리에 결합된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는, 하나 이상의 센서로부터 정보를 수신하는 하나 이상의 규칙을 식별하여 제1 후보 규칙 세트를 생성하도록 동작하고;
    상기 적어도 하나의 프로세서는 상기 식별된 규칙 각각을 평가하여 초기 후보 규칙 세트를 식별하도록 동작하고, 선택된 디바이스가, 평가되고 있는 규칙에 대한 정보를 생성할 수 있는 센서와 관련되는 경우, 상기 선택된 디바이스가 상기 평가되고 있는 규칙에 의해 요구되는 입력 정보를 자체적으로(locally) 제공하는 것이 가능해지는 경우, 그리고 상기 평가되고 있는 규칙이 디바이스의 그룹과 관련되고, 상기 디바이스의 그룹 내의 다른 디바이스로부터 발생된 이벤트와 연관되는 어떠한 상관 연산자-이 상관 연산자는 이벤트 시퀀스 또는 이벤트 카운터를 포함함-도 존재하지 않는 경우에, 상기 평가되고 있는 규칙이 상기 초기 후보 규칙 세트에 추가되는 것인, 초기 후보 규칙 세트를 식별하며;
    상기 적어도 하나의 프로세서는 상기 초기 후보 규칙 세트 내의 각각의 규칙을 평가하여 최종 후보 규칙 세트를 식별하도록 동작하고, 상기 선택된 디바이스가 상기 평가되고 있는 규칙으로부터의 정보를 입력으로서 수신하는 임의의 다른 규칙에 의해 요구된 입력 정보를 자체적으로 만족시키는 것이 가능해지는 경우, 그리고 상기 임의의 다른 규칙이 디바이스의 그룹과 관련되고, 상기 디바이스의 그룹 내의 다른 디바이스로부터 발생된 이벤트와 연관되는 어떠한 상관 연산자-이 상관 연산자는 이벤트 시퀀스 또는 이벤트 카운터를 포함함-도 존재하지 않는 경우에, 상기 임의의 다른 규칙이 상기 초기 후보 규칙 세트에 추가되어 최종 후보 규칙 세트를 생성하는 것인, 후보 규칙 세트를 식별하기 위한 장치.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서, 상기 규칙들 중 하나 이상은 공간 함수 및 이벤트 상관 연산자를 이용하는 것인 후보 규칙 세트를 식별하기 위한 장치.
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서, 상기 적어도 하나의 프로세서의 동작들은 디바이스의 그룹 내의 각각의 디바이스에 대해 수행되는 것인 후보 규칙 세트를 식별하기 위한 장치.
  15. 제12항에 있어서,
    상기 적어도 하나의 프로세서는 또한,
    (1) 상기 최종 후보 규칙 세트에 대한 자원 사용 분석을 수행하여 규칙 자원의 프로세서 용량에 있어서 규칙을 평가하는 비용을 판정하고;
    (2) 상기 자원 사용 분석에 의해 판정된 상기 용량과 디바이스의 추정된 용량을 비교하고;
    (3) 상기 자원 사용 분석에 의해 판정된 상기 용량이 상기 디바이스의 상기 추정된 용량을 초과한다면, 상기 최종 후보 규칙 세트로부터 하나 이상의 규칙을 제거하여 후보 규칙 세트를 생성하고;
    상기 디바이스의 상기 추정된 용량이 상기 자원 사용 분석을 초과할 때까지 단계 (1) 내지 (3)을 반복하도록
    동작하는 것인 후보 규칙 세트를 식별하기 위한 장치.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서, 상기 프로세서는 상기 최종 후보 규칙 세트의 하나 이상의 규칙이 하나 이상의 다운로드된 규칙보다 상위의 우선 순위를 갖는다면, 상기 하나 이상의 다운로드된 규칙을 상기 최종 후보 규칙 세트의 하나 이상의 규칙으로 교체하도록 더 동작하는 것인 후보 규칙 세트를 식별하기 위한 장치.
  17. 한 주기의 시간 동안 디바이스 상에서 하나 이상의 규칙을 비활성화하기 위한 장치로서,
    메모리와;
    상기 메모리에 결합된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    유한한 기간 동안 규칙에 입력될 하나 이상의 범위의 값들을 추정하고;
    상기 범위의 값들 중 적어도 하나에 대해 규칙을 규칙 평가 함수를 이용하여 평가하도록 동작하며, 상기 평가는 상기 값들에 대한 확률 분포를 생성하고;
    상기 범위의 값들에 대해 상기 규칙 평가 함수가 거짓으로 환원된다면, 상기 평가된 규칙을 비활성화하도록 동작하는 것인, 하나 이상의 규칙을 비활성화하기 위한 장치.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서, 상기 하나 이상의 규칙이 상기 유한한 기간 동안 트리거되지 않는다면, 상기 하나 이상의 규칙은 비활성화되는 것인 하나 이상의 규칙을 비활성화하기 위한 장치.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서, 상기 범위의 값들에 대해 상기 규칙 평가 함수가 참으로 환원되는 경우에 요구되는 자원의 세트를 상기 평가가 생성하는 것인 하나 이상의 규칙을 비활성화하기 위한 장치.
KR1020080105738A 2008-05-30 2008-10-28 유비쿼터스 컴퓨팅 환경을 위한 분산형 규칙 처리 KR100998307B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/130,416 2008-05-30
US12/130,416 US7996352B2 (en) 2008-05-30 2008-05-30 Distributed rule processing for ubiquitous computing environments

Publications (2)

Publication Number Publication Date
KR20090124894A KR20090124894A (ko) 2009-12-03
KR100998307B1 true KR100998307B1 (ko) 2010-12-06

Family

ID=41381000

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080105738A KR100998307B1 (ko) 2008-05-30 2008-10-28 유비쿼터스 컴퓨팅 환경을 위한 분산형 규칙 처리

Country Status (2)

Country Link
US (1) US7996352B2 (ko)
KR (1) KR100998307B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070171923A1 (en) * 2005-12-01 2007-07-26 Firestar Software, Inc. System and method for exchanging information among exchange applications
AR065274A1 (es) * 2007-02-08 2009-05-27 Aspenbio Pharma Inc Expresion y bioactividad de la hormona bovina estimuladora de foliculo
CN101973031B (zh) * 2010-08-24 2013-07-24 中国科学院深圳先进技术研究院 云机器人系统及实现方法
WO2012123621A1 (en) * 2011-03-16 2012-09-20 Nokia Corporation Method, device and system for user interface adaptation
CN103718170B (zh) * 2011-07-29 2017-06-13 惠普发展公司,有限责任合伙企业 用于事件的分布式基于规则的相关的系统和方法
US11880790B2 (en) 2013-03-15 2024-01-23 Utopus Insights, Inc. Spatio-temporal approach to scheduling field operations
TW201537378A (zh) 2014-03-31 2015-10-01 Ibm 電腦裝置以及與電腦裝置通訊連結的安全性管理裝置
TWI509456B (zh) * 2014-03-31 2015-11-21 Ibm 電腦裝置以及與電腦裝置通訊連結的安全性管理裝置
US9542335B1 (en) * 2014-07-25 2017-01-10 Google Inc. Methods and systems for rule-based flexible cache invalidation
US10127144B2 (en) 2016-10-24 2018-11-13 Cisco Technology, Inc. Automated testing of code modules against individually relevant data sets
CN109960186B (zh) * 2017-12-25 2022-01-07 紫石能源有限公司 控制流程的处理方法、装置、电子设备和存储介质
US11727283B2 (en) * 2020-05-19 2023-08-15 International Business Machines Corporation Rule distribution across instances of rules engine
CN112291151B (zh) * 2020-11-18 2022-07-12 迈普通信技术股份有限公司 一种报文转发方法、装置、网络设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'Distributed Evaluation of Spatio-temporal Rules in a Ubiquitous Computing Environment', WooChul Jung et al. Proceedings of Intelligent Pervasive Computing, 11-13 Oct. 2007, pp.327-332

Also Published As

Publication number Publication date
US20090299939A1 (en) 2009-12-03
KR20090124894A (ko) 2009-12-03
US7996352B2 (en) 2011-08-09

Similar Documents

Publication Publication Date Title
KR100998307B1 (ko) 유비쿼터스 컴퓨팅 환경을 위한 분산형 규칙 처리
US10915382B2 (en) Event-driven serverless function orchestration
US11373133B2 (en) Robot service platform
KR101826368B1 (ko) 클라우드 컴퓨팅 모니터링 및 관리 시스템
CN107431664B (zh) 消息传递系统和方法
US10212246B2 (en) Proxy application with dynamic filter updating
US7979439B1 (en) Method and system for collecting and analyzing time-series data
US8601112B1 (en) Method and system for collecting and analyzing time-series data
RU2612583C2 (ru) Торговая площадка для своевременного распределения данных о событиях
US9037698B1 (en) Method and system for collecting and analyzing time-series data
US8584136B2 (en) Context-aware request dispatching in clustered environments
EP1862957A1 (en) Device registration in a hierarchical monitor service
US9311617B2 (en) Processing event instance data in a client-server architecture
JP2014528126A (ja) 複数のターゲットへのマルチソースプッシュ通知の分配
EP2590113A1 (en) On demand multi-objective network optimization
US20130013534A1 (en) Hardware-assisted approach for local triangle counting in graphs
US9015731B2 (en) Event handling system and method
US20220407795A1 (en) Centralized, scalable, resource monitoring system
US10034144B2 (en) Application and situation-aware community sensing
KR101020003B1 (ko) 효율적인 감지-반응 시스템을 위한 프레임워크 및프로그래밍 모델
CN103379016A (zh) 信息提醒方法和装置
Abiteboul et al. The AXML artifact model
US20160210684A1 (en) Policy-based order jeopardy management
US11520593B1 (en) Apparatus and method for distributed database query cancellation based upon single node query execution analysis
CN110875832A (zh) 异常业务监控方法、装置、系统及计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131018

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141013

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161026

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171026

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191107

Year of fee payment: 10