ההבדל בין EJB2 ו- EJB3

Anonim

EJB2 לעומת EJB3

EJB (Enterprise JavaBeans) הוא ממשק API של Java (ממשק תכנות יישומים) שנמצא בתוך Java EE (Java פלטפורמה, Enterprise Edition) מפרט. EJB מתאר מודל אדריכלי לפיתוח יישומים ארגוניים. זהו מודל מנוהל בצד השרת המסוגל ללכוד את ההיגיון העסקי של היישום הארגוני. IBM היא היוצרת המקורית של EJB שפיתחה אותה ב -1997. סאן מיקרוסיסטמס אימצה אותה בשנת 1999.

לפני כניסתה של EJB, נמצא כי פתרונות לבעיות שנמצאו בקוד העסקי עורפיים היו מיושמים לעתים קרובות על ידי המתכנתים. כתוצאה מכך, EJB הוכנס לטפל בבעיות נפוצות אלה כגון התמדה, שלמות העסקה ואבטחה. EJB מספק דרכים סטנדרטיות לטפל בבעיות אלה סוף סוף, על ידי ציון כיצד שרת היישומים צריך לעבד עסקאות, לשלב עם JPA (Java התמדה API) שירותים, בקרת מקביל להתמודד, לטפל JMS (Java Message Service) אירועים, לפתור בעיות מתן שמות עם JNDI ((Java Java Cryptography Extension) ו- JAAS (Java Authentication and Authorization Service), לפרוס רכיבים, לתקשר מרחוק עם RMI-IIOP (ממשק Java Remote Invocation interface באמצעות פרוטוקול האינטרנט הבין-גלובלי), לפתח שירותי אינטרנט, להפעיל שיטות אסינכרוני ולהשתמש בשירות טיימר.

EJB2

EJB2 (EJB 2. 0) שוחרר ב -22 באוגוסט 2001. הוא מתאר מפרט לפיתוח יישומים מבוזרים מונחה עצמים ב- Java על ידי שילוב של כלים שפותחו על ידי ספקים שונים. אחת המטרות העיקריות של EJB2 היתה לאפשר למתכנתים לפתח יישומים ארגוניים בקלות רבה יותר מבלי להבין פרטים ברמה נמוכה, כגון ריבוי השחלות וחיבור חיבורים. מטרה נוספת הייתה לאפשר למתכנתים לכתוב "שעועית" פעם אחת ולהפעיל בכל מקום ללא recompilation (שמירה על הסיסמה "לכתוב פעם אחת, לרוץ בכל מקום" של שפת התכנות ג 'אווה). יתר על כן, EJB2 נועד לאפשר רכיבים שפותחו על ידי ספקים שונים כדי interoperate בקלות, ולאפשר לספקים לכתוב הרחבות עבור המוצרים שלהם שיכולים לתמוך EJBs.

EJB3

EJB3 (EJB 3. (0) שוחרר ב 11 במאי, 2006. EJB3 עשה מתכנתים החיים מאוד קל על ידי המאפשר להם להשתמש ביאורים במקום תיאורי הפריסה שהיו בשימוש הקודם גרסאות. EJB3 מכיל ממשק עסקי ושעוע ישות ספציפי שיכול ליישם את הממשק העסקי, תוך הסרת הצורך בשימוש בממשקים ביתיים / מרוחקים ובצנצנת ejb. קובץ XML. הביצועים הכוללים של EJB3 השתפרו בהרבה בהשוואה ל- EJB2, ויש עלייה ניכרת בתצורה, גמישות וניידות במהדורה זו של EJB.

מה ההבדל בין EJB2 ו- EJB3?

EJB3 יש שיפור ניכר בתצורה וביצועים על EJB2. סיבה אחת לשיפור ביצועים זה היא השימוש ב- POJO (אובייקט Java ישן רגיל) עם מטא-נתונים ו- XML ​​Deployment Descriptors על-ידי EJB3 במקום בדיקת JNDI המשמשת ב- EJB2 עבור הפניות של אובייקטים. התצורה של EJB3 היא הרבה יותר פשוטה, כי המתכנת אינו צריך ליישם את הבית / ממשקים מרוחקים ואחרים (eGB), אשר מסיר את הצורך להשתמש בשיטות התקשרות מוניות (כגון ejbActivate ו- ejbStore).

יתר על כן, EJB3 טוב יותר מאשר EJB2 בתחומי גמישות וניידות. לדוגמה, קל להמיר גופים EJB3 ל- DAO (אובייקט Access Data) ולהיפך, מכיוון שגורמי EJB3 הם קלים (בניגוד לישויות EJB2 במשקל כבד, אשר מיישמות ממשקים שהוזכרו לעיל). שאילתות מסד נתונים שנכתבו ב- EJB3 גמישות מאוד משום שהיא משתמשת ב- EJB-QL מעודן, במקום הגרסה הקודמת של EJB-QL, אשר היו לה מספר מגבלות. EJB3 מסיר את כל סוגיות הטלטלות של EJB2 (המשתמשת בפוליסות ישות לגישה למסדי נתונים) על ידי תמיכה ב- JPA כללי יותר לכל עסקאות הנתונים.

בניגוד EJB2, אשר צריך מיכל EJB לבצע, EJB3 יכול להתבצע JVM עצמאית (Java Virtual Machine) ללא צורך להשתמש מכולות (זה אפשרי כי זה לא מיישם ממשקים סטנדרטיים). שלא כמו EJB2, EJB3 הוא בקלות pluggable עם ספקי התמדה המוצעים על ידי צדדים שלישיים. הבדל חשוב נוסף בין EJB3 ו- EJB2 הוא ש- EJB3 יכול להשתמש בביטחון מבוסס ביאורים, בעוד ש- EJB2 השתמש באבטחה מבוססת אבטחה. משמעות הדבר היא שתצורה של תצורה ותצורה קלה הרבה יותר ב- EJB3, ויש ירידה ניכרת בתקורות הביצועים בהשוואה ל- EJB2.