สถาปัตยกรรม EJB 2.x

หัวข้อนี้มีภาพรวมระดับสูงของสถาปัตยกรรมคอมโพเนนต์ แบบกระจายที่กำหนดในข้อมูลจำเพาะสถาปัตยกรรม Sun Microsystems Enterprise JavaBeans™ (EJB) เวอร์ชัน 2.x

ข้อมูลจำเพาะ Enterprise JavaBeans ทั้งหมด และคำอธิบาย ของเทคโนโลยีจะมีในเว็บไซต์ java.sun.com

Enterprise beans มีประโยชน์หลายประการสำหรับผู้พัฒนาแอ็พพลิเคชัน โดย ทำต่อไปนี้:

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 สามารถ ระบุโดย ตัวอย่างเช่น ฐานข้อมูล หรือแอ็พพลิเคชันเซิร์ฟเวอร์