ความแตกต่างระหว่าง EJB2 และ EJB3

ความแตกต่างระหว่าง EJB2 และ EJB3
ความแตกต่างระหว่าง EJB2 และ EJB3

วีดีโอ: ความแตกต่างระหว่าง EJB2 และ EJB3

วีดีโอ: ความแตกต่างระหว่าง EJB2 และ EJB3
วีดีโอ: เตาอบกับเตาไมโครเวฟ | เคล็ดลับก้นครัว 2024, กันยายน
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) คือ Java API (Application Programming Interface) ที่พบในข้อกำหนด Java EE (แพลตฟอร์ม Java, Enterprise Edition) EJB อธิบายรูปแบบสถาปัตยกรรมสำหรับการพัฒนาแอปพลิเคชันระดับองค์กร นี่คือโมเดลฝั่งเซิร์ฟเวอร์ที่มีการจัดการซึ่งสามารถจับตรรกะทางธุรกิจของแอปพลิเคชันระดับองค์กรได้ IBM เป็นผู้สร้างดั้งเดิมของ EJB ที่พัฒนามันในปี 1997 Sun Microsystems นำมาใช้ในปี 1999

ก่อนเปิดตัว EJB พบว่าวิธีแก้ไขปัญหาที่พบในรหัสธุรกิจส่วนหลังมักถูกนำกลับมาใช้ใหม่โดยโปรแกรมเมอร์ด้วยเหตุนี้ EJB จึงได้รับการแนะนำเพื่อแก้ไขปัญหาทั่วไปเหล่านี้ เช่น การคงอยู่ ความสมบูรณ์ของธุรกรรม และความปลอดภัย EJB จัดเตรียมวิธีมาตรฐานในการจัดการปัญหาส่วนหลังเหล่านี้ โดยระบุว่าแอปพลิเคชันเซิร์ฟเวอร์ควรประมวลผลธุรกรรมอย่างไร ผสานรวมกับบริการ JPA (Java Persistence API) จัดการการควบคุมพร้อมกัน จัดการเหตุการณ์ JMS (Java Message Service) แก้ไขปัญหาการตั้งชื่อด้วย JNDI (Java Naming and Directory Interface) พัฒนาโปรแกรมที่ปลอดภัยด้วย JCE (Java Cryptography Extension) และ JAAS (Java Authentication and Authorization Service) ปรับใช้ส่วนประกอบ สื่อสารจากระยะไกลด้วย RMI-IIOP (Java Remote Method Invocation interface ผ่าน Internet Inter-Orb Protocol), พัฒนาบริการเว็บ, เรียกใช้เมธอดแบบอะซิงโครนัสและใช้บริการตัวจับเวลา

EJB2

EJB2 (EJB 2.0) เปิดตัวเมื่อวันที่ 22 สิงหาคม พ.ศ. 2544 โดยจะอธิบายข้อกำหนดสำหรับการพัฒนาแอปพลิเคชันเชิงวัตถุแบบกระจายใน Java โดยการรวมเครื่องมือที่พัฒนาโดยผู้จำหน่ายต่างๆหนึ่งในเป้าหมายหลักของ EJB2 คือการอนุญาตให้โปรแกรมเมอร์พัฒนาแอปพลิเคชันระดับองค์กรได้ง่ายขึ้นโดยไม่ต้องเข้าใจรายละเอียดในระดับต่ำ เช่น มัลติเธรดและการรวมการเชื่อมต่อ อีกเป้าหมายหนึ่งคือการอนุญาตให้โปรแกรมเมอร์เขียน "Bean" เพียงครั้งเดียวและทำงานได้ทุกที่โดยไม่ต้องคอมไพล์ใหม่ (ยึดตามสโลแกน "เขียนครั้งเดียว รันได้ทุกที่" ของภาษาการเขียนโปรแกรม Java) นอกจากนี้ EJB2 ตั้งใจให้ส่วนประกอบที่พัฒนาขึ้นโดยผู้ขายหลายรายทำงานร่วมกันได้ง่าย และอนุญาตให้ผู้ขายเขียนส่วนขยายสำหรับผลิตภัณฑ์ของตนที่สามารถรองรับ EJB ได้

EJB3

EJB3 (EJB 3.0) เปิดตัวเมื่อวันที่ 11 พฤษภาคม พ.ศ. 2549 EJB3 ทำให้ชีวิตของโปรแกรมเมอร์เป็นเรื่องง่ายโดยอนุญาตให้ใช้คำอธิบายประกอบแทนตัวอธิบายการปรับใช้ที่ใช้ในเวอร์ชันก่อนหน้า EJB3 มีอินเทอร์เฟซทางธุรกิจและเอนทิตี bean เฉพาะที่สามารถใช้อินเทอร์เฟซทางธุรกิจได้ โดยไม่จำเป็นต้องใช้อินเทอร์เฟซหลัก/ระยะไกล และไฟล์ ejb-jar.xml ประสิทธิภาพโดยรวมของ EJB3 นั้นดีขึ้นมากเมื่อเทียบกับ EJB2 และความสามารถในการกำหนดค่า ความยืดหยุ่น และการพกพาเพิ่มขึ้นอย่างมากใน EJB รุ่นนี้

EJB2 กับ EJB3 ต่างกันอย่างไร

EJB3 มีการปรับปรุงอย่างเห็นได้ชัดในการกำหนดค่าและประสิทธิภาพเหนือ EJB2 เหตุผลหนึ่งสำหรับการปรับปรุงประสิทธิภาพนี้คือการใช้ POJO (Plain Old Java Object) กับ metadata และ XML Deployment Descriptors โดย EJB3 แทนการค้นหา JNDI ที่ใช้ใน EJB2 สำหรับการอ้างอิงอ็อบเจ็กต์ การกำหนดค่า EJB3 นั้นง่ายกว่ามาก เนื่องจากโปรแกรมเมอร์ไม่จำเป็นต้องใช้อินเทอร์เฟซ Home/Remote และอื่นๆ (เช่น SessionBean) ซึ่งไม่จำเป็นต้องใช้วิธีการเรียกกลับของคอนเทนเนอร์ (เช่น ejbActivate และ ejbStore)

นอกจากนี้ EJB3 ยังดีกว่า EJB2 ในด้านความยืดหยุ่นและการพกพา ตัวอย่างเช่น ง่ายต่อการแปลงเอนทิตี EJB3 เป็น DAO (Data Access Object) และในทางกลับกัน เนื่องจากเอนทิตี EJB3 นั้นมีน้ำหนักเบา (ตรงข้ามกับเอนทิตี EJB2 รุ่นหนา ซึ่งใช้อินเทอร์เฟซที่กล่าวถึงข้างต้น) การสืบค้นฐานข้อมูลที่เขียนด้วย EJB3 นั้นยืดหยุ่นมาก เนื่องจากใช้ EJB-QL ที่ปรับปรุงแล้ว แทนที่ EJB-QL เวอร์ชันเก่า ซึ่งมีข้อจำกัดหลายประการEJB3 ลบปัญหาการพกพาทั้งหมดของ EJB2 (ซึ่งใช้เอนทิตีบีนสำหรับการเข้าถึงฐานข้อมูล) โดยรองรับ JPA ทั่วไปมากขึ้นสำหรับธุรกรรมข้อมูลทั้งหมด

ต่างจาก EJB2 ซึ่งต้องการคอนเทนเนอร์ EJB เพื่อดำเนินการ EJB3 สามารถดำเนินการใน JVM อิสระ (Java Virtual Machine) โดยไม่ต้องใช้คอนเทนเนอร์ (เป็นไปได้เพราะไม่ได้ใช้อินเทอร์เฟซมาตรฐาน) EJB3 นั้นแตกต่างจาก EJB2 ตรงที่เสียบเข้ากับผู้ให้บริการการคงอยู่ซึ่งเสนอโดยบุคคลที่สามได้อย่างง่ายดาย ข้อแตกต่างที่สำคัญอีกประการหนึ่งระหว่าง EJB3 และ EJB2 คือ EJB3 สามารถใช้การรักษาความปลอดภัยตามคำอธิบายประกอบ ในขณะที่ EJB2 ใช้การรักษาความปลอดภัยตามตัวอธิบายการปรับใช้ ซึ่งหมายความว่างานการกำหนดค่าและการตั้งค่านั้นง่ายกว่ามากใน EJB3 และมีค่าใช้จ่ายด้านประสิทธิภาพลดลงอย่างมากเมื่อเทียบกับ EJB2

แนะนำ: