ห่างหายไปนานมากกับ blog นี้ผู้เขียนได้เปลี่ยนชื่อ blog ใหม่เพื่อให้สอดคล้องกับเนื้อาของ blog เนื่องจากเดิมผู้เขียนได้อยู่กับการเขียนแอนดรอยด์ตลอด แต่ปัจจุบันผู้เขียนได้ห่างจากการเขียนแอนดรอยด์ค่อนข้างนาน เพราะด้วยงานประจำที่ทำอยู่เป็นการเขียน web application ซะส่วนใหญ่ทั้ง JSP ,Servlet และปัจจุบันผันตัวมาเขียน rule engine วันนี้จึงจะมาแนะนำว่า rule engine นั้นคืออะไร
rule engine คือระบบที่ใช้สำหรับการจัดการ business logic ภายในองค์กร ซึ่งส่วนใหญ่แล้วก็จะมีความซับซ้อนสูง การนำ logic ไปฝังอยู่ใน software แต่ละ component ก็อาจจะดูไม่เหมาะสม การตรวจสอบและแก้ไขก็ทำได้ลำบาก การนำ rule มาใช้ ก็คือการรวบรวมนำเอา Business rule, requirement, policy ต่างๆ นำมาเขียนและจัดเก็บไว้ใน repository กลาง โดยผู้รวบรวมอาจจะเป็น user ผู้ใช้งานระบบเดิม หรืออาจจะเป็น programmer ก็ได้ โดย rule จะมี interface ที่ออกแบบมาให้ทั้ง user ทั่วๆไป (web interface, excel) และ programmer (DRL) มาเรียกใช้งานได้ ซึ่งข้อดีของเจ้า rule engine นี่ก็คือ การเขียนอะไร ทำอะไรที่ซ้ำๆ เป็นแบบ transaction คือไม่มีอะไรเปลี่ยนแปลงมาก เปลี่ยนแปลงแค่ข้อมูลที่ input เข้ามา และไม่ใช่การ fixed code ด้วยข้อดีข้อนี้ทำให้ผู้ใช้งานเองที่ไม่ใช่ programmer สามารถปรับเปลี่ยนเงื่อนไขได้ด้วยตนเองโดยอิงจาก database ของระบบเอง
rule engine นิยมใช้งานควบคู่กับ batch เพราะมีอะไรที่ค่อนข้างซ้ำ วนทำงานไปเรื่อยๆ จนกว่าจะเสร็จสิ้นถ้ายังนึกไม่ออกว่า rule engine มีหน้าตาเช่นไรผู้เขียนจะให้ดูตัวเองด้านล่างนี้
ลักษณะการเขียนเหมือนกับ acivity diagram หรือ คล้ายกับ flow chart ของโปรแกรม โดยมีการเรียกใช้ function ต่างๆ ตาม business ของระบบโดยที่เราไม่ต้องไปนั่งกดๆ บันทึกข้อมูลเองเหมือน web application เพราะเราให้ batch file เป็นตัวเรียกใช้โดยที่ตั้งเวลาในการทำงานไว้เช่น ทำทุกๆ 1 นาที 5 นาที จนกว่า input data จะหมดหรือไม่มี in put เข้ามาแล้ว ส่วนใหญ่ใช้ในระบบของธนาคาร
เป็นไงบ้างละครับพอจะเห็นแนวทางการทำงานของ rule engine ขึ้นมาบ้างมั้ยครับผู้อ่าน หวังว่าจะได้เทคนิคใหม่ๆ เพิ่มขึ้นมาบ้างนะครับ ถ้าผมมีเวลาว่างจะมาเล่า rule engie ต่อนะครับ ขอบคุณที่เข้ามาอ่านนะครับ
อ้างอิงข้อมูลบางส่วนจาก : https://krisachai.wordpress.com/2014/04/05/brms-jboss-drools-expert-the-rule-engine/
กำลังจะใช้งานเลยคับ
ตอบลบ