[Starter Series] Java EE Platform

สวัสดีครับ,..

ก็ห่างหายกันไปนานนะครับ 🙂

เช่นเคยครับ อ้างว่างานเยอะตลอดดดด

จริงๆก็แค่ งานเยอะ จนไม่อยากใช้วันหยุดไปกับเทคโนโลยีหน่ะครับ

เลยออกไปปั่นจักรยาน ไม่ยอมมาเขียน blog

อ่ะ ก็อ้างกันไปตามประสา

แต่วันนี้เขียนแล้วครับ

พอดี ผมทำ Java Bootcamp ไปเรื่อยๆ 2 เดือนครั้ง

แล้วช่วงนี้กำลังไล่เทคโนโลยี Java EE ตั้งแต่ต้น

ก็เลยถือโอกาส เอาเรื่องที่พูดใน Java Bootcamp มาเรียบเรียงให้ฟังกันแล้วกันครับ

Servlet…

ใช่ครับ วันนี้เราจะมาพูดกันถึง Servlet

ซึ่งเป็นรากฐานที่สุดของ Web Container บน Java EE

สำหรับมือใหม่อยากเริ่ม Java EE แนะนำให้อ่าน Starter Series นี้ได้เลยครับ 🙂

(จะพยายามเขียนให้นะ)

หลายคนชอบเรียนลัด เดี๋ยวก็เขียน JSF, Spring MVC หรือ Struts

แต่อย่าลืมว่าทุกอย่างเกิดจากรากฐาน

เราเรียนเร็วได้ แต่เราอย่าลืมว่าต้นกำเนิดของมันคืออะไร

Java EE เป็น Platform เพื่อให้ Java เดิมๆ (Java SE) มีคุณสมบัติ 3 ข้อนี้ สำหรับทำงาน Enterprise

  1. Mission Critical
  2. Reliable and Scalable
  3. Secure

เพราะอยากได้คุณสมบัติ 3 ข้อนี้ เราถึงเขียนแบบ public static void main() ธรรมดาไม่ได้

เพื่อคุณสมบัติ 3 ข้อเมื่อกี้ ทำให้เราต้องมีการกำหนด Software เพิ่มเติมสำหรับ Java EE Platform

ถ้าเราเขียน Java SE เราก็มีแค่ JDK หรือถ้าเราจะ run เราก็มีแค่ JRE ใช่รึป่าวครับ?

แต่ถ้าเราจะเขียน Java EE เราต้องมี Java EE Application Server

หรือ Application Server ที่ทำตามมาตรฐานของ Java EE

เช่น WebLogic, WebSphere, JBoss, Glassfish, …

Java EE Application Server นี่แหละครับ ที่ยกระดับการเขียนภาษา Java ของเรา ให้ต่างจาก Java SE และให้ได้มาซึ่งคุณสมบัติ 3 ข้อด้านบน

Java EE Application Server นั้นเป็นอย่างไร ก็เป็น Application Server หรือ Server สำหรับยัด Application เพื่อไป run ได้นั่นเอง

แต่ Application ที่จะไป run ได้ ต้องมีรูปแบบ ตามที่มาตรฐานกำหนดครับ ซึ่ง Java EE Application Server โดยมาตรฐาน จะ run application ได้ 3 รูปแบบ

  • Web ARchive (WAR file) ซึ่งจะเก็บโปรแกรมที่เป็น Web Component
  • ejb Java ARchive (JAR file) ซึ่งจะเก็บโปรแกรมที่เป็น EJB Component
  • Enterprise ARchive (EAR file) ซึ่งจะ pack รวม WAR file และ ejb JAR file เพื่อสำหรับ component ที่ใช้งานร่วมกัน เพื่อง่ายต่อการ deploy

จะเห็นว่าเราจะมี 2 type หลักๆคือ WAR file กับ ejb JAR file ส่วน EAR file นั้นก็แค่ที่รวมของ WAR และ ejb JAR เพื่ออำนวยความสะดวกในการ deploy

ทีนี้ คำถามคือว่า WAR และ ejb JAR นั้น เวลา deploy แล้วไปทำงานบน Java EE Application Server อย่างไร?

ตอบง่ายๆครับ ข้างใน Java EE Application Server ก็คือ โปรแกรม Java ตัวนึง ที่เขียนขึ้นมาเพื่อเพิ่มคุณสมบัติ 3 ข้อ ให้กับ Java Application ที่มา deploy ลงบนตัวมัน โดย Java EE Application Server จะทำตัวเป็น Platform ให้กับ Java Application ที่เราเอาไป deploy ใส่

ซึ่งเวลา Java EE Application Server ถูก run ขึ้นมา มันจะเตรียมส่วนของโปรแกรมไว้ 2 ส่วน สำหรับรับ Java Application ที่มา deploy ใส่ โดยส่วนของโปรแกรมใน Java EE Application Server นั้น เราเรียกว่า

  1. Web Container
  2. EJB Container

ถึงตรงนี้ พอเดาได้แล้วใช่มั้ยครับ ว่าที่ผมบอกว่า เรา deploy ได้ 3 รูปแบบไฟล์ แต่ไฟล์ EAR เป็นแค่ pack รวมของ WAR และ ejb JAR ดังนั้น พอจะ map ได้มั้ยครับ ว่า WAR และ ejb JAR จะไปลงที่ไหน?

ใช่ครับ

  • WAR -> Web Container
  • ejb JAR -> EJB Container
  • EAR -> โดยระเบิดเป็น WAR และ ejb JAR แล้วแยกยัดลง Web Container และ EJB Container

ทีนี้เราก็มาถึงจุดนี้ละ จุดที่เรารู้จัก Container ของ Java EE Application Server แล้ว

จุดนี้แหละครับ ตัว Container นี่แหละครับ ที่คอยช่วยเพิ่มคุณสมบัติ 3 ประการ ของ Enterprise Application ให้ Application ของเรา ที่เขียนบน Java EE Platform

และ Servlert ก็เป็น 1 ใน Class ที่เราต้องไป extend มาเวลาเราเขียน Java EE Platform เพื่อใช้โปรแรกมเราได้มีส่วนในการใช้คุณสมบัติ 3 ประการของ Enterprise Application ที่ Java EE มอบให้

หมดแรงละ รอบหน้าเล่า Servlet ต่อแล้วกัน รอบนี้ปูพื้นมาก่อน จบแค่ Java EE Platform

สวัสดีครับ

About champillon

Enterprise Opensource Implementer
This entry was posted in StarterSeries and tagged , , . Bookmark the permalink.

6 Responses to [Starter Series] Java EE Platform

  1. Nut Freedom says:

    ขอบคุณคร้าฟ รอตอนต่อไป

  2. deviltests02 says:

    รออ่านต่อ บรรยายได้สนุกมากครับ 🙂

  3. อ่านเพลินดี และได้ได้รับความรู้พื้นฐานที่สำคัญ ขอบคุณครับ

  4. isMe says:

    อ่านเพลินเลยครับ

Leave a comment