Hướng dẫn về Drools: Công cụ quy tắc nhỏ giọt Archikiến trúc & ví dụ
Nước dãi là gì?
Nước dãi là Phần mềm quản lý quy tắc kinh doanh nguồn mở (BRMS) được viết bằng Java cung cấp cho người dùng nhiều tính năng khác nhau như Công cụ quy tắc nghiệp vụ, soạn thảo web, Ứng dụng quản lý quy tắc và hỗ trợ thời gian chạy cho các mô hình Ký hiệu và Mô hình quyết định. Nó sử dụng hệ thống triển khai tiên tiến của thuật toán khớp mẫu rete.
Drools được phát hành theo Giấy phép Apache 2.0 và nó tương thích với mọi JVM và cũng có sẵn trong Kho lưu trữ trung tâm Maven.
Công cụ Drools giúp bạn phân tách và suy luận về logic và dữ liệu được tìm thấy trong quy trình kinh doanh. Nó hỗ trợ công cụ quy tắc chảy nước dãi dựa trên suy luận chuỗi tiến và lùi.
Nước dãi được chia thành hai phần:
- Tác giả – Nó liên quan đến việc phát triển các tập tin quy tắc.
- Runtime – Nó liên quan đến việc tạo ra bộ nhớ làm việc và xử lý việc kích hoạt.
Quy tắc là gì?
Quy tắc là một phần kiến thức thường được thể hiện dưới dạng “Khi điều kiện cụ thể xảy ra thì thực hiện một số nhiệm vụ”.
Phần quan trọng nhất của một quy tắc là nó khi nào phần. Một lần khi nào một phần được thỏa mãn sau đó phần được kích hoạt.
Cú pháp:
When <Condition is true> Then <Take desired Action>
Phương pháp khớp mẫu
Phương pháp khớp mẫu giúp bạn so sánh các dữ kiện mới hoặc cũ với quy tắc sản xuất. Nó được hoàn thành bởi Công cụ suy luận.
Algorithms được sử dụng để So khớp mẫu là:
- Thuật toán Rete
- Thuật toán nhảy vọt
- Thuật toán tuyến tính
- Thuật toán xử lý
Tuy nhiên, thuật toán được Drools sử dụng nhiều nhất là Thuật toán Rete.
Thuật toán Rete
Thuật toán Rete là một thuật toán khớp mẫu hữu ích cho phép bạn triển khai các hệ thống quy tắc sản xuất. Nó giúp bạn hy sinh bộ nhớ để tăng tốc độ. Nó cũng làm giảm hoặc loại bỏ các loại dự phòng cụ thể với sự trợ giúp của tính năng chia sẻ nút. Nó lưu trữ các kết quả khớp một phần trong khi thực hiện các phép nối giữa các loại thực tế khác nhau.
Công cụ quy tắc nhỏ giọt
Công cụ quy tắc nhỏ giọt là một cách tiếp cận dựa trên quy tắc để triển khai hệ thống Expert trong phần mềm Drools. Công cụ Quy tắc cung cấp các hệ thống Chuyên gia là các hệ thống dựa trên kiến thức giúp bạn đưa ra các quyết định như phải làm gì và làm như thế nào. Nó tập hợp kiến thức thành một cơ sở kiến thức có thể được sử dụng để suy luận.
Bộ công cụ nhỏ giọt
Bây giờ trong hướng dẫn Drools Rule Engine này, chúng ta sẽ tìm hiểu về Bộ công cụ Drools. Dưới đây là năm loại công cụ nằm trong bộ Drools:
- Nước dãi Guvnor: Đây là một kho lưu trữ tập trung cho Drools KnowledgeBase.
- dòng nước dãi: Nó cung cấp quy trình làm việc và quy trình kinh doanh.
- Dung hợp nước dãi: Công cụ được sử dụng để xử lý sự kiện phức tạp
- Chuyên gia nhỏ giọt hoặc Công cụ quy tắc: Một công cụ hữu ích để thực hiện suy luận.
- Công cụ lập kế hoạch nhỏ giọt: Để cung cấp kế hoạch tự động, bao gồm các vấn đề lập kế hoạch NP-hard.
Các thành phần quan trọng trong Drools
Bây giờ trong hướng dẫn Drools này, chúng ta hãy tìm hiểu về các thành phần quan trọng của Drools.
Dưới đây là các thuật ngữ thiết yếu được sử dụng trong Drools:
- Sự kiện – Fact biểu diễn dữ liệu làm đầu vào cho các luật
- Bộ nhớ làm việc – Lưu trữ với Sự kiện, nơi chúng được sử dụng để khớp mẫu. Nó có thể được sửa đổi, chèn và loại bỏ.
- Buổi kiến thức – Thành phần này chứa tất cả các tài nguyên cần thiết cho quy tắc kích hoạt. Tại đây, tất cả dữ kiện được chèn vào một phiên duy nhất và sau đó các quy tắc khớp sẽ được thực hiện.
- Kiến thức cơ bản – Nó đại diện cho kiến thức trong hệ sinh thái Drools. Nó lưu trữ sự hình thành của các nguồn tài nguyên nơi tìm thấy các quy tắc.
- Mô-đun – Đây là mô-đun lưu trữ nhiều Cơ sở tri thức có thể tổ chức các phiên khác nhau
Archicấu trúc của nước dãi
Sau đây là hệ thống hoạt động của kiến trúc Drools:
Bước 1) Các quy tắc được tải vào Cơ sở quy tắc, luôn sẵn có.
Bước 2) Các sự kiện được xác nhận vào Bộ nhớ làm việc, sau đó chúng có thể được sửa đổi hoặc rút lại.
Bước 3) Quá trình khớp các dữ kiện mới hoặc hiện có với các quy tắc sản xuất được gọi là khớp mẫu, được thực hiện bởi Công cụ quy tắc.
Bước 4) Chương trình nghị sự cho phép bạn quản lý thứ tự thực hiện các quy tắc xung đột với sự trợ giúp của chiến lược giải quyết xung đột.
Đặc điểm của nước dãi
Dưới đây là các tính năng quan trọng của Drool:
- Giúp bạn tách ứng dụng khỏi logic động
- Lập trình khai báo
- Tập trung kiến thức
- Tốc độ và khả năng mở rộng
- Tách logic khỏi ứng dụng
- Quy tắc dễ hiểu
Cách thêm plugin Drools vào Eclipse
Bây giờ trong hướng dẫn Drools này, hãy tìm hiểu cách thêm plugin Drools vào Eclipse.
Bước 1) Nhấp vào “ZIP phân phối” để tích hợp jBPM
Đến phần https://www.drools.org/download/download.html và nhấp vào “Phân phối ZIP” để tích hợp jBPM. Sau khi tải về, giải nén nó vào ổ cứng của bạn.
Bước 2) Cài đặt phần mềm mới
In Eclipse, chọn Cài đặt phần mềm mới.
Bước 3) Bấm vào nút Thêm
Bấm vào nút Thêm để thêm phần mềm.
Bước 4) Thư mục trình duyệt
Trong màn hình tiếp theo, nhấp vào Local và chọn thư mục “org.drools.updatesite/” sau đó nhấp vào Ok.
Bước 5) Bấm vào nút Tiếp theo
Trên trang khắc phục cài đặt, nhấp vào nút Tiếp theo.
Bước 6) Chấp nhận thỏa thuận cấp phép
Chấp nhận thỏa thuận cấp phép và nhấp vào tiếp theo.
Bước 7) Khởi động lại Eclipse
Phần mềm sẽ được tải xuống và bạn sẽ được yêu cầu khởi động lại Eclipse.
Bước 8) Quá trình cài đặt hoàn tất
In Windows > Trình đơn Tùy chọn, bạn sẽ thấy tùy chọn Giọt nước cho biết nó đã được cài đặt.
Ví dụ về chương trình Drools Hello World
Dưới đây là ví dụ về Drools cho chương trình Hello World:
package com.sample import com.sample.DroolsTest.Message; rule "Hello World" when m : Message( status ** Message.Hello, myMessage : message ) then System.out.println( myMessage ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); update( m ); end rule "GoodBye" when Message( status ** Message.GOODBYE, myMessage : message ) then System.out.println( myMessage ); end
Chuỗi lùi và chuỗi tiến là gì?
Một công cụ chuỗi tiến sẽ kiểm tra thực tế và đưa ra kết luận cụ thể.
Hãy xem xét một kịch bản của hệ thống chẩn đoán y tế. Nếu các triệu chứng của bệnh nhân được đưa vào trí nhớ làm việc dưới dạng dữ kiện thì sẽ dễ dàng chẩn đoán được bệnh của anh ta.
Động cơ xích tiến
Động cơ xích lùi có mục tiêu đã đặt ra và động cơ cố gắng đáp ứng mục tiêu đó.
Hãy xem xét tình huống tương tự về chẩn đoán y tế. Giả sử rằng một trận dịch của một căn bệnh nào đó. AI này có thể đoán một cá nhân nhất định mắc bệnh và cố gắng xác định xem chẩn đoán của nó có chính xác hay không dựa trên thông tin có sẵn.
Động cơ xích lùi
Tại sao nên sử dụng Công cụ quy tắc nhỏ giọt?
Dưới đây là những lý do chính để sử dụng công cụ quy tắc Drools:
- Các quy tắc rất dễ hiểu đối với các nhà phát triển và nhà phân tích kinh doanh.
- Các quy tắc có thể dễ dàng duy trì.
- Công cụ quy tắc sử dụng thuật toán Rete cho biết hiệu suất của công cụ không bao giờ phụ thuộc vào số lượng quy tắc.
- Các quy tắc có thể được sửa đổi và triển khai mà không cần hạ ứng dụng.
- Ngoại hóa logic nghiệp vụ từ cơ sở mã tương đối tĩnh.
- Các quy tắc được phát triển ở những định dạng ít phức tạp hơn để nhà phân tích kinh doanh có thể dễ dàng đọc và xác minh một nhóm quy tắc.
- Các quy tắc cho phép bạn tạo ra một kho kiến thức có thể thực thi được dưới dạng.
- Công cụ như Eclipse giúp bạn quản lý các quy tắc, nhận phản hồi tức thì, xác thực và hỗ trợ nội dung.
Nhược điểm của Rules Engine
Dưới đây là những hạn chế/nhược điểm của việc sử dụng công cụ quy tắc:
- Các nhà phát triển cần rất nhiều nỗ lực học tập để biết phương pháp lập trình này
- Công cụ quy tắc không phải là một phương pháp an toàn để khắc phục sự cố.
- Cần hiểu hoạt động của công cụ quy tắc để tiêu tốn nhiều bộ nhớ hơn
- Có nhiều quy tắc khác nhau cho việc phân nhánh phức tạp.
Các quy tắc có thể thay đổi theo thời gian và sẽ có hiệu lực khi thay đổi mã
Tổng kết
- JBoss Drools là Nền tảng tích hợp Logic nghiệp vụ (BLiP)
- Các loại công cụ Drool là: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
- Nước dãi giúp bạn tách ứng dụng khỏi logic động.
- Fact đã đại diện cho dữ liệu dùng làm đầu vào cho các quy tắc.
- Bộ nhớ làm việc là nơi lưu trữ các Sự kiện, nơi chúng được sử dụng để khớp mẫu. Nó có thể được sửa đổi, chèn và loại bỏ.
- Cơ sở kiến thức là thành phần chứa tất cả các tài nguyên cần thiết cho quy tắc kích hoạt.
- Phiên kiến thức đại diện cho kiến thức trong hệ sinh thái Drools.
- Cơ sở kiến thức đại diện cho kiến thức trong hệ sinh thái Drools.
- Mô-đun lưu trữ nhiều cơ sở kiến thức, có thể chứa các phiên khác nhau.
- Quy tắc là một phần kiến thức thường được thể hiện dưới dạng “Khi điều kiện cụ thể xảy ra thì thực hiện một số nhiệm vụ”.
- Drools là một công cụ quy tắc sử dụng cách tiếp cận dựa trên quy tắc để triển khai hệ thống Expert.
- Một công cụ chuỗi tiến sẽ kiểm tra thực tế và đưa ra kết luận cụ thể.
- Động cơ xích lùi có mục tiêu đã đặt ra và động cơ cố gắng đáp ứng mục tiêu đó.
- Thuật toán Rete là một thuật toán khớp mẫu hữu ích cho phép bạn triển khai các hệ thống quy tắc sản xuất.
- Các quy tắc rất dễ hiểu đối với các nhà phát triển và nhà phân tích kinh doanh.
- Hạn chế lớn của việc sử dụng công cụ quy tắc như Drool là nó đòi hỏi các nhà phát triển phải nỗ lực học hỏi rất nhiều để biết phương pháp lập trình này.