หัวข้อนี้มีภาพรวมระดับสูงของสถาปัตยกรรมคอมโพเนนต์
แบบกระจายที่กำหนดในข้อมูลจำเพาะสถาปัตยกรรม Sun Microsystems
Enterprise JavaBeans™ (EJB) เวอร์ชัน 2.x
ข้อมูลจำเพาะ Enterprise JavaBeans ทั้งหมด และคำอธิบาย
ของเทคโนโลยีจะมีในเว็บไซต์ java.sun.com
Enterprise beans มีประโยชน์หลายประการสำหรับผู้พัฒนาแอ็พพลิเคชัน โดย
ทำต่อไปนี้:
- อนุญาตให้คุณสร้างแอ็พพลิเคชันแบบกระจายโดยการรวมคอมโพเนนต์ที่พัฒนาขึ้น
โดยใช้เครื่องมือจากผู้จำหน่ายที่แตกต่างกัน
- ช่วยให้เขียนแอ็พพลิเคชันได้ง่าย คุณไม่จำเป็นต้องจัดการกับรายละเอียด
ระดับล่างของการจัดการธุรกรรม และสภาวะ, การทำมัลติเธรด, การพูลรีซอร์ส
และ APIs ระดับล่างที่ซับซ้อนอื่นๆ อย่างไรก็ตาม ถ้าจำเป็นโปรแกรมเมอร์ปผู้เชี่ยวชาญ
สามารถมีการเข้าถึง APIs ระดับล่างโดยตรง
- ได้รับการพัฒนาทันทีจากนั้นปรบใช้บนหลายแพลตฟอร์มโดยไม่ต้องคอมไพล์ใหม่
หรือแก้ไขซอร์สโค้ด
- นำเสนอความเข้ากันได้ระหว่างข้อมูลจำเพาะ EJB ที่ควบคุมการใช้งาน
beans เอ็นเตอร์ไพรซ์ และ Java™ APIs และ CORBA อื่นๆ ทั้งนี้ยังมี
สำหรับการทำงานร่วมกันระหว่าง beans เอ็นเตอร์ไพรซ์ และแอ็พพลิเคชันที่ไม่ใช่ Java
- Enterprise beans
- Bean เอ็นเตอร์ไพรซ์ไม่ใช่คอมโพเนนต์ที่แสดงภาพของเอ็นเตอร์ไพรซ์แอ็พพลิเคชัน
แบบธุรกรรมแบบกระจาย Beans เอ็นเตอร์ไพรซ์โดยทั่วไปถูกปรับใช้ในคอนเทนเนอร์ EJB
และรันบนเซิร์ฟเวอร์ EJB คุณสามารถกำหนดได้เองโดยเปลี่ยนแปลง descriptor
การปรับใช้ และคุณสามารถรวมเข้ากับ beans อื่นๆ เพื่อสร้างแอ็พพลิเคชันใหม่
Enterprise beans มีสามประเภท: bean เซสชัน, entity beans และ
beans ที่กำหนดทำงานด้วยข้อความ beans เซสชัน และ beans ที่กำหนดทำงานด้วยข้อความเป็นคอมโพเนนต์
แบบคร่าว ที่ออกแบบมาสำหรับโมเดลกระบวนการธุรกิจในขณะที่ entity beans
ถูกใช้เพื่อโมเดลอ็อบเจ็กต์ข้อมูลในระดับรายละเอียด
- bean เซสชัน: beans เซสชัน คือ enterprise beans ที่ไม่สนับสนุนการมีอยู่
โดยสามารถเป็นแบบสภาวะ หรือไร้สภาวะ
- beans เซสชัน แบบระบุสถานะ: ทำหน้าที่เสมือนเป็นไคลเอ็นต์เดียว และดูแลรักษา
ข้อมูลเซสชันเฉพาะไคลเอ็นต์ (เรียกว่า conversational state) ในการเรียกใช้
เมธอดและทรานแซคชันต่างๆ โดยมีอยู่ในช่วงเซสชันไคลเอ็นต์/เซิร์ฟเวอร์
เดียว
- beans เซสชัน แบบไม่ระบุสถานะ: ไม่มีการเก็บค่า conversational state
ใดๆ และจะถูกพูลโดยคอนเทนเนอร์เพื่อจัดการหลายๆ ร้องขอ จากหลายๆ
ไคลเอ็นต์
- Entity beans: Entity beans คือ beans เอ็นเตอร์ไพรซ์ที่มีข้อมูล
ถาวร และที่สามารถบันทึกในที่เก็บ data ถาวรต่างๆ แต่ละ entity
bean จะมีเอกลักษณ์ของตนเอง Entity beans ที่จัดการการเก็บรักษาของตนเอง
ถูกเรียกว่า bean-managed persistence (BMP) entity beans Entity beans ที่
มอบหมายการเก็บรักษาให้แก่คอนเทนเนอร์ EJB ถูกเรียกว่า container-managed
persistence (CMP) entity beans
- Message-driven beans: Message-driven beans คือ beans เอ็นเตอร์ไพรซ์
ที่ได้รับและประมวลผลข้อความ JMS ต่างจาก beans เซสชันหรือentity เพราะ message-driven
beans ไม่มีอินเตอร์เฟส สามารถเข้าถึงได้ด้วยข้อความ และ
ไม่เก็บรักษาสภาวะการสนทนาใดๆ Beans แบบกำหนดทำงานด้วยข้อความอนุญาต
ให้มีการสื่อสารแบบอะซิงโครนัสระหว่างคิวและ listener และมี
การแบ่งระหว่างการประมวลผลข้อความและตรรกะทางธุรกิจ
- มุมมองรีโมตไคลเอ็นต์
- ข้อมูลจำเพาะมุมมองรีโมตไคลเอ็นต์จะมีให้เริ่มตั้งแต่ EJB
1.1 มุมมองรีโมตไคลเอ็นต์ของ bean เอ็นเตอร์ไพรซ์มีตำแหน่งอิสระต่อกัน
ไคลเอ็นต์ที่รันใน JVM เดียวกับอินสแตนซ์ bean ใช้ API เดียวกันเพื่อเข้าถึง
bean กับไคลเอ็นต์รันใน JVM ต่างกันบนเครื่องเดียวกันหรือต่างเครื่องหมาย
มุมมองรีโมตไคลเอ็นต์ประกอบด้วยสองอินเตอร์เฟส
- รีโมตอินเตอร์เฟส: รีโมตอินเตอร์เฟสระบุเมธอดธุรกิจ
รีโมตที่ไคลเอ็นต์สามารถเรียกใช้บน bean เอ็นเตอร์ไพรซ์
- รีโมตโฮมอินเตอร์เฟส: รีโมตโฮมอินเตอร์เฟสระบุ
เมธอดที่ใช้โดยรีโมตไคลเอ็นต์สำหรับการระบุตำแหน่ง การสร้าง และการลบอินสแตนซ์
ของคลาส bean เอ็นเตอร์ไพรซ์
- มุมมองโลคัลไคลเอ็นต์
- ข้อมูลจำเพาะมุมมองโลคัลไคลเอ็นต์มีอยู่ใน EJB 2.0 หรือใหม่กว่า
ต่างจากมุมมองรีโมตไคลเอ็นต์ตรงที่ มุมมองโลคัลไคลเอ็นต์ของ bean ไม่ขึ้น
กับตำแหน่ง มุมมองโลคัลไคลเอ็นต์เข้าถึง bean เอ็นเตอร์ไพรซ์ต้องการใช้ทั้ง
โลคัลไคลเอ็นต์ และ bean เอ็นเตอร์ไพรซ์ที่ระบุมุมมองโลคัลไคลเอ็นต์
ที่อยู่ใน JVM เดียวกัน ดังนั้นมุมมองโลคัลไคลเอ็นต์ไม่มีการเป็นอิสระ
จากตำแหน่งอย่างที่มีให้โดยมุมมองรีโมตไคลเอ็นต์ โลคัลอินเตอร์เฟส และโลคัล
โฮมอินเตอร์เฟสมีการสนับสนุนสำหรับการเข้าถึง lightweight จาก beans เอ็นเตอร์ไพรซ์
ที่เป็นโลคัลไคลเอ็นต์ Beans เซสชันและเอนทิตีสามารถเข้าคู่กับ
ไคลเอ็นต์ เพื่ออนุญาตให้เข้าถึงโดยไม่ต้องมีโอเวอร์เฮดที่โดยทั่วไปสัมพันธ์กับ
การเรียกใช้รีโมตเมธอด มุมมองโลคัลไคลเอ็นต์ประกอบด้วยสองอินเตอร์เฟส:
- โลคัลอินเตอร์เฟส: โลคัลอินเตอร์เฟสเป็นเวอร์ชัน lightweight ของ
รีโมตอินเตอร์เฟส แต่ใช้สำหรับโลคัลไคลเอ็นต์ โดยมีเมธอดตรรกะธุรกิจ
ที่สามารถเรียกใช้โดยโลคัลไคลเอ็นต์
- โลคัลโฮมอินเตอร์เฟส: โลคัลโฮมอินเตอร์เฟสระบุ
เมธอดที่ใช้โดยโลคัลไคลเอ็นต์สำหรับการระบุตำแหน่ง การสร้าง และการลบอินสแตนซ์
ของคลาส bean เอ็นเตอร์ไพรซ์
- มุมมองเว็บเซอร์วิสไคลเอ็นต์
- ในข้อมูลจำเพาะ EJB 2.1 สถาปัตยกรรม EJB ได้แนะนำการสนับสนุน
สำหรับเว็บเซอร์วิส ไคลเอ็นต์สำหรับ bean เซสชัน สามารถเป็นเว็บเซอร์วิสไคลเอ็นต์
เว็บเซอร์วิสไคลเอ็นต์สามารถใช้มุมมองเว็บเซอร์วิสไคลเอ็นต์ของ bean เซสชัน แบบไม่ระบุสถานะ ซึ่งมีอินเตอร์เฟสของปลายทางเซอร์วิสที่สอดคล้องกัน
- อินเตอร์เฟสจุดปลายทางเซอร์วิส
- อินเตอร์เฟสที่ปลายทางเซอร์วิสสำหรับ bean เซสชัน แบบไม่ระบุสถานะแสดง
ฟังก์ชันการทำงานของ bean เซสชัน เป็นปลายทางเว็บเซอร์วิส เอกสาร Web Service
Description Language (WSDL) สำหรับเว็บเซอร์วิสอธิบายเว็บเซอร์วิส
เป็นชุดของจุดปลายทางที่ดำเนินงานกับข้อความ เอกสาร WSDL สามารถมี
อินเตอร์เฟสปลายทางเซอร์วิสของ bean เซสชัน แบบไม่ระบุสถานะเป็นหนึ่งในตำแหน่งปลายทาง
bean เซสชัน แบบไม่ระบุสถานะที่มีอยู่สามารถถูกแก้ไขเพื่อรวมเอามุมมองเว็บเซอร์วิส
ไคลเอ็นต์ หรืออินเตอร์เฟสปลายทางเซอร์วิสสามารถแม็พจาก WSDL
ที่มีอยู่แล้วเพื่อให้มีอินเตอร์เฟสที่ถูกต้อง
มุมมองเว็บเซอร์วิสไคลเอ็นต์เป็นอิสระจาก
ตำแหน่ง และสามารถเข้าถึงผ่านการเรียกใช้รีโมต
- ไฟล์ JAR ไคลเอ็นต์ EJB
- ไฟล์ JAR ไคลเอ็นต์ EJB เป็นไฟล์ JAR ทางเลือกที่สามารถมีไคลเอ็นต์
อินเตอร์เฟสที่ไคลเอ็นต์โปรแกรมต้องใช้ และมุมมองไคลเอ็นต์ของ
beans เอ็นเตอร์ไพรซ์ที่มีในไฟล์ EJB JAR ถ้าคุณตัดสินใจไม่
สร้างไฟล์ JAR ไคลเอ็นต์ EJB สำหรับโมดูล EJB ไคลเอ็นต์อินเตอร์เฟสคลาส
ทั้งหมดจะอยู่ในไฟล์ EJB JAR โดยดีฟอลต์ workbench สร้างโปรเจ็กต์
JAR ไคลเอ็นต์ EJB สำหรับแต่ละโปรเจ็กต์ EJB ที่สอดคล้องกัน
- คอนเทนเนอร์ EJB
- คอนเทนเนอร์ EJB คือสภาวะแวดล้อมรันไทม์ที่จัดการอย่างน้อยหนึ่ง bean
เอ็นเตอร์ไพรซ์ คอนเทนเนอร์ EJB จัดการวงจรชีวิตของอ็อบเจ็กต์ bean เอ็นเตอร์ไพรซ์
เข้าคู่กับธุรกรรมแบบกระจาย และประยุกต์ใช้การรักษาความปลอดภัยอ็อบเจ็กต์ โดยทั่วไป
แต่ละคอนเทนเนอร์ EJB ถูกระบุโดยเซิร์ฟเวอร์ EJB และมีชุดของ bean
เอ็นเตอร์ไพรซ์ที่รันบนเซิร์ฟเวอร์
- Descriptor การปรับใช้
- Descriptor การปรับใช้คือไฟล์ XML ที่แพ็กเกจมากับ beans เอ็นเตอร์ไพรซ์
ในไฟล์ EJB JAR หรือไฟล์ EAR โดยมีข้อมูลเมตาอธิบายเนื้อหา
และโครงสร้างของ beans เอ็นเตอร์ไพรซ์ และธุรกรรมรันไทม์ และข้อมูล
การรักษาความปลอดภัยสำหรับคอนเทนเนอร์ EJB
- เซิร์ฟเวอร์ EJB
- เซิร์ฟเวอร์ EJB คือกระบวนการหรือแอ็พพลิเคชันระดับสูงที่มีสภาวะแวดล้อม
รันไทม์เพื่อสนับสนุการเรียกใช้งานเซิร์ฟเวอร์แอ็พพลิเคชันที่ใช้ bean
เอ็นเตอร์ไพรซ์ เซิร์ฟเวอร์ EJB มีเซอร์วิสการตั้งค่าเพื่อเข้าถึง JNDI ได้ จัดการและ
ประสานงานการจัดสรรรีซอร์สให้แก่ไคลเอ็นต์แอ็พพลิเคชัน จัดให้มีการเข้าถึง
รีซอร์สระบบ และจัดให้มี transaction เซอร์วิส เซิร์ฟเวอร์ EJB สามารถ
ระบุโดย ตัวอย่างเช่น ฐานข้อมูล หรือแอ็พพลิเคชันเซิร์ฟเวอร์