อะแพชี ทอมแคต

อะแพชี ทอมแคต (Apache Tomcat) เป็นโปรแกรมบรรจุเว็บ (web container) ที่พัฒนาโดยมูลนิธิซอฟต์แวร์อะแพชี ทอมแคตใช้ข้อกำหนดของเซิร์ฟเลตและเจเอสพีจากซันไมโครซิสเต็มส์มาเป็นต้นแบบในการทำงาน ซึ่งกำหนดสภาพแวดล้อมสำหรับโค้ดจาวาเพื่อทำงานบนเว็บเซิร์ฟเวอร์ นอกจากนั้นทอมแคตได้เพิ่มเครื่องมือสำหรับการจัดการการตั้งค่าที่เก็บในรูปแบบแฟ้มเอกซ์เอ็มแอล และมีโปรแกรม HTTP เซิร์ฟเวอร์อยู่ในตัวเอง

อะแพชี ทอมแคต เคยเป็นโครงการย่อยของโครงการจาการ์ตา แต่ปัจจุบันได้แยกตัวออกมาเป็นโครงการหลักของมูลนิธิซอฟต์แวร์อะแพชี

สภาพแวดล้อม 
ทอมแคตเป็นเว็บเซิร์ฟเวอร์ที่รองรับเซิร์ฟเลตและเจเอสพี โดยทำงานร่วมกับตัวแปลโปรแกรมชื่อ ทอมแคต แจสเปอร์ (Tomcat Jasper) ในการแปลงเจเอสพีให้กลายเป็นเซิร์ฟเลตก่อนนำไปประมวลผล

เอนจินเซิร์ฟเลตของทอมแคตนั้นมักทำงานร่วมกับ อะแพชี เว็บเซิร์ฟเวอร์ (Apache HTTP Server) หรือโปรแกรมเว็บเซิร์ฟเวอร์อื่นๆ หรือสามารถตั้งตัวเป็นเซิร์ฟเวอร์เอกเทศก็ได้ ซึ่งในการพัฒนาก่อนหน้านี้มีแนวความคิดว่า เมื่อทอมแคตทำงานเป็นโปรแกรมที่ทำงานโดดเดี่ยว (standalone) จะเหมาะกับสภาพแวดล้อมที่ไม่ต้องการความรวดเร็วและการดูแลธุรกรรม (transaction) มากนัก อย่างไรก็ตามแนวความคิดดังกล่าวไม่มีอีกต่อไป เนื่องจากทอมแคตได้เพิ่มประสิทธิภาพเป็นเซิร์ฟเวอร์ที่รองรับสภาพแวดล้อมที่มีการจราจรหนาแน่นสูง

ทอมแคตสามารถทำงานได้ข้ามระบบปฏิบัติการ เพียงแค่ต้องการจาวารันไทม์เอนไวรอนเมนต์ (Java Runtime Environment) เท่านั้น

สถานภาพของการพัฒนา 
สมาชิกของมูลนิธิซอฟต์แวร์อะแพชีและอาสาสมัครอิสระจะเป็นผู้ช่วยพัฒนาและดูแลรักษาทอมแคต ผู้ใช้ทั่วไปสามารถเข้าถึงทั้งซอร์สโค้ดและซอฟต์แวร์ที่แปลแล้วของทอมแคตภายใต้สัญญาอนุญาตอะแพชี (Apache License) รุ่นแรกของทอมแคตที่เผยแพร่สู่สาธารณะเริ่มต้นที่ 3.0.x (ซึ่งรุ่นก่อนหน้านี้เป็นการเผยแพร่ภายในซันไมโครซิสเต็มส์เท่านั้น ไม่ออกสู่สาธารณะ) และรุ่น 6.0.13 เป็นรุ่นล่าสุดที่เสถียรในสายรุ่น 6.0.x ตามข้อกำหนดเซิร์ฟเลตรุ่น 2.5 ในปี ค.ศ. 2007

ลักษณะสำคัญ 
การอธิบายคร่าวๆ เกี่ยวกับลักษณะสำคัญที่แตกต่างระหว่างรุ่นสามารถดูได้ที่เว็บไซต์ของมูลนิธิ

ทอมแคต 3.x 
 ใช้ข้อกำหนดเซิร์ฟเลตรุ่น 2.2 และเจเอสพีรุ่น 1.1
 การเพิ่มเซิร์ฟเลต
 ฟังก์ชันพื้นฐานบน HTTP

ทอมแคต 4.x 
 ใช้ข้อกำหนดเซิร์ฟเลตรุ่น 2.3 และเจเอสพีรุ่น 1.2
 ตัวบรรจุเซิร์ฟเลตได้รับการออกแบบใหม่เป็น แคทาลินา (Tomcat Catalina)
 เอนจินของเจเอสพีได้รับการออกแบบใหม่เป็น แจสเปอร์ (Tomcat Jasper)
 ตัวเชื่อมต่อไคโยตี (Coyote connector)
 จาวาแมนิจเมนต์เอกซเทนชันส์ (Java Management Extensions: JMX) การบริหารเจเอสพีบนพื้นฐานของ อะแพชี สตรัตส์ (Apache Struts)

ทอมแคต 5.x 
 ใช้ข้อกำหนดเซิร์ฟเลตรุ่น 2.4 และเจเอสพีรุ่น 2.0
 ลดการเก็บข้อมูลขยะ เพิ่มประสิทธิภาพและการขยายตัวได้ (scalability)
 บูรณาการแพลตฟอร์มระหว่างวินโดวส์และยูนิกซ์
 การแจงส่วน (parsing) สำหรับเจเอสพีเร็วขึ้น

ทอมแคต 6.x 
 ใช้ข้อกำหนดเซิร์ฟเลตรุ่น 2.5 และเจเอสพีรุ่น 2.1
 รองรับ Unified Expression Language รุ่น 2.1
 ออกแบบมาเพื่อทำงานบนจาวารุ่น 5.0 เป็นต้นไป
 รองรับการใช้งาน โคเมต (Comet) ผ่านทางส่วนต่อประสานโคเมตโพรเซสเซอร์ (CometProcessor)

อ้างอิง

ดูเพิ่ม 
 เจบอสส์ (JBoss)

แหล่งข้อมูลอื่น 
 Apache Tomcat Wiki
 
 Tomcat-Book project
 Configure Tomcat through Apache using mod_jk 

มูลนิธิซอฟต์แวร์อะแพชี
แพลตฟอร์มจาวาเอนเทอร์ไพรส์
ซอฟต์แวร์เว็บเซิร์ฟเวอร์เสรี