Java EE - มันคืออะไร?
Java EEเป็นแพลตฟอร์มที่สร้างขึ้นบน Java SE ซึ่งมี API และสภาพแวดล้อมรันไทม์สำหรับการพัฒนาและรันแอปพลิเคชันเครือข่ายขนาดใหญ่ หลายระดับ ปรับขนาดได้ เชื่อถือได้ และปลอดภัย แอปพลิเคชันดังกล่าวเรียกว่าแอปพลิเคชันระดับองค์กรเนื่องจากช่วยแก้ปัญหาที่ธุรกิจขนาดใหญ่ต้องเผชิญ อย่างไรก็ตาม องค์กรขนาดใหญ่และหน่วยงานภาครัฐไม่ใช่เพียงกลุ่มเดียวที่สามารถได้รับประโยชน์จากแอปพลิเคชันดังกล่าวและสิทธิประโยชน์ที่ Java EE มอบให้ โซลูชันที่แพลตฟอร์ม Java EE นำเสนอนั้นมีประโยชน์ และบางครั้งก็จำเป็นสำหรับนักพัฒนารายบุคคลและองค์กรขนาดเล็กการพัฒนาจาวา EE
Java EE ได้รับการพัฒนาผ่าน Java Community Process (JCP) ซึ่งก่อตั้งขึ้นในปี 1998 ช่วยให้ผู้มีส่วนได้เสียมีส่วนร่วมในการกำหนดข้อกำหนดแพลตฟอร์มภาษา Java เวอร์ชันอนาคต พื้นฐานของกระบวนการนี้คือ JSR (Java Specification Request) ซึ่งเป็นเอกสารอย่างเป็นทางการที่อธิบายข้อกำหนดและเทคโนโลยีที่เสนอให้เพิ่มลงในแพลตฟอร์ม Java คำขอดังกล่าวจัดทำโดยสมาชิกชุมชน - นักพัฒนาทั่วไปและบริษัท อย่างหลัง ได้แก่ Oracle, Red Hat, IBM, Apache และอื่นๆ อีกมากมาย เหล่านั้น. พวกเขาเสนอคุณสมบัติใหม่และสารพัดเพื่อการพิจารณาที่พวกเขาต้องการรวมไว้ใน Java จากนั้นพวกเขาก็ลงคะแนนเสียงโดยพิจารณาจากการตัดสินใจว่าจะรวมอะไรไว้ในเวอร์ชันถัดไป ประวัติเวอร์ชัน Java EE มีลักษณะดังนี้:- J2EE 1.2 (ธันวาคม 2542)
- J2EE 1.3 (กันยายน 2544)
- J2EE 1.4 (พฤศจิกายน 2546)
- Java EE 5 (พฤษภาคม 2549)
- Java EE 6 (ธันวาคม 2552)
- Java EE 7 (พฤษภาคม)
- Java EE 8 (สิงหาคม 2017)
- จาการ์ตา EE 8 (กันยายน 2019)
สถาปัตยกรรมแอปพลิเคชัน Java EE
แนะนำสั้น ๆ เพื่อให้เข้าใจง่ายขึ้น เรามาพูดถึงโครงสร้างของแอปพลิเคชัน Java EE และคำศัพท์บางคำที่เราจะใช้เพิ่มเติมกัน แอปพลิเคชัน Java EE มีโครงสร้างที่มีคุณสมบัติหลักสองประการ:- ประการแรกหลายระดับ แอปพลิเคชัน Java EE มีหลายระดับ และเราจะพูดถึงรายละเอียดเพิ่มเติมในภายหลัง
- ประการที่สอง การทำรัง มีเซิร์ฟเวอร์ Java EE (หรือแอปพลิเคชันเซิร์ฟเวอร์) โดยมีคอนเทนเนอร์ส่วนประกอบอยู่ภายใน ส่วนประกอบของคอนเทนเนอร์เหล่านี้ (บิงโก!)
ระดับการใช้งาน
แอปพลิเคชันแบบหลายชั้นคือแอปพลิเคชันที่แบ่งตามหลักการทำงานออกเป็นโมดูลแยกกัน (ระดับ, เลเยอร์) โดยทั่วไป (รวมถึงในบริบทของการพัฒนา Java EE) แอปพลิเคชันระดับองค์กรจะแบ่งออกเป็นสามระดับ:- ลูกค้า;
- ระดับเฉลี่ย
- ระดับการเข้าถึงข้อมูล
-
เลเยอร์ไคลเอ็นต์คือแอปพลิเคชันที่ร้องขอข้อมูลจากเซิร์ฟเวอร์ Java EE (เลเยอร์กลาง) ในทางกลับกันเซิร์ฟเวอร์จะประมวลผลคำขอของลูกค้าและตอบกลับไป แอปพลิเคชันไคลเอ็นต์อาจเป็นเบราว์เซอร์ แอปพลิเคชันแบบสแตนด์อโลน (อุปกรณ์เคลื่อนที่หรือเดสก์ท็อป) หรือแอปพลิเคชันเซิร์ฟเวอร์อื่นๆ ที่ไม่มีอินเทอร์เฟซแบบกราฟิก
-
ระดับกลางจะถูกแบ่งออกเป็นระดับเว็บและระดับตรรกะทางธุรกิจ
-
เลเยอร์เว็บประกอบด้วยองค์ประกอบบางอย่างที่ให้การโต้ตอบระหว่างไคลเอนต์และเลเยอร์ตรรกะทางธุรกิจ
เทคโนโลยี Java EE ต่อไปนี้ถูกใช้ในระดับเว็บ:
- เทคโนโลยี JavaServer Faces (JSF);
- หน้าเซิร์ฟเวอร์ Java (JSP);
- ภาษานิพจน์ (EL);
- เซิร์ฟเล็ต;
- บริบทและการพึ่งพาการฉีดสำหรับ Java EE (CDI)
-
เลเยอร์ตรรกะทางธุรกิจประกอบด้วยส่วนประกอบที่ใช้ตรรกะทางธุรกิจทั้งหมดของแอปพลิเคชัน ตรรกะทางธุรกิจคือโค้ดที่ให้ฟังก์ชันการทำงานที่ครอบคลุมความต้องการของธุรกิจบางประเภท (อุตสาหกรรมการเงิน การธนาคาร อีคอมเมิร์ซ) ระดับนี้ถือได้ว่าเป็นแกนหลักของทั้งระบบ
เทคโนโลยีที่เกี่ยวข้องในระดับนี้:
- องค์กร JavaBeans (EJB);
- บริการเว็บ JAX-RS RESTful;
- เอนทิตี Java Persistence API;
- บริการข้อความจาวา
-
-
ระดับการเข้าถึงข้อมูล ระดับนี้บางครั้งเรียกว่าระดับของระบบข้อมูลองค์กร (EIS) EIS ประกอบด้วยเซิร์ฟเวอร์ฐานข้อมูลต่างๆ ระบบการวางแผนทรัพยากรองค์กร ERP (Enterprise Resource Planning) และแหล่งข้อมูลอื่นๆ เลเยอร์ตรรกะทางธุรกิจเข้าถึงเลเยอร์นี้เพื่อดูข้อมูล
ในระดับนี้คุณจะพบเทคโนโลยีต่างๆ เช่น:
- API การเชื่อมต่อฐานข้อมูล Java (JDBC);
- Java Persistence API;
- สถาปัตยกรรมตัวเชื่อมต่อ Java EE;
- Java ธุรกรรม API (JTA)
แอปพลิเคชันเซิร์ฟเวอร์ คอนเทนเนอร์ ส่วนประกอบ
เรามาดูคำจำกัดความของ Java EE จาก Wikipedia กันดีกว่า Java EE คือชุดข้อกำหนดและเอกสารที่เกี่ยวข้องสำหรับภาษา Java ซึ่งอธิบายสถาปัตยกรรมของแพลตฟอร์มเซิร์ฟเวอร์สำหรับงานขององค์กรขนาดกลางและขนาดใหญ่ เพื่อให้เข้าใจได้ดีขึ้นว่า "ชุดข้อกำหนด" หมายถึงอะไรในบริบทนี้ เรามาทำความเข้าใจกับอินเทอร์เฟซ Java กันดีกว่า อินเทอร์เฟซ Java นั้นไร้ฟังก์ชันการทำงาน เพียงกำหนดสัญญาบางอย่างตามการใช้งานฟังก์ชันบางอย่าง แต่คลาสอื่นใช้อินเทอร์เฟซ นอกจากนี้ อินเทอร์เฟซเดียวสามารถมีการใช้งานได้หลายอย่าง ซึ่งแต่ละส่วนอาจแตกต่างกันในรายละเอียดบางประการ ด้วยสเปคทุกอย่างจะเหมือนกันทุกประการ Naked Java EE เป็นเพียงชุดข้อมูลจำเพาะเท่านั้น ข้อมูลจำเพาะเหล่านี้ถูกนำไปใช้โดยเซิร์ฟเวอร์ Java EE ต่างๆ เซิร์ฟเวอร์ Java EE คือแอปพลิเคชันเซิร์ฟเวอร์ที่ใช้ API แพลตฟอร์ม Java EE และให้บริการ Java EE มาตรฐาน เซิร์ฟเวอร์ Java EE บางครั้งเรียกว่าเซิร์ฟเวอร์แอปพลิเคชัน ข้อมูลเซิร์ฟเวอร์สามารถมีส่วนประกอบของแอปพลิเคชัน ซึ่งแต่ละองค์ประกอบสอดคล้องกับระดับของตัวเองในลำดับชั้นหลายระดับ เซิร์ฟเวอร์ Java EE ให้บริการต่างๆ แก่ส่วนประกอบเหล่านี้ในรูปแบบของคอนเทนเนอร์ คอนเทนเนอร์เป็นส่วนติดต่อระหว่างส่วนประกอบที่โฮสต์และฟังก์ชันการทำงานที่ไม่ขึ้นกับแพลตฟอร์มระดับต่ำที่รองรับส่วนประกอบ คอนเทนเนอร์ให้บริการเฉพาะแก่ส่วนประกอบที่โฮสต์ ตัวอย่างเช่น การจัดการวงจรการพัฒนา การพึ่งพาการฉีด การทำงานพร้อมกัน ฯลฯ คอนเทนเนอร์ซ่อนความซับซ้อนทางเทคนิคและเพิ่มความสามารถในการพกพา มี คอนเทนเนอร์สี่ประเภทที่แตกต่างกันใน Java EE :-
เบราว์เซอร์ส่วนใหญ่ใช้งาน Applet Container เมื่อพัฒนาแอปเพล็ต คุณสามารถมุ่งความสนใจไปที่ด้านภาพของแอปพลิเคชันได้ ในขณะที่คอนเทนเนอร์จะมีสภาพแวดล้อมที่ปลอดภัย
-
Application Client Container (ACC) ประกอบด้วยชุดคลาส Java ไลบรารี และไฟล์อื่นๆ ที่จำเป็นในการใช้งานคุณสมบัติต่างๆ เช่น การแทรก การจัดการความปลอดภัย และการตั้งชื่อบริการในแอปพลิเคชัน Java SE
-
เว็บคอนเทนเนอร์ให้บริการหลักสำหรับการจัดการและดำเนินการส่วนประกอบของเว็บ (เซิร์ฟเล็ต, ส่วนประกอบ EJB Lite, เพจ JSP, ตัวกรอง, Listener, เพจ JSF และบริการเว็บ) มีหน้าที่รับผิดชอบในการสร้างอินสแตนซ์ การเริ่มต้น และการเรียกใช้เซิร์ฟเล็ต และการสนับสนุนโปรโตคอล HTTP และ HTTPS คอนเทนเนอร์นี้ใช้เพื่อแสดงหน้าเว็บไปยังเบราว์เซอร์ไคลเอ็นต์
-
คอนเทนเนอร์ EJB (Enterprise Java Bean) มีหน้าที่ในการจัดการและดำเนินการส่วนประกอบโมเดล EJB ที่มีเลเยอร์ตรรกะทางธุรกิจของแอปพลิเคชัน โดยจะสร้างเอนทิตี EJB bean ใหม่ จัดการวงจรการใช้งาน และให้บริการต่างๆ เช่น ธุรกรรม ความปลอดภัย การทำงานพร้อมกัน การแจกจ่าย การตั้งชื่อ หรือการเรียกใช้แบบอะซิงโครนัส
-
Applets คือแอปพลิเคชันส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) ที่ทำงานบนเบราว์เซอร์ พวกเขาใช้ประโยชน์จาก Swing API เพื่อสร้างอินเทอร์เฟซผู้ใช้ที่มีประสิทธิภาพ
-
แอปพลิเคชันคือโปรแกรมที่ทำงานบนฝั่งไคลเอ็นต์ โดยทั่วไปเป็นส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) และใช้สำหรับการประมวลผลเป็นชุด
-
เว็บแอปพลิเคชัน (ประกอบด้วยเซิร์ฟเล็ตและตัวกรอง, ฟังเหตุการณ์เว็บ, เพจ JSP และ JSF) - รันในเว็บคอนเทนเนอร์และตอบสนองต่อคำขอ HTTP จากเว็บไคลเอ็นต์ Servlets ยังรองรับจุดสิ้นสุดบริการเว็บ SOAP และ RESTful
-
แอปพลิเคชันระดับองค์กร (ที่สร้างด้วย Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services) ทำงานในคอนเทนเนอร์ EJB EJB ที่จัดการโดยคอนเทนเนอร์จะจัดการตรรกะทางธุรกิจของธุรกรรม สามารถเข้าถึงได้ทั้งในเครื่องหรือระยะไกลผ่าน RMI (หรือ HTTP สำหรับ SOAP และบริการเว็บ RESTful)

เทคโนโลยี
ดังนั้นเราจึงได้แยกแยะสถาปัตยกรรมออก โครงสร้างโดยรวมควรมีความชัดเจน ในกระบวนการอธิบายส่วนประกอบทางสถาปัตยกรรม เราได้กล่าวถึงเทคโนโลยี Java EE บางอย่าง เช่น EJB, JSP ฯลฯ มาดูเทคโนโลยีเหล่านั้นให้ละเอียดยิ่งขึ้นกัน ตารางด้านล่างแสดงเทคโนโลยีที่ใช้เป็นหลักในระดับไคลเอนต์:เทคโนโลยี | วัตถุประสงค์ |
---|---|
เซิร์ฟเล็ต | คลาส Java ที่ประมวลผลคำขอไคลเอ็นต์แบบไดนามิกและสร้างการตอบกลับ (โดยปกติจะเป็นหน้า HTML) |
จาวาเซิร์ฟเวอร์ใบหน้า (JSF) | เฟรมเวิร์กสำหรับการสร้างเว็บแอปพลิเคชันด้วยอินเทอร์เฟซผู้ใช้ ช่วยให้คุณสามารถรวมส่วนประกอบอินเทอร์เฟซผู้ใช้ (เช่น ฟิลด์และปุ่ม) บนเพจ แปลงและตรวจสอบส่วนประกอบเหล่านี้ และจัดเก็บข้อมูลนี้ไว้ในที่เก็บข้อมูลฝั่งเซิร์ฟเวอร์ |
เทคโนโลยี Java Server Faces Facelets | เป็นประเภทย่อยของแอปพลิเคชัน JSF ที่ใช้เพจ XHTML แทนเพจ JSP |
เพจเซิร์ฟเวอร์ Java (JSP) | เอกสารข้อความที่คอมไพล์เป็นเซิร์ฟเล็ต ช่วยให้คุณสามารถเพิ่มเนื้อหาไดนามิกลงในเพจแบบคงที่ (เช่น เพจ HTML) |
ไลบรารีแท็กมาตรฐานของเพจเซิร์ฟเวอร์ Java (JSTL) | ไลบรารีแท็กที่สรุปการทำงานหลักในบริบทของเพจ JSP |
ภาษาการแสดงออก | ชุดแท็กมาตรฐานที่ใช้ในเพจ JSP และ Facelets เพื่อเข้าถึงคอมโพเนนต์ Java EE |
บริบทและการพึ่งพาการฉีดสำหรับ Java EE (CDI) | แสดงถึงชุดบริการที่คอนเทนเนอร์ Java EE มอบให้สำหรับการจัดการวงจรชีวิตของส่วนประกอบ ตลอดจนการแทรกส่วนประกอบลงในอ็อบเจ็กต์ไคลเอ็นต์ด้วยวิธีที่ปลอดภัย |
ส่วนประกอบ Java Beans | ออบเจ็กต์ที่ทำหน้าที่เป็นที่จัดเก็บข้อมูลชั่วคราวสำหรับหน้าแอปพลิเคชัน |
เทคโนโลยี | วัตถุประสงค์ |
---|---|
ส่วนประกอบ Enterprise Java Beans (enterprise bean) | EJB คือถั่วที่ได้รับการจัดการซึ่งมีฟังก์ชันการทำงานหลักของแอปพลิเคชัน |
บริการเว็บ JAX-RS RESTful | เป็น API สำหรับการพัฒนาบริการเว็บที่สอดคล้องกับรูปแบบสถาปัตยกรรม REST |
จุดสิ้นสุดบริการเว็บ JAX-WS | API สำหรับการสร้างและใช้บริการเว็บ SOAP |
เอนทิตี Java Persistence API (JPA) | API สำหรับการเข้าถึงข้อมูลในที่เก็บข้อมูลและแปลงข้อมูลนั้นเป็นออบเจ็กต์ภาษาการเขียนโปรแกรม Java และในทางกลับกัน |
Java EE จัดการถั่ว | Managed beans ที่จัดเตรียมตรรกะทางธุรกิจของแอปพลิเคชัน แต่ไม่ต้องการคุณลักษณะด้านธุรกรรมหรือความปลอดภัยของ EJB |
บริการข้อความจาวา | Java Message Service (JMS) API เป็นมาตรฐานการส่งข้อความที่อนุญาตให้คอมโพเนนต์แอปพลิเคชัน Java EE สร้าง ส่ง รับ และอ่านข้อความ ช่วยให้มั่นใจได้ถึงการสื่อสารแบบกระจาย เชื่อถือได้ และแบบอะซิงโครนัสระหว่างส่วนประกอบต่างๆ |
เทคโนโลยี | วัตถุประสงค์ |
---|---|
API การเชื่อมต่อฐานข้อมูล Java (JDBC) | API ระดับต่ำสำหรับการเข้าถึงและดึงข้อมูลจากที่เก็บข้อมูล การใช้งานทั่วไปของ JDBC คือการเขียนคำสั่ง SQL กับฐานข้อมูลเฉพาะ |
Java Persistence API | API สำหรับการเข้าถึงข้อมูลในที่เก็บข้อมูลและแปลงข้อมูลนั้นเป็นออบเจ็กต์ภาษาการเขียนโปรแกรม Java และในทางกลับกัน API ระดับที่สูงกว่ามากเมื่อเทียบกับ JDBC ซ่อนความซับซ้อนทั้งหมดของ JDBC จากนักพัฒนาภายใต้ประทุน |
สถาปัตยกรรมตัวเชื่อมต่อ Java EE | API สำหรับเชื่อมต่อทรัพยากรอื่นๆ ขององค์กร เช่น:
|
Java ธุรกรรม API (JTA) | API สำหรับการกำหนดและจัดการธุรกรรม รวมถึงธุรกรรมแบบกระจายและธุรกรรมข้ามที่เก็บข้อมูลหลายแห่ง |
GO TO FULL VERSION