Αρχιτεκτονική EJB

Αυτό το θέμα παρέχει επισκόπηση υψηλού επιπέδου της αρχιτεκτονικής κατανεμημένων συστατικών στοιχείων που ορίζεται στην προδιαγραφή αρχιτεκτονικής Sun Microsystems Enterprise JavaBeans (EJB).

Οι πλήρεις προδιαγραφές και περιγραφές επιχειρηματικών JavaBeans της τεχνολογίας διατίθενται από το δικτυακό τόπο java.sun.com [/concept/conbody/p/xref/desc {"- topic/desc "}) (desc].

Τα enterprise bean παρέχουν διάφορα πλεονεκτήματα για τους προγραμματιστές εφαρμογών:

Επιχειρηματικά bean
Ένα enterprise bean αποτελεί ένα μη γραφικό συστατικό στοιχείο μιας κατανεμημένης, επιχειρηματικής εφαρμογής συναλλαγής. Τα enterprise bean διανέμονται συνήθως σε θέσεις υποδοχής EJB και εκτελούνται σε εξυπηρετητές EJB. Μπορείτε να τα τροποποιήσετε αλλάζοντας τα αρχεία περιγραφής διανομής τους και μπορείτε να τα συγκεντρώσετε με άλλα bean για να δημιουργήσετε νέες εφαρμογές. Υπάρχουν τρία είδη enterprise bean: bean συνεδρίας, bean οντότητας και bean με βάση τα μηνύματα.
  • Bean συνεδρίας: Τα bean συνεδρίας αποτελούν μη μόνιμα enterprise bean. Μπορεί να είναι "stateful" ή "stateless". Ένα enterprise bean του είδους "stateful" ενεργεί εκ μέρους ενός μοναδικού πελάτη και διατηρεί πληροφορίες συνεδρίας που αφορούν τον πελάτη (καλείται κατάσταση της συνομιλίας) κατά τη διάρκεια πολλαπλών κλήσεων μεθόδων και συναλλαγών. Υπάρχει για τη διάρκεια μίας συνεδρίας πελάτη/εξυπηρετητή. Συγκριτικά, ένα enterprise bean του είδους "stateless" δεν διατηρεί κατάσταση της συνομιλίας . Τα enterprise bean του είδους "stateless" ομαδοποιούνται με βάση τη θέση υποδοχής τους για τη διαχείριση πολλαπλών αιτήσεων από πολλαπλούς πελάτες.
  • Bean οντότητας: Τα bean οντότητας αποτελούν enterprise bean τα οποία περιέχουν μόνιμα δεδομένα και μπορούν να αποθηκευτούν σε διάφορους, μόνιμους χώρους αποθήκευσης δεδομένων. Κάθε bean οντότητας μπορεί να μεταφέρει τη δική του ταυτότητα. Τα bean οντότητας τα οποία διαχειρίζονται τη δική τους μονιμότητα ονομάζονται bean οντότητας για διαχείριση μονιμότητας μέσω bean (BMP). Τα bean οντότητας τα οποία αναθέτουν τη μονιμότητά τους στη θέση υποδοχής EJB ονομάζονται bean οντότητας για διαχείριση μονιμότητας μέσω θέσης υποδοχής (CMP).
  • Bean με βάση τα μηνύματα: Τα bean με βάση τα μηνύματα αποτελούν enterprise bean τα οποία λαμβάνουν και επεξεργάζονται μηνύματα JMS. Αντίθετα με τα bean συνεδρίας ή οντότητας, τα bean με βάση τα μηνύματα δεν διαθέτουν διεπαφές. Μπορεί να επιτευχθεί πρόσβαση σε αυτά μόνο μέσω μηνυμάτων και δεν διατηρούν καμία κατάσταση συνομιλίας. Τα bean με βάση τα μηνύματα επιτρέπουν την ασύγχρονη επικοινωνία μεταξύ της ουράς και της λειτουργίας ακρόασης και διαχωρίζουν την επεξεργασία μηνυμάτων από την επιχειρηματική λογική.
Απομακρυσμένη προβολή πελάτη
Η προδιαγραφή απομακρυσμένης προβολής πελάτη έγινε διαθέσιμη από το EJB 1.1. Η απομακρυσμένη προβολή πελάτη ενός enterprise bean είναι ανεξάρτητη της θέσης. Ένας πελάτης που εκτελείται στο ίδιο JVM με μια χρήση bean χρησιμοποιεί το ίδιο API για πρόσβαση στο bean ως πελάτης που εκτελείτε σε διαφορετικό JVM στον ίδιο ή σε διαφορετικό υπολογιστή.
  • Απομακρυσμένη διεπαφή: Η απομακρυσμένη διεπαφή προσδιορίζει τις απομακρυσμένες επιχειρηματικές μεθόδους τις οποίες μπορεί να καλέσει ένας πελάτης σε ένα enterprise bean.
  • Απομακρυσμένη κεντρική διεπαφή: Η απομακρυσμένη κεντρική διεπαφή προσδιορίζει τις μεθόδους που χρησιμοποιούνται από τους απομακρυσμένους πελάτες για τον εντοπισμό, τη δημιουργία και την αφαίρεση χρήσεων των κλάσεων enterprise bean.
Τοπική προβολή πελάτη
Η προδιαγραφή τοπικής προβολής πελάτη διατίθεται σε EJB 2.0 ή μεταγενέστερο. Η τοπική προβολή πελάτη ενός bean εξαρτάται από τη θέση, κάτι που δεν συμβαίνει με την απομακρυσμένη προβολή πελάτη. Η πρόσβαση τοπικής προβολής πελάτη σε enterprise bean απαιτεί ο τοπικός πελάτης και το enterprise bean που παρέχει την τοπική προβολή πελάτη να βρίσκονται στο ίδιο JVM. Η τοπική προβολή πελάτη, συνεπώς, δεν παρέχει την διαφάνεια θέσης η οποία παρέχεται από την απομακρυσμένη προβολή πελάτη. Οι τοπικές διεπαφές και οι τοπικές κεντρικές διεπαφές παρέχουν υποστήριξη για πρόσβαση μειωμένων λειτουργιών από enterprise bean που αποτελούν τοπικούς πελάτες. Τα bean συνεδρίας και τα bean οντότητας μπορούν να συνδεθούν στενά με τους πελάτες τους, επιτρέποντας την πρόσβαση χωρίς την καθυστέρηση που συνήθως συσχετίζεται με τις απομακρυσμένες κλήσεις μεθόδων.
  • Τοπική διεπαφή: Η τοπική διεπαφή αποτελεί μια εκδοχή μειωμένων λειτουργιών της απομακρυσμένης διεπαφής αλλά για τοπικούς πελάτες. Περιλαμβάνει μεθόδους επιχειρηματικής λογικής τις οποίες μπορεί να καλέσει τοπικός πελάτης.
  • Τοπική κεντρική διεπαφή: Η τοπική κεντρική διεπαφή προσδιορίζει τις μεθόδους που χρησιμοποιούνται από τους τοπικούς πελάτες για τον εντοπισμό, τη δημιουργία και την αφαίρεση χρήσεων των κλάσεων enterprise bean.
Προβολή πελάτη διαδικτυακών υπηρεσιών
Στην προδιαγραφή EJB 2.1, η αρχιτεκτονική EJB εισήγαγε την υποστήριξη για διαδικτυακές υπηρεσίες. Ένας πελάτης για ένα bean συνεδρίας μπορεί είναι πελάτης διαδικτυακής υπηρεσίας. Ένας πελάτης διαδικτυακής υπηρεσίας μπορεί να χρησιμοποιήσει την προβολή πελάτης διαδικτυακής υπηρεσίας ενός bean συνεδρίας του τύπου "stateless", που διαθέτει μια αντίστοιχη διεπαφή τελιού σημείου υπηρεσίας.
Διεπαφή τερματικού σημείου υπηρεσίας
Η διεπαφή τερματικού σημείου υπηρεσίας για ένα bean συνεδρίας του είδους "stateless" εκθέτει τη λειτουργικότητα ενός bean συνεδρίας ως τελικό σημείο διαδικτυακής υπηρεσίας. Το έγγραφο WSDL μιας διαδικτυακής υπηρεσίας περιγράφει τη διαδικτυακή υπηρεσία ως σύνολο τελικών σημείων που λειτουργούν σε μηνύματα. Ένα έγγραφο WSDL μπορεί να περιλαμβάνει τη διεπαφή τελικού σημείου υπηρεσίας ενός bean συνεδρίας τύπου "stateless" ως ένα από τα τελικά του σημεία. Οποιοδήποτε υπάρχον bean συνεδρίας τύπου "stateless" μπορεί να τροποποιηθεί έτσι ώστε να περιλαμβάνει μια προβολή πελάτη διαδικτυακής υπηρεσίας, διαφορετικά μπορεί μια διεπαφή τελικού σημείου υπηρεσίας να αντιστοιχιστεί από ένα υπάρχον έγγραφο WSDL για να παράσχει τη σωστή διεπαφή.

Μια προβολή πελάτη διαδικτυακής υπηρεσίας είναι ανεξάρτητη θέσης και μπορεί να επιτευχθεί πρόσβαση σε αυτή μέσω απομακρυσμένων κλήσεων.

Αρχείο JAR για πελάτη EJB
Ένα αρχείο JAR για πελάτη EJB αποτελεί ένα προαιρετικό αρχείο JAR που περιέχει τις διεπαφές πελάτη τις οποίες χρειάζεται ένα πρόγραμμα πελάτη για να χρησιμοποιήσει τις προβολές πελάτη των enterprise bean που περιέχονται στο αρχείο JAR για EJB. Αν αποφασίσετε να μη δημιουργήσετε ένα αρχείο JAR για πελάτη EJB για μια λειτουργική μονάδα EJB, όλες οι κλάσεις διεπαφής πελάτη θα βρίσκονται στο αρχείο JAR EJB. Ως προεπιλογή, ο πάγκος εργασίας δημιουργεί έργα JAR για πελάτη EJB για κάθε αντίστοιχο έργο EJB.
Θέση υποδοχής EJB
Μια θέση υποδοχής EJB αποτελεί ένα περιβάλλον εκτέλεσης το οποίο διαχειρίζεται ένα ή περισσότερα enterprise bean. Η θέση υποδοχής EJB διαχειρίζεται τους κύκλους ζωής των αντικειμένων enterprise bean, συντονίζει τις κατανεμημένες συναλλαγές και υλοποιεί την ασφάλεια αντικειμένου. Γενικά, κάθε θέση υποδοχής EJB παρέχεται από έναν εξυπηρετητή EJB και περιέχει ένα σύνολο enterprise bean τα οποία εκτελούνται στον εξυπηρετητή.
Αρχείο περιγραφής διανομής
Ένα αρχείο περιγραφής διανομής αποτελεί ένα αρχείο XML που συσκευάζεται με τα enterprise bean σε ένα αρχείο JAR EJB ή ένα αρχείο EAR. Περιέχει τα μετα-δεδομένα που περιγράφουν τα περιεχόμενα και τη δομή των enterprise bean και τις πληροφορίες ασφαλείας και συναλλαγών περιβάλλοντος εκτέλεσης για τη θέση υποδοχής EJB.
Εξυπηρετητής EJB
Ένας εξυπηρετητής EJB αποτελεί μια εφαρμογή ή μια διεργασία ανωτέρου επιπέδου που παρέχει ένα περιβάλλον εκτέλεσης για την υποστήριξη της εκτέλεσης εφαρμογών του εξυπηρετητή που χρησιμοποιούν enterprise bean. Ένας εξυπηρετητής EJB παρέχει μια υπηρεσία ονοματοθεσίας με δυνατότητα πρόσβασης από JNDI, διαχειρίζεται και συντονίζει την κατανομή των πόρων σε εφαρμογές πελάτη, παρέχει πρόσβαση στους πόρους του συστήματος και παρέχει υπηρεσία συναλλαγών. Για παράδειγμα, μια βάση δεδομένων ή ένας εξυπηρετητής εφαρμογών θα μπορούσε να παράσχει έναν εξυπηρετητή EJB.