เมื่อมีสิ่งที่เรียกว่า Framework เกิดขึ้น พวกที่ประมาณว่าขาย Application Server หลายๆยี่ห้อ และก็ใหญ่ๆ ต่างก็มี Application Server เป็นของตัวเอง ซึ่ง Application Server เหล่านั้นก็ตั้งอยู่บนพื้นฐาน Java EE ไม่ใช่ SE นะครับ ซึ่ง Java EE นะได้มีการตระเตรียมไลบรารี่ต่างๆให้เราได้ใช้มากมาย โดยที่เราไม่ต้องเขียนเองเลยละครับ โดยเฉพาะเรื่องที่เกี่ยวข้องในระดับ Enterprise
ดังนั้นเมื่อพวกขาใหญ่ขาย Application Server ได้แล้วนั้นมันก็จะมี Framework ที่เค้าคิดขึ้นมาเอง หรือไปซื้อเข้ามา หรือควบรวมกิจการมาให้ผู้ที่ซื้อไปได้ใช้กันเพื่ออะไร ก็เพื่อที่ว่าต่อไปพวกขาใหญ่พวกนี้ทำโปรดักหรือแอพลิเคชั่นอะไรมาขาย เค้าก็จะได้อ้างว่าเพื่อความ Seamless ก็ใช้ Framework ของเค้าพัฒนาส่วนต่อขยายได้เลย
Framework ที่ออกมาให้เราได้ใช้ส่วนใหญ่ต่างยังตั้งอยู่บน On top ของ Java EE Standard อยู่ดีละครับ มันก็เลยยังเปิดโอกาสให้นักพัฒนาได้พัฒนาอะไรที่เป็นมาตรฐานเดิมๆอยู่ เช่น JSP, Servlet, Web Services, และก็มีไฟล์ web.xml อยู่ในทุก Framework นะละครับ ซึ่งพระเอกที่ทำให้ Framework พวกนี้เกิดก็คือเจ้า Servlet นี่ละครับทำทำไรได้หลากหลายมากกๆ
เอาละครับ มาถึง Framework เจ้าใหญ่ๆที่เกาะไปกับ Application Server ในระดับ Enterprise กันนะครับว่ามันมีอะไรบ้างเท่าที่ผมพอจะรู้ แต่ผมรู้ไม่ลึกนะครับ เอาแค่ผ่านๆ เดี๋ยวก็มีคนเก่งมาอธิบายในภายหลังละกัน
ADF
Application Development Framework ตัวนี้ถือว่าเป็นตัวเอกของ Oracle เลยละครับ หลายแอพลิเคชั่นของ Oracle เริ่มทยอยเปลี่ยนมาใช้ ADF กันแล้ว ซึ่งเน้นการพัฒนาแบบ Configuration เป็นหลัก คือลากแล้ววาง ปรับค่าต่างๆ สามารถขึ้น production ได้เร็วมากถ้าไม่ได้ต้องการอะไรมากมายนะครับ ข้อเสียมันก็มีนะครับคือไฟล์ XML มันเยอะมากๆ จนน่าปวดหัว แต่บางคนเข้าใจแล้วสามารถทำ production ได้เร็วมากจริงๆ
ลักษณะเด่นของ Oracle ADF
- เชื่อมต่อไปยังฐานข้อมูลแสนง่าย
- เป็น Framework ที่เน้นให้ผู้พัฒนาง่ายๆ (คอนฟิคโหดแท้)
- มีคอนโทรล UI สวยๆ ใช้งานได้ดี น่าใช้มากมาย
- ทุกอย่างใช้การ Binding ข้อมูลมาแสดง
- มีสิ่งที่เรียกว่า pageflow, takflow เพื่อความสบายในการนำกลับมาใช้ใหม่
- ฟรีสำหรับผู้ที่ซื่อ Oracle Weblogic มาใช้ (ถ้าไม่ให้ใช้มีเฮ)
Architecture ของ Oracle ADF ดังรูปด้านบน ซึ่งมี 4 เลเยอร์
- Business Layer ทำหน้าที่ในการจัดหาข้อมูลจากแหล่งข้อมูลหลายๆแหล่งและเรื่องของลอจิกทางธุรกิจ
- Model layer ทำหน้าที่ในการจัดหาข้อมูลให้อยู่ในรูปแบบใดแบบหนึ่งซึ่งได้มาจาก Business layer แล้วก็จะถูกเตะไป เตะมาระหว่าง Controller และ View Layer
- Controller Layer ทำหน้าที่ควบคุมการไหลของข้อมูลของแอพลิเคชั่น เหมือนนักบอลที่เลี้ยงลูกไปๆมาๆ นี่ละครับ
- View Layer ทำหน้าที่ในการนำ Model ที่ถูกส่งมามาแสดงผล
ตัวนี้ประวัติยาวมากๆ มันเกดิขึ้นมาเพราะว่าคนสร้างไม่ค่อยชอบ Java EE เพราะว่ามันใหญ่เกินความจำเป็นมากๆ ตัวอ้วน ช้า เค้าเลยคิด Framework ของเค้าขึ้นมาเองซะเลยซึ่งเบาสบาย light-weight ซะจริงๆ เขียน Stand-alone แอพลิเคชั่นก็ได้ แถมติดตั้งได้กับแอพลิเคชั่นเวร์ฟเวอร์ เริ่มจากตัวเล็กๆคือ Apache Tomcat ส่วน Java EE ก็ใช้ได้นะครับ เค้าก็ไม่ว่า
คุณลักษณะเด่นของ Spring
- ใช้หลักการเท่ห์ๆ เรื่องของ Dependency Injection (DI) ในการจัดการเรื่องคลาสเพื่อการปรับเปลี่ยนการทำงานได้อย่างรวดเร็วผนวกเข้า กับ XML และ Annotation
- ใช้ประโยชน์จากแนวคิด Aspect programming (5+ คำใหม่ๆ ต้องไปศึกษาเองนะครับ)
- ซัพพอร์ตเรื่องของ declarative ต่างๆ ทำให้โค้ดหดสั้น
- ยังทำงานร่วมกับมาตรฐานของ Java EE ได้
- เข้ากันได้กับ Hibernate และ Quartz Framework ตั้งแต่แรกโดยที่ไม่ต้องกำหนดอะไรมากมาย
- ยืดหยุ่นในการใช้งานกับ Web Framework สำหรับการสร้าง RESTful แอพลิเคชั่นและบริการต่างๆ
- เขียนไปทดสอบไปง่ายๆด้วย Unit และ Integration
JBoss SEAM
SEAM การรันตีว่าตัวเองตั้งอยู่บนพื้นฐานของ Java EE, แต่ได้รับการดัดแปลงเรื่องของ API ให้ใช้งานได้ง่ายขึ้น และให้นักพัฒนาเข้าถึง API ได้ง่ายๆผ่าน Annotation แล้วก็ยังมี UI สวยๆมากหน้าที่ให้ใช้งานกัน แถม XML ก็ยังสั้นๆ และสุดท้าย SEAM ตั้งใจจะทำให้การพัฒนาแอพลิเคชั่นเป็นไปตามมาตรฐานและเข้ากับแอพลิเคชั่น เก่าๆได้และแถมเรื่องของ Cloudเข้ามาด้วย
คุณลักษณะเด่นของ JBoss SEAM
- มี JSF และ EJB มาให้ใช้ด้วย
- มี AJAX ( Asynchronous JavaScript and XML)
- ซ่อนการทำงานของกระบวนการทางธุรกิจผ่าน jBPM (เหอๆ ฺBPM ใหม่อีกละ)
- การควบคุม State จัดการผ่านทาง Declarative
- ใช้ XML Annotation
- ทดสอบโค้ดง่ายๆ
ที่เหลืออาจจะมีอีกนะครับ ก็ลองเลือกๆกันดู เพราะเลือกแล้วยาวๆไปเลยครับ หรือจะตามขาใหญ่ไปดี
ที่มาของเนื้อหา http://www.fusionidea.biz