Share via


Observable 및 열거 가능 이벤트 원본 및 이벤트 싱크 사용(StreamInsight)

StreamInsight는 IObservable 및 IEnumerable 인터페이스를 구현하는 이벤트 원본 및 이벤트 싱크를 지원합니다. 이러한 인터페이스는 응용 프로그램 구성 요소 간의 데이터 끌어오기(IEnumerable) 및 밀어넣기(IObservable)를 위한 .NET Framework의 주요 범용 계약입니다.

IEnumerable 및 IEnumerator 인터페이스가 .NET 개발자에게 이미 익숙한 반면에 IObservable 및 IObserver 인터페이스는 .NET Framework 4에서 최근에 도입되었습니다. IObservable 개발 모델은 Observable/Observer 디자인 패턴을 기반으로 합니다. 이 디자인 패턴에서는 다음과 같습니다.

  • observer는 다른 개체의 상태가 변경될 때 알림을 받게 할 임의의 개체입니다.

  • observable은 다른 개체가 관심 항목을 등록할 수 있는 밀어넣기 기반 시퀀스입니다.

StreamInsight 응용 프로그램에서 Observable은 이벤트 원본입니다. 쿼리는 이 원본의 Observer 역할을 하며 해당 결과를 역시 쿼리의 Observer인 이벤트 싱크에 Observable로 제공합니다. 자세한 내용은 MSDN에서 Observer 디자인 패턴 살펴보기를 참조하십시오.

응용 프로그램 개발자는 이 개발 모델을 사용하기 위해 최소한의 작업만 수행하면 됩니다.

  1. IObservable 또는 IEnumerable 인터페이스를 이벤트 생성자로 구현하는 클래스를 제공합니다.

  2. IObserver 인터페이스를 구현하는 클래스나 IEnumerable을 이벤트 소비자로 소비하는 클래스를 제공합니다.

  3. 이러한 개체를 쿼리에 바인딩합니다.

이 개발 모델에서는 이벤트의 임시 속성을 정의하기 위한 주요 학습 또는 프로그래밍 투자가 필요하지 않고 핵심 어댑터 모델의 기본 상태 전환을 알아야 할 필요도 없습니다. 여기에는 이 개발 모델이 적합한 몇 가지 시나리오가 나와 있습니다.

  1. 기록 쿼리. 재무 분석가 Alice는 대형 데이터 집합에 대한 임시 쿼리를 실행하여 기록 시장 데이터에서 패턴을 식별합니다. 이 경우 입력 스트림에는 한정된 끝이 있습니다. 즉, 마지막 데이터 요소가 처리된 후 쿼리는 끝나야 합니다.

  2. 라이브 원본에 대한 임시 쿼리. 서버 관리자 Bob은 서비스 거부 공격을 의심하고 있습니다. Bob은 모니터링하는 중인 네트워크 데이터의 스트림에 대한 일련의 반복된 임시 쿼리를 통해 공격의 소스를 식별합니다.

  3. 사용자 지정 응용 프로그램에 포함됨. 사용자 인터페이스 개발자 Charlie는 Windows 이벤트에 대한 임시 쿼리를 사용하여 마우스 제스처의 패턴을 설계 및 분석합니다. StreamInsight는 사용자 지정 응용 프로그램에 포함됩니다.

이러한 각 경우에 클라이언트 응용 프로그램이 결과를 수신하는 데 관심이 있는 경우에만 쿼리가 존재합니다.

섹션 내용

이 섹션에서는 다음 항목을 다룹니다.

Observable 및 열거 가능 원본과 싱크에 대한 프로그래밍 고려 사항

Observable 및 열거 가능 원본과 싱크는 포함된 솔루션에서만 지원됨

Observable 또는 열거 가능 이벤트 원본과 싱크는 StreamInsight 서버가 응용 프로그램에 포함되어 있는 호스팅된 배포 모델에서만 지원됩니다. 독립 실행형 또는 원격 서버 배포 모델에서는 Observable 또는 열거 가능 이벤트 원본과 싱크를 사용할 수 없습니다. 배포 모델에 대한 자세한 내용은 StreamInsight 서버 배포 모델을 참조하십시오.

API 기능이 StreamInsight의 임시 요구 사항을 지원함

API는 CTI 이벤트를 큐에 넣는 것을 비롯한 StreamInsight의 임시 모델에 대한 요구 사항을 완전하게 충족합니다.

  • Observable 및 열거 가능 입력에서 다음과 같습니다.

    • To[Point|Interval|Edge]Stream 메서드는 입력 데이터를 StreamInsight 이벤트로 래핑하고 원본 데이터의 임시 특성을 지정합니다.

    • AdvanceTimeSettings 클래스의 도우미 메서드와 속성은 개발자가 CTI 이벤트를 큐에 넣는 빈도를 지정하여 입력 데이터의 활성화를 결정하는 데 도움을 줍니다.

  • Observable 및 열거 가능 출력에서 개발자는 To[Point|Interval|Edge]Observable 및 To[Point|Interval|Edge]Enumerable 메서드를 통해 시점, 간격 또는 가장자리 이벤트 형태로 시간 정보를 통합할지 여부를 선택할 수 있습니다.

Observable 지원은 Microsoft .NET Framework 4에 의존함

IObservable 또는 IObserver 인터페이스를 구현하는 이벤트 원본 또는 싱크를 응용 프로그램에서 사용할 경우 다음과 같습니다.

  • 응용 프로그램은 Microsoft.ComplexEventProcessing.Observable.dll 어셈블리를 참조해야 합니다.

  • 응용 프로그램은 .NET Framework 4(.NET Framework 4 Client Profile 아님)를 대상으로 해야 합니다.