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 มีวิธีแก้ไขและจัดการกฎและรับข้อเสนอแนะการตรวจสอบความถูกต้องและความช่วยเหลือด้านเนื้อหาได้ทันที นอกจากนี้ยังมีเครื่องมือตรวจสอบและแก้ไขข้อบกพร่อง