Máy chủ StreamInsight gồm 2 phần chính: Bộ chuyển đổi (Adapters) và phần phân tích xử lý sự kiện [9] được mô tả trong hình 3.1.
Bộ chuyển đổi: Là bộ phận dịch và cung cấp các chiều sự kiện đến và đi từ máy chủ StreamInsight. Với bộ SDK chuyển đổi linh hoạt, StreamInsight cho phép bạn xây dựng Adapters đầu vào và tính toán sự kiện cho các thiết bị đầu ra trên các miền cụ thể. Adapters được thực hiện trên ngôn ngữ lập trình C # và được lưu trữ như các thư viện. Các lớp của Adapters được tạo ra như các mẫu trong quá trình thiết kế, đăng ký trong các máy chủ StreamInsight và thực thi trong máy chủ theo thời gian.
Đầu vào của Adapters là dữ liệu đến từ các dòng sự kiện bên ngoài như cơ sở dữ liệu, các tập tin, máy cấp nguồn dữ liệu, cổng mạng, cảm biến. Các Adapters đọc các sự kiện vào một kiểu định dạng và được chuyển đổi, xử lý bởi máy chủ StreamInsight.
Đầu ra của Adapters nhận các dữ liệu đã được xử lý bởi các máy chủ StreamInsight, chuyển đổi các dữ liệu này vào một định dạng phù hợp với các thiết bị đầu ra và chuyển các dữ liệu đến thiết bị đó. Thiết kế và tạo ra một Adapters đầu ra tương tự như thiết kế và tạo ra một Adapters đầu vào. Adapters đầu ra thường được thiết kế cho một số sự kiện cụ thể, trong khi Adapters không định kiểu được cung cấp trong thời gian loại sự kiện xuất hiện sau khi truy vấn được khởi tạo.
Phân tích và xử lý sự kiện: Với StreamInsight, xử lý sự kiện được ghép vào các truy vấn theo nguyên lý truy vấn mà bạn xác định. Các truy vấn này giống một nguồn cấp dữ liệu đầu vào vô hạn theo thời gian thực, thực hiện một số tính toán trên các dữ liệu và đưa ra kết quả một cách thích hợp.
Có hai loại truy vấn được sử dụng trong StreamInsight là:
(1) Truy vấn mẫu: Một mẫu truy vấn là đơn vị cơ bản của thành phần truy vấn. Đó là cấu trúc xác định nguyên lý kinh doanh, để máy chủ StreamInsight tiếp tục phân tích và xử lý các sự kiện nhận được từ các bộ chuyển đổi đầu vào và tạo ra dòng sự kiện chuyển đến các bộ chuyển đổi đầu ra. Ví dụ, bạn muốn theo dõi các sự kiện tiêu thụ điện năng trong một khoảng thời gian nhất định, bạn phải cung cấp một ngưỡng an toàn cụ thể, nếu vượt quá ngưỡng này hệ thống sẽ báo động.
Các mẫu truy vấn có thể được viết để thực hiện các đơn vị công việc cụ thể và sau đó đưa vào các mẫu truy vấn phức tạp hơn. Các mẫu truy vấn được viết bằng LINQ kết hợp với ngôn ngữ C #. LINQ là một ngôn ngữ nền tảng cho phép bạn thể hiện tính toán khai báo trên kiểu dữ liệu và hoàn toàn được tích hợp vào các ngôn ngữ máy chủ. Điều này sẽ mang lại khả năng để kết hợp xử lý, khai báo các sự kiện trong cùng một nền tảng phát triển.
Các chức năng chính máy chủ StreamInsight cung cấp để viết và phân tích các truy vấn :
Tính toán để bổ sung các thuộc tính sự kiện: Trường hợp sử dụng như đơn vị chuyển đổi, nó cần phải thực hiện tính toán ở đầu các sự kiện mà bạn nhận được. Sau đó, chiếu trong các máy chủ StreamInsight, bạn có thể thêm các trường bổ sung và thực hiện các tính toán trên các trường trong sự kiện đầu vào.
Lọc các sự kiện: Trong trường hợp sử dụng như một hệ thống cảnh báo,
cần kiểm tra xem một thuộc tính nhất định đã vượt quá ngưỡng hoạt động cho phép của thiết bị đang theo dõi hay chưa. Không phải tất cả các sự kiện đều đáp ứng các đặc điểm nhất định với các trường hợp sử dụng liên quan. Sự kiện không đáp ứng những đặc điểm này cần được xử lý và có thể được loại bỏ. Hoạt động của bộ lọc sẽ giúp ta quyết định chọn sự kiện hoặc loại bỏ sự kiện không đáp ứng.
Nhóm các sự kiện: Nếu tất cả các sự kiện được cung cấp thông qua một
dòng sự kiện duy nhất, ta có thể phân vùng các sự kiện dựa trên vị trí cảm biến hoặc chỉ mục cảm biến. Các máy chủ StreamInsight cung cấp chức năng nhóm cho phép bạn phân vùng dựa trên các thuộc tính sự kiện như vị trí hoặc chỉ mục và sau đó áp dụng các hoạt động riêng cho các nhóm hoặc các đoạn truy vấn hoàn chỉnh cho mỗi nhóm một cách riêng biệt.
Cửa sổ thời gian: Nhóm sự kiện theo thời gian là một khái niệm mạnh
cho phép theo dõi nhiều kịch bản cùng thời điểm “t” nào đó.
Tập hợp: Khi bạn không quan tâm mỗi sự kiện đơn lẻ, bạn có thể nhìn
vào giá trị tổng hợp như trung bình, số tiền hoặc số lượng, … Các máy chủ StreamInsight được xây dựng để cung cấp cả chức năng thống kê như tổng, count, min, max và trung bình, … hoạt động trên cửa sổ thời gian thực.
Xác định các đối tượng trong nhóm N: Đây là một loại hoạt động đặc
tiêu chí cụ thể trong một dòng sự kiện. Chúng cho phép bạn kiểm tra những thực thể dựa trên một trật tự mà bạn thiết lập trên dòng sự kiện.
Kết hợp sự kiện từ các dòng khác nhau: Kết hợp các sự kiện từ các dòng
khác để lấy thông tin tổng hợp chung về các sự kiện. Máy chủ StreamInsight cung cấp chức năng thực hiện hai nhiệm vụ. Thứ nhất, đồng nhất CTI các sự kiện từ hai nguồn nếu thời gian của chúng chồng chéo lên nhau và thứ hai, nó thực hiện ghép các thuộc tính định danh theo quy định. Kết quả là dữ liệu tổng hợp của thuộc tính có cả trong dòng sự kiện đầu tiên và sự kiện thứ hai.
Kết hợp các sự kiện từ các đoạn khác nhau: Bạn muốn truy vấn cùng loại dữ liệu được cung cấp từ nhiều nguồn sự kiện. Các hoạt động kết hợp được cung cấp bởi các máy chủ StreamInsight cho phép bạn kết hợp nhiều dòng sự kiện vào thành một dòng đầu ra duy nhất.
Mở rộng chức năng: Việc xây dựng chức năng truy vấn của máy chủ
StreamInsight có thể không đủ trong một số trường hợp. Để thêm các chức năng trên miền cụ thể, người phát triển hệ thống có thể định nghĩa thêm các chức năng trên nền tảng .NET đặt trong máy chủ StreamInsight. Với các chức năng người dùng định nghĩa, bạn có thể xác định và thực hiện các kết hợp tùy chỉnh hoặc điều hành truy vấn.
(2) Truy vấn ràng buộc: Ràng buộc một mẫu truy vấn với đầu vào cụ thể
và Adapters đầu ra đăng ký một truy vấn mẫu trong các máy chủ StreamInsight. Truy vấn ràng buộc có thể được bắt đầu, dừng lại và được quản lý trong các máy chủ StreamInsight. Một khi dữ liệu đã được đưa vào máy chủ StreamInsight thông qua Adapters đầu vào có thể tiếp tục thực hiện tính toán trên các dữ liệu.
Hình 3.6: Truy vấn ràng buộc Nguồn: Microsoft StreamInsight.
Nói cách khác, các sự kiện đơn đến máy chủ được xử lý bởi các truy vấn thường trực, xuất ra các sự kiện đầu ra đáp ứng với các sự kiện đầu vào này. Hình 3.6 minh họa trên cho thấy các truy vấn StreamInsight và Adapters tại thời gian chạy. Các máy chủ StreamInsight tiếp nhận và xử lý sự kiện từ nguồn AT1, AT2 khi các Adapters đầu vào bị ràng buộc vào một dạng truy vấn. Các dữ liệu xử lý sau đó được đẩy đến các Adapters đầu ra và chuyển đến thiết bị hiển thị.