**อะแพชี ทอมแคต** (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)

อ้างอิง
-------

1. ↑  "Apache Tomcat 6 Downloads". Apache Software Foundation. สืบค้นเมื่อ 2007-03-14.
2. 1 2  "Apache Tomcat -- Which Version Do I Want?". Apache Software Foundation. สืบค้นเมื่อ 2007-01-22.

ดูเพิ่ม
-------

* เจบอสส์ (JBoss)

แหล่งข้อมูลอื่น
---------------

* Apache Tomcat Wiki[*ลิงก์เสีย*]
* Jason Brittain, Ian F. Darwin. *Tomcat: The Definitive Guide*. O'Reilly Books. p. 322. ISBN 0-596-00318-8.
* Tomcat-Book project
* Configure Tomcat through Apache using mod\_jk เก็บถาวร 2008-07-04 ที่ เวย์แบ็กแมชชีน