KR100778314B1 - 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 - Google Patents
사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100778314B1 KR100778314B1 KR1020060078905A KR20060078905A KR100778314B1 KR 100778314 B1 KR100778314 B1 KR 100778314B1 KR 1020060078905 A KR1020060078905 A KR 1020060078905A KR 20060078905 A KR20060078905 A KR 20060078905A KR 100778314 B1 KR100778314 B1 KR 100778314B1
- Authority
- KR
- South Korea
- Prior art keywords
- trigger
- continuous query
- integrated continuous
- user
- defined shared
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000008859 change Effects 0.000 claims description 15
- 238000012217 deletion Methods 0.000 claims description 11
- 230000037430 deletion Effects 0.000 claims description 11
- 238000003672 processing method Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012351 Integrated analysis Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000005441 aurora Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/30—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for musical instruments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 연속적으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터를 통합하여 연속 질의를 처리 시에, 사용자 정의 공유 트리거를 이용하여 상기 저장 데이터를 실시간으로 처리하고 그 결과를 여러 통합 연속 질의에서 공유함으로써, 통합 연속 질의 처리 시 저장 데이터 처리에 소요되는 시간을 줄여 전체 성능이 향상되도록 하기 위한, 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템에 있어서, 외부로부터 입력되는 데이터 스트림을 관리하기 위한 데이터 스트림 관리 수단; 외부 애플리케이션으로부터 입력되는 통합 연속 질의를 관리하기 위한 통합 연속 질의 관리 수단; 상기 애플리케이션으로부터 입력되는 사용자 정의 공유 트리거를 관리하고 외부의 연동 데이터베이스에 등록하기 위한 트리거 관리 수단; 상기 연동 데이터베이스에 등록된 사용자 정의 공유 트리거의 수행 결과로부터 트리거 결과 집합을 구성하여 관리하기 위한 트리거 결과 관리 수단; 및 상기 데이터 스트림 관리 수단으로부터 전달받은 데이터 스트림과 상기 트리거 결과 관리 수단으로부터 전달받은 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하기 위한 통합 연속 질의 실행 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 통합 연속 질의 처리 시스템 등에 이용됨.
데이터 스트림, 저장 데이터, 연속 질의, 이력 질의, 사용자 정의 공유 트리거, 통합 연속 질의 처리 시스템, XML, 데이터베이스
Description
도 1은 본 발명에 따른 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템의 일실시예 구성도,
도 2는 본 발명에 따른 통합 연속 질의 처리 시스템에서 저장 데이터에 대한 사용자 정의 공유 트리거 등록 과정에 대한 일실시예 흐름도,
도 3은 본 발명에 따른 통합 연속 질의 처리 시스템에서 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 등록 과정에 대한 일실시예 흐름도,
도 4는 본 발명에 따른 통합 연속 질의 처리 시스템에서 통합 연속 질의 삭제 과정에 대한 일실시예 흐름도,
도 5는 본 발명에 따른 통합 연속 질의 처리 시스템에서 사용자 정의 공유 트리거 삭제 과정에 대한 일실시예 흐름도,
도 6은 본 발명에 따른 통합 연속 질의 처리 시스템에서 연동 데이터베이스로부터 전달받아 구성한 트리거 결과 집합을 통합 연속 질의에서 공유하여 사용할 수 있도록 관리하기 위한 일실시예 데이터 구성도,
도 7은 본 발명에 따른 통합 연속 질의문에서 사용자 정의 공유 트리거 결과에 접근하기 위하여 본 발명에서 제안하는 트리거 결과 접근 함수에 대한 정의를 설명하기 위한 도면,
도 8은 사용자 정의 공유 트리거 등록을 위한 사용자 정의 공유 트리거문의 일실시예 설명도,
도 9는 본 발명에 따른 통합 연속 질의문에 대한 일실시예 설명도,
도 10은 본 발명에 따른 사용자 정의 공유 트리거의 등록 및 삭제를 위한 인터페이스에 대한 일실시예 설명도이다.
* 도면의 주요 부분에 대한 부호의 설명
100 : 통합 연속 질의 처리 시스템 101 : XML 데이터 스트림 소스
102 : 데이터 스트림 관리기 103 : 트리거 관리기
104 : 트리거 결과 관리기 105 : 통합 연속 질의 실행기
106 : 애플리케이션 107 : 통합 연속 질의 관리기
108 : XML 데이터베이스
본 발명은 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 실시간에 연속적으로 입력되는 데이터 스트림과 데이터베이스에 관리되는 저장 데이터를 통합한 연속 질의 처리 수행 시에, 사용자 정의 공유 트리거를 이용하여 저장 데이터에 대한 질의를 실시간으로 처리하고, 그 수행 결과를 공유하는 방식으로 통합 연속 질의 처리 시에 저장 데이터에 대한 질의 처리에 소요되는 시간을 줄임으로써 전체 성능을 향상시키기 위한, 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법에 관한 것이다.
유비쿼터스 컴퓨팅 환경에서는 무선 인식(Radio Frequency IDentification) 센서, GPS(Global Positioning System), 다양한 센서(온도 센서, 습도 센서 등)와 각종 응용프로그램으로부터 끊임없이 생성되는 데이터를 실시간으로 처리하기 위한 연속 질의 처리 기술이 필수적으로 요구되고 있다.
센서 네트워크를 예로 들어 살펴보면, 경량의 센서 노드들이 무선 통신으로 연결되는 센서 네트워크는 사람이 감시할 수 없는 지역의 환경 감시, 집과 사무실 등의 자동화 및 방범, 건강 모니터링, 이동 물체에 대한 추적, 네트워크 모니터링, 물류 및 유통, 웹 로그 등과 같은 각종 유비쿼터스 환경을 위한 다양한 응용 서비스들을 제공할 수 있다.
상기와 같은 각종 응용 서비스를 위해 처리되는 데이터는 연속적으로 끊임없이 생성되고, 생성되는 데이터의 양이 시시각각 변하므로 실시간으로 처리해야 하 는 특성이 있다.
즉, 유비쿼터스 컴퓨팅 환경에서는 사용자 또는 애플리케이션에 의해 등록된 질의에 대하여 새로운 결과를 지속적으로 전달하여 실시간으로 현 상황을 인지할 수 있도록 하기 위하여, 연속 질의(continuous query)를 처리하는 데이터 스트림 관리 시스템(DSMS : Data Stream Management System)에 대한 개발 요구가 높아지고 있다.
그러나 유비쿼터스 컴퓨팅 환경 하에서 실시간으로 입력되는 데이터 스트림에 대한 분석만으로는 현 상황에 대한 이해 및 판단이 부정확할 수도 있다. 즉, 과거 이력 또는 관련된 정보를 기반으로 하는 통합 분석이 이뤄져야 보다 정확하고 부가 가치가 높은 정보를 획득할 수 있다. 그에 따라, 데이터 스트림 관리 시스템은 연속 질의를 통해 사용자 또는 애플리케이션으로 고부가 가치의 정보를 제공하기 위하여 실시간으로 입력되는 데이터 스트림뿐만 아니라, 일정한 저장소(데이터베이스)의 히스토리컬 데이터 혹은 관련된 데이터를 포함하는 통합 연속 질의를 지원하고 있다.
그런데, 지금까지의 대부분의 연구 및 개발은 지속적으로 입력되는 데이터 스트림에 대해서는 푸쉬 기반(push-based) 접근 방식을 채택하고, 데이터베이스의 저장 데이터에 대해서는 풀 기반(pull-based) 접근 방식을 채택하여 통합 연속 질의에 대한 처리를 수행하였다. 그에 따라, 실시간으로 통합 연속 질의의 처리 결과를 전달해야하는 데이터 스트림 관리 시스템에서는 데이터베이스의 저장 데이터에 대한 질의 처리 소요 시간이 데이터 스트림에 대한 질의 처리 소요 시간보다 길어 전체 통합 연속 질의 처리 시에 그 처리 성능이 떨어지는 문제점이 있었다.
즉, 종래 기술에 따른 데이터 스트림 관리 시스템의 경우 데이터베이스의 저장 데이터가 변동되었는지의 여부를 알지 못하기 때문에 매번 데이터베이스와 연결한 후에 질의를 수행하는 풀 기반(pull-based) 접근 방식을 취함으로써, 데이터베이스의 저장 데이터에 대한 질의 처리 시 소요 시간이 길어 전체 질의 성능을 떨어뜨리는 문제점이 있었다.
한편, 데이터 스트림 관리 시스템에서의 질의 성능 향상과 관련된 선행 기술을 살펴보기로 한다.
제 1 선행 기술로서 미합중국 등록 특허 "Data Query System Load Optimization(등록번호 20050044063, 등록일 2005년 2월 24일)"에 대하여 살펴보면, 이는 관계형 데이터베이스에서 반복적으로 수행되는 질의 처리의 최적화를 위하여 트리거가 데이터베이스의 변경을 인지하면 데이터 처리 엔진이 관계형 데이터베이스를 대상으로 질의를 재수행하고 해당 질의 결과는 동일한 질의 수행에 한하여 재사용되도록 함으로써, 관계형 데이터베이스에서 반복적으로 수행되는 질의를 최적화할 수 있는 효과가 있다. 이때, 트리거는 데이터베이스의 변경 감지의 역할만을 수행한다.
그런데, 상기 제 1 선행 기술의 경우 끊임없이 입력되는 데이터 스트림이 아니라, 관계형 데이터베이스를 대상으로 하고 동일한 질의에 대해서만 질의 결과를 재사용할 수 있는 한계가 있다.
또한, 제 2 선행 기술로서 논문명 "Aurora: A New Model and Architecture for Data Stream Management(게재지명 VLDB Journal Vol.12 No.2, p120-139, 2003.08)"에 대하여 살펴보면, 이는 실시간으로 입력되는 튜플 기반의 데이터 스트림 및 데이터베이스에 대한 연속 질의 처리를 위한 기술로서, 일반 튜플 개념의 데이터를 기반으로 하여 연결점을 통한 풀 기반(pull-based) 접근 방식을 이용해 통합 질의 처리를 수행함으로써, 연결점을 통해서 실시간으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터에 대한 통합 질의 처리가 가능하도록 하는 효과가 있다.
그런데, 상기 제 2 선행 기술의 경우 튜플 개념의 데이터와 관계형 데이터베이스 기반의 데이터로 그 기술 적용 범위가 한정되고, 데이터베이스의 저장 데이터에 대하여 풀 기반(pull-based) 접근 방식을 사용함으로써 성능상의 효율성이 떨어지는 문제점이 있었다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 연속적으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터를 통합하여 연속 질의를 처리 시에, 사용자 정의 공유 트리거를 이용하여 상기 저장 데이터를 실시간으로 처리하고 그 결과를 여러 통합 연속 질의에서 공유함으로써, 통합 연속 질의 처리 시 저장 데이터 처리에 소요되는 시간을 줄여 전체 성능이 향상되도록 하기 위한, 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템에 있어서, 외부로부터 입력되는 데이터 스트림을 관리하기 위한 데이터 스트림 관리 수단; 외부 애플리케이션으로부터 입력되는 통합 연속 질의를 관리하기 위한 통합 연속 질의 관리 수단; 상기 애플리케이션으로부터 입력되는 사용자 정의 공유 트리거를 관리하고 외부의 연동 데이터베이스에 등록하기 위한 트리거 관리 수단; 상기 연동 데이터베이스에 등록된 사용자 정의 공유 트리거의 수행 결과로부터 트리거 결과 집합을 구성하여 관리하기 위한 트리거 결과 관리 수단; 및 상기 데이터 스트림 관리 수단으로부터 전달받은 데이터 스트림과 상기 트리거 결과 관리 수단으로부터 전달받은 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하기 위한 통합 연속 질의 실행 수단을 포함한다.
한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법에 있어서, 사용자 정의 공유 트리거를 등록하는 트리거 등록 단계; 상기 등록한 사용자 정의 공유 트리거를 참조하는 통합 연속 질의를 등록하는 통합 연속 질의 등록 단계; 상기 등록한 사용자 정의 공유 트리거의 수행 결과로 트리거 결과 집합을 구성하여 관리하는 트리거 결과 집합 구성 단계; 데이터 스트림을 입력받는 데이터 스트림 입력 단계; 및 상기 입력받은 데이터 스트림과 상기 구성한 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하는 통합 연속 질의 처리 단계를 포함한다.
또한, 상기 본 발명의 방법은, 상기 등록된 사용자 정의 공유 트리거의 삭제 요청에 따라 해당 사용자 정의 공유 트리거를 사용하는 통합 연속 질의의 존재 여부를 검사하여 그 결과에 따라 삭제 기능을 수행하는 트리거 삭제 단계를 더 포함한다.
또한, 상기 본 발명의 방법은, 상기 등록된 통합 연속 질의의 삭제 요청에 따라 해당 통합 연속 질의에서 참조하는 사용자 정의 공유 트리거의 존재 여부를 검사하여 그 결과에 따라 삭제 기능을 수행하는 통합 연속 질의 삭제 단계를 더 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실 시예를 상세히 설명하기로 한다.
본 발명은, 연속적으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터에 대한 통합 연속 질의 처리 시에, 데이터베이스의 저장 데이터에 대하여 사용자 정의 공유 트리거를 이용하여 트리거 결과를 구성하고 상기 트리거 결과를 여러 통합 연속 질의에서 공유하도록 함으로써, 풀 기반(pull-based) 접근 방식에 따른 성능 감소를 해소하고 전체 질의 성능을 향상시킬 수 있도록 한다.
이하의 상세한 설명에서는, 인터넷 및 애플리케이션 사이에 전달되는 데이터가 엑스엠엘(XML : eXtensible Markup Language, 이하 "XML"이라 함) 형식을 따르는 점에 착안하여, XML 데이터 스트림과 XML 데이터베이스를 예로 들어 설명하기로 한다. 그러나 본 발명이 이러한 XML 데이터 스트림과 XML 데이터베이스에 한정되는 것이 아님을 미리 밝혀둔다.
도 1은 본 발명에 따른 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템의 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템은, 외부의 다양한 XML 데이터 스트림 소스(101)로부터 실시간에 연속적으로 입력되는 XML 데이터 스트림을 관리하기 위한 데이터 스트림 관리기(102), 외부의 애플리케이션(106)으로부터 정의되어 입력되는 통합 연속 질의를 관리(등록 및 삭제 등)하기 위한 통합 연속 질의 관리기(107), 상기 외부의 애플리케이션(106)으로부터 정의되어 입력되는 사용자 정의 공유 트리거를 관리하고 XML 데이터베이스(108)에 XML 트리거로 서 등록 및 삭제하기 위한 트리거 관리기(103), 각각의 저장 데이터에 대한 XML 트리거 수행 결과를 상기 XML 데이터베이스(108)로부터 전달받아 트리거 결과 집합을 구성하여 관리하기 위한 트리거 결과 관리기(104), 및 상기 데이터 스트림 관리기(102)로부터 XML 데이터 스트림을 전달받고 상기 트리거 결과 관리기(104)로부터 저장 데이터에 대한 트리거 결과 집합을 전달받아 이를 참조하여 상기 XML 데이터 스트림 및 저장 데이터에 대한 통합 연속 질의를 처리한 후, 그 결과를 외부의 애플리케이션(106)으로 전달하기 위한 통합 연속 질의 실행기(105)를 포함한다.
이때, 상기 트리거 결과 관리기(104)는 통합 연속 질의 처리 시스템(100)과 연동되어 있는 하나 이상의 XML 데이터베이스(108)로부터 실시간으로 각 저장 데이터에 대한 XML 트리거 수행 결과를 전달받는다. 이를 위해, 트리거 관리기(103)는 사용자 정의 공유 트리거를 각 XML 데이터베이스(108)에 XML 트리거로서 등록하고, XML 데이터베이스(108)의 내부 데이터에 변경이 발생할 때마다 상기 등록된 XML 트리거를 자동으로 수행하도록 한다.
즉, 상기 XML 데이터베이스(108)는 데이터베이스의 내부 데이터에 변경이 발생함에 따라 기 등록된 XML 트리거를 수행하고, 그 트리거 수행 결과를 통합 연속 질의 처리 시스템(100)의 트리거 결과 관리기(104)로 실시간 전달함으로써, 통합 연속 질의 처리 시에 이미 질의 처리가 완료되어 공유되는 트리거 수행 결과를 참조할 수 있도록 한다. 그에 따라, 데이터베이스의 저장 데이터에 대한 풀 기반(pull-based) 접근에 따른 성능 저하를 방지할 수 있도록 한다.
여기서, 상기 XML 데이터베이스(108)는 별도 요청에 따라 엑스쿼리(XQuery) 구문 구조를 따르는 XML 트리거를 내부에 등록하고, XML 데이터의 변경(추가, 갱신, 삭제 등)에 따라 자동으로 기 등록된 XML 트리거의 질의 문장을 수행하여 그 수행 결과를 트리거 결과 관리기(104)로 실시간으로 제공하는 기능을 수행한다.
그리고 상기 트리거 관리기(103)는 사용자 정의 공유 트리거 등록 및 삭제 기능을 제공하는 구성 요소로서, 사용자 정의 공유 트리거 등록 시에 사용자 정의 공유 트리거문의 구문 분석 및 정당성 검사를 수행하고, 사용자 정의 공유 트리거의 생성에 따른 작업을 수행하여 통합 연속 질의 실행기(105)를 위한 환경을 구축한다. 또한, 사용자 정의 공유 트리거 삭제 시에는 사용자 정의 공유 트리거를 사용하는 통합 연속 질의의 존재 여부를 검사하고 이에 따른 작업을 수행한다. 상기 트리거 관리기(103)의 사용자 정의 공유 트리거 등록 및 삭제와 관련된 상세한 동작은 후술되는 도 2와 도 5를 참조하여 상세히 설명하기로 한다.
그리고 상기 통합 연속 질의 관리기(107)는 통합 연속 질의 등록 및 삭제 기능을 제공하는 구성 요소로서, 통합 연속 질의 등록 시에 상기 통합 연속 질의의 구문 분석 및 정당성 검사를 수행하며, 해당 통합 연속 질의가 사용자 정의 공유 트리거를 참조하는지 여부를 확인한다. 또한, 통합 연속 질의 삭제 시에는 사용자 정의 공유 트리거의 총 사용자 수를 검사하고 이에 따른 작업을 수행한다. 상기 통합 연속 질의 관리기(107)의 통합 연속 질의 등록 및 삭제와 관련된 상세한 동작은 후술되는 도 3과 도 4를 참조하여 상세히 설명하기로 한다.
그리고 통합 연속 질의 처리 시스템(100)은 외부의 무선 인식 센서(RFID sensor)를 포함하는 다양한 센서, 애플리케이션 등의 XML 데이터 스트림 소스(101) 로부터 끊임없이 XML 데이터 스트림을 입력받고, XML 트리거를 지원하는 하나 이상의 XML 데이터베이스(108)와 연동하여 저장 데이터에 대한 접근이 가능하다. 상기 통합 연속 질의 처리 시스템(100)은 상기 입력받는 XML 데이터 스트림과 XML 데이터베이스(108)의 저장 데이터에 대하여 통합 연속 질의 처리를 수행하고, 그로부터 발생하는 통합 연속 질의 처리 결과를 외부의 다른 애플리케이션(106)으로 실시간으로 전달한다.
도 2는 본 발명에 따른 통합 연속 질의 처리 시스템에서 저장 데이터에 대한 사용자 정의 공유 트리거 등록 과정에 대한 일실시예 흐름도로서, XML 데이터베이스에 관리되는 저장 데이터에 대하여 사용자 정의 공유 트리거를 등록하는 과정에 대한 일실시예 흐름도이다.
먼저, 통합 질의 처리 시스템(100)은 등록 대상이 되는 사용자 정의 공유 트리거 문장을 엑스쿼리 파서를 이용하여 구문 분석한다(201).
그리고 상기 구문 분석한 사용자 정의 공유 트리거 문장에 대하여 정당성 검사를 수행하여(202) 정당성 여부를 판단한다(203). 이때, 정당성 검사는 구문 검사를 통해 XML 트리거를 등록하고자 하는 저장 데이터 소스가 존재하는지의 여부, 및 데이터에 대한 지정이 유효한지의 여부 등을 검사한다.
상기 정당성 여부 판단 결과(203), 정당한 사용자 정의 공유 트리거 문장이 아닐 경우에는 종료하고, 정당한 사용자 정의 공유 트리거 문장일 경우에는 사용자 정의 공유 트리거를 XML 트리거로서 XML 데이터베이스(108)에 등록하고(204), XML 데이터베이스(108)에 상기 XML 트리거문으로부터 추출한 엑스쿼리 질의를 수행하여 사용자 정의 공유 트리거의 첫 번째 수행 결과(초기 트리거 결과)를 구성하여 통합 연속 질의 처리 시에 접근할 수 있도록 한다(205). 그리고 상기의 사용자 정의 공유 트리거, 저장 데이터 소스, 및 트리거 결과 등의 사용자 정의 공유 트리거 관련 메타데이터를 저장한다(206).
상기와 같은 과정을 통해 등록된 사용자 정의 공유 트리거(XML 트리거)는 통합 연속 질의 처리 시스템(100)의 통합 연속 질의 처리 동작과는 별도로 상기 XML 데이터베이스(108)의 데이터에 변경이 발생할 때마다 자동으로 수행되어, 그 트리거 수행 결과가 통합 연속 질의 처리 시스템(100)의 트리거 결과 관리기(104)로 전달되어 사용자 정의 공유 트리거의 결과가 갱신된다. 그에 따라, XML 데이터 스트림과 XML 데이터베이스(108)의 저장 데이터에 대한 통합 연속 질의 처리 시, 통합 연속 질의 처리 시스템(100)은 XML 데이터베이스(108)를 대상으로 하는 질의 수행을 사용자 정의 공유 트리거의 결과를 참조하는 것으로 완료하게 된다.
또한, 등록된 사용자 정의 공유 트리거는 다수의 통합 연속 질의에 참조가 가능하므로 트리거 결과를 여러 통합 연속 질의에서 공유함으로써, 전체 질의 성능을 향상시킬 수 있다.
도 3은 본 발명에 따른 통합 연속 질의 처리 시스템에서 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 등록 과정에 대한 일실시예 흐름도이다.
먼저, 통합 연속 질의 처리 시스템(100)은 등록 대상이 되는 통합 연속 질의를 엑스쿼리 파서를 이용하여 구문 분석한다(301).
그리고 상기 구문 분석한 통합 연속 질의에 대하여 정당성 검사를 수행하 여(302) 정당성 여부를 판단한다(303). 이때, 정당성 검사는 구문 검사를 통해 질의하고자 하는 데이터 스트림 소스가 존재하는지의 여부, 트리거 결과 접근 함수의 인자가 등록된 사용자 정의 공유 트리거 이름인지의 여부, 및 데이터에 대한 지정이 유효한지의 여부 등을 검사한다.
상기 정당성 여부 판단 결과(303), 정당한 통합 연속 질의가 아닐 경우에는 종료하고, 정당한 통합 연속 질의일 경우에는 트리거 결과를 참조하는지 여부, 즉 통합 연속 질의문에서 도 7의 트리거 결과 접근 함수를 사용하는지의 여부를 검사한다(304).
상기 트리거 결과 참조 여부 판단 결과(304), 통합 연속 질의문에서 사용자 정의 공유 트리거 결과를 참조하면 해당 트리거의 사용자 수를 1 증가시킨 후에(305) 통합 연속 질의, 데이터 스트림 소스, 및 사용자 정의 공유 트리거 등의 통합 연속 질의 관련 메타데이터를 저장하고(306), 참조하지 않으면 바로 사용자 정의 공유 트리거를 제외한 통합 연속 질의 관련 메타데이터를 저장한다(306).
상기와 같은 과정을 통해 등록된 통합 연속 질의는 통합 연속 질의 처리 시스템(100)으로 입력되는 데이터 스트림에 대하여 반복적으로 수행된다. 반면에, 저장 데이터에 대한 처리는 전술한 바와 같이 사용자 정의 공유 트리거의 수행에 따라 트리거 결과 관리기(104)가 관리하는 트리거 결과를 참조하는 것으로 대신하게 된다.
도 4는 본 발명에 따른 통합 연속 질의 처리 시스템에서 통합 연속 질의의 삭제 과정에 대한 일실시예 흐름도이다.
먼저, 삭제하고자 하는 통합 연속 질의의 등록 여부를 판단한다(401).
상기 통합 연속 질의 등록 여부 판단 결과(401), 해당되는 통합 연속 질의가 존재하지 않는 경우(등록되어 있지 않는 경우)에는 종료하고, 해당하는 통합 연속 질의가 존재하면(등록되어 있으면) 사용자 정의 공유 트리거의 결과를 참조하는지 여부를 판단한다(402).
상기 트리거 결과 참조 여부 판단 결과(402), 트리거 결과를 참조하면 해당 사용자 정의 공유 트리거의 총 사용자 수를 1 감소시키고(403) 해당하는 통합 연속 질의를 삭제하며(404), 트리거 결과를 참조하지 않으면 바로 해당 통합 연속 질의를 삭제한다(404).
도 5는 본 발명에 따른 통합 연속 질의 처리 시스템에서 사용자 정의 공유 트리거 삭제 과정에 대한 일실시예 흐름도이다.
먼저, 삭제하고자 하는 사용자 정의 공유 트리거의 등록 여부를 판단한다(501).
상기 사용자 정의 공유 트리거 등록 여부 판단 결과(501), 해당하는 사용자 정의 공유 트리거가 존재하지 않는 경우(등록되어 있지 않는 경우)에는 종료하고, 해당하는 사용자 정의 공유 트리거가 존재하면(등록되어 있으면) 해당 트리거의 총 사용자 수가 0보다 작거나 같은지 여부를 검사한다(502).
상기 트리거 총 사용자 수 판단 결과(502), 해당 트리거의 총 사용자 수가 0보다 작거나 같으면 해당 사용자 정의 공유 트리거를 삭제하고(503) 종료하며, 해당 트리거의 총 사용자 수가 0보다 큰 경우에는 사용자의 의도에 따라 처리 방법을 결정하기 위하여 캐스케이드(cascade) 옵션이 트루(true)인지 아니면 폴스(false)인지 여부를 판단한다(504).
상기 캐스케이드(cascade) 옵션의 트루(true) 여부 판단 결과(504), 캐스케이드(scade) 옵션이 폴스(false)이면 바로 종료하고, 캐스케이드(cascade) 옵션이 트루(true)이면 해당 사용자 정의 공유 트리거를 참조하는 모든 통합 연속 질의를 삭제하고(505) 해당하는 사용자 정의 공유 트리거를 삭제한 후(503) 종료한다.
이때, 어떤 트리거의 총 사용자 수가 1이란 것은, 해당 트리거를 사용하는 "사용자가 있다"는 의미이다. 즉, "해당 트리거를 참조하는 또는 해당 트리거의 결과를 필요로 하는 통합 연속 질의가 등록되어 있다"는 것을 의미한다.
상기와 같이, 사용자 정의 공유 트리거의 결과는 여러 통합 연속 질의가 공유할 수 있도록 한다. 즉, 통합 연속 질의의 등록 요청 시 이미 존재하는 사용자 정의 공유 트리거의 결과를 이용할 수 있도록 기 등록된 트리거의 이름을 인자로 하는 트리거 결과 접근 함수를 통합 연속 질의문에서 사용한다. 이러한 사용자 정의 공유 트리거 및 트리거 결과의 공유는 시스템 리소스의 사용 측면에서 최적화의 효과를 제공한다.
도 6은 본 발명에 따른 통합 연속 질의 처리 시스템에서 연동 데이터베이스로부터 전달받아 구성한 트리거 결과 집합을 통합 연속 질의에서 공유하여 사용할 수 있도록 관리하기 위한 일실시예 데이터 구성도이다.
도 6에 도시된 바와 같이, 사용자 정의 공유 트리거의 결과 집합 목록(601)은 통합 연속 질의 처리 시스템(100)에 등록된 모든 사용자 정의 공유 트리거의 결 과 집합을 모두 포함한다. 이때, 특정 사용자 정의 공유 트리거의 결과 집합은 해당 트리거의 이름을 통해 접근 가능하며, 트리거의 이름은 도 10의 사용자 정의 공유 트리거 등록 인터페이스를 통한 사용자로부터의 입력에 따라 이름이 부여되며, 통합 연속 질의 처리 시스템(100) 내에서 유일해야 한다.
또한, 특정 트리거의 결과 집합(602)은 특정 트리거문을 수행한 결과 집합, 총 사용자 수(603), 결과 집합의 참조/변경 시 필요한 잠금(604)에 관련된 정보를 포함한다.
여기서, 총 사용자 수는 트리거의 결과 집합에 접근하여 사용하고 있는 총 통합 연속 질의의 수를 말한다. 트리거가 처음으로 생성되어 결과 집합을 구성할 시점에는 사용자 수가 0이며, 추후 해당 트리거를 참조하는 통합 연속 질의의 등록 요청에 따라 1만큼 사용자 수를 증가시킨다. 반대로, 상기 트리거를 참조하는 통합 연속 질의의 삭제 요청에 따라 1만큼 사용자 수를 감소시키고, 최종적으로 사용자 수가 0이 되는 시점에 해당 트리거의 삭제가 사용자의 요청에 의해 가능하게 된다.
이때, 사용자 정의 공유 트리거의 결과 집합은 통합 연속 질의 처리 시스템(100)의 통합 연속 질의 및 XML 데이터베이스(108)가 함께 사용한다. 여기서, 상기 통합 연속 질의는 사용자 정의 공유 트리거의 결과 집합을 참조, 즉 읽기를 수행할 수 있고, XML 데이터베이스(108)는 상기 사용자 정의 공유 트리거의 결과 집합에 대한 변경을 수행할 수 있다. 그러므로 결과 집합의 변경 시에 읽기가 수행되거나, 읽기 수행 시에 변경이 수행되지 않도록 하기 위해, 사용자 정의 공유 트리거의 결과 집합에 대한 연산 수행 시 잠금 관리 기법을 사용한다. 즉, 읽거나 변경 하기 위해서는 잠금(604)을 획득해야 하고, 읽기/변경 작업을 완료한 후에는 잠금을 해제하도록 하여 읽기와 변경 작업이 함께 수행되지 않도록 한다. XML 데이터베이스(108) 및 통합 연속 질의 처리 시스템(100)의 질의 수행 등의 동작은 별도로 이루어지므로, 오버헤드가 적어 위의 잠금 관리 기법이 가능하다.
또한, 사용자 정의 공유 트리거문 수행에 따른 결과 집합(602)은 노드 트리 형태의 결과(605) 또는 정수(Integer), 스트링(String) 등의 기본 타입 형태의 결과(606, 607)를 모두 포함할 수 있다.
도 7은 본 발명에 따른 통합 연속 질의문에서 사용자 정의 공유 트리거 결과에 접근하기 위하여 본 발명에서 제안하는 트리거 결과 접근 함수에 대한 정의를 설명하기 위한 도면이다.
도 7에 도시된 바와 같이, 트리거 결과 접근 함수(701)인 uc:trigger()는 인자로 xs:string 타입(702)의 트리거 이름(703)을 받아들이며, 결과로는 0개 이상의 item() 타입의 결과 아이템(704)을 반환한다.
W3C(World Wide Web Consortium)의 엑스쿼리(XQuery) 명세서에 따르면 item() 타입(704)은 node() 타입과 xs:anyAtomicType 타입의 합집합이므로, uc:trigger() 함수의 결과는 도 6에서 설명한 바와 같이, node() 타입 또는 xs:anyAtomicType 타입, 즉 기본 타입의 결과 아이템의 셋으로 이루어진다.
도 7의 uc:trigger() 함수(701)에서 네임스페이스 접두어인 uc는 네임스페이스 URI(Uniform Resource Identifier)인 'http://ubicore.etri.re.kr/xquery-functions'에 바인딩되며, 상기의 네임스페이스를 통해 본 발명의 통합 연속 질의 처리 시스템(100)은 W3C의 엑스쿼리(XQuery) 명세서에서 정의되지 않은 고유의 엑스쿼리(XQuery) 함수들을 정의하여 제공한다.
도 8은 사용자 정의 공유 트리거 등록을 위한 사용자 정의 공유 트리거문의 일실시예 설명도이다.
도 8의 사용자 정의 공유 트리거문(801)은 "T1"이라는 트리거 이름(802)을 가지며 "HistoricalDataSource"라는 이름의 소스는 XML 데이터베이스(108)에서 접근 가능한 저장 데이터 소스의 이름을 나타낸다. 따라서 트리거문의 내용은 "HistoricalDataSource란 저장 데이터 소스로부터 모든 Temperature의 값을 검색하여 그 중 최대 값을 반환하라"이고, XML 데이터베이스(108)는 상기 사용자 정의 공유 트리거를 XML 트리거로서 전달받아 데이터베이스에 등록하며, 이후 통합 연속 질의 처리 시스템(100)은 사용자 정의 공유 트리거로부터 초기 결과 구성을 위한 엑스쿼리 문장을 추출하여 초기 트리거 결과를 구성한다. 사용자 정의 공유 트리거가 생성된 이후에는, XML 데이터베이스(108)에 "HistoricalDataSource"란 저장 데이터 소스가 추가, 삭제, 변경될 때마다 상기 사용자 정의 공유 트리거문이 수행되고, 그 트리거 수행 결과는 통합 연속 질의 처리 시스템(100)으로 반환되어 트리거 결과가 갱신된다.
도 9는 본 발명에 따른 통합 연속 질의문에 대한 일실시예 설명도이다.
도 9에 도시된 바와 같이, 통합 연속 질의 처리 시스템(100)으로 입력되는 XML 데이터 스트림과 XML 데이터베이스(108)의 저장 데이터에 대한 통합 연속 질의문(901)은 다음과 같다. 통합 연속 질의문(901)은 엑스쿼리를 바탕으로 "FLWOR" 절 을 구성할 수 있고, "USING" 절은 일반적인 엑스쿼리가 문서를 바탕으로 이루어지는 반면에 통합 연속 질의 처리 시스템(100)은 데이터 소스를 기반으로 이루어지므로 이를 위하여 확장한 것이다. 각 데이터 소스는 이름을 이용하여 구분이 가능하며, 이름을 통해 데이터 스트림 소스인지 혹은 XML 데이터베이스의 저장 데이터 소스인지 알 수 있다.
상기 통합 연속 질의문(901)의 내용을 살펴보면, "DataStreamSource"로부터 입력되는 데이터 스트림으로부터 "/Building/Room/Temperature"의 값이 상기 도 8에 도시한 사용자 정의 공유 트리거 T1의 결과에서 "/MaxTemp" 의 값 , 즉 최근까지 XML 데이터베이스에 저장되어 있는 온도 값의 최대 값보다 큰 경우에 방 번호와 현재 온도를 "<REPORT>"란 엘리먼트를 생성하여 전달해 달라는 내용이다.
도 10은 본 발명에 따른 사용자 정의 공유 트리거의 등록 및 삭제를 위한 인터페이스에 대한 일실시예 설명도이다.
도 10에 도시된 바와 같이, 사용자 정의 공유 트리거의 등록 인터페이스(1001)는 메소드 이름이 "createTrigger"이며, 인자로 트리거 이름(triggerName)과 트리거 문장(triggerStmt)을 받아들여서, 해당 트리거 이름으로 사용자 정의 공유 트리거를 등록하여, 이후 트리거 이름을 참조함으로써 여러 통합 연속 질의에서 공유하여 사용할 수 있도록 한다.
그리고 사용자 정의 공유 트리거의 삭제 인터페이스(1002)는 메소드 이름이 "dropTrigger"이며, 인자로 트리거 이름(triggerName)과 캐스케이드(cascade) 옵션을 받아들여서, 해당 트리거 이름을 갖는 사용자 정의 공유 트리거를 삭제하며, 캐 스케이드(cascade) 옵션은 사용자 의도에 따라 사용자 정의 공유 트리거 및 해당 트리거를 참조하는 통합 연속 질의를 함께 삭제할 수 있도록 한다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 롬, 램, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 데이터 스트림에 대한 연속 질의 처리 시스템에서 데이터 스트림 및 데이터베이스의 저장 데이터에 대한 통합 연속 질의 처리 시에, 사용자 정의 공유 트리거를 이용하여 상기 데이터베이스의 저장 데이터에 대한 질의 결과를 사전에 산출하여 그 결과를 여러 통합 연속 질의에서 공유하도록 함으로써, 전체 통합 질의 처리 성능을 향상시킬 수 있는 효과가 있다.
즉, 본 발명은 풀 기반(pull-based) 접근 방식으로 데이터베이스의 저장 데이터를 처리하는 것이 아니라, 데이터베이스에 변경이 발생할 때마다 사용자 정의 공유 트리거의 트리거문을 실시간으로 수행하여 그 결과 집합을 미리 산출해서 여러 통합 연속 질의에서 공유하도록 함으로써, 데이터베이스의 저장 데이터에 대한 처리 소요 시간을 줄여 전체 질의 성능을 향상시킬 수 있는 효과가 있다.
Claims (15)
- 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템에 있어서,외부로부터 입력되는 데이터 스트림을 관리하기 위한 데이터 스트림 관리 수단;외부 애플리케이션으로부터 입력되는 통합 연속 질의를 관리하기 위한 통합 연속 질의 관리 수단;상기 애플리케이션으로부터 입력되는 사용자 정의 공유 트리거를 관리하고 외부의 연동 데이터베이스에 등록하기 위한 트리거 관리 수단;상기 연동 데이터베이스에 등록된 사용자 정의 공유 트리거의 수행 결과로부터 트리거 결과 집합을 구성하여 관리하기 위한 트리거 결과 관리 수단; 및상기 데이터 스트림 관리 수단으로부터 전달받은 데이터 스트림과 상기 트리거 결과 관리 수단으로부터 전달받은 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하기 위한 통합 연속 질의 실행 수단을 포함하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템.
- 제 1 항에 있어서,상기 통합 연속 질의 실행 수단은,상기 데이터 스트림 관리 수단으로부터 전달받은 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 연속 질의를 처리하되, 상기 연동 데이터베이스의 저장 데이터에 대해서는 상기 트리거 결과 관리 수단으로부터 전달받은 기 처리 완료된 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템.
- 제 1 항 또는 제 2 항에 있어서,상기 트리거 결과 관리 수단은,상기 연동 데이터베이스의 각 저장 데이터에 대한 변경이 발생할 때마다 자동으로 수행되는 상기 등록된 사용자 정의 공유 트리거의 수행 결과를 상기 연동 데이터베이스로부터 전달받아 트리거 결과 집합을 구성하여 관리하는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터에 대한 통합 연속 질의 처리 시스템.
- 제 3 항에 있어서,상기 트리거 결과 관리 수단은,사용자 정의 공유 트리거의 트리거문 수행 결과 집합, 총 사용자 수, 및 트리거 결과 집합의 참조/변경 시에 필요한 잠금에 관련된 정보를 트리거 결과 집합으로 관리하는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템.
- 제 4 항에 있어서,상기 트리거 결과 관리 수단은,사용자 정의 공유 트리거의 결과 집합에 대한 연산 수행 시 잠금 기법을 사용하되, 잠금을 획득한 후에 연산을 수행하고 연산이 완료된 후에는 잠금을 해제하는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템.
- 제 3 항에 있어서,상기 트리거 관리 수단은,사용자 정의 공유 트리거의 등록 및 삭제 기능을 제공하되,사용자 정의 공유 트리거의 등록 시에 사용자 정의 공유 트리거문의 구문 분석 및 정당성 검사를 수행하고, 사용자 정의 공유 트리거의 생성(등록)에 따라 상기 통합 연속 질의 실행 수단을 위한 환경을 구축하며,사용자 정의 공유 트리거의 삭제 시에 사용자 정의 공유 트리거를 사용하는 통합 연속 질의의 존재 여부를 검사하여 그 결과에 따라 삭제 기능을 수행하는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템.
- 제 6 항에 있어서,상기 트리거 관리 수단은,사용자 정의 공유 트리거의 삭제 요청 시 삭제하고자 하는 사용자 정의 공유 트리거를 참조하는 통합 연속 질의의 수가 0보다 작거나 같은 경우에는 바로 해당 사용자 정의 공유 트리거를 삭제하고, 0보다 큰 경우에는 사용자의 의도를 판단하기 위해 캐스케이드(cascade) 옵션의 값을 판단하여, 캐스케이드(cascade) 옵션이 트루(true)이면 해당하는 사용자 정의 공유 트리거 및 해당 사용자 정의 공유 트리거를 참조하는 통합 연속 질의를 모두 삭제하고, 캐스케이드(cascade) 옵션이 폴스(false)이면 해당하는 사용자 정의 공유 트리거 및 해당 사용자 정의 공유 트리거를 참조하는 통합 연속 질의를 삭제하지 않고 종료하는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템.
- 제 3 항에 있어서,상기 통합 연속 질의 관리 수단은,통합 연속 질의의 등록 및 삭제 기능을 제공하되,통합 연속 질의의 등록 시에 통합 연속 질의에 대한 구문 분석 및 정당성 검사를 수행하고, 해당 통합 연속 질의가 사용자 정의 공유 트리거를 참조함에 따라 해당 사용자 정의 공유 트리거의 총 사용자 수를 1 증대시키며,통합 연속 질의의 삭제 시에 해당 통합 연속 질의에서 참조하는 사용자 정의 공유 트리거의 총 사용자 수를 1 감소시키는 것을 특징으로 하는 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 시스템.
- 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법에 있어서,사용자 정의 공유 트리거를 등록하는 트리거 등록 단계;상기 등록한 사용자 정의 공유 트리거를 참조하는 통합 연속 질의를 등록하는 통합 연속 질의 등록 단계;상기 등록한 사용자 정의 공유 트리거의 수행 결과로 트리거 결과 집합을 구성하여 관리하는 트리거 결과 집합 구성 단계;데이터 스트림을 입력받는 데이터 스트림 입력 단계; 및상기 입력받은 데이터 스트림과 상기 구성한 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하는 통합 연속 질의 처리 단계를 포함하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
- 제 9 항에 있어서,상기 등록된 사용자 정의 공유 트리거의 삭제 요청에 따라 해당 사용자 정의 공유 트리거를 사용하는 통합 연속 질의의 존재 여부를 검사하여 그 결과에 따라 삭제 기능을 수행하는 트리거 삭제 단계를 더 포함하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
- 제 10 항에 있어서,상기 등록된 통합 연속 질의의 삭제 요청에 따라 해당 통합 연속 질의에서 참조하는 사용자 정의 공유 트리거의 존재 여부를 검사하여 그 결과에 따라 삭제 기능을 수행하는 통합 연속 질의 삭제 단계를 더 포함하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
- 제 9 항 내지 제 11 항 중 어느 한 항에 있어서,상기 통합 연속 질의 처리 단계는,상기 입력받은 데이터 스트림과 상기 저장 데이터에 대한 통합 연속 질의를 처리하되, 상기 저장 데이터에 대해서는 기 처리 완료된 상기 트리거 결과 집합 구성 단계의 트리거 결과 집합을 참조하여 통합 연속 질의를 처리하는 것을 특징으로 하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
- 제 12 항에 있어서,상기 트리거 결과 집합 구성 단계는,상기 각 저장 데이터에 대한 변경이 발생할 때마다 자동으로 수행되는 상기 등록한 사용자 정의 공유 트리거의 수행 결과로 트리거 결과 집합을 구성하여 관리하는 것을 특징으로 하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
- 제 13 항에 있어서,상기 트리거 등록 단계는,사용자 정의 공유 트리거문을 구문 분석하는 구문 분석 단계;상기 구문 분석한 사용자 정의 공유 트리거문에 대한 정당성을 확인하는 정당성 검사 단계;상기 정당성을 검사한 사용자 정의 공유 트리거를 연동 데이터베이스에 등록하는 등록 단계;상기 등록한 사용자 정의 공유 트리거로부터 추출되어 수행된 결과로 초기 트리거 결과 집합을 구성하는 초기 트리거 결과 집합 구성 단계; 및해당 사용자 정의 공유 트리거와 관련된 메타데이터를 저장하는 메타데이터 저장 단계를 포함하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
- 제 13 항에 있어서,상기 통합 연속 질의 등록 단계는,통합 연속 질의문을 구문 분석하는 구문 분석 단계;상기 구문 분석한 통합 연속 질의에 대한 정당성을 확인하는 정당성 검사 단계;상기 정당성을 확인한 통합 연속 질의가 사용자 정의 공유 트리거를 참조하는지 확인하는 트리거 참조 확인 단계;상기 확인한 통합 연속 질의가 참조하는 사용자 정의 공유 트리거의 총 사용자 수를 증가시키는 트리거 연관 단계; 및해당 통합 연속 질의와 관련된 메타데이터를 저장하는 메타데이터 저장 단계를 포함하는 통합 연속 질의 처리 시스템에서의 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장 데이터의 통합 연속 질의 처리 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060078905A KR100778314B1 (ko) | 2006-08-21 | 2006-08-21 | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 |
US11/838,599 US7860884B2 (en) | 2006-08-21 | 2007-08-14 | System and method for processing continuous integrated queries on both data stream and stored data using user-defined shared trigger |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060078905A KR100778314B1 (ko) | 2006-08-21 | 2006-08-21 | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100778314B1 true KR100778314B1 (ko) | 2007-11-22 |
Family
ID=39080398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060078905A KR100778314B1 (ko) | 2006-08-21 | 2006-08-21 | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7860884B2 (ko) |
KR (1) | KR100778314B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101439346B1 (ko) | 2012-11-29 | 2014-09-11 | 주식회사 알티베이스 | 외부데이터베이스 내의 테이블을 외부참조 객체로 참조하는 이벤트처리장치 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120283A1 (en) * | 2006-11-17 | 2008-05-22 | Oracle International Corporation | Processing XML data stream(s) using continuous queries in a data stream management system |
US7979420B2 (en) * | 2007-10-16 | 2011-07-12 | Oracle International Corporation | Handling silent relations in a data stream management system |
US8296316B2 (en) * | 2007-10-17 | 2012-10-23 | Oracle International Corporation | Dynamically sharing a subtree of operators in a data stream management system operating on existing queries |
US7996388B2 (en) * | 2007-10-17 | 2011-08-09 | Oracle International Corporation | Adding new continuous queries to a data stream management system operating on existing queries |
US8073826B2 (en) | 2007-10-18 | 2011-12-06 | Oracle International Corporation | Support for user defined functions in a data stream management system |
US7739265B2 (en) * | 2007-10-18 | 2010-06-15 | Oracle International Corporation | Deleting a continuous query from a data stream management system continuing to operate on other queries |
US7991766B2 (en) * | 2007-10-20 | 2011-08-02 | Oracle International Corporation | Support for user defined aggregations in a data stream management system |
US8521867B2 (en) * | 2007-10-20 | 2013-08-27 | Oracle International Corporation | Support for incrementally processing user defined aggregations in a data stream management system |
US9135583B2 (en) * | 2008-07-16 | 2015-09-15 | Business Objects S.A. | Systems and methods to create continuous queries associated with push-type and pull-type data |
US8676841B2 (en) | 2008-08-29 | 2014-03-18 | Oracle International Corporation | Detection of recurring non-occurrences of events using pattern matching |
US8935293B2 (en) * | 2009-03-02 | 2015-01-13 | Oracle International Corporation | Framework for dynamically generating tuple and page classes |
US8352517B2 (en) * | 2009-03-02 | 2013-01-08 | Oracle International Corporation | Infrastructure for spilling pages to a persistent store |
US8145859B2 (en) | 2009-03-02 | 2012-03-27 | Oracle International Corporation | Method and system for spilling from a queue to a persistent store |
US8725707B2 (en) * | 2009-03-26 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Data continuous SQL process |
US8321450B2 (en) * | 2009-07-21 | 2012-11-27 | Oracle International Corporation | Standardized database connectivity support for an event processing server in an embedded context |
US8387076B2 (en) * | 2009-07-21 | 2013-02-26 | Oracle International Corporation | Standardized database connectivity support for an event processing server |
US8527458B2 (en) * | 2009-08-03 | 2013-09-03 | Oracle International Corporation | Logging framework for a data stream processing server |
US8386466B2 (en) * | 2009-08-03 | 2013-02-26 | Oracle International Corporation | Log visualization tool for a data stream processing server |
US9305057B2 (en) * | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US9430494B2 (en) * | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US8959106B2 (en) | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
WO2012034069A1 (en) * | 2010-09-10 | 2012-03-15 | Veveo, Inc. | Method of and system for conducting personalized federated search and presentation of results therefrom |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US8620945B2 (en) * | 2010-09-23 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Query rewind mechanism for processing a continuous stream of data |
US8661014B2 (en) * | 2010-09-23 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Stream processing by a query engine |
CN101957857B (zh) * | 2010-09-30 | 2013-03-20 | 华为终端有限公司 | 一种信息主动推送方法及服务器 |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9547693B1 (en) * | 2011-06-23 | 2017-01-17 | Palantir Technologies Inc. | Periodic database search manager for multiple data sources |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
US8880493B2 (en) | 2011-09-28 | 2014-11-04 | Hewlett-Packard Development Company, L.P. | Multi-streams analytics |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US9262479B2 (en) | 2012-09-28 | 2016-02-16 | Oracle International Corporation | Join operations for continuous queries over archived views |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9098587B2 (en) | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US9244978B2 (en) | 2014-06-11 | 2016-01-26 | Oracle International Corporation | Custom partitioning of a data stream |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
WO2016053322A1 (en) | 2014-09-30 | 2016-04-07 | Hewlett Packard Enterprise Development Lp | Database and data stream query |
US10795876B2 (en) | 2014-09-30 | 2020-10-06 | Hewlett Packard Enterprise Development Lp | Processing query of database and data stream |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006505792A (ja) | 2002-11-07 | 2006-02-16 | スナップ − オン テクノロジーズ,インコーポレイテッド | データトリガ値に対する車両データストリーム中断 |
KR20070060992A (ko) * | 2005-12-08 | 2007-06-13 | 한국전자통신연구원 | 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495600A (en) * | 1992-06-03 | 1996-02-27 | Xerox Corporation | Conversion of queries to monotonically increasing incremental form to continuously query a append only database |
US6338055B1 (en) * | 1998-12-07 | 2002-01-08 | Vitria Technology, Inc. | Real-time query optimization in a decision support system |
US6381594B1 (en) * | 1999-07-12 | 2002-04-30 | Yahoo! Inc. | System and method for personalized information filtering and alert generation |
US20030206100A1 (en) * | 2002-05-04 | 2003-11-06 | Lawrence Richman | Method and protocol for real time security system |
US7599913B2 (en) * | 2003-03-04 | 2009-10-06 | Avaya, Inc. | Time series monitoring system |
US7392239B2 (en) * | 2003-04-14 | 2008-06-24 | International Business Machines Corporation | System and method for querying XML streams |
US7127449B2 (en) | 2003-08-21 | 2006-10-24 | International Business Machines Corporation | Data query system load optimization |
CA2447458A1 (en) * | 2003-10-29 | 2005-04-29 | Ibm Canada Limited - Ibm Canada Limitee | System and method for managing query access to information |
US20050198006A1 (en) * | 2004-02-24 | 2005-09-08 | Dna13 Inc. | System and method for real-time media searching and alerting |
US8543579B2 (en) * | 2005-06-17 | 2013-09-24 | International Business Machines Corporation | Range query methods and apparatus |
US7383253B1 (en) * | 2004-12-17 | 2008-06-03 | Coral 8, Inc. | Publish and subscribe capable continuous query processor for real-time data streams |
-
2006
- 2006-08-21 KR KR1020060078905A patent/KR100778314B1/ko not_active IP Right Cessation
-
2007
- 2007-08-14 US US11/838,599 patent/US7860884B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006505792A (ja) | 2002-11-07 | 2006-02-16 | スナップ − オン テクノロジーズ,インコーポレイテッド | データトリガ値に対する車両データストリーム中断 |
KR20070060992A (ko) * | 2005-12-08 | 2007-06-13 | 한국전자통신연구원 | 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101439346B1 (ko) | 2012-11-29 | 2014-09-11 | 주식회사 알티베이스 | 외부데이터베이스 내의 테이블을 외부참조 객체로 참조하는 이벤트처리장치 |
Also Published As
Publication number | Publication date |
---|---|
US7860884B2 (en) | 2010-12-28 |
US20080046401A1 (en) | 2008-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100778314B1 (ko) | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 | |
US20070136254A1 (en) | System and method for processing integrated queries against input data stream and data stored in database using trigger | |
US20040098384A1 (en) | Method of processing query about XML data using APEX | |
US20050289138A1 (en) | Aggregate indexing of structured and unstructured marked-up content | |
US20070016604A1 (en) | Document level indexes for efficient processing in multiple tiers of a computer system | |
US20080133465A1 (en) | Continuous query processing apparatus and method using operation sharable among multiple queries on xml data stream | |
US8913264B2 (en) | Method and system for storing and retrieving data | |
Su et al. | Smartsupply: smart contract based validation for supply chain blockchain | |
EP2975535A1 (en) | Checking freshness of data for a data integration system, DIS | |
US20050216498A1 (en) | Data storage system interface | |
Batini et al. | Data quality issues in linked open data | |
US20150205880A1 (en) | Integrating linked data with relational data | |
CN102402522A (zh) | 数据查询系统及方法 | |
US20060161525A1 (en) | Method and system for supporting structured aggregation operations on semi-structured data | |
KR100685747B1 (ko) | Xml 기반 센서 데이터 스트림 처리 시스템 및 방법 | |
Panigati et al. | Data streams and data stream management systems and languages | |
KR100789771B1 (ko) | 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 | |
KR20060067095A (ko) | 관계형 데이터베이스를 기반으로 하는 XML데이터베이스에서 XQuery 트리거를 지원하는 방법 및시스템 | |
KR100931310B1 (ko) | 사용자 정의 공유 확장 트리거를 이용한 통합 연속 질의처리장치 및 그 방법 | |
Lausen | Relational databases in RDF: Keys and foreign keys | |
Alrammal et al. | Path tree: document synopsis for xpath query selectivity estimation | |
Keskisärkkä | Towards semantically enabled complex event processing | |
KR100921021B1 (ko) | Xml 데이터 스트림에 대한 다중 질의 간 연산 공유를이용한 연속 질의 처리 장치 및 그 방법 | |
KR100670208B1 (ko) | Xml 형태로 표현된 스트리밍 데이터 처리를 위한xml 질의어 기반 연속 질의 언어 처리 시스템 및 방법 | |
Al-Ghezi | Universal Workload-based Graph Partitioning and Storage Adaption for Distributed RDF Stores |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
G170 | Re-publication after modification of scope of protection [patent] | ||
FPAY | Annual fee payment |
Payment date: 20121031 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131024 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |