Εικονικό Εργαστήριο Διαχείρισης και Μετάδοσης Ψηφιακών Μέσων (Virtual Lab)

Σχετικά έγγραφα
Κουκουρίκος Παναγιώτης Α.Ε.Μ: 4447

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Επιμορφωτικές Τηλεκπαιδεύσεις

Βασικές Έννοιες Web Εφαρμογών

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Ψηφιακό Σχολείο 2.0. Βασικές έννοιες Υποδομές Ηλεκτρονική Μάθηση Διαχείριση Ηλεκτρονικής Τάξης Οργάνωση Ηλεκτρονικού Μαθήματος

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

Αρχές Προγραμματισμού Υπολογιστών

Αρχιτεκτονική Λογισμικού

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Προβλήµατα CGI, SSI CGI: Απόδοση Έναρξη νέας διαδικασίας για εκτέλεση (2 διαδικασιών σε περίπτωση διερµηνευόµενης γλώσσας, π.χ. perl). Κοινές διαδικασ

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Στρατηγική ανάπτυξη δικτυακού κόμβου

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Σχεδίαση και Ανάπτυξη Ιστότοπων

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών

Περιπτώσεις Χρήσης για το Π.Σ. ΜΟ.ΔΙ.Π. Κρήτης

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ ΕΠΙΚΟΙΝΩΝΙΑ... 23

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Διαχείριση Πολιτισμικών Δεδομένων

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

ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ ΠΑΡΑΡΤΗΜΑ ΧΙ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Ηλεκτρονική Μάθηση & Συστήματα που τη διαχειρίζονται

Εργαστήριο Βάσεων Δεδομένων

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Μαλούτα Θεανώ Σελίδα 1

Κεφάλαιο 4: Λογισμικό Συστήματος

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

1.1. Βάσεις δεδομένων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

6 ο Πακέτο Εργασίας «Ψηφιακή Βάση ιαχείρισης Γεωγνώσης (e-repository of Geoscience Content)»

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Μοντελοποίηση Συστημάτων

Από τα Δεδομένα στην Πληροφορία: Διδακτικό Σενάριο για Εισαγωγή στη Γλώσσα SQL. Σ. Φίλου Β. Βασιλάκης

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

Information Technology for Business

Μοντελοποίηση Συστημάτων

Περιεχόμενο του μαθήματος

Πληροφορίες για το μάθημα

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

Αρχιτεκτονική Υπολογιστών

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: Στόχος Σκοπός μαθήματος

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Περίληψη ιπλωµατικής Εργασίας

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Ιστορικό. *Ομάδα ανάπτυξης: Γρεασίδης Θοδωρής: 265 Κουτσαυτίκης Δημήτρης: 258 Μπούρα Βάγια: 257 Πετράκη Ελένη: 266 Φουντά Σταυρούλα: 256

Διδακτική της Πληροφορικής ΙΙ

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Αυτοματοποιημένη χαρτογραφία

Σχεδιασµός βασισµένος σε συνιστώσες

Επιστήμες της Αγωγής και της Εκπαίδευσης Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης. Εισαγωγή στους Η/Υ - Παιδαγωγικές Εφαρμογές στην Εκπαίδευση

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εικονικό Εργαστήριο Διαχείρισης και Μετάδοσης Ψηφιακών Μέσων (Virtual Lab) Διπλωματική Εργασία Βαλσαμίδη Αναστάσιου Α.Ε.Μ. 4099 Τζήμα Φανής Α.Ε.Μ. 4234 υπό την επίβλεψη Π. Α. Μήτκα αναπληρωτή καθηγητή Α. Ντελόπουλου επίκουρου καθηγητή Θεσσαλονίκη 2005

2 Walking on water and developing software from a specification are easy if both are frozen. (Edward V Berard, The Object Agency Inc.)

3 Ευχαριστίες Από την θέση αυτή, θα θέλαμε να ευχαριστήσουμε τους υπεύθυνους καθηγητές κ.κ. Περικλή Μήτκα και Αναστάσιο Ντελόπουλο, οι οποίοι μας έδωσαν την ευκαιρία να εκπονήσουμε μια ενδιαφέρουσα διπλωματική εργασία, που αποτέλεσε πρόκληση για τις ικανότητες μας. Επίσης, θα θέλαμε να ευχαριστήσουμε όλους τους διδακτορικούς φοιτητές και μέλη του εργαστηρίου για την συνεργασία τους, και ιδιαίτερα τον Μανόλη Φαλελάκη για τη σημαντική συμβολή του στην διάρκεια αυτής της εργασίας.

4 Περιεχόμενα Ευχαριστίες... 3 Περιεχόμενα... 4 Κατάλογος Σχημάτων... 6 Μικρό Λεξιλόγιο... 8 Πρόλογος... 9 Κεφάλαιο 1 Εισαγωγή... 10 1.1. Εκπαίδευση από απόσταση (e-learning)... 10 1.2. Εκπαίδευση από απόσταση στο ΤΗΜΜΥ (ethmmy)... 11 1.3. Ορισμός του προβλήματος... 13 1.4. Μεθοδολογία της διπλωματικής... 14 1.5. Δομή της διπλωματικής... 15 Κεφάλαιο 2 Ανάλυση Απαιτήσεων... 17 2.1. Γενική περιγραφή του Virtual Lab... 17 2.2. Κατηγορίες χρηστών... 19 2.3. Λειτουργικές απαιτήσεις για το μάθημα «Πολυμέσα και Εικονική Πραγματικότητα»... 19 2.3.1. Γραμμή Εντολών (Command Prompt) του Matlab...21 2.3.2. Αποθήκη Αλγορίθμων (Algorithm Repository, AR)...21 2.3.3. Αποθήκη Δεδομένων (Data Repository, DR)...23 2.3.4. Αποθήκη Ασκήσεων (Exercise Repository, ER)...24 2.3.5. Περιβάλλον Επίλυσης Ασκήσεων...24 2.4. Λειτουργικές απαιτήσεις για το μάθημα «Βάσεις Δεδομένων»... 26 2.4.1. Ανάπτυξη Σχεσιακών Βάσεων Δεδομένων...27 2.4.2. Ανάπτυξη Αντικειμενοστρεφών Βάσεων Δεδομένων...27 2.4.3. Υποβολή SQL ερωτημάτων...28 2.4.4. Αποθήκευση Βάσης Δεδομένων στο φυσικό επίπεδο...28 2.4.5. Βάσεις Δεδομένων στο WEB...29 2.4.6. Κατανεμημένες Βάσεις Δεδομένων...29 2.5. Μη λειτουργικές απαιτήσεις... 30 Κεφάλαιο 3 Τεχνολογίες και εργαλεία ανάπτυξης... 31 3.1. Java... 31 3.2. Δυναμικές Ιστοσελίδες... 32 3.2.1. Java Server Pages (JSP)...32 3.2.2. Active Server Pages.NET (ASP.NET)...33 3.3. To Struts framework... 34 3.3.1. Τι είναι το framework;...34 3.3.2. Ειδικότερα για το Struts framework...35 3.4. Web Servers... 35 3.4.1. Apache Tomcat...35 3.4.2. Internet Information Services (IIS)...36 3.5. JPOX (Java Persistent Objects)... 36 3.5.1. JDO (Java Data Objects)...36 3.5.2. Η Υλοποίηση των JPOX...37 3.6. Εργαλεία ανάπτυξης... 38 3.6.1. Borland JBuilder...38 3.6.2. Visual Studio.NET 2005...38 3.6.3. Macromedia Dreamweaver MX...39 3.6.4. Apache Ant...39 Κεφάλαιο 4 Προδιαγραφή Συστήματος... 41 4.1. Γενική αρχιτεκτονική του συστήματος... 41

5 4.1.1. Μοντέλο (Model)...42 4.1.2. Παρουσίαση (View)...42 4.1.3. Ελεγκτής (Controller)...43 4.2. Δομικά στοιχεία του συστήματος... 43 4.2.1. Σύνδεση του Matlab με την εφαρμογή διακομιστή...43 4.2.2. Αποθήκη αλγορίθμων (Algorithm repository, AR)...45 4.2.3. Αποθήκη ασκήσεων (Exercise repository, ER)...47 4.2.4. Αντικειμενοστρεφείς ΒΔ...48 4.3. Λειτουργίες του συστήματος... 52 4.3.1. Λειτουργίες για το υποσύστημα «Πολυμέσα και Εικονική Πραγματικότητα»...52 4.3.2. Λειτουργίες για το υποσύστημα «Βάσεις Δεδομένων»...56 4.3.3. Βοηθητικές Λειτουργίες...60 4.4. UML διαγράμματα... 63 4.4.1. Διαγράμματα Χρήσης (Use case diagrams)...63 4.4.2. Διαγράμματα Δραστηριότητας (Use case state diagrams)...65 Κεφάλαιο 5 Το Virtual Lab: Επίδειξη και επικύρωση καλής λειτουργίας. 74 5.1. Σενάρια χρήσης της εφαμογής... 74 5.1.1. Σενάριο χρήσης για την ενότητα «Πολυμέσα και Εικονική Πραγματικότητα»...74 5.1.2. Σενάριο χρήσης για την ενότητα «Βάσεις Δεδομένων»...88 5.2. Επικύρωση της καλής λειτουργίας της εφαρμογής... 96 Κεφάλαιο 6 Συμπεράσματα / Προοπτική του Virtual Lab... 97 6.1. Συμπεράσματα... 97 6.2. Προτάσεις για μελλοντική επέκταση... 99 Αναφορές... 101 Βιβλιογραφία... 102 Παράρτημα Α: Οδηγός Εγκατάστασης... 103 A.1. Γενικές απαιτήσεις εγκατάστασης... 103 A.2. Εγκατάσταση και διαμόρφωση του Tomcat... 104 A.3. Εγκατάσταση και διαμόρφωση του IIS... 106 A.4. Εγκατάσταση της βιβλιοθήκης JMatLink... 106 A.5. Εγκατάσταση απαιτούμενης υποδομής για τις αντικειμενοστρεφείς ΒΔ... 106 Παράρτημα Β: Το Struts framework... 108 B.1. Βασικά Πακέτα του Struts framework... 108 B.2. Συστατικά στοιχεία του Ελεγκτή (controller) στο Struts framework... 109 B.3. Συστατικά στοιχεία του Μοντέλου (model) στο Struts framework... 112 B.4. Συστατικά στοιχεία του Παρουσίασης (view) στο Struts framework... 112 Παράρτημα Γ: XML αρχεία... 115 C.1. AlgorithmRepository.xsd... 115 C.2. ExerciseRepository.xsd... 117 Παράρτημα Δ: Πακέτα κλάσεων του Virtual Lab... 119 D.1. virtuallab... 119 D.2. databases... 119 D.3. multimedia... 120

6 Κατάλογος Σχημάτων Σχήμα 1-1: Περιβάλλον υποστήριξης της εκπαίδευσης από απόσταση για το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ethmmy)... 12 Σχήμα 2-1: Τα τμήματα (modules) του Virtual Lab... 18 Σχήμα 2-2: Αρχιτεκτονική του module «Πολυμέσα και Εικονική Πραγματικότητα»... 20 Σχήμα 2-3: Αρχιτεκτονική του module «Βάσεις Δεδομένων»... 26 Σχήμα 3-1: Εξυπηρέτηση αίτησης για JSP σελίδα... 33 Σχήμα 4-1: Το μοντέλο MVC (Model View Controller)... 42 Σχήμα 4-2: Δομή του XML αρχείου για την αποθήκη αλγορίθμων (1/2)... 45 Σχήμα 4-3: Δομή του XML αρχείου για την αποθήκη αλγορίθμων (2/2)... 46 Σχήμα 4-4: Δομή του XML αρχείου για την αποθήκη ασκήσεων... 47 Σχήμα 4-5: Αντιστοίχιση της αντικειμενοστρεφούς ΒΔ που δημιουργήθηκε σε σχεσιακή ΒΔ... 49 Σχήμα 4-6: Χρήση των JPOX στο Virtual Lab... 51 Σχήμα 4-7: Διάγραμμα χρήσης για τον χρήστη «Καθηγητής Πολυμέσων»... 63 Σχήμα 4-8: Διάγραμμα χρήσης για τον χρήστη «Φοιτητής» στο μάθημα «Πολυμέσα και Εικονική Πραγματικότητα»... 64 Σχήμα 4-9: Διάγραμμα χρήσης για τον χρήστη «Φοιτητής» στο μάθημα «Βάσεις Δεδομένων».. 64 Σχήμα 4-10: Διάγραμμα καταστάσεων της λειτουργίας «Κατάθεση εντολής προς εκτέλεση στη γραμμή εντολών του Matlab»... 65 Σχήμα 4-11: Διάγραμμα καταστάσεων της λειτουργίας «Προσθήκη αλγορίθμου στο AR»... 66 Σχήμα 4-12: Διάγραμμα καταστάσεων της λειτουργίας «Προσθήκη άσκησης στο ER»... 67 Σχήμα 4-13: Διάγραμμα καταστάσεων της λειτουργίας «Κατάθεση άσκησης από τον χρήστη Φοιτητής»... 68 Σχήμα 4-14: Διάγραμμα καταστάσεων της λειτουργίας «Έλεγχος κατατεθειμένων αρχείων από τον χρήστη Καθηγητής»... 69 Σχήμα 4-15: Διάγραμμα καταστάσεων της λειτουργίας «Αυτόματη δημιουργία ΒΔ για κάθε χρήστη»... 70 Σχήμα 4-16: Διάγραμμα καταστάσεων της λειτουργίας «Υποβολή ερωτημάτων σε αντικειμενοστρεφείς ΒΔ»... 71 Σχήμα 4-17: Διάγραμμα καταστάσεων της λειτουργίας «Αυθεντικοποίηση χρηστών»... 72 Σχήμα 4-18: Διάγραμμα καταστάσεων της λειτουργίας «Εξαγωγή χαρακτηριστικών αλγορίθμου από το αρχείο υλοποίησής του»... 73 Σχήμα 5-1: Κεντρική σελίδα επιλογής μαθήματος... 75 Σχήμα 5-2: Κεντρική σελίδα του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» (όψη του χρήστη «Καθηγητής»)... 76 Σχήμα 5-3: Πρώτο βήμα της διαδικασίας «Εισαγωγή Αλγορίθμου»... 77

7 Σχήμα 5-4: Εντοπισμός του αρχείου υλοποίησης του αλγορίθμου στον τοπικό δίσκο του χρήστη.... 77 Σχήμα 5-5: Εξαγχθέντα χαρακτηριστικά από το αρχείο findyourjane.m... 78 Σχήμα 5-6: Επιλογή κατηγορίας για τον αλγόριθμο findyourjane... 79 Σχήμα 5-7: Επιλογή εξαρτήσεων για τον αλγόριθμο findyourjane... 79 Σχήμα 5-8: Επιβεβαίωση των στοιχείων που έχουν εισαχθεί για τον αλγόριθμο σε όλα τα βήματα της διαδικασίας... 80 Σχήμα 5-9: Ορισμός του ονόματος και της περιγραφής της άσκησης... 81 Σχήμα 5-10: Ορισμός αλγορίθμων και αρχείων δεδομένων για την άσκηση Out In The Jungle.82 Σχήμα 5-11: Επιβεβαίωση των στοιχείων που έχουν εισαχθεί για την άσκηση σε όλα τα βήματα της διαδικασίας... 82 Σχήμα 5-12: Προσθήκη της άσκησης Out In The Jungle στο μενού των διαθέσιμων ασκήσεων 83 Σχήμα 5-13: Κεντρική σελίδα του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» (όψη του χρήστη «Φοιτητής»)... 84 Σχήμα 5-14: Περιβάλλον επίλυσης της άσκησης Out In The Jungle... 84 Σχήμα 5-15: Σελίδα βοήθειας για τον αλγόριθμο findyourjane... 85 Σχήμα 5-16: Κατάθεση αρχείων για την άσκηση Out In The Jungle... 86 Σχήμα 5-17: Επιλογή της άσκησης Out In The Jungle προς διόρθωση... 87 Σχήμα 5-18: Κατατεθειμένα αρχεία για την άσκηση Out In The Jungle... 87 Σχήμα 5-19: Δημιουργία ZIP archive με όλα τα κατατεθειμένα αρχεία για την άσκηση Out In The Jungle... 88 Σχήμα 5-20: Κεντρική σελίδα του μαθήματος «Βάσεις Δεδομένων»... 89 Σχήμα 5-21: Επιλογή μεθόδου υποβολής SQL ερωτημάτων... 90 Σχήμα 5-22: Γραφικό περιβάλλον υποβολής SQL ερωτημάτων στην ΒΔ Genesmith... 90 Σχήμα 5-23: Περιβάλλον της εφαρμογής SQL Web Data Administration... 91 Σχήμα 5-24: Περιεχόμενα της ενότητας «Βάσεις Δεδομένων στο WEB»... 92 Σχήμα 5-25: Περιεχόμενα της ενότητας Java Server Pages... 92 Σχήμα 5-26: Δυναμική εισαγωγή ημερομηνίας και ώρας σε JSP σελίδα... 93 Σχήμα 5-27: Υποβολή SELECT ερωτήματος σε ΒΔ μέσω JSP σελίδας... 94 Σχήμα 5-28: Αποτελέσματα του SELECT ερωτήματος... 95 Σχήμα 5-29: Περιεχόμενα της ενότητας «Αποθήκευση ΒΔ στο φυσικό επίπεδο»... 95 Σχήμα 5-30: Εισαγωγή κόμβων σε Β+ δένδρο (στιγμιότυπο από το σχετικό flash video)... 96

8 Μικρό Λεξιλόγιο AR: Algorithm Repository (Αποθήκη Αλγορίθμων) DR: Data Repository (Αποθήκη Πολυμεσικών Δεδομένων) ER: Exercise Repository (Αποθήκη Ασκήσεων) XML: Extensible Markup Language ΒΔ: Βάση Δεδομένων RDBMS: Relational Database Management System (Σύστημα Διαχείρισης Σχεσιακών ΒΔ) ORM: Object-Relational Mapping (αντιστοίχιση αντικειμένων σε σχεσιακή ΒΔ) SQL: Structured Query Language JVM: Java Virtual Machine HTML: HyperText Markup Language JSP: Java Server Pages ASP: Active Server Pages IIS: Internet Information Services JPOX: Java Persistent Objects JDO: Java Data Objects MVC: Model-View-Controller HTTP: HyperText Transfer Protocol JNI: Java Native Interface UML: Unified Modeling Language

9 Πρόλογος Η διπλωματική εργασία που ακολουθεί αποτελεί για τους συγγραφείς την πρώτη τους ουσιαστική επαφή, με ένα πραγματικό πρόβλημα, το οποίο κλήθηκαν να λύσουν στηριζόμενοι στις δικές τους δυνάμεις. Η προσπάθεια αυτή αποτελεί το επιστέγασμα της πενταετούς τους φοίτησης στο τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΤΗΜΜΥ) της Πολυτεχνικής Σχολής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης (Α.Π.Θ). Το θέμα που επιλέχθηκε ήταν η ανάπτυξη ενός εικονικού εργαστηρίου για την υποστήριξη της διδασκαλίας των μαθημάτων «Βάσεις Δεδομένων» και «Πολυμέσα και Εικονική Πραγματικότητα». Πρόκειται για μία προσπάθεια που εντάσσεται στα πλαίσια του eτημμυ, γεγονός που επέβαλε να ακολουθηθούν οι βασικές κατευθυντήριες γραμμές που είχαν ήδη οριοθετηθεί για το έργο αυτό. Η επιλογή του θέματος αντανακλά το γενικότερο ενδιαφέρον των συγγραφέων για την ανάπτυξη λογισμικού και την ραγδαία εξέλιξη που λαμβάνει χώρα στον τομέα των πολυμέσων. Επίσης, το γεγονός ότι πρόκειται για μία ομαδική εργασία, δημιούργησε τις συνθήκες ώστε να αναπτυχθούν και ικανότητες όπως το πνεύμα συνεργασίας, το αίσθημα της υπευθυνότητας και η αποτελεσματική διαχείριση φόρτου και ευθυνών. Φιλοδοξία των συγγραφέων είναι η εφαρμογή την οποία υλοποίησαν να αποτελέσει χρήσιμο εργαλείο στα χέρια των διδασκόντων και να αναγνωριστεί από τους φοιτητές ως ένα πραγματικό βοήθημα για την βαθύτερη κατανόηση των εμπλεκομένων μαθημάτων.

10 Κεφάλαιο 1 Εισαγωγή 1.1. Εκπαίδευση από απόσταση (e-learning) Στη συνείδηση όλων μας η εκπαίδευση είναι ταυτισμένη με την «πρόσωπο-μεπρόσωπο» διδασκαλία και την χρήση παραδοσιακών διδακτικών μέσων όπως τα βιβλία. Την τελευταία δεκαετία, όμως, παρατηρείται σε παγκόσμιο επίπεδο μία τάση ενσωμάτωσης στην εκπαιδευτική διαδικασία των δυνατοτήτων που εισήγαγε η «έκρηξη» του διαδικτύου (Internet) και του παγκόσμιου ιστού (WWW - World Wide Web). Εκπαιδευτικό υλικό, αλλά και εργαλεία εκμάθησης και αξιολόγησης για μια μεγάλη ποικιλία θεμάτων είναι πλέον διαθέσιμα σε όλους μέσω του διαδικτύου. Ακριβώς εδώ υπεισέρχεται ο όρος e-learning 1 [1], που χρησιμοποιείται για να περιγράψει το ευρύ πεδίο της προσφοράς γνώσης και εκπαιδευτικού υλικού από απόσταση. Τυπικά, περιλαμβάνει μία μεγάλη ποικιλία μέσων, όπως οι προσωπικοί υπολογιστές, τα CD-ROMs, το Internet, η κινητή τηλεφωνία, τα forums συζητήσεων, το ηλεκτρονικό ταχυδρομείο (email) κτλ. Τα πλεονεκτήματα του e-learning έναντι των κλασσικών μεθόδων διδασκαλίας είναι πολλά με πιο προφανή την ευελιξία του προγράμματος σπουδών και την εξάλειψη του κόστους, είτε σε χρήμα είτε σε χρόνο, που συνεπάγεται η παρουσία 1 Παρά την ευρύτητά του ο όρος e-learning δεν είναι ιδιαίτερα ακριβής, αφού η μάθηση (learning) είναι μία μόνο πλευρά της εκπαίδευσης (education). Ο όρος online education, έρχεται να καλύψει την έλλειψη αυτή ορίζοντας μία ευρύτερη περιοχή παροχής εκπαιδευτικών υπηρεσιών.

11 κάποιου σε έναν χώρο διδασκαλίας. Πέραν αυτών όμως υπάρχουν και κάποια όχι τόσο προφανή οφέλη: Η παραγωγή εκπαιδευτικών προγραμμάτων από απόσταση κοστίζει λιγότερο Οι χρήστες έχουν τη δυνατότητα να ακολουθούν τον δικό τους ρυθμό και να παρακολουθούν ακριβώς τα κομμάτια του προγράμματος που χρειάζονται Ένα σύστημα e-learning μπορεί να δουλέψει αποτελεσματικά από οποιαδήποτε απόσταση και σε οποιοδήποτε χρόνο Tο υλικό του μαθήματος μπορεί να ενημερωθεί ευκολότερα και γρηγορότερα Η διαχείριση ακόμη και πολύ μεγάλων ακροατηρίων γίνεται πιο εύκολα Πολλές φορές είναι πιο αποτελεσματική η μετάδοση της γνώσης, γιατί χρησιμοποιούνται οπτικοακουστικά μέσα και παιχνίδια (quizzes, interaction) Ο εκπαιδευόμενος μπορεί να παρακολουθήσει μια ενότητα όσες φορές το επιθυμεί Παρόλα αυτά και η κλασσική διδασκαλία έχει τα πλεονεκτήματά της, τα οποία πηγάζουν κυρίως από την προσωπική επαφή διδάσκοντα και διδασκόμενου και είναι αδύνατον να υποκατασταθούν από οποιαδήποτε μορφή εκπαίδευσης από απόσταση. Παίρνοντας υπόψη όλα τα παραπάνω μπορεί να κατανοήσει κανείς γιατί στις περισσότερες περιπτώσεις οι εφαρμογές e-learning δεν είναι αυτόνομες εκπαιδευτικές οντότητες, αλλά τμήματα υβριδικών λύσεων που συνδυάζουν την εκπαίδευση από απόσταση με τις άμεσες κλασσικές μεθόδους διδασκαλίας. Με τον τρόπο αυτό δημιουργούνται οι προϋποθέσεις ενσωμάτωσης στην εκπαιδευτική διαδικασία των πλεονεκτημάτων και των δύο προσεγγίσεων. 1.2. Εκπαίδευση από απόσταση στο ΤΗΜΜΥ (ethmmy) Ακολουθώντας τις εξελίξεις της τεχνολογίας και τις τάσεις στο χώρο της εκπαίδευσης οι πανεπιστημιακές σχολές, και ιδιαίτερα οι πολυτεχνικές, έχουν εισάγει στην εκπαιδευτική διαδικασία τη χρήση ηλεκτρονικών υπολογιστών (εργαλεία σχεδίασης και ανάλυσης, προσομοιωτές, κλπ). Το Τμήμα μας, προχωρώντας ένα βήμα παραπέρα, έχει ξεκινήσει την ανάπτυξη του eτημμυ,

12 ενός ολοκληρωμένου ηλεκτρονικού περιβάλλοντος για την δικτυοκεντρική υποστήριξη της εκπαιδευτικής διαδικασίας. Σχήμα 1-1: Περιβάλλον υποστήριξης της εκπαίδευσης από απόσταση για το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ethmmy) Το eτημμυ θα παρέχει στους φοιτητές τη δυνατότητα να εκπαιδεύονται και να εργάζονται σε έναν ενιαίο ψηφιακό χώρο «βιώνοντας» κατ αυτόν τον τρόπο τις εφαρμογές της πληροφορικής και αποκομίζοντας σημαντική εμπειρία. Συγκεκριμένα, η ανάπτυξη του eτημμυ περιλαμβάνει τις εξής καινοτόμες δράσεις: Ανάπτυξη ηλεκτρονικού υλικού για περίπου 30 μαθήματα Ανάπτυξη συστήματος ηλεκτρονικής αξιολόγησης και αυτοαξιολόγησης των φοιτητών για 10 μαθήματα με μαζικά ακροατήρια Ανάπτυξη συστήματος διαχείρισης εκπαιδευτικών ενοτήτων για την δυναμική σύνθεση μαθημάτων που θα επιτρέπει την ταχύτερη και ευκολότερη αναδιαμόρφωση του προγράμματος σπουδών στο μέλλον. Το σύστημα θα εφαρμοστεί αρχικά σε 10-20 μαθήματα που έχουν ήδη εκπαιδευτικό υλικό σε ηλεκτρονική μορφή.

13 Δημιουργία ψηφιακής βιβλιοθήκης και ηλεκτρονικής υποδομής για πολλαπλή βιβλιογραφία. Δημιουργία εικονικών εργαστηρίων για την υποστήριξη της διδασκαλίας Οι παραπάνω δράσεις συμπληρώνονται από το σύστημα Ηλεκτρονικής Γραμματείας, που ήδη βρίσκεται στο στάδιο της υλοποίησης. Η πρόσβαση από τις διάφορες κατηγορίες χρηστών γίνεται από το διαδίκτυο μέσω του Ενιαίου Ψηφιακού Χώρου του Τμήματος που βρίσκεται στο στάδιο της σχεδίασης και αναμένεται να ενοποιήσει όλα τα υπολογιστικά συστήματα του τμήματος σε μια εικονική νησίδα υπολογιστών. 1.3. Ορισμός του προβλήματος Σκοπός της διπλωματικής είναι η ανάπτυξη ενός ολοκληρωμένου περιβάλλοντος για την υποστήριξη της διδασκαλίας των μαθημάτων «Πολυμέσα και Εικονική Πραγματικότητα» και «Βάσεις Δεδομένων». Το περιβάλλον αυτό δεν έχει σκοπό την παράθεση απλώς εκπαιδευτικού υλικού, αλλά διαθέτει τον χαρακτήρα ενός εικονικού εργαστηρίου 2, στο οποίο οι φοιτητές του τμήματος θα μπορούν να εκτελούν ασκήσεις με τρόπο διαδραστικό. Γενικά, το Virtual Lab φιλοδοξεί να προσφέρει στους χρήστες φοιτητές και καθηγητές ένα φιλικό περιβάλλον για την εκτενέστερη επαφή με τα μαθήματα για τους πρώτους και ένα περιβάλλον για τον έλεγχο τον ικανοτήτων των διδασκομένων για τους δεύτερους. Όλες αυτές οι δυνατότητες δίνονται με τρόπο τέτοιο ώστε να διευκολύνουν το έργο και των δύο κατηγοριών χρηστών, χωρίς οι τελευταίοι να έχουν κάποια ιδιαίτερη γνώση για τις διεργασίες που εκτελούνται στο παρασκήνιο. Ιδιαίτερα σημαντικό είναι το γεγονός ότι η πρόσβαση στο Virtual Lab θα γίνεται μέσω διαδικτύου, πράγμα που περιορίζει τις δυνατές κατευθύνσεις υλοποίησης και θέτει ζητήματα ασφάλειας, αξιοπιστίας και διαθεσιμότητας του συστήματος. Τέλος, πρωτεύων στόχος είναι η ενσωμάτωση και η συμβατότητα με άλλα τμήματα του ethmmy. Για το λόγο αυτό η υλοποίηση του συστήματος ακολουθεί τις βασικές κατευθυντήριες γραμμές του ethmmy, ώστε να συνεργάζεται με την 2 Εξ ου και το όνομα Virtual Lab, το οποίο θα χρησιμοποιούμε από εδώ και πέρα για το «Εικονικό Εργαστήριο Διαχείρισης και Μετάδοσης Ψηφιακών Μέσων».

14 ήδη υπάρχουσα εφαρμογή του ηλεκτρονικού υλικού μαθημάτων. Συγκεκριμένα, χρησιμοποιούνται οι ίδιες τεχνολογίες ανάπτυξης και κοινοί πόροι για πολλές από τις διεργασίες, όπως η αυθεντικοποίηση χρηστών και η λειτουργία του web server. 1.4. Μεθοδολογία της διπλωματικής Όπως γίνεται φανερό και από τον ορισμό του προβλήματος, η παρούσα διπλωματική εργασία στοχεύει στην ανάπτυξη μιας αρκετά μεγάλης εφαρμογής. Λόγω της φύσης της, λοιπόν, έπρεπε να περάσει από όλα τα στάδια σχεδίασης και υλοποίησης ενός έργου λογισμικού. Πρώτος στόχος ήταν η συλλογή των απαιτήσεων που έχουν από το σύστημα οι διδάσκοντες των δύο μαθημάτων. Οι απαιτήσεις καταγράφηκαν αρχικά σε φυσική γλώσσα και στη συνέχεια ορίστηκαν με μια πιο συστηματική μορφή. Επόμενο βήμα ήταν ο ορισμός των προδιαγραφών, δηλαδή η περιγραφή των κατευθύνσεων και του πλαισίου υλοποίησης της εφαρμογής. Τόσο η διαδικασία της συλλογής απαιτήσεων, όσο και η προδιαγραφή του συστήματος υπήρξαν αρκετά επίπονες, αλλά με τις απαραίτητες διορθώσεις από τους διδάσκοντες η ιδέα του Virtual Lab διαμορφώθηκε με αρκετή σαφήνεια ώστε να προχωρήσουμε στη φάση της υλοποίησης. Στο στάδιο της υλοποίησης αρχικά επιλέχθηκε η τεχνολογία ανάπτυξης, δηλαδή η γλώσσα προγραμματισμού Java και το Struts Framework (βλ. και κεφάλαιο 3). Στη συνέχεια, ακολούθησε η ανάπτυξη της εφαρμογής διακομιστή με βάση το πρότυπο της ήδη υπάρχουσας εφαρμογής του ethmmy. Η εφαρμογή διακομιστή επιλέχθηκε να οργανωθεί σε τρία ανεξάρτητα modules: 1. Tο module αυθεντικοποίησης των χρηστών και επικοινωνίας με τον διακομιστή ΒΔ του ethmmy 2. Tο module του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» 3. Tο module του μαθήματος «Βάσεις Δεδομένων» Ένα από τα βασικότερα προβλήματα που χρειάστηκε να αντιμετωπιστεί κατά την ανάπτυξη του module «Πολυμέσα και Εικονική Πραγματικότητα» ήταν η σύνδεση της εφαρμογής διακομιστή με το Matlab. Λόγω του γεγονότος ότι το Matlab δεν προσφέρει έτοιμο interface για την επικοινωνία του με την Java, ήταν αναγκαία η χρήση μιας native βιβλιοθήκης γραμμένης σε γλώσσα C, η οποία θα λειτουργούσε ως μεσολαβητής μεταξύ του Matlab και της εφαρμογής διακομιστή.

15 Για το σκοπό αυτό επιλέχθηκε η βιβλιοθήκη JMatLink.dll, η οποία προσαρμόστηκε κατάλληλα ώστε να εξυπηρετεί τις ανάγκες της εφαρμογής και στη συνέχεια ενσωματώθηκε σε αυτή. Έχοντας επιτύχει πλέον την επικοινωνία με τη γραμμή εντολών του Matlab, αναπτύχθηκε και ένα σύστημα διαχείρισης των αλγορίθμων και πολυμεσικών δεδομένων που μπορούν να χρησιμοποιηθούν μέσω αυτής. Όσον αφορά το module «Βάσεις Δεδομένων» χρειάστηκε να ενσωματωθούν στην εφαρμογή διακομιστή διάφορα κομμάτια λογισμικού, όπως το περιβάλλον υποβολής SQL ερωτημάτων στην ΒΔ Genesmith, το οποίο είχε αναπτυχθεί στα πλαίσια μιας παλαιότερης διπλωματικής εργασίας. Επίσης, χρησιμοποιήθηκε το Web Data Administration Tool της Microsoft. Για την ανάπτυξη των διαφόρων ενοτήτων του μαθήματος, χρειάστηκε να μελετήσουμε και να εμβαθύνουμε σε θέματα σχετικά με αυτές. Ενδεικτικά, για την ενότητα «Βάσεις Δεδομένων στο WEB» μελετήθηκε η τεχνολογία ASP.NET και αναπτύχθηκαν με βάση αυτήν ένα σύνολο δυναμικών ιστοσελίδων. Τέλος, ένα πολύ σημαντικό κομμάτι του module «Βάσεις Δεδομένων» ήταν οι ανιτκειμενοστρεφείς ΒΔ, για τις οποίες επιλέχθηκε η τεχνολογία ORM (Objext- Relational Mapping). Στα πλαίσια της ενότητας αυτής αναπτύχθηκε μια σχεσιακή ΒΔ καθώς και μια συλλογή Java κλάσεων που τη διαχειρίζονται χρησιμοποιώντας αποκλειστικά αντικειμενοστρεφή λογική, χωρίς δηλαδή τη χρήση κλασσικών SQL ερωτημάτων. Έχοντας ολοκληρώσει πλέον την υλοποίηση, το παρόν έγγραφο έρχεται να κλείσει τον κύκλο ανάπτυξης του Virtual Lab και να παρουσιάσει την μέχρι τώρα εξέλιξη, αλλά και τις προοπτικές του εγχειρήματος αυτού. 1.5. Δομή της διπλωματικής Στο κεφάλαιο 2 της διπλωματικής περιέχεται η ανάλυση απαιτήσεων της εφαρμογής, όπως αυτές συλλέχθηκαν από τους χρήστες. Δηλαδή, περιγράφονται σε φυσική γλώσσα η λογική αρχιτεκτονική του συστήματος, οι κατηγορίες των χρηστών του και οι υπηρεσίες που προσφέρει. Το κεφάλαιο 3 ασχολείται με τις τεχνολογίες και τα εργαλεία ανάπτυξης που χρησιμοποιήθηκαν. Για καθένα από αυτά, δίνεται μία μικρή περιγραφή, αναφέρονται οι δυνατότητες που παρέχει και αιτιολογείται η επιλογή του.

16 Στα κεφάλαιο 4 περιγράφεται η διαδικασία προδιαγραφής του συστήματος που αποτέλεσε και τη βάση για την υλοποίηση του. Πιο συγκεκριμένα αναλύονται η αρχιτεκτονική του συστήματος και το μοντέλο MVC (Model View Controller), και περιγράφονται αναλυτικά οι λειτουργίες του. Το κεφάλαιο κλείνει με την παρουσίαση αντιπροσωπευτικών για την εφαρμογή UML διαγραμμάτων. Στο κεφάλαιο 5 παρουσιάζονται κάποια σενάρια χρήσης για την επίδειξη των βασικών λειτουργιών της εφαρμογής. Για κάθε ένα από αυτά παρέχονται βήμα προς βήμα οδηγίες και παρατίθενται τα αντίστοιχα στιγμιότυπα από το πραγματικό περιβάλλον του Virtual Lab. Το κεφάλαιο 6 αποτελεί τον επίλογο της διπλωματικής και περιλαμβάνει τα συμπεράσματα των συγγραφέων από την ενασχόλησή τους με το εγχείρημα αυτό. Επίσης, προτείνει κάποιες βελτιώσεις προσδιορίζοντας τον τρόπο που αυτές θα μπορούσαν να αποτελέσουν χρήσιμες επεκτάσεις της εφαρμογής. Η διπλωματική εργασία κλείνει με τέσσερα παραρτήματα τα οποία περιλαμβάνουν: τον οδηγό εγκατάστασης και χρήσης του λογισμικού μία εισαγωγή στο Struts framework τα αρχεία που προσδιορίζουν το σχήμα που χρησιμοποιούν τα XML αρχεία της αποθήκης αλγορίθμων και της αποθήκης ασκήσεων πληροφορίες για τα πακέτα των κλάσεων της εφαρμογής

17 Κεφάλαιο 2 Ανάλυση Απαιτήσεων 2.1. Γενική περιγραφή του Virtual Lab Το Virtual Lab είναι ένα εικονικό εργαστήριο για την υποστήριξη της διδασκαλίας των μαθημάτων «Πολυμέσα και Εικονική Πραγματικότητα» και «Βάσεις Δεδομένων». Πρόκειται για ένα διαδραστικό περιβάλλον στο οποίο οι χρήστες έχουν πρόσβαση μέσω του διαδικτύου και το οποίο προσφέρει πληθώρα δυνατοτήτων τόσο στους φοιτητές όσο και στους διδάσκοντες των δύο μαθημάτων. Όσον αφορά τους φοιτητές, το Virtual Lab προσφέρει τη δυνατότητα να εμπεδώσουν τις διδασκόμενες ενότητες εκτελώντας ασκήσεις ή παρακολουθώντας διαδραστικά εκπαιδευτικά σεμινάρια (interactive tutorials). Επίσης, παρέχεται υλικό σχετικό με προχωρημένα θέματα των επιστημονικών περιοχών που καλούνται να καλύψουν τα δύο μαθήματα. Ενδεικτικά, αναφέρονται οι παρακάτω προσφερόμενες υπηρεσίες: Χρήση της γραμμής εντολών (command prompt) του Matlab Πρόσβαση σε μία συλλογή αλγορίθμων κατηγοριοποιημένων σύμφωνα με το πεδίο εφαρμογής τους Πρόσβαση σε ένα ευρετήριο βοήθειας σχετικά με τους διαθέσιμους αλγορίθμους Επίλυση και κατάθεση ασκήσεων Χρήση του SQLServer μέσω διαδικτύου

18 Πρόσβαση σε ένα πακέτο κλάσεων για την διαχείριση αντικειμενοστρεφών ΒΔ Εξοικείωση με τεχνολογίες δυναμικών ιστοσελίδων (web databases) Εισαγωγή σε προχωρημένες έννοιες των Βάσεων Δεδομένων μέσω διαδραστικών εκπαιδευτικών σεμιναρίων (interactive tutorials). Όσον αφορά τους διδάσκοντες τώρα, το Virtual Lab προσφέρει μεταξύ άλλων τις εξής δυνατότητες: διαχείριση του υλικού του μαθήματός τους ορισμός ασκήσεων προς επίλυση από τους φοιτητές και έλεγχος των λύσεων που οι φοιτητές καταθέτουν. Η ανάγκη χρήσης του Virtual Lab μέσω του διαδικτύου επιβάλλει την υιοθέτηση της αρχιτεκτονικής πελάτη-διακομιστή (client-server) για το σύστημα μας, όπου η εφαρμογή πελάτη (client application) είναι ένας φυλλομετρητής ιστοσελίδων (web browser). Από την άλλη, στην πλευρά του διακομιστή (server), έχουμε μία εφαρμογή «χτισμένη» πάνω στο Struts framework, το οποίο είναι και η βάση ανάπτυξης ολόκληρου του ethmmy. Η εφαρμογή αυτή περιλαμβάνει τρία διαφορετικά, αυτόνομα κομμάτια λογισμικού (Σχήμα 2.1): Σχήμα 2-1: Τα τμήματα (modules) του Virtual Lab

19 1. Το module σύνδεσης του Virtual Lab με το ethmmy και αυθεντικοποίησης των χρηστών 2. Το module που εξυπηρετεί το μάθημα «Πολυμέσα και Εικονική Πραγματικότητα» 3. Το module που εξυπηρετεί το μάθημα «Βάσεις Δεδομένων» Τα τρία modules του server επικοινωνούν μεταξύ τους ανταλλάσσοντας στοιχεία σχετικά με την ταυτότητα και τα δικαιώματα των χρηστών και σε χαμηλότερο επίπεδο ακολουθούν το καθένα τη δική του αρχιτεκτονική, η οποία αναλύεται στην αντίστοιχη παράγραφο απαιτήσεων 3. 2.2. Κατηγορίες χρηστών Οι κατηγορίες χρηστών του συστήματος είναι οι ακόλουθες: Φοιτητές του ΤΗΜΜΥ Καθηγητές του ΤΗΜΜΥ Διαχειριστές του Virtual Lab Οι διάφορες ομάδες χρηστών έχουν πρόσβαση σε πληθώρα λειτουργιών για την ενημέρωση τη δική τους και του συστήματος. Πιο συγκεκριμένα, οι φοιτητές έχουν τη δυνατότητα να εκτελούν τις διαθέσιμες ασκήσεις για τα μαθήματα που έχουν δηλώσει και να αξιολογούνται σε αυτές. Οι καθηγητές έχουν πρόσβαση μόνο στο δικό τους μάθημα, μέσω ειδικού interface προκειμένου να υποβάλλουν καινούριες ασκήσεις/ερωτήσεις ή αλγορίθμους. Τέλος, οι διαχειριστές έχουν τον απόλυτο έλεγχο του συστήματος και είναι αυτοί που το ελέγχουν για τυχόν σφάλματα. 2.3. Λειτουργικές απαιτήσεις για το μάθημα «Πολυμέσα και Εικονική Πραγματικότητα» Απαίτηση 1: Oι χρήστες έχουν πρόσβαση στην γραμμή εντολών του Matlab μέσω του διαδικτύου. Η μηχανή του Matlab (Matlab engine) «τρέχει» στον server και δεν είναι απαραίτητο οι χρήστες να έχουν εγκατεστημένη τοπικά (στον υπολογιστή τους) καμία έκδοση του προγράμματος. 3 Η αρχιτεκτονική του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» αναλύεται στην παράγραφο 2.3. και αντίστοιχα για τις «Βάσεις Δεδομένων» στην παράγραφο 2.4.

20 Απαίτηση 2: Υπάρχει μία αποθήκη αλγορίθμων (algorithm repository, AR) την οποία οι διδάσκοντες μπορούν να διαχειριστούν, υποβάλλοντας νέους αλγορίθμους, διαγράφοντας ή διορθώνοντας ήδη υπάρχοντες. Οι φοιτητές μπορούν να χρησιμοποιούν τους αλγορίθμους αυτούς και έχουν πρόσβαση σε σχετικά αρχεία βοήθειας. Απαίτηση 3: Υπάρχει μία αποθήκη πολυμεσικών δεδομένων (data repository, DR) την οποία οι διδάσκοντες μπορούν να διαχειριστούν, προσθέτοντας νέα αρχεία, ή διαγράφοντας ήδη υπάρχοντα. Οι φοιτητές μπορούν να χρησιμοποιούν και να αποθηκεύουν (download) τα δεδομένα αυτά. Απαίτηση 4: Υπάρχει μία αποθήκη ασκήσεων (exercise repository, ER) στην οποία καταγράφονται οι ασκήσεις που οι διδάσκοντες υποβάλλουν προς επίλυση από τους φοιτητές. Σύμφωνα με την γενική αρχιτεκτονική του συστήματος (client-server αρχιτεκτονική) και τις απαιτήσεις 1 έως 4 το module που εξυπηρετεί το μάθημα «Πολυμέσα και Εικονική Πραγματικότητα» ακολουθεί την αρχιτεκτονική που φαίνεται στο Σχήμα 2.2. Σχήμα 2-2: Αρχιτεκτονική του module «Πολυμέσα και Εικονική Πραγματικότητα»

21 2.3.1. Γραμμή Εντολών (Command Prompt) του Matlab Απαίτηση 5: Για κάθε χρήστη του συστήματος που χρησιμοποιεί το Matlab, δημιουργείται ένα ξεχωριστό στιγμιότυπο (instance) της γραμμής εντολών. Με τον τρόπο αυτό εξασφαλίζεται ότι κάθε χρήστης έχει το δικό του χώρο εργασίας (workspace), ο οποίος δεν επηρεάζεται από τις ενέργειες άλλων χρηστών. Απαίτηση 6: Για να εξασφαλίσουμε ότι οι χρήστες εξυπηρετούνται σε ικανοποιητικούς χρόνους και με ικανοποιητική ποιότητα, δεν μπορούν να «τρέχουν» ταυτόχρονα περισσότερα από 10 στιγμιότυπα του Matlab. Αυτό συμβαίνει γιατί κάθε στιγμιότυπο καταναλώνει αρκετούς πόρους του συστήματος και μεγάλος αριθμός τους θα μπορούσε να οδηγήσει σε αστάθεια. Απαίτηση 7: Κάθε χρήστης του Virtual Lab διαθέτει έναν προσωπικό κατάλογο στον server, στον οποίο μπορεί να αποθηκεύει αρχεία κάθε είδους. Ο κατάλογος αυτός έχει όριο μεγέθους τα 2ΜΒ και είναι ο κατάλογος εργασίας (working directory) στο Matlab. Αυτό εξασφαλίζει ότι κάθε αρχείο τύπου m-file που αποθηκεύει ο χρήστης στον προσωπικό του κατάλογο μπορεί να εκτελεστεί άμεσα από την γραμμή εντολών. Απαίτηση 8: Από το σύνολο των εντολών του Matlab μόνο ένα μέρος είναι διαθέσιμο στους χρήστες του Virtual Lab. Π.χ. οι εντολές συστήματος, που στο Matlab αρχίζουν με το σύμβολο «!», δεν μπορούν να εκτελεστούν μέσω της γραμμής εντολών του Virtual Lab για λόγους ασφάλειας και ακεραιότητας του συστήματος. Επίσης, η εντολή «cd [newdirectorypath]» δεν μπορεί να εκτελεστεί, γιατί ο κατάλογος εργασίας (βλ. απαίτηση 7) πρέπει πάντα να ταυτίζεται με τον προσωπικό κατάλογο του χρήστη. 2.3.2. Αποθήκη Αλγορίθμων (Algorithm Repository, AR) Απαίτηση 9: Το αρχείο που περιέχει την υλοποίησή του κάθε αλγορίθμου πρέπει να αποθηκεύεται σε συγκεκριμένη θέση στο AR. Η υλοποίηση αυτή πρέπει να είναι γραμμένη σε κώδικα εκτελέσιμο από το Matlab και αποθηκευμένη σε αρχείο τύπου m-file. Απαίτηση 10: Πέρα από το εκτελέσιμο αρχείο του, πρέπει να αποθηκεύονται για κάθε αλγόριθμο και τα ακόλουθα μετα-δεδομένα (metadata): η πλήρης διαδρομή (full path) ως το σημείο αποθήκευσης του εκτελέσιμου αρχείου

22 το όνομα του εκτελέσιμου αρχείου τ α ονόματα των μεταβλητών εισόδου του αλγορίθμου τα ονόματα των μεταβλητών εξόδου του αλγορίθμου μία σύντομη περιγραφή της λειτουργίας του αλγορίθμου η πλήρης διαδρομή ως το σημείο αποθήκευσης και τα ονόματα άλλων αλγορίθμων του AR που χρησιμοποιούνται στον κώδικα η κατηγορία στην οποία υπάγεται ο αλγόριθμος Τα μετα-δεδομένα αυτά αποθηκεύονται σε XML αρχείο με κατάλληλη δομή. Απαίτηση 11: Ορισμένα από τα μετα-δεδομένα του αλγορίθμου (βλ. απαίτηση 10) μπορούν να εξαχθούν αυτόματα από το αρχείο υλοποίησης του αλγορίθμου, αν αυτό είναι γραμμένο σύμφωνα με τις ακόλουθες παραδοχές: Μετά το αρχείο ορίζει μία συνάρτηση της μορφής: function[outvar 1,outVar 2,,outVar N ] = algoname(invar 1,inVar2,,inVar) όπου outvari (1 i N) οι μεταβλητές εξόδου, invari ( 1 i Μ) οι μεταβλητές εισόδ ου και algoname το όνομα του αλγορίθμου τα σχόλια που περιέχουν την περιγραφή του αλγορίθμου βρίσκονται στην αρχή του αρχείου (πριν ή μετά από τον ορισμό της συνάρτησης) και είναι οργανωμένα σε μια συνεχόμενη ακολουθία γραμμών που όλες αρχίζουν με το σύμβολο %. την αυτόματη εξαγωγή των παραπάνω μετα-δεδομένων δίνεται η δυνατότητα στον χρήστη να αλλάξει οποιοδήποτε αυτά. Απαίτησ η 12: Όλοι οι αλγόριθμοι της αποθήκης είναι άμεσα διαθέσιμοι στον χρήστη, δηλαδή μπορούν να κληθούν από τη γραμμή ενολών του Matlab. Αυτό σημαίνει πρακτικά ότι έχουν προστεθεί στην ενεργή διαδρομή (active path) του Matlab, γεγονός που εξηγεί την ανάγκη γνώσης της διαδρομής έως το σημείο αποθήκευσης του αρχείου του αλγορίθμου (βλ. απαίτηση 10). Απαίτηση 13: Το AR υποστηρίζει την κατηγοριοποίηση των αλγορίθμων. Τα ονόματα των κατηγοριών ορίζονται από τον διδάσκοντα του μαθήματος, που είναι και ο διαχειριστής του AR. Απαίτηση 14: Το AR από φυσικής άποψης αντιστοιχεί σε έναν κατάλογο του συστήματος. Στον κατάλογο αυτό υπάρχει ένας υποκατάλογος για κάθε κατηγορία, μέσα στον οποίο βρίσκονται τα αρχεία των αλγορίθμων που υπάγονται σε αυτήν.

23 Απαίτηση 15: Σε μία κατηγορία του AR δεν μπορούν να υπάρχουν πάνω από ένας αλγόριθμοι με το ίδιο όνομα. Απαίτηση 16: Μία κατηγορία του AR μπορεί να μετονομαστεί χωρίς να επηρεαστούν οι αλγόριθμοι που αυτή περιέχει, αρκεί να μην υπάρχει ήδη άλλη κατηγορία με το νέο όνομα. Απαίτηση 17: Μία κατηγορία του AR δεν μπορεί να διαγραφεί αν περιέχει έστω και έναν αλγόριθμο. Απαίτηση 18: Ένας αλγόριθμος δεν μπορεί να διαγραφεί αν χρησιμοποιείται έστω και σε μία άσκηση (βλ. ενότητα 2.3.4. «Διαθέσιμες Ασκήσεις»). Απαίτηση 19: Υποστηρίζεται η διόρθωση αλγορίθμων. Κατά τη διαδικασία διόρθωσης μπορούν να αλλάξουν όλα τα μετα-δεδομένα (απαίτηση 10) εκτός από τη διαδρομή (path) έως το σημείο αποθήκευσης του αλγορίθμου. Επίσης, δεν μπορεί να αλλάξει το αρχείο με την υλοποίηση του αλγορίθμου. Απαίτηση 20: Για κάθε αλγόριθμο δημιουργείται ένα αρχείο βοήθειας που περιέχει τα απαραίτητα στοιχεία για τη σωστή χρησιμοποίηση του. Το αρχείο βοήθειας δημιουργείται αυτόματα κατά την διαδικασία κατάθεσης του αλγορίθμου και ενημερώνεται όταν αλλάξει κάποιο από τα στοιχεία που περιέχει. Απαίτηση 21: Τα αρχεία βοήθειας οργανώνονται σε κατηγορίες αντανακλώντας έτσι την ιεραρχική δομή της αποθήκης αλγορίθμων. Ο χρήστης έχει πρόσβαση σε αυτά μέσω ενός κεντρικού ευρετηρίου βοήθειας που είναι πάντα ορατό σε αυτόν όταν χρησιμοποιεί τη γραμμή εντολών του Matlab. 2.3.3. Αποθήκη Δεδομένων (Data Repository, DR) Α παίτηση 22: Η αποθήκη πολυμεσικών δεδομένων (data repository, DR) από φυσικής άποψης αντιστοιχεί σε έναν κατάλογο του συστήματος. Στον κατάλογο αυτό αποθηκεύονται τα αρχεία δεδομένων που χρησιμοποιούνται στις διάφορες ασκήσεις. Απαίτηση 23: Η διαχείριση του DR γίνεται από τους διδάσκοντες του μαθήματος. Υποστηρίζονται λειτουργίες όπως αποθήκευση (upload), διαγραφή ή μετονομασία αρχείων, δημιουργία, διαγραφή ή μετονομασία καταλόγων κτλ.

24 2.3.4. Αποθήκη Ασκήσεων (Exercise Repository, ER) Α παίτηση 24: Για κάθε άσκηση που κατατίθεται από τους διδάσκοντες πρέπει να αποθηκεύονται τα ακόλουθα μετα-δεδομένα: το όνομα της άσκησης όπως αυτό θα φαίνεται στους χρήστες μία σύντομη περιγραφή του σκοπού της άσκησης και/ή το αρχείο που περιέχει την εκφώνησή της η πλήρης διαδρομή (full path) ως το σημείο αποθήκευσης του αρχείου εκφώνησης (αν υπάρχει) τα ονόματα και η πλήρης διαδρομή ως το σημείο αποθήκευσης των αλγορίθμων του AR που πρέπει να χρησιμοποιηθούν για την επίλυση της άσκησης τα ονόματα και η πλήρης διαδρομή ως το σημείο αποθήκευσης των δεδομένων του DR που πρέπει να χρησιμοποιηθούν για την επίλυση της άσκησης Τα μετα-δεδομένα αυτά αποθηκεύονται σε XML αρχείο με κατάλληλη δομή. Απαίτηση 25: Το ER από φυσικής άποψης αντιστοιχεί σε έναν κατάλογο του συστήματος. Στον κατάλογο αυτό υπάρχει ένας υποκατάλογος για κάθε άσκηση, μέσα στον οποίο βρίσκεται το αρχείο εκφώνησης της άσκησης (αν υπάρχει). Απαίτηση 26: Οι αλγόριθμοι που ορίζονται ως απαραίτητοι για την επίλυση της άσκησης τίθενται στην ενεργή διαδρομή (active path) του Matlab πριν από όλους τους υπόλοιπους αλγορίθμους του AR. Με τον τρόπο αποφεύγεται η ασάφεια που μπορεί να προκύψει στην περίπτωση που υπάρχουν περισσότεροι από ένας αλγόριθμοι με το ίδιο όνομα στο AR (βλ. και ενότητα 2.3.5. «Επίλυση Ασκήσεων»). Απαίτηση 27: Υποστηρίζεται η διαγραφή ασκήσεων από το ER. Απαίτηση 28: Κατά την εισαγωγή μιας άσκησης στο ER προστίθεται αυτόματα μία νέα επιλογή με το όνομα της άσκησης στο μενού διαθέσιμων ασκήσεων. 2.3.5. Περιβάλλον Επίλυσης Ασκήσεων Απαίτηση 29: Όλες οι ασκήσεις του ER είναι διαθέσιμες στους χρήστες μέσω ενός μενού επιλογής άσκησης (βλ. και απαίτηση 28). Απαίτηση 30: Με την επιλογή οποιασδήποτε από τις διαθέσιμες ασκήσεις, ο χρήστης μεταφέρεται σε ένα περιβάλλον από όπου μπορεί να χρησιμοποιήσει τη γραμμή εντολών του Matlab για την επίλυσή της.

25 Απαίτηση 31: Στο περιβάλλον επίλυσης άσκησης o χρήστης έχει τη δυνατότητα να αποθηκεύσει τοπικά (download) στον υπολογιστή του το αρχείο με την εκφώνηση της άσκησης που έχει επιλέξει. Επίσης, είναι διαθέσιμη σε αυτόν η περιγραφή του σκοπού της άσκησης. Απαίτηση 32: Στο περιβάλλον επίλυσης άσκησης υπάρχουν απευθείας σύνδεσμοι για τα αρχεία βοήθειας των αλγορίθμων που χρησιμοποιεί η άσκηση. Επιπλέον, υπάρχει πάντα και η επιλογή μετάβασης στο κεντρικό ευρετήριο βοήθειας (βλ. απαίτηση 21). Απαίτηση 33: Κατά την επίλυση μιας άσκησης ο χρήστης μπορεί να καλέσει απευθείας από την γραμμή εντολών του Matlab οποιονδήποτε από τους αλγορίθμους που χρησιμοποιεί η άσκηση. Ακόμη κι αν υπάρχουν άλλοι αλγόριθμοι με το ίδιο όνομα στο AR οι αλγόριθμοι της άσκησης πρέπει να βρίσκονται πρώτοι στην ενεργή διαδρομή του Matlab (βλ. απαίτηση 26). Απαίτηση 34: Ο χρήστης έχει τη δυνατότητα κάθε στιγμή να καταθέσει κάποιο αρχείο για την συγκεκριμένη άσκηση. Τα αρχεία προς κατάθεση επιλέγονται από τον προσωπικό του κατάλογο και αντιγράφονται στη λίστα προς κατάθεση. Απαίτηση 35: Τα αρχεία που καταθέτουν οι χρήστες κατά την επίλυση των ασκήσεων αποθηκεύονται στον διακομιστή σύμφωνα με την ακόλουθη ιεραρχία καταλόγων: υπάρχει ένας κατάλογος για κάθε άσκηση και μέσα σε αυτόν δημιουργείται ένας υποκατάλογος για κάθε χρήστη που καταθέτει αρχεία για την συγκεκριμένη άσκηση. Κάθε υποκατάλογος χρήστη περιέχει μία λίστα αρχείων την οποία ο χρήστης μπορεί να αλλάξει οποιαδήποτε στιγμή προσθέτοντας νέα αρχεία ή διαγράφοντας τα παλιά (βλ. απαίτηση 34). Απαίτηση 36: Οι διδάσκοντες έχουν πρόσβαση στα αρχεία που καταθέτουν οι χρήστες κατά την επίλυση των ασκήσεων. Μπορούν να ανοίξουν ή να αποθηκεύσουν (download) τα αρχεία των χρηστών. Επίσης, έχουν τη δυνατότητα να δημιουργήσουν ένα ZIP αρχείο ανά άσκηση, που να περιέχει όλα τα αρχεία που έχουν κατατεθεί για την άσκηση αυτή.

26 2.4. Λειτουργικές απαιτήσεις για το μάθημα «Βάσεις Δεδομένων» Απαίτηση 37: Υπάρχει ένας διακομιστής ΒΔ (database server) 4, στον οποίο λειτουργεί μία εφαρμογή διαχείρισης σχεσιακών ΒΔ (Relational Database Management System RDBMS). Προτείνεται ο SQL Server 2000 της Microsoft. Απαίτηση 38: Η επικοινωνία του πελάτη (client) με τον database server γίνεται είτε μέσω της εφαρμογής του Virtual Lab είτε μέσω του εργαλείου Microsoft SQL Web Data Administration. Απαίτηση 39: Το σύστημα παρέχει στους χρήστες υποστήριξη για την ανάπτυξη αντικειμενοστρεφών ΒΔ. Συγκεκριμένα χρησιμοποιείται η τεχνολογία αντιστοίχησης αντικειμένων σε σχεσιακή ΒΔ (object-relational mapping, ORM). Σύμφωνα με την γενική αρχιτεκτονική του συστήματος (client-server αρχιτεκτονική) και τις απαιτήσεις 37 έως 39 το module που εξυπηρετεί το μάθημα «Βάσεις Δεδομένων» ακολουθεί την αρχιτεκτονική που φαίνεται στο Σχήμα 2.3. Σχήμα 2-3: Αρχιτεκτονική του module «Βάσεις Δεδομένων» 4 Πρέπει να σημειωθεί ότι ο διακομιστής ΒΔ (database server) δεν είναι απαραίτητο να αντιστοιχεί από φυσικής άποψης σε ανεξάρτητη μονάδα υπολογιστή, αλλά μπορεί να ταυτίζεται με τον διακομιστή ιστοσελίδων (web server).

27 2.4.1. Ανάπτυξη Σχεσιακών Βάσεων Δεδομένων Απαίτηση 40: Ο χρήστης έχει τη δυνατότητα να σχεδιάσει και να αναπτύξει από την αρχή μια ΒΔ με βάση το σχεσιακό (relational) μοντέλο. Η ανάπτυξη αυτή γίνεται χρησιμοποιώντας το εργαλείο Microsoft SQL Web Data Administration, το οποίο προσφέρει δυνατότητες παρόμοιες με την εφαρμογή Enterprise Manager του SQL Server, αλλά μέσω διαδικτύου. Απαίτηση 41: Για την ανάπτυξη του επιθυμητού σχήματος ο κάθε χρήστης έχει στη διάθεσή του μία μόνο ΒΔ στην οποία έχει πλήρη δικαιώματα. Η βάση αυτή είναι αρχικά άδεια και δημιουργείται αυτόματα την πρώτη φορά που ο χρήστης επισκέπτεται το module «Βάσεις Δεδομένων». Απαίτηση 42: Ο κάθε χρήστης συνδέεται στον database server με το προσωπικό του όνομα χρήστη και συνθηματικό, το οποίο ταυτίζεται με αυτό του eτημμυ, και δεν έχει πρόσβαση σε καμία από τις ΒΔ των άλλων χρηστών. Όσον αφορά τις βάσεις του συστήματος έχει μόνο δικαίωμα υποβολής ερωτημάτων επιλογής (SELECT) 5. 2.4.2. Ανάπτυξη Αντικειμενοστρεφών Βάσεων Δεδομένων Απαίτηση 43: Υπάρχει ένα πακέτο Java κλάσεων που διαχειρίζεται μια υποθετική εφαρμογή διαχείρισης αποθήκης, αντίστοιχης της Northwind. Οι κλάσεις αυτές μέσω της τεχνολογίας ORM αντιστοιχίζονται σε μία σχεσιακή ΒΔ στον διακομιστή ΒΔ. Απαίτηση 44: Ο χρήστης μπορεί μέσα από το Virtual Lab να υποβάλλει ερωτήματα στην αντικειμενοστρεφή ΒΔ χωρίς τη χρήση της γλώσσας SQL. Απαίτηση 45: Επίσης, μπορεί να διαχειρίζεται (επιλογή, προσθήκη, ενημέρωση) τα δεδομένα της βάσης αυτής καθαρά προγραμματιστικά μέσα από μια Java εφαρμογή που χρησιμοποιεί το διαθέσιμο πακέτο κλάσεων (βλ. απαίτηση 43). 5 Ο ορισμός των δικαιωμάτων χρήστη ακολουθεί τη σύμβαση του SQLServer Enterprise Manager, ο οποίος τα διαχωρίζει σε δικαιώματα SELECT,INSERT,UPDATE και DELETE.

28 2.4.3. Υποβολή SQL ερωτημάτων Απαίτηση 46: Ο χρήστης μπορεί να υποβάλλει SQL ερωτήματα μέσω του SQL Web Data Administration. Για την σύνδεσή του στον δικομιστή ΒΔ χρησιμοποιεί όπως και στην περίπτωση ανάπτυξης ΒΔ (βλ. απαίτηση 42) το προσωπικό του όνομα χρήστη και συνθηματικό, το οποίο ταυτίζεται με αυτό του eτημμυ. Απαίτηση 47: Ο χρήστης μπορεί να υποβάλλει μόνο ερωτήματα επιλογής (SELECT) στους πίνακες των ΒΔ του συστήματος. Οποιαδήποτε άλλη ενέργεια απαγορεύεται για λόγους ασφαλείας. Απαίτηση 48: Ο χρήστης μπορεί να υποβάλλει SQL ερωτήματα όλων των τύπων (SELECT,INSERT,UPDATE,DELETE) σε δύο διαφορετικές βάσεις, στις οποίες έχει πρόσβαση μόνο αυτός. Η μία από αυτές είναι ήδη σχεδιασμένη και περιέχει ενδεικτικά δεδομένα. Η δεύτερη είναι η βάση που αναπτύσσει ο ίδιος (βλ. απαίτηση 41) Απαίτηση 49: Για την υποβολή ερωτημάτων στην ήδη υλοποιημένη βάση, ο χρήστης μπορεί εναλλακτικά να χρησιμοποιήσει ένα γραφικό περιβάλλον που τον διευκολύνει στην σωστή σύνταξη των ερωτημάτων. Απαίτηση 50: Το γραφικό περιβάλλον της απαίτησης 49 πρέπει να προσφέρει τουλάχιστον τα παρακάτω στοιχεία: Ένα textbox στο οποίο το SQL ερώτημα μπορεί να γραφεί είτε απευθείας, είτε με τη χρήση των υπόλοιπων στοιχείων του γραφικού περιβάλλοντος Μία λίστα των πεδίων του κάθε πίνακα, όπου θα φαίνεται και το πεδίο ορισμού τους Μία λίστα με τις διαθέσιμες SQL εντολές Έναν πίνακα στον οποίο θα φαίνονται οι συσχετίσεις μεταξύ των διαφόρων πινάκων της βάσης. Χρησιμοποιώντας τα στοιχεία αυτά, ο χρήστης μπορεί να συνθέτει βήμα-βήμα SQL ερωτήματα. Τα αποτελέσματα των ερωτημάτων (αν υπάρχουν) εμφανίζονται στο ίδιο περιβάλλον. 2.4.4. Αποθήκευση Βάσης Δεδομένων στο φυσικό επίπεδο Απαίτηση 51: Το σύστημα επιδεικνύει σχηματικά τους διάφορους τρόπους αποθήκευσης μιας ΒΔ στο φυσικό επίπεδο, όπως π.χ. με τη χρήση Β δένδρων (Β Trees)

29 με τη χρήση Κατακερματισμού (Hashing) Απαίτηση 52: Ο χρήστης έχει τη δυνατότητα να δει τι επίδραση έχουν στον τρόπο αποθήκευσης μιας ΒΔ στοιχεία όπως: το μέγεθος της σελίδας στη μνήμη το μέγεθος των εγγραφών Απαίτηση 53: Στα πλαίσια της ενότητας «Αποθήκευση Βάσης Δεδομένων στο φυσικό επίπεδο» αναλύονται επίσης θέματα όπως η πρόσβαση στο σκληρό δίσκο, οι δευτερεύοντες δείκτες και η επίλυση συγκρούσεων κατακερματισμού. 2.4.5. Βάσεις Δεδομένων στο WEB Απαίτηση 54: Το σύστημα προσφέρει στον χρήστη το απαραίτητο υπόβαθρο για να κατανοήσει την λειτουργία των δυναμικών σελίδων στο διαδίκτυο και πως οι σελίδες αυτές διευκολύνουν την δημοσιοποίηση μίας ΒΔ στο WEB. Απαίτηση 55: Ο χρήστης μπορεί να επιλέξει ανάμεσα στις server-side τεχνολογίες JSP και ASP.NET. Απαίτηση 56: Ανάλογα με την τεχνολογία που έχει επιλέξει, ο χρήστης μεταβαίνει στο κατάλληλο περιβάλλον, όπου, καταρχήν, του δίνεται η δυνατότητα να μάθει πώς λειτουργεί η συγκεκριμένη τεχνολογία. Στη συνέχεια υπάρχουν κάποια παραδείγματα χρήσης τα οποία περιέχουν παραμετροποιήσιμα SQL ερωτήματα, δίνοντας έτσι τη δυνατότητα στο χρήστη να πειραματιστεί. 2.4.6. Κατανεμημένες Βάσεις Δεδομένων Απαίτηση 57: Το σύστημα προσφέρει στον χρήστη το απαραίτητο υπόβαθρο για να κατανοήσει την λειτουργία των κατανεμημένων ΒΔ. Αναλύονται θέματα όπως: η αρχιτεκτονική των κατανεμημένων συστημάτων ΒΔ, η κατάτμηση δεδομένων και η κατανεμημένη επεξεργασία ερωτημάτων.

30 2.5. Μη λειτουργικές απαιτήσεις Απαίτηση 58: Το σύστημα μπορεί να εγκατασταθεί σε οποιαδήποτε πλατφόρμα/ λειτουργικό σύστημα. Απαίτηση 59: Αποφεύγεται η χρήση hardcoded ιδιοτήτων σύνδεσης με την βάση όπως και συνθηματικών ή paths, με στόχο την εύκολη προσαρμογή του συστήματος σε διαφορετικά περιβάλλοντα. Απαίτηση 60: Η αυθεντικοποίηση των χρηστών γίνεται χρησιμοποιώντας την ΒΔ χρηστών του ethmmy. Απαίτηση 61: Ο χρήστης δεν έχει πρόσβαση σε καμία σελίδα του Virtual Lab χωρίς να περάσει την διαδικασία αυθεντικοποίησης. Απαίτηση 62: Όλες οι χρησιμοποιούμενες εφαρμογές και τεχνολογίες διατίθενται δωρεάν ή έχουν αναπτυχθεί από την open source κοινότητα. Εξαίρεση αποτελούν οι εφαρμογές για τις οποίες το ΤΗΜΜΥ διαθέτει ήδη άδειες χρήσης. Απαίτηση 63: Σε περίπτωση σφάλματος δίνονται στο χρήστη χρήσιμες πληροφορίες για την αιτία που το προκάλεσε. Απαίτηση 64: Το σύστημα ανταποκρίνεται σε ικανοποιητικούς χρόνους και με ικανοποιητική ποιότητα, ανεξάρτητα από τον αριθμό των ταυτόχρονα συνδεδεμένων χρηστών.

31 Κεφάλαιο 3 Τεχνολογίες και εργαλεία ανάπτυξης 3.1. Java Για την ανάπτυξη της εφαρμογής διακομιστή (server application) επιλέχθηκε η Java [2,3], η οποία είναι μια γλώσσα προγραµµατισµού υψηλού επιπέδου με τα εξής ενδιαφέροντα χαρακτηριστικά: Αντικειµενοστρεφής (object-oriented) Ασφαλής (secure): έχει σχεδιαστεί εξαρχής ως μία ασφαλής γλώσσα που παρέχει δυνατότητες ελέγχου για τη μείωση του κινδύνου προσβολής από «κακόβουλες» εφαρμογές. Μεταφέρσιμη (portable): μπορεί να εκτελείται σε διαφορετικές πλατφόρµες και λειτουργικά συστήµατα χωρίς τροποποίηση. Κατανεµηµένη (distributed): τμήματα κώδικα που «τρέχουν» σε διαφορετικούς υπολογιστές μπορούν να αποτελούν μία ενιαία εφαρμογή. Πολυνηµατική (multithreaded): μία Java εφαρμογή μπορεί να εκτελεί ταυτόχρονα πολλές διεργασίες ανεξάρτητες και αλληλεπιδρούσες. Το πιο σημαντικό ίσως χαρακτηριστικό της Java είναι το γεγονός ότι δεν εξαρτάται από την πλατφόρµα και το λειτουργικό σύστημα: μία εφαρμογή γραμμένη σε Java μπορεί να εκτελείται σε οποιοδήποτε περιβάλλον χωρίς καμία τροποποίηση. Η ανεξαρτησία αυτή είναι εγγενές χαρακτηριστικό της γλώσσας και βασίζεται στη χρήση μιας εικονικής μηχανής (Java Virtual Machine - JVM) για την

32 προσοµοίωση ενός ιδεατού επεξεργαστή, ικανού να εκτελεί προγράµµατα γραµµένα σε Java. Η εικονική μηχανή δέχεται μεταγλωττισµένα προγράµµατα και μετατρέπει τις εντολές τους σε εντολές εκτελέσιμες από το εκάστοτε λειτουργικό σύστηµα. Με τον τρόπο αυτό, κάθε υπολογιστής, ανεξαρτήτως λειτουργικού συστήµατος (Windows, Linux, Solaris, Macintosh, κλπ.), ο οποίος διαθέτει την εικονική μηχανή, μπορεί να εκτελέσει προγράµµατα γραμμένα σε Java, ανεξάρτητα από τον μεταγλωττιστή που έχει χρησιμοποιηθεί για την δημιουργία τους. Αυτός ο συνδυασμός ανεξαρτησίας από επεξεργαστές και λειτουργικά συστήματα είναι που κάνει την Java ιδιαίτερα ανταγωνιστική και επιτρέπει τον χαρακτηρισμό της ως «Write-Once-Run-Anywhere» γλώσσα. 3.2. Δυναμικές Ιστοσελίδες 3.2.1. Java Server Pages (JSP) Για την ανάπτυξη της εφαρμογής πελάτη (client application) χρειαζόμασταν μία τεχνολογία δυναμικών ιστοσελίδων. Επιλέχθηκαν οι Java Server Pages (JSP) [4,5], οι οποίες παρέχουν έναν γρήγορο και απλό τρόπο δημιουργίας δυναμικού δικτυακού περιεχομένου και επιπλέον βασίζονται στη γλώσσα προγραμματισμού Java. Οι JSP σελίδες είναι ουσιαστικά HTML αρχεία, τα οποία όμως περιέχουν και ειδικά Tags με κώδικα Java. Αυτά ακριβώς τα tags είναι που παρέχουν το δυναμικό περιεχόμενο, αφού ο κώδικάς τους εκτελείται στον διακομιστή (server) και παράγει ανάλογα με την αίτηση τον κατάλληλο HTML κώδικα για να επιστραφεί στον browser του πελάτη (client). Επειδή η τεχνολογία JSP βασίζεται στην τεχνολογία των Java Servlets, στον διακομιστή είναι απαραίτητη η ύπαρξη της JSP Servlet Engine, η οποία μεταφράζει την σελίδα σε ένα Servlet ικανό να δημιουργεί δυναμικά την κατάλληλη HTML σελίδα. Η μετάφραση αυτή γίνεται μόνο την πρώτη φορά που ζητείται η JSP σελίδα, ενώ κάθε επόμενη αίτηση εξυπηρετείται από το ήδη υπάρχον Servlet. Η διαδικασία που ακολουθείται φαίνεται στο σχήμα 3.1. Η τεχνολογία JSP έχει πολλά πλεονεκτήματα, τα περισσότερα από τα οποία «κληρονομεί» από την γλώσσα στην οποία βασίζεται (Java). Γενικά:

33 παρέχει ένα εύρωστο περιβάλλον ανάπτυξης δικτυακών εφαρμογών είναι ανεξάρτητη από την πλατφόρμα / λειτουργικό σύστημα είναι ανεξάρτητη από τον διακομιστή (web server) προσφέρει τη δυνατότητα επαναχρησιμοποίησης του κώδικα, αφού κληρονομεί από την Java τις τεχνολογίες JavaBeans και EJB. Σχήμα 3-1: Εξυπηρέτηση αίτησης για JSP σελίδα 3.2.2. Active Server Pages.NET (ASP.NET) Για την ενότητα των ΒΔ στο web χρησιμοποιήθηκε και η τεχνολογία ASP.NET [6,7]. Η τεχνολογία αυτή αναπτύχθηκε για να αντικαταστήσει την ήδη πετυχημένη ASP. Ωστόσο, έχει επιφέρει πολλές αλλαγές στο ήδη υπάρχον μοντέλο. Οι σελίδες πέρα από τον html κώδικα έχουν και κάποια κομμάτια κώδικα που περικλείονται από <% και %>. Ότι περικλείεται ανάμεσα σε αυτά είναι script που εκτελείται στον server και μπορεί: να δημιουργεί δυναμικό περιεχόμενο στις ιστοσελίδες που εμφανίζονται στον χρήστη να συνδέεται σε βάσεις δεδομένων, να θέτει ερωτήματα (queries) σε αυτές και να επιστρέφει τα αποτελέσματα στον χρήστη να χειρίζεται θέματα ασφάλειας, όπως login χρηστών

34 Οι ASP.NET σελίδες προσφέρουν επίσης και ένα εναλλακτικό τρόπο για την εκτέλεση των λειτουργιών που πρέπει να γίνουν στον server, ο οποίος αναπτύχθηκε για να αντιμετωπίσει το πρόβλημα της συντήρησης κώδικα ASP μέσα στις σελίδες, αφού εμπλέκονταν η δουλειά του προγραμματιστή με την δουλειά του γραφίστα. Η ASP.NET έχει εισάγει τις code-behind κλάσεις. Μια code-behind κλάση αντιστοιχεί σε κάποια συγκεκριμένη σελίδα και μπορεί να διαχειρίζεται δυναμικά το περιεχόμενο της, να ανταποκρίνεται στις διάφορες ενέργειες του χρήστη, όπως το πάτημα κουμπιών κα. Με αυτόν τον τρόπο η σχεδίαση της ιστοσελίδας (γραφιστική) και η ανάπτυξη της λογικής (προγραμματισμός) γίνονται δύο απολύτως διακριτές εργασίες. Επιπλέον η συντήρηση και επέκταση των ιστοσελίδω ν διευκολύνεται αισθητά, αφού μπορούν να χρησιμοποιηθούν αρχιτεκτονικέ ς πολλών επιπέδων (n-tier architectures). Επίσης ένα εξίσου σημαντικό γεγονός είναι ότι με τις code-behind κλάσεις μπορεί ο προγραμματιστής να χειριστεί τις διάφορες ενέργειες του χρήστη (π.χ. πάτημα κουμπιού) ως events, όπως ακριβώς συμβαίνει και σε μία εφαρμογή (application). Το γεγονός αυτό δίνει μεγάλη ευελιξία στην διαχείριση πολύπλοκων σελίδων, όπου οι πιθανές ενέργειες του χρήστη είναι πολλές και διαφορετικές. 3.3. To Struts framework Η όλη ανάπτυξη του Virtual Lab βασίστηκε στο Struts framework [8,9] για να διατηρηθεί η συμβατότητα με τα ήδη υλοποιημένα τμήματα του ethmmy. 3.3.1. Τι είναι το framework; Στην απλούστερη του μορφή είναι μία συλλογή από κλάσεις και interfaces τα οποία συνεργάζονται για να λύσουν ένα συγκεκριμένο τύπο προγραμματιστικού προβλήματος. Ένα framework διακρίνεται από τα εξής χαρακτηριστικά: Αποτελείται από κλάσεις ή components καθένα από τα οποία παρέχει μία αφηρημένη υλοποίηση μίας συγκεκριμένης έννοιας Ορίζει πώς αυτές οι υλοποιήσεις συνεργάζονται για να λύσουν το πρόβλημα Τα μέρη από τα οποία συνίσταται είναι επαναχρησιμοποιήσιμα

35 Παρέχει γενική συμπεριφορά την οποία μπορούν να χρησιμοποιήσουν πολλοί τύποι εφαρμογών Σε αντίθεση με μία βιβλιοθήκη, της οποίας τις κλάσεις και τις διεπαφές απλά τις καλεί κάποιος για να τις χρησιμοποιήσει, ένα framework προσφέρει μία βάση, πάνω στην οποία μπορεί ο προγραμματιστής να «χτίσει» την εφαρμογή του, απλά επεκτείνοντας τις κλάσεις του framework. 3.3.2. Ειδικότερα για το Struts framework Το Struts Framework βασίζεται στην τεχνολογία των Java Servlets και σε μικρότερο βαθμό στην τεχνολογία των JSP. Για το λόγο αυτό είναι αναγκαία η ύπαρξη ενός web container, το οποίο φιλοξενεί την εφαρμογή που χρησιμοποιεί το Struts Framework. Με αυτό τον τρόπο η εφαρμογή δεν χρειάζεται να χειρίζεται τις HTTP αιτήσεις, αφού το Struts Framework έχει τη δυνατότητα να χρησιμοποιεί τέτοιου είδους υπηρεσίες που προσφέρονται από το web container. Η λειτουργία του Struts Framework είναι σύμφωνη με το μοντέλο MVC 6 με την διαφορά ότι τα servlets δεν χρειάζεται να απασχολήσουν τον προγραμματιστή αφού προσφέρονται έτοιμα από το Framework. 3.4. Web Servers 3.4.1. Apache Tomcat Για τη φιλοξενία και τη διαχείριση των ιστοσελίδων του Virtual Lab χρειάζεται να υπάρχει ένας κατάλληλος web server, ο οποίος επιπρόσθετα έχει τη δυνατότητα να εκτελεί JSP σελίδες. Αυτή η δυνατότητα μεταφράζεται στο γεγονός ότι ο server πρέπει να έχει ιδιότητες Servlet Container. Τέτοιες δυνατότητες προσφέρουν πολλά εμπορικά πακέτα, όπως ο Weblogic Server της IBM. Ωστόσο, εμείς προτιμήσαμε να χρησιμοποιήσουμε τον Tomcat [10] ο οποίος ανήκει στην κατηγορία του ανοιχτού λογισμικού. Η επιλογή του Tomcat έγινε για αρκετούς λόγους. Πέρα από το γεγονός του ότι διανέμεται δωρεάν, ο Tomcat έχει εγκαθιδρυθεί ως ένας αξιόπιστος server, ο 6 To μοντέλο MVC περιγράφεται στην παράγραφο 4.1.2

36 οποίος επιπλέον έχει από πίσω του όλη την υποστήριξη της open-source κοινότητας. Επίσης συνεργάζεται άψογα με την τεχνολογία των Struts που χρησιμοποιήθηκε, αφού άρχισαν και οι δύο ως κομμάτια ενός μεγαλύτερου project της Apache Foundation, το Jakarta Project. Ο Tomcat προσφέρει ένα έτοιμο πακέτο web server και servlet container το οποίο εγκαθίσταται ως service στο σύστημα που το φιλοξενεί. Αυτό σημαίνει ότι ανοίγει αυτόματα, χωρίς να χρειάζεται κάποια ενέργεια εκ μέρους του χρήστη. 3.4.2. Internet Information Services (IIS) Για την χρησιμοποίηση των τεχνολογιών.νετ χρειάζεται και η κατάλληλη υποδομή. Έτσι για την χρήση της ASP.NEΤ τεχνολογίας (module υποβολής ερωτημάτων, module των ΒΔ στο web) έπρεπε να έχουμε το.νετ framework αλλά και ένα web server ο οποίος υποστηρίζει αυτές τις τεχνολογίες. Ο IIS επιλέχθηκε όχι μόνο για τη συμβατότητά του με το.νετ framework, αλλά και γιατί είναι ένας σταθερός server ο οποίος έχει σχεδιαστεί για να μπορεί να «σερβίρει» σελίδες σε πολλούς χρήστες ταυτόχρονα. Ο IIS προσφέρεται μαζί με τις εκδόσεις των Windows XP Pro, Windows Professional 2000 και Windows 2003 server. 3.5. JPOX (Java Persistent Objects) 3.5.1. JDO (Java Data Objects) Η προδιαγραφή των JDO προσδιορίζει ένα περιβάλλον για την αποθήκευση και ανάσυρση αντικειμένων σε κάποια «αποθήκη» δεδομένων. Υποστηρίζει σύνθετες δυνατότητες όπως χρησιμοποίηση ερωτημάτων για την γρηγορότερη εύρεση αντικειμένων. Επίσης επειδή δεν προσδιορίζεται ακριβώς το μέσο αποθήκευσης μπορούν να χρησιμοποιηθούν σχεσιακές ΒΔ, EJB (Enterprise Java Beans), αλλά και απλά αρχεία στο φυσικό μέσο αποθήκευσης. Επειδή ακριβώς τα JDO [11] είναι προδιαγραφή, η κοινότητα των προγραμματιστών είναι ελεύθερη να αναπτύξει διαφορετικές υλοποιήσεις. Υπάρχουν κάποιες εμπορικές υλοποιήσεις όπως η Kodo JDO αλλά και κάποιες οι οποίες είναι open-source. Επιλέχθηκε η υλοποίηση των JPOX [12], η οποία ανήκει

37 στην κατηγορία του ανοιχτού λογισμικού και άρα μπορεί να χρησιμοποιηθεί από οποιονδήποτε χωρίς να χρειαστεί να αγοράσει κάποιο εμπορικό πακέτο. Επίσης τα JPOX προσφέρουν ευκολία στην υλοποίηση μίας εφαρμογής που χρησιμοποιεί JDO, αφού έχουν μία σειρά εργαλείων που αυτοματοποιούν πολλές από τις απαραίτητες λειτουργίες. 3.5.2. Η Υλοποίηση των JPOX Τα JPOX, έχοντας φτάσει πλέον στην έκδοση 1.1 είναι ίσως η καλύτερη υλοποίηση JDO μέχρι σήμερα. Η έκδοση 1.1 υποστηρίζει κάποια στοιχεία της προδιαγραφής JDO 2.0 η οποία αναμένεται να εγκριθεί σύντομα. Η ιδιαιτερότητα των JPOX είναι ότι δεν υποστηρίζουν την χρησιμοποίηση ενός αρχείου ως μέσο αποθήκευσης, γεγονός που δεν αποτελεί μεγάλη έλλειψη, αφού προσφέρουν πολύ καλή υποστήριξη για σχεσιακές ΒΔ και για EJB. Οι σχεσιακές βάσεις που υποστηρίζονται είναι όλες οι γνωστές εμπορικές, αλλά και αρκετές που ανήκουν στην κατηγορία ανοιχτού λογισμικού. Ο σκοπός των JPOX είναι να κρύψουν από τον προγραμματιστή τις λεπτομέρειες της αποθήκευσης και ανάσυρσης αντικειμένων. Το καταφέρνουν αυτό διαμορφώνοντας αυτόματα μία σχεσιακή ΒΔ η οποία αποθηκεύει τα απαραίτητα δεδομένα. Όταν ο προγραμματιστής θέλει να αποθηκεύσει ένα αντικείμενο, απλά δίνει στα JPOX την εντολή να το αποθηκεύσουν. Όλα τα δεδομένα προς αποθήκευση εξάγονται από το αντικείμενο, μετατρέπονται σε δεδομένα σχεσιακής ΒΔ και αποθηκεύονται. Η αντίθετη διαδικασία είναι επίσης διαφανής ως προς το χρήστη, ο οποίος απλά ζητάει το αντικείμενο που χρειάζεται και τα JPOX ανασύρουν τα δεδομένα από τη ΒΔ, δημιουργούν το αντικείμενο και το επιστρέφουν στο χρήστη. Με τη χρήση των JDO ο προγραμματιστής επικεντρώνει το ενδιαφέρον του στην σωστή σχεδίαση του μοντέλου χωρίς να τον απασχολούν οι λεπτομέρειες της αποθήκευσης.

38 3.6. Εργαλεία ανάπτυξης 3.6.1. Borland JBuilder Για την ανάπτυξη Java κώδικα χρησιμοποιήθηκε ο JBuilder 2005 Enterprise Edition της Borland. Ο JBuilder είναι ένα Integrated Development Environment (IDE). Αυτό σημαίνει ότι προσφέρει ένα περιβάλλον, φιλικό προς τον προγραμματιστή, το οποίο βοηθά στην αποδοτικότερη συγγραφή κώδικα. Για παράδειγμα αυτοματοποιεί την δημιουργία JavaDoc για την επεξήγηση του κώδικα και ελέγχει αυτόματα για προγραμματιστικά λάθη. Η έκδοση που χρησιμοποιήθηκε προσφέρει και υποστήριξη για την δημιουργία web εφαρμογών με την χρησιμοποίηση της τεχνολογίας Struts. Συγκεκριμένα υποστηρίζεται η αυτόματη δημιουργία των απαραίτητων κλάσεων, όπως και η αυτόματη ανάπτυξη (deployment) στον Tomcat. Επίσης προσφέρονται εργαλεία που βοηθούν στη συγγραφή κατάλληλων XML αρχείων, όπως είναι το strutsconfig.xml που χρησιμοποιείται από το Struts framework και το build.xml που χρησιμοποιείται από το ant. Τέλος να αναφέρουμε ότι προτιμήθηκε από άλλα αντίστοιχα IDE, όπως το eclipse λόγω πρότερης εμπειρίας της ομάδας ανάπτυξης. Ενώ το eclipse προσφέρει τις ίδιες δυνατότητες, θα χρειάζονταν κάποιος χρόνος προσαρμογής στο καινούργιο περιβάλλον, κάτι που κατέστησε απαγορευτική την μεταπήδηση στο eclipse. 3.6.2. Visual Studio.NET 2005 Για την δημιουργία κώδικα που χρησιμοποιεί την τεχνολογία.νετ χρησιμοποιήθηκε το Visual Studio.NET (VS.NET) 2003 της Microsoft. Το VS.NET είναι ένα IDE το οποίο υποστηρίζει τη δημιουργία κώδικα σε οποιαδήποτε από τις.νετ γλώσσες προγραμματισμού. Επίσης υποστηρίζει και την ανάπτυξη σελίδων ASP.NET με αυτοματοποίηση πολλών διεργασιών, όπως η δημιουργία code-behind κλάσης και το deployment στον IIS. Εξάλλου προσφέρει και δυνατότητες debugging στην web εφαρμογή, κάτι που λείπει από άλλες γλώσσες και άλλα IDE. Επιπρόσθετα, πολύ σημαντικό είναι και το περιβάλλον WYSIWYG(What You See Is What You Get), που προσφέρεται για την γρηγορότερη ανάπτυξη και καλύτερη εποπτεία της σελίδας που δημιουργείται.

39 Το VS.NET διατίθεται δωρεάν σε όλους του φοιτητές του πανεπιστημίου και για αυτό το λόγο προτιμήθηκε από αντίστοιχα IDE, όπως το C# Builder της Borland. 3.6.3. Macromedia Dreamweaver MX Για την ανάπτυξη και τη βελτίωση της εμφάνισης των ιστοσελίδων χρησιμοποιήθηκε το πρόγραμμα Dreamweaver MX της Macromedia. Ο Dreamweaver είναι ένα IDE που ως βασικό στόχο έχει την υποστήριξη δημιουργίας ιστοσελίδων, ανεξαρτήτου τεχνολογίας. Χρησιμοποιήθηκε αποκλειστικά για την βελτίωση της εμφάνισης των ιστοσελίδων, αφού προσφέρει περιβάλλον WYSIWYG για ιστοσελίδες όλων των τύπων: από HTML και JSP μέχρι ASP.NET. Επίσης συνεργάζεται άψογα και με τους δύο διαφορετικούς web servers που χρησιμοποιήθηκαν. 3.6.4. Apache Ant Τέλος χρησιμοποιήθηκε και το Αpache Αnt [13], το οποίο δεν είναι IDE όπως όλα τα προηγούμενα εργαλεία, αλλά ένα πρόγραμμα που βοηθάει στην αυτοματοποίηση κάποιων λειτουργιών απαραίτητων για την εκτέλεση προγραμμάτων Java. Επίκεντρο του ant είναι το αρχείο build.xml το οποίο παρέχει πληροφορίες για το τι ενέργειες μπορούν να γίνουν για την εκτέλεση μίας εφαρμογής. Στο αρχείο αυτό προσδιορίζονται κάποια tasks, καθένα από τα οποία εκτελεί μία λειτουργία. Έτσι, μπορεί να υπάρχει task για τη μεταγλώττιση της εφαρμογής, για τη δημιουργία βάσης δεδομένων, για την αντιγραφή αρχείων κα. Το Αnt χρησιμοποιήθηκε για το module αντικειμενοστρεφών ΒΔ, αφού δεν υπάρχει υποστήριξη για αυτήν την τεχνολογία από το JBuilder. Η ανάπτυξη του κώδικα έγινε μέσα στο περιβάλλον του JBuilder, όπως και η συγγραφή του build.xml. Όμως για την εκτέλεση όλων των διεργασιών για τη δημιουργία της αντικειμενοστρεφούς βάσης χρησιμοποιήθηκε το Αnt. Η εκτέλεση ενός προγράμματος μέσω Αnt είναι πολύ εύκολη, αφού το μόνο που χρειάζεται να ξέρει ο χρήστης είναι ποιο task του XML αρχείου θέλει να χρησιμοποιήσει. Μετά ανοίγει ένα command prompt και απλά γράφει [ant όνομα-

40 task ]. Το ant, αντλώντας αυτόματα πληροφορίες από το build.xml ορίζει το classpath και εκτελεί όποιες ενέργειες περιλαμβάνονται στο task.

41 Κεφάλαιο 4 Προδιαγραφή Συστήματος 4.1. Γενική αρχιτεκτονική του συστήματος Το Virtual Lab ακολουθεί την client-server αρχιτεκτονική, με την εφαρμογή διακομιστή να περιλαμβάνει δύο βασικά modules, ένα για κάθε εμπλεκόμενο μάθημα. Τα modules αυτά είναι μεν ανεξάρτητα μεταξύ τους, αλλά εμφανίζονται στο χρήστη σαν μια ενιαία εφαρμογή. Για την δημιουργία μίας εύρωστης και εύκολα συντηρήσιμης εφαρμογής χρησιμοποιήθηκε το μοντέλο MVC, το οποίο αποτελεί και τη βάση του Struts Framework. Το μοντέλο MVC είναι μία τεχνική σχεδίασης λογισμικού, η οποία πετυχαίνει τον διαχωρισμό των «υπευθυνοτήτων» σε μία web εφαρμογή (Σχήμα 4.1). Τα τρία βασικά στοιχεία του μοντέλου είναι: 1. Μοντέλο (Model): Υπεύθυνο για την κυρίως λογική της εφαρμογής 2. Παρουσίαση (View): Υπεύθυνη για την παρουσίαση της εφαρμογής 3. Ελεγκτής (Controller): Υπεύθυνος για τον έλεγχο και τη συνένωση των δύο παραπάνω με τον χρήστη Κάθε ένα από τα στοιχεία αυτά παρουσιάζεται σε μεγαλύτερη λεπτομέρεια στις ενότητες που ακολουθούν.

42 Σχήμα 4-1: Το μοντέλο MVC (Model View Controller) 4.1.1. Μοντέλο (Model) Το Μοντέλο είναι ο συνδετικός κρίκος ανάμεσα στα δεδομένα της εφαρμογής και στην παρουσίαση στον χρήστη. Αναλαμβάνει δηλαδή την ανάσυρση των δεδομένων από την ΒΔ που χρησιμοποιεί η εφαρμογή, και την προώθησή τους στην Παρουσίαση με κατάλληλη μορφή. 4.1.2. Παρουσίαση (View) Η Παρουσίαση αντιστοιχεί στον σχεδιασμό των ιστοσελίδων, δηλαδή στον τρόπο με τον οποίο αυτές παρουσιάζονται στο χρήστη (γραφικά, διάταξη, χρώματα κτλ.). Σε μία εφαρμογή που ακολουθεί το μοντέλο MVC η Παρουσίαση αποτελείται τυπικά από HTML και JSP σελίδες. Οι HTML σελίδες χρησιμοποιούνται σε περιπτώσεις στατικού μόνο περιεχομένου, ενώ οι JSP σελίδες μπορούν να περιέχουν τόσο στατικό όσο και δυναμικό περιεχόμενο. Το σημαντικό χαρακτηριστικό του μοντέλου MVC είναι ότι η Παρουσίαση είναι ανεξάρτητη του Μοντέλου κι επομένως μπορούν εναλλακτικά να χρησιμοποιηθούν και άλλες τεχνολογίες παρουσίασης.

43 4.1.3. Ελεγκτής (Controller) Ο Ελεγκτής είναι το κομμάτι που αναλαμβάνει τη σύνδεση του μοντέλου με την παρουσίαση και την επικοινωνία με τον χρήστη για την επίτευξη της διασύνδεσης αυτού με την παρουσίαση. Ο ελεγκτής έχει τα ακόλουθα καθήκοντα: 1. Λαμβάνει όλες τις αιτήσεις HTTP από τον χρήστη 2. Μεταφράζει κάθε τέτοια αίτηση σε μία συγκεκριμένη λειτουργία που πρέπει να εκτελεστεί 3. Είτε καλεί την λειτουργία από μόνος του είτε μεταβιβάζει αυτήν την ευθύνη σε κάποιον handler 4. Βοηθά στην επιλογή της επόμενης σελίδας που θα εμφανιστεί στον χρήστη 5. Αποστέλλει αυτή τη σελίδα στο χρήστη Έτσι, για παράδειγμα, μπορεί πολύ εύκολα να υλοποιηθεί μία διαδικασία αυθεντικοποίησης, η οποία σε αντίθετη περίπτωση θα χρειαζόταν την ένταξη τέτοιας λογικής σε κάθε σελίδα. 4.2. Δομικά στοιχεία του συστήματος 4.2.1. Σύνδεση του Matlab με την εφαρμογή διακομιστή Η χρήση της γραμμής εντολών του Matlab μέσω διαδικτύου είναι μία από τις βασικότερες υπηρεσίες που προσφέρει το Virtual Lab. Για τον σκοπό αυτό η εφαρμογή θα πρέπει να επικοινωνεί με το Matlab, να μπορεί να ελέγχει την έναρξη και τον τερματισμό του και να υποβάλλει σε αυτό εντολές προς εκτέλεση. Επίσης, αναγκαία είναι η ύπαρξη πολλαπλών ταυτόχρονων στιγμιοτύπων του Matlab, τα οποία θα εξυπηρετούν διαφορετικούς χρήστες. Το Matlab προσφέρει ένα σύνολο εντολών διασύνδεσης [14] με εφαρμογές γραμμένες σε γλώσσα C++, αλλά δεν υπάρχει αντίστοιχη υποστήριξη για εφαρμογές γραμμένες σε Java. Χρειαζόμαστε, λοιπόν, ένα ενδιάμεσο «στρώμα», το οποίο θα μεσολαβεί μεταξύ του Matlab και της εφαρμογής διακομιστή, η οποία είναι γραμμένη σε Java. Ακριβώς αυτό τον σκοπό εξυπηρετεί το Java Native Interface (JNI) [15], το οποίο επιτρέπει τη χρήση βιβλιοθηκών γραμμένων σε κάποια άλλη γλώσσα μέσα σε ένα Java πρόγραμμα. Μία από αυτές τις γλώσσες είναι και η C++.

44 Συγκεκριμένα, χρησιμοποιούμε μια native βιβλιοθήκη με το όνομα JMatLink.dll [16], η οποία είναι γραμμένη σε C++ [17] και περιλαμβάνει κατάλληλες μεθόδους για την έναρξη και τον τερματισμό του Matlab, την εκτέλεση εντολών και την επιστροφή αποτελεσμάτων των βασικών τύπων. Φυσικά, οι.dll βιβλιοθήκες προορίζονται αποκλειστικά για περιβάλλον Windows, αλλά εφόσον είναι διαθέσιμο και το αρχείο κώδικα JMatLink.c μπορεί να γίνει μετάφραση (compilation) σε κατάλληλο τύπο βιβλιοθήκης για οποιοδήποτε λειτουργικό σύστημα. Για την πρόσβαση, τώρα, στη βιβλιοθήκη JMatLink.dll μέσα από την εφαρμογή διακομιστή, υπάρχει μία Java wrapper κλάση, η οποία δηλώνει αντίστοιχες native μεθόδους για κάθε μία από τις μεθόδους που είναι υλοποιημένες στη βιβλιοθήκη. Επίσης, δηλώνει μεθόδους, οι οποίες επιτρέπουν την ύπαρξη ενός πολυνηματικού (multithreaded) περιβάλλοντος όπου πολλά στιγμιότυπα του Matlab μπορούν να «τρέχουν» ταυτόχρονα και ανεξάρτητα μεταξύ τους. Αυτό είναι απαραίτητο, για να μπορούν να εξυπηρετούνται ταυτόχρονα πολλοί χρήστες από την εφαρμογή διακομιστή. Τέλος, για την κλήση των μεθόδων της Java wrapper κλάσης είναι απαραίτητο και ένα header file, το οποίο δημιουργείται αυτόματα. Όσον αφορά το πολυνηματικό περιβάλλον μέσα στην εφαρμογή του Virtual Lab, αυτό λειτουργεί ως εξής: 1. το JMatLink.dll φορτώνεται από το σύστημα και είναι διαθέσιμο στην εφαρμογή διακομιστή με την έναρξη της λειτουργίας της 2. για κάθε νέα συνεδρία (session) χρήστη που δημιουργείται στο module «Πολυμέσα και Εικονική Πραγματικότητα» ανοίγει ένα νέο στιγμιότυπο του Matlab. Το στιγμιότυπο αυτό προσδιορίζεται από έναν μοναδικό ακέραιο αριθμό ταυτότητας (engine ID). 3. εφόσον ο χρήστης συνεχίζει να βρίσκεται συνδεδεμένος στο σύστημα και η συνεδρία του είναι ενεργή, όλες του οι αιτήσεις για εκτέλεση εντολών από το Matlab εξυπηρετούνται από το προσωπικό του στιγμιότυπο, το οποίο αποτελεί ένα ανεξάρτητο thread και δεν επηρεάζεται από τα υπόλοιπα Ο τρόπος εντοπισμού του κατάλληλου στιγμιοτύπου για κάθε χρήστη και εκτέλεσης των εντολών περιγράφεται από την λειτουργία 4.3.1.1. και επιδεικνύεται αναλυτικά στο αντίστοιχο UML διάγραμμα (Σχήμα 4.10).

45 4.2.2. Αποθήκη αλγορίθμων (Algorithm repository, AR) Η προτεινόμενη δομή του AR είναι δενδρική με έναν κεντρικό κατάλογο, που περιέχει υποκαταλόγους για κάθε μία από τις κατηγορίες (βλ. απαίτηση 14). Στον κεντρικό κατάλογο υπάρχει ένα XML[18],[19] αρχείο, το οποίο περιέχει τα μεταδεδομένα για όλους τους αλγορίθμους. Η δομή του XML αρχείου φαίνεται στα Σχήματα 4.2 και 4.3: Σχήμα 4-2: Δομή του XML αρχείου για την αποθήκη αλγορίθμων (1/2) Συγκεκριμένα, στο Σχήμα 4.2 φαίνονται τα στοιχεία (elements) του XML σχήματος που χρησιμοποιούνται για την κατηγοριοποίηση των αλγορίθμων και την κατανοητή παρουσίασή τους στον χρήστη. Αναλυτικά: Το στοιχείο algorithms είναι η ρίζα του σχήματος Στο στοιχείο lastid αποθηκεύεται το τελευταίο ID που δόθηκε σε αλγόριθμο Στο στοιχείο lastcatid αποθηκεύεται το τελευταίο ID που δόθηκε σε κατηγορία Το στοιχείο category αντιπροσωπεύει μια κατηγορία αλγορίθμων Στο στοιχείο name αποθηκεύεται το ID της κατηγορίας, το οποίο είναι ένας ακέραιος αριθμός που την προσδιορίζει μοναδικά Στο στοιχείο showname αποθηκεύεται το όνομα της κατηγορίας To στοιχείο algorithm αντιπροσωπεύει έναν αλγόριθμο, ο οποίος ανήκει στην κατηγορία που το περικλείει. Τα στοιχεία lastid και lastcatid χρησιμοποιούνται από το σύστημα για την απόδοση μοναδικών ID στους αλγορίθμους και στις κατηγορίες αντίστοιχα όταν αυτοί δημιουργούνται. Χρησιμοποιείται ο εξής απλός μηχανισμός: το ID του νεοεισαχθέντος αλγορίθμου υπολογίζεται προσθέτοντας τη μονάδα στην τιμή του

46 lastid. Αντίστοιχα υπολογίζεται και το ID μιας νεοεισαχθείσας κατηγορίας, χρησιμοποιώντας την τιμή του lastcatid. Στο Σχήμα 4.3 φαίνεται το στοιχείο algorithm του XML αρχείου, το οποίο αποθηκεύει τα μετα-δεδομένα του αλγορίθμου (βλ. απαίτηση 10). Σχήμα 4-3: Δομή του XML αρχείου για την αποθήκη αλγορίθμων (2/2) Αναλυτικά: Στο στοιχείο uniqueid αποθηκεύεται το ID του αλγορίθμου, το οποίο είναι ένας ακέραιος αριθμός που τον προσδιορίζει μοναδικά Στο στοιχείο name αποθηκεύεται το όνομα του αλγορίθμου Στο στοιχείο description αποθηκεύεται η περιγραφή της λειτουργίας του αλγορίθμου Στο στοιχείο directorypath αποθηκεύεται η διαδρομή ως το σημείο αποθήκευσης του αρχείου υλοποίησης του αλγορίθμου Το στοιχείο inputvariables αντιπροσωπεύει τις μεταβλητές εισόδου του αλγορίθμου. Το στοιχείο outputvariables αντιπροσωπεύει τις μεταβλητές εξόδου του αλγορίθμου. Το στοιχείο dependencies αντιπροσωπεύει τις εξαρτήσεις του αλγορίθμου, οι οποίες είναι άλλοι αλγόριθμοι του AR. Για κάθε μία από τις εξαρτήσεις

47 αποθηκεύεται το όνομα του αλγορίθμου, το ID του και η διαδρομή ως το αρχείο υλοποίησής του. Για έναν πιο αναλυτικό ορισμό του XML σχήματος του AR ο αναγνώστης παραπέμπεται στο Παράρτημα Γ (AlgorithmRepository.xsd). 4.2.3. Αποθήκη ασκήσεων (Exercise repository, ER) Το ER από φυσικής άποψης αντιστοιχεί σε έναν κατάλογο του συστήματος, ο οποίος περιέχει έναν υποκατάλογο για κάθε άσκηση (βλ. απαίτηση 25). Στον κεντρικό κατάλογο υπάρχει ένα XML αρχείο, το οποίο περιέχει τα δεδομένα για όλες τις ασκήσεις (βλ. απαίτηση 24). Η δομή του XML αρχείου φαίνεται στο Σχήμα 4.4: Σχήμα 4-4: Δομή του XML αρχείου για την αποθήκη ασκήσεων Αναλυτικά τα στοιχεία (elements) του σχήματος XML για το ER έχουν ως εξής: Το στοιχείο Exercises είναι η ρίζα του σχήματος Στο στοιχείο lastid αποθηκεύεται το τελευταίο ID που δόθηκε σε άσκηση To στοιχείο Exercise αντιπροσωπεύει μία άσκηση Στο στοιχείο Id αποθηκεύεται το ID της άσκησης, το οποίο είναι ένας ακέραιος αριθμός που την προσδιορίζει μοναδικά

48 Στο στοιχείο Name αποθηκεύεται το όνομα της άσκησης Στο στοιχείο Description αποθηκεύονται η περιγραφή του σκοπού της άσκησης και η διαδρομή ως το αρχείο εκφώνησής της (είναι απαραίτητο να οριστεί ένα από τα δύο) Tο στοιχείο Algorithm αντιπροσωπεύει έναν αλγόριθμο που χρησιμοποιείται για την επίλυση της άσκησης. Σε μια άσκηση (στοιχείο Exercise) δεν υπάρχει περιορισμός στον αριθμό των αλγορίθμων που μπορεί να χρησιμοποιούνται. Αρκεί για κάθε έναν από τους χρησιμοποιούμενους αλγορίθμους να ορίζεται ένα στοιχείο τύπου Algorithm, το οποίο περιέχει το όνομα, το ID και τη διαδρομή ως το αρχείο υλοποίησής του. Το στοιχείο Data αντιπροσωπεύει ένα αρχείο δεδομένων που χρησιμοποιείται για την επίλυση της άσκησης. Όπως και για τους αλγορίθμους δεν υπάρχει περιορισμός στον αριθμό των αρχείων δεδομένων που μπορεί να χρησιμοποιούνται, αρκεί για κάθε ένα από αυτά να ορίζεται ένα στοιχείο τύπου Data, το οποίο περιέχει το όνομα του αρχείου και τη διαδρομή ως το σημείο αποθήκευσής του. Για έναν πιο αναλυτικό ορισμό του XML σχήματος του ER ο αναγνώστης παραπέμπεται στο Παράρτημα Γ (ExerciseRepository.xsd). 4.2.4. Αντικειμενοστρεφείς ΒΔ 4.2.4.1. Σχεδίαση ΒΔ αντίστοιχης της Northwind Για να επιδειχθούν οι δυνατότητες των αντικειμενοστρεφών ΒΔ υλοποιήθηκε μία ΒΔ αντίστοιχη της Northwind η οποία περιέχει όμως λιγότερους πίνακες. Η αντιστοιχία της αντικειμενοστρεφούς βάσης που δημιουργήθηκε με μία σχεσιακή φαίνεται στο Σχήμα 4.5

49 Σχήμα 4-5: Αντιστοίχιση της αντικειμενοστρεφούς ΒΔ που δημιουργήθηκε σε σχεσιακή ΒΔ Με βάση τις πληροφορίες που προσφέρει το παραπάνω σχήμα, υλοποιήθηκε ένα μοντέλο από αντικείμενα που αντιστοιχούν περίπου σε ένα πίνακα το καθένα. Λειτουργίες όπως η προσθήκη νέου προϊόντος και η προσθήκη νέου πελάτη υλοποιήθηκαν σε κάποιες βοηθητικές κλάσεις. Για να χρησιμοποιηθεί το μοντέλο αυτό σύμφωνα με την προδιαγραφή JDO χρειάζονται και κάποια μετα-δεδομένα που το προσδιορίζουν. Τα δεδομένα αυτά περιλαμβάνονται σε ένα αρχείο τύπου XML και περιγράφουν τους τύπους αντικειμένων που θέλουμε να αποθηκευτούν, τα διάφορα πεδία (fields) τους, αλλά και τις σχέσεις που υπάρχουν ανάμεσα στα αντικείμενα. Όλη αυτή η πληροφορία χρησιμοποιείται για την «ενίσχυση» των κλάσεων από τα JPOX. Η ενίσχυση αυτή δεν γίνεται πάνω στον πηγαίο κώδικα, αλλά σε ήδη μεταγλωττισμένα (compiled) αρχεία και περιλαμβάνει την προσθήκη των απαραίτητων μεθόδων που χρησιμοποιούνται από τα JDO για την αποθήκευση και ανάσυρση από την «αποθήκη δεδομένων». Η «ενίσχυση» γίνεται μέσω της χρήσης του enhancer που προσφέρεται από τα JPOX. Ο enhancer παίρνει ως δεδομένα τις κλάσεις που θέλουμε να ενισχύσουμε και το XML αρχείο με τα μετα-δεδομένα και αυτόματα προσθέτει ότι χρειάζεται για να έχουμε έτοιμα αντικείμενα που μπορούν να χρησιμοποιηθούν με τα JDO. Η χρήση των JPOX επιβάλλει και ένα ακόμη βήμα: αυτό της δημιουργίας μίας σχεσιακής βάσης, στην οποία τελικά θα αποθηκεύονται τα αντικείμενα. Και για αυτόν το σκοπό προσφέρεται ένα εργαλείο από τα JPOX. Πρόκειται για το

50 schematool το οποίο αναλαμβάνει να δημιουργήσει μία σχεσιακή βάση κατάλληλη να αποθηκεύσει τα δεδομένα από τα αντικείμενα της εφαρμογής. Για την εκτέλεση του schematool χρειάζεται πάλι το XML αρχείο με τα μετα-δεδομένα, όπως και οι ενισχυμένες κλάσεις. Μετά την εκτέλεσή του έχουμε πλέον ένα σχήμα βάσης, το οποίο είναι έτοιμο να δεχθεί δεδομένα. Πέρα από τα βασικά βήματα που περιγράφηκαν παραπάνω και είναι απαραίτητα για κάθε εφαρμογή που χρησιμοποιεί τα JDO, υλοποιήθηκε και ένα πρόγραμμα που παίρνει όλα τα απαραίτητα δεδομένα από την Northwind, δημιουργεί τα αντίστοιχα αντικείμενα και τα αποθηκεύει μέσω του JPOX στην ΒΔ που δημιουργήθηκε από το schematool. Για όλες αυτές τις διαδικασίες έχει δημιουργηθεί ένα ant αρχείο, το οποίο τις αυτοματοποιεί και δεν χρειάζεται ειδικές γνώσεις από το χρήστη. Με αυτόν τον τρόπο η υλοποίηση μας μπορεί να μοιραστεί στους φοιτητές και να αποτελέσει το υπόβαθρο μέσω του οποίου θα έρθουν σε επαφή με τα JDO. 4.2.4.2. Ενσωμάτωση στο Virtual Lab Για να ενσωματωθεί η δυνατότητα χρησιμοποίησης των JPOX στο Virtual Lab δημιουργήθηκε ένα plugin για την εφαρμογή διακομιστή, το οποίο αυτοματοποιεί πολλές λειτουργίες, όπως η σύνδεση στην «αποθήκη δεδομένων» για κάθε χρήστη, ο έλεγχος των συναλλαγών (transactions) κα. Το plugin δημιουργεί στην έναρξη λειτουργίας της εφαρμογής ένα αντικείμενο το οποίο λειτουργεί ως δίοδος για όλες τις συνδέσεις με την συγκεκριμένη «αποθήκη δεδομένων». Το αντικείμενο αυτό αποθηκεύεται στο context απ όπου είναι διαθέσιμο για όλους τους χρήστες 7. Έτσι, κάθε χρήστης που υποβάλλει κάποιο ερώτημα, χρησιμοποιεί το αντικείμενο αυτό για να συνδεθεί στη βάση. Μία εποπτική παρουσίαση του τρόπου που διακινούνται τα δεδομένα στο module των αντικειμενοστρεφών ΒΔ φαίνεται στο Σχήμα 4.6. 7 Η δημιουργία του αντικειμένου αυτού είναι πολύ δαπανηρή σε πόρους και έτσι δεν μπορεί να δημιουργείται ένα για κάθε χρήστη.

51 Σχήμα 4-6: Χρήση των JPOX στο Virtual Lab

52 4.3. Λειτουργίες του συστήματος Στο υποκεφάλαιο αυτό παρουσιάζονται οι βασικότερες λειτουργίες του Virtual Lab, με τη μορφή μιας κάρτας ανά λειτουργία. Η παρουσίαση οργανώνει τις λειτουργίες ανάλογα με το υποσύστημα στο οποίο εντάσσονται και αντιστοιχεί στην τυπική προδιαγραφή τους. 4.3.1. Λειτουργίες για το υποσύστημα «Πολυμέσα και Εικονική Πραγματικότητα» 4.3.1.1. Κατάθεση εντολής προς εκτέλεση στη γραμμή εντολών του Matlab Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Παρενέργειες Κατάθεση εντολής προς εκτέλεση στη γραμμή εντολών του Matlab Ο χρήστης πληκτρολογεί μία εντολή στην γραμμή εντολών του Matlab και την καταθέτει προς εκτέλεση. Το σύστημα ελέγχει αν αυτή ανήκει στο σετ των έγκυρων εντολών και αν όχι ενημερώνει σχετικά τον χρήστη. Αν η εντολή είναι έγκυρη αποστέλλεται στο στιγμιότυπο του Matlab που περιέχει τον χώρο εργασίας (workspace) του χρήστη όπου και εκτελείται. Ανάλογα με τον τρόπο σύνταξης και τον τύπο της εντολής μπορεί να υπάρχουν αποτελέσματα, τα οποία επιστρέφονται στον χρήστη. Η προς εκτέλεση εντολή (μια συμβολοσειρά) Ο χρήστης Το αποτέλεσμα της εντολής (αν υπάρχει) Το στιγμιότυπο του Matlab που περιέχει τον χώρο εργασίας του χρήστη Ύπαρξη ενός στιγμιoτύπου του Matlab για τον συγκεκριμένο χρήστη ή δυνατότητα να δημιουργηθεί ένα καινούριο (προϋποθέτει ότι «τρέχουν» ήδη λιγότερα από 10 στιγμιότυπα )

53 4.3.1.2. Προσθήκη αλγορίθμου στο AR Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Προσθήκη αλγορίθμου στο AR Ο χρήστης «Καθηγητής» ανεβάζει (upload) ένα αρχείο τύπου m-file στον διακομιστή, από το οποίο εξάγονται αυτόματα κάποια χαρακτηριστικά του αλγορίθμου. Ο χρήστης επιβεβαιώνει την ορθότητα των εξαγχθέντων χαρακτηριστικών και στη συνέχεια ορίζει τις εξαρτήσεις και την κατηγορία του αλγορίθμου. Τελικά ο αλγόριθμος κατατίθεται στο AR. Ταυτόχρονα με την κατάθεση του αλγορίθμου δημιουργείται για αυτόν και ένα αρχείο βοήθειας. Το αρχείο υλοποίησης του αλγορίθμου. Τα απαραίτητα μετα-δεδομένα για την κατάθεσή του. Ο χρήστης «Καθηγητής». Το αρχείο υλοποίησης για τα χαρακτηριστικά που εξάγονται αυτόματα. Ένας νέος κατάλογος που περιέχει το αρχείο. υλοποίησης. Μια νέα εγγραφή στο XML αρχείο του AR. Ένα αρχείο βοήθειας για τον αλγόριθμο. Αποθήκευση ενός νέου αλγορίθμου στο AR και ενημέρωση του XML αρχείου. Δημιουργία ενός αρχείου βοήθειας για τον αλγόριθμο και αποθήκευσή του στην κατάλληλη θέση. Παρενέργειες Αν το αρχείο που ανεβάζει ο χρήστης δεν είναι τύπου m- file, ο χρήστης ενημερώνεται και του ζητείται να υποβάλλει ένα αρχείο του σωστού τύπου.

54 4.3.1.3. Διόρθωση αλγορίθμου του AR Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Παρενέργειες Διόρθωση αλγορίθμου του AR Ο χρήστης «Καθηγητής» επιλέγει έναν από τους αλγορίθμους του AR και ακολουθεί τα ίδια βήματα όπως και στην περίπτωση της προσθήκης αλγορίθμου. Εμφανίζονται και μπορούν να μεταβληθούν όλα τα μεταδεδομένα του αλγορίθμου, αλλά όχι το αρχείο υλοποίησης (m-file). Με την κατάθεση των διορθώσεων, το αρχείο βοήθειας του αλγορίθμου ενημερώνεται κατάλληλα. Οι νέες τιμές των μετα-δεδομένων του αλγορίθμου. Ο χρήστης «Καθηγητής» για τις νέες τιμές των μεταδεδομένων του αλγορίθμου. Το XML αρχείο για τις ήδη αποθηκευμένες τιμές. Μια ενημερωμένη εγγραφή στο XML αρχείο του AR. Ενημέρωση του XML αρχείου. Μεταφορά του αρχείου υλοποίησης του αλγορίθμου αν αλλάξει η κατηγορία στην οποία υπάγεται. Ενημέρωση του αρχείου βοήθειας. 4.3.1.4. Προσθήκη άσκησης στο ER Λειτουργία Προσθήκη άσκησης στο ER Περιγραφή Ο χρήστης «Καθηγητής» ορίζει το όνομα και την περιγραφή της άσκησης και στη συνέχεια ανεβάζει (upload) ένα αρχείο που περιέχει την εκφώνησή της (αν υπάρχει). Ακολούθως ορίζει αλγορίθμους και δεδομένα για την άσκηση. Τελικά η άσκηση κατατίθεται στο ER. Είσοδοι Τα χαρακτηριστικά της άσκησης. Το αρχείο με την εκφώνησή της (αν υπάρχει). Πηγές Ο χρήστης «Καθηγητής». Έξοδοι Μία νέα εγγραφή στο XML αρχείο του ER. Προορισμοί Προαπαιτούμενα Αποτέλεσμα Αποθήκευση μιας νέας άσκησης στο ER. Ενημέρωση του XML αρχείου. Παρενέργειες

55 4.3.1.5. Κατάθεση άσκησης από τον χρήστη «Φοιτητής» Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Παρενέργειες Κατάθεση άσκησης από τον χρήστη «Φοιτητής» Ο φοιτητής επιλέγει από τα αρχεία του προσωπικού του καταλόγου ποια θα κατατεθούν για την συγκεκριμένη άσκηση. Έτσι δημιουργείται μια λίστα αρχείων προς κατάθεση, η οποία μπορεί να αλλάξει ανά πάσα στιγμή. Όταν η λίστα περιέχει ακριβώς τα επιθυμητά αρχεία, ο φοιτητής τα καταθέτει. Η λίστα των αρχείων που πρόκειται να κατατεθούν για την συγκεκριμένη άσκηση. Ο χρήστης «Φοιτητής» Να έχει επιλεγεί μία συγκεκριμένη άσκηση και ο φοιτητής να βρίσκεται στο περιβάλλον επίλυσής της. Να υπάρχουν αρχεία στον προσωπικό κατάλογο του φοιτητή. Τα επιλεγμένα αρχεία αντιγράφονται από τον προσωπικό κατάλογο του φοιτητή στον κατάλογο με τα κατατεθειμένα αρχεία της άσκησης. 4.3.1.6. Έλεγχος κατατεθειμένων αρχείων από τον χρήστη «Καθηγητής» Λειτουργία Έλεγχος κατατεθειμένων αρχείων από τον χρήστη «Καθηγητής» Περιγραφή Ο καθηγητής επιλέγει ποια από τις διαθέσιμες ασκήσεις θέλει να ελέγξει. Για την άσκηση αυτή εμφανίζονται τα αρχεία που έχουν κατατεθεί ταξινομημένα ανά φοιτητή. Ο καθηγητής μπορεί να ανοίξει, να κατεβάσει (download) ή να διαγράψει οποιοδήποτε από τα αρχεία. Μπορεί επίσης να διαγράψει όλα τα αρχεία κάποιου φοιτητή ή να ζητήσει τη δημιουργία ενός ZIP αρχείου με όλα τα κατατεθειμένα για την συγκεκριμένη άσκηση αρχεία. Είσοδοι Τα αρχεία που έχουν κατατεθεί από τους φοιτητές για την συγκεκριμένη άσκηση Πηγές Ο χρήστης «Καθηγητής» Έξοδοι Το/τα επιλεγμένο/α αρχείo/α Το αρχείο zip Προορισμοί Προαπαιτούμενα Πρέπει να έχουν κατατεθεί αρχεία από έναν τουλάχιστον φοιτητή για την συγκεκριμένη άσκηση. Αποτέλεσμα Παρενέργειες

56 4.3.2. Λειτουργίες για το υποσύστημα «Βάσεις Δεδομένων» 4.3.2.1. Αυτόματη δημιουργία ΒΔ για κάθε χρήστη Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Παρενέργειες Αυτόματη δημιουργία ΒΔ για κάθε χρήστη Την πρώτη φορά (και μόνο τότε) που ο χρήστης επισκέπτεται το module «Βάσεις Δεδομένων» δημιουργούνται αυτόματα δύο βάσεις: μία άδεια ΒΔ και ένα αντίγραφο της ΒΔ Genesmith. Στη συνέχεια, δημιουργείται ένα καινούριο login στον SQL Server, το οποίο ταυτίζεται με το login που χρησιμοποιεί ο χρήστης για την πρόσβαση στο Virtual Lab. Τέλος σε κάθε μία από τις δημιουργηθείσες ΒΔ προστίθεται ένας χρήστης με το login αυτό και του δίνονται πλήρη δικαιώματα (SELECT, INSERT, UPDATE, DELETE). Τα στοιχεία πρόσβασης (login) του χρήστη στο Virtual Lab. Η εφαρμογή του Virtual Lab. Ο χρήστης πρέπει να έχει δηλώσει το μάθημα «Βάσεις Δεδομένων». Δεν πρέπει να έχουν δημιουργηθεί ήδη ΒΔ για τον συγκεκριμένο χρήστη. Δημιουργία δύο ΒΔ και ενός login για κάθε χρήστη. Δημιουργία ενός χρήστη με το συγκεκριμένο login και πλήρη δικαιώματα στην κάθε μία από τις δημιουργηθείσες ΒΔ.

57 4.3.2.2. Υποβολή SQL ερωτημάτων σε σχεσιακές ΒΔ Λειτουργία Υποβολή SQL ερωτημάτων σε σχεσιακές ΒΔ Περιγραφή Ο χρήστης μπορεί να υποβάλλει ερωτήματα: είτε μέσω του SQL Web Data Administration σε οποιαδήποτε ΒΔ έχει πρόσβαση είτε μέσω του ειδικού interface στην ΒΔ Genesmith Στην πρώτη περίπτωση χρησιμοποιεί κλασικά SQL ερωτήματα. Αντίθετα στην δεύτερη περίπτωση τα SQL ερωτήματα συντίθενται αυτόματα με βάση τις επιλογές του στο γραφικό περιβάλλον (graphical user interface). Σημειώνεται ότι ο χρήστης δεν μπορεί να υποβάλλει SQL ερωτήματα εισαγωγής, ενημέρωσης ή διαγραφής σε άλλες ΒΔ εκτός από τις δικές του. Είσοδοι Τo SQL ερώτημα που πρόκειται να κατατεθεί στην ΒΔ. Πηγές Ο χρήστης. Το γραφικό περιβάλλον για την ΒΔ Genesmith. Έξοδοι Αποτελέσματα του SQL ερωτήματος (αν υπάρχουν π.χ. SELECT ερώτημα). Προορισμοί Το περιβάλλον του SQL Web Data Administration. Το γραφικό περιβάλλον υποβολής ερωτημάτων στην ΒΔ Genesmith. Προαπαιτούμενα Έχουν δημιουργηθεί οι ΒΔ του χρήστη (λειτουργία 4.3.2.1) Αποτέλεσμα Εκτέλεση του SQL ερωτήματος και επιστροφή των αποτελεσμάτων (αν υπάρχουν). Παρενέργειες Τα αποτελέσματα των εντολών εισαγωγής, ενημέρωσης και διαγραφής είναι οριστικά.

58 4.3.2.3. Υποβολή ερωτημάτων σε αντικειμενοστρεφείς ΒΔ Λειτουργία Υποβολή ερωτημάτων σε αντικειμενοστρεφείς ΒΔ Περιγραφή Ο χρήστης μπορεί να υποβάλει ερωτήματα μέσω του ειδικού περιβάλλοντος εκπαίδευσης-χρήσης αντικειμενο-- στρεφών ΒΔ. Τα ερωτήματα αυτά είναι προκατασκευασμένα αλλά έχουν σχεδιαστεί έτσι ώστε να μπορούν να παραμετροποιηθούν από το χρήστη. Τα ερωτήματα προωθούνται στην μηχανή εκτέλεσης JPOX, απ όπου γίνεται η σύνδεση με την αντίστοιχη σχεσιακή βάση και η εκτέλεση του ερωτήματος. Αν υπάρχουν αποτελέσματα, (περίπτωση SELECT ερωτήματος) τότε εμφανίζονται στο χρήστη. Σε άλλη περίπτωση απλά εμφανίζεται ένα μήνυμα επιτυχίας. Κάθε βήμα της διαδικασίας εξηγείται αναλυτικά στο χρήστη. Είσοδοι Οι παράμετροι που επιλέγει ο χρήστης Πηγές Ο χρήστης Έξοδοι Τα αποτελέσματα του ερωτήματος Προορισμοί Προαπαιτούμενα Έχει επιτευχθεί η σύνδεση του Virtual Lab με τα JPOX Αποτέλεσμα Εκτέλεση του SQL ερωτήματος και επιστροφή των αποτελεσμάτων (αν υπάρχουν). Παρενέργειες

59 4.3.2.4. Πλοήγηση στην ενότητα «Βάσεις Δεδομένων στο WEB» Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Παρενέργειες Πλοήγηση στην ενότητα «Βάσεις Δεδομένων στο WEB» Ο χρήστης επιλέγει μία από τις διαθέσιμες server-side τεχνολογίες (JSP ή ASP). Για την τεχνολογία αυτή παρακολουθεί ένα διαδραστικό σεμινάριο που περιγράφει τα βασικά χαρακτηριστικά της, αλλά του δίνει και τη δυνατότητα να υποβάλλει SQL ερωτήματα μέσω δυναμικών ιστοσελίδων δημιουργημένων με αυτήν την τεχνολογία. Τα ερωτήματα αυτά είναι προκατασκευασμένα, αλλά ο χρήστης μπορεί να αλλάξει κάποιες παραμέτρους τους. Κάθε βήμα της διαδικασίας εξηγείται αναλυτικά στο χρήστη. Οι παράμετροι των SQL ερωτημάτων Ο χρήστης Τα αποτελέσματα των ερωτημάτων (αν υπάρχουν) Παρουσίαση του αποτελέσματος σύμφωνα με τις επιλογές του χρήστη. Εκτέλεση του SQL ερωτήματος και επιστροφή των αποτελεσμάτων (αν υπάρχουν).

60 4.3.3. Βοηθητικές Λειτουργίες 4.3.3.1. Εξαγωγή χαρακτηριστικών αλγορίθμου από το αρχείο υλοποίησής του (m-file parsing) Λειτουργία Περιγραφή Εξαγωγή χαρακτηριστικών αλγορίθμου από το αρχείο υλοποίησής του (m-file parsing) Το αρχείο υλοποίησης του αλγορίθμου εξετάζεται γραμμήγραμμή. Θεωρούμε ότι ο ορισμός της συνάρτησης γίνεται με μία δήλωση της μορφής function [outvar 1, outvar 2,, outvar N ] = functionname( invar 1, invar 2,, invar M ) Η εξαγωγή του ονόματος του αλγορίθμου και των μεταβλητών εισόδου/εξόδου γίνεται από την δήλωση αυτή μόλις εντοπιστεί η αντίστοιχη γραμμή. Επίσης, θεωρούμε ότι τα σχόλια είναι οργανωμένα σε συνεχόμενες γραμμές που όλες αρχίζουν με το σύμβολο %. Οι γραμμές αυτές μπορεί να βρίσκονται πριν ή μετά από τον ορισμό της συνάρτησης. Μόλις συναντήσουμε την πρώτη γραμμή κώδικα (που δεν είναι η δήλωση της συνάρτησης) σταματάμε την εξέταση του αρχείου. Το αρχείο υλοποίησης του αλγορίθμου Είσοδοι Πηγές Έξοδοι Τα χαρακτηριστικά του αλγορίθμου Προορισμοί Προαπαιτούμενα Ο χρήστης έχει ανεβάσει στον διακομιστή το αρχείο υλοποίησης, το οποίο είναι τύπου m-file. Το αρχείο είναι γραμμένο σύμφωνα με συγκεκριμένες Αποτέλεσμα Παρενέργειες συμβάσεις (βλ. απαίτηση 11). Τα εξαγχθέντα χαρακτηριστικά εμφανίζονται στον χρήστη προς επιβεβαίωση.

61 4.3.3.2. Δημιουργία αρχείου βοήθειας για αλγόριθμο του AR Λειτουργία Δημιουργία αρχείου βοήθειας για αλγόριθμο του AR Περιγραφή Με βάση τα στοιχεία που έχουν εξαχθεί αυτόματα ή έχουν οριστεί από τον χρήστη για ένα συγκεκριμένο αλγόριθμο, δημιουργείται ένα HMTL αρχείο. Το αρχείο αυτό περιέχει όλες τις παραπάνω πληροφορίες σε μορφή φιλική προς το χρήστη. Είσοδοι Τα χαρακτηριστικά του αλγορίθμου που έχουν εξαχθεί αυτόματα ή έχουν οριστεί από τον χρήστη. Πηγές Το αρχείο υλοποίησης του αλγορίθμου ή ο χρήστης. Έξοδοι Ένα HTML αρχείο που περιέχει όλα τα διαθέσιμα χαρακτηριστικά του αλγορίθμου. Προορισμοί Ο κατάλογος του συστήματος που περιέχει τα αρχεία βοήθειας. Προαπαιτούμενα Να έχουν εισαχθεί τα στοιχεία του αλγορίθμου και να βρίσκεται στο στάδιο της κατάθεσης. Αποτέλεσμα Δημιουργία HTML αρχείου βοήθειας για έναν νεοεισαχθέντα αλγόριθμο ή για έναν αλγόριθμο που έχει διορθωθεί. Παρενέργειες

62 4.3.3.3. Αυθεντικοποίηση χρηστών Λειτουργία Περιγραφή Είσοδοι Πηγές Έξοδοι Προορισμοί Προαπαιτούμενα Αποτέλεσμα Παρενέργειες Αυθεντικοποίηση χρηστών Ο χρήστης εισάγει το όνομα και το συνθηματικό του. Το σύστημα συνδέεται στη βάση χρηστών του ethmmy και ελέγχει αν υπάρχει αντιστοιχία των παραπάνω δεδομένων με έναν έγκυρο χρήστη. Ανάλογα με τα μαθήματα που έχει δηλωμένα στο ethmmy, του εμφανίζονται και οι ανάλογες επιλογές. Στην περίπτωση που ο χρήστης είναι ένας από τους διδάσκοντες των μαθημάτων, του αποδίδονται και διαχειριστικά δικαιώματα. Το όνομα του χρήστη Το συνθηματικό του χρήστη Ο χρήστης Πρέπει ο χρήστης να έχει εγγραφεί στο ethmmy και να έχει δηλώσει κάποιο από τα δύο μαθήματα («Πολυμέσα και Εικονική Πραγματικότητα» και «Βάσεις Δεδομένων») ή να είναι καθηγητής ενός εκ των δύο μαθημάτων Είσοδος του χρήστη στο Virtual Lab Αν υπάρχει πρόβλημα στην σύνδεση με τη βάση του ethmmy τότε δεν μπορεί να γίνει η είσοδος του χρήστη στο σύστημα.

63 4.4. UML διαγράμματα Στο υποκεφάλαιο αυτό παρατίθενται τα UML διαγράμματα, στα οποία βασίστηκε η ανάπτυξη της εφαρμογής. 4.4.1. Διαγράμματα Χρήσης (Use case diagrams) Η ενότητα 4.4.1. είναι αφιερωμένη σε διαγράμματα χρήσης (use case diagrams), τα οποία περιγράφουν τη συμπεριφορά του συστήματος από την οπτική γωνία των διαφόρων χρηστών. Σχήμα 4-7: Διάγραμμα χρήσης για τον χρήστη «Καθηγητής Πολυμέσων»

64 Σχήμα 4-8: Διάγραμμα χρήσης για τον χρήστη «Φοιτητής» στο μάθημα «Πολυμέσα και Εικονική Πραγματικότητα» Σχήμα 4-9: Διάγραμμα χρήσης για τον χρήστη «Φοιτητής» στο μάθημα «Βάσεις Δεδομένων»

65 4.4.2. Διαγράμματα Δραστηριότητας (Use case state diagrams) Στην ενότητα αυτή παρατίθενται τα διαγράμματα δραστηριότητας (use case state diagrams) που αντιστοιχούν σε κάθε μία από τις λειτουργίες του συστήματος. Τα διαγράμματα είναι ενδεικτικά των καταστάσεων που μπορούν να προκύψουν και των αιτιών που προκαλούν τις μεταβάσεις από κατάσταση σε κατάσταση. Σχήμα 4-10: Διάγραμμα καταστάσεων της λειτουργίας «Κατάθεση εντολής προς εκτέλεση στη γραμμή εντολών του Matlab»

66 Σχήμα 4-11: Διάγραμμα καταστάσεων της λειτουργίας «Προσθήκη αλγορίθμου στο AR»

67 Σχήμα 4-12: Διάγραμμα καταστάσεων της λειτουργίας «Προσθήκη άσκησης στο ER»

68 Σχήμα 4-13: Διάγραμμα καταστάσεων της λειτουργίας «Κατάθεση άσκησης από τον χρήστη Φοιτητής»

69 Σχήμα 4-14: Διάγραμμα καταστάσεων της λειτουργίας «Έλεγχος κατατεθειμένων αρχείων από τον χρήστη Καθηγητής»

70 Σχήμα 4-15: Διάγραμμα καταστάσεων της λειτουργίας «Αυτόματη δημιουργία ΒΔ για κάθε χρήστη»

71 Σχήμα 4-16: Διάγραμμα καταστάσεων της λειτουργίας «Υποβολή ερωτημάτων σε αντικειμενοστρεφείς ΒΔ»

72 Σχήμα 4-17: Διάγραμμα καταστάσεων της λειτουργίας «Αυθεντικοποίηση χρηστών»

73 Σχήμα 4-18: Διάγραμμα καταστάσεων της λειτουργίας «Εξαγωγή χαρακτηριστικών αλγορίθμου από το αρχείο υλοποίησής του»

74 Κεφάλαιο 5 Το Virtual Lab: Επίδειξη και επικύρωση καλής λειτουργίας 5.1. Σενάρια χρήσης της εφαμογής Στο κεφάλαιο αυτό παρατίθενται δύο βασικά σενάρια χρήσης του Virtual Lab, μέσα από τα οποία επιδεικνύονται οι βασικές λειτουργίες του συστήματος. Για καθένα από τα σενάρια αναλύονται τα βήματα που ακολουθεί ο χρήστης και δίνονται τα αντίστοιχα στιγμιότυπα από το πραγματικό περιβάλλον της εφαρμογής. 5.1.1. Σενάριο χρήσης για την ενότητα «Πολυμέσα και Εικονική Πραγματικότητα» Σύντομη Περιγραφή: Ο καθηγητής του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» πρόκειται να αναθέσει στους φοιτητές του την άσκηση «Out In The Jungle», για την επίλυση της οποίας πρέπει να χρησιμοποιηθεί ο αλγόριθμος «findyourjane». Ο αλγόριθμος αυτός δεν έχει ακόμη αποθηκευτεί στο AR κι επομένως ο χρήστης «Καθηγητής Πολυμέσων» πρέπει να τον εισάγει στο σύστημα πριν ορίσει την άσκηση. Αφού η άσκηση οριστεί από τον καθηγητή, οι φοιτητές μπορούν να την επιλέξουν από τις διαθέσιμες ασκήσεις και να εργαστούν για την επίλυσή της χρησιμοποιώντας τη γραμμή εντολών του Matlab. Επίσης, μπορούν να

75 καταθέσουν τα αρχεία με τον κώδικα που έχουν συντάξει. Τα αρχεία αυτά, μετά την κατάθεσή τους, είναι στην διάθεση του καθηγητή, ο οποίος μπορεί να τα εξετάσει, να τα διαγράψει ή να τα ομαδοποιήσει σε ένα ZIP archive. Σύμφωνα με τα παραπάνω, το σενάριο 1 μπορεί να αναλυθεί σε τέσσερις διακριτές διαδικασίες: 1. Εισαγωγή του αλγορίθμου findyourjane στο AR 2. Προσθήκη της άσκησης Out In The Jungle στο ER 3. Επίλυση της άσκησης και κατάθεση των αρχείων με τον αντίστοιχο κώδικα 4. Έλεγχος των αρχείων που έχουν κατατεθεί για την άσκηση Οι διαδικασίες 1,2 και 4 αφορούν τον χρήστη «Καθηγητής Πολυμέσων» ενώ η διαδικασία 3 τον χρήστη «Φοιτητής». Διαδικασία 1: Εισαγωγή του αλγορίθμου findyourjane στο AR Πρώτ ο βήμα της διαδικασίας είναι η σύνδεση του καθηγητή στο σύστημα. Για τον σκοπό αυτό χρειάζεται να εισάγει το όνομα χρήστη και το συνθηματικό του στην φόρμα αυθεντικοποίησης της αρχικής σελίδας του Virtual Lab. Εφόσον τα στοιχεία που παρέχει είναι σωστά, ο καθηγητής προωθείται στην κεντρική σελίδα επιλογής μαθήματος (Σχήμα 5-1), στην οποία η μόνη επιλογή είναι φυσικά το μάθημά του. Σχήμα 5-1: Κεντρική σελίδα επιλογής μαθήματος

76 Επιλέγοντας τον σύνδεσμο «Πολυμέσα και Εικονική Πραγματικότητα» μεταβαίνει στην κεντρική σελίδα του μαθήματος, η οποία φαίνεται στο Σχήμα 5-2. 8 Σχήμα 5-2: Κεντρική σελίδα του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» (όψη του χρήστη «Καθηγητής») Στην σελίδα αυτή επιλέγει τον σύνδεσμο «Εισαγωγή Αλγορίθμου». Πρώτο βήμα για την εισαγωγή ενός αλγορίθμου είναι η αποθήκευση του αρχείου υλοποίησής του στο σύστημα (Σχήμα 5-3). Πατώντας το πλήκτρο «Browse» ο χρήστης έχει τη δυνατότητα να εντοπίσει το επιθυμητό αρχείο στον τοπικό του δίσκο και στη συνέχεια να το «ανεβάσει» στο σύστημα πατώντας το πλήκτρο «Upload» (Σχήμα 5-4). 8 Πρέπει να σημειωθεί ότι οι περισσότερες από τις επιλογές που εμφανίζονται αριστερά είναι διαθέσιμες μόνο στον καθηγητή. Αυτό θα γίνει φανερό και αργότερα, όταν ο χρήστης «Φοιτητής» επισκεφθεί την αντίστοιχη σελίδα (σχήμα 5-13).

77 Σχήμα 5-3: Πρώτο βήμα της διαδικασίας «Εισαγωγή Αλγορίθμου» Σχήμα 5-4: Εντοπισμός του αρχείου υλοποίησης του αλγορίθμου στον τοπικό δίσκο του χρήστη Επόμενο βήμα της διαδικασίας είναι ο ορισμός του ονόματος, των μεταβλητών εισόδου/εξόδου και της περιγραφής του αλγορίθμου. Τα χαρακτηριστικά αυτά εξάγονται αυτόματα από το αρχείο υλοποίησης και εμφανίζονται στον χρήστη προς επιβεβαίωση.

78 Στο συγκεκριμένο παράδειγμα, το αρχείο υλοποίησης ονομάζεται «findyourjane.m» και έχει ως εξής: % "nicegirl" and "qutegirl" are two numbers % indicating how fit each girl is. % "Jane" is the maximum of the two numbers, % thus helping you to decide which girl should be your Jane! function Jane = findyourjane ( nicegirl, qutegirl ) Jane = max(nicegirl,qutegirl); Τα χαρακτηριστικά που εξάγονται αυτόματα από αυτό φαίνονται στο Σχήμα 5-5. Σχήμα 5-5: Εξαγχθέντα χαρακτηριστικά από το αρχείο findyourjane.m Ο καθηγητής μπορεί να αλλάξει οποιοδήποτε από αυτά τα στοιχεία, αλλά δεν μπορεί να προχωρήσει στο επόμενο βήμα χωρίς να συμπληρώσει τα πεδία «Όνομα αλγορίθμου» και «Περιγραφή Λειτουργίας». Το επόμενο βήμα στ η διαδικασία εισαγωγής του αλγορίθμου είναι ο ορισμός των εξαρτήσεών του και της κατηγορίας στην οποία υπάγεται. Στο Σχήμα 5-6 επιλέγεται η κατηγορία not specified.

79 Σχήμα 5-6: Επιλογή κατηγορίας για τον αλγόριθμο findyourjane Στο Σχήμα 5-7 ορίζονται οι αλγόριθμοι sound και test ως εξαρτήσεις. Σχήμα 5-7: Επιλογή εξαρτήσεων για τον αλγόριθμο findyourjane

80 Μετά την επιλογή της κατηγορίας και των εξαρτήσεων, ο χρήστης προχωρά στο τελικό βήμα της διαδικασίας: την επιβεβαίωση των στοιχείων που πρόκειται να κατατεθούν στο AR. Για το σκοπό αυτό, το σύστημα του παρέχει μία περίληψη των δεδομένων που έχουν εισαχθεί σε όλα τα βήματα της διαδικασίας (Σχήμα 5-8). Αν ο χρήστης επιθυμεί να αλλάξει οποιοδήποτε από τα στοιχεία του αλγορίθμου, μπορεί να ακολουθήσει την αντίστροφη πορεία και να επιστρέψει σε οποιοδήποτε από τα προηγούμενα βήματα, επιλέγοντας τον σύνδεσμο «Προηγούμενο». Στην αντίθετη περίπτωση, δηλαδή αν όλα τα δεδομένα του αλγορίθμου είναι σωστά, ο χρήστης προχωρά στην κατάθεση του αλγορίθμου (Σχήμα 5-8). Σχήμα 5-8: Επιβεβαίωση των στοιχείων που έχουν εισαχθεί για τον αλγόριθμο σε όλα τα βήματα της διαδικασίας Πέρα από τις δυνατότητες που αναφέρθηκαν ως τώρα υπάρχει και η εξής: σε οποιοδήποτε από τα βήματά της, η διαδικασία «Εισαγωγή Αλγορίθμου» μπορεί να ακυρωθεί επιλέγοντας τον σύνδεσμο «Ακύρωση».

81 Διαδικασία 2: Προσθήκη της άσκησης Out In The Jungle στο ER Έχοντας καταθέσει πλέον τον αλγόριθμο στο AR, ο χρήστης είναι έτοιμος να καταθέσει και την άσκηση. Επιλέγει από το μενού «Διαχείριση Ασκήσεων» τον σύνδεσμο «Κατάθεση Άσκησης» και μεταβαίνει στη σελίδα ορισμού του ονόματος και της περιγραφής της άσκησης (Σχήμα 5-9). Στην ίδια σελίδα ανεβάζει και την εκφώνηση της άσκησης. Στη συγκεκριμένη περίπτωση παρέχονται τόσο η σύντομη περιγραφή, όσο και το αρχείο εκ φώνησης. Γενικά, αρκεί να οριστεί μόνο ένα από τα δύο. Σχήμα 5-9: Ορισμός του ονόματος και της περιγραφής της άσκησης Επόμενο βήμα στη διαδικασία είναι ο ορισμός των απαραίτητων αλγορίθμων για την επίλυση τ ης άσκησης και των αρχείων δεδομένων που αυτή επεξεργάζεται. Ορίζονται οι αλγόριθμοι test, findyourjane και sound και το αρχείο δεδομένων chimes.wav (Σχήμα 5-10).

82 Σχήμα 5-10: Ορισμός αλγορίθμων και αρχείων δεδομένων για την άσκηση Out In The Jungle Όπως και στην περίπτωση εισαγωγής αλγορίθμου, τελευταίο βήμα στην διαδικασία κατάθεσης μιας άσκησης είναι η επιβεβαίωση των στοιχείων που πρόκειται να κατατεθούν στο ER. Τα στοιχεία αυτά παρουσιάζονται στο χρήστη με τη μορφή μιας μικρής περίληψης (Σχήμα 5-11). Σχήμα 5-11: Επιβεβαίωση των στοιχείων που έχουν εισαχθεί για την άσκηση σε όλα τα βήματα της διαδικασίας

83 Εφόσον όλα τα δεδομένα της άσκησης είναι σωστά, ο χρήστης προχωρά στην κατάθεσή της, οπότε ένας νέος σύνδεσμος για την άσκηση Out In The Jungle προστίθεται στο μενού των διαθέσιμων ασκήσεων (Σχήμα 5-12). Σχήμα 5-12: Προσθήκη της άσκησης Out In The Jungle στο μενού των διαθέσιμων ασκήσεων Διαδικασία 3: Επίλυση της άσκησης και κατάθεση των αρχείων με τον αντίστοιχο κώδικα Για τη σύνδεσή του στο Virtual Lab ο φοιτητής ακολουθεί τη διαδικασία αυθεντικοποίησης, εισάγοντας το όνομα χρήστη και τον κωδικό του. Εφόσον τα στοιχεία αυτά είναι σωστά προωθείται στη σελίδα επιλογής μαθήματος, όπου επιλέγει τον σύνδεσμο «Πολυμέσα και Εικονική Πραγματικότητα» και μεταβαίνει στην κεντρική σελίδα του μαθήματος (Σχήμα 5-13). Όπως έχει ήδη αναφερθεί η σελίδα αυτή προσαρμόζεται δυναμικά ανάλογα με τα δικαιώματα του χρήστη, έτσι ώστε ο καθηγητής του μαθήματος να έχει πρόσβαση και σε διαχειριστικές επιλογές. Στην κεντρική σελίδα του μαθήματος ο χρήστης επιλέγει από το μενού «Διαθέσιμες Ασκήσεις» τον σύνδεσμο που αντιστοιχεί στην άσκηση Out In The Jungle κι έτσι μεταβαίνει στο περιβάλλον επίλυσής της (Σχήμα 5-14).

84 Σχήμα 5-13: Κεντρική σελίδα του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» (όψη του χρήστη «Φοιτητής») Σχήμα 5-14: Περιβάλλον επίλυσης της άσκησης Out In The Jungle

85 Στο περιβάλλον επίλυσης άσκησης εκτός από την γραμμή εντολών του Matlab, είναι διαθέσιμο και το ευρετήριο βοήθειας των αλγορίθμων. Πρόκειται για το μενού «Βοήθεια» στα δεξιά, το οποίο εκτός από τον σύνδεσμο «Κεντρική σελίδα βοήθειας» περιλαμβάνει και απευθείας συνδέσμους στα αρχεία βοήθειας των αλγορίθμων που χρησιμοποιεί η άσκηση. Επιλέγοντας τον σύνδεσμο «findyourjane» ο χρήστης μεταβαίνει στη σελίδα βοήθειας για τον αντίστοιχο αλγόριθμο (Σχήμα 5-15). Η σελίδα αυτή δημιουργήθηκε αυτόματα κατά την εισαγωγή του αλγορίθμου στο AR και περιλαμβάνει όλα τα μεταδεδομένα σχετικά με αυτόν. Η δενδρική δομή στα αριστερά της σελίδας επιτρέπει στον χρήστη να πλοηγηθεί στις σελίδες βοήθειας των υπόλοιπων αλγορίθμων. Σχήμα 5-15: Σελίδα βοήθειας για τον αλγόριθμο findyourjane Στο περιβάλλον επίλυσης της άσκησης, τώρα, υπάρχει και ένα ακόμη μενού: το μενού «User Directory», στο οποίο παρατίθενται τα αρχεία που βρίσκονται αποθηκευμένα στον προσωπικό κατάλογο του χρήστη. Επίσης, προσφέρεται η δυνατότητα στον χρήστη να προσθέσει ανά πάσα στιγμή και νέα αρχεία στον προσωπικό του κατάλογο (πλήκτρα «Browse» και «Upload»). Τελευταία επιλογή στο μενού «User Directory» είναι η «Κατάθεση Άσκησης», η οποία οδηγεί τον χρήστη στην σελίδα του Σχήματος 5-16.

86 Σχήμα 5-16: Κατάθεση αρχείων για την άσκηση Out In The Jungle Στα δεξιά της σελίδα αυτής εμφανίζεται η λίστα των αρχείων προς κατάθεση, η οποία περιέχει και όποια αρχεία έχουν ήδη κατατεθεί για την άσκηση σε προηγούμενες χρονικές στιγμές. Ο χρήστης μπορεί να τροποποιήσει τη λίστα διαγράφοντας κάποιο από τα ήδη κατατεθειμένα αρχεία ή προσθέτοντας νέα. Η επιλογή των νέων αρχείων γίνεται μέσω της δενδρικής δομή στα αριστερά, η οποία αντιπροσωπεύει τον προσωπικό κατάλογο του χρήστη. Όταν η λίστα περιέχει ακριβώς τα αρχεία που επιθυμεί ο χρήστης, αυτά μπορούν να κατατεθούν επιλέγοντας τον σύνδεσμο «Κατάθεση». Διαδικασία 4: Έλεγχος των αρχείων που έχουν κατατεθεί για την άσκηση Ο καθηγητής αφού περάσει τη διαδικασία αυθεντικοποίησης και συνδεθεί στο σύστημα, επιλέγει τον σύνδεσμο «Αρχεία Φοιτητών» στην κεντρική σελίδα του μαθήματος «Πολυμέσα και Εικονική Πραγματικότητα» (βλ. Σχήμα 5-2). Μεταβαίνει έτσι στην σελίδα επιλογής άσκησης (Σχήμα 5-17), από όπου επιλέγοντας την άσκηση Out In The Jungle προωθείται στην σελίδα του Σχήματος 5-18.

87 Σ χήμα 5-17: Επιλογή της άσκησης Out In The Jungle προς διόρθωση Σχήμα 5-18: Κατατεθειμένα αρχεία για την άσκηση Out In The Jungle Στην σελίδα αυτή παρατίθενται τα αρχεία που έχουν κατατεθεί για την άσκηση, ομαδοποιημένα ανά φοιτητή. Για κάθε ένα από τα αρχεία υπάρχει ο αντίστοιχος

88 σύνδεσμος μέσω του οποίου ο καθηγητής μπορεί να ανοίξει ή να κατεβάσει (download) το αρχείο. Στο κάτω μέρος της σελίδας υπάρχει ο σύνδεσμος δημιουργία ZIP αρχείου, ο οποίος επιτρέπει στον καθηγητή την ομαδοποίηση όλων των κατατεθειμένων αρχείων σε ένα ενιαίο archive (Σχήμα 5-19). Σχήμα 5-19: Δημιουργία ZIP archive με όλα τα κατατεθειμένα αρχεία για την άσκηση Out In The Jungle Το ZIP αρχείο που δημιουργείται έχει το όνομα της άσκησης και περιέχει τα κατατεθειμένα αρχεία οργανωμένα σε καταλόγους ανά φοιτητή. Όπως και όλα τα υπόλοιπα αρχεία, ο καθηγητής μπορεί να το ανοίξει ή να το κατεβάσει στον τοπικό του δίσκο. 5.1.2. Σενάριο χρήσης για την ενότητα «Βάσεις Δεδομένων» Σύντομη Περιγραφή: Ο φοιτητής πλοηγείται στο module «Βάσεις Δεδομένων» και επισκέπτεται διαδοχικά τις σελίδες των ενοτήτων: 1. Υποβολή SQL ερωτημάτων 2. Βάσεις Δεδομένων στο WEB

89 3. Αποθήκευση ΒΔ στο φυσικό επίπεδο Ενότητα 1: Υποβολή SQL ερωτημάτων Για τη σύνδεσή του στο Virtual Lab ο φοιτητής ακολουθεί τη διαδικασία αυθεντικοποίησης, εισάγοντας το όνομα χρήστη και τον κωδικό του. Εφόσον τα στοιχεία αυτά είναι σωστά, προωθείται στη σελίδα επιλογής μαθήματος, όπου επιλέγει τον σύνδεσμο «Βάσεις Δεδομένων» και μεταβαίνει στην κεντρική σελίδα του μαθήματος (Σχήμα 5-20). Σχήμα 5-20: Κεντρική σελίδα του μαθήματος «Βάσεις Δεδομένων» Επιλέγοντας τον σύνδεσμο «Υποβολή SQL ερωτημάτων» καλείται να επιλέξει αν θέλει να υποβάλλει ανάμεσα στο ειδικό γραφικό περιβάλλον για την ΒΔ Genesmith και στην εφαρμογή SQL Web Data Administration (Σχήμα 5-21).

90 Σχήμα 5-21: Επιλογή μεθόδου υποβολής SQL ερωτημάτων Η πρώτη επιλογή τον οδηγεί στο ειδικό γραφικό περιβάλλον μέσω του οποίου μπορεί να υποβάλλει ερωτήματα στο προσωπικό του αντίγραφο της ΒΔ Genesmith (Σχήμα 5-22). Το περιβάλλον αυτό του παρέχει πληροφορίες σχετικά με τους πίνακες που περιέχονται στη ΒΔ αυτή, αλλά και τον βοηθά να συντάξει σωστά τα SQL ερωτήματά του. Σχήμα 5-22: Γραφικό περιβάλλον υποβολής SQL ερωτημάτων στην ΒΔ Genesmith

91 Η εφαρμογή SQL Web Data Administration παρέχει στον χρήστη τη δυνατότητα όχι μόνο να υποβάλλει SQL ερωτήματα σε οποιαδήποτε από τις ΒΔ έχει τα αντίστοιχα δικαιώματα πρόσβασης, αλλά και να διαχειριστεί τις βάσεις αυτές όπως ακριβώς θα έκανε και μέσω της εφαρμογής Enterprise Manager του SQLServer (Σχήμα 5-23). Σχήμα 5-23: Περιβάλλον της εφαρμογής SQL Web Data Administration Ενότητα 2: Βάσεις Δεδομένων στο WEB O φοιτητής επιλέγει τον σύνδεσμο «Βάσεις Δεδομένων στο WEB» από το μενού διαθέσιμων ασκήσεων και μεταβαίνει στη σελίδα του Σχήματος 5-24.

92 Σχήμα 5-24: Περιεχόμενα της ενότητας «Βάσεις Δεδομένων στο WEB» Από τις διαθέσιμες server-side τεχνολογίες, επιλέγει τις Java Server Pages (JSP), οπότε προωθείται στην αντίστοιχη σελίδα περιεχομένων (Σχήμα 5-25). Σχήμα 5-25: Περιεχόμενα της ενότητας Java Server Pages

93 Παρακάμπτοντας τις αρχικές θεωρητικές σελίδες, μεταβαίνει απευθείας στο πρώτο παράδειγμα, το οποίο υποδεικνύει πώς μπορεί κανείς να εισάγει την τρέχουσα ημερομηνία και ώρα σε μια JSP σελίδα (Σχήμα 5-26). Πρόκειται για ένα απλό εισαγωγικό παράδειγμα, στη σελίδα του οποίου φαίνονται ταυτόχρονα ο κώδικας που δημιουργεί τη σελίδα (αριστερά) και το αποτέλεσμα αυτού (δεξιά). Σχήμα 5-26: Δυναμική εισαγωγή ημερομηνίας και ώρας σε JSP σελίδα Το επόμενο παράδειγμα αφορά την υποβολή ενός SELECT ερωτήματος στον πίνακα Customers της ΒΔ Northwind και έχει λίγο πιο πολύπλοκη δομή. Περιλαμβάνει τον απαραίτητο κώδικα ώστε να υποβληθεί το ερώτημα στη ΒΔ και τα αποτελέσματά του να εμφανιστούν στην JSP σελίδα (Σχήμα 5-27). Ο κώδικας είναι έτσι γραμμένος, ώστε ο χρήστης να μπορεί να επιλέξει: α. ποια πεδία του πίνακα θα επιλεγούν, β. σύμφωνα με ποιο πεδίο θα ταξινομηθούν τα αποτελέσματα και γ. τη φορά (αύξουσα ή φθίνουσα) ταξινόμησης

94 Ο χρήστης, λοιπόν, επιλέγει τα πεδία CompanyName, ContactName και Country και ορίζει ότι τα αποτελέσματα θα ταξινομηθούν κατά φθίνουσα σειρά σύμφωνα με το πεδίο CompanyName. Για να υποβληθεί το ερώτημα 9 και να εμφανιστεί η JSP σελίδα με τα αποτελέσματά του (Σχήμα 5-28), ο χρήστης πατά το πλήκτρο «Υποβολή Ερωτήματος». Σχήμα 5-27: Υποβολή SELECT ερωτήματος σε ΒΔ μέσω JSP σελίδας 9 Αξίζει αν σημειωθεί ότι το SQL ερώτημα που ορίζει ο χρήστης υποβάλλεται πραγματικά στην ΒΔ Northwind στον server και τα αποτελέσματά που εμφανίζονται είναι πραγματικές εγγραφές του πίνακα Customers.

95 Σχήμα 5-28: Αποτελέσματα του SELECT ερωτήματος Ενότητα 3: Αποθήκευση ΒΔ στο φυσικό επίπεδο O φοιτητής επιλέγει τον σύνδεσμο «Αποθήκευση ΒΔ στο φυσικό επίπεδο» από το μενού διαθέσιμων ασκήσεων και μεταβαίνει στη σελίδα περιεχομένων της ενότητας (Σχήμα 5-29). Σχήμα 5-29: Περιεχόμενα της ενότητας «Αποθήκευση ΒΔ στο φυσικό επίπεδο»

96 Επιλέγει τη σελίδα που αναφέρεται στην δεικτοδότηση με χρήση Β+ δένδρα και μεταβαίνει στην αντίστοιχη σελίδα, όπου παρακολουθεί ένα flash βίντεο που αναφέρεται στην εισαγωγή κόμβων σε Β+ δένδρο (Σχήμα 5-30). Σχήμα 5-30: Εισαγωγή κόμβων σε Β+ δένδρο (στιγμιότυπο από το σχετικό flash video) 5.2. Επικύρωση της καλής λειτουργίας της εφαρμογής Για την επικύρωση της καλής λειτουργίας της εφαρμογής, το module «Βάσεις Δεδομένων» χρησιμοποιήθηκε από τους φοιτητές στα πλαίσια του εργαστηρίου του μαθήματος. Κατά τη διάρκεια της δοκιμής, οι φοιτητές χρησιμοποίησαν το περιβάλλον υποβολής SQL ερωτημάτων με επιτυχία, χωρίς να εμφανιστούν προβλήματα διαθεσιμότητας του συστήματος. Παράλληλα, πραγματοποιήθηκαν ανεπίσημοι έλεγχοι για το module «Πολυμέσα και Εικονική Πραγματικότητα», οι οποίοι επιβεβαίωσαν ότι εκπληρώνονται οι αντίστοιχες απαιτήσεις. Επίσης, το σύστημα ανταποκρίνεται ικανοποιητικά στην περίπτωση που τα ενεργά στιγμιότυπα του Matlab είναι έως 10 τον αριθμό (βλ. και απαίτηση 6, ενότητα 2.3.1.).