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

Anonim

EJB2 εναντίον EJB3

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

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

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

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

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

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

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