Drools - บทนำ
แอปพลิเคชัน Java ระดับองค์กรใด ๆ สามารถแบ่งออกเป็นสามส่วน -
- UI - ส่วนต่อประสานผู้ใช้ (ส่วนหน้า)
- ชั้นบริการซึ่งจะเชื่อมต่อกับฐานข้อมูล
- ชั้นธุรกิจ
เรามีเฟรมเวิร์กจำนวนมากที่จัดการ UI และเลเยอร์บริการด้วยกันตัวอย่างเช่น Spring และ Struts แต่เราไม่มีวิธีมาตรฐานในการจัดการกับตรรกะทางธุรกิจจนกระทั่ง Drools เริ่มมีขึ้น
Drools คืออะไร?
Drools คือ Business Logic integration Platform (BLiP). มันเขียนด้วยภาษาจาวา เป็นโครงการโอเพ่นซอร์สที่ได้รับการสนับสนุนโดย JBoss และ Red Hat, Inc. ซึ่งขยายและใช้อัลกอริธึมการจับคู่ Rete Pattern
ในแง่ของคนธรรมดา Drools คือชุดเครื่องมือที่ช่วยให้เราแยกเหตุผลและใช้เหตุผลกับตรรกะและข้อมูลที่พบในกระบวนการทางธุรกิจ คำสำคัญสองคำที่เราต้องสังเกตคือLogic และ Data.
Drools แบ่งออกเป็นสองส่วนหลัก: Authoring และ Runtime.
Authoring - ขั้นตอนการเขียนเกี่ยวข้องกับการสร้างไฟล์กฎ (ไฟล์. DRL)
Runtime - เกี่ยวข้องกับการสร้างหน่วยความจำในการทำงานและการจัดการการเปิดใช้งาน
Rule Engine คืออะไร
Drools เป็น Rule Engine หรือระบบกฎการผลิตที่ใช้แนวทางตามกฎในการนำไปใช้และระบบผู้เชี่ยวชาญ ระบบผู้เชี่ยวชาญเป็นระบบฐานความรู้ที่ใช้การแสดงความรู้เพื่อประมวลผลความรู้ที่ได้มาเป็นฐานความรู้ที่สามารถใช้ในการให้เหตุผล
ระบบกฎการผลิตทัวริงสมบูรณ์โดยมุ่งเน้นที่การแสดงความรู้เพื่อแสดงตรรกะเชิงประพจน์และลำดับที่หนึ่งในลักษณะที่กระชับไม่คลุมเครือและเปิดเผย
สมองของระบบกฎการผลิตคือไฟล์ Inference Engineที่สามารถปรับขนาดเป็นกฎและข้อเท็จจริงจำนวนมาก Inference Engine ตรงกับข้อเท็จจริงและข้อมูลตามกฎการผลิต - เรียกอีกอย่างว่าProductions หรือเพียงแค่ Rules - เพื่อสรุปข้อสรุปซึ่งส่งผลให้เกิดการกระทำ
กฎการผลิตคือโครงสร้างสองส่วนที่ใช้ตรรกะลำดับที่หนึ่งในการให้เหตุผลมากกว่าการแสดงความรู้ เอ็นจินกฎธุรกิจคือระบบซอฟต์แวร์ที่รันกฎทางธุรกิจอย่างน้อยหนึ่งกฎในสภาพแวดล้อมการผลิตแบบรันไทม์
Rule Engine ช่วยให้คุณสามารถกำหนด“What to Do" และไม่ "How to do it.”
กฎคืออะไร?
กฎชิ้นส่วนของความรู้มักจะแสดงเป็น " เมื่อเงื่อนไขบางอย่างเกิดขึ้นแล้วทำงานบางอย่าง."
When
<Condition is true>
Then
<Take desired Action>
ส่วนที่สำคัญที่สุดของกฎคือกฎ whenส่วน. ถ้าwhen ส่วนหนึ่งพอใจ then ส่วนหนึ่งถูกทริกเกอร์
rule <rule_name>
<attribute> <value>
when
<conditions>
then
<actions>
end
การจับคู่รูปแบบ
กระบวนการจับคู่ข้อเท็จจริงใหม่หรือที่มีอยู่กับกฎการผลิตเรียกว่า Pattern Matching ซึ่งดำเนินการโดย Inference Engine มีอัลกอริทึมจำนวนมากที่ใช้สำหรับการจับคู่รูปแบบ ได้แก่ -
- Linear
- Rete
- Treat
- Leaps
Drools ดำเนินการและขยาย Rete Algorithm การใช้งาน Drools Rete เรียกว่า ReteOO ซึ่งแสดงว่า Drools มีการปรับใช้อัลกอริทึม Rete ที่ปรับปรุงและเหมาะสมที่สุดสำหรับระบบเชิงวัตถุ
ข้อดีของ Rule Engine
การเขียนโปรแกรมที่เปิดเผย
กฎทำให้ง่ายต่อการแสดงวิธีแก้ปัญหาที่ยากและรับการตรวจสอบวิธีแก้ปัญหาด้วย กฎจะเขียนด้วยภาษาที่ซับซ้อนน้อยแตกต่างจากรหัส นักวิเคราะห์ธุรกิจสามารถอ่านและตรวจสอบชุดของกฎได้อย่างง่ายดาย
การแยกตรรกะและข้อมูล
ข้อมูลอยู่ใน Domain Objects และตรรกะทางธุรกิจอยู่ในกฎ ขึ้นอยู่กับประเภทของโครงการการแยกประเภทนี้อาจเป็นประโยชน์อย่างมาก
ความเร็วและความสามารถในการปรับขนาด
อัลกอริทึม Rete OO ที่เขียน Drools เป็นอัลกอริทึมที่ได้รับการพิสูจน์แล้ว ด้วยความช่วยเหลือของ Drools แอปพลิเคชันของคุณสามารถปรับขนาดได้มาก หากมีการร้องขอการเปลี่ยนแปลงบ่อยสามารถเพิ่มกฎใหม่ได้โดยไม่ต้องแก้ไขกฎที่มีอยู่
การรวมศูนย์ความรู้
โดยใช้กฎคุณจะสร้างที่เก็บความรู้ (ฐานความรู้) ซึ่งสามารถเรียกใช้งานได้ เป็นความจริงจุดเดียวสำหรับนโยบายธุรกิจ ตามหลักการแล้วกฎสามารถอ่านได้มากจนสามารถใช้เป็นเอกสารประกอบได้
การรวมเครื่องมือ
เครื่องมือเช่น Eclipse มีวิธีแก้ไขและจัดการกฎและรับข้อเสนอแนะการตรวจสอบความถูกต้องและความช่วยเหลือด้านเนื้อหาได้ทันที นอกจากนี้ยังมีเครื่องมือตรวจสอบและแก้ไขข้อบกพร่อง