วันอังคารที่ 16 กันยายน พ.ศ. 2551

EJB คืออะไร

ครั้งก่อนได้พูดถึง J2EE ไปแล้วคราวๆๆ วันนี้เลยเอาเรื่อง EJB มาลงต่อ แต่ก่อนจะเข้าใจ EJB ก็ต้องเข้าใจเรื่อง การพัฒนาซอฟต์แวร์ แบบ Software Component

Software Component เป็นการมอง ซอฟต์แวร์เป็นชุดๆ ส่วนๆ ที่สามารถทำงานบางสิ่งบางอย่างได้ในตัวของมันเอง ซึ่งจะทำให้สามารถนำ Software Component มาประกอบกันเพื่อทำเป็น Application ใช้ในองค์กร เช่น Software Component ด้านการกำหนดราคา Pricing Component ดังรูป


รูปที่ 1

จากรูปที่ 1 แสดงให้เห็นถึงการใช้งาน Pricing Component ติดต่อกับ Legacy System ซึ่งเป็นระบบเก่า โดย User ติดต่อผ่าน Dumb Terminal หรือ Work Station



รูปที่ 2

จากรูปที่ 2 เป็นการแสดงให้เห็นการทำงานในแบบ Web Application ที่ใช้ Pricing Component ในการทำงาน โดยมี Client เป็น Web Browser


รูปที่ 3

จากรูปที่ 3 แสดงให้เห็นการพัฒนา Application ที่นำ Software Component 3 Component มารวมกัน คือ Pricing Component, Billing Component และ Fulfillment Component มาประกอบกัน

จากตัวอย่างข้างต้น จะพบว่า การพัฒนาซอฟต์แวร์เป็น Component มีข้อดี คือ มีโอกาสที่จะนำ Component มาใช้ใหม่ได้สูง (Reusibility) ซึ่งจะทำให้ใช้เวลาพัฒนาระบบงานโดยรวมน้อยลง และในตัว Component เอง ก็จะนำ Business Logic ที่ดีที่นิยมใช้ในวงการนั้นๆ มาใช้ (Best Practice) ซึ่งทำให้องค์กรได้รับประโยชน์สูงสุด คือได้ใช้ Business Logic ที่ดี โดยไม่ต้องคิดตั้งแต่เริ่มต้น และในขณะเดียวกัน การพัฒนาเปลี่ยนแปลง Business Logic ให้ดีขึ้นเรื่อยๆ ก็สามารถทำได้ โดยไม่กระทบการใช้งาน ของ Client เลย

เนื่องจาก บริษัทที่ ผลิต Component ก็จะพัฒนา Application Server ขึ้นเองด้วย ปัญหาก็คือผู้ใช้งาน เมื่อซื้อ Software Component มาใช้งานแล้ว ถ้าต้องการเปลี่ยน Application Server ก็ไม่สามารถทำได้ เพราะ Software Component นั้น ไม่สามารถ Deploy และ Run บน Application Server ตัวใหม่ได้ ฉะนั้น ความต้องการ มาตรฐานของ Software Component จึงเกิดขึ้นเพื่อที่จะทำให้ Software Component สามารถที่จะ Deploy และ Run ได้กับทุก Application Server จึงเกิดการสร้าง Component Architecture ขึ้นมา ดังรูป

รูปที่ 4


จากรูปที่ 4 เป็นการกำหนดให้ Software Component ให้ปฏิบัติตามข้อตกลงที่อยู่ใน Component Architecture โดยต้องมี Interface ที่กำหนดไว้ ผลก็คือ เมื่อนำ Component ไป Run บน Application Server ที่ยึดถือตาม Component Architecture เดียวกัน ก็จะสามารถ Run ได้อย่างไม่มีปัญหา

EJB ก็คือ Component Architecture หรือข้อตกลง (Agreements) การทำงานของร่วมกันระหว่าง Software Component กับ Application Server (ในที่นี้ก็คือ J2EE Server) โดย EJB หรือ Enterprise Bean จะเป็น Software Component ที่ Run ในฝั่งของ Server (Server - Side) ในลักษณะ Distributed Component โดย EJB จะต้องเขียนด้วยภาษา Java เท่านั้น

คราวหน้าจะมาเพิ่มเติมเรื่องของ EJB นะจ๊ะ

ที่มา : http://akrasoft.com/development/J2EE/J2EEandEJB.htm
(รูปภาพทั้งหมดนำมาจากหนังสือ Mastering EJB Second Edition ของ Ed Roman)

ไม่มีความคิดเห็น: