Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Σχετικά έγγραφα
Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

Διαδικτυακές Εφαρμογές Ενότητα 3: Ανάπτυξη JavaEE 6 εφαρμογής με JSF2, EJB3 και JPA

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Ειδικά Θέματα Προγραμματισμού

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Πληροφορική στιςεπιχειρήσεις

Εισαγωγή στη J2EE. Μέρος 2

Ανάπτυξη εφαρμογής διαχείρισης μαθημάτων με χρήση τεχνολογιών Java 2 Enterprise Edition (J2EE)

Ειδικά Θέματα Προγραμματισμού

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ειδικά Θέματα Προγραμματισμού

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΠΡΟΤΥΠΩΝ ΣΧΕΔΙΑΣΗΣ» της ΜΑΡΙΑΣ ΜΟΥΡΑΤΙΔΟΥ

Θερμοδυναμική - Εργαστήριο

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Υπολογιστικά Συστήματα

Δομημένος Προγραμματισμός

Προγραμματισμός Διαδικτύου

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Οργάνωση και Διοίκηση Πωλήσεων

Ειδικά Θέματα Προγραμματισμού

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός Διαδικτύου

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Συστήματα Αναμονής. Ενότητα 5: Ανέλιξη Poisson. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Σχεδίαση Δικτύων Υπολογιστών

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΜΑΘΗΜΑ: Μεταγλωττιστές

Διαδικαστικός Προγραμματισμός

Μοντελοποίηση Λογικών Κυκλωμάτων

Συστήματα Αναμονής. Ενότητα 3: Στοχαστικές Ανελίξεις. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Κοινωνική Οικονομία Συνεταιριστική Επιχειρηματικότητα

Οντοκεντρικός Προγραμματισμός

Οργάνωση και Διοίκηση Πωλήσεων Ενότητα 8: ΟΡΓΑΝΩΣΗ ΤΗΣ ΔΥΝΑΜΗΣ ΠΩΛΗΤΩΝ

Διαχείριση Πληροφοριακών Συστημάτων

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Πύλη Φαρμακευτικών Υπηρεσιών Υπουργείου Υγείας Κύπρου. System Architecture Overview

Transcript:

Διαδικτυακές Εφαρμογές Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Enterprise Java Beans (EJB) και Java Server Faces

Σκοποί ενότητας Σε αυτή την ενότητα ασχολούμαστε με τα Enterprise Java Beans και τα Java Server Faces. 5

Περιεχόμενα ενότητας (1/2) Εισαγωγή. Τύποι EJB. CustomerEJB. CustomerEJBRemote. 6

Περιεχόμενα ενότητας (2/2) Ο κώδικας της CustomerEJB. Java Server Faces. Εφαρμογές Web. 7

Εισαγωγή (1/3) EJBs είναι server-side στοιχεία τα οποία ενσωματώνουν επιχειρηματική λογική και έχουν τον έλεγχο των συναλλαγών και την ασφάλεια αυτών. Έχουν επίσης μια ολοκληρωμένη στοίβα για την ανταλλαγή μηνυμάτων, τον προγραμματισμό, απομακρυσμένη πρόσβαση, τελικά σημεία παροχής υπηρεσιών διαδικτύου (SOAP και REST). 8

Εισαγωγή (2/3) Επιπλέον, τα EJBs μπορούν να ενσωματωθούν με άλλες τεχνολογίες είτε JavaSE (Java Standard Edition) είτε JavaEE (Java Enterprise Edition), όπως JDBC, JavaMail, JPA, Java Transaction Application Programming Interface - API (JTA), Java Messaging Service (JMS), Java Authentication και Authorization Service (JAAS), Java Naming και Java Directory Interface (JNDI), και Remote Method Invocation (RMI). 9

Εισαγωγή (3/3) Το EJB βρίσκεται πάνω από το επίπεδο Persistence και αποτελεί εισαγωγικό επίπεδο για το επίπεδο παρουσίασης (π.χ. Java Server Faces JSF). Το EJB ορίζει τύπους που οι προγραμματιστές μπορούν να κατασκευάσουν αλλά και να προσαρμόσουν. 10

Τύποι EJB (1/5) Session Beans τα οποία εκτελούν επιχειρηματικές (business) λειτουργίες και διευθύνουν τις δοσοληψίες και τον έλεγχο πρόσβασης. Υπάρχουν δύο τύποι session beans Tα stateless τα οποία δεν διατηρούν την κατάστασή τους με την πλευρά του πελάτη και επομένως είναι ποιο αποδοτικά όσον αφορά τους πόρους του συστήματος. Συνήθως με τα stateless υλοποιούμε υπηρεσίες ιστού. Tα statefull τα οποία μπορούν να αποθηκεύουν την κατάστασή τους σε κάποιο μέσο αποθήκευσης δεδομένων κατά την διάρκεια κάποιας συναλλαγής (για παράδειγμα καλάθι αγορών σε ένα e-shop). 11

Τύποι EJB (2/5) Message-Driven Beans (MDB) καλούνται ασύγχρονα για να ανταποκριθούν σε εξωτερικά γεγονότα, μέσω της σχέσης τους με μια ουρά μηνυμάτων ή άλλου αντικειμένου. Entities Beans τα οποία είναι αντικείμενα που έχουν μοναδική ταυτότητα και αναπαριστούν τα αποθηκευμένα (persistent) δεδομένα, που υπάρχουν αποθηκευμένα στην βάση δεδομένων. Παράδειγμα επιχειρησιακών αντικειμένων αποτελούν οι πελάτες, οι παραγγελίες, τα προϊόντα και άλλα. 12

Τύποι EJB (3/5) Το Session Bean υποκρύπτει το επιχειρηματικό μοντέλο και τις συναλλαγές από τον χρήστη. Το επόμενο παράδειγμα δείχνει πόσο απλά αναγνωρίζεται αν μια κλάση είναι ένα session bean ώστε να εφαρμοστούν σε αυτήν διάφορες υπηρεσίες που αφορούν το επιχειρηματικό μοντέλο. 13

Τύποι EJB (4/5) Σχήμα 1. Customer EJB. 14

Τύποι EJB (5/5) Προηγούμενες εκδόσεις της J2EE απαιτούσαν από τους προγραμματιστές να δημιουργήσουν αρκετά αντικείμενα προκειμένου να δημιουργήσουν ένα session bean. Από την Java EE5 και το EJB 3.0 είναι αρκετά μία κλάση και ένα ή περισσότερα business interfaces. Το EJB 3.1 πάει μακρύτερα και επιτρέπει ένα σχολιασμένο POJO (Plain Old Java Object) να έχει τον ρόλο του session bean. 15

Τύποι EJB Όπως μπορούμε να παρατηρήσουμε στον προηγούμενο κώδικα, δεν χρειάζεται να υλοποιήσουμε κανένα Interface και δεν χρειάζεται κανένα XML αρχείο ρυθμίσεων. Το μόνο που χρειάζεται για να αλλάξουμε μια κλάση ώστε να είναι δυνατή με ασφάλεια η πραγματοποίηση συναλλαγών είναι ο σχολιασμός Stateless. 16

CustomerEJB Αυτό δίνει τη δυνατότητα στην CustomerEJB χρησιμοποιώντας τον entity manager να δημιουργεί και να δέχεται αντικείμενα Customer από την βάση δεδομένων. Στον κώδικα που ακολουθεί εισάγουμε ένα πελάτη στην βάση δεδομένων. 17

CustomerEJBRemote (1/3) Σχήμα 2. Εισαγωγή απομακρυσμένου πελάτη. 18

CustomerEJBRemote (2/3) Θα δημιουργήσουμε ένα interface (CustomerEJBRemote) το οποίο θα χρησιμοποιεί ο χρήστης για να αλληλεπιδρά με την βάση δεδομένων. 19

CustomerEJBRemote (3/3) Επίσης θα αλλάξουμε την Customer ώστε να υλοποιεί την διασύνδεση Seralization και τέλος ξαναγράφουμε την Customer ως εξής. Σχήμα 3. Δημιουργία interface και αλλαγή customer. 20

CustomerEJB - Συνέχεια Θα γράψουμε τώρα την CustomerEJB η οποία λειτουργεί σαν μια πρόσοψη και χειρίζεται λειτουργίες CRUD (Create, Read, Update, Delete). Επίσης η CustomerEJB υλοποιεί το interface CustomerEJBRemote. 21

Ο κώδικας της CustomerEJB (1/2) Σχήμα 4. Ο κώδικας της CustomerEJB (1). 22

Ο κώδικας της CustomerEJB (2/2) Σχήμα 5. Ο κώδικας της CustomerEJB (2). 23

Java Server Faces Οι JSF (Java Server Faces) είναι ένα πλαίσιο εφαρμογών Web οι οποίες απλοποιούν την σχεδίασης τους γραφικού περιβάλλοντος και διαχωρίζουν το Business από το Presentation Model. Εκτός από τα τυπικά συστατικά που υπάρχουν στο Java Server Faces, μπορούμε να χρησιμοποιήσουμε και άλλες βιβλιοθήκες τρίτων κατασκευαστών. 24

Εφαρμογές Web (1/3) Οι web εφαρμογές NetBeans που χρησιμοποιούν το πλαίσιο εφαρμογών JSF αποτελούνται από μια ή περισσότερες σελίδες JSP ( Java Server Pages - τα αρχεία αυτά έχουν την επέκταση.jsp). Μέσα σε μια σελίδα JSP μπορούμε να ενσωματώσουμε Javascript κώδικα ώστε να προσθέσουμε διαλειτουργικότητα στην σελίδα. 25

Εφαρμογές Web (2/3) Στο Netbeans μπορούμε να δημιουργήσουμε σελίδες JSP μέσα από έναν Visual Editor, απλά σύροντας και αφήνοντας συστατικά μέσα στην σελίδα (Drag and Drop). Κάθε JSP αρχείο που δημιουργείται στο NetBeans και αντιπροσωπεύει μια ιστοσελίδα έχει και μια αντίστοιχη κλάση JavaBean που ονομάζεται page bean. 26

Εφαρμογές Web (3/3) Η κλάση JavaBean περιέχει έναν constructor χωρίς ορίσματα, συναρτήσεις set και get, χειριστές συμβάντων και μεθόδους κύκλου ζωής των σελίδων. 27

Βιβλιογραφία 1. Java προγραμματισμός, Όγδοη έκδοση, Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 2. «Προγραμματισμός Internet και World Wide Web», Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 3. «Πλήρες εγχειρίδιο της Java 6», Lemay C, Εκδόσεις Γκιούρδας Μ., Αθήνα 2007. 28

Τέλος Ενότητας