Διαφορά μεταξύ EJB2 και EJB3

Διαφορά μεταξύ EJB2 και EJB3
Διαφορά μεταξύ EJB2 και EJB3

Βίντεο: Διαφορά μεταξύ EJB2 και EJB3

Βίντεο: Διαφορά μεταξύ EJB2 και EJB3
Βίντεο: Δεν Ανοίγουμε την Πόρτα του Φούρνου | Energy Saving Cooking Tips #6 | Άκης Πετρετζίκης 2024, Νοέμβριος
Anonim

EJB2 vs EJB3

Το EJB (Enterprise JavaBeans) είναι ένα Java API (Application Programming Interface) που βρίσκεται στην προδιαγραφή Java EE (Java Platform, Enterprise Edition). Το EJB περιγράφει ένα αρχιτεκτονικό μοντέλο για την ανάπτυξη εταιρικών εφαρμογών. Αυτό είναι ένα διαχειριζόμενο μοντέλο από την πλευρά του διακομιστή που είναι σε θέση να αποτυπώσει την επιχειρηματική λογική της εταιρικής εφαρμογής. Η IBM είναι ο αρχικός δημιουργός της EJB που την ανέπτυξε το 1997. Η Sun Microsystems την υιοθέτησε το 1999.

Πριν από την εισαγωγή του EJB, διαπιστώθηκε ότι οι λύσεις σε προβλήματα που βρίσκονταν στον επιχειρηματικό κώδικα back-end επαναεφαρμόστηκαν συχνά από τους προγραμματιστές. Ως αποτέλεσμα, η EJB εισήχθη για να αντιμετωπίσει αυτά τα κοινά προβλήματα όπως η επιμονή, η ακεραιότητα των συναλλαγών και η ασφάλεια. Το EJB παρέχει τυπικούς τρόπους χειρισμού αυτών των προβλημάτων υποστήριξης, καθορίζοντας τον τρόπο με τον οποίο ο διακομιστής εφαρμογών θα πρέπει να επεξεργάζεται τις συναλλαγές, να ενσωματώνεται με υπηρεσίες JPA (Java Persistence API), να χειρίζεται τον έλεγχο συγχρονισμού, να χειρίζεται συμβάντα JMS (Υπηρεσία μηνυμάτων Java), να επιλύει προβλήματα ονομασίας με το JNDI (Java Naming and Directory Interface), αναπτύξτε ασφαλή προγράμματα με JCE (Java Cryptography Extension) και JAAS (Java Authentication and Authorization Service), αναπτύξτε στοιχεία, επικοινωνήστε εξ αποστάσεως με το RMI-IIOP (Interface Remote Method Invocation Java μέσω του Πρωτοκόλλου Inter-Orb Internet), αναπτύξτε υπηρεσίες web, επικαλέστε ασύγχρονες μεθόδους και χρησιμοποιήστε την υπηρεσία Timer.

EJB2

Το EJB2 (EJB 2.0) κυκλοφόρησε στις 22 Αυγούστου 2001. Περιγράφει τις προδιαγραφές για την ανάπτυξη κατανεμημένων αντικειμενοστρεφών εφαρμογών σε Java συνδυάζοντας εργαλεία που έχουν αναπτυχθεί από διαφορετικούς προμηθευτές. Ένας από τους κύριους στόχους του EJB2 ήταν να επιτρέψει στους προγραμματιστές να αναπτύσσουν εταιρικές εφαρμογές πιο εύκολα χωρίς να χρειάζεται να κατανοούν λεπτομέρειες χαμηλού επιπέδου, όπως το multi-threading και τη συγκέντρωση συνδέσεων. Ένας άλλος στόχος ήταν να επιτραπεί στους προγραμματιστές να γράψουν ένα «Bean» μία φορά και να τρέξουν οπουδήποτε χωρίς επαναμεταγλώττιση (συμμορφούμενοι με το σύνθημα «γράψτε μια φορά, τρέξτε οπουδήποτε» της γλώσσας προγραμματισμού Java). Επιπλέον, το EJB2 είχε σκοπό να επιτρέψει στα στοιχεία που έχουν αναπτυχθεί από διαφορετικούς προμηθευτές να διαλειτουργούν εύκολα και να επιτρέπουν στους προμηθευτές να γράφουν επεκτάσεις για τα προϊόντα τους που μπορούν να υποστηρίξουν EJB.

EJB3

Το EJB3 (EJB 3.0) κυκλοφόρησε στις 11 Μαΐου 2006. Το EJB3 έκανε τους προγραμματιστές πολύ εύκολη, επιτρέποντάς τους να χρησιμοποιούν σχολιασμούς στη θέση των περιγραφών ανάπτυξης που χρησιμοποιούνταν σε προηγούμενες εκδόσεις. Το EJB3 περιέχει μια επιχειρηματική διεπαφή και ένα συγκεκριμένο bean οντότητας που μπορεί να υλοποιήσει αυτήν την επιχειρηματική διεπαφή, καταργώντας την ανάγκη χρήσης οικιακών/απομακρυσμένων διεπαφών και του αρχείου ejb-jar.xml. Η συνολική απόδοση του EJB3 είναι πολύ βελτιωμένη σε σύγκριση με το EJB2 και υπάρχει σημαντική αύξηση στη διαμόρφωση, ευελιξία και φορητότητα σε αυτήν την έκδοση του EJB.

Ποια είναι η διαφορά μεταξύ EJB2 και EJB3;

Το EJB3 έχει αξιοσημείωτη βελτίωση στη διαμόρφωση και την απόδοση σε σχέση με το EJB2. Ένας λόγος για αυτήν τη βελτίωση της απόδοσης είναι η χρήση του POJO (Plain Old Java Object) με μεταδεδομένα και XML Deployment Descriptors από την EJB3 αντί για αναζητήσεις JNDI που χρησιμοποιούνται στο EJB2 για αναφορές αντικειμένων. Η διαμόρφωση του EJB3 είναι πολύ απλούστερη επειδή ο προγραμματιστής δεν χρειάζεται να εφαρμόσει διεπαφές Home/Remote και άλλες (π.χ. SessionBean), γεγονός που καταργεί την ανάγκη χρήσης μεθόδων επανάκλησης κοντέινερ (όπως το ejbActivate και το ejbStore).

Επιπλέον, το EJB3 είναι καλύτερο από το EJB2 στους τομείς της ευελιξίας και της φορητότητας. Για παράδειγμα, είναι εύκολο να μετατρέψετε οντότητες EJB3 σε DAO (Αντικείμενο πρόσβασης δεδομένων) και αντίστροφα, επειδή οι οντότητες 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.

Συνιστάται: