CHƯƠNG 1 : NGHIÊN CỨU TỔNG QUAN 1.1 Tổng quan hệ thống tập luật ECA (Event Condition Action) 1.1 Định nghĩa của ECA Định nghĩa tổng quát ECA được phát biểu như sau: ON event IF condition DO action Khi sự kiện được phát hiện [5], nếu điều kiện được thỏa thì thực thi hành động. Sự kiện (E): là sự kiện nguyên thủy hoặc phức hợp. Điều kiện (C): một biểu thức đúng sai hoặc là một truy vấn SQL trên cơ sở dữ liệu. Hành động (A): là một thao tác trên DBMS hoặc sự thực thi của chương trình ứng dụng tùy ý.
Trong một số đề nghị, sự kiện hoặc điều kiện có thể hoặc là thiếu hoặc là ẩn đi. Nếu không có sự kiện được phát hiện khi đó luật kết quả là một luật gồm điều kiện – hành động (C–A) hoặc một luật tự tạo. Nếu không có điều kiện khi đó luật kết quả là một luật bao gồm: Sự kiện – Hành động (E– A). Một luật có thể kích hoạt nhiều luật khác và hành vi của luật dựa vào cả những giao dịch DBMS và những tương tác của luật.
Cách kiểm tra mối liên hệ của luật và trạng thái của DBMS có thể phân tích những thuộc tính cơ bản của luật như: kết thúc, hoặc những kết hợp, v.v… Tập luật ECA chẳng những được sử dụng trong hệ thống ADBMS mà còn trong hệ thống chủ động khác như là: hệ thống quản lý mạng, hệ thống quản lý quy trình công việc v.v…Trong khuôn khổ luận văn này ta chỉ xem xét các quy luật trong hệ thống ADBMS. Một ADBMS [1] tích hợp luật xử lý dựa trên sự kiện trong chức năng của DBMS. Những luật chủ động phổ biến nhất được gọi là tập luật Event-Condition-Action (ECA) hoặc (Trigger), mà xác định một hành động sẽ được thực thi với sự xuất hiện của một hoặc nhiều sự kiện khi điều kiện được thỏa. Tổng quát, luật ECA được định nghĩa như sau: ON event IF condition THEN action.
6 Bộ xử lý luật Bộ phát hiện sự kiện EventLog Hành động trên ứng dụng File Điều kiện dựa trên trạng thái dứng dụng Hình 1.1: Mô hình hệ thống luật ECA [1] Những sự kiện tương ứng với thao tác cập nhật trên DBMS được thực hiện bởi những giao dịch của người sử dụng và những sự kiện khác (như là thao tác thực thi, thời gian) là được thông báo cho bộ phát hiện sự kiện. Nếu luật khởi động (fires), phần C-A có thể được thực hiện như những giao dịch DBMS, nếu C và A chứa những thao tác DBMS. Những mô hình giao dịch khác nhau [6] để thực thi luật được đã được đề xuất, để đáp ứng cho sự ghép nối và đồng bộ những giao dịch được gọi bởi người sử dụng và tập luật được phát hiện bởi hệ thống. Ví dụ: Việc kích hoạt giao dịch và giao dịch được kích họat có thể kết hợp trực tiếp (immediate), được hoãn (deferred), và riêng biệt (separate).
Trong chế độ phối hợp trực tiếp (immediate) [7] luật được khởi tạo, được thực thi trực tiếp như giao dịch phụ của giao dịch mức cao nhất của việc kích hoạt giao dịch. Nếu nhiều luật được khởi tạo và có sắp xếp thứ tự lúc đó tất cả tập luật được thực thi theo thứ tự đó, ngược lại tùy ý. Trong chế độ bị trì hoãn (deferred) [8] dự kiến sẽ được thực hiện vào cuối giao dịch nhưng trước thời điểm commit (những ràng buộc toàn vẹn thông thường được thực thi trong chế độ trì hoãn). 7 Trong chế độ kết hợp tách rời (separate) là được thực thi hoàn toàn riêng biệt với giao dịch cấp cao.
Một chu kỳ thực thi mô tả việc thực thi của một loạt các thao tác mà thuộc về một giao dịch hoặc một phần hành động của một luật.2: Chu kỳ thực thi trong luật ECA [1] Immediate rules: Tập luật được [9] [10] kích hoạt ngay lập tức (immediate rules) được thực thi theo cách sau “lệnh thực thi đầu tiên theo chiều sâu”. Trình tự của các thao tác được thực thi là hướng lên đến việc kích hoạt sự kiện mà xác định chu kỳ khởi tạo sự thực thi. Khi đó, mỗi sự thực thi của quy luật xảy ra sau sẽ định nghĩa một chu kỳ thực thi thi mới lồng nhau. Deferred rules: là được thực thi sau [11] giao dịch mà trong đó xuất hiện việc kích hoạt sự kiện.
và trước khi “commit” hoặc “validate” (“commit”, “validate” là những điểm giao dịch). Những thao tác giao dịch tạo nên chu kỳ thực thi khởi tạo và khi đó deferred rules là được thực thi trong “lệnh thực thi đầu tiên theo chiều rộng”. Tương tự, trong những chu kỳ được thực thi liên tiếp.2 Hệ thống phát hiện sự kiện tổng quát và xử lý chúng dựa trên tập luật ECA (Event Condition Action) Các quy tắc phản ứng và công [3] nghệ xử lý sự kiện đã được nghiên cứu một cách toàn diện trong những thập kỷ qua. Các phương pháp tiếp cận dựa trên quy tắc khác nhau cho phản ứng xử lý sự kiện đã được phát triển, phần lớn đã tiến hành riêng biệt và đã dẫn đến các hình thức và ngôn ngữ khác nhau: Các hệ thống quy tắc sản xuất đã được nghiên cứu toàn diện trong các lĩnh vực hệ chuyên gia từ những năm 1980 và được áp dụng thương mại thành công.
Họ thường triển khai ngữ nghĩa hoạt động chuỗi chuyển tiếp cho các quy tắc hành động điều kiện trong đó các điều kiện thay đổi kích hoạt các hành động cập nhật. Các cơ sở dữ liệu [12] đang hoạt động trong nỗ lực kết hợp các kỹ thuật từ các hệ thống chuyên gia và cơ sở dữ liệu để hỗ trợ tự động kích hoạt các quy tắc toàn cầu để đáp ứng các sự kiện và để giám sát các thay đổi trạng thái trong hệ thống cơ sở dữ liệu đã khám phá sâu và đã phát triển mô hình Sự kiện-Điều kiện-Hành động (ECA) và đại số sự kiện để tính toán các sự kiện phức tạp và kích hoạt các phản ứng theo các quy tắc ECA toàn cầu. Trong logic sự kiện / hành động [4], có nguồn gốc từ lĩnh vực kiến thức đại diện và lập trình logic, trọng tâm là chính thức hóa các tiên đề về hành động / sự kiện và về các suy luận có thể được đưa ra từ các sự kiện / hành động đã xảy ra hoặc đã lên kế hoạch. Họ định nghĩa một mô hình, thường là lý thuyết, ngữ nghĩa.
Ngôn ngữ xử lý sự kiện dựa trên quy tắc đang hướng tới sự kết hợp của phức hợp xử lý sự kiện (CEP) để phát hiện sự kiện thời gian thực và các quy tắc phản ứng cho đại diện tuyên bố và phản ứng thông minh. Họ thường sử dụng sự kiện hệ thống thông báo và nhắn tin, chẳng hạn như Enterprise Service Bus (ESB), để tạo điều kiện cho việc truyền thông các sự kiện trong một môi trường phân tán. Thông thường, sự quan tâm ở đây là trong một chuỗi sự kiện phụ thuộc vào ngữ cảnh, sau đó, ví dụ: giao thức giao tiếp hoặc quy trình phối hợp công việc, thay vì trong một sự kiện đơn lẻ sự xuất hiện gây ra phản ứng tức thì. 9 Ngôn ngữ đánh dấu quy tắc, chẳng hạn như RuleML gần chuẩn, là phương tiện cho sử dụng các quy tắc trên Web và trong các hệ thống phân tán khác.
Họ cho phép xuất bản, triển khai, thực thi và giao tiếp các quy tắc trong mạng. Họ cũng có thể chơi vai trò của một ngôn ngữ trong việc trao đổi các quy tắc giữa các hệ thống khác nhau và công cụ. Phát hiện sự kiện là bước đầu tiên và là bước quan trọng nhất trong việc thực thi tập luật ECA trong những hệ thống ADBMS [13]. Tập luật được dùng trong hệ thống ADDBMS để quan sát những tình huống quan tâm và kích hoạt một phản ứng kịp thời khi xuất hiện tình huống quan tâm đó.
Tập luật có thể thực thi những ràng buộc toàn vẹn, tính toán dữ liệu nhận được,kiểm soát sự truy cập dữ liệu, thu thập số liệu thống kê và các thao tác khác. Dạng tổng quát nhất của luật được gọi là tập luật ECA. Một luật ECA có ba thành phần cơ bản: sự kiện, điều kiện, hành động. Khi một “sự kiện” xuất hiện, so sánh với “điều kiện”, và nếu điều kiện được thỏa, sẽ thực thi “hành động”.
Các phương pháp tiếp cận quy tắc phản ứng và hệ thống xử lý sự kiện của những thập kỷ trước: - Hệ thống Quy tắc Sản xuất và Chương trình Quy tắc Cập nhật: Các quy tắc sản xuất đã trở nên rất phổ biến như một kỹ thuật được sử dụng rộng rãi để thực hiện các hệ thống chuyên gia lớn trong những năm 1980 cho các lĩnh vực đa dạng như khắc phục sự cố trong mạng viễn thông hoặc hệ thống cấu hình máy tính. Sản xuất cổ điển hệ thống quy tắc và hầu hết các triển khai cơ sở dữ liệu của các quy tắc sản xuất thường có ngữ nghĩa hoạt động hoặc thực thi được xác định cho chúng. Có nhiều triển khai chuỗi chuyển tiếp và nhiều công cụ lập luận chuyển tiếp nổi tiếng đối với các quy tắc sản xuất. Tóm lại, điều này thuật toán giữ cấu trúc dẫn xuất trong bộ nhớ và truyền đi những thay đổi trong thực tế và cơ sở quy tắc.
Thuật toán này có thể rất hiệu quả, ví dụ: nếu bạn chỉ muốn tìm hiểu sự kiện mới nào là sự thật hoặc khi bạn có một số dữ kiện ban đầu nhỏ và khi nào ở đó có xu hướng có nhiều quy tắc khác nhau cho phép bạn rút ra cùng một kết luận. Ở đó là một số thuật toán kế thừa 10 được tối ưu hóa dựa trên Rete chẳng hạn như TREAT và LEAPS là hai ví dụ và các biến thể trên Rete được triển khai trong nhiều động cơ quy tắc sản xuất hiện tại. - Quy tắc ECA và quy tắc dẫn xuất [14]: Mặc dù các quy tắc sản xuất phản ứng với những thay đổi trạng thái điều kiện và không có chính thức hóa các sự kiện, chẳng hạn như trong các quy tắc ECA, các phần mở rộng gần đây của quy tắc sản xuất các hệ thống có mô hình đối tượng và cập nhật thông tin thực tế bên ngoài, chẳng hạn như TIBCO’s Business Sự kiện và Drools, được mở rộng thành xử lý sự kiện phức tạp (CEP). Các loại và lớp sự kiện rõ ràng được xác định trong khai báo quy tắc sản xuất.
Mới các cá thể dữ liệu sự kiện được thêm động vào cơ sở dữ liệu / bộ nhớ làm việc. Các trường hợp khai báo sự kiện được lọc và tham gia vào quy tắc sản xuất điều kiện thông qua đối sánh mẫu đã nhập và nếu chúng vượt qua điều kiện, thì phần hành động của quy tắc được kích hoạt.