2012-12-11 42 views
9

Trong dự án của chúng tôi, chúng tôi phải triển khai logic nghiệp vụ về việc ánh xạ các đối tượng nhất định đối với một số hành động. Chúng tôi sẽ có một loạt các điều kiện cho các loại đối tượng cụ thể được xác minh trước khi một hành động nhất định cuối cùng được giải quyết. Nói cách khác cho 7 loại đối tượng, chúng ta có thể có một loạt các hành động (từ trong số gần 45 hành động).Làm cách nào hiệu quả nhất để ánh xạ các quy tắc/logic nghiệp vụ?

Chúng tôi đã nghĩ đến việc sử dụng Drools để viết ra các quy tắc nói trên. Có ai có một số kinh nghiệm tích cực/tiêu cực với việc sử dụng Drools như xa như hiệu quả của nó là có liên quan? Ngoài ra còn có khung công tác jBPM có thể được sử dụng (nếu tôi không nhầm là Drools được sử dụng ở đó) - có ai quen thuộc với khung công tác đó không? Có lẽ bạn có một số ý tưởng khác về cách giải quyết vấn đề?

Trả lời

7

Liên quan đến hiệu quả, bạn sẽ không gặp vấn đề gì với Drools. Điều đó nghe có vẻ như một tập hợp các sự kiện và quy tắc khá nhỏ với tôi. Động cơ Rete mà nó dựa trên hầu như chắc chắn nhanh hơn trong việc đưa ra quyết định hơn bất kỳ đống câu lệnh if-then-else nào mà bạn tự viết mã. Và một lợi ích đặc biệt mà tôi nhận thấy là thời gian đáp ứng là rất có thể dự đoán được. Rõ ràng tất cả các mô hình và quy tắc thực tế khác nhau, nhưng như một ví dụ, ứng dụng tôi hiện đang xây dựng có hàng trăm sự kiện trong bộ nhớ làm việc bất cứ lúc nào và hơn 1000 quy tắc. Nó có thể đưa ra quyết định về các yêu cầu đến trong khoảng 20 mili giây.

Khung công tác jBPM đầy đủ không cần thiết cho những gì bạn mô tả. Tuy nhiên, nó là tốt ở những gì nó làm. Ví dụ, có một GUI mô hình hóa quy trình nếu bạn đang tìm cách thiết kế quy trình công việc, và Guvnor có thể sử dụng được cho các tác giả quy tắc phi kỹ thuật nếu nhóm kỹ thuật đặt một số nỗ lực lên viết DSL và xây dựng các bảng quyết định.

Để hoàn thành, các đối thủ cạnh tranh chính có thể là FICO Blaze Adviser hoặc IBM ILog JRules. Nói chung khi nói đến điểm chuẩn, những người có xu hướng hơi trước Drools, nhưng chúng đắt tiền. Phải thừa nhận rằng, nếu bạn quyết định thanh toán cho các hợp đồng dịch vụ JBoss/RedHat thì nó không khác nhiều, nhưng nếu bạn sẵn lòng hỗ trợ cộng đồng trên Drools, thì nó hoàn toàn miễn phí!

+0

Cảm ơn bạn đã phản hồi! Chúng tôi quyết định sử dụng Drools trong dự án của chúng tôi và chúng tôi thực sự hài lòng với nó. Một điều rất tốt là chúng tôi giữ nguyên quy tắc của chúng tôi trong các tệp DRL và chúng tôi không phải triển khai lại ứng dụng mỗi lần. –

4

Mối quan tâm duy nhất của tôi về Drools là không có GUI phong nha cho nó mà một người không phải doanh nghiệp CNTT thực sự có thể sử dụng. Rất nhiều sản phẩm cho rằng họ cung cấp giao diện người dùng như vậy nhưng nó luôn luôn trở thành không thực sự đúng sự thật. Vì vậy, bạn phải chấp nhận thực tế là nhóm phát triển của bạn sẽ kết thúc việc tạo và thử nghiệm tất cả các quy tắc đó dựa trên các bảng quyết định hoặc một số định dạng khác.

Khác hơn thế, Drools là một BRE tuyệt vời được sử dụng bởi các chính phủ, ngân hàng và các công ty lớn.

+1

100% đúng. Tuy nhiên, theo lời giải thích của ông, có lẽ một bảng quyết định có thể là một ứng cử viên tốt. Nếu đúng như vậy, các quy tắc có thể được quản lý bởi những kẻ CNTT không có chút đau đớn. –

+3

@EstebanAliverti Về mặt lý thuyết, bạn hoàn toàn chính xác. Toàn bộ tiền đề của các bảng quyết định là trừu tượng CNTT từ kinh doanh. Trong thực tế, điều này không bao giờ hoạt động, mặc dù. Tôi đã đối phó với BRE trong 15 năm, đã trải qua tất cả những cái lớn. Tôi chưa bao giờ thấy một dự án mà những người kinh doanh sẽ tạo/chỉnh sửa các bảng mà không có sự trợ giúp. Định dạng/hành động/điều kiện được thay đổi mọi lúc, những người kinh doanh mới đến, v.v. – Kizz

+1

Cảm ơn bạn đã trả lời! Chúng tôi quyết định sử dụng Drools trong dự án của chúng tôi và chúng tôi thực sự hài lòng với nó. Tất nhiên có một vấn đề với GUI nhưng bạn có thể ghi đè lên nó bằng cách sử dụng các bảng quyết định trong bảng tính. Tôi đã có một bài đăng trên blog của tôi [link] (http://toomuchcoding.blogspot.com/2013/02/drools-decision-tables-with-camel-and.html) –

1

Drools rất hiệu quả và nhanh chóng. Nhưng cũng như với bất kỳ công nghệ nào, khuôn khổ & nó sẽ cần một khoản đầu tư để tích hợp vào dự án của bạn và nó không phải là một viên đạn ma thuật. Bạn cần phải xem xét:

  • Bạn sẽ có bao nhiêu quy tắc? Tôi sẽ không đề nghị bất kỳ công cụ quy tắc nào nếu có ít hơn 20 quy tắc. Nó có thể không biện minh cho nỗ lực bạn sẽ chi tiêu cho sự cộng tác của việc thêm một công cụ quy tắc chỉ cho 7 đối tượng và 45 hành động ...
  • Bạn có cần các khả năng DSL (Ngôn ngữ cụ thể theo miền) không? I E. người phi kỹ thuật có viết quy tắc không? IMHO này không phải là rất có thể sử dụng trong Drools so với ví dụ. Oracle OPA. Nhưng một lần nữa tôi đã không nhìn thấy một người không kỹ thuật một cách an toàn tinkering với một hệ thống quy tắc nào được nêu ra. Ngoài việc thay đổi giá trị trong bảng quyết định.
  • Quy tắc của bạn sẽ thay đổi bao lâu một lần? Nếu bạn cần một hệ thống tập trung để quản lý, phiên bản, gói, kiểm tra các quy tắc của bạn thì Drools Guvnor là một sản phẩm rất có khả năng.
1

jBPM không phải là công cụ quy tắc, đó là công cụ quy trình làm việc. Drools là một công cụ quy tắc. Vì vậy, Drools là những gì bạn đang tìm kiếm.

Drools và jBPM là các dự án đồng hành: chúng tích hợp thực sự độc đáo nếu bạn cần quy trình công việc với quy tắc.

Drools rất tốt JBPM hơi phức tạp so với các động cơ BPMN khác. Tôi sẽ đề nghị đi cho Activiti vì nó dễ dàng hơn và tích hợp bất cứ điều gì nói Spring, LDAP, vv; với Activiti dễ dàng hơn. Ngoài ra, bạn có thể tích hợp Drools với Activiti .. do đó, hãy kích hoạt Activiti làm engine aworkflow và Drools cho một công cụ quy tắc.

Các vấn đề liên quan