Sun Java System Application Server 9.1 & GlassFish 2

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

ประวัติความเป็นมา
ในงานจาวาวัน (JavaOne) ซึ่งจัดขึ้นเมื่อเดือนมิถุนายน ปีค.ศ.2005 ทางบริษัทซันไมโครซิสเต็มส์ได้เปิดตัวโครงการ GlassFish ขึ้น โดยมีวัตถุประสงค์เพื่อพัฒนาแอปปลิเคชั่นเซิร์ฟเวอร์ (Application Server)ในรูปแบบของโอเพ่นซอร์ส โดยอนุญาตให้ใช้งานได้ฟรี ภายใต้ไลเซ่นส์แบบ CDDL เหมือนกับ OpenSolaris และ NetBeans อีกทั้งจะต้องมีคุณภาพในระดับแข่งขันกันได้กับแอปปลิเคชั่นเซิร์ฟเวอร์ตัวอื่นๆ ในท้องตลาด การพัฒนาตัวแอปปลิเคชั่นเซิร์ฟเวอร์จะเกิดขึ้นภายในชุมชน (Community) ซึ่งเปิดให้บุคคลภายนอก หรือบริษัทอื่นๆ สามารถเข้าร่วมในการพัฒนาได้ด้วย สำหรับขั้นตอนการเข้าร่วม=6,=oนั้นมีหลายระดับ ถ้าในระดับที่ต้องการเข้าร่วมพัฒนา เพื่อความเป็นระเบียบ และการควบคุม จะต้องมีการลงนามเอกสารยืนยัน โดยส่งทางอีเมลล์ ซึ่งรายละเอียดจะมีอยู่ในเว็บไซต์ทางการของโปรเจ็ค GlassFish (http://glassfish.java.net) สำหรับในขณะนี้ ตัวโค้ดของแอปปลิเคชั่นเซิร์ฟเวอร์มีผู้ร่วมพัฒนาประเภทองค์กรจากหลายองค์กร นอกจากทางซันเอง
GlassFish V1
การพัฒนาได้เสร็จสิ้นเป็นเวอร์ชัน (V1 Final) ในเดือนพฤษภาคม 2006 เป็นแอปปลิเคชั่นเซิร์ฟเวอร์ตัวแรกที่รองรับมาตรฐาน Java EE 5 อย่างเต็มรูปแบบ (แม้ถึงณ วันนี้ ก็ยังเป็นแอปปลิเคชั่นเซิร์ฟเวอร์โอเพ่นซอร์สตัวเดียวที่ผ่านมาตราฐาน Java EE5) และทางซันก็ได้ทำการแพคเก็จตัว GlassFish ออกมาเป็นผลิตภัณฑ์ที่เรียกว่า Sun Java System Application Server 9.0 PE (Personal Edition) ซึ่งเป็นแอปปลิเคชั่นเซิร์ฟเวอร์ ในระดับเริ่มต้น (Entry level) ทั้ง GlassFish และ Application Server จะต่างกันที่ตัวติดตั้ง (Installer) เท่านั้น
GlassFish V2
ในระหว่างนั้น GlassFish เวอร์ชันสองV2 เองก็ได้ถูกพัฒนาเรื่อยมา จนกระทั่งเดือนกันยายนปี 2007 นี่เอง ที่ทางชุมชน GlassFish ได้ประกาศตัว GlassFish V2 ออกมาอย่างเป็นทางการ และซันก็ได้ประกาศตัว Sun Java System Application Server 9.1 ออกมา ซึ่งแอปปลิเคชั่นเซิอร์ฟเวอร์ 9.1 ก็คือ GlassFish V2 ที่ทางซันจัดจำหน่าย และมีการให้บริการหลังการขายนั่นเอง
การเปลี่ยนแปลงที่สำคัญข้อแรกใน Sun Java System Application Server 9.1 ที่แตกต่างกับ Sun Java System Application Server เวอร์ชันเก่า (8.2 หรือต่ำกว่า) คือ จะสังเกตเห็นว่า ไม่มีการแยกเป็น Platform Edition, Standard Edition หรือ Enterprise Edition อีกต่อไป จะมีแต่ Sun Java System Application Server 9.1 เท่านั้น ความสามารถทุกอย่างรวมอยู่ในตัวเดียวทั้งหมด
ความสามารถใหม่ใน GlassFish V2

รูป 1 สถาปัตยกรรมของ GlassFish V2/ Sun Java System Application Server 9.1

GlassFish V2 ยังได้รับการปรับปรุงในอีกหลายๆ ส่วนดังต่อไปนี้
Web Tier :
ในส่วนของ Web Tier นั้น ได้มีโครงการ Grizzly ซึ่งอยู่ภายใต้โครงการ GlassFish อีกทีหนึ่งเกิดขึ้น โดยมีวัตถุประสงค์เพื่อใช้ Java New I/O API (NIO) ในการ implement เซิร์ฟเวอร์ที่สามารถรองรับการทำงานจำนวนมากได้ (Scalability) และมีประสิทธิภาพที่สูงมาก ซึ่งผลลัพธ์ที่ออกมาในขณะนี้ คือเราได้ส่วนของเว็บเซิร์ฟเวอร์ที่มีประสิทธิภาพดีกว่า Apache HTTPd แม้กระทั่ง Jetty ซึ่งได้รับการกล่าวขานกันว่า เร็วกว่า Tomcat ก็ยังนำ Grizzly ไปใช้เช่นกัน
ในส่วนของ JSP นั้น ประสิทธิภาพได้ถูกปรับปรุงให้เร็วขึ้นถึง 10 เท่า การแปลงจาก JSP เป็น Servlet แล้วเป็น bytecode นั้นเร็วขึ้นกว่าเดิมอย่างมาก
ORM/Persistence framework :
ในส่วนของ Object-Relational Mapping (ORM)/Java Persistence (JPA) นั้น GlassFish ได้ใช้ TopLink ซึ่งการใช้มาตรฐาน JPA นั้นมีข้อดีคือ เราสามารถสลับไปใช้ตัวอื่นได้ด้วย เช่น Kodo/OpenJPA หรือ Hibernate ก็สามารถนำมาใช้กับ GlassFish V2 ได้ด้วย
การจัดการระบบ :
สำหรับผู้ดูแลระบบนั้นจะชื่นชอบระบบการจัดการระบบของ GlassFish เป็นอันมาก โดยเฉพาะเมื่อเทียบกับระบบจัดการของ JBoss (ซึ่งเป็นแอปปลิเคชั่นเซิร์ฟเวอร์แบบโอเพ่นซอร์สเหมือนกัน) จะเห็นว่าส่วนของการดูแลระบบของ GlassFish จะใช้งานและเข้าใจง่าย และมีประโยชน์มากกว่า และใน GlassFish V2 นี้ ความสามารถในการดูแลระบบก็ได้ถูกพัฒนาให้สะดวก และดียิ่งขึ้น การอัพเดตตัวเซิร์ฟเวอร์ก็กระทำผ่าน GUI ที่สะดวก และมีคำอธิบายที่สามารถอ่านเข้าใจได้ง่าย เหมาะสำหรับผู้ดูแลระบบที่ไม่ได้เป็นนักพัฒนาโปรแกรมเองด้วย

รูปที่ 2 หน้าจอส่วนดูแลระบบของ GlassFish


รูป 3 การอัพเดตเซิร์ฟเวอร์ของ Sun Java System

จะเห็นได้ชัดว่าหน้าจอของส่วนดูแลระบบของ GlassFish จะดูใช้งานง่าย คำบรรยายของเมนูต่างๆ ค่อนข้างชัดเจน และนอกจากนั้น การพรีเซ้นท์ก็สวยงามและฉับไวขึ้นด้วยเทคโนโลยี Ajax เช่น การใช้ jMaki ในการทำชาร์ตเพื่อมอนิเตอร์เว็บเซอร์วิส หรือหน้า Log Analyzer ภายใต้หน้ากากที่สวยงามนั้นการทำงานของมันเป็นไปตามมาตรฐาน Java Management Extension (JMX) และ Application Server Management Extension (AMX)
ตัวเฟรมเวิร์คของการดูแลระบบนั้นสามารถเรียกใช้ได้ผ่านหลายช่องทาง เช่น Command Line Interface, Web, จากใน IDE หรือทาง JMX ก็ได้

Clustering/HA :
GlassFish V2 รองรับการทำคลัสเตอร์โดยใช้ HADB เพื่อรองรับการทำงานแบบ 99.999% ได้ ในกรณีที่แอปปลิเคชั่นเซิร์ฟเวอร์ตัวหนึ่งเกิดปัญหาขึ้น แอปปลิเคชั่นเซิร์ฟเวอร์ที่เหลือจะสามารถเข้ามาทำงานและรองรับ Session ที่ค้างอยู่จากแอปปลิเคชั่นเซิร์ฟเวอร์ที่หยุดทำงานไป โดยข้อมูลของ Session จะถูกเก็บในหน่วยความจำของ HADB และจะถูกบันทึกลงในฐานข้อมูลของ HADB แบบ asynchronous เพื่อลดผลกระทบที่จะเกิดกับประสิทธิภาพการทำงานของแอปปลิเคชั่นเมื่อมีการทำคลัสเตอร์
การทำคลัสเตอร์ใน Sun Java System Application Server 9.1 นี้ เป็นแบบไดนามิค คือเราสามารถที่จะเพิ่มหรือลดจำนวนแอปปลิเคชั่นเซิร์ฟเวอร์ในคลัสเตอร์ได้ตลอดเวลา หัวใจการทำงานของการทำคลัสเตอร์แบบไดนามิคคือ Group Management Service (GMS) ซึ่งได้มาจากโครงการ Shoal ซึ่งเป็นโครงการพัฒนาระบบคลัสเตอร์โดยใช้เทคโนโลยีจาวา และก็เป็นโอเพ่นซอร์ส
โดย GMS จะส่ง notification ไปให้กับสมาชิกในคลัสเตอร์เพื่อรายงานการเปลี่ยนแปลงในคลัสเตอร์ เช่น เมื่อมีสมาชิกใหม่ หรือเมื่อมีสมาชิกถูก shutdown หรือเมื่อมีสมาชิกถูกสงสัยว่าหยุดทำงาน หรือเมื่อแน่ใจแล้วว่าสมาชิกหยุดทำงานไปแล้ว เป็นต้น
HADB เป็นดาต้าเบสแบบรีเลชั่นแนลที่ใช้ในการเก็บ session ของทั้ง HTTP, stateful session bean และ SSO แยกออกมาจากตัวแอปปลิเคชั่นเซิร์ฟเวอร์ จะเห็นได้ว่า หัวใจของการทำคลัสเตอร์อยู่ที่ตัว HADB ว่าจะสามารถปกป้อง รักษาข้อมูลได้ดีเพียงใด ซึ่ง HADB มีกระบวนการหลายขั้นตอนที่จะทำให้มั่นใจได้ว่า Session จะไม่สูญหาย ซึ่งรายละเอียด คงต้องขอให้ไปดูจากเอกสารอ้างอิงที่เว็บไซต์ทางการของ โครงการ GlassFish
สรุป
ความสามารถใหม่ๆ ของ Sun Java System Application Server 9.1 หรือ GlassFish V2 ยังไม่หมดเพียงแค่นี้ ยังมีสิ่งใหม่ๆ อีกหลายอย่างที่ยังไม่ได้กล่าวถึง เช่น การรองรับเฟรมเวิร์คใหม่ๆ ของจาวา ระบบความปลอดภัย ระบบทรานแซคชั่น การทำโหลดบาล้านซ์ และอื่นๆ อีกมากมาย นี่เป็นอีกครั้งหนึ่งที่แอปปลิเคชั่นเซิร์ฟเวอร์ของซัน พร้อมสำหรับงานในระบบโปรดักชั่น มิชชั่นคริติคั่ล และรองรับมาตรฐานล่าสุดของเทคโนโลยีจาวาพร้อมกันหมด รวมไปถึงการทดสอบ และรองรับเฟรมเวิร์คยอดนิยมแทบทุกตัวในท้องตลาด
สำหรับผู้ที่สนใจก็สามารถที่จะติดต่อเข้ามาทางบริษัทซันเพื่อขอนัดชมการสาธิต หรือการบรรยายได้นะครับ ทางทีมงานก็ยินดีที่จะตอบสนองเพื่อรองรับการใช้งานของท่าน
เอกสารอ้างอิง:
1. เว็บไซต์ทางการของโครงการ GlassFish https://glassfish.dev.java.net
2. ประกาศรางวัลผู้ชนะของ Developer.com 2008 http://www.developer.com/db/article.php/10920_3721761_1
3. เว็บไซต์ของการทดสอบประสิทธิภาพของแอปปลิเคชั่นเซิร์เวอร์ http://www.spec.org/jAppServer2004/results/jAppServer2004.html

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

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