Saturday, June 10, 2006

Drools version 3

เคยเขียนตัวอย่างการใช้ Drools ไปแล้ว
ใน "ทดลอง Implement Business Rule ด้วย Drools"
ตอนนั้นยังเป็น version 2 อยู่

มา version ใหม่นี้้, drools ย้ายไปสังกัด jboss แล้ว
ก็เลยได้ชื่อใหม่เป็น JBossRules

feature ที่เปลี่ยนไปอย่างเห็นได้ชัด ก็คือ
เพิ่มวิธีเขียน rule ที่เดิมต้องเขียนอยู่ในรูป xml
มาอยู่ในรูป syntax ที่อ่านง่ายสบายตา
แถมยังมี Eclipse Plugin ที่ช่วยในการพัฒนา rules ให้อีกด้วย

ลองเขียน syntax ใหม่ โดยใช้โจทย์เดิมที่เคยเขียนด้วย xml



หน้าตาดีขึ้นอย่างเห็นได้ชัด อ่านง่ายอีกต่างหาก

นอกจากนี้เรายังสามารถ define DSL ของเราเข้าไปเองได้ด้วย
ลองดู rule อันนี้ เทียบกับข้างบน



ส่วน dsl ก็ define แบบนี้



ใครสนใจก็ลอง load มาเล่นดูได้
โดยตัว plugin ใช้ได้กับ eclipse 3.2 up
(ผมใช้ 3.2RC7)

Related link from Roti

Tuesday, June 06, 2006

ขั้นตอนการทำงานของ CAS

CAS -> Central Authentication Service เป็น opensource ที่ช่วยทำเรื่อง
Single Sign-On
ซึ่งใน Architecture ของมัน สามารถทำได้ทั้งที่ระดับ
browser -> web app (user login ครั้งเดียว ใช้ได้หลาย web app)
web app -> web app (user login ใน web app A, แล้ว web app A call ไปยัง web app B)

ในที่นี้ขออธิบายเฉพาะกรณีแรก

1. เริ่มด้วย user request ไปยัง Web app A.


2. web app ตรวจพบว่า user ยังไม่ login ก็เลยส่ง redirect กลับมา
พร้อมทั้งระบุ parameter ด้วยว่า หลังจาก login แล้วให้กลับมาที่ url ที่ระบุ
3. request วิ่งไปที่ CAS


4. CAS ส่งคืนหน้าจอ login มาให้ user กรอก


5. user submit ข้อมูล user, password


6. กรณีที่ password ถูกต้อง, CAS จะส่ง redirect กลับมาให้ browser
ว่าให้ต่อ request ไปยัง web app A โดยมี parameter ชื่อ ST (service ticket) มาด้วย
7. สิ่งที่ส่งกลับมาพร้อมกับ redirect ก็คือ cookie TGC ที่ใช้แสดงว่า user login แล้ว
8. browser ส่ง request ไปที่ Web app A.
9. web app A ตรวจพบ parameter ST ก็เลยส่งไป validate ที่ CAS
ถ้า validate ผ่าน ก็อนุญาติให้ user เข้ามาใช้งานได้


ที่นี้ ถ้า user เกิดไปเรียกใช้ url ใน Web App B.
10. browser request ไปยัง Web app B.
11. Web app B. ตรวจพบว่ายังไม่เคย login ก็เลย redirect ข้อมูลไปยัง CAS
12. browser ส่ง request ไปยังหน้าจอ login ของ CAS
13. cookie TGC ที่รับไว้ตอนขั้นตอนที่ 7. ถูกส่งตามไปด้วย


14. CAS ตรวจว่า TGC valid หรือไม่ ถ้ายัง valid อยู่ ก็ถือว่าเคย login แล้ว
ก็จะทำการออก ST (service ticket) ให้
และส่ง redirect กลับมายัง browser
15. browser ส่ง request ไปที่ Web app B. พร้อมด้วย ST ที่ได้จากขั้น 14
16. Web app B. ทำการ validate ST ที่ได้กับ CAS
ซึ่งถ้าผ่าน ก็จะถือว่า user login แล้ว

Related link from Roti

Sunday, June 04, 2006

CodeFest

วันที่ 24-25 มิถุนายนนี้ Nectec มีกำหนดจัด CodeFest ครั้งแรกของไทย (เข้าใจว่างั้นนะ)
มีชื่อเป็นทางการว่า การเขียนโปรแกรมมาราธอน
วัตถุประสงค์ก็เพื่อส่งเสริมให้เกิดนักพัฒนาโปรแกรมโอเพนซอร์สมากขึ้น
ฟังชื่องานแล้วไม่ต้องกลัวเหนื่อย งานจัดแค่ 2 วัน 1 คืน
เริ่มเขียนสัก 11 โมง ไปจนถึง เที่ยงของอีกวันหนึ่ง

อยากไปเหมือนกัน แต่ยังนึกไม่ออกเลยว่าจะทำอะไรดี
จะไปช่วยทำ linux หรือ infrastructure, ความรู้ก็ไม่มี

ไว้ไปหยั่งเสียงน้องๆในบริษัทฯก่อน มีใครสนใจบ้าง

Related link from Roti