הבדל בין EJB2 ל-EJB3

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

וִידֵאוֹ: הבדל בין EJB2 ל-EJB3

וִידֵאוֹ: הבדל בין EJB2 ל-EJB3
וִידֵאוֹ: ההבדל בין נינג'ה גריל AG301 לבין נינג'ה גריל מקס AG553 XL 2024, סֶפּטֶמבֶּר
Anonim

EJB2 לעומת EJB3

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

לפני הצגת ה-EJB, נמצא שפתרונות לבעיות שנמצאו בקוד עסקי עורפי יושמו מחדש לעתים קרובות על ידי המתכנתים.כתוצאה מכך, EJB הוצג כדי לטפל בבעיות נפוצות אלה כגון התמדה, שלמות עסקה ואבטחה. EJB מספקת דרכים סטנדרטיות לטפל בבעיות האחוריות הללו, על ידי ציון כיצד שרת היישומים צריך לעבד עסקאות, להשתלב עם שירותי JPA (Java Persistence API), לטפל בבקרת במקביל, לטפל באירועי JMS (Java Message Service), לפתור בעיות שמות עם JNDI (ממשק ג'אווה שמות וממשק ספריות), מפתחים תוכניות מאובטחות עם JCE (הרחבת Java Cryptography) ו-JAAS (שירות אימות והרשאה של Java), פריסת רכיבים, תקשורת מרחוק עם RMI-IIOP (ממשק הפעלת שיטת Java מרחוק על גבי פרוטוקול האינטרנט Inter-Orb), לפתח שירותי אינטרנט, להפעיל שיטות אסינכרוניות ולהשתמש בשירות טיימר.

EJB2

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

EJB3

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

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

ל-EJB3 יש שיפור ניכר בתצורה ובביצועים לעומת EJB2. אחת הסיבות לשיפור הביצועים הזה היא השימוש ב-POJO (Plain Old Java Object) עם מטא נתונים ו-XML Deployment Descriptors על ידי EJB3 במקום חיפושי JNDI המשמשים ב-EJB2 להפניות לאובייקטים. התצורה של EJB3 היא הרבה יותר פשוטה מכיוון שהמתכנת אינו צריך ליישם ממשקי בית/מרחוק ואחרים (למשל 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) ללא צורך להשתמש בקונטיינרים (זה אפשרי מכיוון שהוא לא מיישם ממשקים סטנדרטיים). שלא כמו EJB2, EJB3 ניתן לחיבור בקלות עם ספקי התמדה המוצעים על ידי צדדים שלישיים. הבדל חשוב נוסף בין EJB3 ל-EJB2 הוא ש-EJB3 יכול להשתמש באבטחה מבוססת הערות, בעוד EJB2 השתמש באבטחה מבוססת מתארי פריסה. משמעות הדבר היא שמשימות תצורה והגדרה קלות הרבה יותר ב-EJB3, ויש הפחתה ניכרת בתקורות הביצועים בהשוואה ל-EJB2.

מוּמלָץ: