Glassfish V3 Prelude: เบา เร็ว แรง ด้วย Grizzly Project

01:45 เขียนโดย QA Optimization - Performance and Stability

Glassfish v3 prelude ออกแล้ว มันคือ open-source application server จากทางซัน เมื่อพูดถึง application server หลายคนคงจะนึกถึงภาพ container ตัวหนักๆ อืดๆ กินแรมเยอะๆ และออกตัวช้าๆ กันใช่มั้ยครับ แต่สำหรับ Prelude แล้วมันไม่ใช่อย่างนั้น

ด้วยความต้องการที่จะทำให้ชีวิตของนักพัฒนาง่ายขึ้น และรองรับความต้องการหลากหลาย จำเป็นที่ Spec ของ JavaEE และตัว app server ที่ใช้สร้างต้องยอมทำงานหนักเพื่อซึมซับความซับซ้อนที่มากขึ้นทุกคราวที่ขยับรุ่น จนทำให้ตัวมันเองที่ผ่านมามีขนาดอ้วนและเทอะทะจนเกินจำเป็น

คำถามมีอยู่ว่า จะมีนักพัฒนาสักกี่คนที่จะได้ใช้ฟีเจอร์ทุกอย่างครบทั้งหมด? หนำซ้ำนักพัฒนายังต้องการสิ่งที่สวนทางกันกับความเป็นไปได้ เค้าต้องการ app server ที่มีขนาดเล็ก น้ำหนักเบา และเร็วพอเพื่อไม่ให้เกิดสูญญากาศระหว่างการทำงานอีกด้วย แล้วทีนี้จะทำเช่นไรเพื่อให้เกิดสมดุล?

คำตอบของปัญหานี้ จึงหนีไม่พ้นการออกแบบสถาปัตยกรรมให้มีความเป็นส่วนจำเพาะที่สามารถรวมกันได้ (Modularity) สูง จัดสรรทางเลือกให้นักพัฒนาสามารถเปิดโมดูลที่ต้องใช้ตามจำเป็นพอเพียงเท่านั้้น และปิดโมดูลอื่นที่ไม่ได้ใช้ลงได้ เพื่อใม่ให้เป็นตัวถ่วง

V3 ได้ออกแบบสถาปัตยกรรมใหม่หมด โดยนำข้อดีของระบบ component บนมาตรฐาน OSGi มาใช้ นอกจากผลดีโดยตรงที่ทำให้ application server ออกตัวได้เร็วมาก (2-3 วินาที เท่านั้น!) มันยังนำมาซึ่งผลดีต่างๆ อีกมากมายอันได้จากค่าความเป็น modularity ที่สูงขึ้น

modularity นำมาซึ่ง extensibility

ธรรมชาติของระบบที่มี modularity สูง ย่อมจะมี extensibility สูงอยู่แล้ว เพราะตัวมันเองทำงานเฉพาะในโดเมนที่ตัวเองสนใจ และเฟรมเวิร์กรอบข้างที่ดีย่อมจัดสรรตะขอเกี่ยวให้โมดูลภายนอกเข้ามาเกี่ยวเพื่อเพิ่มความสามารถหรือปรับแต่งค่าให้ตรงความต้องการ

Container ซ้อน Container

ใน Prelude เราจึงเห็นว่ามันทำตัวเป็น container ให้กับภาษาไดนามิกอื่นๆ อย่าง Rails, Grails, PHP ได้อย่างเป็นธรรมชาติ นักพัฒนา Rails ไม่ต้องเรียนรู้ด้วยซ้ำว่า .war คืออะไร เค้าเคย deploy ลง Rails app server ตัวเก่าของเค้าอย่างไร สำหรับ Prelude ก็ทำเช่นนั้น ไม่ต้องมีขั้นตอนพิเศษอะไรให้เรียนรู้เพิ่มเติม

Admin Commands/Update Center 2.0

ฟีเจอร์อีกหนึ่งอย่างที่สำคัญใน Prelude คือการที่ GlassFish เปิดโอกาสให้ผู้ใช้สามารถปรับแต่งหน้าตา GUI Console ของ GlassFish เองได้ ปกติ GlassFish ก็ได้รับคำชมที่ดีมาตลอดในเรื่องมี GUI Admin Console ที่ใช้ง่ายสวยงามอยู่แล้ว นี่เป็นก้าวอีกขั้นที่ทำให้ผู้ใช้ภายนอกสามารถสร้าง plug-in เข้าไปเสริมเพื่อเพิ่มความเป็นมิตรกับผู้ใช้กับผลิตภัณฑ์/เฟรมเวิร์กของตนเข้าไปอีก

นอกจากนี้ใน Prelude ยังมีระบบ update center เพื่อเรียกติดตั้ง module ภายนอกอื่นๆ ผ่านทางเน็กเวิร์กเพิ่มเติมภายหลังอีกด้วย

Embedded Container API

ด้วยขนาดที่เล็กเมื่อเทียบกับ app server อื่น และมี start up time ที่เร็ว ไม่แปลกอะไรหากจะนำ Prelude ไปรวมกับ RIA/Desktop application ใดๆ เพื่อเรียกใช้ความสามารถที่ได้จากการมี container เป็นตัวสนับสนุน

Enterprise Ready

Prelude มาพร้อมกับ API, library ที่น่าสนใจหลายตัว อาทิ เช่น Grizzly, JAX-RS (SPI รองรับ Comet, RESTful Web Service) มี mod_jk,WebDav support เท่านั้นยังไม่พอ สำหรับคนชายขอบ Prelude ยังแนบ JavaEE 6 Preview มาให้ลองเล่นกันก่อนบางตัวด้วย (EJB 3.1 lite, JSF 2.0)

Developer Features

เพื่อเอาใจนักพัฒนา Prelude เพิ่มฟีเจอร์ที่น่ารักอย่าง KeepSessions เอาไว้ใช้ในกรณีที่อยากคงสภาพ state ที่อยู่ภายใน session ไม่ให้สูญหายเมื่อต้อง redeploy application (เช่น user login session เป็นต้น) ฟีเจอร์นี้มีประโยชน์มากในช่วงเวลาพัฒนาที่การ redeploy เกิดขึ้นบ่อย แล้วนักพัฒนาต้องการทดสอบฟีเจอร์บางอย่างที่เก็บค่าอยู่ภายใน session ด้วยมือ สถานะเดิมของ session จะยังคงสภาพโดยไม่ต้องเริ่มใหม่ตั้งแต่ต้น

นอกจากนี้ Glassfish ยังเตรียม plugin สำหรับ NetBeans, Eclipse ไว้ให้ด้วย ใน NetBeans 6.5 ได้เพิ่มความสามารถ compile on save มาแล้ว (Eclipse มีนานแล้ว) plugin ตัวนี้จะไปเสริมให้ทั้ง NetBeans และ Eclipse สามารถ deploy on save ไฟล์นั้นๆ ได้อีกด้วย เราจะได้เห็น life cycle อย่างเช่น การแก้ไฟล์ java -> สลับดูผลลัพธ์ใน browser -> แก้ไฟล์ java -> สลับดูผลลัพธ์ใน browser เฉกเช่นเรากำำลังพัํฒนาด้วยภาษา dynamic อย่างไรอย่างนั้น

เห็นความสามารถแล้วเรียกได้ว่าน่าใช้มากทีเดียว แม้ v3 Prelude ที่ออกมาเรียกน้ำย่อยคราวนี้ จะเป็น container ตัวเล็กๆ เทียบเท่ากับ Tomcat ก็ตาม ส่วน Glassfish v3 รุ่นใหญ่ของจริงนั้น น่าจะเผยโฉมและมาพร้อมกับการรองรับ JavaEE 6 เต็มตัว ซึ่งคงจะเปิดตัวในงาน JavaOne ปีหน้า

ดาวน์โหลด หรือสนใจรายละเอียดลองอ่านเพิ่มเติมได้ที่ Glassfish Prelude นะครับ

0 ความคิดเห็น:

แสดงความคิดเห็น