Μελέτη Συστημάτων Διαχείρισης Περιεχομένου Ιστού και Ανάπτυξη Δυναμικών Ιστοτόπων για τη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελέτη Συστημάτων Διαχείρισης Περιεχομένου Ιστού και Ανάπτυξη Δυναμικών Ιστοτόπων για τη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΙΤΛΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ Μελέτη Συστημάτων Διαχείρισης Περιεχομένου Ιστού και Ανάπτυξη Δυναμικών Ιστοτόπων για τη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών και Υπολογισμών με χρήση του Drupal 7. ΟΝΟΜΑ ΦΟΙΤΗΤΗ Αλέξανδρος Μ. Σούσος ΑΕΜ: 6187 ΟΝΟΜΑ ΕΠΙΒΛΕΠΟΝΤΑ ΚΑΘΗΓΗΤΗ Νικόλαος B. Κανταρτζής ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΝΙΟΣ 2016

2

3 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΙΤΛΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ Μελέτη Συστημάτων Διαχείρισης Περιεχομένου Ιστού και Ανάπτυξη Δυναμικών Ιστοτόπων για τη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών και Υπολογισμών με χρήση του Drupal 7. ΟΝΟΜΑ ΦΟΙΤΗΤΗ Αλέξανδρος Σούσος ΑΕΜ: 6187 ΟΝΟΜΑ ΕΠΙΒΛΕΠΟΝΤΑ ΚΑΘΗΓΗΤΗ Νικόλαος B. Κανταρτζής ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΝΙΟΣ 2016

4

5 Ευχαριστίες Ιδιαίτερες ευχαριστίες απευθύνονται στον Καθηγητή Θεόδωρο Δ. Τσιμπούκη για την ανάθεση του θέματος της διπλωματικής και την ουσιαστική του στήριξη καθ όλη τη διάρκεια της εκπόνησής της. Ειλικρινείς ευχαριστίες απευθύνονται, επίσης, στον αναπληρωτή Καθηγητή Νικόλαο Β. Κανταρτζή για την πολύτιμη αρωγή του στην ανάπτυξη της διπλωματικής εργασίας και την ενεργό επίβλεψη αυτής σε όλα τα στάδια ολοκλήρωσής της. Πρόσθετα, η εργασία δεν θα είχε πραγματοποιηθεί χωρίς τη συνδρομή των συναδέλφων μου στη Μονάδα Σημασιολογικού Ιστού Κωνσταντίνο Καραογλάνογλου, Μυρτώ Αμοργιανού, Φώτη Λούκο, Αγάπη Αγγέλου και Παναγιώτη Τζουνάκη. Τέλος, ευχαριστώ τους φίλους και την οικογένειά μου για την υποστήριξή τους και σε αυτήν την προσπάθειά μου. i

6 ii

7 Περιεχόμενα Περίληψη... vii Πρόλογος... ix Προδιαγραφές ανάπτυξης Ιστοτόπου A.C.E.L και A.C.M.I.M.S... 1 Βασικές Έννοιες... 5 HTML... 5 CSS... 8 JavaScript Ajax jquery SQL PHP Συστήματα Διαχείρισης Περιεχομένου Ιστού Πλεονεκτήματα Μειονεκτήματα Η αγορά WCMS Δημοφιλείς πλατφόρμες Ιστοτόπων και δημοφιλή WCMS Η επιλογή του Drupal Τεχνολογική Υποδομή Πυρήνας Διεπαφή Διαχείρισης Πρόσθετα Hooks Θεματικές Παραλλαγές Κόμβοι Πεδία Μπλοκ Εξυπηρέτηση αίτησης iii

8 Ο ρόλος του διακομιστή Διαδικασία εκκίνησης Επεξεργασία της αίτησης To σύστημα αρχείων του Drupal Υλοποίηση των προδιαγραφών με το Drupal Sitemap Επιλογή θεματικής παραλλαγής Παραμετροποίηση των ρυθμίσεων της θεματικής παραλλαγής Πολυγλωσσικότητα Εικόνες αρχικής σελίδας Μορφοποίηση της εμφάνισης του επιλογέα γλώσσας Διευθύνσεις URL Μπλοκ Τύποι Ύλης Βασικοί τύποι ύλης Νέοι τύποι ύλης Πρόσθετα της Drupal κοινότητας και εξατομικευμένα πρόσθετα Διαχείριση και Ασφάλεια Ασφάλεια και κίνδυνοι στον Ιστό Ασφάλεια στο Drupal Πρόσθετα σχετικά με την ασφάλεια Drush Μελλοντικό Έργο Προσβασιμότητα Ιστού Εμπειρία Χρήστη Παράγοντες που επηρεάζουν την Εμπειρία Χρήστη Τομείς που σχετίζονται με την οικοδόμηση της εμπειρίας χρήστη Προσβασιμότητα Ιστού iv

9 Υποστηρικτικές τεχνολογίες για την περιήγηση στο διαδίκτυο Πρωτοβουλία για την Προσβασιμότητα του Παγκόσμιου Ιστού Οδηγίες Προσβασιμότητας Περιεχομένου στον Παγκόσμιο Ιστό Drupal και προσβασιμότητα Έλεγχοι προσβασιμότητας Ιστού Σημασιολογικός Ιστός Web Σύνολο Δεδομένων Συνδεδεμένα Δεδομένα Ανοικτά Δεδομένα Πλαίσιο Περιγραφής Πόρων Οντολογία Γλώσσα Οντολογίας Ιστού Απλό Πρωτόκολλο και Γλώσσα Ερωτημάτων RDF Σημασιολογικός Ιστός και Drupal ΠΑΡΑΡΤΗΜΑ Α. Δομή σελίδας HTML ΠΑΡΑΡΤΗΜΑ Β. Σύνταξη CSS ΠΑΡΑΡΤΗΜΑ Γ. Βασικές δυνατότητες της JavaScript ΠΑΡΑΡΤΗΜΑ Δ. Γλωσσικά χαρακτηριστικά της SQL ΠΑΡΑΡΤΗΜΑ Ε. Βασική σύνταξη PHP ΠΑΡΑΡΤΗΜΑ ΣΤ. Δομή Βάσης Δεδομένων Drupal ΠΑΡΑΡΤΗΜΑ Ζ. Πρόσθετα στον ιστότοπο ACMIMS Βιβλιογραφία v

10 vi

11 Περίληψη Ο κομβικός ρόλος των ηλεκτρομαγνητικών πεδίων στο συνολικό αντικείμενο του Ηλεκτρολόγου Μηχανικού και στην αντίστοιχη εκπαιδευτική διαδικασία καθώς και ο κεντρικός ρόλος των εφαρμογών ηλεκτρονικής μάθησης στη σύγχρονη εκπαιδευτική διαδικασία αποτέλεσαν την κεντρική ιδέα στην εκπόνηση της παρούσας διπλωματικής εργασίας. Η εργασία πραγματοποιήθηκε στη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών και Υπολογισμών (ACEL), τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνική Σχολή, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης κατά το ακαδημαϊκό έτος Έχει ως αντικείμενο τη μελέτη των Συστημάτων Διαχείρισης Περιεχομένου Ιστού (WCMS) με σκοπό την ανάπτυξη ενός ιστοτόπου για την ανάδειξη και την εξυπηρέτηση του εκπαιδευτικού και ερευνητικού έργου της Μονάδας και την ανεξάρτητη, παράλληλη ανάπτυξη ενός ιστοτόπου για την ανάδειξη και την υποστήριξη του ερευνητικού προγράμματος «Εξελιγμένη Υπολογιστική Μοντελοποίηση και Εφαρμογές για Καινοτόμα Υλικά και Διατάξεις» (ACMIMS). Η υλοποίηση των ιστοτόπων πραγματοποιήθηκε με τη χρήση του WCMS Drupal 7. Αναλύονται και παρουσιάζονται η σχετική μελέτη των WCMS ως την τελική επιλογή του Drupal, τα χαρακτηριστικά του Drupal και η χρήση του με εφαρμογή στην υλοποίηση των υπό μελέτη ιστοτόπων. Επίσης, μελετώνται τα προβλήματα που ανέκυψαν κατά τη διαδικασία της υλοποίησης και οι μέθοδοι επίλυσης τους (παραμετροποίηση του Drupal, ρυθμίσεις εμφάνισης και ανάπτυξη εξατομικευμένου πρόσθετου) καθώς και η διαδικασία συντήρησης και ασφάλειας. Τέλος, μελετώνται οι δυνατότητες βελτιστοποίησης, επέκτασης και περαιτέρω αξιοποίησης των συγκεκριμένων ιστοτόπων σε όρους προσβασιμότητας Ιστού και Σημασιολογικού Ιστού. Συνολικά, η χρήση WCMS στην ανάπτυξη ιστοτόπων σήμερα θεωρείται γενικά επιβεβλημένη. Το Drupal αποτελεί ένα εύρωστο και βιώσιμο στο χρόνο εργαλείο με πολλαπλές δυνατότητες και λύσεις, ευκολία χρήσης και διαχείρισης, με υψηλό επίπεδο ασφάλειας. Οι υλοποιημένοι ιστότοποι ευελπιστούν να αποτελέσουν χρήσιμο εργαλείο τόσο για τους διδάσκοντες όσο και για τους φοιτητές και να αποκτήσουν κεντρικό ρόλο και σταθερή δυναμική στην εκπαιδευτική διαδικασία. vii

12 viii

13 Πρόλογος Η θεωρία των ηλεκτρικών κυκλωμάτων και η θεωρία του ηλεκτρομαγνητισμού αποτελούν τις δύο θεωρίες-πυλώνες στις οποίες βασίζεται το σύνολο της ηλεκτρολογίας [1]. Αυτή η βαρύνουσα σημασία των ηλεκτρομαγνητικών πεδίων για τον ηλεκτρολόγο μηχανικό αποτέλεσε την αφετηρία και της παρούσας διπλωματικής εργασίας. Η ανάγκη για τη σωστή κατανόηση των εννοιών του μαθήματος τόσο στο συγκεκριμένο επιστημονικό πεδίο όσο και σε συνδυασμό με άλλα μαθήματα της σχολής στη συνολική κατάρτιση του ηλεκτρολόγου μηχανικού, επιφορτίζει αντίστοιχα την εκπαιδευτική διαδικασία ώστε αυτή να καταστεί η καλύτερη δυνατή. Στην κατεύθυνση αυτή, καθοριστικό ρόλο διαδραματίζουν οι σύγχρονες εκπαιδευτικές μέθοδοι που βάζουν στο επίκεντρο της μάθησης τεχνολογίες της πληροφορίας και των επικοινωνιών [2] [3]. Οι τεχνολογίες αυτές αυξάνουν τα κίνητρα για μάθηση, χρησιμοποιούν συνδυασμό εικόνας και κειμένου οπτικοποιώντας την πληροφορία, οικοδομούν την κριτική σκέψη, συμβάλλουν στην ενεργητική μάθηση (με την βοήθεια της ανατροφοδότησης), βοηθούν στην αυθεντικότητα/σκοπιμότητα της πληροφορίας και εν δυνάμει προωθούν την ενίσχυση της συνεργασίας [4]. Καθώς η πληροφόρηση μέσω διαδικτύου διεισδύει καθημερινά στην ζωή μας όλο και περισσότερο, η ανάγκη για πρόσβαση στην πληροφορία μέσω αυτού γίνεται ολοένα πιο άμεση και διαρκής. Αυτό έχει σαν συνέπεια την παράλληλη αύξηση της ανάγκης για κατασκευή, συντήρηση και ανανέωση των ολοένα αυξανόμενων ιστοτόπων. Κομβικό ρόλο σε αυτόν τον επιστημονικό τομέα αποτελούν οι Web developers, το αντικείμενο των οποίων είναι η ανάπτυξη διαδικτυακών ιστοτόπων. Στο χώρο της εκπαίδευσης, η ανάγκη για πρόσβαση στην πληροφορία μεταφράζεται σήμερα στην ανάγκη ανάπτυξης και υλοποίησης ενός σύγχρονου ιστοτόπου, ο οποίος έχει τη δυνατότητα να επιδέχεται άμεσα και συνεχόμενα ανανεώσεις τόσο εκπαιδευτικού υλικού, όσο και δομής/οργάνωσης ανάλογα με τις ανάγκες του αντικειμένου, αποτελώντας έτσι το σημείο αναφοράς στην εκπαιδευτική διαδικασία. Ως εκπαιδευτικό υλικό μπορούν να θεωρηθούν βιβλία σε ηλεκτρονική μορφή, σημειώσεις ενός μαθήματος, τυπολόγια, ασκήσεις λυμένες ή προς λύση ή/και προτεινόμενα θέματα εξετάσεων, εργασίες, σύνδεσμοι καθώς και πρόσθετο υλικό όπως για παράδειγμα κάποια εικονικά μοντέλα προσομοίωσης (software), ή αυτοματοποιημένα τεστ αυτοαξιολόγησης. Ωστόσο, το σημαντικότερο, υλικό σύμφωνα με τις σύγχρονες μεθόδους εκπαίδευσης, που αποτελεί και το ουσιαστικότερο κομμάτι της επονομαζόμενης ηλεκτρονικής μάθησης (e- Learning), είναι αυτό που αποτελείται από multimedia εφαρμογές: εικόνες, βίντεο, εικονικά ix

14 μαθήματα, διαδραστικές εφαρμογές, βίντεο όπου ο υπολογιστής αλληλεπιδρά με τις επιλογές του χρήστη, ακόμα και παιχνίδια που στοχεύουν στην κατανόηση κάποιου μέρους της ύλης. Σε τεχνολογικά προηγμένα περιβάλλοντα, τέτοιο υλικό είχε αναπτυχθεί και εφαρμοστεί ήδη από τα τέλη του προηγούμενο αιώνα, με χαρακτηριστικό παράδειγμα τις παραδόσεις ηλεκτρομαγνητισμού στο Massachusetts Institute of Technology το μακρινό 2002 [5]. Όλα τα παραπάνω βέβαια θα πρέπει να διατίθενται στον ενδιαφερόμενο με τρόπο έντεχνο ο οποίος να προάγει την εκπαιδευτική διαδικασία και όχι απλά να στοιβάζονται σε φακέλους, προκαλώντας στη θέα τους τη σύγχυση και τον πανικό του επισκέπτη. Web development είναι ο κλάδος που ασχολείται με την ανάπτυξη διαδικτυακών ιστοτόπων και εφαρμογών. Στην ραγδαία ανάπτυξη των εφαρμογών διαδικτύου και της διείσδυσης του διαδικτύου στην καθημερινότητα του ανθρώπου, ο Web developer επιτελεί έναν ιδιαίτερα σημαντικό ρόλο, ο οποίος, επιπλέον, εμπλουτίζεται συνεχώς με νέα στοιχεία και δεν περιορίζεται απλά στη συγγραφή κώδικα ή στην κατασκευή ενός ιστοτόπου [6]. Συνολικά, το κλασσικό αντικείμενο ενός Web Developer συνοψίζεται στη γνώση και χρήση γλωσσών που χρησιμοποιούνται είτε στην πλευρά του διακομιστή (Server-Side Scripting όπως PHP, Python, Perl, Ruby και πολλές άλλες) είτε στην πλευρά του πελάτη (Client-Side Scripting όπως HTML, CSS, JavaScript), στην ικανότητα να χειρίζεται βάσεις δεδομένων (π.χ. SQL) καθώς και στη χρήση εργαλείων που απλοποιούν, αυτοματοποιούν ή οπτικοποιούν το έργο του. Ιδιαίτερη αναφορά θα πρέπει να γίνει και στην συντήρηση του ιστοτόπου, ένα κρίσιμο κομμάτι της διαδικασίας ανάπτυξης ιστοτόπων, που συχνά λανθασμένα παραβλέπεται, και που επισημαίνει ότι ο ρόλος του Web Developer δεν σταματάει με τη δημιουργία του ιστοτόπου αλλά τον ακολουθεί σε όλη τη διάρκεια της λειτουργίας του. Επιγραμματικά, λοιπόν, ένας πλήρης ορισμός του αντικειμένου του Web Developer θα ήταν «ανάπτυξη και συντήρηση ιστοτόπων». Πρόσθετα, ανάλογα με τον ιστότοπο, η ανάπτυξή του μπορεί να σχετίζεται και με πεδία συναφών επιστημονικών αντικειμένων, όπως ο σχεδιασμός και η αισθητική ανάπτυξη του ιστοτόπου, η οργάνωση της παρεχόμενης πληροφορίας ή ο προσδιορισμός των αναγκών ενός ιστοτόπου. Συνεπώς, ο ρόλος του Web Developer επεκτείνεται και σε ερωτήματα σχετικά με την εμφάνιση ενός ιστοτόπου, την εισαγωγή και τη διαμόρφωση περιεχομένου, την εκπαίδευση προσωπικού για την εισαγωγή περιεχομένου, τη μετατροπή κειμένων και γραφικών (ήχος, εικόνα, βίντεο) σε κατάλληλες μορφές, τον εντοπισμό και διόρθωση σφαλμάτων, τη μελέτη σύγχρονων πρακτικών για βελτιστοποίηση εμφάνισης στις μηχανές αναζήτησης (Search Engine Optimization [SEO] Analysis), τις οδηγίες για τη μέγιστη x

15 προσβασιμότητα στον ιστότοπο ατόμων με αναπηρίες και την ικανότητα να ψάχνει και να προτείνει τεχνολογικές διεξόδους σε προβλήματα που ανακύπτουν [7]. Σκοπός της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη δύο ιστοτόπων για τη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών και Υπολογισμών με αντικείμενο του ενός την παρουσίαση της Μονάδας (acel.web.auth.gr) και του δεύτερου την παρουσίαση του ερευνητικού προγράμματος «Εξελιγμένη Υπολογιστική Μοντελοποίηση και Εφαρμογές για Καινοτόμα Υλικά και Διατάξεις» (acmims.web.auth.gr). Για την επίτευξη του σκοπού αυτού χρησιμοποιήθηκε και παρουσιάζεται ένα ευρύ σύνολο τεχνολογιών και πρακτικών για το σχεδιασμό και την ανάπτυξη ιστοτόπων, οι οποίες συνθέτουν το βασικό αντικείμενο του Web Developer. O σκοπός της διπλωματικής εργασίας είναι διττός: α) Αφενός στοχεύει στην καταγραφή των ιδιαιτεροτήτων του εργαστηρίου και στην ικανοποίηση της ανάγκης για επισταμένο σχεδιασμό και υλοποίηση του ιστοτόπου που θα αποτελέσει την ηλεκτρονική διάσταση των δραστηριοτήτων του τομέα. Η διπλωματική ασχολείται με το αντικείμενο του «κατασκευαστή διαδικτυακών ιστοτόπων» (Web Developer), αναλύει τις χρησιμοποιούμενες τεχνολογίες για τον σχεδιασμό και την ανάπτυξη ιστοτόπων και με την χρήση αυτών επιχειρείται η κατασκευή των ζητούμενων ιστοτόπων. β) Αφετέρου αναλαμβάνει να εκσυγχρονίσει και να οργανώσει το υλικό σχετικά με τα βασικά μαθήματα των ηλεκτρομαγνητικών πεδίων αλλά και μαθημάτων του τηλεπικοινωνιακού τομέα σε μία ενιαία πλατφόρμα ικανή να δώσει στον φοιτητή το έναυσμα και τα εφόδια για την καλύτερη κατανόηση του μαθήματος, οξύνοντας το ενδιαφέρον του για το μάθημα και τις πρακτικές του εφαρμογές. Τέλος, δευτερογενή σκοπό της παρούσας διπλωματικής εργασίας αποτελεί η περιγραφή και εκμάθηση των λειτουργιών των συστημάτων διαχείρισης περιεχομένου Ιστού (Web Content Management Systems, WCMS, Drupal, Joomla!, WordPress), εργαλεία τα οποία θα μπορεί στη συνέχεια ο εκάστοτε διδάσκων να χρησιμοποιεί για να διαχειριστεί τον ιστότοπο (ανακοινώσεις, εκπαιδευτικό υλικό κλπ). xi

16 xii

17 Προδιαγραφές ανάπτυξης Ιστοτόπου A.C.E.L και A.C.M.I.M.S Η υλοποίηση ενός σύγχρονου ιστοτόπου απαιτεί προσεκτικό σχεδιασμό, σωστή δόμηση και ταξινόμηση του περιεχομένου ώστε να εξυπηρετεί με τον καλύτερο δυνατό τρόπο τον χρήστη. Σημαντικό στοιχείο για έναν δυναμικό ιστότοπο είναι η δυνατότητα για απλή και γρήγορη αλλαγή και επέκταση των δυνατοτήτων και της εμφάνισής του, ανάλογα με τις εκάστοτε ανάγκες. Για τον σκοπό αυτό χρειάζεται να υπάρχει ένας βασικός κορμός πάνω στον οποίο θα μπορούν να προστίθενται νέες λειτουργίες, οι οποίες θα πρέπει να είναι σαφώς διαχωρισμένες από την εμφάνιση του ιστοτόπου (οριζόντιο πρότυπο σχεδίασης). Ο σχεδιασμός όσον αφορά στην αισθητική του ιστοτόπου δεν πρέπει να θεωρείται δευτερεύουσας σημασίας. Δεν είναι τυχαίο, άλλωστε, ότι σήμερα η αισθητική εμφάνιση ενός ιστοτόπου αποτελεί ειδικότητα, με επιμέρους μάλιστα εξειδικεύσεις, η οποία αναφέρεται ως Web Design, οπτική επικοινωνία, επιστήμη της γραφιστικής ή με το γενικότερο σχεδιασμός εμπειρίας χρήστη. Ανεξαρτήτως ονόματος, αντικείμενο όλων των παραπάνω αποτελεί η χωροταξία και η γεωμετρία του ιστοτόπου, η χρωματική ανάλυση, η εικονογράφηση ή/και το πώς το περιεχόμενο ενός ιστοτόπου φτάνει στον χρήστη και παρουσιάζεται μέσα από ένα πρόγραμμα περιήγησης Ιστού. Η τελική εφαρμογή τους διαμορφώνεται με γνώμονα την ουσιαστικότερη και αποδοτικότερη «επικοινωνία» ιστοτόπου-χρήστη, αξιοποιώντας παρατηρήσεις και μελέτες στον χώρο της νευροψυχολογίας και κύρια της φυσιολογίας της όρασης και της οπτικής αντίληψης. Επίσης, ένα σημείο που πρέπει να ληφθεί υπόψη στη σχεδίαση σύγχρονων ιστοτόπων είναι η προσβασιμότητα τους. Ένας σύγχρονος ιστότοπος, και ιδιαίτερα ένας εκπαιδευτικός ιστότοπος, πρέπει να επιτρέπει την πρόσβαση σε όλους τους χρήστες, χωρίς κριτήρια αποκλεισμού. Ο εκπαιδευτικός χαρακτήρας των υπό ανάπτυξη ιστοτόπων της παρούσας διπλωματικής προϋπέθετε τη δυνατότητα προβολής και χρήσης τους και από άτομα που παρουσιάζουν δυσκολίες ή αναπηρίες, ώστε να μην τα αποκλείει από την εκπαιδευτική διαδικασία. Ενδεδειγμένη πρακτική είναι η τήρηση των προτύπων διαδικτυακής προσβασιμότητας, σύμφωνα με τις τρέχουσες οδηγίες από την Κοινοπραξία του Παγκόσμιου Ιστού [World Wide Web Consortium, 2016 W3C (MIT, ERCIM, Keio, Beihang)]. Οι οδηγίες αυτές περιλαμβάνουν κατευθύνσεις για τον σχεδιασμό ιστοτόπων ώστε αυτοί να είναι 1

18 προσβάσιμοι από διάφορες ομάδες χρηστών με διαφορετικά χαρακτηριστικά. Ακόμα, ακολουθώντας τις τεχνολογικές εξελίξεις και τον ολοένα αυξανόμενο αριθμό διαφορετικών συσκευών περιήγησης στο διαδίκτυο, ιδιαίτερη έμφαση δόθηκε στην πρόβλεψη της χρήσης του ιστοτόπου από τέτοια πιθανά μέσα προβολής. Πρόσθετα, σημαντικά χαρακτηριστικά σε έναν ιστότοπο είναι η ασφάλεια, η αξιοπιστία, η απόδοση καθώς και η ευκολία εύρεσής του με μηχανές αναζήτησης, στοιχεία που λήφθηκαν υπόψη στους υπό μελέτη ιστοτόπους. Σαφώς, η δομή του ιστοτόπου αποτέλεσε το κύριο θέμα σχεδιασμού του και επιλέχθηκε σύμφωνα με τις ανάγκες προβολής της δραστηριότητας εργαστηρίου και των απαιτήσεων της εκπαιδευτικής διαδικασίας. Η επιλογή της δομής έγινε με τέτοιο τρόπο ώστε να είναι εύκολα ανανεώσιμη και η πλοήγηση μέσα στον ιστότοπο να είναι απλή και σύντομων διαδρομών. Οι ενότητες που περιλήφθηκαν είναι οι: (α) προσωπικό, (β) εκπαίδευση, (γ) έρευνα, (δ) εργαστήριο και (ε) ανακοινώσεις. Στην ενότητα «προσωπικό» προστέθηκε το διδακτικό προσωπικό καθώς και οι διδακτορικοί / μεταπτυχιακοί φοιτητές που σχετίζονται με την εκπαιδευτική και ερευνητική διαδικασία, κατηγοριοποιημένοι σε αντίστοιχες υποενότητες όπως «μέλη ΔΕΠ», «μεταπτυχιακοί φοιτητές» «επιστημονικοί συνεργάτες», «λοιπό προσωπικό». Για κάθε αναγραφόμενο περιλαμβάνονται πληροφορίες όπως το βιογραφικό του, στοιχεία επικοινωνίας, και παραπομπή στον προσωπικό του ιστότοπο. Στην ενότητα «εκπαίδευση», η οποία προορίζεται να φιλοξενήσει και το περισσότερο υλικό, περιλήφθηκαν τα μαθήματα και πληροφορίες για αυτά, καθώς και εκπαιδευτικό υλικό για το κάθε μάθημα όπως σημειώσεις, βιβλία, εικονικά μαθήματα, βίντεο και χρήσιμοι σύνδεσμοι. Σε αυτήν την ενότητα επίσης περιλήφθηκαν και οι διπλωματικές εργασίες. Στην ενότητα «έρευνα» αποφασίστηκε να περιληφθούν όλες οι διδακτορικές διατριβές και οι δημοσιεύσεις του προσωπικού του εργαστηρίου καθώς και να επιχειρηθεί η σύνδεση του εργαστηρίου με τρέχοντα ή ολοκληρωμένα ερευνητικά προγράμματα με σκοπό την προβολή του ερευνητικού του έργου. Όσον αφορά στις δημοσιεύσεις, θεωρήθηκε σκόπιμη η παρουσία ενός φίλτρου για τη διάκριση των διαφορετικών τύπων δημοσίευσης (International Peer-reviewed Journals, International Conferences, Other Publications, Book Chapters). 2

19 Μία ξεχωριστή ενότητα με το όνομα «εργαστήριο» αποφασίστηκε να φιλοξενήσει πληροφορίες σχετικά με το αντικείμενο, τον εξοπλισμό και τις δραστηριότητες του εργαστηρίου, καθώς και εικονική περιήγηση σε αυτό (φωτογραφίες 360 ο, βίντεο). Στην ενότητα «ανακοινώσεις» προστέθηκαν ανακοινώσεις σχετικές τόσο με το εκπαιδευτικό έργο, όσο και με την ερευνητική δραστηριότητα του εργαστηρίου. Ο διαχωρισμός των ανακοινώσεων στην αντίστοιχη σελίδα, αποφασίστηκε να γίνεται με φίλτρα τα οποία θα φιλτράρουν τις διαθέσιμες ανακοινώσεις με βάση την ημερομηνία, τη θεματική τους ή την αναζήτηση λέξεων-κλειδιών στον τίτλο της ανακοίνωσης. Οι ανακοινώσεις μπορούν να τροφοδοτούνται με τη χρήση προτυποποιημένης μεθόδου ανταλλαγής ψηφιακού πληροφοριακού περιεχομένου (RSS Feeds) ή/και μέσω , ώστε να κοινοποιούνται άμεσα χωρίς να χρειάζεται οι φοιτητές να επισκεφθούν τον ιστότοπο. Τα σύγχρονα εργαλεία ανάπτυξης διαδικτυακών ιστοτόπων προσφέρουν ένα ευρύ φάσμα πρόσθετων λειτουργικών χαρακτηριστικών. Κατόπιν συζήτησης με τους υπεύθυνους καθηγητές πραγματοποιήθηκε επιλογή κάποιων συγκεκριμένων πρόσθετων λειτουργικών χαρακτηριστικών για άμεση χρήση, ενώ άλλα πρόσθετα χαρακτηριστικά συζητήθηκαν προς υλοποίηση σε δεύτερο χρόνο, σύμφωνα με τις ανάγκες και τη δυναμική των ιστοτόπων. Ενδεικτικά αναφέρονται τα παρακάτω εργαλεία, τα οποία προτάθηκαν ή/και υλοποιήθηκαν στην κατεύθυνση της βελτίωσης της εκπαιδευτικής διαδικασίας. Κατ αρχάς, ένα ημερολογιακό χρονοδιάγραμμα προορίζεται να συνεισφέρει στην οργάνωση του μαθήματος τόσο από την πλευρά του καθηγητή όσο και από αυτήν του φοιτητή. Το ημερολόγιο αυτό μπορεί να περιλαμβάνει ένα συνοπτικό πλάνο της διδασκαλίας του κάθε μαθήματος, ούτως ώστε ο φοιτητής να αποκτήσει μία γενική εικόνα της δομής του μαθήματος στα θεμέλια της οποίας θα μπορέσει να οικοδομήσει συγκροτημένα την παρεχόμενη πληροφορία. Πρόσθετα, η ανάπτυξη ενός φόρουμ εσωτερικά του ιστοτόπου, θα λειτουργήσει ως τράπεζα ανταλλαγής ερωταπαντήσεων και γνώσεων μεταξύ των φοιτητών αλλά και μεταξύ φοιτητώνδιδασκόντων. Μέσω του φόρουμ, οι φοιτητές θα μπορούν να οργανώνουν ενδεχόμενες εργασίες τους και γενικά, να συντονίζονται για ζητήματα σχετικά με το κάθε μάθημα. Συνολικά, το φόρουμ, εκτός από την βαθύτερη κατανόηση τυχών δυσνόητων σημείων του μαθήματος, θα λειτουργήσει και ως μία πλατφόρμα ανάπτυξης της συνεργασίας μεταξύ των φοιτητών. 3

20 Συζητήθηκε, επίσης, η εγγραφή χρηστών στον ιστότοπο, όπου ο κάθε φοιτητής θα μπορεί να δηλώνει τα μαθήματα που παρακολουθεί. Με βάση τις επιλογές του, θα μπορεί να έχει πρόσβαση στο αντίστοιχο εκπαιδευτικό υλικό, στις σχετικές ανακοινώσεις και στον βαθμό του ενώ οποιαδήποτε αναρτημένη ανακοίνωση σχετική με τα υπό παρακολούθηση μαθήματα θα μπορεί να προωθείται αυτόματα στο του φοιτητή (newsletter). Τέλος, μία πρόσθετη λειτουργία που θα μπορεί να παρέχεται μέσα από τον ιστότοπο είναι η προσφορά δυνατότητας στον χρήστη να συμμετέχει σε δοκιμασίες αξιολόγησης. Θα παρέχεται η δυνατότητα απάντησης σε ομάδες προκαθορισμένων ερωτήσεων με χαρακτήρα αλληλεπίδρασης, με σκοπό την καλύτερη κατανόηση του περιεχομένου του μαθήματος και την αυτοαξιολόγηση. Τα αποτελέσματα των δοκιμασιών αυτών θα μπορούν να αναπαρίστανται σε στατιστικά διαγράμματα, ώστε να μπορεί ο φοιτητής ή/και ο καθηγητής να εξάγει ευκολότερα συμπεράσματα για την απόδοση και την πρόοδο της εκπαιδευτικής διαδικασίας. 4

21 Βασικές Έννοιες Στο κεφάλαιο αυτό επιχειρείται μία ανασκόπηση των βασικών τεχνολογιών και των εργαλείων που χρησιμοποιήθηκαν στην παρούσα εργασία. Αρχικά, περιγράφονται οι τρεις βασικές γλώσσες του Παγκόσμιου Ιστού, HTML, CSS και JavaScript. Τα CSS ελέγχουν την εμφάνιση μίας σελίδας και η JavaScript ελέγχει τη λειτουργία της αλλά η HTML είναι αυτή που παρέχει την βασική δομή των ιστοσελίδων. Αφαιρώντας τα CSS η σελίδα απομένει χωρίς μορφότυπο. Αφαιρώντας την JavaScript ορισμένες λειτουργίες παύουν να λειτουργούν. Αφαιρώντας, όμως, την HTML δεν μένει τίποτα όσον αφορά στο περιεχόμενο της ιστοσελίδας [8]. Στη συνέχεια περιγράφεται η SQL, διαδεδομένη γλώσσα για τον έλεγχο των βάσεων δεδομένων και η PHP, η δημοφιλέστερη γλώσσα για την υποστήριξη δυναμικών ιστοτόπων. Στο τέλος του κεφαλαίου περιγράφονται και συγκρίνονται τα δημοφιλέστερα Συστήματα Διαχείρισης Περιεχομένου Ιστού. HTML Ο όρος HTML αποτελεί ακρωνύμιο για την Γλώσσα Υπερκειμενικής Σήμανσης (Hyper Text Markup Language). Σε αντίθεση με μία σεναριογλώσσα (scripting language) ή γλώσσα προγραμματισμού που χρησιμοποιεί σενάρια για να εκτελέσει λειτουργίες, μία γλώσσα σήμανσης χρησιμοποιεί ετικέτες για να προσδιορίσει περιεχόμενο. Παρά την συνεχή εξέλιξή της και τις διάφορες εκδόσεις της που έχουν κυκλοφορήσει, τα βασικά στοιχεία της HTML παραμένουν τα ίδια. Η δομή ενός κειμένου HTML συγκρίνεται με αυτήν ενός αμφίψωμου. Όπως ένα αμφίψωμο έχει δύο φέτες ψωμιού, ένα κείμενο HTML έχει ετικέτες ανοίγματος και κλεισίματος. Αυτές οι ετικέτες, όπως και οι φέτες ψωμιού σε ένα αμφίψωμο, περικλείουν όλα τα άλλα: <html> <p> Αυτό είναι μία παράγραφος </p> </html> Η HTML είναι μία γλώσσα σήμανσης για περιγραφή κειμένων στον Iστό (ιστοσελίδων). Μία γλώσσα σήμανσης είναι ένα σύνολο από ετικέτες σήμανσης (markup tags). Τα κείμενα HTML περιγράφονται από ετικέτες HTML (HTML tags). Κάθε ετικέτα HTML περιγράφει 5

22 διαφορετικού περιεχομένου κείμενο. Η βασική δομή μίας σελίδας HTML περιγράφεται στο ΠΑΡΑΡΤΗΜΑ Α. Τα CSS ελέγχουν την εμφάνιση μίας σελίδας και η JavaScript ελέγχει τη λειτουργία της αλλά η HTML είναι αυτή που παρέχει την βασική δομή των ιστοσελίδων [8]. Στην πραγματικότητα για να υπάρχει ένας ιστότοπος το μόνο που χρειάζεται είναι HTML. Ένα κείμενο κατάλληλα γραμμένο σε HTML δεν είναι μόνο αναγνώσιμο στον χρήστη αλλά μεταφέρει και τη δομή του κειμένου, τη σχέση μεταξύ των περιεχομένων του και επιτρέπει στον χρήστη να συνδέεται και σε άλλες σελίδες και ιστοτόπους. Η HTML καταφέρνει να πραγματοποιήσει όλα τα παραπάνω καθώς είναι μία γλώσσα σήμανσης. Αυτό σημαίνει ότι η HTML χρησιμοποιείται για να σημάνει περιεχόμενο ώστε να το προσδιορίσει και να ορίσει το πώς συνδέεται με άλλο περιεχόμενο της σελίδας. Αυτό πραγματοποιείται με τη χρήση των ετικετών (tags) που χρησιμοποιούνται για να προσδιορίσουν συγκεκριμένους τύπους περιεχομένου. Η ετικέτα p, για παράδειγμα, προσδιορίζει το περιεχόμενο ως παράγραφο ενώ η ετικέτα nav προσδιορίζει το περιεχόμενο ως μέρος του μενού της ιστοσελίδας. Με την σωστή χρήση των ετικετών και τον κατάλληλο συνδυασμό αυτών, καθίσταται δυνατή η δημιουργία μίας απλής σελίδας σε HTML. Από τις πρώτες μέρες του Ιστού έως σήμερα έχουν κυκλοφορήσει πολλές εκδόσεις της HTML. Το 1991 ορίστηκε η πρώτη έκδοση HTML, το 1995 η HTML 2.0, το 1997 η HTML 3.2, το 1999 η HTML 4.0.1, το 2000 η XHTML και το 2014 η τρέχουσα έκδοση HTML5. Ιστορία Η HTML συνεχώς τροποποιείται παράλληλα με την ταχύτατη διαρκή εξέλιξη του Ιστού. Για την καλύτερη κατανόηση της τρέχουσας κατάστασης στην HTML κρίνεται σκόπιμη μία σύντομη ανασκόπηση στην ιστορία της εξέλιξης της HTML. To πρώτο ορόσημο στη διαμόρφωση της HTML συναντάται το 1991 στο κείμενο που δημοσίευσε ο Tim Berners-Lee με το όνομα «HTML Tags» [9]. Σε αυτό το κείμενο περιγράφονταν ένα σύνολο από ετικέτες, οι οποίες θα μπορούσαν να χρησιμοποιηθούν για τη σήμανση των περιεχομένων στα διαδικτυακά κείμενα. Η εξέλιξη αυτού του κειμένου οδήγησε το 1995 στη δημοσίευση της HTML 2.0. Ακολούθησαν το 1997 η HTML 3.2 και λίγο αργότερα την ίδια χρονιά, η έκδοση HTML 4.0 [10]. Μόλις δύο χρόνια μετά, το 1999, κυκλοφόρησε η έκδοση HTML 4.01 [11]. 6

23 Η ταχύτατη εξέλιξη στις εκδόσεις της HTML αντανακλά την παράλληλη εξέλιξη στο σύνολο του διαδικτύου και των σχετικών τεχνολογιών. Σε αυτές τις συνθήκες, οι κατασκευαστές προγραμμάτων περιήγησης συχνά αγνοούσαν τις πρότερες προδιαγραφές ή τροποποιούσαν τις εφαρμοζόμενες εκδόσεις. Πρότειναν τις δικές τους ετικέτες και συχνά υλοποιούσαν ακόμη και τις ίδιες ετικέτες με διαφορετικούς τρόπους. Η ασυμφωνία αυτή οδήγησε τη διαδικτυακή κοινότητα στην απαίτηση προτυποποίησης στην εφαρμογή της HTML και άσκησε πίεση στους προγραμματιστές των προγραμμάτων περιήγησης στην κατεύθυνση αυστηρής εφαρμογής των δημοσιευμένων προδιαγραφών HTML. Ως αποτέλεσμα, η έκδοση HTML 4.0 αποτέλεσε την πρώτη έκδοση με σχεδόν καθολική υποστήριξη. Έως και σήμερα, η HTML 4.0 παραμένει η πιο σταθερή προδιαγραφή της HTML. Περίπου στο 2000, η Κοινοπραξία του Παγκόσμιου Ιστού W3C, υπεύθυνη για την τυποποίηση και δημοσιοποίηση της HTML, ξεκίνησε μία προσπάθεια μετακίνησης της HTML προς την XML με την δημοσίευση της XHTML 1.0. Σκοπός ήταν η HTML να ακολουθήσει τους πιο αυστηρούς κανόνες της XML και η γλώσσα να γίνει πιο επεκτάσιμη. Η προσπάθεια αυτή παρουσίασε πολλές δυσκολίες και τελικά εγκαταλείφθηκε. Παράλληλα, την ίδια περίοδο, ένα σύνολο από οργανισμούς και ιδιώτες, αυτοαποκαλούμενο ως Web Hypertext Application Technology Working Group (WHAT Working Group), επιχειρούσε τη συνέχιση της HTML 4.0. Η δική τους προδιαγραφή, που έφερε τον τίτλο Web Applications 1.0, ήταν αυτή που στη συνέχεια υιοθετήθηκε από το W3C και μετονομάστηκε σε HTML 5, που αποτελεί την τρέχουσα HTML έκδοση. Σήμερα, οι προδιαγραφές της HTML αναπτύσσονται ταυτόχρονα και ανεξάρτητα από το W3C και το What Working Group. Οι δύο ομάδες συνεργάζονται μεταξύ τους αλλά οι προδιαγραφές θεωρούνται ανεξάρτητες η μία από την άλλη. Ο W3C αναπτύσσει την επόμενη προδιαγραφή της HTML 5 με σκοπό την ενιαία, συγκροτημένη προδιαγραφή HTML 5.1. Από την άλλη, το WHAT Working Group [12] αναπτύσσει την HTML ως ένα ζωντανό πρότυπο και σε αυτό το πλαίσιο έχουν εγκαταλείψει τον αριθμό έκδοσης. H προδιαγραφή της HTML 5 δεν απέχει πολύ από την προηγούμενη HTML 4.0. Σημαντικό στοιχείο είναι η εισαγωγή ενός σαφέστερου πλαισίου κανόνων όσον αφορά στη χρήση της HTML. Πρόσθετο σημαντικό χαρακτηριστικό είναι η εστίασή της στην ανάπτυξη εφαρμογών. Λειτουργίες όπως «drag and drop», προσδιορισμός τοποθεσίας, υποστήριξη για σχεδιαστικές υπηρεσίες όπως canvas και άλλα παρόμοια θέματα προσδιορίζονται στην HTML 5 και την 7

24 καθιστούν περισσότερο μία πλατφόρμα για την ανάπτυξη εφαρμογών παρά μία απλή γλώσσα σήμανσης [13]. CSS Τα Επικαλυπτόμενα Φύλλα Μορφοποίησης (Cascading Style Sheets, CSS) είναι μία γλώσσα μορφοποίησης (stylesheet) χρησιμοποιούμενη για την εμφάνιση ενός κειμένου γραμμένου σε μία γλώσσα σήμανσης. Παρά το γεγονός ότι συχνότερα χρησιμοποιείται για να ορίσει το οπτικό κομμάτι των ιστοσελίδων και των διεπαφών χρήστη σε σελίδες γραμμένες σε HTML, η γλώσσα μπορεί να εφαρμοστεί και σε κάθε κείμενο XML, συμπεριλαμβανομένου απλής XML, SVG και XUL, και είναι εφαρμόσιμη και στη διαμόρφωση ήχου και άλλων μέσων. Μαζί με την HTML και την JavaScript, η CSS είναι ένας από τους ακρογωνιαίους λίθους της τεχνολογίας Ιστού, χρησιμοποιούμενη από τους περισσότερους ιστοτόπους για να δημιουργήσει οπτικά ελκυστικές ιστοσελίδες, διεπαφές χρήστη για εφαρμογές Ιστού και διεπαφές χρήστη για εφαρμογές φορητών συσκευών. Ο σκοπός ανάπτυξης της CSS ήταν ο διαχωρισμός των περιεχομένων του κειμένου από την εμφάνιση τους, περιλαμβάνοντας στοιχεία σχετικά με την οπτική απόδοση του περιεχομένου. Αποτέλεσμα του διαχωρισμού είναι η βελτίωση της προσβασιμότητας του περιεχομένου, η προσφορά μεγαλύτερης ευελιξίας και ελέγχου στη διαμόρφωση των χαρακτηριστικών της εμφάνισης, η δυνατότητα ενιαίας διαμόρφωσης σε πολλαπλές σελίδες HTML, με μείωση της πολυπλοκότητας και της επανάληψης. Η CSS καθιστά εφικτό τον διαχωρισμό των οδηγιών εμφάνισης από το περιεχόμενο της HTML σε ένα διαφορετικό αρχείο ή και σε ένα διαφορετικό τομέα του αρχείου HTML. Για κάθε αντιστοιχιζόμενο στοιχείο HTML παρέχεται μία λίστα με οδηγίες μορφοποίησης. Τα πλεονεκτήματα που προσφέρει ο διαχωρισμός μορφοποίησης και περιεχομένου είναι πολλαπλά και αποδίδονται συνοπτικά παρακάτω. Αρχικά, ο διαχωρισμός προσδίδει το πλεονέκτημα της γρήγορης και εύκολης επεξεργασίας-μορφοποίησης του περιεχομένου ενός HTML αντί της επίπονης, χρονοβόρου και ακριβής διαδικασίας της αλλαγής σήμανσης ξεχωριστά σε κάθε σημείο του κειμένου. Συγκεκριμένα, καθιστά εφικτή την εμφάνιση της ίδιας σελίδας σε πολλαπλά μορφότυπα παρουσίασης με βάση τις ονομαστικές παραμέτρους 8

25 (nominal parameters). Οι ονομαστικές παράμετροι περιλαμβάνουν ρητές προτιμήσεις του χρήστη, διαφορετικά προγράμματα περιήγησης, τον τύπο της συσκευής που χρησιμοποιείται για να εμφανίσει το περιεχόμενο (επιτραπέζιος υπολογιστής ή κινητή συσκευή), τον τύπο οθόνης προβολής του περιεχομένου (αναγνώστης οθόνης, οθόνη αφής τύπου Braille), τη γεωγραφική τοποθεσία του χρήστη κ.α. Ακόμα, ο εκάστοτε χρήστης μπορεί να προσαρμόσει διαφορετικά την εμφάνιση μίας ιστοσελίδας, προσδίδοντας στο κοινό αρχείο περιεχομένου διαφορετικούς κανόνες CSS από αυτούς που έχει ορίσει ο δημιουργός της ιστοσελίδας. Στην περίπτωση που είτε ο δημιουργός είτε ο αναγνώστης δεν συσχετίσουν το κείμενο με ένα συγκεκριμένο φύλλο τεχνοτροπίας, η διαμόρφωση καθορίζεται βάσει του προκαθορισμένου φύλλου του προγράμματος περιήγησης. Οι προδιαγραφές CSS, όπως αυτές διαμορφώνονται από την Κοινοπραξία του Παγκόσμιου Ιστού, περιγράφουν ένα σχήμα προτεραιοτήτων στην εφαρμογή των κανόνων μορφοποίησης, στην περίπτωση που σε ένα συγκεκριμένο στοιχείο ταιριάζουν περισσότεροι από έναν κανόνες. Στην περίπτωση αυτή της επικάλυψης (cascade), οι προτεραιότητες υπολογίζονται και ανατίθενται στους κανόνες, ώστε τα αποτελέσματα να είναι προβλέψιμα. Όταν τα CSS χρησιμοποιούνται αποτελεσματικά, όσον αφορά στην μεταβίβαση (inheritance) και στην επικάλυψη (cascading), ένα φύλλο καθολικής τεχνοτροπίας μπορεί να χρησιμοποιηθεί για να επηρεάσει και να διαμορφώσει τα στοιχεία ενός ιστοτόπου, προσφέροντας επιπλέον ομοιομορφία στο σύνολο του. Πρόσθετα, ένα εξωτερικό φύλλο μορφοποίησης συνήθως αποθηκεύεται στην μνήμη cache του προγράμματος περιήγησης και συνεπώς μπορεί να χρησιμοποιηθεί σε πολλαπλές σελίδες χωρίς να επαναφορτωθεί, μειώνοντας επιπλέον την κίνηση δεδομένων σε ένα δίκτυο. Η βασική σύνταξη της CSS και σχετικά παραδείγματα παρατίθενται στο ΠΑΡΑΡΤΗΜΑ Β. Ιστορία Διάφορα πρότυπα φύλλων μορφοποίησης είχαν προταθεί και εφαρμόζονταν ήδη από το 1980 στο πλαίσιο της SGML (Standard Generalized Markup Language). Η απαίτηση του εξελισσόμενου Ιστού για μία γλώσσα μορφοποίησης που να επιτρέπει σε πολλά φύλλα μορφοποίησης να επηρεάσουν την μορφή ενός κειμένου με την τεχνική της επικάλυψης, οδήγησε στην ανάπτυξη και καθιέρωση των CSS [14]. Τα CSS προτάθηκαν αρχικά από τον Hakon Wium Lie στις 10 Οκτωβρίου Την ίδια χρονική περίοδο ο Lie εργαζόταν με τον Tim Berners-Lee στο CERN. Το σύνολο των συζητήσεων εσωτερικά της Κοινοπραξίας του Παγκόσμιου Ιστού και σε δημόσιες λίστες αλληλογραφίας οδήγησαν το 1996 στην πρώτη σύσταση της Κοινοπραξίας για τα CSS (προδιαγραφή CSS, level 1) [15]. Ιδιαίτερη ήταν η συνεισφορά του Bert Bos ο οποίος θεωρείται συνδημιουργός των CSS. 9

26 Κατά την εξέλιξη της HTML, χρειάστηκε να ενσωματωθούν μία σειρά από ικανότητες μορφοποίησης για να ικανοποιηθούν οι αντίστοιχες απαιτήσεις των Web Developers. Η δυνατότητα αυτή έδωσε στον σχεδιαστή μεγαλύτερο έλεγχο όσον αφορά στην εμφάνιση του ιστοτόπου έχοντας, όμως, το κόστος μίας πιο πολύπλοκης HTML. Μεταβολές στις υλοποιήσεις των προγραμμάτων περιήγησης είχαν ως αποτέλεσμα τη μεταβλητότητα στην εμφάνιση του ιστοτόπου καθώς και τον περιορισμό του ελέγχου μορφοποίησης από τους χρήστες. Το πρόγραμμα περιήγησης που αναπτύχθηκε νωρίτερα από τον Tim Berners-Lee είχε τη δυνατότητα εφαρμογής φύλλων μορφοποίησης που, όμως, ήταν ενσωματωμένα στο πρόγραμμα [16]. Τα φύλλα μορφοποίησης δεν μπορούσαν να συνδεθούν με κείμενα στον Iστό. Ο Robert Cailliau, επίσης από το CERN, επιχείρησε να διαχωρίσει τη δομή από τη παρουσίαση ώστε διαφορετικά φύλλα μορφοποίησης να μπορούν να περιγράψουν τις διαφορετικές εμφανίσεις για παρουσίαση σε οθόνη, επεξεργασία και εκτύπωση. Η βελτίωση των δυνατοτήτων της παρουσίασης στον Iστό ήταν ένα θέμα μείζονος ενδιαφέροντος για τη διαδικτυακή κοινότητα και η σχετική λίστα περιλάμβανε συνολικά 9 διαφορετικές τεχνολογίες φύλλων μορφοποίησης. Δύο εξ αυτών, η CHSS (Cascading HTML Style Sheets) και η SPP (Stream-based Style Sheet Proposal) υπήρξαν ιδιαίτερα καθοριστικές στην τελική διαμόρφωση των CSS. To πεδίο δοκιμών των αρχικών προτάσεων υπήρξαν δύο προγράμματα περιήγησης. Οι Lie και Yfes Lafon υλοποίησαν το CHSS στον περιηγητή Arena του Dave Ragget. Αντίστοιχα, ο Bert Bos υλοποίησε το SSP στον περιηγητή Argo. Στη συνέχεια, οι Lie και Bos συνεργάστηκαν για την ανάπτυξη του προτύπου CSS. Το «Η» αφαιρέθηκε από το όνομα επειδή τα συγκεκριμένα φύλλα μορφοποίησης μπορούσαν πλέον να εφαρμοστούν και σε άλλες γλώσσες σήμανσης εκτός της HTML [17]. Η παράλληλη σύσταση της Κοινοπραξίας του Παγκόσμιου Ιστού το 1994 και η αναγνώριση της CSS, οδήγησε στην καθιέρωση της CSS στις επίσημες οδηγίες της Κοινοπραξίας το CSS 1 Η πρώτη προδιαγραφή CSS έγινε επίσημη σύσταση της Κοινοπραξίας του Παγκόσμιου Ιστού, ως CSS, Level 1 το O Hakon Wium Lie και ο Bert Bos πιστώνονται ως οι αρχικοί εκπονητές [15]. Μεταξύ των δυνατοτήτων ήταν υποστήριξη για (Εικόνα 1): Ιδιότητες γραμματοσειράς όπως typeface και έμφασης Χρώμα κειμένου, φόντου και άλλων στοιχείων Ιδιότητες κειμένου όπως κενά μεταξύ λέξεων, γραμμάτων και γραμμών κειμένου Στοίχιση κειμένου, εικόνων, πινάκων και άλλων στοιχείων 10

27 Περιθώρια (margin, border, padding) και τοποθέτηση για τα περισσότερα στοιχεία Μοναδική ταυτοποίηση (identification) και γενική ταξινόμηση (classification) για ομάδες ιδιοχαρακτηριστικών CSS 2 Η προδιαγραφή CSS, level 2 αναπτύχθηκε από την Κοινοπραξία του Παγκόσμιου Ιστού και δημοσιοποιήθηκε ως σύστασή της το H επέκταση του CSS 1 στο υπερσύνολο CSS 2 περιλάμβανε ένα πλήθος από νέες δυνατότητες όπως απόλυτη, σχετική και σταθερή τοποθέτηση στοιχείων, z-index, την ιδέα των τύπων media, υποστήριξη για ηχητικά φύλλα μορφοποίησης, αμφίδρομο κείμενο και νέες ιδιότητες γραμματοσειρών όπως σκιές (Εικόνα 1) [18], [19]. CSS 3 Αντίθετα με το CSS, level 2 που αποτελεί μία ενιαία προδιαγραφή (υπερσύνολο), η CSS, level 3 χωρίζεται σε διάφορα ξεχωριστά κείμενα που καλούνται στοιχεία. Κάθε στοιχείο προσθέτει νέες δυνατότητες ή επεκτείνει στοιχεία που ορίζονται στην CSS 2, διατηρώντας συμβατότητα με τα παλαιότερα. Η ανάπτυξη της CSS, level 3 ξεκίνησε αμέσως μετά την δημοσίευση της σύστασης CSS, level 2 και τα πρώτα προσχέδια δημοσιοποιήθηκαν τον Ιούνιο του 1999 (Εικόνα 1). CSS 4 Τουλάχιστον έως σήμερα δεν υπάρχει ενιαία ολοκληρωμένη προδιαγραφή CSS 4, ωστόσο το σύνολο κάποιων μεμονωμένων νεότερων στοιχείων μπορεί να ονομαστεί ως προδιαγραφή CSS, level 4. Τα στοιχεία αυτά είναι προς το παρόν περιορισμένα και αναπτύχθηκαν σε συνέχεια κάποιων παλαιότερων στοιχείων του CSS, level 3 [20]. 11

28 Εικόνα 1. Τα διάφορα στάδια και εκδόσεις της CSS. Υποστήριξη Προγραμμάτων Περιήγησης Επειδή τα διάφορα προγράμματα περιήγησης δεν υποστηρίζουν πλήρως όλα τα στοιχεία των CSS, αναπύχθηκαν προγραμματιστικές τεχνικές γνωστές ως CSS hacks ή CSS filters με σκοπό είτε να φιλτράρουν είτε να στοχεύσουν συγκεκριμένα προγράμματα για να αποκρύψουν ή να εφαρμόσουν διαφορετικά κομμάτια των CSS. JavaScript Η JavaScript (Oracle Corporation, Redwood City, CA) είναι η δημοφιλέστερη γλώσσα προγραμματισμού παγκοσμίως [21]. Δεν θα πρέπει να συγχέεται με την Java (Oracle Corporation, Redwood City, CA) καθώς είναι δύο ανεξάρτητες γλώσσες, διαφορετικές τόσο στη γενική ιδέα όσο και στο σχεδιασμό. Παρά τις κάποιες ομοιότητες ονοματολογίας μεταξύ τους, συντακτικές και βασικής βιβλιοθήκης, η JavaScript και η Java είναι κατά τα άλλα αρκετά διαφοροποιημένες και πολύ διαφορετικές στη σημασιολογία (semantics). Η σύνταξη της JavaScript είναι στη πραγματικότητα προερχόμενη από τη γλώσσα προγραμματισμού C, ενώ η σημασιολογία και ο σχεδιασμός είναι επηρεασμένες από τις Self και Scheme. Η JavaScript αναπτύχθηκε το 1995 από τον Brendan Eich και έγινε πρότυπο της ECMA International (ECMA International, Geneva, Switzerland) το 1997 [ECMA-262 (ECMA International, 12

29 Geneva) είναι το επίσημο όνομα της]. Η ECMAScript 6 (κυκλοφόρησε τον Ιούνιο του 2015) είναι η τελευταία επίσημη έκδοση της JavaScript [22]. H JavaScript είναι μία υψηλού επιπέδου, δυναμική, με ασθενείς τύπους και διερμηνευμένη γλώσσα προγραμματισμού [23]. Τυποποιήθηκε στις προδιαγραφές της γλώσσας ECMAScript. Μαζί με την HTML και τη CSS, είναι μία από τις τρεις βασικές τεχνολογίες περιεχομένου για τον Παγκόσμιο Ιστό. Χρησιμοποιείται από την πλειοψηφία των ιστοτόπων και υποστηρίζεται από όλα τα σύγχρονα προγράμματα περιήγησης Ιστού χωρίς την χρήση πρόσθετων. Η JavaScript είναι αντικειμενοστραφής με χρήση πρωτοτύπων, με συναρτήσεις ως αντικείμενα πρώτης τάξης καθιστώντας την μία γλώσσα βασισμένη σε πολλαπλά προγραμματιστικά παραδείγματα (multi-paradigm), με αντικειμενοστραφή, προστακτικό και συναρτησιακό προγραμματισμό [22], [24]. Αναφέρεται σε ένα API για διαχείριση κειμένου, πινάκων, ημερομηνιών και κανονικών εκφράσεων (regular expressions) αλλά δεν περιέχει λειτουργίες εισόδου-εξόδου όπως δικτυακές ή αποθηκευτικές, βασιζόμενη για αυτές στο περιβάλλον φιλοξενίας στο οποίο ενσωματώνεται [23]. H JavaScript χρησιμοποιείται, επίσης, σε περιβάλλοντα που δεν είναι βασισμένα στον Ιστό, όπως κείμενα PDF, εξειδικευμένα προγράμματα περιήγησης (site-specific browsers) και γραφικά στοιχεία (widgets) επιφάνειας εργασίας. Η εξέλιξη στις νεότερες και πιο γρήγορες εικονικές μηχανές (Virtual Machines) καθώς και στις πλατφόρμες που βασίζονται σε αυτές, έχει αυξήσει περαιτέρω τη δημοτικότητα της JavaScript για εφαρμογές που τρέχουν στον διακομιστή. Ακόμα, η JavaScript χρησιμοποιείται στην ανάπτυξη παιχνιδιών, στη δημιουργία επιτραπέζιων και κινητών εφαρμογών, και στον δικτυακό προγραμματισμό στην πλευρά του διακομιστή με χρήση της Node.js (Joyent Inc., CA). Η πιο κοινή χρήση της JavaScript είναι η προσθήκη διαδραστικότητας στην πλευρά του χρήστη σε σελίδες HTML, λειτουργία από την οποία προκύπτει και ο όρος δυναμική HTML (Dynamic HTML). Τα σενάρια ενσωματώνονται στις σελίδες HTML και αλληλεπιδρούν με το DOM (Document Object Model) της σελίδας. To DOM είναι μία αναπαράσταση δενδροειδούς δομής όλων των στοιχείων μίας ιστοσελίδας και η JavaScript απλοποιεί την σύνταξη της εύρεσης, της επιλογής και διαχείρισης αυτών των στοιχείων DOM. Για παράδειγμα η JavScript μπορεί να χρησιμοποιηθεί για την εύρεση ενός στοιχείου στο κείμενο με μία συγκεκριμένη ιδιότητα (έστω όλα τα στοιχεία με ετικέτα h1), για την αλλαγή ενός ή περισσότερων ιδιοχαρακτηριστικών του (χρώμα, ορατότητα κ.α.) ή της αντίδρασής τους σε ένα event (για παράδειγμα στην κίνηση του δείκτη του ποντικιού). Επειδή ο κώδικας JavaScript μπορεί να εκτελείται τοπικά στο πρόγραμμα περιήγησης του χρήστη (αντί ενός 13

30 απομακρυσμένου διακομιστή), το πρόγραμμα περιήγησης μπορεί να ανταποκριθεί πιο γρήγορα στις ενέργειες του χρήστη, καθιστώντας τις εφαρμογές πιο γρήγορες στην απόκριση. Κάποια απλά παραδείγματα της χρήσης JavaScript είναι: Προσθήκη κίνησης στα στοιχεία των σελίδων (βαθμιαία εμφάνιση και εξαφάνιση, αλλαγή μεγέθους, μετακίνηση κ.α.) Επικύρωση των τιμών εισόδου μίας φόρμας Ιστού ώστε να διασφαλιστεί ότι είναι αποδεκτές πριν την υποβολή τους στον διακομιστή. Εντοπισμός ενεργειών του χρήστη που η HTML αδυνατεί να κάνει από μόνη της (όπως η συνεχής, μεμονωμένη καταγραφή του κάθε πλήκτρου κατά την πληκτρολόγηση) Προσθήκη διαδραστικού περιεχόμενου (αναπαραγωγή ήχου και βίντεο, παιχνίδια κ.α.) Φόρτωση νέου περιεχομένου σελίδας ή υποβολή δεδομένων στον διακομιστή χωρίς την επαναφόρτωση της σελίδας Μετάδοση πληροφοριών σχετικά με τις συνήθειες ανάγνωσης και περιήγησης του χρήστη σε διάφορους ιστοτόπους. Η λειτουργία αυτή χρησιμοποιείται συχνά για λόγους ανάλυσης της κίνησης στον Iστό (Web analytics), διαφήμισης (ad tracking), προσωποποίησης (personalisation) κ.α. Η εφαρμογή ορισμένων από τις παραπάνω δυνατότητες της JavaScript αναλύεται στο ΠΑΡΑΡΤΗΜΑ Γ. Ιστορία Η JavaScript αναπτύχθηκε τον Μάϊο του 1995 με το όνομα «Mocha». Η δημιουργία της γλώσσας πραγματοποιήθηκε σε 10 ημέρες από τον Brendan Eich, υπάλληλο της Netscape (Netscape Communications Corporation, Mountain View, CA). Η γλώσσα κυκλοφόρησε επίσημα υπό την επωνυμία «LiveScript» στην beta έκδοση του Netscape Navigator 2.0 (Netscape Communications Corporation, Mountain View, CA) τον Σεπτέμβριο του Η μετονομασία της σε JavaScript πραγματοποιήθηκε με την ενσωμάτωσή της στην έκδοση Netscape Navigator 2.0B3 τον Δεκέμβριο του ίδιου χρόνου [25], [26]. Μάλιστα, η αλλαγή του ονόματος από LiveScript σε JavaScript πραγματοποιήθηκε με την παράλληλη εισαγωγή υποστήριξης της Java στον Netscape Navigator. Η τελική επιλογή του ονόματος προκάλεσε σύγχυση δίνοντας την εντύπωση ότι η JavaScript ήταν μία έκδοση της Java. Η επιλογή 14

31 χαρακτηρίστηκε ως διαφημιστικό σχέδιο της Netscape για να προσδώσει στην JavaScript την αίγλη της τότε νέας και ανερχόμενης γλώσσας προγραμματισμού Java. Στη συνέχεια, η Netscape εισήγαγε μία υλοποίηση της γλώσσας στην πλευρά του διακομιστή με την κυκλοφορία του Netscape Enterprise Server τον Δεκέμβριο του Αργότερα, οι υλοποιήσεις της JavaScript στην πλευρά του διακομιστή, όπως η Node.js, επανεμφανίστηκαν από τα μέσα της δεκαετίας του Παράλληλα, η υιοθέτηση και ενσωμάτωση σεναριογλωσσών στο λειτουργικό σύστημα Windows (Microsoft Corporation, Redmond, WA) οδήγησε μεταξύ άλλων στις VBScript και JScript, που εκδόθηκαν τον Ιούλιο του H JScript, μία αντίστοιχη υλοποίηση της JavaScript, αποτέλεσε τμήμα του Microsoft Internet Explorer 3 (Microsoft Corporation, Redmond, WA), καθώς και υλοποίηση πλευράς διακομιστή στον Internet Information Server (Microsoft Corporation, Redmond, WA). Μάλιστα, ο Internet Explorer 3 περιλάμβανε, για πρώτη φορά, υποστήριξη της Microsoft για την τεχνολογία CSS. Οι υλοποιήσεις, όμως, της Microsoft διέφεραν σημαντικά από τις αντίστοιχες της Netscape. Η παραπάνω ασυμφωνία καθιστούσε δύσκολη για τους σχεδιαστές και προγραμματιστές την επίτευξη ομοιόμορφης εμφάνισης στα δύο προγράμματα περιήγησης. Τον Νοέμβριο του 1996, η Netscape ανακοίνωσε την υποβολή της JavaScript στην ECMA International για έγκρισή της ως πρότυπο. Μετά τις σχετικές αλλαγές κατά τη διαδικασία της τυποποίησης, ορίστηκε η έκδοσή της με το όνομα ECMAScript. Τον Ιούνιο του 1997, η ECMA International εξέδωσε την πρώτη έκδοση της προδιαγραφής ECMA-262 [27]. Τον Ιούνιο του 1998 και τον Δεκέμβριο του 1999 κυκλοφόρησαν, αντίστοιχα, η δεύτερη και η τρίτη έκδοση της ECMA-262. Η τέταρτη έκδοση του προτύπου ECMAScript δεν υλοποιήθηκε ποτέ. Η πέμπτη έκδοση κυκλοφόρησε τον Δεκέμβριο του 2009, ενώ η τρέχουσα έκδοση ECMAScript 6 κυκλοφόρησε τον Ιούνιο του 2015 [22]. Η JavaScript είναι η δημοφιλέστερη γλώσσα προγραμματισμού παγκοσμίως [21]. Στα αρχικά της στάδια, πολλοί επαγγελματίες προγραμματιστές δυσφήμισαν τη γλώσσα, κύρια, λόγω της στόχευσής της σε συγγραφείς στον Ιστό και μη εξειδικευμένο προσωπικό [28]. Με την εμφάνισης της τεχνολογίας Ajax (βλέπε υποενότητα Ajax), η JavaScript επέστρεψε στο προσκήνιο και κέρδισε την προσοχή των επαγγελματιών προγραμματιστών. Αποτέλεσμα της επακόλουθης ανάπτυξης ήταν μία πληθώρα από ολοκληρωμένα πλαίσια και βιβλιοθήκες, βελτιωμένες πρακτικές προγραμματισμού σε JavaScript και αυξημένη χρήση της JavaScript τόσο στην πλευρά του χρήστη όσο και του διακομιστή. [28]. Σήμερα, η JavaScript θεωρείται 15

32 η «assembly language of the Web» (συμβολογλώσσα του Ιστού) σύμφωνα με τον δημιουργό της αλλά και άλλους ειδικούς της JavaScript [29], [30]. Ajax Η Ασύγχρονη JavaScript και XML (Asynchronous JavaScript and XML, Ajax) είναι ένα σύνολο από τεχνικές ανάπτυξης Ιστού για τη δημιουργία ασύγχρονων εφαρμογών. Σχεδιάστηκε από τον Jesse James Garrett και παρουσιάστηκε στις αρχές του 2005 [31]. Αποτελεί μία τεχνολογία βασισμένη στη JavaScript, η οποία επιτρέπει σε μία ιστοσελίδα να μετακαλεί νέα πληροφορία και να την παρουσιάζει χωρίς ανανέωση της σελίδας. Με την αποσύνδεση του επιπέδου ανταλλαγής από το επίπεδο παρουσίασης, οι ιστοσελίδες και οι εφαρμογές Ιστού μπορούν να αποστείλουν δεδομένα και να τα ανακαλέσουν από έναν διακομιστή ασύγχρονα (στο παρασκήνιο), χωρίς να παρέμβουν στην εμφάνιση και την συμπεριφορά της υπάρχουσας σελίδας. Ο σκοπός ανάπτυξης της Ajax είναι να καθιστά την ιστοσελίδα περισσότερο αποκριτική και διαδραστική από την πλευρά του χρήστη. Τυπικά, μία ιστοσελίδα πρέπει να ανανεώνεται για να εμφανίσει νέα πληροφορία. Ένα παράδειγμα χρήσης Ajax είναι οι διαδικτυακοί χάρτες. Πριν την Ajax, οι διαδικτυακοί χάρτες χρησιμοποιούσαν βέλη κατεύθυνσης για να πλοηγηθούν στα διαφορετικά τμήματα του χάρτη και η σελίδα έπρεπε να ανανεωθεί ώστε να είναι ορατό το νέο τμήμα του χάρτη. Σήμερα, οι διαδικτυακοί χάρτες χρησιμοποιούν την Ajax για να λάβουν τα νέα τμήματα του χάρτη και να τον επανασχεδιάσουν, χωρίς την ανάγκη ανανέωσης της σελίδας. Ο όρος Ajax κατέληξε να αντιπροσωπεύει μία ευρεία ομάδα τεχνολογιών Ιστού η οποία μπορεί να χρησιμοποιηθεί για να υλοποιήσει μία εφαρμογή που επικοινωνεί με τον διακομιστή στο παρασκήνιο, χωρίς να παρεμβαίνει με την τρέχουσα κατάσταση της σελίδας. Στο άρθρο στο οποίο εισήγαγε τον όρο Ajax [31], ο Jesse James Garrett ενέπλεξε τις τεχνολογίες HTML (ή XHTML) και CSS για την παρουσίαση, το DOM (Document Object Model) για δυναμική εμφάνιση και διαδραστικότητα με τα δεδομένα, την JSON ή XML για την ανταλλαγή δεδομένων, την XSLT για την επεξεργασία δεδομένων, το αντικείμενο XMLHttpRequest για την ασύγχρονη επικοινωνία και την JavaScript για την ένωση των παραπάνω τεχνολογιών. Ωστόσο, από τότε υπήρξαν μία σειρά από εξελίξεις και νέες τεχνολογίες και ο ορισμός του όρου Ajax άλλαξε. Παρά τη διατήρηση του ακρωνυμίου, η χρήση XML (και αντίστοιχα η επεξεργασία με XSLT) δεν απαιτείται και συχνά αντικαθίσταται από τη χρήση JSON (JavaScript Object Notation) στην έκδοση Ajaj. 16

33 Εικόνα 2. Το συμβατικό μοντέλο μίας Εφαρμογής Ιστού έναντι μίας εφαρμογής που χρησιμοποιεί Ajax. jquery Η jquery (jquery Foundation) είναι μία ελαφριά, «write less, do more», βιβλιοθήκη JavaScript. Είναι η δημοφιλέστερη βιβλιοθήκη JavaScript, εγκατεστημένη στο 70% των 10 εκατομμυρίων ιστοτόπων με την υψηλότερη επισκεψιμότητα [32]. H jquery αποτελεί λογισμικό ανοικτού κώδικα, υποκείμενο στην MIT License. Ο σκοπός της jquery είναι να καταστήσει ευκολότερη τη χρήση δεσμών ενεργειών της JavaScript. Περικλείει συνήθεις εργασίες, που απαιτούν πολλές γραμμές JavaScript, απλοποιώντας τις σε μεθόδους που μπορούν να κληθούν με μία μόνο γραμμή κώδικα. H βιβλιοθήκη jquery διευκολύνει τη διαχείριση της HTML/DOM, των CSS, των κλήσεων Ajax, γεγονότων, πρόσθετων εργαλείων καθώς και την προσθήκη εφέ και κινούμενων γραφικών. 17

34 Η jquery παρέχει, επίσης, τη δυνατότητα στους προγραμματιστές για δημιουργία πρόσθετων με βάση τη βιβλιοθήκη JavaScript. Αυτό επιτρέπει τη δημιουργία επίπεδων αφαίρεσης (abstractions) για χαμηλού επιπέδου διαδραστικότητα και κινούμενα γραφικά, προηγμένων εφέ και υψηλού επιπέδου παραμετροποιήσιμων θεματικών γραφικών στοιχείων (widgets). Η αρθρωτή προσέγγιση της βιβλιοθήκης jquery επιτρέπει τη δημιουργία δυναμικών ιστοσελίδων και εφαρμογών Ιστού. H jquery είναι επεκτάσιμη καθώς νέα γεγονότα, στοιχεία και μέθοδοι μπορούν εύκολα να προστεθούν και στη συνέχεια να επαναχρησιμοποιηθούν ως πρόσθετα. Ακόμα, σημαντικό πλεονέκτημά της είναι και η εξάλειψη των ασυμβατοτήτων μεταξύ των προγραμμάτων περιήγησης. Οι διαφορές μεταξύ των μηχανών JavaScript στα διάφορα προγράμματα περιήγησης είχαν ως αποτέλεσμα κώδικας που λειτουργούσε σε ένα πρόγραμμα, πιθανά να μην λειτουργούσε σε άλλο. Όπως και άλλα εργαλεία JavaScript, η jquery χειρίζεται όλες αυτές τις ασυνέπειες και παρέχει μία ενιαία διεπαφή. Το σημαντικότερο ωστόσο πλεονέκτημα της jquery, είναι ο διαχωρισμός της JavaScript και της HTML. Η βιβλιοθήκη jquery παρέχει απλή σύνταξη για την προσθήκη των event handlers στο DOM χρησιμοποιώντας JavaScript αντί να προσθέτει HTML event attributes και να καλεί λειτουργίες JavaScript. Συνεπώς, ενθαρρύνει τους προγραμματιστές να διαχωρίσουν εντελώς τον κώδικα JavaScript από την HTML σήμανση. SQL Η Δομημένη Γλώσσα Ερωτημάτων SQL (Structured Query Language) είναι μία ειδικού σκοπού γλώσσα προγραμματισμού σχεδιασμένη για τη διαχείριση δεδομένων αποθηκευμένων σε ένα Σύστημα Διαχείρισης Σχεσιακής Βάσης Δεδομένων (Relational Database Management System, RDBMS) ή για επεξεργασία ροής σε ένα Σύστημα Διαχείρισης Ροής Σχεσιακών Δεδομένων (Relational Data Stream Management System, RDSMS). Το RDBMS είναι η βάση για την SQL και για όλα τα σύγχρονα συστήματα βάσεων δεδομένων όπως Microsoft SQL Server (Microsoft Corporation, Redmond, WA), IBM DB2 (International Business Machines Corporation, Armonk, NY), Oracle MySQL (Oracle Corporation, Redwood City, CA) και Microsoft Access (Microsoft Corporation, Redmond, WA). Τα δεδομένα στα συστήματα RDBM αποθηκεύονται σε αντικείμενα βάσεων δεδομένων ονομαζόμενα πίνακες. Ένας πίνακας είναι μία συλλογή από σχετιζόμενες καταχωρήσεις και αποτελείται από στήλες και γραμμές. Η SQL αποτελεί πρότυπο ANSI (American National Standards Institute, DC) και είναι η καθιερωμένη γλώσσα για πρόσβαση και διαχείριση βάσεων δεδομένων. 18

35 Η SQL μπορεί να εκτελεί ερωτήματα σε μία βάση δεδομένων, να ανακτά δεδομένα, να εισάγει, να ενημερώνει ή/και να διαγράφει εγγραφές, να δημιουργεί πίνακες, αποθηκευμένες διαδικασίες και προβολές, να ορίζει δικαιώματα σε πίνακες, διαδικασίες και προβολές καθώς και να δημιουργεί νέες βάσεις δεδομένων. Περισσότερα γλωσσικά χαρακτηριστικά της SQL καθώς και παραδείγματα χρήσης της περιγράφονται στο ΠΑΡΑΡΤΗΜΑ Δ. Παρά την προτυποποίηση κατά ANSI, υπάρχουν διάφορες εκδόσεις της γλώσσας SQL. Η προτυποποίησή τους κατά ANSI, εξασφαλίζει την ελάχιστη συμβατότητα με την υποστήριξη τουλάχιστον των κύριων εντολών (όπως SELECT, UPDATE, DELETE, INSERT, WHERE) με έναν παρόμοιο τρόπο. Τα περισσότερα προγράμματα βάσεων δεδομένων SQL έχουν πρόσθετα τις δικές τους ιδιοταγείς επεκτάσεις επιπλέον του προτύπου SQL. Για να δημιουργηθεί ένας ιστότοπος που εμφανίζει δεδομένα από μία βάση δεδομένων, χρειάζονται ένα πρόγραμμα βάσης δεδομένων RDBMS (π.χ. MS Access, SQL Server, MySQL), μία σεναριογλώσσα της πλευράς του διακομιστή όπως PHP ή ASP, η SQL για την άντληση των δεδομένων που χρειάζονται και ένα σύστημα αρχείων HTML / CSS. Βασισμένη στη σχεσιακή άλγεβρα, η SQL αποτελείται από μία γλώσσα ορισμού δεδομένων, μία γλώσσα χειρισμού δεδομένων και μία γλώσσα ελέγχου των δεδομένων. Τα πεδία εφαρμογής της SQL περιλαμβάνουν την εισαγωγή, εξέταση, ενημέρωση και διαγραφή δεδομένων, τη δημιουργία δομής καταλόγου και τροποποίηση αυτής καθώς και τον έλεγχο πρόσβασης δεδομένων. Αν και η SQL συχνά αναφέρεται ως μία περιγραφική γλώσσα (4GL), περιλαμβάνει, επίσης, και στοιχεία διαδικαστικού (procedural) προγραμματισμού. Ιστορία Η SQL ήταν μία από τις πρώτες εμπορικές γλώσσες για το σχεσιακό μοντέλο του Edgar Codd, όπως αυτό περιγράφηκε το 1970 στη δημοσίευση «A Relational Model of Data for Large Shared Data Banks» [33]. Αρχικά, αναπτύχθηκε στην IBM από τον Donald Chamberlin και τον Raymond Βoyce στις αρχές της δεκαετίας του 1970 [34]. Η αρχική έκδοση, ονομαζόμενη SEQUEL (Structured English QUEry Language), σχεδιάστηκε για να χειρίζεται και να ανακτά δεδομένα αποθηκευμένα στο σύστημα ψευδοσχεσιακής βάσης δεδομένων «System R», το οποίο αναπτύχθηκε τη δεκαετία του 1970 στο εργαστήριο San Jose της IBM [35]. Το ακρωνύμιο SEQUEL άλλαξε αργότερα σε SQL καθώς το SEQUEL ήταν σήμα κατατεθέν από τη βρετανική εταιρία αεροσκαφών Hawker Siddeley. 19

36 Στα τέλη της δεκαετίας του 1970, η Relational Software, Inc. (σήμερα Oracle Corporation), βασιζόμενη στην ιδέα του Edgar Codd και της υλοποίησής της από τους Chamberlin και Boyce, ανέπτυξε το δικό της σύστημα RDBM βασιζόμενο σε SQL. Η πρώτη εμπορικά διαθέσιμη υλοποίηση, τον Ιούνιο του 1979, ήταν η Oracle V2 για υπολογιστές VAX [36]. Κατόπιν δοκιμής της SQL σε επίπεδο πελάτη, ώστε να προσδιοριστεί η χρησιμότητα και η πρακτικότητα του συστήματος, η IBM ξεκίνησε την ανάπτυξη εμπορικών προϊόντων βασισμένων στο δικό τους πρωτότυπο «System R» συμπεριλαμβανομένων των «System/38», «SQL/DS» και «DB2», διαθέσιμα εμπορικά το 1979, 1981 και 1983 αντίστοιχα. Η SQL έγινε πρότυπο ANSI το 1986 και ISO (International Organization for Standardization) το Από τότε το πρότυπο έχει αναθεωρηθεί για να περιλάβει ένα μεγαλύτερο σύνολο λειτουργιών [37]. Παρά την ύπαρξη ωστόσο των προτύπων μεγάλο μέρος του κώδικα SQL δεν είναι συμβατό στο σύνολο των διαφορετικών συστημάτων βάσεων δεδομένων χωρίς τροποποιήσεις. PHP Η PHP (PHP Group), είναι το ακρωνύμιο του «PHP Hypertext Preprocessor». Αποτελεί μία γενικής χρήσης σεναριογλώσσα (scripting language), η οποία είναι κατάλληλη για ανάπτυξη εφαρμογών Ιστού στην πλευρά του διακομιστή. Η PHP αρχικά αποτελούσε ακρωνύμιο του «Personal Home Page». Η υλοποίηση αναφοράς είναι έργο της PHP Group. Ένα αρχείο PHP έχει επέκταση «.php» και μπορεί να περιέχει HTML, CSS, JavaScript και κώδικα PHP. Ο κώδικας του αρχείου εκτελείται στον διακομιστή και το αποτέλεσμα επιστρέφεται στο πρόγραμμα περιήγησης ως απλή HTML. Η βασική σύνταξη της PHP αποδίδεται στο ΠΑΡΑΡΤΗΜΑ Ε. Σημαντικές δυνατότητες της PHP είναι η δημιουργία δυναμικού περιεχομένου ιστοσελίδων, η δημιουργία, επεξεργασία ή/και διαγραφή αρχείων στον διακομιστή, η συλλογή δεδομένων που εισάγονται σε φόρμες, η προσθήκη, τροποποίηση, διαγραφή ή/και κρυπτογράφηση δεδομένων στη βάση δεδομένων, ο έλεγχος πρόσβασης, καθώς και η αποστολή και λήψη cookies. Η PHP δεν περιορίζεται στην εξαγωγή HTML. Μπορεί, επίσης, να εξάγει κείμενο σε οποιαδήποτε μορφή, όπως XHTML και XML. Πρόσθετα, επεκτείνεται στην εξαγωγή αρχείων PDF, εικόνων, ακόμη και ταινιών Flash. Μάλιστα, η PHP έχει τη δυνατότητα δημιουργίας και αποθήκευσης των παραπάνω αρχείων στη μνήμη cache του διακομιστή για δυναμικό περιεχόμενο. 20

37 Τα σενάρια γραμμένα σε PHP χρησιμοποιούνται σε τρεις κυρίως τομείς. Ο πρώτος τομέας αφορά σενάρια στην πλευρά του διακομιστή και αποτελεί τον παλαιότερο και κύριο τομέα για την PHP. Για την λειτουργία του απαιτούνται τρία στοιχεία: ο PHP parser (συντακτικός αναλυτής), ένας διακομιστής Ιστού, και ένα πρόγραμμα περιήγησης Ιστού. Ο δεύτερος τομέας αφορά σενάρια στη γραμμή εντολών. Σε αυτόν τον τομέα, ένα σενάριο PHP μπορεί να εκτελεστεί χωρίς κανέναν διακομιστή ή πρόγραμμα περιήγησης. Απαιτείται μόνο ο PHP parser. Αυτός ο τύπος χρήσης είναι ιδανικός για σενάρια εκτελούμενα χρησιμοποιώντας το cron (στα συστήματα βασισμένα στο Unix) και τον Task Scheduler (στα συστήματα βασισμένα στα Windows). Tα σενάρια αυτά μπορούν επίσης να χρησιμοποιηθούν για απλές ενέργειες επεξεργασίας κειμένου. Ο τρίτος τομέας αφορά στη συγγραφή εφαρμογών υπολογιστή. Με τη χρήση της PHP-GTK (PHP-GTK Team) είναι εφικτή η ανάπτυξη τοπικών εφαρμογών υπολογιστή, αν και η PHP δεν αποτελεί την πιο δημοφιλή επιλογή για τέτοιες εφαρμογές. Πρόσθετα, ο κώδικας PHP μπορεί να ενσωματωθεί στον κώδικα HTML ή να χρησιμοποιηθεί σε συνδυασμό με διάφορα συστήματα προτύπων για τον Iστό, συστήματα διαχείρισης περιεχομένου και πλαίσια λογισμικού. Ο κώδικας PHP, συνήθως, επεξεργάζεται από έναν διερμηνευτή PHP, υλοποιημένου ως πρόσθετο στοιχείο σε έναν διακομιστή ή ως ένα εκτελέσιμο CGI (Common Gateway Interface). Ο διακομιστής συνδυάζει τα αποτελέσματα του διερμηνευμένου και εκτελεσμένου κώδικα της PHP. Ο κώδικας PHP μπορεί, επίσης, να εκτελεστεί με μία διεπαφή γραμμής εντολών και να χρησιμοποιηθεί για να υλοποιήσει αυτόνομες γραφικές εφαρμογές. Υποστηρίζει, ακόμα, την επικοινωνία με άλλες υπηρεσίες χρησιμοποιώντας πρωτόκολλα όπως LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM κ.α. Επίσης, υποστηρίζει πολύπλοκες μεταφορές δεδομένων μεταξύ σχεδόν όλων των γλωσσών προγραμματισμού του Ιστού. Πρόσθετα στις προηγούμενες δυνατότητές της, η δημοφιλία της PHP οφείλεται στην ικανότητά της να τρέχει σε διάφορες πλατφόρμες (Windows, Linux, Mac OS κ.α.) και στη συμβατότητά της με τη συντριπτική πλειοψηφία των σύγχρονων διακομιστών (Apache, IIS κ.α.). Εξάλλου, υποστηρίζει ένα μεγάλο εύρος βάσεων δεδομένων, είναι εύκολη στην εκμάθησή της και τρέχει αποδοτικά στη πλευρά του διακομιστή με χρήση είτε διαδικασιακού προγραμματισμού είτε αντικειμενοστραφούς προγραμματισμού ή με μίξη αυτών. Η PHP διαμορφώνεται από μία ομάδα ανάπτυξης που περιλαμβάνει πλήθος προγραμματιστών, καθώς και από ένα σύνολο προγραμματιστών που εργάζονται στην τεκμηρίωσή της και σε σχετιζόμενα με την PHP έργα, όπως PEAR, PECL, κ.α. Επιπλέον, περιλαμβάνει ένα δίκτυο περισσότερων από εκατό ανεξάρτητων διακομιστών παγκοσμίως. 21

38 Σήμερα, η συντριπτική πλειοψηφία των ιστοτόπων του Ιστού είναι κατασκευασμένη με PHP, γεγονός που καταδεικνύεται στις εικόνα 3 και εικόνα 4. Εικόνα 3. Η χρήση των γλωσσών προγραμματισμού της πλευράς του διακομιστή για ιστοτόπους. Αναπαραγωγή εικόνας από W3Techs, Q-Success ( Q-Success). Εικόνα 4. Ποσοστά ιστοτόπων και των γλωσσών προγραμματισμού πλευράς διακομιστή που χρησιμοποιούν, κατανεμημένα σε κατηγορίες δημοφιλίας (επισκεψιμότητας) ιστοτόπων. Αναπαραγωγή εικόνας από W3Techs, Q- Success ( Q-Success). 22

39 Ιστορία Η PHP στη σημερινή μορφή της αποτελεί τη συνέχεια ενός πρώιμου προϊόντος ονομαζόμενου PHP/FI. Δημιουργήθηκε το 1994 από τον Rasmus Lerdorf ως ένα απλό σύνολο CGI (Common Gateway Interface) πηγών γραμμένων στη γλώσσα προγραμματισμού C [38]. Αρχικός σκοπός της δημιουργίας του ήταν η παρακολούθηση των επισκέψεων στο αναρτημένο στο διαδίκτυο βιογραφικό του και το ονόμασε «Pesonal Home Page Tools». Αναζητώντας περισσότερη λειτουργικότητα, ο Lerdorf ανέπτυξε εκ νέου το «PHP Tools» με την προσθήκη διασύνδεσης με βάσεις, παρέχοντας ένα πλαίσιο ανάπτυξης απλών δυναμικών εφαρμογών Ιστού, όπως βιβλία επισκεπτών. Τον Ιούνιο του 1995, ο Lerdorf δημοσιοποίησε τον πηγαίο κώδικα, επιτρέποντας στους προγραμματιστές να τον χρησιμοποιήσουν κατά την κρίση τους. Έτσι, ενθάρρυνε τους χρήστες να παρέχουν προτάσεις βελτίωσης του κώδικα. Τον Σεπτέμβριο του ίδιου χρόνου ο Rasmus επέκτεινε τα «PHP Tools» υπό τη νέα ονομασία «FI» (Forms Interpreter), προσθέτοντας μεταβλητές τύπου Perl, αυτόματη διερμήνευση των μεταβλητών σε φόρμες και ενσωμάτωση της σύνταξης HTML. Η σύνταξη ήταν παραπλήσια της Perl αλλά πιο περιορισμένη. Τον Οκτώβριο του 1995, ο Lerdorf κυκλοφόρησε μία συνολική ανασύνταξη του κώδικα, η οποία ήταν η πρώτη έκδοση μίας προχωρημένης διεπαφής σεναριογλώσσας, επιστρέφοντας στο αρχικό όνομα «Personal Home Page Construction Kit». Η γλώσσα σχεδιάστηκε εσκεμμένα έτσι ώστε να αναπαριστά τη δομή της C, καθιστώντας την οικεία σε προγραμματιστές με εμπειρία στην C, την Perl και άλλες παρόμοιες γλώσσες. Η μετάβαση για την PHP από ένα σύνολο εργαλείων σε μία αυτούσια γλώσσα προγραμματισμού πραγματοποιήθηκε με τη δεύτερης γενιάς υλοποίηση, το 1996, με τη συνδυαστική ονομασία «PHP/FI». Η PHP/FI περιλάμβανε ενσωματωμένη υποστήριξη για DBM, msql, και Postgres95 βάσεις δεδομένων, cookies, υποστήριξη για συναρτήσεις οριζόμενες από τον χρήστη κ.α. Στα τέλη της επόμενης χρονιάς, κυκλοφόρησε η έκδοση 2.0 της «PHP/FI». Παρά τη μικρή διάρκεια ζωής της, η PHP/FI αύξανε συνεχώς τη δημοφιλία της έχοντας δημιουργήσει το 1998 μία κοινότητα χιλιάδων ήδη χρηστών [38]. Την περίοδο εκείνη, η PHP αντιστοιχούσε στο 1% όλων των domains του διαδικτύου. Παρά τους εντυπωσιακούς αριθμούς, η ωρίμανση της PHP/FI ήταν περιορισμένη, αφού η ανάπτυξή της στηρίζονταν, κύρια, στον Lerdorf. 23

40 PHP 3 Η PHP 3.0 ήταν η πρώτη έκδοση που προσομοίαζε τη σημερινή PHP. Στο πλαίσιο μίας εργασίας ανάπτυξης εφαρμογής ηλεκτρονικού εμπορίου, το 1997, οι Andi Gutmans και Zeev Suraski επιχείρησαν μία συνολική ανασύνταξη του υποκείμενου συντακτικού αναλυτή (PHP parser) προς αναβάθμιση της λειτουργικότητας της PHP/FI. Στην προσπάθειά τους αυτή συνεργάστηκαν με τον Lerdorf στην ανάπτυξη μίας νέας ανεξάρτητης γλώσσας προγραμματισμού. Η νέα γλώσσα κυκλοφόρησε υπό την ονομασία PHP ως ακρωνύμιο του PHP Hypertext Preprocessor, διατηρώντας την αναφορά στις προηγούμενες PHP εκδόσεις αποβάλλοντας, παράλληλα, τον προσωπικό χαρακτήρα της προηγούμενης ονομασίας. Ένα από τα πιο σημαντικά στοιχεία της PHP 3.0 ήταν τα χαρακτηριστικά επεκτασιμότητας. Πρόσθετα στη δυνατότητα για διασύνδεση σε πολλαπλές βάσεις δεδομένων, πρωτόκολλα και API, η ευκολία της επέκτασης της γλώσσας προσέλκυσε πλήθος προγραμματιστών που υπέβαλλαν μία πληθώρα πρόσθετων. Ακόμα, βασικά χαρακτηριστικά που εισήγαγε η PHP 3.0 ήταν η υποστήριξη για αντικειμενοστραφή προγραμματισμό και ισχυρότερη και συνεπέστερη σύνταξη. Το 1998, με τη συμμετοχή ενός διευρυμένου αριθμού προγραμματιστών, η PHP 3.0 ανακοινώθηκε ως η επίσημη συνέχεια της PHP/FI 2.0. Στο μέγιστο, η PHP 3.0 ήταν πλέον εγκατεστημένη στο 10% των εξυπηρετητών του Ιστού. PHP 4 Στη συνέχεια της PHP 3.0, οι Gutmans και Suraski ξεκίνησαν να εργάζονται στην επανεγγραφή του πυρήνα της PHP. Ο σχεδιαστικός στόχος ήταν να βελτιώσουν την βάση κώδικα της PHP και την απόδοση πολύπλοκων εφαρμογών, δυνατότητα που εισήγαγε η PHP 3.0. Η νέα μηχανή ονομάστηκε «Zend Engine» (από τα ονόματα των δημιουργών της, Zeev και Andi) και κυκλοφόρησε επίσημα το 2000 στην έκδοση PHP 4.0, συνοδευόμενη από μία εκτεταμένη ποικιλία πρόσθετων χαρακτηριστικών. Η PHP 4.0 περιλάμβανε νέες δυνατότητες όπως υποστήριξη για πολύ περισσότερους διακομιστές, HTTP συνεδρίες, ρυθμιστές εξόδου και πιο ασφαλείς μεθόδους χειρισμού των εισαγωγών του χρήστη καθώς και αρκετές νέες γλωσσικές δομές. PHP 5 Η PHP 5 κυκλοφόρησε τον Ιούλιο του 2004 μετά από μακρά περίοδο ανάπτυξης και αρκετές δοκιμαστικές εκδόσεις. Το κύριο χαρακτηριστικό της ήταν η αναβάθμιση του πυρήνα της 24

41 στην έκδοση Zend Engine 2.0, την οποία πλαισίωνε η προσθήκη νέων χαρακτηριστικών. Η PHP 5 έλαβε μικτές κριτικές εξαιτίας της έλλειψης εγγενούς υποστήριξης Unicode στον πυρήνα της γλώσσας. Το 2005, εργασία καθοδηγούμενη από τον Andrei Zmievski σκόπευε να προσθέσει υποστήριξη Unicode στο σύνολο της PHP με την ενσωμάτωση της βιβλιοθήκη ICU (International Components for Unicode). Η έκδοση αυτή προοριζόταν να αποτελέσει την PHP έκδοση 6.0, η οποία τελικά δεν κυκλοφόρησε λόγω των προβλημάτων απόδοσης που εμφάνιζε. PHP 7 Πρόσφατα, το 2015 αναπτύχθηκε και κυκλοφόρησε η τρέχουσα έκδοση της PHP, PHP 7. Η αρίθμηση αυτής της έκδοσης υπήρξε θέμα αντιπαράθεσης. Παρά το γεγονός ότι ουδέποτε υπήρξε επίσημη κυκλοφορία μίας ολοκληρωμένης έκδοσης ως PHP 6, η ονομασία αναφέρονταν συχνά στη σχετική βιβλιογραφία. Για την αποφυγή σύγχυσης μεταξύ των δύο φάσεων ανάπτυξης της PHP και των τελικών εκδόσεων, επιλέχθηκε η ονομασία PHP 7. Τη βάση για την ολοκλήρωση της PHP 7 αποτέλεσε η έκδοση PHP next generation (phpng) που αναπτύχθηκε από τους Dimitry Stogov, Xinchen Hui και Nikita Popov και στόχευε στην βελτίωση της απόδοσης της PHP. Η ονομαζόμενη Zend Engine 3 διατηρεί σχεδόν πλήρη συμβατότητα με την Zend Engine 2 ενώ αναμένεται να βελτιώσει περαιτέρω τη μελλοντική απόδοση της PHP. Η PHP 7, επίσης, περιέλαβε μεταξύ άλλων νέα γλωσσικά χαρακτηριστικά. Εισήγαγε, κύρια, δήλωση του τύπου επιστροφής για τις συναρτήσεις, που συμπλήρωνε τις υπάρχουσες δηλώσεις τύπου παραμέτρων, και υποστήριξη για τους ανυσματικούς τύπους (integer, float, string και boolean) σε δηλώσεις τύπου επιστροφής και παραμέτρων. Η εισαγωγή, όμως, πρόσθετων βελτιώσεων στην έκδοση της PHP 7 διέκοψε τη συμβατότητά της με προηγούμενες εκδόσεις, όπως, άλλωστε, προβλέπεται στις κύριες εκδόσεις της PHP. Συστήματα Διαχείρισης Περιεχομένου Ιστού Ένα Σύστημα Διαχείρισης Περιεχομένου Ιστού (Web Content Management System, WCMS) είναι ένα σύστημα λογισμικού που παρέχει τη δυνατότητα για εισαγωγή περιεχομένου σε μία ιστοσελίδα, συνεργασία μεταξύ χρηστών για τη δημοσίευση περιεχομένου και διαχειριστικά εργαλεία που επιτρέπουν σε κάποιον με μικρή προγραμματιστική εμπειρία να δημιουργήσει και να διαχειριστεί το περιεχόμενο με σχετική ευκολία. Ένα ισχυρό WCMS παρέχει τη βάση για σύνθεση διαδικτυακού περιεχομένου από πολλούς χρήστες, προσφέροντας τους έτσι τη δυνατότητα συνεργασίας και συνδιαμόρφωσης του παραγόμενου περιεχομένου [39]. Τα WCMS, συνήθως, χρησιμοποιούν μία βάση δεδομένων 25

42 για να αποθηκεύουν το περιεχόμενο της σελίδας, μεταδεδομένα και άλλες πληροφορίες που ενδέχεται να χρειαστούν από το σύστημα. Τα περισσότερα συστήματα χρησιμοποιούν μία τεχνική προσωρινής αποθήκευσης ιστοσελίδων στην πλευρά του διακομιστή (server-side caching) με στόχο την βελτίωση της απόκρισης του ιστοτόπου. Συνήθως, παρεμβάλλεται ένα επίπεδο παρουσίασης (template engine) που είναι υπεύθυνο για την εμφάνιση του περιεχομένου στην ιστοσελίδα με βάση ένα σύνολο προτύπων. Η διαχείριση των ιστοτόπων αυτών συνήθως γίνεται διαμέσου γραφικών διεπαφών χρήστη. Ένα WCMS επιτρέπει σε μη εξειδικευμένους χρήστες να κάνουν αλλαγές σε μία ιστοσελίδα. Τυπικά, απαιτείται ένα διαχειριστής του συστήματος ή/και ένας προγραμματιστής, που να προσθέτει και να ρυθμίζει νέες λειτουργίες. Ωστόσο, με τη βοήθεια ενός WCMS, η συντήρηση ενός σχετικά απλού ιστοτόπου, μπορεί να πραγματοποιηθεί και από μη εξειδικευμένο προσωπικό. Πλεονεκτήματα Ένα WCMS χρησιμοποιείται για να ελέγξει μία δυναμική συλλογή από υλικό Ιστού, συμπεριλαμβανομένων HTML αρχείων, εγγράφων, εικόνων και άλλες μορφές αρχείων. H χρησιμότητα ενός WCMS γίνεται καλύτερα αντιληπτή αν αναλογιστεί κανείς τη δυσκολία ανάπτυξης και συντήρησης ενός σύνθετου ιστοτόπου με την χρήση στατικών ιστοσελίδων. Για σχετικά μικρούς ιστοτόπους, η χρήση στατικών ιστοσελίδων μπορεί να παραμένει αποδοτική και ασφαλής, καθώς όμως ένας ιστότοπος απαιτεί αυξημένη ποσότητα και πολυπλοκότητα περιεχομένου και αυξημένο αριθμό χρηστών, τότε η χρήση ενός WCMS είναι επιβεβλημένη. Οι πολλοί χρήστες, η συνεργασία μεταξύ χρηστών, η ανάγκη εξειδικευμένου προσωπικού για την προσθήκη νέων στοιχείων, η δημιουργία νέων σελίδων και νέων μορφοποιήσεων για αυτές τις σελίδες, και η ασφάλεια του ιστοτόπου αποτελούν ζητήματα που καλούνται να αντιμετωπίσουν τα WCMS. Τα WCMS προσφέρουν ένα πλήθος έτοιμων λειτουργιών εξοικονομώντας χρήμα και χρόνο κατά την ανάπτυξη ενός ιστοτόπου. Επίσης, συνήθως, περιλαμβάνουν πρόσθετα κομμάτια κώδικα που μπορούν να εγκατασταθούν σε απώτερο χρόνο για να ενεργοποιηθούν πρόσθετες λειτουργίες. Παράδειγμα λειτουργιών που επιτυγχάνονται με πρόσθετα στοιχεία είναι η πολυγλωσσική υποστήριξη του ιστοτόπου, η διάθεση του περιεχομένου του ιστοτόπου μέσω RSS feeds για χρήση από κάποιον άλλο ιστότοπο ή/και η ρύθμιση της αποστολής ως ανταπόκριση σε κάποια συγκεκριμένη ενέργεια. Όσον αφορά στον έλεγχο περιεχομένου και χρηστών, τα WCMS μεταφέρουν τον άμεσο έλεγχο του περιεχομένου στους ίδιους τους αρμόδιους του περιεχομένου χωρίς την εμπλοκή του Web Developer. Η εισαγωγή περιεχομένου διευκολύνεται με WYSISWG («What You See 26

43 Is What You Get») κειμενογράφους. Πρόσθετα, δίνεται η επιλογή για δημοσίευση ή άρση δημοσίευσης του περιεχομένου, επεξεργασία ή αντιγραφή του. Ακόμα, στο πλαίσιο συνεργασίας των χρηστών, τα συστήματα, συνήθως, υποστηρίζουν τον έλεγχο του συνόλου των αναθεωρήσεων του περιεχομένου. Με κατάλληλη ρύθμιση, με τη βοήθεια του διαχειριστικού περιβάλλοντος των WCMS, μπορούν να θεσπιστούν μία σειρά κανόνων, με σκοπό τον έλεγχο στην εισαγωγή περιεχομένου ή/και την επίτευξη ενδεχόμενων στόχων διαδικτυακής προσβασιμότητας [40]. Τελικά, το περιεχόμενο προστίθεται σε έναν ιστότοπο πιο γρήγορα και αποδοτικά και το εξειδικευμένο τεχνικό προσωπικό εξοικονομεί χρόνο και εστιάζει σε τεχνικά πιο απαιτητικά ζητήματα. Στην ίδια κατεύθυνση, τα WCMS επιτρέπουν τον διαμοιρασμό της συγγραφικής δραστηριότητας αλλά και των επιμέρους ρυθμίσεων του ιστοτόπου σε διαφορετικά άτομα ή τμήματα. Αυτό επιτυγχάνεται με τον έλεγχο δικαιωμάτων και τον καταμερισμό ρόλων σε χρήστες (editor, administrator κ.α.). Ο καταμερισμός αυτός προσδιορίζει το πλαίσιο των αλληλεπιδράσεων των χρηστών με τον ιστότοπο. Επίσης, τα WCMS προσφέρουν σε άλλοτε άλλο βαθμό προστασία των δεδομένων και πληροφοριών των χρηστών. Οι αισθητικές αλλαγές μπορούν να γίνονται ταυτόχρονα με την εισαγωγή περιεχομένου και οι αλλαγές στην οπτικοποίησή του μπορεί να αφορούν ταυτόχρονα σε πολλές σελίδες, ώστε να διατηρείται ένα ομοιογενές περιβάλλον ανεξαρτήτως των χρηστών που εμπλέκονται στην προσθήκη περιεχομένου. Η χρήση αυτοματοποιημένων προτύπων εμφάνισης, που μπορούν να εφαρμοστούν σε υπάρχον ή νέο περιεχόμενο, επιτρέπει την αλλαγή εμφάνισης του ιστοτόπου από ένα κεντρικό σημείο. Το περιεχόμενο, που αποθηκεύεται σε βάσεις δεδομένων, είναι αποκομμένο από τη στυλιστική εμφάνιση του ιστοτόπου. Ένα επιπλέον πλεονέκτημα των WCMS είναι ότι για τη διαχείριση του ιστοτόπου δεν απαιτείται πρόσθετο λογισμικό, παρά μόνο πρόσβαση στον Ιστό. Στα πιο σύγχρονα WCMS υπάρχει η δυνατότητα μίας εγκατάστασης τους σε έναν διακομιστή για την ταυτόχρονη εξυπηρέτηση πολλών ιστοτόπων ή μικρο-ιστοτόπων μέσα σε έναν κύριο ιστότοπο. Τα δημοφιλή WCMS συνήθως επιδέχονται ανανεώσεων έκδοσης λογισμικού που περιλαμβάνουν νέες λειτουργίες, διόρθωση προβλημάτων, ρυθμίσεις ασφαλείας και είναι σύμφωνες με τα τρέχοντα πρότυπα Ιστού για την αποτροπή των συνηθέστερων επιθέσεων [41]. Τέλος, σημαντικό πλεονέκτημα των περισσότερων WCMS είναι η ρύθμιση κανόνων και η ενσωμάτωση εργαλείων βελτιστοποίησης για μηχανές αναζήτησης [42]. 27

44 Μειονεκτήματα Παρά την ευκολία στη χρήση και στην παραμετροποίηση, τη διαχείριση της ροής εργασιών, τη δυνατότητα εύκολης εφαρμογής νέων λειτουργιών και το χαμηλό κόστος τους, τα WCMS παρουσιάζουν ορισμένα μειονεκτήματα που σε συγκεκριμένες περιπτώσεις αποδεικνύονται κρίσιμα [43]. Τα WCMS απαιτούν ένα υψηλό επίπεδο δέσμευσης. Η δέσμευση αυτή αφορά τόσο στην οικονομική επένδυση κατά την προεπιλογή ενός συγκεκριμένου συστήματος για την ανάπτυξη του έργου, όσο στο κόστος για την κατάρτιση του προσωπικού, όσο και στο κόστος για την εισαγωγή περιεχομένου του στο σύστημα. Η δέσμευση γίνεται μεγαλύτερη όσο αυξάνεται η ποσότητα του περιεχομένου, αφού η μεταφορά του σε άλλο σύστημα είναι δύσκολη και δαπανηρή. Συνεπώς, σημαντική είναι η αρχική επιλογή του κατάλληλου συστήματος για τη μείωση του συνολικού κόστους και τη βιωσιμότητά του στο χρόνο. Η εφαρμογή των WCMS σε μεγάλης κλίμακας ιστοτόπους έχει ένα σημαντικό κόστος υλοποίησης. Ο σχεδιασμός της αρχιτεκτονικής της πληροφορίας του ιστοτόπου, η εκπαίδευση του προσωπικού για την εισαγωγή περιεχομένου και η διαχείριση του ιστοτόπου από το εξειδικευμένο τεχνικό προσωπικό έχουν αθροιστικό κόστος στο τελικό προϊόν. Ιδιαίτερα σημαντικό είναι το κόστος της εκπαίδευσης των χρηστών. Ανεξαρτήτως της ποιότητας σχεδίασης και της τεκμηρίωσης των WCMS, απαραίτητη είναι η άλλοτε άλλου βαθμού εκπαίδευση του συνόλου των χρηστών. Με την αύξηση της πολυπλοκότητας των WCMS μεταβάλλεται αντίστοιχα και η καμπύλη εκμάθησης με παράλληλη αύξηση του κόστους. Επιπρόσθετα, το κόστος αυξάνεται ακόμα περισσότερο σε συνάρτηση με τον αριθμό των εμπλεκόμενων χρηστών και με την προσθήκη νέων χρηστών στον ιστότοπο. Η αύξηση του αριθμού των χρηστών συνεπάγεται, πρόσθετα, και αυξημένο κίνδυνο για μείωση της ποιότητας του προϊόντος. Η συνήθης πρακτική σε μεγάλης έκτασης έργα είναι η ενσωμάτωση ελέγχου στην εισαγωγή νέου περιεχομένου. Με αυτήν την πρακτική, η προσθήκη περιεχομένου από έναν χρήστη δεν δημοσιεύεται άμεσα αλλά υπόκειται σε κεντρικό έλεγχο ώστε να διασφαλίζεται η ποιότητα και ομοιογένεια του ιστοτόπου. Σε συστήματα WCMS που δεν ενσωματώνουν διαδικασίες έγκρισης ή στην περίπτωση που οι διαδικασίες παρακάμπτονται (για αποφυγή του πρόσθετου κόστους σε όρους χρόνου) παρατηρείται συσσώρευση προβλημάτων ποιότητας. Πρόσθετο κόστος αποτελεί και η συντήρηση των WCMS, η οποία περιλαμβάνει ανανεώσεις λογισμικού, αναβαθμίσεις εκδόσεων, διορθώσεις ασφαλείας (security patches) καθώς και συντήρηση hardware. Τα μεγάλα WCMS μπορούν να οδηγήσουν σε καθυστερήσεις στην 28

45 παράδοση του περιεχομένου, στην περίπτωση που το hardware στο οποίο εγκαθίστανται ή/και το software των WCMS δεν είναι επικαιροποιημένα και σωστά ρυθμισμένα. Για την αποφυγή τέτοιων καταστάσεων, θα πρέπει ο χρήστης να είναι εναρμονισμένος με τις προτεινόμενες πρακτικές του εκάστοτε WCMS. Βέβαια, η ανάγκη συντήρησης των WCMS αφορά κύρια στην ασφάλεια των συστημάτων. Στην περίπτωση που οι διαδικασίες αυτές παραλείπονται, ένας κακόβουλος χρήστης μπορεί να εκμεταλλευτεί τα κενά ασφαλείας που η απουσία των ενημερώσεων δημιουργεί και να εισέλθει σε ένα σύστημα που διαφορετικά θα ήταν ασφαλές [44]. Είναι γεγονός ότι η αποδοχή ενός συγκεκριμένου WCMS αναγκάζει τον χρήστη στην τήρηση συγκεκριμένων κανόνων και την αξιοποίηση συγκεκριμένων λειτουργικών στοιχείων του. Παρά τη συνήθως μεγάλη λειτουργικότητά τους και την παροχή επεκτάσεων της λειτουργικότητας αυτής, σε ορισμένες περιπτώσεις ο χρήστης μπορεί να αναγκαστεί σε κάποια τροποποίηση του αρχικού σχεδιασμού. Στη περίπτωση που η ανάπτυξη κώδικα για την επιθυμητή λειτουργικότητα κρίνεται απαραίτητη, αυτή γίνεται σύμφωνα με τους περιορισμούς που θέτει το εκάστοτε WCMS. Πρόσθετα μπορεί να αντιμετωπίσει προβλήματα ένταξης λειτουργικότητας στο WCMS και δυσκολία ή και αδυναμία σε ενδεχόμενη μετέπειτα μεταφορά της σε άλλο σύστημα. Στη συντριπτική πλειοψηφία των περιπτώσεων ένα WCMS περιλαμβάνει λειτουργικότητα επιπλέον της απαιτούμενης από τον χρήστη για το συγκεκριμένο ιστότοπο. Άλλωστε, ο Web Developer προορίζει το εκάστοτε WCMS για ένα ετερογενές πλήθος εφαρμογών με σκοπό να προσελκύσει ένα ευρύ κοινό. Η πληρωμή της πλεονάζουσας λειτουργικότητας προσθέτει κόστος στο τελικό προϊόν. Ακόμα, όμως, και στην περίπτωση της δωρεάν διάθεσης του WCMS, η πλεονάζουσα λειτουργικότητα προσθέτει κόστος σε όρους πολυπλοκότητας της διεπαφής χρήστη και της εκπαίδευσής του. Τέλος, να σημειωθεί πως υπάρχει δυνατότητα παραγγελίας και ανάπτυξης εξατομικευμένων WCMS. Προφανώς, η υλοποίηση ενός τέτοιου συστήματος σημαίνει πρόσθετο κόστος για τον χρήστη το οποίο, όμως, θα πρέπει να σταθμίζεται με το προαναφερόμενο κόστος πλεονασμού και πολυπλοκότητας [45]. Με τον έγκαιρο σχεδιασμό και την κατάλληλη επιλογή του WCMS, πολλά από τα παραπάνω μειονεκτήματα μπορεί να αποφευχθούν ή σε μεγάλο βαθμό να περιοριστούν, ώστε να αποκομιστεί το μέγιστο όφελος των σημαντικών πλεονεκτημάτων. Η αγορά WCMS Υπάρχουν εκατοντάδες WCMS στην αγορά είτε ανοικτού είτε κλειστού κώδικα και κόστους από μηδέν έως χιλιάδες ευρώ. Μόνο στην W3Techs [Q-Success DI Gelbmann GmbH (Co. Ltd.), 29

46 Austria], εταιρεία ερευνών στον χώρο της τεχνολογίας του διαδικτύου, παρακολουθούνται περισσότερα από 300 WCMS. Εικόνα 5. Διάγραμμα κατανομής χρήσης WCMS για ιστοτόπους για τα έτη 2011 έως Αναπαραγωγή εικόνας από W3Techs, Q-Success ( Q-Success) [46]. Σήμερα, το 55,6% του Ιστού δεν χρησιμοποιεί ακόμα κάποιο WCMS. (Εικόνα 5, Πίνακας 1) Το WordPress (WordPress Foundation) είναι προς το παρόν το δημοφιλέστερο σε χρήση WCMS στον Iστό, έχοντας παρουσία στο 26,4% του Ιστού, με τα Joomla! (OpenSourceMatters, Inc., NY) και Drupal (Dries Buytaert) να ακολουθούν με 2,7% και 2,2%, αντίστοιχα. Πίνακας 1. Πίνακας ποσοστών κατανομής χρήσης WCMS για ιστοτόπους για τα έτη Τροποποίηση πίνακα από W3Techs, Q-Success ( Q-Success) [46] Jan 1 Jan 1 Jan 1 Jan 1 Jan 1 Jan 19 May None 76,4% 71,0% 68,2% 64,8% 61,7% 56,6% 55,6% WordPress 13,1% 15,8% 17,4% 21,0% 23,3% 25,6% 26,4% Joomla 2,6% 2,8% 2,8% 3,2% 2,9% 2,8% 2,7% Drupal 1,4% 1,9% 2,3% 1,9% 2,0% 2,1% 2,2% Magento 0,9% 1,1% 1,2% 1,3% Blogger 0,6% 0,9% 1,1% 1,2% 1,1% 1,2% 1,2% TYPO3 0,6% 0,6% 0,7% 0,6% 0,6% 0,7% 0,7% 30

47 Τα τρία αυτά συστήματα αποτελούν τα δημοφιλέστερα WCMS ανοικτού κώδικα. Έκδηλη είναι η καθοδική τάση της μη-χρήσης WCMS και η αντίστοιχη ανοδική τάση που παρουσιάζει το WordPress από το 2011 έως σήμερα. Μεταξύ των ιστοτόπων που υλοποιήθηκαν με τη χρήση WCMS, ενδιαφέρον παρουσιάζει το γεγονός της σταδιακής πτώσης της χρήσης του Joomla έναντι της ανοδικής τάσης του Drupal, όπως φαίνεται στο αντίστοιχο διάγραμμα. (Εικόνα 6, Πίνακας 2) Εικόνα 6. Διάγραμμα μεριδίου αγοράς μεταξύ των WCMS για ιστοτόπους για τα έτη 2011 έως Αναπαραγωγή εικόνας από W3Techs, Q-Success ( Q-Success) [47]. Πίνακας 2. Πίνακας ποσοστών μεριδίου αγοράς μεταξύ των WCMS για ιστοτόπους για τα έτη Τροποποίηση πίνακα από W3Techs, Q-Success ( Q-Success) [47] Jan 1 Jan 1 Jan 1 Jan 1 Jan 1 Jan 1 Jan 21 May WordPress 51,0% 55,3% 54,3% 54,8% 59,8% 60,7% 58,8% 59,4% Joomla 12,0% 10,9% 9,5% 8,7% 9,1% 7,6% 6,4% 6,0% Drupal 7,1% 6,1% 6,5% 7,2% 5,5% 5,1% 4,9% 4,9% Στον πίνακα 2 παρατηρείται η κυριαρχία του WordPress, με σταδιακή άνοδο από το 2010 έως το 2015 και σταθεροποίηση ή και οριακά πτωτική τάση έως σήμερα, την σταδιακή απώλεια 31

48 του Joomla! από το 12% του 2009 στο 6% του 2016, καθώς και τα οριακά μειούμενα ποσοστά του Drupal. Η ίδια εικόνα αντικατοπτρίζεται και στο Google Trends, που καταγράφει τις τάσεις αναζήτησης στο διαδίκτυο [48]. Εικόνα 7. Παρουσίαση ενδιαφέροντος στη μηχανή αναζήτησης Google παγκοσμίως για τους όρους Drupal, Joomla και WordPress από το 2004 έως σήμερα Google Inc. [49]. Το πλεονέκτημα της χρήσης ενός δημοφιλούς WCMS είναι η πληθώρα κοινοτήτων υποστήριξης, φόρα και άρθρων για την αναζήτηση λύσεων σε τυχόν προβλήματα καθώς και πλήθος πρόσθετων για επιπλέον λειτουργικότητα στον ιστότοπο. Όσο περισσότερο δημοφιλές είναι το WCMS τόσο μεγαλύτερη είναι η κοινότητα και οι επιλογές πρόσθετων. Κατά την εξέλιξη των WCMS η χρήση τους έχει σχετικά απλοποιηθεί. Αρχικά, όσον αφορά στην εγκατάστασή τους, σήμερα, επιτυγχάνεται με διαδικασία ενός βήματος. Οι περισσότερες εταιρείες διακομιστών προσφέρουν εγκατάσταση ενός βήματος συμπεριλαμβανομένης της ρύθμισης της βάσης δεδομένων. Στη συνέχεια, ο χρήστης μπορεί άμεσα να εγκαταστήσει μία θεματική παραλλαγή, τα επιθυμητά πρόσθετα στοιχεία και να εισαγάγει περιεχόμενο. Η ανάπτυξη των WCMS συνδέεται με την προσπάθεια της παροχής ολοένα αυξανόμενων δυνατοτήτων με τον πλέον φιλικό στον χρήστη τρόπο. Η προσπάθεια αυτή προσδίδει στα διαφορετικά συστήματα μία ενιαία εικόνα, δίνοντας την αίσθηση της απουσίας διαφοράς μεταξύ των συστημάτων. Η εικόνα 8 αποδίδει έναν επιπλέον διαχωρισμό των WCMS με κριτήριο το πλήθος των ιστοτόπων που υποστηρίζουν ως προς την επισκεψιμότητα των ιστοτόπων, ο οποίος είναι ενδεικτικός των διαφορών που τελικά υπάρχουν στην υλοποίησή τους. Διακρίνεται πως στους ιστοτόπους υψηλής επισκεψιμότητας η χρήση του Drupal προτιμάται από τη χρήση των υπολοίπων WCMS. 32

49 Εικόνα 8. Αναπαράσταση των WCMS με κριτήριο το πλήθος των ιστοτόπων που υποστηρίζουν ως προς την επισκεψιμότητα των ιστοτόπων. Αναπαραγωγή εικόνας από W3Techs, Q-Success ( Q-Success) [50]. Επιπλέον, αξιοσημείωτες είναι οι διαφορές χρήσης των WCMS στους πρώτους σε επισκεψιμότητα ιστοτόπους σε σχέση με το σύνολο των ιστοτόπων στον ευρύτερο Ιστό. Σύμφωνα με στοιχεία που παρέχονται από την BuiltWith Pty Ltd, εταιρίας ερευνών της αγοράς διαδικτυακών τεχνολογιών, στο σύνολο των ιστοτόπων στο διαδίκτυο, το ποσοστό αυτών που είναι φτιαγμένοι με Drupal είναι μόλις 2% ενώ το αντίστοιχο ποσοστό του Joomla! ανέρχεται στο 8%. (Εικόνα 9) 33

50 Εικόνα 9. Στατιστικά χρήσης WCMS στο σύνολο των ιστοτόπων. BuiltWith Pty Ltd. Αντίστροφα, στους πρώτους σε επισκεψιμότητα ιστοτόπους, στο Drupal αντιστοιχεί μερίδιο αγοράς 8% έναντι μόλις 1% του Joomla!. Μάλιστα, ακόμα και στο WordPress, που κατέχει την κυρίαρχη θέση στην αγορά με ένα συνολικό 50%, για τους παραπάνω ιστοτόπους αντιστοιχεί μερίδιο αγοράς 38%. (Εικόνα 10) Εικόνα 10. Στατιστικά χρήσης WCMS στους πρώτους σε επισκεψιμότητα ιστοτόπους. BuiltWith Pty Ltd. 34

51 Τα παραπάνω στοιχεία καταδεικνύουν τη σαφή προτίμηση των κατασκευαστών ιστοτόπων υψηλής επισκεψιμότητας στο Drupal, έναντι του Joomla!, αλλά αναδεικνύουν και τον προσανατολισμό του WordPress, μεγάλο μέρος των ιστοτόπων του οποίου χρησιμοποιούνται ως ιστολόγια [51]. Δημοφιλείς πλατφόρμες Ιστοτόπων και δημοφιλή WCMS Straight HTML Ο όρος straight HTML αναφέρεται σε ένα σύστημα που δεν χρησιμοποιεί ένα WCMS αλλά περιλαμβάνει ένα σύνολο από σελίδες HTML, συχνά διαχειριζόμενο από ένα τοπικό λογισμικό ανάπτυξης ιστοτόπων όπως το δημοφιλές Adobe Dreamweaver (Adobe Systems Incorporated, San Jose, CA). Ένα τέτοιο σύστημα μπορεί να αποτελεί αποδεκτή επιλογή, ιδιαίτερα στην περίπτωση στατικών σελίδων. Απαιτείται η χρήση ενός επεξεργαστή HTML και η δημοσίευση του ιστοτόπου στον διακομιστή, χωρίς πρόσθετες πολύπλοκες διαδικασίες ρύθμισης και ανάγκη συντήρησης. Πρόσθετα στην ευκολία δημιουργίας και συντήρησής του, ένας ιστότοπος κατασκευασμένος με straight HTML παρουσιάζει λιγότερα θέματα ασφαλείας και προσβλητότητας συγκριτικά με τα WCMS και απαιτείται, συνήθως, λιγότερος χρόνος απόκρισης από τον διακομιστή. Μειονέκτημα της straight HTML είναι η αδυναμία ενσωμάτωσης ιστολογίου, σχολίων ή/και άλλων συχνά χρησιμοποιούμενων πλέον λειτουργιών. Επιπλέον, χωρίς τα απαραίτητα σχεδιαστικά εργαλεία είναι δύσκολη η δημιουργία αισθητικά ελκυστικών ιστοτόπων, με αποτέλεσμα στις περισσότερες περιπτώσεις την ανάγκη πρόσθετων προγραμμάτων επεξεργασίας γραφικών. Δύσκολη είναι, επίσης, η αλλαγή στην εμφάνιση ή τη δομή του ιστοτόπου. Ακόμα, ένα σημαντικό μειονέκτημα της μεθόδου είναι και οι απαιτήσεις της σε γνώση HTML, καθιστώντας δυσχερή την παρέμβαση στο περιεχόμενο του ιστοτόπου από μη εξειδικευμένο προσωπικό ενώ δεν υπάρχει δυνατότητα να προστεθεί περιεχόμενο από ένα διαδικτυακό περιβάλλον. Ο χρόνος που απαιτείται για τη δημιουργία του ιστοτόπου αυξάνει εάν δεν χρησιμοποιηθεί αυτοματοποιημένος επεξεργαστής HTML. Ο Ιστός στα αρχικά του στάδια βασίστηκε σε ιστοτόπους straight HTML. Η ανάγκη για μεγαλύτερη ευκολία και ευελιξία στην ανάπτυξη ιστοτόπων οδήγησε σταδιακά στην ανάπτυξη των WCMS. Σήμερα, το μερίδιο αγοράς των ιστοτόπων που χρησιμοποιούν straight HTML είναι συνεχώς μειούμενο εξαιτίας, κύρια, της δυσκολίας συντήρησης μεγάλου αριθμού σελίδων. Ακόμα και σήμερα η straight HTML μπορεί να αποτελέσει μέρος μίας ολοκληρωμένης λύσης, σε συνδυασμό με συστήματα WCMS. Κύρια, όμως, η χρήση straight 35

52 HTML ενδείκνυται για μικρούς ιστοτόπους τύπου φυλλαδίου, εταιρικούς ιστοτόπους προβολής, ιστοτόπους στατικών διαφημίσεων ή προσωπικούς ιστοτόπους και γενικότερα σε ιστοτόπους που δεν απαιτούν συχνές ανανεώσεις. WordPress Το WordPress ξεκίνησε ως μία πλατφόρμα ιστολογίου αλλά έχει εξελιχθεί σε ένα ισχυρό, αυτόνομο WCMS. Πλέον, υπάρχει η δυνατότητα δημιουργίας ιστοτόπων που δεν περιλαμβάνουν καθόλου ιστολόγιο. Το WordPress έχει τη μεγαλύτερη βάση χρηστών λόγω των πολλών πλεονεκτημάτων που προσφέρει. Είναι εύκολο να εγκατασταθεί (οι περισσότερες εταιρίες φιλοξενίας ιστοσελίδων προσφέρουν εγκατάσταση ενός βήματος), να χρησιμοποιηθεί, έχει μεγάλη κοινότητα υποστήριξης (χρηστών και σχεδιαστών), ένα μεγάλο πλήθος σχεδιοτύπων, και επεκτασιμότητα που περιλαμβάνει μία μεγάλη συλλογή δωρεάν ή επί πληρωμή πρόσθετων. Επίσης, αναλογικά με τη χρήση του, διαθέτει πλήθος πληροφοριακών πηγών, όπως βιβλία, μαθήματα και πολυμεσικό εκπαιδευτικό υλικό. Το WordPress προσφέρει, επίσης, βελτιστοποίηση για τις μηχανές αναζήτησης με αρκετά πρόσθετα στοχευμένα στη ρύθμιση αυτής της λειτουργίας. Οι αλλαγές στην εμφάνιση του ιστοτόπου και στο περιεχόμενο του είναι εύκολες με δυνατότητα πραγματοποίησής τους, στις περισσότερες περιπτώσεις, με απλή μεταφορά και απόθεση (drag and drop). Από την άλλη, μειονεκτήματα του WordPress είναι η δυσκολία στην παραμετροποίηση των βασικών λειτουργιών ή στην προσθήκη λειτουργιών εκτός των διαθέσιμων επιλογών. Επίσης, το WordPress δεν αποτελεί τη βέλτιστη επιλογή για ιστοτόπους μεγάλης κλίμακας, που απαιτούν μεγάλο αριθμό χαρακτηριστικών. Πρόσθετα, αποτελεί αγαπημένο στόχο διαδικτυακών επιθέσεων εξαιτίας του τεράστιου μεριδίου αγοράς του. Συνολικά, το WordPress ενδείκνυται για ιστολόγια, ιστοτόπους μικρών επιχειρήσεων ή προσωπικούς ιστοτόπους. Αποτελεί καλή επιλογή για περιπτώσεις που ικανοποιούνται από έναν ελαφρύ και απλό ιστοτόπο ή έναν απλό ιστοτόπο τύπου ιστολογίου με χρήση περιορισμένων πρόσθετων για επιπλέον λειτουργικότητα. Joomla! To Joomla! είναι ένα από τα πλέον δημοφιλή προϊόντα WCMS, απευθυνόμενο σε μέτριους έως μεγάλους ιστοτόπους, που χρειάζονται περισσότερο ευελιξία και λειτουργικότητα σε σχέση με το WordPress. Το Joomla! προσφέρει τη μεγαλύτερη ποικιλία πρόσθετων σε σχέση με οποιοδήποτε άλλο WCMS, δίνοντάς του χαρακτηριστική ευελιξία και επεκτασιμότητα. 36

53 Επίσης, συνοδεύεται από μεγάλο όγκο οδηγιών και τεκμηρίωσης, στοιχείο, άλλωστε, απαραίτητο λόγω της μεγαλύτερης πολυπλοκότητάς του ως προς το WordPress. Από την άλλη, η ίδια πολυπλοκότητα που σε άλλες περιπτώσεις υπολογίζεται ως πλεονέκτημα, δημιουργεί μία σχετική δυσκολία στην παραμετροποίηση των λειτουργιών ή/και στην προσθήκη παραμετροποιημένων στοιχείων. Επιπλέον, στη μεγάλη ποικιλία των προσφερόμενων πρόσθετων περιλαμβάνεται και ένας αριθμός πρόσθετων κακής ποιότητας και μειωμένης λειτουργικότητας, τα οποία, υπό συνθήκες, μπορεί να οδηγήσουν σε δυσλειτουργία του ιστοτόπου. Επίσης, μεγάλος αριθμός πρόσθετων δεν είναι συμβατά με όλες τις εκδόσεις του Joomla!, ενώ πολλά από τα πρόσθετα δεν διατίθενται δωρεάν [52]. Συνολικά, το Joomla! εφαρμόζει ιδανικά σε ιστοτόπους πολυμεσικού περιεχομένου, σε μικρούς ιστοτόπους, ιστοτόπους ηλεκτρονικού εμπορίου καθώς και σε ιστοτόπους μεσαίου μεγέθους. Drupal Το Drupal είναι ένα σταθερό και αξιόπιστο WCMS. Διαθέτει διευρυμένη επεκτασιμότητα, δυνατότητα κλιμάκωσης για ιστοτόπους με μεγάλο αριθμό σελίδων καθώς και τη δυνατότητα διαχείρισης μεγάλου φόρτου κίνησης χωρίς σοβαρό αντίκτυπο στην απόδοσή του [53]. Διαθέτει, επίσης, ενσωματωμένη υποστήριξη ελέγχου πρόσβασης πολλών επιπέδων, για πλήθος ομάδων χρηστών. Εξάλλου, σημαντικό πλεονέκτημα του Drupal είναι η μεγάλη κοινότητα υποστήριξης και το εκτεταμένο σύνολο οδηγιών και τεκμηρίωσης. Τέλος, το Drupal περιγράφεται ως πλαίσιο για την ανάπτυξη εφαρμογών Ιστού, καθώς οι δυνατότητές του ξεπερνούν την απλή διαχείριση περιεχομένου, επιτρέποντας μεγάλο εύρος υπηρεσιών και λειτουργιών. Το σημαντικό μειονέκτημα του Drupal είναι η δυσκολία εγκατάστασης και διαμόρφωσής του, συγκρινόμενο με τα υπόλοιπα WCMS. Ο υψηλός βαθμός δυσκολίας στην εκμάθηση και τη χρήση του απαιτεί υψηλό βαθμό εξειδίκευσης. Επίσης, μειονέκτημα αποτελεί ο σχετικά περιορισμένος αριθμός σχεδιαστικών προτύπων και η μικρότερη ποικιλία σε διαθέσιμα πρόσθετα. Συνολικά, το Drupal ενδείκνυται για επιχειρηματικούς ιστοτόπους και ιστοτόπους μεγάλης κλίμακας ή/και υψηλής κινητικότητας. 37

54 38

55 Η επιλογή του Drupal 7 Σκοπός της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη δύο ιστοτόπων για τη Μονάδα Ηλεκτρομαγνητικών Εφαρμογών και Υπολογισμών με αντικείμενο του ενός την παρουσίαση της Μονάδας (acel.web.auth.gr, ACEL) και του δεύτερου την παρουσίαση του ερευνητικού προγράμματος «Εξελιγμένη Υπολογιστική Μοντελοποίηση και Εφαρμογές για Καινοτόμα Υλικά και Διατάξεις» (acmims.web.auth.gr, ACMIMS). Η επιλογή του WCMS γίνεται κατά περίπτωση, βάσει των συγκεκριμένων αναγκών του εκάστοτε ιστοτόπου. Η επιλογή δεν είναι πάντα προφανής και σε κάθε περίπτωση δεν μπορεί να χαρακτηριστεί σωστή ή λάθος αλλά κατάλληλη ή λιγότερο κατάλληλη. Στη συγκεκριμένη εργασία, για τους ιστοτόπους ACMIMS και ACEL, θα μπορούσε να χρησιμοποιηθεί οποιοδήποτε από τα τρία δημοφιλέστερα WCMS ανοικτού κώδικα που περιγράφηκαν παραπάνω (WordPress, Joomla!, Drupal). Ωστόσο, παρά τα επιμέρους πιθανά μειονεκτήματα του Drupal (με κύριο μειονέκτημα τη μεγάλη καμπύλη εκμάθησης), τα πλεονεκτήματα και οι δυνατότητες που προσφέρει συνθέτουν ένα εύρωστο και βιώσιμο σε βάθος χρόνου εργαλείο. Η ενεργή του κοινότητα, η ασφάλεια του κώδικα του, η δυναμική της επεκτασιμότητάς του που μελλοντικά μπορεί να αξιοποιηθεί από τους ιστοτόπους του εργαστηρίου και η απόδοσή του σε μεγάλης κλίμακας ιστοτόπους είναι βασικά σημεία στα οποία βασίστηκε η επιλογή του Drupal και συγκεκριμένα η τρέχουσα έκδοση του Drupal, Drupal 7 [54]. Στα παραπάνω προστίθεται η υποστήριξη των τεχνολογιών του Σημασιολογικού Ιστού στον πυρήνα του Drupal 7, που θα αποτελέσει χρήσιμο εργαλείο στη μελλοντική λειτουργία του ιστοτόπου ACEL. Τεχνολογική Υποδομή Το Drupal τρέχει σε οποιοδήποτε λειτουργικό σύστημα που υποστηρίζει PHP. Ο συνηθέστερος διακομιστής για χρήση με Drupal είναι ο Apache, αν και μπορούν να χρησιμοποιηθούν και άλλοι διακομιστές (συμπεριλαμβανομένου του nginx και του Microsoft IIS) [55]. Ενδιαφέρον παρουσιάζει η μελέτη της Pingdom (SolarWinds Worldwide, LLC, Austin, Texas), εταιρείας παρακολούθησης επιδόσεων στον Ιστό, όπου αναλύθηκαν οι πρώτοι ιστότοποι με κριτήριο επισκεψιμότητας και βρέθηκε ότι το 74,6% εξυπηρετούνται από διακομιστές που τρέχουν λογισμικό ανοικτού κώδικα [56]. Παραδοσιακά, λόγω της συσχέτισης του Drupal με τον Apache, το Drupal συνοδεύεται από προεπιλογή με το αρχείο «.htaccess» που διασφαλίζει την εγκατάσταση του Drupal. Οι 39

56 καθαρές διευθύνσεις URL (εκείνες δηλαδή που δεν περιλαμβάνουν ερωτηματικά, συμπλεκτικά σύμβολα ή άλλους περίεργους χαρακτήρες) επιτυγχάνονται χρησιμοποιώντας το «mod_rewrite component» του Apache. Αυτό είναι ιδιαιτέρως σημαντικό διότι όταν μεταφέρεται ο ιστότοπος από ένα άλλο WCMS (ή από στατικές σελίδες) σε Drupal, οι διευθύνσεις URL του περιεχομένου δεν χρειάζεται να αλλάξουν, ιδιότητα που αποτελεί προτέρημα σύμφωνα με τον Tim Berners-Lee [57]. Οι καθαρές URL διευθύνσεις είναι διαθέσιμες και σε άλλους διακομιστές χρησιμοποιώντας τις αντίστοιχες δυνατότητες του καθενός. Η τεχνολογική υποδομή του Drupal αναπαρίσταται γραφικά στην εικόνα 11. Εικόνα 11. Η τεχνολογική στοίβα του Drupal [55]. To Drupal συνδέεται με το επόμενο στρώμα της τεχνολογικής στοίβας, τη βάση δεδομένων, διαμέσου ενός στρώματος φιλτραρίσματος της βάσης δεδομένων. Μπορεί να συνδεθεί οποιαδήποτε βάση δεδομένων που υποστηρίζει PHP με τις δημοφιλέστερες τις MySQL (Oracle Corporation, Redwood City, CA), και PostgreSQL (PostgreSQL Global Development Group), ενώ πλέον στο Drupal 7 υποστηρίζεται και η SQLite. Το Drupal είναι γραμμένο σε PHP. Το σύνολο του κώδικα του πυρήνα του Drupal συμμορφώνεται με αυστηρές προδιαγραφές κωδικοποίησης [58] και υποβάλλεται σε ενδελεχή επανεξέταση καθ όλη τη διάρκεια συγγραφής του. Η εύκολη καμπύλη εκμάθησης της PHP συνεπάγεται την απουσία σημαντικού φραγμού στην είσοδο των συγγραφέων κώδικα που επιθυμούν να συνεισφέρουν και η διαδικασία επανεξέτασης του κώδικα διασφαλίζει ότι αυτή η ευκολία 40

57 δεν θυσιάζει την ποιότητα του παραγόμενου κώδικα. Συγκεκριμένα, όσον αφορά στο Drupal 7, η ελάχιστη απαιτούμενη έκδοση της PHP είναι η 5.2. Πυρήνας Κατά τη λήψη του Drupal από τον επίσημο ιστότοπο, λαμβάνεται ο πυρήνας του Drupal (Drupal core). O πυρήνας είναι υπεύθυνος για την παροχή των βασικών λειτουργιών και για την υποστήριξη επιπρόσθετων μερών του συστήματος. Ο πυρήνας περιλαμβάνει κώδικα που επιτρέπει στο Drupal να δημιουργεί τις αιτούμενες κατά περίπτωση ιστοσελίδες, μία βιβλιοθήκη συνηθισμένων συναρτήσεων που χρησιμοποιούνται συχνά με το Drupal και πρόσθετα που παρέχουν βασικές λειτουργικότητες, όπως διαχείριση χρηστών και ταξινόμηση. Ο πυρήνας περιλαμβάνει, επίσης, βασικές δομικές μονάδες λειτουργικότητας, όπως δημιουργία ιστολογίου, φόρουμ, γκάλοπ και feeds. Εικόνα 12. Σχηματική αναπαράσταση του πυρήνα του Drupal [55]. Διεπαφή Διαχείρισης Η διεπαφή διαχείρισης στο Drupal είναι στενά συνδεδεμένη με τον υπόλοιπο ιστότοπο. Όλες οι διαχειριστικές λειτουργίες είναι εύκολα προσβάσιμες μέσω ενός μενού που εμφανίζεται στην κορυφή του ιστοτόπου κατά τη σύνδεση ενός χρήστη ως διαχειριστή. 41

58 Πρόσθετα Βασικό συστατικό του Drupal και της αρθρωτής (modular) λογικής του είναι τα πρόσθετα. Οι επιμέρους λειτουργικότητες περιλαμβάνονται στα πρόσθετα, τα οποία μπορούν να ενεργοποιηθούν ή να απενεργοποιηθούν. Τα νέα χαρακτηριστικά προστίθενται σε έναν ιστότοπο είτε ενεργοποιώντας τα ήδη υπάρχοντα πρόσθετα του πυρήνα είτε εγκαθιστώντας συμπληρωματικά πρόσθετα από την Drupal κοινότητα είτε δημιουργώντας νέα πρόσθετα. Με αφετηρία τη βασική εγκατάσταση και ενεργοποιώντας τις επιπλέον επιθυμητές λειτουργικότητες, το Drupal μπορεί να υποστηρίξει από πολύ απλούς έως πολύ σύνθετους ιστοτόπους. Η επέκταση περιλαμβάνει νέους τύπους περιεχομένου, νέα πεδία ή/και ενέργειες. Το Drupal κάνει χρήση του προτύπου αντιστροφής ελέγχου (inversion of control), σύμφωνα με το οποίο η κατάλληλη λειτουργικότητα καλείται από το σύστημα την κατάλληλη στιγμή. Αυτές οι ευκαιρίες που δίνονται στα πρόσθετα για να υλοποιήσουν τον σκοπό τους ονομάζονται hooks. Εικόνα 13. Σχηματική αναπαράσταση του πυρήνα Drupal και της επιπρόσθετης λειτουργικότητας που επιτυγχάνεται με την εγκατάσταση πρόσθετων [55]. 42

59 Hooks Τα hooks μπορούν να θεωρηθούν ως εσωτερικά γεγονότα στο Drupal και επιτρέπουν στα πρόσθετα να «αγκιστρωθούν» σε ενέργειες που συμβαίνουν στο υπόλοιπο Drupal. Η βασική αρχή λειτουργίας τους περιγράφεται στο παρακάτω παράδειγμα. Όταν ένας χρήστης διαγράψει έναν κόμβο (βλέπε υποενότητα Κόμβοι), το Drupal ενεργοποιεί το hook_node_delete(). Κάθε φορά που ένας κόμβος διαγράφεται, οποιοδήποτε πρόσθετο, μπορεί να παρέμβει στο συγκεκριμένο γεγονός ώστε να πραγματοποιήσει τις όποιες λειτουργίες του. To hook επιστρέφει το αντικείμενο που διαγράφεται για να χρησιμοποιηθεί κατά το δοκούν από οποιοδήποτε πρόσθετο (για παράδειγμα να ενημερώσει τον διαχειριστή για την διαγραφή του κόμβου). Το εγχειρίδιο τεκμηρίωσης των hooks [59] περιγράφει την ακριβή στιγμή που καλείται το κάθε hook ως προς το γεγονός που το ενεργοποίησε (στο συγκεκριμένο παράδειγμα πριν την διαγραφή του κόμβου από την βάση δεδομένων) και σε ποια σημεία του κώδικα καλείται. Τα hooks δουλεύουν με σύμβαση ονοματολογίας. Στο προηγούμενο παράδειγμα του hook_node_delete(), όταν η διαδικασία διαγραφής του κόμβου φτάσει στο σημείο που καλείται το hook, καλείται παράλληλα κάθε συνάρτηση οποιουδήποτε πρόσθετου έχει όνομα [όνομα_του_πρόσθετου]_node_delete(). Αξίζει να σημειωθεί, επίσης, ότι ορισμένα custom πρόσθετα που λειτουργούν σαν API ορίζουν τα δικά τους hooks. Η υλοποίηση των hooks έχει κεντρικό ρόλο στα περισσότερα πρόσθετα. Κατά την ανάγνωση του κώδικα ενός πρόσθετου, είναι εύκολη η αναγνώριση των συναρτήσεων που προέρχονται από hooks (σε αντίθεση με τις λοιπές συναρτήσεις που υλοποιούνται στον υπόλοιπο κώδικα του πρόσθετου), καθώς το Drupal επιβάλλει την παράθεση σχολίου μπροστά από κάθε χρησιμοποιούμενο hook. /** * Υλοποιεί το hook_some_hook(). * * Μία περιγραφική περίληψη του τι κάνει */ function my_custom_module_some_hook() {} Πλήρης κατάλογος και περιγραφή των διαθέσιμων hooks υπάρχει στη διαδικτυακή σελίδα Drupal API Documentation ( Θεματικές Παραλλαγές Κατά τη δημιουργία μίας ιστοσελίδας που θα αποσταλεί στο πρόγραμμα περιήγησης, υπάρχουν δύο κύρια σημεία: Η συναρμολόγηση και η σήμανση των κατάλληλων δεδομένων. 43

60 Στο Drupal το θεματικό πρότυπο (theme layer) είναι υπεύθυνο για τη δημιουργία της HTML (ή JSON, XML, κ.α.) που θα λάβει το πρόγραμμα περιήγησης. Το Drupal χρησιμοποιεί το PHPTemplate ως την κύρια μηχανή θεματικών προτύπων, με δευτερεύουσα επιλογή το σύστημα Easy Template System (ETS) [60]. Η PHPTemplate χρησιμοποιεί ανεξάρτητα «something.tpl.php» αρχεία για το θεματικό προσδιορισμό των συναρτήσεων theme_something() του Drupal. Οι συναρτήσεις που επιδέχονται θεματικό προσδιορισμό περιέχονται στον ιστότοπο του Drupal API. Κάθε αρχείο περιλαμβάνει έναν σκελετό HTML με κάποιες απλές PHP δηλώσεις για δυναμικά δεδομένα. Η PHPTemplate είναι μία εξαιρετική επιλογή για θεματικό προσδιορισμό για χρήστες εξοικειωμένους με την PHP. Επισημαίνεται ότι το Drupal ενθαρρύνει τον διαχωρισμό του περιεχομένου και της σήμανσής του και επιτρέπει πολλούς τρόπους για να για να προσαρμόσει και να παρακάμψει κανείς την εμφάνιση ενός ιστοτόπου [61]. Ο απλούστερος τρόπος είναι η χρήση αρχείων CSS που παρακάμπτουν τις ενσωματωμένες στο Drupal κλάσεις και ID. Η προσαρμογή δε της παραγόμενης HTML επιτυγχάνεται με την προσαρμογή των αρχείων του θεματικού προτύπου που αποτελούνται από HTML και PHP. Το θέμα είναι μία συλλογή αρχείων που ορίζουν το επίπεδο παρουσίασης. Είναι, επίσης, εφικτή η δημιουργία ενός ή περισσότερων υπο-θεμάτων ή παραλλαγών ενός θέματος. Μεταξύ αυτών των αρχείων, το αρχείο «.info» είναι υποχρεωτικό [62]. Στην εικόνα 14 αναπαρίστανται σχηματικά τα αρχεία που βρίσκονται σε ένα τυπικό θέμα και υπο-θέμα. Τα υπο-θέματα συμπεριφέρονται ακριβώς όπως και κάθε άλλο θέμα. Η μόνη διαφορά είναι ότι κληρονομούν τις ιδιότητές τους από τα μητρικά τους θέματα. Για τη δημιουργία ενός υποθέματος, απαιτείται η καταχώρηση ενός βασικού θέματος (κληρονόμου) μέσα στο αρχείο «.info». Μπορούν να υπάρξουν πολλαπλά επίπεδα κληρονομικότητας, δηλαδή ένα υπό-θέμα μπορεί να ορίσει ως μητρικό του ένα άλλο υπο-θέμα. 44

61 Εικόνα 14. Σχηματική αναπαράσταση των αρχείων που συνθέτουν ένα τυπικό θέμα στο Drupal 7. Το αρχείο «.info» είναι το μοναδικό υποχρεωτικό αρχείο για την αναγνώριση ενός θέματος από το Drupal. Περιέχει πληροφορίες σχετικές με την έκδοση του θέματος, τα φύλλα μορφοποίησης που χρησιμοποιούνται, τις περιοχές κ.α.. Το πρόθεμα του αρχείο «.info» καθορίζει επίσης το όνομα του θέματος. Τα αρχεία «.tpl.php» (template files) χρησιμοποιούνται για τη σήμανση με χρήση HTML και τις μεταβλητές της PHP. Κάθε αρχείο «.tpl.php» διαμορφώνει την έξοδο ενός συγκεκριμένου προσαρμόσιμου κομματιού δεδομένων. Απουσία αυτών εφαρμόζονται προεπιλεγμένες ρυθμίσεις. Το αρχείο «template.php» καθορίζει τον αλγόριθμο (conditional logic) στην επεξεργασία δεδομένων της εξόδου και έχει σκοπό τη διατήρηση της οργάνωσης στα αρχεία «.tpl.php». Προσαρμοσμένες συναρτήσεις, λειτουργίες αλλαγής θέματος ή οποιαδήποτε άλλη προσαρμογή στην έξοδο των πρωτογενών δεδομένων υλοποιείται, επίσης, σε αυτό το αρχείο. Κόμβοι Όλοι οι τύποι περιεχομένου στο Drupal έχουν ως βασική μονάδα τον κόμβο. Το βασικό στοιχείο που χαρακτηρίζει αυτήν την προσέγγιση είναι η επεκτασιμότητά του. Οι προγραμματιστές μπορούν να εισάγουν πλήθος πρόσθετων χαρακτηριστικών όπως βαθμολογίες, σχόλια, συνημμένα αρχεία, ανεξάρτητα από τον τύπο του κόμβου. Στη συνέχεια, ο διαχειριστής μπορεί να διανείμει αυτήν τη λειτουργικότητα στους τύπους ύλης που επιθυμεί. Οι κόμβοι περιέχουν, επίσης, ένα βασικό σύνολο συμπεριφορικών ιδιοτήτων, 45

62 ανεξάρτητα του τύπου περιεχομένου στο οποίο υπάγονται. Κάθε κόμβος μπορεί να προωθηθεί στην πρώτη σελίδα, να δημοσιευθεί ή να αρθεί η δημοσίευσή του, ή/και να αναζητηθεί. Πεδία Το περιεχόμενο στο Drupal συντίθεται από ανεξάρτητα πεδία. Ο τίτλος ενός κόμβου, το κυρίως κείμενο ενός κόμβου ή γενικότερα, κάθε στοιχείο που χαρακτηρίζει έναν τύπο περιεχομένου (τίτλος, κείμενο, ημερομηνία, τοποθεσία, σύνδεσμος κ.α.) μπορούν να αποτελέσουν πεδία. Δεν υπάρχει περιορισμός στον αριθμό και τον τύπο των χρησιμοποιούμενων πεδίων σε έναν τύπο περιεχομένου. Μπλοκ Ένα μπλοκ (block) είναι πληροφορία που μπορεί να ενεργοποιείται ή να απενεργοποιείται σε μία συγκεκριμένη θέση σε έναν ιστότοπο. Τα μπλοκ, συνήθως, τοποθετούνται στο περιθώριο του ιστοτόπου (πλαϊνή στήλη, κεφαλίδα ή υποσέλιδο). Οι συγκεκριμένες θέσεις ορίζονται στα αρχεία της θεματικής παραλλαγής. Η θέση και η εμφάνιση των μπλοκ μέσα σε αυτές τις περιοχές καθορίζονται στο διαχειριστικό περιβάλλον του Drupal. Μπορούν να ρυθμιστούν κατάλληλα ώστε να εμφανίζονται συγκεκριμένα σε μεμονωμένες σελίδες (για παράδειγμα μόνο στην αρχική σελίδα) ή σε συγκεκριμένου τύπου περιεχομένου σελίδες. Συχνά χρησιμοποιούνται για να εμφανίσουν εξατομικευμένες πληροφορίες στον εκάστοτε χρήστη. Εξυπηρέτηση αίτησης Ο ρόλος του διακομιστή Το Drupal τρέχει πίσω από έναν διακομιστή, συνήθως Apache. Αν ο διακομιστής σέβεται το «.htaccess» αρχείο του Drupal, αρχικοποιούνται συγκεκριμένες ρυθμίσεις PHP και εξετάζεται η αιτούμενη διεύθυνση URL. To «.htaccess» αρχείο είναι ένα αρχείο που επιτρέπει στους προγραμματιστές να τροποποιούν ρυθμίσεις του διακομιστή. Για παράδειγμα, μία κλήση προς το υφίσταται την ακόλουθη διαδικασία: 1. Ο κανόνας mod_rewrite στο «.htaccess» αρχείο εξετάζει την εισερχόμενη διεύθυνση URL και διαχωρίζει το URL βάσης από τη διαδρομή. Στο παράδειγμα το URL βάσης είναι το και η διαδρομή είναι η foo/bar. 2. Η διαδρομή εκχωρείται στην παράμετρο «q» στο URL. 3. To URL τροποποιείται σε 46

63 4. Το Drupal συμπεριφέρεται στην foo/bar ως εσωτερική διαδρομή του Drupal και ξεκινά η διαδικασία εκκίνησης στο «index.php». Ως αποτέλεσμα της διαδικασίας αυτής, το Drupal αντιμετωπίζει την με τον ίδιο ακριβώς τρόπο που αντιμετωπίζει την επειδή η εσωτερική διαδρομή είναι ίδια και στις δύο περιπτώσεις. Αυτό επιτρέπει στο Drupal να χρησιμοποιεί διευθύνσεις URL χωρίς περίεργους χαρακτήρες. Αυτά τα URL αναφέρονται ως καθαρά URL (clean URLs). Διαδικασία εκκίνησης Όλες οι κλήσεις προς το Drupal διέρχονται από το «index.php» αρχείο που βρίσκεται στον ριζικό φάκελο (root folder) της εγκατάστασης. Το «index.php» ξεκινά τη διαδικασία εκκίνησης (bootstrap) η οποία περιλαμβάνει, μεταξύ άλλων, τη σύνδεση με τη βάση δεδομένων, τη φόρτωση βιβλιοθηκών κ.α. Τα στάδια για την ολοκλήρωση της παραπάνω διαδικασίας περιέχονται στο αρχείο «bootstrap.inc» και περιγράφονται με τη σειρά που ενεργοποιούνται. Πίνακας 3. Τα στάδια εκκίνησης του Drupal. Τροποποίηση εικόνας από Todd Tomlinson and John K. VanDyk, 2011 ( 2010 by Todd Tomlinson and John K. VanDyk) [55]. Φάση Αρχικών Ρυθμίσεων Μνήμης cache Βάσης Δεδομένων Μεταβλητών Συνεδρίας Κεφαλίδων Γλωσσών Τελική Ενέργειες Ορισμός μεταβλητών που χρησιμοποιούνται σε όλη τη διαδικασία εκκίνησης. Προσπάθεια προσφοράς της σελίδας από τη μνήμη cache. Προετοιμασία και σύνδεση με το σύστημα της βάσης δεδομένων. Φόρτωση των μεταβλητών του συστήματος και ενεργοποίηση των πρόσθετων εκκίνησης. Προετοιμασία χειρισμού της συνεδρίας του χρήστη. Καλείται το hook_boot() και στέλνονται οι αρχικές κεφαλίδες HTTP. Φορτώνονται οι γλώσσες, που έχουν οριστεί στον ιστότοπο (για πολυγλωσσικούς ιστοτόπους). Η τελική φάση. Το Drupal έχει εκκινήσει και στη φάση αυτή επικυρώνονται και διορθώνονται τα δεδομένα εισόδου. Φορτώνονται όλα τα πρόσθετα και η θεματική παραλλαγή του συστήματος. 47

64 Με την ολοκλήρωση της διαδικασίας εκκίνησης, όλα τα τμήματα του συστήματος είναι διαθέσιμα. Ακολουθεί η παράδοση της αίτησης του περιηγητή στη συνάρτηση PHP που θα την χειριστεί. Η αντιστοίχιση μεταξύ των διευθύνσεων URL και των συναρτήσεων που θα τις αναλάβουν επιτυγχάνεται χρησιμοποιώντας ένα μητρώο επανάκλησης (callback registry), που αναλαμβάνει τόσο τις αντιστοιχίσεις των URL όσο και τον έλεγχο πρόσβασης σε αυτές. Τα πρόσθετα καταχωρούν τις αποκρίσεις τους χρησιμοποιώντας το «hook_menu». Οι συναρτήσεις επανάκλησης είναι υπεύθυνες για τη μεταφορά του περιεχομένου από τη βάση δεδομένων. Όταν βρεθεί η κατάλληλη συνάρτηση επανάκλησης (που αντιστοιχεί στο αιτούμενο URL) και επιβεβαιωθούν τα δικαιώματα πρόσβασης του χρήστη σε αυτήν, ο έλεγχος μεταβιβάζεται στη συνάρτηση. Επεξεργασία της αίτησης Συνοπτικά, όλες οι αιτήσεις ικανοποιούνται μέσα από το «index.php», το οποίο φορτώνει το Drupal ενσωματώνοντας διάφορα αρχεία/πρόσθετα και καλώντας στη συνέχεια τις κατάλληλες συναρτήσεις. Η συνάρτηση επανάκλησης εκτελεί τις απαραίτητες ενέργειες για να επεξεργαστεί και να αποδώσει τα δεδομένα που ζητήθηκαν. Για παράδειγμα, εάν ζητηθεί η σελίδα το URL αντιστοιχίζεται με τη συνάρτηση node_page_view() στο πρόσθετο «Νode». Ακολουθεί η ανάκτηση των δεδομένων για τον ζητούμενο κόμβο από τη βάση δεδομένων. Το επόμενο στάδιο είναι η εφαρμογή του θεματικού προτύπου στα δεδομένα. Για την παράλληλη παρέμβαση και τροποποίηση των δεδομένων που επιστρέφονται από ένα ή περισσότερα πρόσθετα γίνεται χρήση των hooks. Στο παράδειγμα που ακολουθεί το πρόσθετο «Node» παρέχει hook για όσα πρόσθετα είναι σχεδιασμένα ή σχεδιάζουν να παρέμβουν κατά τη φόρτωση ενός κόμβου. Το πρόσθετο «Comment» εκμεταλλεύεται το hook και επισυνάπτει τα σχόλια στον κόμβο κατά τη φόρτωσή του. 48

65 Η μορφοποίηση των δεδομένων περιλαμβάνει τον μετασχηματισμό των δεδομένων που ανακτήθηκαν, επεξεργάστηκαν ή δημιουργήθηκαν σε HTML (ή σε XML ή σε άλλη μορφή). Το Drupal χρησιμοποιεί το θέμα που επέλεξε ο διαχειριστής για να δώσει στον ιστότοπο την επιθυμητή αισθητική. Στη συνέχεια, η παραγόμενη σελίδα στέλνεται στον περιηγητή. To σύστημα αρχείων του Drupal Η κατανόηση του συστήματος αρχείων είναι σημαντική για την κατανόηση της λειτουργίας του Drupal. Άλλωστε, σε αυτό το σύστημα πραγματοποιείται η αποθήκευση των αρχείων, των πρόσθετων, των θεματικών παραλλαγών, των αλλαγών σε αρχεία CSS κ.α. Στην εικόνα 15 απεικονίζεται η δομή του συστήματος αρχείων για την εγκατάσταση των ACMIMS και ACEL. Ο φάκελος «sites» αποτελεί τον φάκελο που επιδέχεται τροποποιήσεις ενώ οι υπόλοιποι φάκελοι και τα αρχεία συστήνεται να παραμείνουν ανέπαφα. 49

66 Εικόνα 15. Η δομή του συστήματος αρχείων της εγκατάστασης του Drupal για τa ACMIMS και ACEL. Αναλυτικότερα, ο φάκελος «include» περιέχει βιβλιοθήκες συναρτήσεων του Drupal. Ο φάκελος «modules» περιέχει τα πρόσθετα του πυρήνα. Ο φάκελος «themes» περιέχει τις προεπιλεγμένες θεματικές παραλλαγές του Drupal. Το «install.php» είναι το κύριο αρχείο για την εγκατάσταση του Drupal. Το «index.php» είναι το κύριο σημείο όλων των αιτήσεων εξυπηρέτησης. Το «update.php» ενημερώνει τη βάση μετά από μία αναβάθμιση της έκδοσης του Drupal ή κάποιου πρόσθετου. Το «cron.php» χρησιμοποιείται για την εκτέλεση τακτικών εργασιών, όπως διαλογή και καθαρισμό πινάκων της βάσης δεδομένων, συλλογή στατιστικών ή/και ευρετηρίασης του περιεχομένου. Στην εικόνα 16 απεικονίζεται το εσωτερικό του φακέλου «sites», ο οποίος περιλαμβάνει τις προσθήκες ή/και τροποποιήσεις στη λειτουργικότητα και την εμφάνιση του ιστοτόπου. Εικόνα 16. To εσωτερικό του φακέλου «sites». 50

67 Το αρχείο «example.sites.php» χρησιμοποιείται όταν ένας κοινός πυρήνας Drupal χρησιμοποιείται για την παράλληλη υποστήριξη πολλαπλών ιστοτόπων (multi-site). Στην ανάπτυξη των ACMIMS και ACEL η λειτουργία αυτή δεν χρησιμοποιήθηκε. Στον φάκελο «sites/default», που απεικονίζεται στην εικόνα 17, βρίσκεται το προκαθορισμένο αρχείο ρυθμίσεων του Drupal, το «default.settings.php», το οποίο κατά την εγκατάσταση του Drupal, μεταβάλλεται στο αρχείο «settings.php». Στο παραγόμενο αρχείο «settings.php» αποθηκεύονται μεταξύ άλλων πληροφορίες σχετικά με τη σύνδεση του ιστοτόπου με τη βάση δεδομένων. Προφανώς, αποτελεί ζωτικής σημασίας αρχείο και το βασικό αρχείο ρυθμίσεων του ιστοτόπου. Εικόνα 17. Ο φάκελος «sites/default» και τα περιεχόμενα αυτού στην υλοποίηση των ιστοτόπων ACMIMS και ACEL. Ο φάκελος «all» (Εικόνα 18) προκύπτει από τη δυνατότητα του Drupal για κοινή εγκατάσταση του σε πολλαπλούς ιστοτόπους. Ακόμα και στην περίπτωση της απλής εγκατάστασης του Drupal, προτείνεται η χρήση του για τη διατήρηση του συνόλου των πρόσθετων και των θεματικών παραλλαγών. Εικόνα 18. Τα περιεχόμενα του φακέλου στη διαδρομή sites/all στην υλοποίηση των ιστοτόπων ACMIMS και ACEL. 51

68 Στην εικόνα 18 διακρίνονται οι τρεις βασικοί φάκελοι «libraries», «modules» και «themes». Ο φάκελος «libraries» περιέχει τις βιβλιοθήκες JavaScript. Στον φάκελο «modules» αποθηκεύονται τα πρόσθετα που εγκαθίστανται μεταγενέστερα της εγκατάστασης του Drupal. Σημειώνεται πως τα πρόσθετα του πυρήνα αποθηκεύονται σε διαφορετική τοποθεσία. Εικόνα 19. Απεικόνιση της δομής του φακέλου στη διαδρομή sites/all/themes και των υποφακέλων του στην υλοποίηση των ACMIMS και ACEL. Ο φάκελος «themes» και οι υποφάκελοί του (Εικόνα 19) περιλαμβάνουν τις θεματικές παραλλαγές και αρχεία σχετικά με την τροποποίησή τους (όπως τα «custom.css» και «template.php»). 52

69 Υλοποίηση των προδιαγραφών με το Drupal Sitemap Η συζήτηση των προδιαγραφών που πρέπει να τηρούν οι δύο ιστότοποι, ACEL και ACMIMS, οδήγησαν στη διαμόρφωση ενός «χάρτη περιεχομένου» (sitemap) των ιστοτόπων. Το sitemap αποτελεί μία λίστα των προσβάσιμων σελίδων από τους χρήστες ή/και τις μηχανές αναζήτησης. Αποδίδεται με ένα έγγραφο σε οποιαδήποτε μορφή, συνήθως, μία ιστοσελίδα που απαριθμεί ιεραρχικά τις σελίδες που υπάρχουν σε έναν ιστότοπο. Πρόσθετα, το sitemap απεικονίζει και την οργάνωση και τις σχέσεις των περιεχομένων, την ονοματολογία των σελίδων καθώς και την πλοήγηση μεταξύ αυτών. Παρακάτω εμφανίζεται ένα απλό sitemap το οποίο περιγράφει τη στοιχειώδη οργάνωση και αποτέλεσε τη βάση υλοποίησης του ιστοτόπου ACMIMS. Πίνακας 4. Ο «χάρτης περιεχομένου» (sitemap) για τον ιστότοπο ACMIMS. Σελίδα Τύπος Σελίδας Περιγραφή Σελίδας Home / Αρχική Βασική Σελίδα Description / Περιγραφή Βασική Σελίδα Research Team / Ερευνητική Ομάδα Publications / Δημοσιεύσεις Σελίδα στην οποία θα εμφανίζονται για κάθε κόμβο (μέλος προσωπικού) τα στοιχεία Όνομα, Βαθμίδα, Ρόλος στο πρόγραμμα, Εmail, Φωτογραφία Σελίδα στην οποία θα εμφανίζεται μία Απαρίθμηση των κόμβων, μαζί με την Περιγραφή και το Αρχείο της δημοσίευσης (εάν υπάρχει) του κάθε κόμβου Τύποι Δημοσιεύσεων : International Peer-Reviewed Journals International Conferences Other Publications Book Chapters Ο τίτλος του κάθε κόμβου θα είναι σύνδεσμος στο εσωτερικό του κόμβου. Εκεί θα εμφανίζεται το Όνομα, η Φωτογραφία, το Βιογραφικό και λίστα των Δημοσιεύσεων για το πρόγραμμα Στην αναφορά της δημοσίευσης θα αποδίδεται και ο σχετικός σύνδεσμος για την πηγή της δημοσίευσης, εάν είναι διαθέσιμος (εξωτερικός σύνδεσμος: π.χ. Journal / Conference / Paper κ.α.) 53

70 News / Νέα Contact / Επικοινωνία ESPA Logo / ΕΣΠΑ Λογότυπο Σελίδα στην οποία θα εμφανίζεται το Όνομα, Ημερομηνία, Αρχείο / Πρόσκληση (εάν υπάρχει) και Περιγραφή για κάθε κόμβο Φόρμα Επικοινωνίας συνδυασμένη με ένα Μπλοκ στο οποίο θα εμφανίζεται η Διεύθυνση στον Χάρτη Μπλοκ στο οποίο θα εμφανίζεται το λογότυπο ΕΣΠΑ στο τέλος της κάθε σελίδας Το Όνομα θα είναι σύνδεσμος στο εσωτερικό του κάθε κόμβου. Εντός του κόμβου θα εμφανίζονται οι πληροφορίες: Όνομα, Περιγραφή, Αρχείο/Πρόσκληση (εάν υπάρχει) και Φωτογραφίες (εάν υπάρχουν) Επιλογή θεματικής παραλλαγής Η επιλογή της θεματικής παραλλαγής έγινε με κριτήριο, κύρια, το επιθυμητό αισθητικό αποτέλεσμα. Έτσι, επιλέχθηκε θεματική παραλλαγή κοντά στο ζητούμενο σχέδιο με σκοπό τη μείωση των μετέπειτα παρεμβάσεων για την επίτευξη του τελικού αποτελέσματος. Η επιλεγμένη θεματική παραλλαγή είναι σύμφωνη με τα πρότυπα του Drupal, προσφέρει απλό και καθαρό σχεδιασμό, σύνολο 11 περιοχών (regions), υποστήριξη για σχέδιο εμφάνισης μίας, δύο ή τριών στηλών, με πολυεπίπεδο αναπτυσσόμενο μενού και χρήση γραμματοσειρών Google Web Fonts. Πρόσθετα, η επιλεγμένη θεματική παραλλαγή είναι φιλική προς φορητές συσκευές, ακολουθώντας την αποκριτική σχεδίαση ιστοσελίδων (Responsive Web Design, RWD). Η αποκριτική σχεδίαση ιστοσελίδων είναι μία προσέγγιση σχεδίασης με σκοπό την κατασκευή ιστοσελίδων που προσφέρουν το βέλτιστο οπτικό αποτέλεσμα σε πλήθος διαφορετικών συσκευών (από κινητά τηλέφωνα μέχρι και μεγάλες οθόνες σταθερών προσωπικών υπολογιστών) [63]. Παραμετροποίηση των ρυθμίσεων της θεματικής παραλλαγής Από τη θεματική παραλλαγή αφαιρέθηκε το προεπιλεγμένο όνομα του ιστοτόπου, το λογότυπο καθώς και το εικονίδιο συντόμευσης. Από τις διαθέσιμες ρυθμίσεις αξιοποιήθηκε μόνο το πεδίο του λογότυπου, στο οποίο τοποθετήθηκε ενιαία η εικόνα που εμφανίζει το όνομα του ιστοτόπου (το ακρωνύμιο ACMIMS) και το ανεπτυγμένο ακρωνύμιο στην αγγλική και στην ελληνική (Εικόνα 20). Η επιλογή της διαφορετικής εικόνας για τις δύο γλώσσες πραγματοποιήθηκε με την εγκατάσταση του πρόσθετου «Variable Translate». 54

71 Εικόνα 20. Οι βασικές ρυθμίσεις της θεματικής παραλλαγής στην υλοποίηση του ιστοτόπου ACMIMS. Ωστόσο, όπως παρατηρήθηκε, το μέγεθος του λογότυπου (εικόνα-ακρωνύμιο) προκαλούσε προβλήματα στην εμφάνιση του ιστοτόπου σε φορητές συσκευές, καθώς εμπόδιζε την εμφάνιση του μενού. Για τη λύση αυτού του προβλήματος, θα μπορούσε να χρησιμοποιηθεί για την ανάπτυξη του ακρωνυμίου η περιοχή υπότιτλος, η οποία, όμως, δεν προσφέρονταν 55

72 στη συγκεκριμένη παραλλαγή. Άλλωστε, αυτός ήταν ο λόγος της επιλογής μίας εικόνας, η οποία περιέχει τόσο το ακρωνύμιο όσο και την ανάπτυξή του. Μία επιλογή για τη λύση του προβλήματος ήταν η δημιουργία περιοχής υποτίτλου με τροποποίηση του κώδικα της θεματικής παραλλαγής. Μία δεύτερη επιλογή, η οποία επιλέχθηκε ως απλούστερη, ήταν η χρήση ερωτημάτων μέσου (media queries), τεχνική που εισήχθη με την CSS 3. Σύμφωνα με την τεχνική αυτή, μπορούν να χρησιμοποιηθούν για να την εισαγωγή κομματιών CSS εάν και εφόσον ικανοποιείται η συνθήκη. Η προσθήκη του ακόλουθου κώδικα καταφέρνει να μετακινήσει το μενού 50 pixels προς τα πάνω ώστε να μην υπερκαλύπτεται από το λογότυπο. Αυτή η μετακίνηση συμβαίνει μόνο για οθόνες με πλάτος μεγαλύτερο των 768 pixels και μικρότερο των 959 pixels, στην περιοχή δηλαδή που είχε εντοπιστεί το all and (min-width: 768px) and (max-width: 959px) {#navigation {margin-top: -50px;}} Η εισαγωγή του κώδικα έγινε στο αρχείο «custom.css» που βρίσκεται στο φάκελο στη διαδρομή /sites/all/themes/responsive_business. Το αρχείο «custom.css» δημιουργήθηκε για να προστίθενται εξατομικευμένες αλλαγές στο στυλ των ιστοσελίδων. Κατά τη δημιουργία του, δηλώθηκε στο αρχείο «responsive_business.info», που βρίσκεται στον ίδιο φάκελο, ώστε να λαμβάνεται υπόψη από τη θεματική παραλλαγή κατά την ανάγνωση της σελίδας (Εικόνα 21). Εικόνα 21. Μέρος του αρχείου «responsive_business.info» και το σημείο όπου δηλώθηκε το αρχείο «custom.css», στην υλοποίηση του ιστοτόπου ACMIMS. 56

73 Πολυγλωσσικότητα Ο ιστότοπος σχεδιάστηκε να είναι δίγλωσσος με το περιεχόμενό του να προσφέρεται από προεπιλογή στην αγγλική και στην ελληνική με εξαίρεση τις δημοσιεύσεις, οι οποίες επιλέχθηκε να παρουσιάζονται μόνο στην αγγλική. Ωστόσο, o τίτλος της σελίδας των δημοσιεύσεων καθώς και το στοιχείο μενού που παραπέμπει σε αυτήν μεταφράζονται. Όσον αφορά στο λογότυπο του Εθνικού Στρατηγικού Πλαισίου Ανάπτυξης (ΕΣΠΑ) στο κάτω μέρος κάθε σελίδας του ιστοτόπου ACMIMS, εμφανίζεται η εικόνα στην ελληνική για τις ελληνικές σελίδες και η αντίστοιχη αγγλική για τις αγγλικές. Η πολυγλωσσικότητα επιτυγχάνεται με τον συνδυασμό πρόσθετων, με κύριο το πρόσθετο «Entity Translation». Το «Entity Translation» δημιουργεί έναν κόμβο για πολλές μεταφράσεις, σε αντίθεση με το πρόσθετο «Content Translation» που δημιουργεί έναν κόμβο για κάθε μετάφραση, πρακτική που πλέον αντενδείκνυται [64]. Για να επιτύχει την πολυγλωσσική υποστήριξη του ιστοτόπου, το «Entity Translation» χρησιμοποιεί το πρόσθετο «Internationalization» (i18n) που προσφέρει, μεταξύ άλλων, τη ρύθμιση ώστε η αναγνώριση των γλωσσών να γίνεται είτε από το πρόθεμα του path ( ή με βάση το όνομα του domain ( Στις ρυθμίσεις του «Entity Translation» δίνεται η δυνατότητα επιλογής του τύπου οντοτήτων του Drupal (κόμβος, όρος ταξινόμησης, χρήστης) που θα είναι μεταφράσιμοι, καθώς επίσης και διαφόρων γενικών επιλογών μετάφρασης (π.χ. προκαθορισμένη γλώσσα) για διαφορετικούς τύπους ύλης. Για κάθε τύπο ύλης προς μετάφραση πρέπει να ενεργοποιηθεί η πολυγλωσσική υποστήριξη και μέσα από τις ρυθμίσεις δημοσίευσης του τύπου ύλης. Εικόνες αρχικής σελίδας Στην επιλεγμένη θεματική παραλλαγή δίνεται η δυνατότητα εισαγωγής στο «slideshow» έως και τριών εικόνων. Για την προσθήκη επιπλέον εικόνων απαιτήθηκε η τροποποίηση των αρχείων του θέματος και συγκεκριμένα του «page.tpl.php» στη διαδρομή /sites/all/themes/responsive_business/templates. Για την αλλαγή των προεπιλεγμένων εικόνων του θέματος και την εισαγωγή των πρόσθετων εικόνων αντικαταστάθηκαν οι εικόνες «slide-image-1.jpg», «slide-image-2.jpg» και «slide-image-3.jpg» με τις επιθυμητές και προστέθηκαν οι «slide-image-4.jpg», «slide-image-5.jpg» κ.ο.κ. στον φάκελο των εικόνων που βρίσκεται μέσα στον φάκελο του θέματος στη διαδρομή /sites/all/themes/responsive_business/images. Για την προσθήκη μίας επιπλέον εικόνας (τέταρτης) στο «page.tpl.php»: 57

74 <li class="slide"> <img src="<?php print base_path(). drupal_get_path('theme','responsive_business').'/images/slide-image- 4.jpg';?>" /> <?php if($slide4_desc) { print '<div class="caption">'. $slide4_desc. '</div>'; }?> </li><!--/slide --> Μορφοποίηση της εμφάνισης του επιλογέα γλώσσας Για την αλλαγή παρουσίασης του μπλοκ του επιλογέα γλώσσας στον ιστότοπο, αρχικά μετονομάστηκαν οι γλώσσες από «English» σε «EN» και από «Greek» σε «GR» μέσω του «Τοπικές ρυθμίσεις και γλώσσα». (Εικόνα 22, Εικόνα 23) Εικόνα 22. Η αρχική θέση και μορφοποίηση του μπλοκ του εναλλάκτη γλωσσών, στην υλοποίηση του ιστοτόπου ACMIMS. 58

75 Εικόνα 23. Ρύθμιση των ονομάτων των γλωσσών, στην υλοποίηση του ιστοτόπου ACMIMS. Στη συνέχεια, μέσα από τις ρυθμίσεις των μπλοκ, το μπλοκ «Language switcher (Content)» μεταφέρθηκε από την πρώτη πλευρική στήλη, όπου ήταν από προεπιλογή, στην περιοχή «Header». (Εικόνα 24) Εικόνα 24. Ρύθμιση της θέσης του εναλλάκτη γλωσσών από την περιοχή First Sidebar στην περιοχή Header, στην υλοποίηση του ιστοτόπου ACMIMS. 59

76 Έπειτα, μορφοποιήθηκε το στυλ εμφάνισης του μπλοκ μέσα στο αρχείο «custom.css» με τον ακόλουθο κώδικα CSS. (Εικόνα 25) #block-locale-language-content {text-align: right;}.en,.el { display:inline; font-size:16px;}.en { border-right: 2px solid; margin-right: 2px; padding-right: 5px;} Εικόνα 25. Η τελική θέση και μορφοποίηση του μπλοκ του εναλλάκτη γλωσσών στην υλοποίηση του ιστοτόπου ACMIMS. 60

77 Διευθύνσεις URL Από προεπιλογή, το Drupal χρησιμοποιεί και δημιουργεί διευθύνσεις URL για τις σελίδες του ιστοτόπου που προβάλλονται ως Ενεργοποιώντας τις καθαρές διευθύνσεις URL, η παραπάνω διεύθυνση εμφανίζεται χωρίς τα σύμβολα «?q=» ως Επιπρόσθετα, με χρήση του module «Pathauto», επιτυγχάνεται η αυτόματη δημιουργία ψευδωνύμων URL χωρίς να απαιτείται από τον χρήστη να καθορίσει χειροκίνητα το ψευδώνυμο διαδρομής. Τα ψευδώνυμα δημιουργούνται με βάση ένα πρότυπο που χρησιμοποιεί «tokens» και που καθορίζεται από τον διαχειριστή. Στο παραπάνω παράδειγμα, ο κόμβος με nid=15, που είναι τύπου περιεχομένου «Research-Team» και έχει τίτλο κόμβου Dr. Theodoros D. Tsiboukis, εμφανίζεται ως Αντίστοιχα, για τις σελίδες στην ελληνική, το URL διαμορφώνεται ως Εικόνα 26. Ρύθμιση του «Pathauto» στην υλοποίηση του ιστοτόπου ACMIMS. Μπλοκ Τα μπλοκ που χρησιμοποιούνται στον ιστότοπο του ACMIMS είναι τα λογότυπα (στην ελληνική και στην αγγλική) του ΕΣΠΑ καθώς και ένας χάρτης στην σελίδα επικοινωνίας, όπου καταδεικνύεται η διεύθυνση του εργαστηρίου. Στον ιστότοπο του εργαστηρίου ACEL, προστέθηκε ένα επιπλέον μπλοκ στην πλαϊνή στήλη με πληροφορίες για το πρόγραμμα ACMIMS και σύνδεσμο για τον αντίστοιχο ιστότοπο. Η προσθήκη του λογότυπου ΕΣΠΑ στην περιοχή «Footer» της κάθε σελίδας προϋπέθετε τη δημιουργία δύο μπλοκ με το ίδιο περιεχόμενο αλλά σε διαφορετική γλώσσα και ανάλογη ρύθμιση για την εμφάνιση του εκάστοτε λογοτύπου στις σελίδες στη συγκεκριμένη γλώσσα. 61

78 Η προσθήκη σελίδας φόρμας επικοινωνίας μπορεί να γίνει αυτόματα στο Drupal με τη χρήση του ενσωματωμένου πρόσθετου «Contact». Πέρα από τη ρύθμιση της σελίδας επικοινωνίας ( παραλήπτη, μηνύματα φόρμας κ.α.) θεωρήθηκε σκόπιμο να εισαχθεί στη σελίδα επικοινωνίας ένας χάρτης με τη διεύθυνση του εργαστηρίου. Για το σκοπό αυτό, στο περιεχόμενο της σελίδας επικοινωνίας προστέθηκαν μπλοκ με τη διεύθυνση του εργαστηρίου και τον αντίστοιχο χάρτη και ρυθμίστηκαν ώστε να εμφανίζονται μόνο στη συγκεκριμένη σελίδα, και συγκεκριμένα πάνω από το κυρίως περιεχόμενό της (φόρμα επικοινωνίας). (Εικόνα 27) Για την παρουσίαση της διεύθυνσης σε χάρτη, προτιμήθηκαν οι χάρτες OpenStreetMap (OpenStreetMap Foundation, UK) [65], [66]. Εικόνα 27. Η τελική σελίδα επικοινωνίας του ιστοτόπου ACMIMS. Τύποι Ύλης Βασικοί τύποι ύλης Οι βασικοί τύποι ύλης που περιέχονται στον πυρήνα του Drupal είναι η Βασική Σελίδα (Basic Page) και το Άρθρο (Article). H εισαγωγή μίας καταχώρησης των παραπάνω τύπων, γίνεται με την επιλογή «Περιεχόμενο > Προσθήκη Ύλης» από το διαχειριστικό μενού και συμπλήρωση των πεδίων που ζητούνται. Σε περίπτωση που χρειαστεί η δημιουργία ενός 62

79 πρόσθετου τύπου ύλης, δημιουργείται από το μενού «Δομή > Τύποι Ύλης > Προσθήκη Τύπου Ύλης». Για την προσθήκη περιεχομένου ο χρήστης πρέπει να έχει γνώση HTML. Για τη διευκόλυνση της προσθήκης περιεχομένου και από μη εξειδικευμένους χρήστες εισαγάγεται ένας WYSIWYG κειμενογράφος, με τον οποίο η καταχώρηση και μορφοποίηση του εισαγόμενου κειμένου γίνεται εύκολα μέσω επιλογών-κουμπιών. Κατά την προσθήκη του περιεχομένου της βασικής σελίδας «Περιγραφή» στον ιστότοπο ACMIMS, λόγω της έκτασης του κειμένου, προέκυψε η ανάγκη της αρχικής απόκρυψης κάποιων πληροφοριών και της εμφάνισής τους κατόπιν επιθυμίας του χρήστη. Η υλοποίηση έγινε με χρήση της jquery. Ο κώδικας εισήχθη στο template στη διαδρομή /sites/all/themes/responsive_business/templates/page.tpl.php και έτσι κατέστη διαθέσιμο για όλες τις σελίδες. <script type="text/javascript"> (function($) { $(document).ready(function(){ $(".toggler").click(function(){ $(this).next().slidetoggle("slow"); return false; }).next().hide(); }); })(jquery); </script> Με το πάτημα του ποντικιού στους τίτλους των περιεχομένων της σελίδας «Περιγραφή» ενεργοποιείται η εμφάνιση του περιεχομένου σε απόκρυψη. Για τη λειτουργία αυτή, ο κώδικας που χρησιμοποιήθηκε αναπτύσσεται παρακάτω: <style type="text/css"> p.toggler:hover { color:#0071b3;} </style> <p class="toggler" style="cursor:pointer;">show/hide the following paragraph(s).</p> <div> This paragraph is initially hidden. Clicking on the link above will reveal (Show) all the content inside the DIV that immediately follows a "toggler" class paragraph. </div> 63

80 Τέλος, στο αρχείο «custom.css» συμπεριλήφθηκαν τροποποιήσεις σχετικές με τη μορφοποίηση του κειμένου (χρώμα γραμματοσειράς, περιθώρια κειμένου)..page-node-5.field-type-text-with-summary li p:nth-child(1) {color:#2e8484;}.text_hidden_java p {color:#555555!important; margin: 0 0 0;} Νέοι τύποι ύλης Για την εισαγωγή κόμβων τύπου «News», απαιτούνται πεδία που δεν υπάρχουν στους προϋπάρχοντες τύπους ύλης και συνεπώς για τη δημιουργία τους απαιτείται είτε η προσθήκη των απαραίτητων πεδίων σε κάποιον από τους προϋπάρχοντες τύπους ύλης είτε η δημιουργία νέων τύπων ύλης. [67]. Για τον ιστότοπο ACMIMS, οι τύποι ύλης που απαιτήθηκαν είναι οι δημοσιεύσεις, τα νέα και τα μέλη του ερευνητικού προσωπικού. Τύπος ύλης «News» Ένας κόμβος τύπου «News» χρειάζεται έναν τίτλο, ένα πεδίο κειμένου για το περιεχόμενο της είδησης και αντίστοιχα πεδία για την ημερομηνία, το αρχείο (εάν υπάρχει) και την εικόνα της είδησης. Τα πεδία που χρησιμοποιήθηκαν στην ανάπτυξη του ιστοτόπου ACMIMS φαίνονται στην εικόνα 28. Εικόνα 28. Τα πεδία που προστέθηκαν για τη δημιουργία του τύπου ύλης «News» στην υλοποίηση του ιστοτόπου ACMIMS. Περιλήφθηκαν τα πεδία Title (κείμενο), Body (μακρύ κείμενο και περίληψη), News_date (ημερομηνία), News_file (αρχείο), News_image (εικόνα). Σε παρένθεση αποδίδεται ο τύπος πεδίου. Δημιουργία της σελίδας «Νέα» Η δημιουργία της ζητούμενης σελίδας «Νέα» που συγκεντρώνει και παρουσιάζει τους κόμβους τύπου ύλης «News» γίνεται με τη βοήθεια του πρόσθετου «Views». Το πρόσθετο «Views» διευκολύνει τη δημιουργία ερωτημάτων (queries) προς τη βάση δεδομένων. Οι 64

81 ρυθμίσεις που προσφέρει αφορούν τόσο στο ίδιο το ερώτημα προς τη βάση (με φίλτρα), όσο και στον τρόπο εμφάνισης των αποτελεσμάτων (πλήθος αποτελεσμάτων, μορφή εμφάνισης, ταξινόμηση, ομαδοποίηση, εμφάνιση καταλόγου σελίδων κ.α.). (Εικόνα 29, Εικόνα 30) Εικόνα 29. Η διαχειριστική σελίδα του πρόσθετου Views για την δημιουργία της σελίδας «Νέα» στην υλοποίηση του ιστοτόπου ACMIMS. Η σελίδα «Νέα» ρυθμίστηκε να εμφανίζεται στη σελίδα 65

82 Εικόνα 30. Η τελική εμφάνιση της σελίδας που δημιουργήθηκε με χρήση του πρόσθετου «Views» και παρουσιάζει όλα τα νέα, ταξινομημένα από το νεότερο προς το παλαιότερο. Υλοποίηση στον ιστότοπο ACMIMS. Στο ΠΑΡΑΡΤΗΜΑ ΣΤ παρουσιάζεται η δομή της βάσης δεδομένων που χρησιμοποιεί το Drupal με εφαρμογή στην εγγραφή καταχωρήσεων του τύπου ύλης «News» στη βάση δεδομένων. Τύπος ύλης «Publication» Ένας κόμβος τύπου ύλης «Publication» χαρακτηρίζεται από έναν όρο ταξινόμησης που αποτελεί μία κατηγοριοποίηση των δημοσιεύσεων. Αυτή η κατηγοριοποίηση καθορίζεται με τη δημιουργία συγκεκριμένου πεδίου στον υπό ανάπτυξη νέο τύπο ύλης. Η εφαρμογή του πεδίου προϋποθέτει τη δημιουργία του λεξιλογίου αυτής της ταξινόμησης. Η δημιουργία του λεξιλογίου πραγματοποιείται από το διαχειριστικό μενού στη διαδρομή «Διαχείριση > Δομή > Ταξινόμηση > Προσθήκη Λεξιλογίου» και στη συνέχεια, η προσθήκη των όρων δίνεται σαν επιλογή μέσα από το λεξιλόγιο. (Εικόνα 31) 66

83 Εικόνα 31. Διαχειριστική σελίδα λεξιλογίου «Publication Type» και προσθήκη όρων για την κατηγοριοποίηση των δημοσιεύσεων στη δημιουργία του τύπου ύλης «Publication». Εφαρμογή στον ιστότοπο ACMIMS. Έχοντας δημιουργήσει το λεξιλόγιο, ακολουθεί η δημιουργία του τύπου ύλης των δημοσιεύσεων. Ως πεδίο σε αυτόν τον τύπο θα εισαχθεί το νέο λεξιλόγιο ως τύπος «αναφορά όρου». Τα πεδία που προστίθενται στον τύπο ύλης είναι τα ακόλουθα, όπου σε αγκύλες ο τύπος πεδίου: Εικόνα 32. Τα πεδία που προστέθηκαν για τη δημιουργία του τύπου ύλης «News» στην υλοποίηση του ιστοτόπου ACMIMS. Περιλήφθηκαν τα πεδία Title (κείμενο), Body (μακρύ κείμενο και περίληψη), Publication_type (αναφορά όρου), Publication_file (αρχείο), Publication_date (ημερομηνία). Σε παρένθεση αποδίδεται ο τύπος πεδίου. Δημιουργία της σελίδας «Δημοσιεύσεις» Η σελίδα «Δημοσιεύσεις» που θα συγκεντρώνει και θα εμφανίζει τους κόμβους τύπου ύλης «Publication» αντιστοιχίστηκε στη σελίδα Για να μπορεί ο χρήστης να επιλέξει τον τύπο δημοσίευσης που επιθυμεί, το πρόσθετο «View» 67

84 ρυθμίστηκε κατάλληλα ώστε να εκθέτει στον χρήστη το πεδίο του τύπου δημοσίευσης ως φίλτρο για τη διαλογή των αποτελεσμάτων. (Εικόνα 33) Εικόνα 33. Η ρύθμιση του φίλτρου «Τύπος Δημοσίευσης» ώστε να εκτεθεί ως φίλτρο κατηγοριοποίησης των αποτελεσμάτων στους χρήστες. Εφαρμογή στον ιστότοπο ACMIMS. Αλλαγή πεδίου ημερομηνίας στον τύπο ύλης «Δημοσιεύσεις» Κατά την υλοποίηση του τύπου ύλης δημοσιεύσεων διαπιστώθηκε η ανάγκη για μία πρόσθετη παράμετρο ταξινόμησης των δημοσιεύσεων στη σελίδα «Publications». Στην αρχική υλοποίηση η ταξινόμηση γίνονταν με κριτήριο το έτος δημοσίευσης (από το νεότερο προς το παλαιότερο). Λόγω των πολλαπλών δημοσιεύσεων ανά έτος προέκυψε η ανάγκη του ακριβέστερου προσδιορισμού της ημερομηνίας δημοσίευσης για την ικανοποίηση του παραπάνω κριτηρίου ταξινόμησης. Σε αυτήν την κατεύθυνση, το πεδίο publication_date (ημερομηνία) του τύπου ύλης «Publication» τροποποιήθηκε ούτως ώστε για κάθε δημοσίευση να καταχωρείται η πλήρης ημερομηνία δημοσίευσής της (DD/MM/YYYY). Σημειώνεται πως οι ημερομηνίες αυτές (πεδίο Publication_date) χρησιμοποιούνται μόνο στην εσωτερική ταξινόμηση των αποτελεσμάτων και δεν εμφανίζονται στη σελίδα «Δημοσιεύσεις». Στην τελική σελίδα εμφανίζεται μόνο το πεδίο κειμένου Body της δημοσίευσης, όπου αναγράφεται μόνο η χρονολογία δημοσίευσης. (Εικόνα 34) 68

85 Εικόνα 34. Η τελική εμφάνιση της σελίδας που δημιουργήθηκε με χρήση του πρόσθετου «Views» και παρουσιάζει όλες τις δημοσιεύσεις, ταξινομημένες με κριτήριο το έτος δημοσίευσής τους. Υλοποίηση στον ιστότοπο ACMIMS. Τύπος ύλης «Research Team» Στον κόμβο τύπου «Research Team» συμπεριλήφθηκαν πεδία για το όνομα του μέλους του ερευνητικού προσωπικού, τη βαθμίδα του, τον ρόλο του στο ερευνητικό πρόγραμμα, το βιογραφικό του, το του και μία φωτογραφία του. Τα πεδία αυτά και οι τύποι των πεδίων ορίστηκαν τα εξής: Title (κείμενο), Curriculum Vitae (μακρύ κείμενο και περίληψη), ( ), Role in The Project (Μακρύ κείμενο), Photo (εικόνα), Position (κείμενο). Δημιουργία σελίδας «Ερευνητικό Προσωπικό» Για τη δημιουργία της σελίδας χρησιμοποιήθηκε το πρόσθετο «Views» όμοια με τη δημιουργία των σελίδων «Νέα» και «Δημοσιεύσεις». (βλέπε υποενότητες Δημιουργία της σελίδας «Νέα», Δημιουργία της σελίδας «Δημοσιεύσεις») Η περαιτέρω μορφοποίηση της σελίδας πραγματοποιήθηκε με τη χρήση CSS και συγκεκριμένα με τις παρακάτω προσθήκες στο αρχείο «custom.css»: 69

86 .views-field-field-personnel-photo img { border-radius: 5px;}.view-research-team table { border-style:none; background-color: #ffffff;}.view-research-team td,.view-research-team tr { border-style:none; background-color: #ffffff; border-right: none; border-bottom: 4px solid #ddd; border-top: none; padding-bottom:30px; padding-top: 30px;}.field-name-field-personnel-photo{ display: inline; float: left; margin-right: 20px;}.field-name-field-personnel-photo img { padding: 6px; border: 1px solid #cccccc}.field-name-body {text-align:justify;} Πρόσθετα της Drupal κοινότητας και εξατομικευμένα πρόσθετα Επιπλέον των πρόσθετων που προσφέρονται στον πυρήνα του Drupal, υπάρχουν πρόσθετα που έχουν δημιουργηθεί από την Drupal κοινότητα (Contributed Modules) καθώς και εξατομικευμένα πρόσθετα (Custom Modules) που δημιουργούνται κατά περίπτωση από τον χρήστη για να καλύψουν συγκεκριμένες ανάγκες κατά την ανάπτυξη ενός ιστοτόπου. Τα πρόσθετα της Drupal κοινότητας πριν καταστούν διαθέσιμα στην κοινότητα (με ελεύθερη πάντα διανομή) υπόκεινται σε μία διαδικασία ελέγχου και διασφάλισης της ποιότητας του κώδικα (βλέπε ενότητα Διαχείριση και Ασφάλεια). Αντίστοιχη διασφάλιση της ποιότητας δεν εξασφαλίζεται στα εξατομικευμένα πρόσθετα και συνεπώς η δημιουργία και η χρήση τους θα πρέπει να γίνεται με προσοχή και να περιορίζεται στις περιπτώσεις που είναι αναγκαία. Όσον αφορά στα πρόσθετα που συνεισφέρουν τα μέλη της κοινότητας, παραδείγματα πρόσθετων που χρησιμοποιήθηκαν στους ιστοτόπους ACMIMS και ACEL δίνονται στον 70

87 πίνακα 5. Το σύνολο των πρόσθετων που χρησιμοποιήθηκαν αναφέρονται στο ΠΑΡΑΡΤΗΜΑ Ζ. Πίνακας 5. Παραδείγματα πρόσθετων της Drupal κοινότητας που χρησιμοποιήθηκαν κατά την υλοποίηση των ιστοτόπων ACMIMS και ACEL. Πρόσθετο Date Περιγραφή λειτουργίας Δημιουργεί τον τύπο πεδίου ημερομηνία/ώρα Δημιουργεί τον τύπο πεδίου για εισαγωγή Field Group Grid Field Formatter Link Παρέχει τη δυνατότητα της ομαδοποίησης των πεδίων τόσο για την εισαγωγή τους όσο και για την παρουσίασή τους Παρέχει τη δυνατότητα παρουσίασης των πεδίων σε διάταξη πλέγματος Δημιουργεί πεδίο για περιεχόμενο τύπου συνδέσμου Title Αντικαθιστά τον προκαθορισμένο τίτλο ενός κόμβου με απλό πεδίου κειμένου Entity Translation (i18n, i10n) Colorbox EU Cookie Compliance Views Επιτρέπει την μετάφραση οντοτήτων σε διαφορετικές γλώσσες Δημιουργεί παρουσίαση συλλογής εικόνων Για τη συμμόρφωση με την ευρωπαϊκή νομοθεσία για τα cookies Δημιουργεί προσαρμοσμένες λίστες με ερωτήματα προς τη βάση δεδομένων Administration menu Παρέχει ένα αναπτυσσόμενο μενού (για χρήστες με κατάλληλα δικαιώματα) για αρκετές διαχειριστικές επιλογές WYSIWYG Επιτρέπει την επεξεργασία περιεχομένου με WYSIWYG κειμενογράφους Pathauto Δημιουργεί πρότυπα για την αυτόματη δημιουργία ψευδωνύμων URL 71

88 Επιπλέον, ως απάντηση στην ανάγκη σύνδεσης του ερευνητικού προσωπικού με τις δημοσιεύσεις που συμμετείχε στο πλαίσιο του προγράμματος ACMIMS, υλοποιήθηκε το εξατομικευμένο πρόσθετο με την ονομασία «List Publications for each Research-Teammember» (list_publication) [68], [69]. Παρακάτω παρατίθεται ο κώδικας του αρχείου «list_publications.info» που βρίσκεται στον φάκελο του εξατομικευμένου πρόσθετου στη διαδρομή /sites/all/modules/list_publications. (Εικόνα 35) name = List Publications for each Research-Team-member description = Provide a list with publications of each Research Team's member. (displayed in the node of the member) package = asousos Modules core = 7.x Συμπληρωματικά, παρατίθεται ο κώδικα του αρχείου «list_publications.module» στον φάκελο του εξατομικευμένου πρόσθετου. <?php function list_publications_node_view($node, $view_mode, $langcode) { /* First check if we have the correct content type */ if($node->type!== 'research_team') return; /* Last name is the last word of the node:title */ $lastname = array_pop(explode(' ',$node->title_field['en'][0] ['value'])); $userpubs = array(); /* Find all nodes of publication-content-type */ $pubs = node_load_multiple(array(), array('type' => 'publication')); /* And iterate over them */ foreach($pubs as $pub) { if(stristr($pub->body['en'][0]['value'], $lastname)!== FALSE) { array_push($userpubs, $pub->body['en'][0]['value']); 72

89 } } /* Return if no publication has been found */ if(count($userpubs) == 0) return; /* Make the markup */ global $language_content; $lang_name=$language_content->language; if ($lang_name == en){ $pubsval = "<h2 class='listofpubs'>list of Publications in the context of ACMIMS project</h2><ol>\n";} else { $pubsval = "<h2 class='listofpubs'>λίστα Δημοσιεύσεων στο πλαίσιο του προγράμματος ACMIMS</h2><ol>\n";} foreach($userpubs as $pub) { $pubsval.= "<li>"; $pubsval.= $pub; $pubsval.= "</li>\n"; } $pubsval.= "</ol>\n"; /* Add extra content */ $node->content['field_publications'] = array( '#markup' => $pubsval, '#weight' => 10, ); } 73

90 Εικόνα 35. Η συσχέτιση του ερευνητικού προσωπικού με τις δημοσιεύσεις στο πλαίσιο του προγράμματος ACMIMS ως αποτέλεσμα της υλοποίησης του εξατομικευμένου πρόσθετου «List Publications for each Research- Team-member» κατά την υλοποίηση του ιστοτόπου ACMIMS. 74

91 Διαχείριση και Ασφάλεια Ασφάλεια και κίνδυνοι στον Ιστό Η ασφάλεια στο διαδίκτυο και τις παρακείμενες τεχνολογίες του αποτελεί ένα συνεχώς μεταβαλλόμενο, ταχέως εξελισσόμενο πεδίο. Αντίστοιχα, ως απάντηση στους πολλαπλούς κινδύνους, προκύπτει η ανάγκη της διαρκούς αναθεώρησης των μεθόδων ασφαλείας για την προστασία ενός ιστοτόπου. Οι δέκα κυριότεροι κίνδυνοι περιγράφονται από τον οργανισμό Open Web Application Security Project (OWASP Foundation, MD), έναν παγκόσμιο μη κερδοσκοπικό οργανισμό προσανατολισμένο στη βελτίωση της ασφάλειας του λογισμικού [70]. Ο οργανισμός έχει σαν στόχο την προβολή των ζητημάτων ασφάλειας του λογισμικού, ούτως ώστε ανεξάρτητοι προγραμματιστές ή σχετικοί οργανισμοί να ενημερώνονται και να τεκμηριώσουν τις αποφάσεις τους όσον αφορά στην ασφάλεια των προϊόντων/υπηρεσιών τους. Τα κριτήρια για την κατάρτιση της προαναφερόμενης λίστας ήταν η πιθανότητα ύπαρξης ευπάθειας σε μία εφαρμογή (επιπολασμός, prevalence), η πιθανότητα ανίχνευσης αυτής της ευπάθειας από έναν εισβολέα (ανιχνευσιμότητα, detectability), η πιθανότητα επιτυχούς εκμετάλλευσης της ευπάθειας από τον εισβολέα (εκμεταλλευσιμότητα, exploitability) και η επίπτωση από την επιτυχή εκμετάλλευση της ευπάθειας (επίπτωση, impact). Βάσει αυτών των κριτηρίων οι 10 κυριότεροι κίνδυνοι που ανακοινώθηκαν από τον OWASP είναι οι εξής: 1. Σφάλματα παρεμβολής Σφάλματα παρεμβολής (injection flaws) όπως SQL, OS και LDAP παρεμβολές συμβαίνουν όταν μη αξιόπιστα δεδομένα αποστέλλονται σε έναν διερμηνευτή ως τμήμα μίας εντολής ή ενός ερωτήματος. Τα ανεπιθύμητα δεδομένα του εισβολέα δύναται να ξεγελάσουν τον διερμηνευτή στην εκτέλεση ανεπιθύμητων εντολών ή στην πρόσβαση δεδομένων χωρίς κατάλληλη εξουσιοδότηση. 2. Σφάλματα ελέγχου ταυτότητας και διαχείρισης συνεδρίας Οι λειτουργίες εφαρμογών σχετιζόμενων με έλεγχο ταυτότητας (authentication) και η διαχείριση συνεδρίας (session management) συχνά δεν ρυθμίζονται κατάλληλα, επιτρέποντας στους εισβολείς να παραβιάσουν κωδικούς, κλειδιά, session tokens ή να εκμεταλλευτούν άλλα σφάλματα στην υλοποίηση ώστε να προσποιηθούν ταυτότητες άλλων χρηστών. 75

92 3. Cross-Site Scripting (XSS) Τα σφάλματα XSS προκύπτουν όποτε μία εφαρμογή δέχεται μη αξιόπιστα δεδομένα και τα επιστρέφει στο πρόγραμμα περιήγησης χωρίς κατάλληλη επικύρωση ή διαφυγή. Το XSS επιτρέπει στους εισβολείς να εκτελέσουν δέσμες ενεργειών στο πρόγραμμα περιήγησης του θύματος με στόχο την παραβίαση συνεδριών χρήστη, την αλλοίωση ιστοσελίδων ή την ανακατεύθυνση του χρήστη σε κακόβουλες ιστοσελίδες [71]. 4. Μη ασφαλείς απευθείας αναφορές σε αντικείμενο Η απευθείας αναφορά σε αντικείμενο (Direct Object Reference) προκύπτει όταν ο προγραμματιστής εκθέτει μία αναφορά σε ένα εσωτερικό αντικείμενο της υλοποίησης, όπως ένα αρχείο, ένα φάκελο ή το κλειδί μίας βάσης δεδομένων. Χωρίς έλεγχο πρόσβασης ή άλλη προστασία, οι εισβολείς μπορούν να διαχειριστούν αυτές τις αναφορές και να αποκτήσουν πρόσβαση σε δεδομένα χωρίς την κατάλληλη εξουσιοδότηση. 5. Εσφαλμένη ρύθμιση παραμέτρων ασφαλείας Ένα επαρκές σύστημα ασφάλειας απαιτεί την ύπαρξη μίας ασφαλούς παραμετροποίησης ορισμένης και διανεμημένης στην εφαρμογή, στο πλαίσιο λογισμικού, στον εξυπηρετητή της εφαρμογής, στον εξυπηρετητή του Ιστού, στον εξυπηρετητή της βάσης δεδομένων και στην πλατφόρμα. Οι ρυθμίσεις ασφαλείας πρέπει να οριστούν, να υλοποιηθούν και να ανανεωθούν καθώς οι προκαθορισμένες ρυθμίσεις είναι συχνά ανεπαρκείς. Επιπρόσθετα, το λογισμικό πρέπει τακτικά να ενημερώνεται. 6. Αποκάλυψη ευαίσθητων δεδομένων Πολλές εφαρμογές Ιστού δεν προστατεύουν επαρκώς ευαίσθητα προσωπικά δεδομένα, όπως πιστωτικές κάρτες, φορολογικά δεδομένα και διαπιστευτήρια ελέγχου ταυτότητας. Οι εισβολείς μπορούν να κλέψουν ή να τροποποιήσουν τα ανεπαρκώς προστατευμένα δεδομένα για να πραγματοποιήσουν κακόβουλες ενέργειες με τη χρήση πιστωτικών καρτών, κλοπή ταυτότητας (identity theft) ή άλλα εγκλήματα. Τα ευαίσθητα δεδομένα απαιτούν επιπλέον προστασία όπως κρυπτογράφηση των δεδομένων σε κατάσταση ηρεμίας (at rest) ή σε μεταφορά (in transit) καθώς και ειδικές προφυλάξεις κατά την ανταλλαγή δεδομένων με το πρόγραμμα περιήγησης. 76

93 7. Απουσία ελέγχου πρόσβασης σε επίπεδο λειτουργικότητας Οι περισσότερες εφαρμογές Ιστού επαληθεύουν τα δικαιώματα πρόσβασης σε επίπεδο λειτουργίας πριν καταστήσουν την λειτουργικότητα ορατή στον χρήστη. Ωστόσο, οι εφαρμογές απαιτείται να πραγματοποιούν τους ίδιους ελέγχους πρόσβασης και στον διακομιστή, κατά την πρόσβαση στη λειτουργία. Εάν δεν πραγματοποιηθεί επαλήθευση των αιτήσεων, οι εισβολείς αποκτούν τη δυνατότητα να πλαστογραφήσουν τις αιτήσεις και να αποκτήσουν πρόσβαση στις λειτουργίες χωρίς την κατάλληλη εξουσιοδότηση. 8. Cross-Site Request Forgery (CSRF) Η επίθεση CSRF (Cross-Site Request Forgery) αναγκάζει το πρόγραμμα περιήγησης ενός συνδεδεμένου χρήστη να αποστείλει ένα πλαστό αίτημα HTTP, συμπεριλαμβανομένου του session cookie του χρήστη και άλλων πληροφοριών εξουσιοδότησης, σε μία ευπαθή εφαρμογή Ιστού. Αυτό επιτρέπει σε έναν εισβολέα να αναγκάσει το πρόγραμμα περιήγησης του θύματος να δημιουργήσει αιτήματα στην ευπαθή εφαρμογή, θεωρούμενα ως αξιόπιστα αιτήματα προερχόμενα από το θύμα. 9. Χρήση στοιχείων με γνωστές ευπάθειες Στοιχεία όπως βιβλιοθήκες, πλαίσια ή/και πρόσθετα λογισμικού εκτελούνται σχεδόν πάντα με πλήρη δικαιώματα. Η εκμετάλλευση ενός τέτοιου ευπαθούς στοιχείου μπορεί να οδηγήσει σε σημαντική απώλεια δεδομένων ή κατάληψη του διακομιστή. Η υπονόμευση της ασφάλειας των εφαρμογών που κάνουν χρήση τέτοιων ευπαθών στοιχείων μπορεί πιθανά να οδηγήσει στην ενεργοποίηση ποικίλων επιθέσεων. 10. Ανακατευθύνσεις και προωθήσεις χωρίς επικύρωση Εφαρμογές Ιστού συχνά ανακατευθύνουν και προωθούν χρήστες σε άλλες σελίδες και ιστοτόπους και χρησιμοποιούν μη αξιόπιστα δεδομένα για να προσδιορίσουν τις σελίδες προορισμού. Χωρίς σωστή επικύρωση, οι εισβολείς μπορούν να ανακατευθύνουν τα θύματα σε κακόβουλους ιστοτόπους ή ιστοτόπους ηλεκτρονικού «ψαρέματος» ή να τα προωθήσουν σε μη εξουσιοδοτημένες σελίδες. Ασφάλεια στο Drupal Το Drupal είναι ένα δοκιμασμένα ασφαλές WCMS, με μηχανισμούς ελέγχου και αποφυγής κρίσιμων ευπαθειών του Ιστού. Τόσο ο σχεδιασμός του Drupal όσο και η διαχρονική εξέλιξή του δίνει ιδιαίτερο βάρος στην ασφάλειά του. Η επιλογή του από πλήθος χρηστών, 77

94 συμπεριλαμβανομένων κυβερνήσεων και κορυφαίων εταιρειών, για την υλοποίηση ιστοτόπων και εφαρμογών, αποτελεί αναγνώριση του επιπέδου ασφάλειας που παρέχει καθώς και διαρκής δοκιμασία απέναντι στα πιο αυστηρά πρότυπα [72]. Μία ειδική ομάδα ασφάλειας, πλαισιωμένη από ένα εκτεταμένο επαγγελματικό «οικοσύστημα» παροχής υπηρεσιών και μία πολυπληθή κοινότητα προγραμματιστών, παγκοσμίως, διασφαλίζει την ταχεία αντιμετώπιση των θεμάτων ασφαλείας που ανακύπτουν. Πολλά προβλήματα ασφαλείας έχουν προληφθεί ή αντιμετωπιστεί εξ ολοκλήρου από τις ισχυρές προδιαγραφές και την αυστηρή διαδικασία αναθεώρησης του κώδικα της κοινότητας. Η αρχική εφαρμογή του Drupal, πριν από περίπου μία δεκαετία, ήταν η δημιουργία ενός chat room μεταξύ οκτώ φοιτητών. Σήμερα, με τη βοήθεια του Drupal χιλιάδες επιχειρήσεις, πανεπιστήμια, κυβερνήσεις και άλλοι οργανισμοί εξασφαλίζουν την ασφαλή παρουσία τους στο διαδίκτυο. Για οποιαδήποτε από τις παραπάνω εφαρμογές, η συγγραφή κώδικα για το Drupal οφείλει να πληρεί τα ίδια υψηλά πρότυπα ασφαλείας και διαχρονικά να προηγείται των πιθανών μελλοντικών κινδύνων. Το Drupal είναι ένα τεράστιο έργο λογισμικού ανοικτού κώδικα. Το μέγεθός του συγκρίνεται με ελάχιστα έργα ανοικτού κώδικα, παγκοσμίως, όπως τα Linux (Linux Mark Institute, OR), Apache (The Apache Software Foundation, Forest Hill, MD) και Mozilla (Mozilla Foundation, Mountain View, CA). Σημειώνεται ότι το λογισμικό ανοικτού κώδικα είναι τουλάχιστον το ίδιο ασφαλές συγκρινόμενο με το κλειστό λογισμικό (όπου η ορατότητα του πηγαίου κώδικα είναι καλά φυλασσόμενη και σε μεγάλο βαθμό περιορισμένη) [73] [75]. Ο ανοικτός κώδικας δημιουργεί τις προϋποθέσεις για βελτίωση της ασφάλειας, ιδιαίτερα όταν αποτελεί αντικείμενο μίας κοινότητας χιλιάδων προγραμματιστών. Ο εντοπισμός και η διόρθωση των σφαλμάτων ασφάλειας πραγματοποιείται δυνητικά από οποιονδήποτε χρήστη με ταυτόχρονο όφελος για το σύνολο της κοινότητας. Τελικά, ο ανοικτός κώδικας λειτουργεί προς όφελος της ασφάλειας, σε αντίθεση με την εσφαλμένη κοινή αντίληψη της υπεροχής του κλειστού κώδικα σε όρους ασφάλειας [74]. Άλλωστε, αυτός ήταν ένας από τους κύριους λόγους που ο Λευκός Οίκος των Η.Π.Α. υλοποίησε τον ιστότοπο του σε Drupal [75]. Τέλος, σημειώνεται ότι προβλήματα σε επίπεδο διακομιστή (όπως χρήση μη ασφαλών πρωτοκόλλων τύπου FTP) είναι πιθανότερο να αποτελέσουν στόχους μίας επιτυχημένης επίθεσης συγκριτικά με μία εγγενή ευπάθεια του Drupal και ιδιαίτερα του πυρήνα του. Ομάδα αφιερωμένη στην ασφάλεια H διαδικασία ασφάλειας του Drupal πρέπει να πραγματοποιείται γρήγορα και διακριτικά ώστε να διορθώνει τα προβλήματα πριν αυτά γίνουν ευρέως γνωστά ή/και εκμεταλλεύσιμα. 78

95 Το 2005, το Drupal επισημοποίησε την ύπαρξη ειδικής ομάδας ασφάλειας, η οποία σήμερα αριθμεί δεκάδες κορυφαίους ειδικούς, παγκοσμίως ενώ ταυτόχρονα συντηρεί ένα δημόσιο διαδικτυακό διάλογο σχετικά με την ασφάλεια του Drupal. Η ομάδα αντλεί τα μέλη της από εταιρείες συμβούλων, εργολάβους κυβερνήσεων, μη-κερδοσκοπικούς, κερδοσκοπικούς ή εκπαιδευτικούς οργανισμούς, φορείς παροχής υπηρεσιών Drupal καθώς και τελικούς χρήστες. Η ομάδα ασφάλειας δημοσιεύει κατευθύνεις και οδηγίες σχετικά με την ασφάλεια του Drupal και παράλληλα ελέγχει, επιβεβαιώνει και απαντά σε συγκεκριμένα θέματα ασφαλείας που ανακύπτουν. Τα θέματα ασφαλείας αναφέρονται εμπιστευτικά στην ομάδα, η οποία στη συνέχεια συντονίζει τις ενέργειες των συντηρητών του κώδικα του πυρήνα και των πρόσθετων της κοινότητας. Πολιτική της ομάδας ασφάλειας του Drupal είναι η ευαισθητοποίηση και η πρόληψη σε θέματα ασφάλειας. Οι κατευθύνσεις και οι οδηγίες που δημοσιεύει προσφέρουν στους προγραμματιστές τα εργαλεία για την αποφυγή σφαλμάτων ασφαλείας κατά τη δημιουργία του κώδικα. Πρόσθετα, η ενημέρωση και η εκπαίδευση της κοινότητας Drupal σχετικά με την ασφάλεια συμπληρώνεται με εγχειρίδια, συνέδρια, σεμινάρια και σχετικές εκδηλώσεις. To Drupal εκδίδει τακτικά ενημερώσεις ασφαλείας αλλά παραμένει στην ευθύνη του διαχειριστή του εκάστοτε συστήματος να ενημερώνεται και να ανανεώνει το λογισμικό του Drupal καθώς και του εξυπηρετητή υποστήριξης [76]. Η ρύθμιση άπαξ ενός ασφαλούς εξυπηρετητή εφαρμογών Ιστού σε Drupal δεν είναι αρκετή [77]. Κομβικό σημείο για την τελική επίτευξη της ασφάλειας είναι η συνεχής εγρήγορση. Η ενημέρωση του κώδικα, τόσο του Drupal όσο και συνολικά του λογισμικού του εξυπηρετητή, είναι απαραίτητη διαδικασία για τη διατήρηση της ασφάλειας. Όσον αφορά στην επιδιόρθωση των υπαρχόντων σφαλμάτων που ανακύπτουν, η ομάδα ασφάλειας, με τη βοήθεια της κοινότητας, εντοπίζει, παρακολουθεί και αναλύει τα προβλήματα και εργάζεται για τη βελτίωση τους. Στην πλειοψηφία των περιπτώσεων, τα σφάλματα ενυπάρχουν στον κώδικα κατά τη δημιουργία του. Άλλωστε, έρευνες ασφάλειας των ιστοτόπων γραμμένων σε Drupal έχουν καταλήξει ότι η συντριπτική πλειοψηφία των κενών ασφαλείας (90% ή και περισσότερο) είναι παρόντα στον κώδικα εξατομικευμένων θεματικών παραλλαγών ή πρόσθετων γραμμένων από ανεξάρτητους προγραμματιστές των ιστοτόπων [78]. Αυτός ο κώδικας δεν υπόκειται στον δημόσιο έλεγχο που υπόκειται το σύνολο του κώδικα στο drupal.org (πυρήνας και συνεισφερόμενα πρόσθετα). Τα δεδομένα αυτά τονίζουν την ανάγκη ύπαρξης αλλά και την αποτελεσματικότητα του δημόσιου ελέγχου 79

96 που προσφέρει η ομάδα ασφάλειας του Drupal και το σύνολο της κοινότητας. Η διαδικασία ενημερώσεων ασφαλείας περιγράφεται αναλυτικότερα παρακάτω. Η διαδικασία ενημερώσεων ασφάλειας του Drupal Παρά την πολιτική πρόληψης του Drupal σε θέματα ασφάλειας, η ομάδα ασφάλειας καλείται να αντιμετωπίσει πληθώρα υπαρχόντων προβλημάτων. Αντικείμενό της αποτελούν τα προβλήματα του πυρήνα και των συνεισφερόμενων πρόσθετων που έχουν σταθερή έκδοση (τα πρόσθετα που βρίσκονται σε κατάσταση ανάπτυξης δεν υποστηρίζονται). Η διαδικασία που ακολουθείται στην επίλυση ενός τέτοιου προβλήματος περιγράφεται και αναπαρίσταται γραφικά στο παρακάτω σχήμα [79]. (Εικόνα 36) Εικόνα 36. Γραφική αναπαράσταση των διαφόρων σταδίων της διαδικασίας ενημερώσεων ασφαλείας του Drupal. 1. Εντοπίζονται ευπαθή σημεία στον κώδικα. Η ανίχνευση τέτοιων σημείων μπορεί να γίνει από οποιονδήποτε τελικό χρήστη του Drupal έως και μέλη της ομάδας ασφάλειας. Η αναφορά ενός προβλήματος ακολουθεί σαφή διαδικασία που περιγράφεται στο drupal.org [80]. 80

97 2. Το πρόβλημα αναφέρεται εμπιστευτικά στην ομάδα ασφάλειας. 3. Το πρόβλημα επιθεωρείται και αξιολογούνται οι πιθανές επιπτώσεις του σε όλες τις υποστηριζόμενες εκδόσεις Drupal. Τουλάχιστον δύο κύριες εκδόσεις (8.x, 7.x, 6.x. κ.α.) του Drupal υποστηρίζονται σε κάθε δεδομένη στιγμή. 4. Στην περίπτωση που η απειλή θεωρηθεί υπαρκτή, η ομάδα ασφάλειας κινητοποιείται για ανάλυση της απειλής ενώ παράλληλα, ενημερώνεται ο συντηρητής του προβληματικού κώδικα. 5. Ο συντηρητής διορθώνει το πρόβλημα υπό τη συνεχή υποστήριξη και αλληλεπίδραση με την ομάδα ασφάλειας. Στους συντηρητές, δοκιμαστές και άλλες ενδιαφερόμενες ομάδες παρέχεται πρόσβαση σε έναν ιδιωτικό, ασφαλή χώρο ανάλυσης, παρακολούθησης και προτάσεων επιδιόρθωσης του προβλήματος. 6. Οι διορθώσεις ελέγχονται και συζητούνται. 7. Δημιουργούνται διορθώσεις του κώδικα (patches) και επανελέγχονται ως προς την ασφάλεια και τη λειτουργικότητά τους. Τα βήματα 5 έως 7 επαναλαμβάνονται έως ότου η ομάδα ασφάλειας και ο συντηρητής του κώδικα συμφωνήσουν στη λύση του προβλήματος. 8. Ο συντηρητής καθιστά διαθέσιμες τις νέες, σταθερές εκδόσεις του κώδικα στο Drupal.org. 9. Η ομάδα ασφάλειας δημοσιεύει τις σχετικές συμβουλές ασφαλείας μέσω ιστοτόπων, newsletter, RSS, κοινωνικά δίκτυα κ.α. 10. Ο χρήστης καλείται να εγκαταστήσει τη νέα έκδοση σε όλους τους εμπλεκόμενους ιστοτόπους. Ο χρήστης ενημερώνεται μέσω της διαχειριστικής σελίδας «Διαθέσιμες Ενημερώσεις» για όλες τις νέες εκδόσεις του πυρήνα ή ενός συνεισφερόμενου πρόσθετου. Προτείνεται να εγκαθίστανται πάντα οι τελευταίες διαθέσιμες ενημερώσεις. Ασφαλής πρόσβαση Από προεπιλογή, οι κωδικοί λογαριασμών στο Drupal, όταν αποθηκεύονται στη βάση δεδομένων, είναι «αλατισμένοι» (encrypted-salted) και επανειλημμένα κατακερματισμένοι (hashed). Το Drupal μπορεί να υποστηρίξει ένα ευρύ φάσμα από πολιτικές κωδικών, όπως ελάχιστο μήκος, πολυπλοκότητα ή ημερομηνία λήξης. Υποστηρίζει, ακόμα, τις καθιερωμένες πρακτικές ταυτοποίησης, συμπεριλαμβανομένων των SSL και του ελέγχου ταυτότητας δύο παραγόντων (Two-factor authentication). To Drupal, επίσης, σε εφαρμογές παραγωγής ενσωματώνει συστήματα μονής εισόδου (Single sign-on), συμπεριλαμβανομένων των LDAP, 81

98 SAML, Shibboleth (Shibboleth Consortium, Oxfordshire, UK) και OpenID (OpenID Foundation, San Ramon, CA). Η κυριότερη αιτία υποκλοπής κωδικών πρόσβασης χρηστών είναι η ελλιπής ρύθμιση του ελέγχου πρόσβασης στη βάση δεδομένων των κωδικών και οι αδύναμες μεθοδολογίες κρυπτογράφησης της βάσης. Το Drupal 7 κρυπτογραφεί τους αποθηκευμένους στη βάση κωδικούς χρησιμοποιώντας τη συνάρτηση κρυπτογράφησης SHA512 με μία συνάρτηση «αλατίσματος» ανά χρήστη. Το Drupal 6, από προεπιλογή, χρησιμοποιούσε την κρυπτογραφική συνάρτηση κατακερματισμού MD5 και δεν εφάρμοζε «αλάτι». Κωδικοποίηση Βάσης Δεδομένων Σε εφαρμογές που απαιτείται υψηλή ασφάλεια, το Drupal ρυθμίζεται κατάλληλα για εξαιρετικά ισχυρή κρυπτογράφηση δεδομένων. Στην περίπτωση που δεν είναι επιθυμητή η κρυπτογράφηση του συνόλου της βάσης, υπάρχει δυνατότητα υψηλής διακριτότητας για την προστασία συγκεκριμένων πληροφοριών, όπως λογαριασμοί χρήστη ή επιλεγμένες φόρμες. Επιλεγμένη κρυπτογράφηση μπορεί να εφαρμοστεί ακόμα και στις τιμές πεδίων μίας βάσης δεδομένων απλού κειμένου. Το σύστημα κρυπτογράφησης ρυθμίζεται ούτως ώστε να πληρεί τις πλέον αυστηρές προδιαγραφές των PCI (Payment Card Industry), HIPAA (Health Insurance Portability and Accountability Act) και των εκάστοτε κρατικών διατάξεων, περιλαμβάνοντας και εξωτερική διαχείριση κλειδιών κρυπτογράφησης. Έλεγχος Πρόσβασης Χρήστη Το Drupal μπορεί να δώσει στους διαχειριστές των συστημάτων πλήρη έλεγχο όσον αφορά στην πρόβαση και στην επεξεργασία των επιμέρους τμημάτων του ιστοτόπου. Λειτουργεί βασιζόμενο σε ένα σύστημα επεκτάσιμων ρόλων χρηστών και αδειών πρόσβασης (κοκκώδης έλεγχος πρόσβασης). Οι διαχειριστές μπορούν να δημιουργήσουν ρόλους χρηστών και να τους δώσουν συγκεκριμένα, άλλοτε άλλης έκτασης δικαιώματα. Για παράδειγμα, ένας ιστότοπος μπορεί να προβλέπει έναν ρόλο συντάκτη για τη δημιουργία και ανανέωση περιεχομένου, έναν ρόλο εκδότη με επαυξημένα δικαιώματα συμπεριλαμβανομένων της δημοσίευσης ή διαγραφής περιεχομένου, διατηρώντας για τον διαχειριστή έναν ανεξάρτητο, διαφορετικό ρόλο. Για κάθε συγκεκριμένο εξουσιοδοτημένο χρήστη μπορεί να αντιστοιχεί οποιοσδήποτε αριθμός ρόλων με τα αντίστοιχα δικαιώματα να λειτουργούν αθροιστικά [81]. Στους χρήστες που δεν έχουν την κατάλληλη εξουσιοδότηση εφαρμόζεται απόκρυψη των αντίστοιχων μενού και χαρακτηριστικών. Στη συγκεκριμένη υλοποίηση του ιστοτόπου ACMIMS, για να εξυπηρετηθεί ο διαχωρισμός της διαχείρισης του ιστοτόπου από την εισαγωγή και επεξεργασία του περιεχομένου του, 82

99 δημιουργήθηκε ένας επιπλέον ρόλος συντάκτη με το όνομα χρήστη «acmims-editor». Στον χρήστη «acmims-editor» επιτράπηκε η δυνατότητα δημιουργίας, επεξεργασίας και διαγραφής περιεχομένου. Αυτή η διαδικασία απαιτεί, συνήθως, την εκπαίδευση του χρήστη σχετικά με τον ρόλο του, συνοδευόμενη πρόσθετα από ένα εγχειρίδιο χρήσης. Εικόνα 37. Οι δύο βασικοί χρήστες του ιστοτόπου ACMIMS και οι ρόλοι τους. Λήψη στιγμιότυπου Μάϊος Εικόνα 38. Τα περιορισμένα δικαιώματα του ρόλου «editor» στην υλοποίηση του ιστοτόπου ACMIMS. 83

100 Αντιμετώπιση των 10 σημαντικότερων κινδύνων κατά OWASP To Drupal παρέχει τη δυνατότητα αντιμετώπισης των σημαντικότερων κινδύνων ασφάλειας κατά OWASP [70], [72]. Αποτροπή των XSS, CSRF και άλλων κακόβουλων εισαγωγών δεδομένων Το Form API του Drupal εξασφαλίζει ότι τα δεδομένα επικυρώνονται και καθαρίζονται πριν την εισαγωγή στη βάση δεδομένων. Το σύστημα ελέγχει ότι τα εισηγμένα δεδομένα του χρήστη καθώς και τα πεδία της φόρμας ταιριάζουν με τις καθορισμένες μορφοποιήσεις και τιμές. Κατά τη δημιουργία της φόρμας, εισάγονται tokens για την προστασία από πιθανές επιθέσεις CSRF. To στρώμα φιλτραρίσματος της βάσης δεδομένων (Database Abstraction Layer) πραγματοποιεί επιπλέον ελέγχους ασφαλείας στα δεδομένα καθώς αυτά εγγράφονται και ανακτώνται από τη βάση [44], [82]. Ανίχνευση επιθέσεων brute-force Το Drupal προστατεύει εναντίον επιθέσεων ωμής βίας (brute-force attack) περιορίζοντας τον αριθμό των προσπαθειών σύνδεσης από μία συγκεκριμένη διεύθυνση IP σε ένα προκαθορισμένo χρονικό διάστημα. Οι αποτυχημένες προσπάθειες εισόδου καταγράφονται και απεικονίζονται μέσω της διεπαφής διαχείρισης. Πρόσθετα, τo Drupal παρέχει τη δυνατότητα στους διαχειριστές να αποκλείσουν a priori συγκεκριμένες διευθύνσεις ή/και περιοχές διευθύνσεων IP. Άμβλυνση επιθέσεων DOS (Denial of Services) Το επίπεδο επεκτάσιμης cache του Drupal είναι προ-ρυθμισμένο για cache βασικής σελίδας, Javasript και CSS. Το σύστημα υποστηρίζει ενσωμάτωση με τεχνολογίες βελτίωσης αποδόσεων όπως Memcache, Redis (Salvatore Sanfilippo), Varnish και πολλές δημοφιλείς CDN υπηρεσίες. Αυτή η πολυεπίπεδη cache αρχιτεκτονική προσφέρει εξαιρετική απόδοση σε υψηλού όγκου κυκλοφορία και καθιστά το Drupal το σύστημα επιλογής για πολλούς από τους υψηλής επισκεψιμότητας ιστοτόπους, παγκοσμίως. Πρόσθετα σχετικά με την ασφάλεια Στην προσπάθεια ενίσχυσης της ασφάλειας του ήδη ασφαλή πυρήνα προστίθεται πλήθος πρόσθετων που είτε προστατεύουν από διάφορα ήδη επιθέσεων είτε ελέγχουν τις ρυθμίσεις ασφαλείας του ιστοτόπου [83]. Οι μηχανισμοί δράσης με τους οποίους τα παραπάνω πρόσθετα επεκτείνουν την ασφάλεια του Drupal περιλαμβάνουν την απαίτηση επιλογής πιο πολύπλοκων κωδικών, τον πρόσθετο έλεγχο στη διαδικασία εισόδου στον ιστότοπο, τον έλεγχο για ασυνήθιστες συμπεριφορές χρηστών και την ενίσχυση των πιστοποιημένων χρηστών. 84

101 Update Manager (πρόσθετο πυρήνα) Το πρόσθετο «Update Manager» ελέγχει τακτικά για νέες εκδόσεις του λογισμικού του ιστοτόπου (περιλαμβανομένου του πυρήνα, των συνεισφερόμενων πρόσθετων και των θεματικών παραλλαγών) και ειδοποιεί στην περίπτωση εντοπισμού νέων ενημερώσεων. To «Update Manager» ενσωματώθηκε στον πυρήνα του Drupal 7, αφού προηγήθηκε ως συνεισφερόμενο πρόσθετο στο Drupal 6 με το όνομα «Update Status». Οι διαθέσιμες ενημερώσεις παρουσιάζονται με κίτρινο χρώμα (εάν προτείνεται) ή κόκκινο (εάν πρόκειται για ενημέρωση ασφαλείας) στη σελίδα των ενημερώσεων /admin/reports/updates. Με πράσινο χρώμα εμφανίζονται τα στοιχεία που είναι ενημερωμένα με την τελευταία διαθέσιμη έκδοση. (Εικόνα 39) Εικόνα 39. Παράδειγμα μηνύματος ενημέρωσης του πρόσθετου του πυρήνα Update Manager. Στις ρυθμίσεις του πρόσθετου δίνεται μεταξύ άλλων η δυνατότητα ρύθμισης της συχνότητας αναζήτησης ενημερώσεων καθώς και η ενημέρωση του διαχειριστή με στην περίπτωση ανεύρεσης νέων ενημερώσεων. Πρόσθετα, το «Update Manager» δίνει τη δυνατότητα στους χρήστες με τα κατάλληλα δικαιώματα να εγκαταστήσουν ή να ενημερώσουν ένα συνεισφερόμενο πρόσθετο ή θεματική παραλλαγή κατευθείαν από το γραφικό περιβάλλον 85

102 του Drupal, διαδικασία που μέχρι πρότινος πραγματοποιούνταν με τη σύνδεση στο διακομιστή με FTP και αντικατάσταση των αρχείων εκεί. Αναβάθμιση έκδοσης του πυρήνα του Drupal Με τη βοήθεια του πρόσθετου «Update Manager», στην περίπτωση που η διαθέσιμη ενημέρωση αφορά στον πυρήνα του Drupal, κατά τη σύνδεση του διαχειριστή στον ιστότοπο εμφανίζεται στη σελίδα ένα μήνυμα, το οποίο τον ενημερώνει και του συστήνει να προβεί στις απαραίτητες ενέργειες για την εγκατάσταση της νέας έκδοσης. (Εικόνα 40) Εικόνα 40. Μήνυμα ειδοποίησης για την ύπαρξη ενημέρωσης ασφαλείας του πυρήνα του Drupal. Οι ενημερώσεις ασφαλείας αποτελούν αναπόσπαστο μέρος της συντήρησης του ιστοτόπου και είναι εξαιρετικά κρίσιμο να πραγματοποιούνται για την ασφάλεια του. Πριν από τη διαδικασία ενημέρωσης πρέπει να γίνεται λήψη εφεδρικών αντιγράφων του ιστοτόπου, τόσο της βάσης δεδομένων όσο και των αρχείων του Drupal [84]. Κατά την υλοποίηση των ιστοτόπων ACMIMS και ACEL η ενημέρωση του πυρήνα απαιτήθηκε πολλές φορές και εξακολουθεί να πραγματοποιείται ως μέρος της συντήρησής τους. Η διαδικασία για την ενημέρωση του πυρήνα Drupal είναι η εξής: 1. Δημιουργία ενός εφεδρικού αντιγράφου της βάσης δεδομένων. 2. Μεταφόρτωση της τελευταίας έκδοσης της χρησιμοποιούμενης σειράς Drupal. 3. Ενεργοποίηση της κατάστασης συντήρησης στον ιστότοπο. 4. Διαγραφή όλων των φακέλων και των αρχείων από τον φάκελο εγκατάστασης του Drupal εκτός από τον φάκελο «sites» και οποιαδήποτε εξατομικευμένα αρχεία σε άλλη διαδρομή. 5. Αντιγραφή όλων των φακέλων (εκτός του φακέλου «sites») και των αρχείων της νέας έκδοσης του Drupal στον φάκελο εγκατάστασης. 6. Ολοκλήρωση της διαδικασίας ενημέρωσης με είσοδο στον ιστότοπο ως διαχειριστής και εφαρμογή του «update.php» ( 7. Έξοδος από την κατάσταση συντήρησης του ιστοτόπου. User (πρόσθετο πυρήνα) Νωρίς κατά την υλοποίηση των ιστοτόπων ACMIMS και ACEL, εμφανίστηκαν αυτοματοποιημένες αιτήσεις για δημιουργία λογαριασμού στον ιστότοπο (bots). Για τον 86

103 αποκλεισμό παρόμοιων περιστατικών επιλέχθηκε στις ρυθμίσεις λογαριασμού η εξουσιοδότηση του διαχειριστή για τη δημιουργία νέας εγγραφής χρήστη και ακόλουθα πρόσθετη επιβεβαίωση μέσω από τον νέο χρήστη. Στην παρούσα φάση ανάπτυξης των συγκεκριμένων ιστοτόπων, οι παραπάνω ρυθμίσεις ήταν κατάλληλες και αποτελεσματικές αφού ο αριθμός των απαιτούμενων εγγραφών ήταν εύκολα διαχειρίσιμος από τον διαχειριστή του συστήματος. Οι ρυθμίσεις αυτές καθίστανται δυνατές με το πρόσθετο του πυρήνα «User». Εικόνα 41. Έλεγχος της δημιουργίας νέων χρηστών από τον διαχειριστή με τη χρήση του πρόσθετου «User». Υλοποίηση στους ιστοτόπους ACMIMS και ACEL. Security Review Το πρόσθετο «Security Review» διενεργεί αυτόματα ελέγχους ασφαλείας και προσφέρει μία εποπτική εικόνα των αποτελεσμάτων. Το πρόσθετο δεν κάνει αυτόματα αλλαγές στο σύστημα, αλλά παρουσιάζει τα πιθανά λάθη του συστήματος και προτείνει σχετικές λύσεις. Η τελική πραγματοποίηση των απαραίτητων αλλαγών στο σύστημα αποφασίζεται και διενεργείται από τον χρήστη. (Εικόνα 42) Το πρόσθετο διενεργεί τους παρακάτω ελέγχους: Έλεγχος ασφαλών δικαιωμάτων των αρχείων του συστήματος. Ελέγχει ότι το σύστημα αρχείων του διακομιστή έχει ρυθμιστεί ώστε ο διακομιστής να μην μπορεί να επεξεργαστεί ή να δημιουργήσει αρχεία (read-only) μέσα στον ριζικό φάκελο του διακομιστή, παρέχοντας έτσι προστασία έναντι της αυθαίρετης εκτέλεσης κώδικα. Έλεγχος ότι οι μορφότυποι κειμένου δεν επιτρέπουν επικίνδυνες ετικέτες. Ορισμένες ετικέτες HTML επιτρέπουν σε έναν εισβολέα να αποκτήσει έλεγχο του ιστοτόπου. Το σύστημα μορφότυπων κειμένου του Drupal εισάγει φίλτρα για την αφαίρεση των βλαβερών ετικετών. Τέτοια φίλτρα πρέπει να χρησιμοποιούνται σε όλους τους μορφότυπους κειμένου με πρόσβαση από μη έμπιστους χρήστες, με σκοπό την προστασία από επιθέσεις XSS. 87

104 Έλεγχος ύπαρξης κώδικα PHP ή JavaScript στο περιεχόμενο. Η ύπαρξη κώδικα PHP ή/και JavaScript στο περιεχόμενο δεν είναι συμβατή με τις προτεινόμενες βέλτιστες πρακτικές του Drupal. Η επεξεργασία τέτοιου είδους περιεχομένου από μη έμπιστους χρήστες μπορεί δυνητικά να αποτελέσει σημείο ευπάθειας του συστήματος και συνεπώς, η χρήση τους αποτελεί σχετική αντένδειξη. Έλεγχος ασφαλούς αναφοράς σφαλμάτων. Στην κατεύθυνση της ασφάλειας του ιστοτόπου συστήνεται η αποφυγή αποκάλυψης ευαίσθητων πληροφοριών σε τρίτους. Το Drupal από προεπιλογή καταχωρεί τα σφάλματα στο αρχείο καταγραφής (log) και πρόσθετα, τα εμφανίζει στην οθόνη. Μάλιστα, τα μηνύματα σφάλματος αποκαλύπτουν την πλήρη διαδρομή προς την πηγή του σφάλματος. Ενδείκνυται η ρύθμιση αναφοράς σφαλμάτων αποκλειστικά στο αρχείο καταγραφής χωρίς την παράλληλη εμφάνισή τους στην οθόνη. Ακόμα, προτείνεται η απόκρυψη εμφάνισης γενικών πληροφοριών του συστήματος, όπως η χρησιμοποιούμενη έκδοση του πυρήνα Drupal και των επιμέρους πρόσθετων. Έλεγχος ασφάλειας ιδιωτικών αρχείων. Στην περίπτωση που είναι ενεργοποιημένη η λειτουργία ιδιωτικών αρχείων του Drupal, η διαδρομή θα πρέπει να είναι εγγράψιμη από το Drupal και μη προσβάσιμη από τον Ιστό. Το Drupal διασφαλίζει την ασφαλή πρόσβαση στα αρχεία στα οποία παραπέμπει ο σύνδεσμος, στην περίπτωση, όμως, που ένας χρήστης γνωρίζει την ακριβή διαδρομή στο σύστημα τότε μπορεί να παρακάμψει τη λειτουργία τους. Η προστασία απέναντι σε αυτό επιτυγχάνεται με τον προσδιορισμό ενός φακέλου αρχείων εκτός της ρίζας του διακομιστή. Έλεγχος ασφαλών επεκτάσεων μεταφόρτωσης. Ελέγχει τις επιτρεπόμενες επεκτάσεις στη μεταφόρτωση αρχείων και εικόνων. Κάποιες επεκτάσεις ενέχουν τον κίνδυνο εκμετάλλευσης για κακόβουλη χρήση. Ένας επίδοξος εισβολέας μπορεί να χρησιμοποιήσει αυτή την ευπάθεια για να αποκτήσει έλεγχο ενός ιστοτόπου. Έλεγχος του πλήθους σφαλμάτων στη βάση δεδομένων. Πολλαπλά σφάλματα στη βάση δεδομένων, προκαλούμενα από την ίδια διεύθυνση IP, είναι ενδεικτικά απόπειρας ενός κακόβουλου χρήστη για ανίχνευση αδυναμιών του συστήματος (για παράδειγμα απόπειρες SQL Injection). Έλεγχος του πλήθους αποτυχημένων συνδέσεων. Πολλαπλές αποτυχημένες προσπάθειες σύνδεσης από την ίδια IP είναι ενδεικτικές προσπάθειας ενός κακόβουλου χρήστη για είσοδο στον ιστότοπο σαν πιστοποιημένος χρήστης, επιθέσεων τύπου brute-force. 88

105 Έλεγχος δικαιωμάτων διαχειριστή Drupal. Το σύστημα απονομής ρόλων και δικαιωμάτων του Drupal επιτρέπει πολλούς βαθμούς ελέγχου. Συγκεκριμένα δικαιώματα μπορούν να επιτρέψουν σε ένα χρήστη πλήρη έλεγχο του συστήματος ή την ικανότητα να αυξήσουν τον έλεγχό τους πάνω στο σύστημα. Τέτοια δικαιώματα πρέπει να επιτρέπονται μόνο σε πιστοποιημένους, έμπιστους χρήστες. Έλεγχος στοιχείων ταυτοποίησης χρήστη. Αποθαρρύνεται η χρήση του ονόματος χρήστη ως κωδικό πρόσβασης παρέχοντας πρόσθετη προστασία έναντι ενδεχόμενης επίθεσης bruteforce. Αποφυγή δημοσιοποίησης του κωδικού πρόσβασης. Ο έλεγχος αυτός αποτρέπει τον διαχειριστή του συστήματος από την αποστολή του κωδικού πρόσβασης του χρήστη στο του. Έλεγχος εκτέλεσης κώδικα PHP. O κατάλογος αρχείων του Drupal εξυπηρετεί τη μεταφόρτωση αρχείων του χρήστη και από προεπιλογή εγγενή προστασία έναντι στην κακόβουλη εκτέλεση κώδικα PHP από έναν εισβολέα κατά του ιστοτόπου. Έλεγχος ότι η βάση URL έχει ρυθμιστεί. O ορισμός της μεταβλητής $base_url στο «settings.php» παρέχει προστασία έναντι της εκμετάλλευσης συνδέσμων του ιστοτόπου από εισβολείς. Για παράδειγμα, ένας εισβολέας μπορεί να εκμεταλλευτεί την έλλειψη ρύθμισης του $base_url για να πραγματοποιήσει μία επίθεση ηλεκτρονικού «ψαρέματος» με αποτέλεσμα την κλοπή προσωπικών δεδομένων των χρηστών. Έλεγχος πρόσβασης του περιεχομένου από το πρόσθετο «Views». Το πρόσθετο «Views» παρέχει τη δυνατότητα ελέγχου πρόσβασης του χρήστη στο περιεχόμενο με σκοπό την προστασία από την αποκάλυψη πληροφοριών. Προτείνεται η υλοποίηση όλων των σελίδων που παράγει το πρόσθετο «Views» να περιλαμβάνει έλεγχο πρόσβασης περιεχομένου. 89

106 Εικόνα 42. Στιγμιότυπο από τα αποτελέσματα ελέγχου του πρόσθετου «Security Review». Αποτελέσματα από την υλοποίηση του ιστοτόπου ACMIMS. Permissions Lock Το πρόσθετο «Permission Lock» παρέχει τη δυνατότητα λεπτομερέστερου καθορισμού των αρμοδιοτήτων των χρηστών με ρόλο διαχειριστή. Καθορίζει τους διαχειριστές με πλήρη δικαιώματα διαχείρισης του ιστοτόπου και τους διαχειριστές με σχετικά περιορισμένες αρμοδιότητες. Δίνεται, μάλιστα, η δυνατότητα περιορισμού συγκεκριμένων δικαιωμάτων σε συγκεκριμένους ρόλους. Η χρησιμότητα του πρόσθετου αυτού συνοψίζεται στη δυνατότητα που παρέχει για ορισμό περιορισμένων δικαιωμάτων σε έναν χρήστη με σκοπό τη διαχείριση παραμέτρων ήσσονος σχετικά σημασίας (όπως την ανάρτηση σχολίων, δημιουργία περιεχομένου, τη διαχείριση ταξινόμησης κ.α.), χωρίς όμως την ικανότητα στη διαχείριση σημαντικότερων παραμέτρων, μείζονος για το σύστημα σημασίας. Σε αυτήν την περίπτωση το πρόσθετο αποκλείει επιπλέον τον χρήστη από τη δυνατότητα αλλαγής των προκαθορισμένων δικαιωμάτων. Password Policy Το πρόσθετο «Password Policy» παρέχει ένα πλαίσιο καθορισμού της πολιτικής κωδικών πρόσβασης. Καθορίζει ένα σύνολο περιορισμών που πρέπει να πληρούνται για να γίνει δεκτή η αλλαγή του κωδικού πρόσβασης ενός χρήστη. Κάθε περιορισμός αντιστοιχεί σε 90

107 συγκεκριμένες συνθήκες που πρέπει να ικανοποιούνται για τη δημιουργία ενός έγκυρου κωδικού. Για παράδειγμα ένας περιορισμός που αφορά τα κεφαλαία γράμματα (με παράμετρο 2) και ένας περιορισμός για τα αριθμητικά ψηφία (με παράμετρο 4) σημαίνει ότι ο κωδικός του χρήστη πρέπει να έχει τουλάχιστον 2 κεφαλαία γράμματα και 4 αριθμητικά ψηφία για να γίνει δεκτός. Οι περιορισμοί είναι οι εξής: Τύποι χαρακτήρων: Ο κωδικός πρέπει να περιλαμβάνει ένα συγκεκριμένο ελάχιστο αριθμό τύπων χαρακτήρων (πεζά, κεφαλαία, ψηφία ή σημεία στίξης) Μήκος: Ο κωδικός πρέπει να είναι ίσος ή μεγαλύτερος από το καθορισμένο μήκος Γράμματα: Ο κωδικός πρέπει να περιέχει έναν ελάχιστο αριθμό γραμμάτων Κεφαλαία: Ο κωδικός πρέπει να περιέχει έναν ελάχιστο αριθμό κεφαλαίων γραμμάτων Πεζά: Ο κωδικός πρέπει να περιέχει έναν ελάχιστο αριθμό πεζών γραμμάτων Γράμματα/Ψηφία (Αλφαριθμητικά): Ο κωδικός πρέπει να περιέχει έναν ελάχιστο αριθμό αλφαριθμητικών (γράμματα ή αριθμοί) χαρακτήρων Αριθμητικά Ψηφία: Ο κωδικός πρέπει να περιέχει έναν συγκεκριμένο ελάχιστο αριθμό αριθμητικών ψηφίων Θέση αριθμητικών ψηφίων: Ο ελάχιστος αριθμός διαφορετικών θέσεων ψηφίων στον κωδικό, ώστε να αποτρέπεται η αλλαγή κωδικών χρησιμοποιώντας ένα πρότυπο τύπου password1, password2, password3 Στίξη: Ο κωδικός πρέπει να περιέχει έναν ελάχιστο αριθμό χαρακτήρων στίξης (όχι κενά ή αλφαριθμητικά) Καθυστέρηση: Ελάχιστος αριθμός ωρών μεταξύ αλλαγών κωδικού Όνομα χρήστη: Ο κωδικός δεν πρέπει να περιλαμβάνει το όνομα χρήστη Ιστορικό κωδικών: έλεγχος για πρόσφατες ίδιες εγγραφές κωδικών στο ιστορικό του χρήστη Το πρόσθετο προσφέρει, επίσης, τη δυνατότητα προκαθορισμού διάρκειας κωδικών πρόσβασης. Οι χρήστες, σε αυτή την περίπτωση, αναγκάζονται σε αλλαγή κωδικού πριν την ημερομηνία λήξης ενώ διαφορετικά παραμένουν αποκλεισμένοι. Το πρόσθετο δίνει τη δυνατότητα στους διαχειριστές να απαιτήσουν σε οποιαδήποτε δεδομένη χρονική στιγμή την αλλαγής κωδικού από ορισμένους χρήστες ή ρόλους χρηστών. 91

108 Login Security Το πρόσθετο «Login Security» ενισχύει τις επιλογές ασφάλειας εισόδου σε έναν ιστότοπο. Από προεπιλογή το Drupal προβλέπει έναν μόνο βασικό έλεγχο εισόδου, με αποκλεισμό συγκεκριμένων διευθύνσεων IP, οι οποίες καθορίζονται χειροκίνητα από τον διαχειριστή, σε περίπτωση που αντιληφθεί μη-κανονική συμπεριφορά στο αρχείο καταγραφής (log file). Με τη χρήση, όμως, του πρόσθετου «Login Security», ο διαχειριστής αποκτά περαιτέρω έλεγχο στην πρόσβαση χρηστών στον ιστότοπο. Δίνεται η δυνατότητα αυτόματης απαγόρευσης εισόδου (προσωρινής ή μόνιμης) σε συγκεκριμένες διευθύνσεις IP, σε περίπτωση μη-κανονικής συμπεριφοράς, καθώς και περιορισμού του ανώτατου ορίου αποτυχημένων εισόδων και αποκλεισμού των συγκεκριμένων λογαριασμών. Μάλιστα, ο διαχειριστής μπορεί να ορίσει το χρονικό διάστημα στο οποίο παραμένουν οι πληροφορίες αποτυχημένων αποπειρών εισόδου βάσει των οποίων υπολογίζονται οι συνολικές προσπάθειες. Ακόμα, δίνεται η δυνατότητα ρύθμισης του πρόσθετου για αποστολή στον διαχειριστή, στην περίπτωση που ανιχνευθεί μη-κανονική συμπεριφορά τύπου είτε εικασίας κωδικού και λογαριασμού είτε απόπειρας brute-force. Πρόσθετα, δίνεται η δυνατότητα απενεργοποίησης των μηνυμάτων σφαλμάτων κατά τη διαδικασία εισόδου, με σκοπό την απόκρυψη της αιτίας μίας αποτυχημένης αίτησης εισόδου στον κακόβουλο χρήστη. Έτσι, ο επίδοξος εισβολέας δεν γνωρίζει το σφάλμα κατά την απόπειρα εισόδου στον λογαριασμό ή ακόμα και εάν αυτός ο λογαριασμός υπάρχει. Επιπλέον λειτουργία του πρόσθετου είναι η ρύθμιση για ενημέρωση του χρήστη για τις προσπάθειες εισόδου που απομένουν πριν αποκλειστεί ο λογαριασμός του. Κατά την επιτυχημένη είσοδο στο σύστημα ο χρήστης ενημερώνεται προαιρετικά για τα στοιχεία της προηγούμενης εισόδου του. Περισσότερα πρόσθετα για ασφάλεια Ο κατάλογος των σχετικών με την ασφάλεια του συστήματος πρόσθετων επεκτείνεται πέρα των προαναφερθέντων που υλοποιήθηκαν στην ανάπτυξη των ιστοτόπων της παρούσας εργασίας. Οι κατά περίπτωση ανάγκες κατά την ανάπτυξη ενός ιστοτόπου καθορίζουν τα πρόσθετα που εφαρμόζονται καθώς και τις επιμέρους ρυθμίσεις τους. Συπληρωματικά στα προηγούμενα, δημοφιλή πρόσθετα σχετιζόμενα με την ασφάλεια των ιστοτόπων είναι τα «Two-factor Authentication», «Paranoia», «Secure Login» κ.α. Επί του παρόντος, η χρήση αυτών των πρόσθετων δεν απαιτήθηκε. Σε βάθος χρόνου, η λειτουργία των ιστοτόπων και η ανάγκη συμμόρφωσης με τις ανανεώσεις των συστάσεων ασφαλείας δεν αποκλείει τη μελλοντική τους χρήση. 92

109 Drush Καθώς οι ιστότοποι που πρέπει να διαχειριστεί κανείς μεγαλώνουν σε μέγεθος, η διαδικασία της λήψης εφεδρικών αντιγράφων και της αναβάθμισης του πυρήνα και των πρόσθετων στην τελευταία τους ανανέωση γίνεται εξαιρετικά χρονοβόρα. Στην περίπτωση, μάλιστα, που ένας διαχειριστής είναι υπεύθυνος για την ενημέρωση πολλαπλών ιστοτόπων, οι χρονικές απαιτήσεις για τη διαδικασία της συντήρησης αυξάνονται ανάλογα. Ένα εργαλείο που μπορεί να χρησιμοποιηθεί για να απλοποιηθούν οι διαδικασίες στη διαχείριση ιστοτόπων είναι το «Drush», η χρήση του οποίου υποστηρίζεται από το Κέντρο Ηλεκτρονικής Διακυβέρνησης του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης ως δυνατότητα της υπηρεσίας Φιλοξενίας Ιστοτόπων Μονάδων και Δράσεων [85], όπου φιλοξενούνται και οι ιστότοποι ACMIMS και ACEL. To Drush επιτυγχάνει να εκτελεστούν διάφορες εργασίες ρουτίνας του διαχειριστή χρησιμοποιώντας ελάχιστες εντολές στο τερματικό, αντικαθιστώντας την ανάγκη για διαδικασίες πολλών βημάτων και ανάλογης αναμονής για ανανεώσεις των σελίδων της διεπαφής χρήστη. Το Drush είναι ένα κέλυφος γραμμής εντολών και μία διεπαφή εκτέλεσης δέσμης εντολών Unix. Ο πυρήνας του Drush περιλαμβάνει ένα σύνολο εντολών για τον χειρισμό πρόσθετων, θεματικών παραλλαγών, βάσεων δεδομένων και ολοκλήρωσης συνήθων διαχειριστικών εργασιών [86]. Οι συνηθέστερες εργασίες που εφαρμόζονται στη διαχείριση των ιστοτόπων ΑCMIMS και ACEL είναι η μεταφόρτωση και ενεργοποίηση πρόσθετων, η δημιουργία εφεδρικών αντιγράφων βάσης δεδομένων και αρχείων συστήματος, και η ανανέωση της έκδοσης πυρήνα και πρόσθετων του Drupal [87]. Για τη δημιουργία εφεδρικού αντιγράφου του κώδικα, αρχείων συστήματος και βάσης δεδομένων του ιστοτόπου αρκεί η εντολή [88]: drush archive-dump Για τη δημιουργία εφεδρικού αντιγράφου μόνο της βάσης δεδομένων σε ένα αρχείο «dbbackup.sql» μπορεί να χρησιμοποιηθεί η εντολή: drush sql-dump --result-file=db-backup.sql Η μεταφόρτωση και ενεργοποίηση ενός επιθυμητού πρόσθετου είναι εφικτή με τις εντολές: drush dl [πρόσθετο_name] drush en [πρόσθετο_name] 93

110 Η ανανέωση του πυρήνα του Drupal επιτυγχάνεται με την εντολή [89]: drush up drupal 94

111 Μελλοντικό Έργο Προσβασιμότητα Ιστού Εμπειρία Χρήστη Η εμπειρία χρήστη (User Experience, UX) αναφέρεται στα συναισθήματα και στη συμπεριφορά ενός ατόμου όταν χρησιμοποιεί ένα συγκεκριμένο προϊόν, σύστημα ή υπηρεσία [90], [91]. Η εμπειρία χρήστη περιλαμβάνει τις πρακτικές, εμπειρικές, συναισθηματικές, ουσιαστικές και χρήσιμες παραμέτρους της αλληλεπίδρασης ανθρώπου-υπολογιστή (human-computer interaction, HCI) καθώς και το πώς αυτές επηρεάζουν τη διαδικασία ανάπτυξης ενός προϊόντος. Επιπλέον, περιλαμβάνει τις αντιλήψεις ενός ατόμου-χρήστη μίας υπηρεσίας/προϊόντος για τη χρησιμότητα, την ευχρηστία και την αποτελεσματικότητα της υπηρεσίας/προϊόντος αυτού. Βέβαια, για την εκμετάλλευση της ανατροφοδότησης αυτής στην ανάπτυξη ενός προϊόντος/υπηρεσίας, λαμβάνεται υπόψη τόσο η υποκειμενικότητα της εμπειρίας αυτής καθώς και η δυναμική της. Είναι σαφές ότι η εμπειρία χρήστη μεταβάλλεται όχι μόνο με τον χρόνο αλλά και με τις διαφορετικές συνθήκες χρήσης και τα διαφορετικά επιμέρους συστήματα που χρησιμοποιούνται την ίδια χρονική περίοδο. Η εμπειρία του χρήστη εστιάζει στη βαθιά κατανόηση των χρηστών τι είναι αυτό που χρειάζονται, τι εκτιμούν, τις ικανότητές τους καθώς, επίσης, και τους περιορισμούς τους. Πρόσθετα, λαμβάνει υπόψη τους επιχειρηματικούς στόχους και τους στόχους της ομάδας διαχείρισης του έργου. Οι βέλτιστες πρακτικές στην εμπειρία χρήστη προωθούν τη βελτίωση της ποιότητας αλληλεπίδρασης του χρήστη με μία υπηρεσία/προϊόν αλλά και οποιεσδήποτε άλλες συναφείς υπηρεσίες/προϊόντα. Παράγοντες που επηρεάζουν την Εμπειρία Χρήστη Οι παράγοντες που επηρεάζουν την εμπειρία χρήστη είναι πολλαπλοί και διαρκώς μεταβαλλόμενοι. Στον πυρήνα της εμπειρίας χρήστη είναι η διασφάλιση του ότι οι χρήστες βρίσκουν αξία στην παρεχόμενη υπηρεσία/προϊόν. Οι κυριότεροι παράγοντες καθορισμού της εμπειρίας χρήστη αναπαρίστανται μέσα από το σχέδιο του Peter Morville, «Κηρήθρα της Εμπειρίας Χρήστη» [92]. (Εικόνα 43) 95

112 Εικόνα 43. Οι κυριότεροι παράγοντες καθορισμού της εμπειρίας χρήστη. ( 2016 Semantic Studios) Η προσαρμογή αυτών των παραμέτρων, ειδικότερα στην ανάπτυξη ιστοτόπων, με σκοπό την ουσιαστική και επικερδή εμπειρία χρήστη, παρατίθεται παρακάτω [93], [94]: Χρήσιμο: το περιεχόμενο πρέπει να είναι πρωτότυπο και να εκπληρώνει μία ανάγκη. Εύχρηστο: ο ιστότοπος πρέπει να είναι εύκολος στη χρήση. Ελκυστικό: οι εικόνες και τα υπόλοιπα σχεδιαστικά στοιχεία, πρέπει να συνεισφέρουν θετικά στη συνολική εντύπωση του ιστοτόπου και να τον καθιστούν ελκυστικό. Εύκολο να βρεθεί: το περιεχόμενο πρέπει να είναι εύκολο στον εντοπισμό και στην πλοήγηση. Προσβάσιμο: το περιεχόμενο πρέπει να είναι προσβάσιμο σε άτομα με αναπηρίες. Αξιόπιστο: οι χρήστες πρέπει να εμπιστεύονται και να πιστεύουν το περιεχόμενο. Πολύτιμο: στον πυρήνα του συνόλου των αλληλεπιδράσεων βρίσκεται η ανάγκη ο αναπτυσσόμενος ιστότοπος να εκπληρώνει την αποστολή του συνεισφέροντας στην ικανοποίηση του χρήστη. Ο χρήστης πρέπει να βρίσκει αξία στο περιεχόμενο του 96

113 ιστοτόπου και το σύνολο του εγχειρήματος να είναι επικερδές τόσο για τον χρήστη όσο και για τον δημιουργό. Τομείς που σχετίζονται με την οικοδόμηση της εμπειρίας χρήστη Η εμπειρία χρήστη είναι ένα αναπτυσσόμενο πεδίο που διαρκώς επαναπροσδιορίζεται [91], [95]. Η δημιουργία μίας επιτυχημένης σχεδίασης με επίκεντρο τον χρήστη, πρόσθετα στη μελέτη των αρχών αλληλεπίδρασης ανθρώπου-υπολογιστή, επεκτείνεται και στους ακόλουθους τομείς [93]: Διοίκηση Έργων: επικεντρώνεται στην οργάνωση και τη διαχείριση ενός έργου και των πόρων του. Περιλαμβάνει τον προσδιορισμό και το σχεδιασμό του κύκλου ζωής του έργου, την προσαρμογή του σε ένα πλαίσιο με επίκεντρο τον χρήστη, τη σύνθεση του ανθρώπινου δυναμικού και την αποτελεσματική καθοδήγηση του καθ όλη τη διαδικασία της ολοκλήρωσης του έργου. Έρευνα χρηστών: εστιάζει στην κατανόηση της συμπεριφοράς των χρηστών, τις ανάγκες και τα κίνητρα τους με τη χρήση ποικίλων μεθοδολογιών ανατροφοδότησης. Αξιολόγηση ευχρηστίας: επικεντρώνεται στην ικανότητα των χρηστών για εξοικείωση και χρήση του προϊόντος για την επίτευξη του σκοπού τους. Πρόσθετα, ασχολείται με το βαθμό ικανοποίησης των χρηστών από την παραπάνω διαδικασία. Αρχιτεκτονική Πληροφορίας: επικεντρώνεται στο πώς η πληροφορία οργανώνεται, δομείται και παρουσιάζεται στους χρήστες. Σχεδιασμός Διεπαφής Χρήστη: επικεντρώνεται στην πρόβλεψη των απαραίτητων ενεργειών του χρήστη για την επίτευξη του σκοπού του και στη διασφάλιση ότι η διεπαφή περιλαμβάνει στοιχεία εύκολης πρόσβασης, κατανόησης και χρήσης για την εξυπηρέτηση των ενεργειών. Σχεδιασμός Διαδραστικότητας: επικεντρώνεται στη δημιουργία ελκυστικών διαδραστικών συστημάτων με καλά μελετημένες συμπεριφορές. Οπτικός Σχεδιασμός: επικεντρώνεται στη διασφάλιση ενός αισθητικά ευχάριστου περιβάλλοντος εργασίας που είναι σύμφωνο με τους στόχους του έργου. Στρατηγική περιεχόμενου: επικεντρώνεται στον σχεδιασμό, τη συγγραφή, την επιμέλεια και την παράδοση χρήσιμου περιεχόμενου στους χρήστες. 97

114 Προσβασιμότητα: επικεντρώνεται στο πώς ένα άτομο με περιορισμένη ικανότητα πρόσβασης σε έναν ιστότοπο αποκτά δυνατότητα πρόσβασης ή οφέλη από έναν ιστότοπο, σύστημα ή εφαρμογή. Ανάλυση δεδομένων Ιστού: επικεντρώνεται στη συλλογή, αναφορά και ανάλυση δεδομένων σχετικών με τον ιστότοπο. Ανάλογα με τον εκάστοτε ιστότοπο και τους στόχους του, η βαρύτητα των επιμέρους τομέων μεταβάλλεται. Στην περίπτωση των δύο υπό μελέτη ιστοτόπων (ACMIMS, ACEL), ιδιαίτερη έμφαση δόθηκε στην προσβασιμότητα. Ωστόσο, ο τομέας της αρχιτεκτονικής της πληροφορίας αναμένεται να αποκτήσει ειδικό βάρος κατά την εξέλιξη των ιστοτόπων και την συσσώρευση ποικίλου εκπαιδευτικού υλικού, το οποίο θα χρήζει οργάνωσης και σωστής παρουσίασης. Προσβασιμότητα Ιστού Η προσβασιμότητα Ιστού (Web Accessibility) σημαίνει ότι άτομα με αισθητηριακές ή/και κινητικές αναπηρίες μπορούν να χρησιμοποιούν τον Ιστό. Πιο συγκεκριμένα, η προσβασιμότητα Ιστού σημαίνει ότι τα άτομα αυτά μπορούν να αντιλαμβάνονται, να κατανοούν, να περιηγούνται, να αλληλεπιδρούν και να συνεισφέρουν στον Ιστό [96]. H προσβασιμότητα ωφελεί επίσης και άλλες κοινωνικές ομάδες, με περιορισμένη ικανότητα πρόσβασης στον Ιστό, συμπεριλαμβανομένων των ηλικιωμένων ατόμων με φθίνουσες ικανότητες λόγω γήρανσης. Η αναφορά «How People with Disabilities Use the Web: Overview» από την Παγκόσμια Κοινοπραξία του Ιστού [97] περιγράφει το πώς διαφορετικές αναπηρίες επηρεάζουν τη χρήση του Ιστού και περιλαμβάνει σενάρια ατόμων με αναπηρίες που χρησιμοποιούν τον Ιστό. Εκατομμύρια άνθρωποι παγκοσμίως έχουν αναπηρίες που επηρεάζουν σε άλλοτε άλλο βαθμό τη χρήση του Ιστού. Επί του παρόντος, η πλειοψηφία των ιστοσελίδων και διαδικτυακών εφαρμογών έχουν εμπόδια προσβασιμότητας που καθιστούν δύσκολη ή αδύνατη σε πολλά άτομα με αναπηρία τη χρήση τους [98]. Όσο πιο προσβάσιμες γίνονται οι ιστοσελίδες και οι διαδικτυακές εφαρμογές τόσο περισσότερο τα άτομα με αναπηρίες είναι σε θέση να χρησιμοποιούν και να συνεισφέρουν αποτελεσματικότερα στον Ιστό. Η ανάγκη για προσβασιμότητα τονίζεται ιδιαίτερα στον χώρο της εκπαίδευσης τόσο στο εκπαιδευτικό υλικό όσο και στους ιστοτόπους που το περιέχουν [99], [100]. Η ηλεκτρονική προσβασιμότητα ωφελεί, επίσης, και τα άτομα χωρίς αναπηρία. Για παράδειγμα, μία βασική αρχή της προσβασιμότητας Ιστού είναι ο ευέλικτος σχεδιασμός 98

115 ιστοσελίδων και λογισμικού ώστε να ανταποκρίνονται στις διαφορετικές ανάγκες, προτιμήσεις και καταστάσεις των χρηστών. Σε ορισμένες περιπτώσεις, αυτή η ευελιξία ωφελεί, επίσης, τους ανθρώπους χωρίς αναπηρίες, όπως είναι τα άτομα με αργή σύνδεση στο διαδίκτυο, προσωρινές αναπηρίες καθώς και φθίνουσες ικανότητες λόγω γήρανσης [101]. Ο Tim Berners-Lee, δημιουργός του Παγκόσμιου Ιστού, αναφέρει, χαρακτηριστικά, ότι «η δύναμη του Παγκόσμιου Ιστού είναι η καθολικότητά του. Η πρόσβαση από όλους ανεξαρτήτως αναπηρίας είναι ένα πολύ σημαντικό ζήτημα» [102]. Υποστηρικτικές τεχνολογίες για την περιήγηση στο διαδίκτυο Τα άτομα με αναπηρίες χρησιμοποιούν βοηθητικές τεχνολογίες για την περιήγησή τους στο διαδίκτυο [96]. Τέτοιες τεχνολογίες αποτελούν τα παρακάτω: Το λογισμικό ανάγνωσης οθόνης, χρησιμοποιώντας συνθετική ομιλία, μπορεί να αποδώσει είτε επιλεγμένα στοιχεία της οθόνης (με εφαρμογή στους χρήστες με δυσκολίες ανάγνωσης ή μάθησης) είτε το σύνολο των ενεργειών στον υπολογιστή (με εφαρμογή σε τυφλούς χρήστες ή χρήστες με διαταραχές όρασης). Τα τερματικά braille αποτελούνται από μία οθόνη που αποδίδει το κείμενο με χαρακτήρες braille και ένα κανονικό ή braille πληκτρολόγιο. To λογισμικό μεγέθυνσης οθόνης μεγεθύνει οτιδήποτε εμφανίζεται στην οθόνη του υπολογιστή, καθιστώντας ευκολότερη την ανάγνωση για τους χρήστες με διαταραχές όρασης. Το λογισμικό αναγνώρισης ομιλίας μπορεί να δεχθεί φωνητικές εντολές ή/και να μετατρέπει υπαγόρευση κειμένου σε γραπτό κείμενο, υπηρεσία που βρίσκει εφαρμογή σε άτομα με δυσκολίες στη χρήση ποντικιού ή πληκτρολογίου. Το προσαρμοζόμενο εναλλακτικό πληκτρολόγιο, μπορεί να προγραμματιστεί κατά περίπτωση αποδίδοντας πολλαπλές παραλλαγές πληκτρολογίου με δυνατότητα χρήσης από διαφορετικούς χρήστες με προβλήματα κινητικότητας. Οι υπότιτλοι ή η νοηματική γλώσσα βοηθούν στην παρακολούθηση και κατανόηση οπτικοακουστικών αρχείων του Ιστού από άτομα με διαταραχές ακοής. Πρωτοβουλία για την Προσβασιμότητα του Παγκόσμιου Ιστού Η Παγκόσμια Κοινοπραξία Ιστού προάγει την υψηλή χρηστικότητα του Ιστού για άτομα με αναπηρίες. To 1997 εισήγαγε την Πρωτοβουλία για την Προσβασιμότητα Ιστού (Web Accessibility Initiative, WAI) με σκοπό την ανεύρεση λύσεων για την προσβασιμότητα στον Ιστό από άτομα με αισθητηριακές ή/και κινητικές διαταραχές [102], [103]. 99

116 Οι κύριοι άξονες των δραστηριοτήτων της Πρωτοβουλίας είναι η ανάπτυξη οδηγιών προσβασιμότητας, η διασφάλιση προσβασιμότητας από τις τεχνολογίες του Παγκόσμιου Ιστού, η ανάπτυξη εργαλείων για την αξιολόγηση και διευκόλυνση της προσβασιμότητας, η διεξαγωγή εκπαίδευσης και διάδοση των αποτελεσμάτων, και ο συντονισμός με την έρευνα και την ανάπτυξη. Οι δράσεις της Πρωτοβουλίας περιλαμβάνουν, μεταξύ άλλων, την έκδοση οδηγιών προσβασιμότητας περιεχόμενου, συγγραφικών εργαλείων, ιστοσελίδων και πρακτόρων χρήστη. Πρόσθετα, η Πρωτοβουλία παρέχει υλικό κατάρτισης, εργαλεία αξιολόγησης και μεταφράσεις υλικού σχετικού με τη προσβασιμότητα Ιστού. Στον χώρο της ανώτατης εκπαίδευσης στην Ελλάδα, αξιοσημείωτο είναι το έργο της Μονάδας Προσβασιμότητας για Φοιτητές με Αναπηρία του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών. Το υποκείμενο Τμήμα Ηλεκτρονικής Προσβασιμότητας Φοιτητών με Αναπηρία περιλαμβάνει στις δραστηριότητές του [104]: 1. Αξιολόγηση ικανοτήτων ΑμεΑ και αντιστοίχιση των ειδικών αναγκών στις κατάλληλες υποστηρικτικές τεχνολογίες 2. Ατομικές υποστηρικτικές τεχνολογίες και τεχνική υποστήριξη 3. Παροχή τεχνογνωσίας με οδηγίες και εργαλεία προσβασιμότητας και έλεγχο πλήρωσης των διεθνών προδιαγραφών εξοπλισμού και προσβασιμότητας 4. Ενημέρωση (διαδικτυακός ιστότοπος, ημερίδες, σεμινάρια, φυλλάδια) 5. Προσβάσιμοι σταθμοί εργασίας για ΑμεΑ στις βιβλιοθήκες 6. Συνεργασία με κέντρα και ιδρύματα τριτοβάθμιας εκπαίδευσης για ανταλλαγή εμπειριών και τεχνογνωσίας [105] 7. Έρευνα και ανάπτυξη λογισμικού και εξοπλισμού Οδηγίες Προσβασιμότητας Περιεχομένου στον Παγκόσμιο Ιστό Το 1999 η Πρωτοβουλία Προσβασιμότητας Ιστού, δημοσίευσε τις Οδηγίες Προσβασιμότητας Περιεχομένου του Παγκόσμιου Ιστού, Web Content Accessibility Guidelines (WCAG) 1.0 [106]. Toν Δεκέμβριο του 2008 η Πρωτοβουλία δημοσίευσε την ανανέωση των οδηγιών, WCAG 2.0 [107]. Σήμερα, οι κατευθυντήριες οδηγίες WCAG 2.0 είναι ευρέως αποδεκτές ως το κύριο πρότυπο για τη δημιουργία προσβάσιμων ιστοσελίδων, με ολοένα αυξανόμενο αριθμό κυβερνήσεων να τις αναγνωρίζουν και να τις υιοθετούν για τις δικές τους ιστοσελίδες [96]. 100

117 Το WCAG 2.0 περιλαμβάνει 4 θεμέλιες αρχές για την προσβασιμότητα στον Iστό, 12 κατευθυντήριες γραμμές που λειτουργούν ως στόχοι για τη συγγραφή περιεχομένου και 61 ελέγξιμα κριτήρια επιτυχίας. Η δημοσίευση «Τεχνικές για το WCAG 2.0» της Κοινοπραξίας του Παγκόσμιου Ιστού περιλαμβάνει μία λίστα για την τεχνική υποστήριξη των συγγραφέων για την επίτευξη των κατευθυντήριων γραμμών και των κριτήριων επιτυχίας [108]. Οι τεχνικές ενημερώνονται τακτικά ενώ οι αρχές, οι κατευθυντήριες γραμμές και τα κριτήρια επιτυχίας παραμένουν σταθερά. Οι βασικές αρχές και οι κατευθυντήριες γραμμές που περιλαμβάνονται στο WCAG 2.0 είναι οι: 1. Αντιληπτό περιεχόμενο 1.1. Παρέχετε εναλλακτικά κείμενα για κάθε περιεχόμενο που δεν διατίθεται σε μορφή κειμένου, ώστε να μπορεί να αποδοθεί σε άλλες μορφές που χρειάζονται οι χρήστες, όπως για παράδειγμα με μεγάλη γραμματοσειρά, σε Braille, σε ομιλία, με χρήση συμβόλων ή σε πιο απλή γλώσσα Παρέχετε εναλλακτικές λύσεις για πολυμέσα που εξαρτώνται από τον χρόνο Δημιουργείτε περιεχόμενο που μπορεί να αποδοθεί με διαφορετικούς τρόπους (για παράδειγμα με απλούστερη διάταξη), χωρίς απώλεια πληροφοριών ή δομής Διευκολύνετε την οπτική και ηχητική αντίληψη του περιεχομένου από τους χρήστες, συμπεριλαμβανομένης της διάκρισης των πληροφοριών προσκηνίου από το παρασκήνιο. 2. Λειτουργικό περιεχόμενο 2.1. Καταστήστε δυνατή τη χρήση όλων των λειτουργιών μέσω πληκτρολογίου Παρέχετε στους χρήστες επαρκή χρόνο για την ανάγνωση και χρήση του περιεχομένου Μην σχεδιάζετε περιεχόμενο με τρόπο που είναι γνωστό ότι προκαλεί επιληπτικές κρίσεις λόγω φωτοευαισθησίας Παρέχετε μηχανισμούς που βοηθούν τους χρήστες να εντοπίζουν περιεχόμενο, να προσανατολίζονται και να περιηγούνται σε αυτό. 3. Κατανοητό περιεχόμενο 3.1. Το σε μορφή κειμένου περιεχόμενο πρέπει να είναι αναγνώσιμο και κατανοητό Δημιουργείτε ιστοσελίδες με προβλέψιμη διάταξη και λειτουργία Βοηθάτε τους χρήστες να αποφεύγουν και να διορθώνουν τυχόν λάθη τους. 4. Εύρωστο περιεχόμενο (περιεχόμενο χωρίς σφάλματα) 101

118 4.1. Ενισχύστε τη συμβατότητα με τρέχοντες και μελλοντικούς πράκτορες χρήστη, συμπεριλαμβανομένων των υποστηρικτικών τεχνολογιών. Drupal και προσβασιμότητα Η ανάπτυξη και χρήση των WCMS για τη δημιουργία ιστοτόπων έχει θετικές επιδράσεις και στην προσβασιμότητα του περιεχομένου Ιστού. Η χρήση των WCMS από μόνη της δεν εξασφαλίζει την προσβασιμότητα του περιεχομένου, δημιουργεί, ωστόσο, τις συνθήκες ώστε να εφαρμοστούν ευκολότερα οι τεχνικές του προτύπου WCAG 2.0. Όσο τα WCMS εξελίσσονται, περιλαμβάνουν σταδιακά στην υλοποίησή τους χαρακτηριστικά συμβατότητας με τα πρότυπα διαδικτυακής προσβασιμότητας [40], [109] [111]. Έλεγχοι προσβασιμότητας Ιστού Ένας αυξανόμενος αριθμός δημόσιων και ιδιωτικών οργανισμών προσφέρει ελέγχους προσβασιμότητας. Οι έλεγχοι αυτοί, ένα είδος δοκιμής συστήματος, εντοπίζουν τα προβλήματα προσβασιμότητας που υπάρχουν μέσα σε ένα ιστότοπο, και παρέχουν συμβουλές και καθοδήγηση σχετικά με τη λύση των εντοπιζόμενων προβλημάτων [112]. Τα είδη των μεθόδων που χρησιμοποιούνται για τον έλεγχο προσβασιμότητας ιστοσελίδων είναι: Αυτοματοποιημένα εργαλεία, τα οποία προσφέρουν ταχύτητα στην ανίχνευση προβλημάτων προσβασιμότητας με χαμηλή, όμως, ευαισθησία. Ανάλογα με το εργαλείο το αποτέλεσμα μπορεί να ποικίλλει καθιστώντας δύσκολη τη σύγκριση μεταξύ των αποτελεσμάτων των διαφόρων δοκιμών [112]. Η επιθεώρηση προσβασιμότητας ιστοτόπων από ειδικούς, η οποία υπερέχει σε εξειδίκευση και ευαισθησία, αλλά με κόστος σε όρους χρόνου και οικονομίας. Ο άμεσος έλεγχος από τους ενδιαφερόμενους χρήστες, που συνήθως εποπτεύονται από τεχνικούς εμπειρογνώμονες, μία συνήθης τακτική η οποία περιλαμβάνει την παρακολούθηση των προβλημάτων και των δυσκολιών που αντιμετωπίζουν αυτοί οι χρήστες καθώς περιηγούνται στον ιστότοπο ή κάνουν συγκεκριμένες ενέργειες που τους ζητούνται. Ο τρόπος αυτός είναι χρήσιμος για να αναγνωριστούν προβλήματα που διαφορετικά μπορεί να είχαν παραβλεφθεί. Ωστόσο, θα πρέπει να ληφθεί υπόψη η ετερογένεια μεταξύ διαφορετικών ατόμων ακόμα και με την ίδια αναπηρία. Έτσι, ακόμα και καλά σχεδιασμένοι έλεγχοι εμπειρίας χρήστη δεν μπορούν πάντα να καθορίσουν πλήρως μία αξιόπιστη στρατηγική ανάπτυξης ιστοτόπων. Ιδανικά, θα πρέπει να χρησιμοποιείται ένας συνδυασμός των παραπάνω μεθόδων. 102

119 Τα εργαλεία που χρησιμοποιήθηκαν για να αξιολογήσουν τον ιστότοπο του ACMIMS κατατάσσονται στην πρώτη μέθοδο, των αυτοματοποιημένων εργαλείων, και αναπτύσσονται παρακάτω μαζί με τα αποτελέσματα των πρώτων αξιολογήσεων. Το πλήθος και ο συνδυασμός των αυτοματοποιημένων εργαλείων που χρησιμοποιήθηκαν προέκυψε από τη διαφορετική εξειδίκευσή τους. Αξιολόγηση Φωτεινότητας και Αντίθεσης Χρωμάτων AccessColor Το εργαλείο «AccessColor» αναλύει εσωτερικές και εξωτερικές ιδιότητες CSS και ελέγχει τη φωτεινότητα και την αντίθεση των χρωμάτων μεταξύ του προβαλλόμενου και του υπόβαθρού του σε όλα τα στοιχεία στο DOM, για να βεβαιώσει ότι η αντίθεση είναι αρκετά υψηλή για άτομα με διαταραχές όρασης. Το εργαλείο αυτό καθορίζει αυτόματα τους σχετικούς συνδυασμούς χρωμάτων αντί να απαιτεί από τον σχεδιαστή τον έλεγχο όλων των συνδυασμών. Το «AccessColor» μπορεί να εμφανίσει αναφορά λαθών και προειδοποιήσεων είτε για κάθε γραμμή του HTML κειμένου είτε για το σύνολό του. Τύπος φωτεινότητας χρώματος Στο πλαίσιο συμμόρφωσης με τις Οδηγίες Προσβασιμότητας Περιεχομένου Ιστού οι συνδυασμοί χρωμάτων στο προσκήνιο και στο παρασκήνιο πρέπει να παρέχουν επαρκή αντίθεση όταν προβάλλονται σε άτομα με περιορισμένη όραση ή αχρωματοψία ή όταν προβάλλονται σε ασπρόμαυρη οθόνη. Ο μαθηματικός τύπος για τον προσδιορισμό της φωτεινότητας ενός χρώματος, που προτείνεται από την Κοινοπραξία του Παγκόσμιου Ιστού, είναι: (Ένταση Κόκκινου x 299) + (Ένταση Πράσινου x 587) + (Ένταση Μπλε x 114) / 1000 Δύο χρώματα παρέχουν καλή διακριτότητα εάν η διαφορά φωτεινότητας μεταξύ τους είναι μεγαλύτερη από 125 και η διαφορά χρωματικής έντασης είναι μεγαλύτερη από 500. Περιορισμοί Το «AccessColor» ελέγχει αποκλειστικά τη διαφορά μεταξύ των χρωμάτων του προβαλλόμενου κειμένου σε σχέση με το υπόβαθρο. Το εργαλείο δεν λειτουργεί για ιστοτόπους όπου το περισσότερο κείμενο είναι γραμμένο σε εικόνες στο παρασκήνιο ή με χρήση Adobe Flash (Adobe Systems Incorporated, San Jose, CA). Στις περιπτώσεις αυτές η διαφορά χρώματος και φωτεινότητας δεν είναι δυνατό να υπολογιστούν. Επιπλέον, η απόλυτη θέση ενός στοιχείου δεν λαμβάνεται υπόψη και επομένως, είναι πιθανό το 103

120 υπόβαθρο να διαφέρει οπτικά συγκριτικά με το υπολογιζόμενο από το «AccessColor». Τέλος, οι δυναμικές αλλαγές και τα εφέ που δημιουργούνται από τις ενέργειες του ποντικιού δεν συνυπολογίζονται. Αναφορά του «AccessColor» για τον ιστότοπο ACMIMS Τα αποτελέσματα εφαρμογής του «AccessColor» στον ιστότοπο ACMIMS δείχνουν ότι στη συγκεκριμένη ιστοσελίδα τόσο η χρωματική διαφορά όσο και η φωτεινότητα ικανοποιούν τα προτεινόμενα πρότυπα. (Εικόνα 45) Εικόνα 44. Αποτελέσματα του εργαλείου «AccessColor» για τον ιστότοπο ACMIMS. Όπως επισημαίνεται στην αναφορά, τόσο η χρωματική διαφορά όσο και η φωτεινότητα ικανοποιούν τα προτεινόμενα πρότυπα. Πρέπει να σημειωθεί, ωστόσο, ότι το εργαλείο «AccessColor» λειτουργεί καλύτερα με σελίδες έγκυρες όσον αφορά την HTML σύνταξή τους. Έλεγχος Εγκυρότητας HTML Validator Για τον έλεγχο εγκυρότητας της HTML χρησιμοποιήθηκε ο ελεγκτής σήμανσης (markup validator) που προσφέρει η Κοινοπραξία του Παγκόσμιου Ιστού, «Markup Validation Service». Τα περισσότερα κείμενα στον Ιστό είναι γραμμένα με χρήση γλώσσας σήμανσης, όπως HTML ή XHTML. Αυτές οι γλώσσες ορίζονται από τεχνικές προδιαγραφές, που συνήθως περιλαμβάνουν αναγνώσιμη από μηχανές γραμματική και λεξιλόγιο. Ο έλεγχος ενός κειμένου με αυτή τη διαδικασία ονομάζεται επικύρωση και αυτός είναι ο ρόλος του ελεγκτή σήμανσης. 104

121 Η επικύρωση των κειμένων του Ιστού είναι μείζονος σημασίας στην κατεύθυνση της διασφάλισης της ποιότητάς τους με παράλληλη εξοικονόμηση χρόνου και χρήματος. Ωστόσο, η επικύρωση με αυτήν τη διαδικασία δεν είναι αυστηρά ισοδύναμο του ελέγχου σύμφωνα με την αντίστοιχη προδιαγραφή και δεν αποδεικνύει αναγκαστικά υψηλή ποιότητα κώδικα. Ο «Markup Validation Service» μπορεί να επεξεργαστεί κείμενα γραμμένα στις περισσότερες γλώσσες σήμανσης. Οι υποστηριζόμενοι τύποι αρχείων περιλαμβάνουν την HTML (έως την HTML 4.01), την XHTML (1.0 και 1.1) καθώς και τις MathML, SMIL και SVG (1.0 και 1.1). Τα αποτελέσματα του ελέγχου εγκυρότητας εμφανίζουν σφάλματα (errors) και προειδοποιήσεις (warnings). Εφαρμόζοντας το εργαλείο στον ιστότοπο ACMIMS, ο έλεγχος κατέδειξε 15 σφάλματα και 1 προειδοποίηση μαζί με τις αντίστοιχες υποδείξεις διόρθωσής τους. Αξιοσημείωτο είναι πως τα 11 από τα 15 σφάλματα αφορούν σε έλλειψη του εναλλακτικού κειμένου (alt attribute) σε εικόνες και φωτογραφίες του ιστοτόπου. (Εικόνα 45) CSS Validator Υπάρχουν πολλές εφαρμογές εργαλείων ελέγχου εγκυρότητας της CSS. Μερικά εξ αυτών αναφέρουν τα χαρακτηριστικά των αρχείων CSS που υποστηρίζονται από διαφορετικά προγράμματα περιήγησης, δεδομένου ότι τα διάφορα προγράμματα περιήγησης δεν έχουν κοινή υλοποίηση της CSS. H επικύρωση της CSS του ιστοτόπου γίνεται με τον ίδιο τρόπο που επικυρώνεται και η HTML. Το εργαλείο ελέγχει ότι τα επικαλυπτόμενα φύλλα μορφοποίησης συμμορφώνονται με τα πρότυπα CSS που έθεσε η Κοινοπραξία του Παγκόσμιου Ιστού. Ο έλεγχος της εγκυρότητας της CSS είναι σημαντικός για τη διερεύνηση προβλημάτων παρουσίασης του ιστοτόπου στα διάφορα προγράμματα περιήγησης και για την εξασφάλιση της ομαλής παρουσίασής του σε μελλοντικές εκδόσεις των προγραμμάτων αυτών, αφού τα περισσότερα προγράμματα στοχεύουν στην πλήρη συμβατότητά τους με τα πρότυπα CSS. Επιπρόσθετα, σημαντικό αποτέλεσμα των έγκυρων CSS σελίδων είναι η απρόσκοπτη αξιολόγηση και κατάταξή τους από τις μηχανές αναζήτησης. Ο έλεγχος έγινε με το «CSS Validation Service», εργαλείο που παρέχεται από την Κοινοπραξία του Παγκόσμιου Ιστού. Ο έλεγχος στον ιστότοπο ACMIMS ανέδειξε την παρουσία 17 σχετικών σφαλμάτων. (Εικόνα 46) 105

122 Εικόνα 45. Μέρος των αποτελεσμάτων του ελέγχου εγκυρότητας της HTML για τον ιστότοπο ACMIMS με χρήση του ελεγκτή σήμανσης «Markup Validation Service». 106

123 Εικόνα 46. Μέρος των αποτελεσμάτων του ελέγχου εγκυρότητας της CSS στον ιστότοπο ACMIMS με χρήση του ελεγκτή «CSS Validation Service». Οπτική απόδοση των προβλημάτων προσβασιμότητας To «Web Accessibility Evaluation Tool, WAVE» (WebAIM, Logan, UT) είναι μία σουίτα εργαλείων για τη διευκόλυνση της αξιολόγησης της προσβασιμότητας Ιστού, παρέχοντας οπτική απόδοση των προβληματικών σημείων προσβασιμότητας στη σελίδα. (Εικόνα 47) Το «WAVE», όπως και τα υπόλοιπα αυτοματοποιημένα εργαλεία ελέγχου προσβασιμότητας Ιστού, δεν μπορεί να αποφανθεί συνολικά για την προσβασιμότητα μίας σελίδας. Η πραγματική προσβασιμότητα μίας σελίδας μπορεί να καθοριστεί μόνο από τον φυσικό χρήστη. Ένα παράδειγμα προς επεξήγηση της παραπάνω παρατήρησης είναι το εναλλακτικό 107

124 κείμενο μίας εικόνας. Ένα εργαλείο όπως το «WAVE» μπορεί να ελέγξει την ύπαρξη ή μη εναλλακτικού κειμένου σε μία εικόνα αλλά δεν μπορεί να ελέγξει εάν το κείμενο είναι περιγραφικά σωστό. Αντίστροφα, η απουσία λαθών κατά τον έλεγχο με ένα εργαλείο ελέγχου προσβασιμότητας Ιστού δεν εξασφαλίζει ότι η σελίδα είναι προσβάσιμη. Εικόνα 47. Οπτική απόδοση των προβλημάτων προσβασιμότητας του ιστοτόπου ACMIMS με τη χρήση του εργαλείου «WAVE». Στα πλεονεκτήματα του εργαλείου «WAVE» η οπτική απόδοση των αποτελεσμάτων και η ευκολία κατανόησης των σφαλμάτων προσβασιμότητας που συνεπάγεται καθώς και η δυνατότητα εντόπισης των σφαλμάτων σελίδα προς σελίδα κατά την περιήγηση στον υπό έλεγχο ιστότοπο. To «WAVE» παρουσιάζει τη σελίδα με ενσωματωμένα εικονίδια και δείκτες τα οποία αντιστοιχούν σε συγκεκριμένου τύπου προβλήματα προσβασιμότητας. (Εικόνα 48) 108

125 Εικόνα 48. Το υπόμνημα του εργαλείου «WAVE». Δίνεται μία κατάσταση των εικονιδίων και δεικτών, καθώς και μία σύντομη περιγραφή των προβλημάτων στα οποία αντιστοιχούν. Στιγμιότυπο από τα αποτελέσματα του ελέγχου προσβασιμότητας Ιστού στον ιστότοπο ACMIMS. Έλεγχος ιστοτόπου για φιλικότητα προς φορητές συσκευές Ένα ακόμα στοιχείο που πρέπει να ελέγχεται στην κατεύθυνση της προσβασιμότητας, είναι η φιλικότητα του ιστοτόπου προς φορητές συσκευές. Ο έλεγχος αυτός καθίσταται αναγκαίος λόγω των ιδιαίτερων τεχνικών χαρακτηριστικών των φορητών συσκευών (μέγεθος οθόνης, μικρή επεξεργαστική ισχύς και μνήμη, απουσία ποντικιού, χαμηλές ταχύτητες σύνδεσης στο διαδίκτυο, μειωμένος διαθέσιμος χρόνος κατά τη χρήση τους και περισπασμός περιβάλλοντος του χρήστη). Για τη διασφάλιση της επίτευξης της επιθυμητής εμπειρίας χρήστη σε όσο το δυνατόν περισσότερες φορητές συσκευές, η Ομάδα Εργασίας Βέλτιστων Πρακτικών του Φορητού Παγκοσμίου Ιστού, μέρος της Κοινοπραξίας του Παγκόσμιου Ιστού, δημοσίευσε ένα σύνολο κατευθυντήριων οδηγιών για την ανάπτυξη ιστοτόπων [113]. 109

126 Ο έλεγχος για τους υπό μελέτη ιστοτόπους έγινε με τη χρήση του εργαλείου «W3C mobileok Checker». Το «W3C mobileok Checker» είναι μία δωρεάν υπηρεσία της Κοινοπραξίας του Παγκόσμιου Ιστού, με σκοπό τον έλεγχο της φιλικότητας προς φορητές συσκευές. Αποτελεί χρήσιμο και πρακτικό εργαλείο για τον έλεγχο της εφαρμογής των βέλτιστων πρακτικών για συμβατότητα με φορητές συσκευές. Ωστόσο, δεν μπορεί να εγγυηθεί τη σωστή απόδοση του ιστοτόπου από όλες τις φορητές συσκευές ή να διασφαλίσει την ενιαία εμπειρία χρήστη ως προς την εμπειρία που προσφέρει ο σταθερός υπολογιστής. Τα αποτελέσματα του ελέγχου στον ιστότοπο ACMIMS φαίνονται στην εικόνα 49. Εικόνα 49. Τα αποτελέσματα της εφαρμογής του εργαλείου «W3C mobileok Checker» στον ιστότοπο ACMIMS. Επισημαίνεται το μεγάλο μέγεθος των εικόνων που προκαλεί σημαντική επιβάρυνση στη φόρτωση της αρχικής σελίδας του ιστοτόπου. 110

127 Σημασιολογικός Ιστός Ένα πρόβλημα που ανέκυψε κατά τη δημιουργία των ιστοτόπων ACEL και ACMIMS ήταν η επανάληψη της πληροφορίας των δημοσιεύσεων και στους δύο ιστοτόπους. Μάλιστα, η διαφορά υλοποίησης των αντίστοιχων τύπων ύλης στα δύο συστήματα ενέτεινε το πρόβλημα καθώς δεν ήταν εύκολα δυνατή η εξαγωγή των δεδομένων από το ένα σύστημα και η εισαγωγή τους στο άλλο. Μάλιστα, το πρόβλημα αυτό αποτελεί μέρος μόνο του συνολικότερου προβλήματος που αφορά στην παρουσίαση του ερευνητικού έργου του διδακτικού και ερευνητικού προσωπικού. Το προσωπικό πρέπει να εγγράφει και να επικαιροποιεί τις δημοσιεύσεις του σε πολλαπλά σημεία (Κεντρική Βάση Βιβλιογραφικών Δεδομένων στη Μονάδα Διασφάλισης Ποιότητας του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης, προσωπικός ιστότοπος, επιμέρους ιστότοποι εργαστηρίων/τομέων/τμημάτων, πιθανά σε κάποια πλατφόρμα επιστημονικής δικτύωσης κ.α.), γεγονός αφενός χρονοβόρο και αφετέρου επιρρεπές σε σφάλματα. Πιθανή λύση στο παραπάνω πρόβλημα είναι η εξαγωγή του περιεχομένου από το ένα σύστημα σε ένα «.cvs» αρχείο και η μεταγωγή του σε άλλα συστήματα μετά από κατάλληλη τροποποίησή του. Ωστόσο, αυτή η διαδικασία προϋποθέτει την τακτική ενημέρωση του συνόλου των ιστοτόπων με την επαναληπτική διαδικασία εισαγωγής του τροποποιημένου αρχείου.csv και την επαναδημιουργία περιεχομένου στα επιμέρους συστήματα. Πρόσθετα, η τροποποίηση ενός εξαγμένου.csv για εισαγωγή σε συστήματα με διαφορετική δόμηση της πληροφορίας δεν είναι πάντα απλή διαδικασία. Η ανάλυση των δημοσιεύσεων του ιστοτόπου ACEL σε οντότητες (entities) του Drupal (τύποι ύλης, πεδία, λεξιλόγια ταξινόμησης κ.α.) και ο κατακερματισμός της πληροφορίας σε διαφορετικά πεδία (συγγραφείς, τίτλος, ημερομηνία, τύπος δημοσίευσης, σύνδεσμος κ.α.) επιτρέπει τη χρήση των τεχνολογιών του Σημασιολογικού Ιστού, που προσφέρονται στον πυρήνα του Drupal 7. Ο ιστότοπος με την κατάλληλη ρύθμιση των σχετικών πρόσθετων του Drupal (του πυρήνα και των συνεισφερόμενων) είναι έτοιμος να διαβεί το κατώφλι της επόμενης γενιάς του Παγκόσμιου Ιστού (Web 3.0). Άλλωστε, το Drupal 7 αποτελεί το πρώτο από τα δημοφιλή WCMS που υποστηρίζει τις τεχνολογίες του Σημασιολογικού Ιστού στον πυρήνα του, επαναπροσδιορίζοντας τη θέση του από τον Ιστό εγγράφων (Web of documents) στον Ιστό δεδομένων (Web of data). Η σημασιολογική σήμανση των δημοσιεύσεων με τη βοήθεια του Drupal επιτρέπει τον έγκυρο, αξιόπιστο και άμεσο διαμοιρασμό του σε 111

128 πολλαπλά σημεία καθώς και τη δυνατότητα ικανοποίησης μετέπειτα σημασιολογικών αναζητήσεων [114] [117]. Web 3.0 Δεν υπάρχει συγκεκριμένος, κοινά αποδεκτός ορισμός του Web 3.0. Στην πλειοψηφία των προσπαθειών για τον ορισμό του περιγράφεται ως η εξέλιξη και επέκταση του τρέχοντος Web 2.0 με θεμελιώδες χαρακτηριστικό του τη δυνατότητα να κάνει συνδέσεις και να συνάγει έννοιες («έξυπνος» Ιστός). Το Web 3.0 αναμένεται να προσφέρει παγκόσμια συνδεσιμότητα σε ανθρώπους και εφαρμογές, διαφάνεια, πρόσβαση σε κατανεμημένες βάσεις δεδομένων, επεξεργασία φυσικής γλώσσας, μηχανική μάθηση/λογική κ.α. Μεταξύ του πλήθους των ιδεών, των λειτουργικοτήτων και των τεχνολογιών που ενσωματώνει το Web 3.0, κεντρικό ρόλο κατέχει ο Σημασιολογικός Ιστός. Ο Σημασιολογικός Ιστός είναι ένα πλέγμα διασυνδεδεμένων δεδομένων. Τα δεδομένα είναι δομημένα με κοινή μορφή και συνδέονται, ώστε να μπορούν να υποβάλλονται σε επεξεργασία άμεσα και έμμεσα από μηχανές. Τα δεδομένα μπορούν να διαμοιρασθούν και να επαναχρησιμοποιηθούν από διαφορετικές εφαρμογές, οργανισμούς και κοινότητες [118]. Οι άνθρωποι μπορούν να δημιουργήσουν αποθήκες δεδομένων στο Σημασιολογικό Ιστό, να δημιουργήσουν λεξιλόγια, και να γράψουν κανόνες για τη διαχείριση τους. Εφαρμογές της γενικής ιδέας του Σημασιολογικού Ιστού στην έρευνα της βιομηχανίας, της βιολογίας και των επιστημών του ανθρώπου έχουν ήδη αποδείξει την εγκυρότητα και τη χρησιμότητά της [119]. Στις τεχνολογίες χειρισμού των Συνδεδεμένων Δεδομένων περιλαμβάνονται οι RDF, SPARQL, OWL, SKOS, κ.α. [120] Η εξέλιξη του Σημασιολογικού Ιστού καθοδηγείται από την Κοινοπραξία του Παγκόσμιου Ιστού. Σύνολο Δεδομένων Ο όρος Σύνολο Δεδομένων αναφέρεται σε οποιαδήποτε οργανωμένη συλλογή δεδομένων. Μπορεί να χρησιμοποιηθεί εναλλακτικά του όρου αρχείο. Επίσης, οι όροι Σύνολο Δεδομένων και Βάση Δεδομένων χρησιμοποιούνται συχνά εναλλακτικά ο ένας του άλλου. Στους περισσότερους ορισμούς του Συνόλου Δεδομένων συναντούμε τέσσερα βασικά χαρακτηριστικά: ομαδοποίηση, περιεχόμενο, συνάφεια, και σκοπό. Ένα σύνολο δεδομένων συνήθως αναπαρίσταται σε μορφή πίνακα. Κάθε γραμμή αντιστοιχεί σε ένα συγκεκριμένο μέλος του συγκεκριμένου Συνόλου Δεδομένων και κάθε στήλη αντιπροσωπεύει ένα ιδιαίτερο χαρακτηριστικό των μελών του. Η τιμή κάθε στοιχείου του 112

129 πίνακα είναι γνωστή ως «δεδομένο». Μη πινακοποιημένα Σύνολα Δεδομένων μπορούν να λάβουν τη μορφή σεσημασμένων συμβολοσειρών χαρακτήρων, όπως ένα αρχείο XML. Συνδεδεμένα Δεδομένα Τα Συνδεδεμένα Δεδομένα (Linked Data) είναι μια μεθοδολογία συσχέτισης στοιχείων (δομημένων δεδομένων, εννοιών και εγγράφων) στον Ιστό, ώστε αυτά να μπορούν να συνδέονται μεταξύ τους και να αυξάνεται η χρησιμότητά τους. Αυτά τα στοιχεία και οι σχέσεις τους προσδιορίζονται (ονομάζονται) με Uniform Resource Identifiers (URIs), περιγράφονται από το Resource Description Framework (RDF) και δημοσιεύονται (γίνονται προσβάσιμα) μέσω HTTP, με τέτοιο τρόπο ώστε να μπορούν να ερμηνεύονται και να χρησιμοποιούνται τόσο από ανθρώπους όσο και από υπολογιστές [7]. Οι τέσσερις βασικές αρχές των Συνδεδεμένων Δεδομένων παρουσιάστηκαν από τον Tim Berners-Lee το 2006 [121]: 1. Χρησιμοποιήστε URIs ως ονόματα για τα πράγματα 2. Χρησιμοποιήστε HTTP URIs έτσι ώστε οι άνθρωποι να μπορούν να αναζητούν αυτά τα ονόματα 3. Όταν κάποιος αναζητά ένα URI, παράσχετε χρήσιμες πληροφορίες, χρησιμοποιώντας τα πρότυπα (RDF, SPARQL) 4. Συμπεριλάβετε συνδέσμους προς άλλα URIs, έτσι ώστε να μπορούν να ανακαλύψουν περισσότερα πράγματα Ανοικτά Δεδομένα O διεθνής οργανισμός Ανοικτής Γνώσης (Open Knowledge International, OKI, Cambridge, UK) παρέχει μέσω του «Ανοικτού Ορισμού» του έναν ορισμό για την ανοικτότητα (openness) των δεδομένων. Σύμφωνα με αυτόν τον ορισμό «ανοικτά είναι τα δεδομένα που μπορούν ελεύθερα να χρησιμοποιηθούν, να τροποποιηθούν και να αναδιανεμηθούν από οποιονδήποτε υπό τον όρο να γίνεται αναφορά στους δημιουργούς και να διατίθενται, με τη σειρά τους, υπό τους ίδιους όρους» [122]. Τα Ανοικτά Δεδομένα είναι μη-προσωπικά δεδομένα που παράγονται από ένα ευρύ φάσμα δραστηριοτήτων με ιδιαίτερη έμφαση στον τομέα της διακυβέρνησης και των επιστημών. Περιορισμοί από πατέντες πνευματικής ιδιοκτησίας, ή άλλους μηχανισμούς ελέγχου δεν μπορούν να επιβληθούν σε Ανοικτά Δεδομένα [123]. Η ιδέα πίσω από την απαίτηση για ανοικτά δημόσια δεδομένα είναι ότι τα δεδομένα που παράγονται ή συλλέγονται από φορείς του δημόσιου τομέα θα πρέπει να ανήκουν στους 113

130 πολίτες, όπου αυτό είναι οικονομικά εφικτό και όπου η απελευθέρωση δεν παραβιάζει νόμους ή το δικαίωμα στην ιδιωτική ζωή (είτε για τους πολίτες είτε για τους δημοσίους λειτουργούς). Οι στόχοι του κινήματος για Ανοικτά Δεδομένα είναι παρόμοιοι με εκείνους άλλων κινημάτων ανοικτότητας όπως τα ΕΛ/ΛΑΚ (Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα), Ανοιχτό Περιεχόμενο, Ανοικτή Διακυβέρνηση και Ανοικτή Πρόσβαση του Εθνικού Κέντρου Τεκμηρίωσης / Εθνικού Ιδρύματος Ερευνών. Ο Tim Berners-Lee, δημιουργός του Παγκόσμιου Ιστού και των Συνδεδεμένων Δεδομένων, πρότεινε ένα σχήμα 5 αστέρων για τα Ανοικτά Δεδομένα [121]. Προβλέπονται συγκεκριμένα βήματα για την απόκτηση κάθε αστεριού, τα οποία συνεπάγονται κόστη αλλά και οφέλη αθροιστικά. (Πίνακας 6) Πίνακας 6. Το σχήμα 5 αστέρων για τα Ανοικτά Δεδομένα, όπως προτάθηκε από τον Tim Berners-Lee το 2006 [121]. Επίπεδο ανοικτότητας Περιγραφή επιπέδου Διάθεση περιεχομένου στο διαδίκτυο (σε οποιαδήποτε μορφή) κάτω από μια ανοικτή άδεια Διάθεση περιεχομένου ως δομημένα δεδομένα [για παράδειγμα χρήση φύλλων εργασίας (excel) αντί σάρωσης ενός πίνακα ως εικόνα] Διάθεση περιεχομένου σε μη ιδιόκτητη ανοικτή μορφή (για παράδειγμα CSV, Excel) Χρήση διευθύνσεων URΙ για τον ορισμό του περιεχομένου, ώστε άλλοι χρήστες να δείχνουν σε αυτό Σύνδεση των δεδομένων με τα δεδομένα άλλων χρηστών για την παροχή τεκμηρίωσης Από το 2012 υπάρχουν διαθέσιμα ελληνικά Συνδεδεμένα Ανοικτά Δεδομένα στον παγκόσμιο Iστό [124]. Ενδεικτικά αναφέρονται Σύνολα Δεδομένων του Κυβερνητικού Προγράμματος «ΔΙΑΥΓΕΙΑ», της Ελληνικής Αστυνομίας, της Πυροσβεστικής Υπηρεσίας, του Προγράμματος της Τοπικής Αυτοδιοίκησης «Καλλικράτης», της Δημόσιας Βιβλιοθήκης της Βέροιας και της ελληνικής DBpedia [125]. Η DBpedia είναι μία βάση γνώσεων που περιέχει δομημένες πληροφορίες, οι οποίες προέρχονται από την Wikipedia. Το περιεχόμενο της DBpedia είναι διαθέσιμο στο Web, ώστε οι χρήστες να μπορούν να θέσουν σύνθετα ερωτήματα σχετικά με τις πηγές της Wikipedia 114

131 και να συνδέουν άλλες βάσεις δεδομένων στο Διαδίκτυο με τα δεδομένα της Wikipedia. Με αυτό τον τρόπο χρησιμοποιείται και αναδιοργανώνεται με νέους ενδιαφέροντες τρόπους ο τεράστιος όγκος των πληροφοριών της Wikipedia. Για παράδειγμα, παρότι η Wikipedia υποστηρίζει αναζήτηση μόνο με βάση λέξεις-κλειδιά, εκφραστικά ερωτήματα όπως «Δώσε μου όλα τα πανεπιστήμια της Ευρώπης με έτος ίδρυσης μετά το 1900» ή «Δώσε μου όλους τους Ιταλούς μουσικούς του 18ου αιώνα» πάνω στους πόρους της Wikipedia καθίστανται εφικτά μέσω της DBpedia. Από το 2012 είναι διαθέσιμη η πρώτη μη αγγλική έκδοση της DBpedia, στα ελληνικά, με την οποία άνοιξε ο δρόμος για τη διεθνοποίηση της DBpedia και των Συνδεδεμένων Ανοικτών Δεδομένων. Πλαίσιο Περιγραφής Πόρων Το Πλαίσιο Περιγραφής Πόρων (Resource Description Framework, RDF) είναι ένα σύνολο συστάσεων της Κοινοπραξίας του Παγκόσμιου Ιστού. Αν και αρχικά είχε σχεδιαστεί ως ένα μοντέλο για μεταδεδομένα, σήμερα χρησιμοποιείται ως μία γλώσσα γενικής χρήσης για την αναπαράσταση πληροφοριών στον Ιστό, οι οποίες έχουν μορφή επεξεργάσιμη από μηχανές. Το RDF είναι η μορφή στην οποία είναι γραμμένο το μοντέλο που ο Σημασιολογικός Ιστός χρησιμοποιεί για την αποθήκευση δεδομένων (μοντέλο δεδομένων γράφου - βάσεις δεδομένων γράφων) [126]. Σύμφωνα με αυτό το μοντέλο, οποιοδήποτε δεδομένο μπορεί να αναλυθεί σε τριπλέτες που αποτελούνται από υποκείμενο, κατηγόρημα και αντικείμενο. Ουσιαστικά, οι τριπλέτες είναι η βάση οργάνωσης των δεδομένων και το RDF αποτελεί το δομικό μοντέλο για τον διαμοιρασμό των δεδομένων μεταξύ των συστημάτων. Οντολογία Στην πληροφορική η οντολογία είναι ένα μοντέλο για την ονομασία και ορισμό των τύπων, ιδιοτήτων και διασυνδέσεων των αντικειμένων που αποτελούν ένα ενιαίο σύστημα. Με αυτό τον τρόπο ο «πραγματικός κόσμος» ενός αντικειμένου περιγράφεται μέσα από ένα σύνολο εννοιών και τις σχέσεις μεταξύ τους [7]. Στο Σημασιολογικό Ιστό, οι «οντολογίες» αναφέρονται ως «λεξιλόγια». Τα λεξιλόγια ορίζουν τις έννοιες και τις σχέσεις (όρους) οι οποίοι χρησιμοποιούνται για να περιγράψουν και να αναπαραστήσουν ένα σύστημα. Τα λεξιλόγια ταξινομούν τους όρους, χαρακτηρίζουν πιθανές σχέσεις, και καθορίζουν τυχόν περιορισμούς στη χρήση των όρων αυτών. 115

132 Γλώσσα Οντολογίας Ιστού Ο όρος Γλώσσα Οντολογίας Ιστού (Web Ontology Language, OWL) έχει εγκριθεί από την Κοινοπραξία του Παγκόσμιου Ιστού και χρησιμοποιείται για να περιγράψει μία οικογένεια τυπικών γλωσσών με διαφορετικά επίπεδα εκφραστικότητας. Αυτές οι γλώσσες χρησιμοποιούνται για να συνταχθούν οντολογίες στο Σημασιολογικό Ιστό. Μπορούν να δημιουργήσουν κλάσεις και ιδιότητες, να καθορίσουν στιγμιότυπα και τις πράξεις τους. Η Γλώσσα Οντολογίας Ιστού είναι στενά συνδεδεμένη με το Πλαίσιο Περιγραφής Πόρων, το οποίο χρησιμοποιείται ως βάση του Σημασιολογικού Ιστού. Έχει ήδη εφαρμοστεί στον ακαδημαϊκό, ιατρικό και εμπορικό τομέα [119]. Απλό Πρωτόκολλο και Γλώσσα Ερωτημάτων RDF Το Απλό Πρωτόκολλο και Γλώσσα Ερωτημάτων RDF (Simple Protocol and RDF Query Language, SPARQL) είναι μία τυπική γλώσσα ερωτημάτων για βάσεις δεδομένων γράφων (βάσεις δεδομένων που χρησιμοποιούν το μοντέλο δεδομένων του Πλαισίου Περιγραφής Πόρων). Είναι σύσταση της Κοινοπραξίας του Παγκόσμιου Ιστού από το 2008 και θεωρείται βασική τεχνολογία του Σημασιολογικού Ιστού. Υπάρχουν υλοποιήσεις της SPARQL για πολλές γλώσσες προγραμματισμού, οι οποίες προσφέρουν εργαλεία για τη σύνδεση με ένα άκρο (διεπαφή) SPARQL και την ημιαυτόματη κατασκευή ενός ερωτήματος, καθώς και τη μετάφραση των ερωτημάτων SPARQL σε άλλες γλώσσες ερωτημάτων (όπως SQL, XQuery, κ.α.). Τα ερωτήματα της SPARQL μπορεί να περιλαμβάνουν τριπλά πρότυπα, συζεύξεις, διαζεύξεις, και προαιρετικά πρότυπα. Σημασιολογικός Ιστός και Drupal Με την εγγενή υποστήριξη για RDF στον πυρήνα του, το Drupal δημιουργεί την πλατφόρμα για μία εντελώς νέα, «έξυπνη» γενιά εφαρμογών Ιστού. Οι εφαρμογές του Σημασιολογικού Ιστού εκμεταλλεύονται προκαθορισμένα σύνολα όρων, τα οποία αναζητούν σε διάφορες πηγές και τα συνδυάζουν. Η πλατφόρμα αυτή σχεδιάστηκε με σκοπό την αξιοποίηση των δυνατοτήτων που παρέχει ο Σημασιολογικός Ιστός για το διαμοιρασμό των διασυνδεδεμένων δεδομένων στον Ιστό και τη διάθεσή τους σε μηχανές ή άλλες εφαρμογές αναζήτησης. Οι ιστότοποι που υποστηρίζονται από το Drupal έχουν τη δυνατότητα να αξιοποιήσουν τα προκαθορισμένα σχήματα συνδεδεμένων δεδομένων από το Schema.org, μία πρωτοβουλία της βιομηχανίας Ιστού για την τυποποίηση των κατηγοριών και των λεξιλογίων για τα 116

133 συνηθέστερα αντικείμενα στον Ιστό [με την υποστήριξη των Google (Google Inc., Mountain View, CA), Yahoo! (Yahoo Inc., Sunnyvale, CA), Microsoft (Microsoft Corporation, Redmond, WA) και Yandex (Yandex, Moscow, Russia)]. Το Drupal διαχειρίζεται συνδυαστικά το περιεχόμενο και τα σχετικά σύνολα όρων που το χαρακτηρίζουν. Η σήμανση του περιεχομένου με σημασιολογικούς όρους κάνει το περιεχόμενο εντοπίσιμο και χρήσιμο. Τα αποτελέσματα κοινοποιούνται αυτόματα μεταξύ των μηχανημάτων για την επίλυση προβλημάτων και την ικανοποίηση σημασιολογικών αναζητήσεων. Χρησιμοποιώντας το Drupal, οι προγραμματιστές εφαρμογών μπορούν να εστιάσουν στη δημιουργία ελκυστικών διαδικτυακών εμπειριών και στην παροχή συνολικών λύσεων συγκεντρώνοντας περιεχόμενο από ανόμοιες πηγές, χωρίς να αναλώνονται στις λεπτομέρειες της εφαρμογής σε επίπεδο σύλληψης, οργάνωσης και διατήρησης των μεταδεδομένων. Συνοψίζοντας, οι εφαρμογές του Σημασιολογικού Ιστού μπορούν να συνδυάζουν εύκολα πληροφορίες από διαφορετικές πηγές για να παραδώσουν έξυπνες λύσεις που εξοικονομούν χρόνο και παρέχουν πολύτιμες, συνδυαστικές γνώσεις. Καθώς το Drupal συνεχίζει να εξαπλώνεται στους ιστοτόπους υψηλής επισκεψιμότητας, θα υποστηρίζει ολοένα και περισσότερο τα διασυνδεδεμένα δεδομένα και άλλες έννοιες του Σημασιολογικού Ιστού, οι οποίες είναι πολύτιμες για τέτοιου είδους ιστοτόπους και σταδιακά εξελίσσονται σε αναγκαία συνθήκη. 117

134 118

135 ΠΑΡΑΡΤΗΜΑ Α. Δομή σελίδας HTML Οι ετικέτες HTML είναι λέξεις κλειδιά (tag names) μέσα σε γωνιώδεις αγκύλες: <tagname>content</tagname> Οι ετικέτες HTML παρατίθενται σε ζευγάρια όπως <p> και </p>. Η πρώτη ετικέτα σε ένα ζευγάρι είναι η ετικέτα αρχής ενώ η δεύτερη ετικέτα είναι η ετικέτα τέλους. Η ετικέτα τέλους είναι γραμμένη όπως η ετικέτα αρχής αλλά με μία κάθετο πριν το όνομα της ετικέτας. Πίνακας 7. Παράδειγμα δομής σελίδας HTML με τον κώδικα HTML και επεξήγησή του. Χρησιμοποιώντας αυτόν τον κώδικα ένα πρόγραμμα περιήγησης Ιστού μπορεί να εμφανίσει ένα κείμενο με τίτλο και μία παράγραφο. Κώδικας <!DOCTYPE html> Επεξήγηση Η δήλωση DOCTYPE ορίζει τον τύπο του κειμένου σε HTML <html> <head> <title>τίτλος Σελίδας</title> </head> Το περιεχόμενο μεταξύ των <html> και </html> περιγράφει ένα κείμενο HTML Το περιεχόμενο μεταξύ <head> και </head> παρέχει πληροφορίες σχετικά με το κείμενο Το περιεχόμενο μεταξύ <title> και </title> παρέχει ένα τίτλο για το κείμενο <body> Το περιεχόμενο μεταξύ <body> και </body> <h1>επικεφαλίδα</h1> <p>παράγραφος.</p> </body> </html> περιγράφει το εμφανές περιεχόμενο του κειμένου Το περιεχόμενο μεταξύ <h1> και </h1> περιγράφει μία επικεφαλίδα Το περιεχόμενο μεταξύ <p> και </p> περιγράφει μία παράγραφο Ο σκοπός ενός προγράμματος περιήγησης Ιστού είναι η ανάγνωση κειμένων HTML και η εμφάνισή τους. Το πρόγραμμα περιήγησης δεν εμφανίζει ετικέτες HTML αλλά τις χρησιμοποιεί για να προσδιορίσει την εμφάνιση ενός κειμένου. Παρακάτω απεικονίζεται η τελική εμφάνιση της σελίδας HTML που περιγράφηκε στον πίνακα 7 του ΠΑΡΑΡΤΗΜΑΤΟΣ Α. Σημειώνεται πως στο πρόγραμμα περιήγησης εμφανίζεται μόνο η περιοχή <body> (η λευκή περιοχή). 119

136 Εικόνα 50. Η τελική εμφάνιση σε ένα κοινό πρόγραμμα περιήγησης του κώδικα «Παράδειγμα δομής σελίδας HTML», όπως περιγράφηκε στην αρχή του Παραρτήματος Α, Πίνακας 7. Υπάρχουν διαφόρων τύπου κείμενα στο διαδίκτυο. Για να εμφανίσει ένα κείμενο σωστά, το πρόγραμμα περιήγησης πρέπει να γνωρίζει τον τύπο και την έκδοση του κειμένου. Ο τύπος και η έκδοση του κειμένου δηλώνονται μέσω του <!DOCTYPE>. Η δήλωση doctype δεν κάνει διάκριση μικρών-κεφαλαίων γραμμάτων. Οι δηλώσεις <!DOCTYPE html>, <!DOCTYPE HTML>, <!doctype html>, <!Doctype Html> αποτελούν όλες αποδεκτές περιπτώσεις δήλωσης του τύπου κειμένου. Πίνακας 8. Παραδείγματα δηλώσεων τύπου κειμένου HTML. Τύπος εγγράφου HTML5 Δήλωση <!DOCTYPE html> HTML 4.01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " XHTML 1.0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " transitional.dtd"> 120

137 ΠΑΡΑΡΤΗΜΑ Β. Σύνταξη CSS Ένα σύνολο κανόνων CSS αποτελείται από έναν επιλογέα (selector) και ένα σύνολο δηλώσεων (declaration block). Ο επιλογέας δηλώνει το στοιχείο HTML προς μορφοποίηση. Το κομμάτι των δηλώσεων περιέχει μία ή περισσότερες δηλώσεις χωριζόμενες από ερωτηματικό. Κάθε δήλωση CSS κλείνει με ένα ερωτηματικό και το σύνολο των δηλώσεων περιβάλλονται από άγκιστρα. Στο παρακάτω παράδειγμα όλα τα στοιχεία παραγράφου <p> θα είναι στοιχισμένα στο κέντρο, με το κείμενο χρωματισμένο σε κόκκινο. p { color: red; text-align: center; } Επιλογείς CSS Οι επιλογείς CSS χρησιμοποιούνται για να επιλέγουν στοιχεία HTML βασισμένα στο όνομα, το id, την κλάση, τα ορίσματα τους κ.α. Επιλογέας στοιχείου. Ο επιλογέας στοιχείου επιλέγει στοιχεία βασιζόμενος στο όνομα του στοιχείου. Στο παρακάτω παράδειγμα όλα τα στοιχεία παραγράφου <p> θα είναι στοιχισμένα στο κέντρο, με το κείμενο χρωματισμένο σε κόκκινο. p { text-align: center; color: red; } Επιλογέας id. Ο επιλογέας id χρησιμοποιεί την ιδιότητα id ενός στοιχείου HTML για να επιλέξει ένα συγκεκριμένο στοιχείο. Το id ενός στοιχείου πρέπει να είναι μοναδικό στη σελίδα, ώστε ο επιλογέας να είναι σε θέση να επιλέξει ένα μοναδικό στοιχείο. Για να επιλεγεί ένα στοιχείο με ένα συγκεκριμένο id, χρησιμοποιείται ο χαρακτήρας # ακολουθούμενος από το id του στοιχείου. Ο κανόνας μορφοποίησης του παρακάτω παραδείγματος θα εφαρμοστεί στο στοιχείο HTML με id= para1 : #para1 { text-align: center; color: red; } Επιλογέας κλάσης. Ο επιλογέας κλάσης επιλέγει στοιχεία με μία συγκεκριμένη κλάση. Για την επιλογή στοιχείων συγκεκριμένης κλάσης, χρησιμοποιείται η τελεία (.) ακολουθούμενη από το όνομα της κλάσης. Στο παρακάτω παράδειγμα όλα τα στοιχεία HTML με κλάση «center» θα είναι κόκκινου χρώματος και στοιχισμένα στο κέντρο:.center { text-align: center; color: red; } 121

138 Δίνεται, επίσης, η δυνατότητα επιλογής συγκεκριμένων μόνο στοιχείων HTML μίας κλάσης. Στο παρακάτω παράδειγμα, μόνο τα στοιχεία <p> με κλάση «center» θα στοιχηθούν στο κέντρο: p.center { text-align: center; color: red; } Ακόμα, τα στοιχεία HTML μπορούν να αναφέρονται σε περισσότερες από μία κλάσεις. Στο παρακάτω παράδειγμα, το στοιχείο <p> θα μορφοποιηθεί σύμφωνα με την κλάση «center» και σύμφωνα με την κλάση «large»: <p class="center large">this paragraph refers to two classes.</p> Ομαδοποίηση Επιλογέων. Στην περίπτωση που υπάρχουν στοιχεία με τους ίδιους ορισμούς μορφοποίησης, όπως: h1 { text-align: center; color: red; } h2 { text-align: center; color: red;} p { text-align: center; color: red; } είναι προτιμότερο η ομαδοποίηση των επιλογέων για την ελαχιστοποίηση και απλούστευση του κώδικα. Για την ομαδοποίηση των επιλογέων, χρησιμοποιείται μεταξύ τους το κόμμα (,). Στο παράδειγμα που ακολουθεί παρουσιάζεται η ομαδοποίηση των τριών παραπάνω δηλώσεων: h1, h2, p { text-align: center; color: red; } 122

139 ΠΑΡΑΡΤΗΜΑ Γ. Βασικές δυνατότητες της JavaScript Αλλαγή του περιεχομένου της HTML. Μεταξύ των πολλών μεθόδων HTML συμπεριλαμβάνεται η «getelementbyid()». Το παρακάτω παράδειγμα χρησιμοποιεί τη μέθοδο με σκοπό την ανίχνευση ενός στοιχείου HTML (id="demo"), και στη συνέχεια, με το πάτημα του κουμπιού «Πάτησέ με!» την αλλαγή του περιεχομένου του στοιχείου (innerhtml) σε «Hello JavaScript». <!DOCTYPE html> <html> <body> <h1>τι μπορεί να κάνει η JavaScript?</h1> <p id="demo">h JavaScript μπορεί να αλλάξει το περιεχόμενο της HTML.</p> <button type="button" onclick="document.getelementbyid('demo').innerhtml = 'Γεια σου JavaScript!'"> Πάτησέ με!</button> </body> </html> Τι μπορεί να κάνει η JavaScript? H JavaScript μπορεί να αλλάξει το περιεχόμενο της HTML. Τι μπορεί να κάνει η JavaScript? Γεια σου JavaScript! 123

140 Αλλαγή των ιδιοχαρακτηριστικών της HTML. Στο παρακάτω παράδειγμα επιτυγχάνεται η αλλαγή μίας σελίδας HTML με την αλλαγή του ιδιοχαρακτηριστικού src μίας ετικέτας <img>. <!DOCTYPE html> <html> <body> <h1>η JavaScript Μπορεί να Τροποποιήσει Εικόνες</h1> <img id="myimage" onclick="changeimage()" src="pic_bulboff.gif" width="100" height="180"> <p>πατήστε την λάμπα για να ανάψετε/σβήσετε το φως.</p> <script> function changeimage() { var image = document.getelementbyid('myimage'); if (image.src.match("bulbon")) { image.src = "pic_bulboff.gif"; } else { image.src = "pic_bulbon.gif"; } } </script> </body> </html> Η JavaScript Μπορεί να Τροποποιήσει Εικόνες Η JavaScript Μπορεί να Τροποποιήσει Εικόνες Πατήστε την λάμπα για να ανάψετε/σβήσετε το φως. Πατήστε την λάμπα για να ανάψετε/σβήσετε το φως. 124

141 Αλλαγή της μορφοποίησης CSS της HTML. Ειδική περίπτωση αλλαγής ενός ιδιοχαρακτηριστικού της HTML αποτελεί η αλλαγή της μορφοποίησης ενός HTML στοιχείου. Στο παρακάτω παράδειγμα, με το πάτημα του κουμπιού η JavaScript εντοπίζει το στοιχείο <p> της HTML μέσω του id «demo» και τροποποιεί τις CSS ιδιότητες του στοιχείου. <!DOCTYPE html> <html> <body> <h1>τι Μπορεί να κάνει η JavaScript?</h1> <p id="demo">η JavaScript μπορεί να αλλάξει την μορφοποίηση ενός HTML στοιχείου.</p> <button type="button" onclick="myfunction()">πάτησέ με!</button> <script> function myfunction() { var x = document.getelementbyid("demo"); x.style.fontsize = "25px"; x.style.color = "red"; } </script> </body> </html> Τι Μπορεί να κάνει η JavaScript? Η JavaScript μπορεί να αλλάξει την μορφοποίηση ενός HTML στοιχείου. Τι Μπορεί να κάνει η JavaScript? Η JavaScript μπορεί να αλλάξει την μορφοποίηση ενός HTML στοιχείου. 125

142 Επαλήθευση δεδομένων εισόδου. Η JavaScript χρησιμοποιείται επίσης για την επαλήθευση δεδομένων εισόδου σε φόρμες. Στο παρακάτω παράδειγμα εφαρμόζεται έλεγχος των δεδομένων εισόδου ώστε η εισαγόμενη τιμή να είναι μεγαλύτερη του ενός και μικρότερη του δέκα. <!DOCTYPE html> <html> <body> <h1>h JavaScript Μπορεί να Επαληθεύσει Δεδομένα Εισόδου</h1> <p>παρακαλώ εισαγάγετε έναν αριθμό μεταξύ 1 και 10:</p> <input id="numb"> <button type="button" onclick="myfunction()">καταχωρήστε</button> <p id="demo"></p> <script> function myfunction() { var x, text; // Get the value of the input field with id="numb" x = document.getelementbyid("numb").value; // If x is Not a Number or less than one or greater than 10 if (isnan(x) x < 1 x > 10) { text = "Τα Δεδομένα δεν είναι έγκυρα";} else { text = "Τα Δεδομένα Εισόδου είναι OK!";} document.getelementbyid("demo").innerhtml = text; } </script> </body> </html> 126

143 H JavaScript Μπορεί να Επαληθεύσει Δεδομένα Εισόδου Παρακαλώ εισαγάγετε έναν αριθμό μεταξύ 1 και 10: H JavaScript Μπορεί να Επαληθεύσει Δεδομένα Εισόδου Παρακαλώ εισαγάγετε έναν αριθμό μεταξύ 1 και 10: Τα Δεδομένα Εισόδου είναι OK! Τα Δεδομένα δεν είναι έγκυρα 127

144 128

145 ΠΑΡΑΡΤΗΜΑ Δ. Γλωσσικά χαρακτηριστικά της SQL Η γλώσσα SQL διαχωρίζεται στα παρακάτω γλωσσικά χαρακτηριστικά: Όρους (Clauses), οι οποίοι αποτελούν συστατικά στοιχεία των Προτάσεων (Statements) και των Ερωτημάτων (Queries). Προτάσεις (Statements), που μπορεί να έχουν ένα μόνιμο αποτέλεσμα στις δομές και στα δεδομένα ή μπορεί να ελέγχουν συναλλαγές, ροή προγράμματος, συνδέσεις, περιόδους λειτουργίας ή διαγνωστικά. Ερωτήματα (Queries), που ανακτούν τα δεδομένα βάση συγκεκριμένων κριτηρίων. Παραστάσεις (Expressions), που μπορούν να παράξουν είτε βαθμωτές τιμές είτε πίνακες αποτελούμενους από στήλες και γραμμές δεδομένων. Κατηγορήματα (Predicates), τα οποία προσδιορίζουν συνθήκες που μπορούν να αποτιμηθούν σε λογική SQL τριών καταστάσεων (true/false/unknown) ή Boolean, και χρησιμοποιούνται για να περιορίσουν τα αποτελέσματα των προτάσεων και των ερωτημάτων ή για να αλλάξουν τη ροή του προγράμματος. Εικόνα 51. Εφαρμογή ορισμένων στοιχείων της γλώσσας SQL στη σύνθεση μίας απλής πρότασης. Μία βάση δεδομένων συχνά περιέχει έναν ή περισσότερους πίνακες. Κάθε πίνακας προσδιορίζεται από ένα όνομα (για παράδειγμα «Customers» ή «Orders»). Οι γραμμές του πίνακα αντιστοιχούν σε εγγραφές δεδομένων. Παρακάτω παρουσιάζεται ένα παράδειγμα ενός τέτοιου πίνακα (πίνακας «Customers»). (Πίνακας 9) Ο πίνακας περιέχει πέντε γραμμές (εγγραφή για κάθε πελάτη) και επτά στήλες (CustomerID, CustomerName, ContactName, Address, City, PostalCode και Country). 129

146 Πίνακας 9. Παράδειγμα πίνακα βάσης δεδομένων SQL. Ο πίνακας «Customers» περιέχει πέντε γραμμές (εγγραφή για κάθε πελάτη) και επτά στήλες (CustomerID, CustomerName, ContactName, Address, City, PostalCode και Country). CustomerID CustomerName ContactName Address City PostalCode Country 1 Lottie Abner Messner Lottie Abner Messner 824 Creek Road Hopkins 2 Anton Leo Darrell Anton Leo 332 7th Darrell Street Rosedale 3 Lauren Frank Lauren Frank 200 8th Rogers Rogers Avenue Chillicothe 4 Elodia Vasco Neil Elodia Vasco Neil 923 Pearl Street Collegeville 5 Bee Amaya Baker Bee Amaya 183 Virginia Baker Street Logansport Berlin Germany México Mexico México Mexico London UK Luleå Sweden Πολλές από τις ενέργειες που πραγματοποιούνται σε μία βάση δεδομένων εκτελούνται από προτάσεις SQL. Στο προηγούμενο παράδειγμα, για την επιλογή του συνόλου των εγγραφών του πίνακα χρησιμοποιείται η SQL πρόταση: SELECT * FROM Customers; Σημειώνεται πως η SQL δεν κάνει διάκριση πεζών-κεφαλαίων. Ακόμα, οι προτάσεις SQL περιλαμβάνουν το ερωτηματικό (;) ως τερματικό της πρότασης. Παρά το γεγονός ότι δεν απαιτείται από όλες τις πλατφόρμες, το ερωτηματικό αποτελεί παραδοσιακά ένα τυπικό κομμάτι της SQL σύνταξης. Επιπρόσθετα, το ερωτηματικό είναι ο καθιερωμένος τρόπος διαχωρισμού της κάθε πρότασης SQL, σε συστήματα βάσεων δεδομένων που επιτρέπουν περισσότερες από μία προτάσεις SQL να εκτελούνται στην ίδια κλήση προς τον διακομιστή. Γενικά, τα κενά αγνοούνται στις προτάσεις και τα ερωτήματα, καθιστώντας ευκολότερη τη διαμόρφωση του κώδικα SQL σε πιο ευανάγνωστη μορφή. Οι σημαντικότερες εντολές SQL παρουσιάζονται στον πίνακα

147 Πίνακας 10. Οι σημαντικότερες εντολές SQL. Εντολή SELECT UPDATE DELETE INSERT INTO CREATE DATABASE ALTER DATABAS CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX Περιγραφή λειτουργίας εξάγει δεδομένα από μία βάση δεδομένων ενημερώνει δεδομένα σε μία βάση δεδομένων διαγράφει δεδομένα από μία βάση δεδομένων εισάγει νέα δεδομένα σε μία βάση δεδομένων δημιουργεί μία νέα βάση δεδομένων τροποποιεί μία βάση δεδομένων δημιουργεί ένα πίνακα τροποποιεί ένα πίνακα διαγράφει ένα πίνακα δημιουργεί ένα ευρετήριο (λέξη κλειδί) Ερωτήματα. Η πιο κοινή λειτουργία στην SQL, το ερώτημα, κάνει χρήση της περιγραφικής δήλωσης SELECT. Η SELECT ανακτά δεδομένα από έναν ή περισσότερους πίνακες ή παραστάσεις. Οι τυπικές προτάσεις SELECT δεν έχουν μόνιμη επίδραση στη βάση δεδομένων ενώ ορισμένες μη τυπικές υλοποιήσεις της SELECT μπορούν να έχουν μόνιμη επίδραση. Παράδειγμα αποτελεί η σύνταξη SELECT INTO που παρέχεται σε κάποιες υλοποιήσεις. Τα ερωτήματα επιτρέπουν στον χρήστη να περιγράψει τα επιθυμητά δεδομένα, αφήνοντας στο σύστημα διαχείρισης της βάσης δεδομένων να διεκπεραιώσει το σχεδιασμό, τη βελτιστοποίηση και την εκτέλεση των απαραίτητων λειτουργιών για την παραγωγή των αποτελεσμάτων. Συνήθως αμέσως μετά την εντολή SELECT, ένα ερώτημα περιλαμβάνει μία λίστα από στήλες για να συμπεριληφθούν στο τελικό αποτέλεσμα. Ο αστερίσκος (*) χρησιμοποιείται για να δηλώσει ότι το ερώτημα επιστρέφει όλες τις στήλες των υπό ερώτηση πινάκων. Η εντολή SELECT περιλαμβάνει πληθώρα προαιρετικών λέξεων κλειδιών και όρων: Ο όρος FROM υποδεικνύει τον πίνακα ή τους πίνακες από όπου θα γίνει η ανάκτηση των δεδομένων. Ο όρος FROM μπορεί να περιλαμβάνει προαιρετικούς υπο-όρους JOIN για να προσδιορίσουν τους κανόνες για την ένωση των πινάκων. Ο όρος WHERE εισάγει ένα κριτήριο σύγκρισης, επιλέγοντας από το σύνολο των απαντήσεων τις γραμμές οι οποίες πληρούν το συγκεκριμένο κριτήριο. Ο όρος GROUP BY επιλέγει και προβάλλει γραμμές που έχουν κοινές τιμές σε ένα μικρότερο σύνολο από γραμμές. Το GROUP BY συχνά χρησιμοποιείται σε συνδυασμό με συναρτήσεις συνάθροισης της SQL ή για την απαλοιφή των διπλών εγγραφών από 131

148 ένα σύνολο αποτελεσμάτων. Ο όρος WHERE συνδυάζεται με τον όρο GROUP BY και εφαρμόζεται πριν από αυτόν. Ο όρος HAVING περιλαμβάνει ένα κατηγόρημα που χρησιμοποιείται στη διαλογή των γραμμών που προκύπτουν από τον όρο GROUP BY. Ο όρος WHERE εισάγει κριτήρια σε επιλεγμένες στήλες ενώ ο όρος HAVING εισάγει κριτήρια στις ομάδες που προκύπτουν από την εφαρμογή του όρου GROUP BY. Ο όρος ORDER BY προσδιορίζει τη στήλη που θα χρησιμοποιηθεί για την ταξινόμηση των δεδομένων του αποτελέσματος καθώς και τη σειρά ταξινόμησης (αύξουσα ή φθίνουσα). Χωρίς τον όρο ORDER BY η σειρά των γραμμών που επιστρέφεται ως αποτέλεσμα ενός ερωτήματος SQL δεν προσδιορίζεται. Ο όρος DISTINCT απαλείφει τα διπλότυπα δεδομένα. Το παρακάτω παράδειγμα ενός ερωτήματος SELECT επιστρέφει μία λίστα από ακριβά βιβλία. Το ερώτημα ανακτά όλες τις γραμμές από τον πίνακα «Book» στον οποίο η στήλη «price» περιέχει τιμές μεγαλύτερες από Το αποτέλεσμα ταξινομείται σε αύξουσα σειρά κατά τίτλο. Ο αστερίσκος στην εντολή SELECT υποδεικνύει ότι όλες οι στήλες του πίνακα «Book» πρέπει να περιληφθούν στο σύνολο των αποτελεσμάτων. SELECT * FROM Book WHERE price > ORDER BY title; 132

149 ΠΑΡΑΡΤΗΜΑ Ε. Βασική σύνταξη PHP Ένα σενάριο PHP μπορεί να τοποθετηθεί οπουδήποτε στο κείμενο. Τα σενάρια PHP ξεκινάνε με <?php και τελειώνουν με?>, ενώ οι εντολές του κώδικα τελειώνουν με το σημείο στίξης ερωτηματικό (;). Ένα αρχείο PHP έχει επέκταση «.php» και μπορεί να περιέχει HTML, CSS, JavaScript ή/και κώδικα PHP. Παρακάτω παρουσιάζεται ένα απλό παράδειγμα αρχείου PHP, στο οποίο χρησιμοποιείται η ενσωματωμένη στην PHP συνάρτηση echo για να εμφανίσει σε μία ιστοσελίδα το κείμενο «Hello World!». <!DOCTYPE html> <html> <body> <h1>my first PHP page</h1> <?php echo "Hello World!";?> </body> </html> 133

150 134

151 ΠΑΡΑΡΤΗΜΑ ΣΤ. Δομή Βάσης Δεδομένων Drupal Παρακάτω παρουσιάζεται η δομή της βάσης δεδομένων που χρησιμοποιεί το Drupal 7 για να εγγράψει την πληροφορία ενός κόμβου τύπου ύλης «News» του ιστοτόπου ACMIMS. (Εικόνα 52, Εικόνα 53, Εικόνα 54, Εικόνα 55, Εικόνα 56, Εικόνα 57, Εικόνα 58, Εικόνα 59) Εικόνα 52. Tα πεδία που περιέχονται στον τύπο περιεχομένου «News», όπως παρουσιάζονται στη διεπαφή χρήστη του Drupal. 135

152 Εικόνα 53. Με την εισαγωγή ενός κόμβου, ενημερώνεται ο πίνακας των κόμβων. 136

153 Εικόνα 54. Όλα τα πεδία ενός κόμβου έχουν τον δικό τους πίνακα. Στην εικόνα παρουσιάζεται ο πίνακας του πεδίου τίτλου του κόμβου (field_data_title_field). 137

154 Εικόνα 55. Πίνακας πεδίου κυρίως κειμένου του κόμβου (field_data_body). 138

155 Εικόνα 56. Πίνακας πεδίου ημερομηνίας κόμβου (field_data_field_news_date). 139

156 Εικόνα 57. Πίνακας πεδίου αρχείου του κόμβου (field_data_field_news_file). 140

157 Εικόνα 58. Πίνακας πεδίου εικόνας του κόμβου (field_data_field_news_image). 141

158 Παρακάτω παρουσιάζεται ο τρόπος καταχώρησης των δεδομένων του κόμβου «Public Lecture by Dr. Andreas Cangellaris» (nid=24) του ιστοτόπου ACMIMS στους αντίστοιχους πίνακες. Τα ερωτήματα που χρησιμοποιήθηκαν παρουσιάζονται παρακάτω ενώ στην εικόνα 59 παρουσιάζονται τα αντίστοιχα αποτελέσματα των ερωτημάτων. SELECT * FROM node WHERE nid = 24 SELECT * FROM field_data_body WHERE entity_id= 24 SELECT * FROM field_data_title_field WHERE entity_id= 24 SELECT * FROM field_data_field_news_date WHERE entity_id= 24 SELECT * FROM field_data_field_news_image WHERE entity_id= 24 SELECT * FROM field_data_field_news_file WHERE entity_id=

159 Εικόνα 59. Η εγγραφή του κόμβου με nid=24 στους αντίστοιχους πίνακες των πεδίων του. 143

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

Διαβάστε περισσότερα

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

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας. Η Πυξίδα Απασχόλησης είναι ένα πλήρως παραμετροποιήσιμο portal που απευθύνεται σε Κέντρα Επαγγελματικής Κατάρτισης, Δήμους, Εκπαιδευτικούς Οργανισμούς και Εταιρίες Εύρεσης Εργασίας, με στόχο τόσο την μηχανογράφηση

Διαβάστε περισσότερα

Η βασική εργαλειοθήκη του διαδικτύου

Η βασική εργαλειοθήκη του διαδικτύου Η βασική εργαλειοθήκη του διαδικτύου Ματθαίος Πατρινόπουλος 1 2 HTML Hyper Text Markup Language Σήμερα στην έκδοση 5 --> HTML5 Δεν είναι γλώσσα προγραμματισμού αλλά γλώσσα που καθορίζει η δομή και τις

Διαβάστε περισσότερα

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά Νίκος Πασσαράς

Διαβάστε περισσότερα

Συγκεντρωτικό Παράρτημα

Συγκεντρωτικό Παράρτημα Αρχική σελίδα -> Βρείτε το. Δεν λειτουργούν τα links Αποπροσανατολισμός, δυσλειτουργία δικτυακού τόπου Να διορθωθούν τα links Έγινε έλεγχος και διόρθωση όλων των συνδέσμων Ενότητα βιβλιοθήκη: η διαδρομή

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

Εισαγωγή στις δομές δεδομένων Στοίβα και Ουρά με τη βοήθεια του Scratch

Εισαγωγή στις δομές δεδομένων Στοίβα και Ουρά με τη βοήθεια του Scratch Εισαγωγή στις δομές δεδομένων Στοίβα και Ουρά με τη βοήθεια του Scratch Επαρκές Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: ΘΕΟΔΩΡΟΣ ΠΑΠΠΑΣ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ,

Διαβάστε περισσότερα

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Τι είναι το Wordpress: To Wordpress είναι ένα δωρεάν ανοικτού κώδικα (open source) λογισμικό (εφαρμογή), με το οποίο μπορεί κάποιος να δημιουργεί

Διαβάστε περισσότερα

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

Προγραμματισμός Διαδικτύου Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Προγραμματισμός Διαδικτύου Δρ. Μηνάς Δασυγένης mdasygenis@uowm.gr Τμήμα της παρουσίασης δημιουργήθηκε από τον κ. Παναγιώτη

Διαβάστε περισσότερα

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2720 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ Έβδομο ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Ανάπτυξη Διαδικτυακών Εφαρμογών ΑΥΤΟΤΕΛΕΙΣ ΔΙΔΑΚΤΙΚΕΣ

Διαβάστε περισσότερα

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών Φορολογική Βιβλιοθήκη Θανάσης Φώτης Προγραμματιστής Εφαρμογών Το έργο Η φορολογική βιβλιοθήκη πρόκειται για ένα έργο που φιλοδοξεί να αποτελέσει σημαντικό βοήθημα για τον επαγγελματία λογιστή και όχι μόνο.

Διαβάστε περισσότερα

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML Δικτυακά Πολυμέσα ΙΙ Διάλεξη #2 η : Βασικές έννοιες σχεδιασμού στο web Γαβαλάς Δαμιανός dgavalas@aegean.gr Περιεχόμενα Τρέχον status της HTML Μετάβαση από την HTML στην XHTML Κλέ Καλές πρακτικές συγγραφής

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... xiii

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

Διαβάστε περισσότερα

Περιεχόμενο Εκπαιδευτικής Υποστήριξης για την Προετοιμασία των Μαθητών

Περιεχόμενο Εκπαιδευτικής Υποστήριξης για την Προετοιμασία των Μαθητών Περιεχόμενο Εκπαιδευτικής Υποστήριξης για την Προετοιμασία των Μαθητών Στο πλαίσιο της συγχρηματοδοτούμενης πράξης «Πιλοτικές Παρεμβάσεις υποστήριξης Πιστοποίησης μαθητών Γ τάξης Γυμνασίου για την απόκτηση

Διαβάστε περισσότερα

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

Αξιοποίηση και διάθεση ελληνικού ψηφιακού έγκριτου περιεχομένου

Αξιοποίηση και διάθεση ελληνικού ψηφιακού έγκριτου περιεχομένου Εισαγωγικός Οδηγός Το έργο Πλατφόρμα Παροχής Υπηρεσιών Κατάθεσης, Διαχείρισης και Διάθεσης Ανοικτών Δεδομένων & Ψηφιακού Περιεχομένου Αξιοποίηση και διάθεση ελληνικού ψηφιακού έγκριτου περιεχομένου To

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος Δικτυακοί τόποι Η σχεδίαση ενός δικτυακού τόπου Δρ. Ματθαίος Α. Πατρινόπουλος Πώς χρησιμοποιούμε το διαδίκτυο; ΔΙΑΦΑΝΕΙΕΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΔΙΑΔΙΚΤΥΟΥ. 2 Από το www.smartinsights.

Διαβάστε περισσότερα

Πειραιάς S 2 Ε Lab Ιούνιος 2012. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης

Πειραιάς S 2 Ε Lab Ιούνιος 2012. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης Πειραιάς S 2 Ε Lab Ιούνιος 2012 Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης Πνευµατικά δικαιώµατα Τα πνευµατικά δικαιώµατα χρησιµοποίησης του µη πρωτότυπου υλικού της εργασίας ανήκουν στο/στη φοιτητή/-τρια

Διαβάστε περισσότερα

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

Η HTML 5 θα αλλάξει το Web?

Η HTML 5 θα αλλάξει το Web? Η HTML 5 θα αλλάξει το Web? (ή αλλιώς, έρχεται το τέλος των plugins?) Αλέξανδρος Καράκος Εργαστήριο Προγραµµατισµού και Επεξεργασίας Πληροφοριών Internet 2... Είναι ένα ξεχωριστό µέσο δηµοσίευσης πληροφοριών

Διαβάστε περισσότερα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο 2014-2015 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Η βασική εργαλειοθήκη του διαδικτύου (2 ο μέρος)

Η βασική εργαλειοθήκη του διαδικτύου (2 ο μέρος) Η βασική εργαλειοθήκη του διαδικτύου (2 ο μέρος) Ματθαίος Πατρινόπουλος Διαφάνειες του μαθήματος σχεδιασμός και ανάπτυξη εφαρμογών διαδικτύου. M.Πατρινόπουλος 1 Δικτυακές εφαρμογές Oποιοδήποτε λογισμικό

Διαβάστε περισσότερα

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

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών ΤΣΙΜΠΑΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΞΗΝΤΑΡΙΔΗΣ ΙΩΑΝΝΗΣ Κέντρο Λειτουργίας και Διαχείρισης Δικτύου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

Εργαλεία Ανάπτυξης Εφαρμογών Internet I Εργαλεία Ανάπτυξης Εφαρμογών Internet I 1: Εισαγωγή στον Παγκόσμιο Ιστό Σταύρος Καμμάς Δομή μαθήματος 1. Εισαγωγή στον Παγκόσμιο Ιστό (www, υπερκείμενο, υπερσύνδεσμοι, υπερμέσα, πολυμέσα, πλοηγοί, παραδείγματα)

Διαβάστε περισσότερα

A J A X AJAX Γιάννης Αρβανιτάκης

A J A X AJAX Γιάννης Αρβανιτάκης A J A X AJAX Γιάννης Αρβανιτάκης 04/07/08 AJAX Στην πράξη 2 Autocomplete AJAX Στην πράξη 3 Webmail (google, yahoo) AJAX Στην πράξη 4 Flickr AJAX Στην πράξη 5 Google Docs AJAX Στην πράξη 6 Google maps http://maps.google.com/

Διαβάστε περισσότερα

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών. Παραδοτέο: Τελική Αναφορά Υπηρεσιών Υποστήριξης και Εκπαίδευσης

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών. Παραδοτέο: Τελική Αναφορά Υπηρεσιών Υποστήριξης και Εκπαίδευσης Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών Παραδοτέο: Τελική Αναφορά Υπηρεσιών Υποστήριξης και Εκπαίδευσης ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 4 2 Εφαρμογές λογισμικού του Πληροφοριακού Συστήματος... 5 2.1 Διαδικτυακή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

Διαβάστε περισσότερα

Γαβαλάς Δαμιανός dgavalas@aegean.gr

Γαβαλάς Δαμιανός dgavalas@aegean.gr Δικτυακά Πολυμέσα ΙΙ Διάλεξη #1 η : Οργάνωση & στόχοι μαθήματος, καλές αρχές σχεδιασμού στο web, τα μεγαλύτερα λάθη στον web σχεδιασμό Γαβαλάς Δαμιανός dgavalas@aegean.gr 1 Στόχοι μαθήματος Κατανόηση της

Διαβάστε περισσότερα

Ενότητες Γ3.4 - Γ3.5

Ενότητες Γ3.4 - Γ3.5 Ενότητες Γ3.4 - Γ3.5 3.4 Δημιουργία μαθησιακού υλικού πολυμέσων και υπερμέσων 3.5 Συστήματα διαχείρισης μάθησης (CMS, LMS, LCMS): γνωριμία και χρήση Δημιουργία μαθησιακού υλικού πολυμέσων και υπερμέσων

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της

Διαβάστε περισσότερα

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

Διαβάστε περισσότερα

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

Διαβάστε περισσότερα

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

6 ο Πακέτο Εργασίας «Ψηφιακή Βάση ιαχείρισης Γεωγνώσης (e-repository of Geoscience Content)» 6 ο Πακέτο Εργασίας «Ψηφιακή Βάση ιαχείρισης Γεωγνώσης (e-repository of Geoscience Content)» Ένα µεγάλο µέρος του Προγράµµατος Σπουδών της Σχολής ΑΤΜ αφορά την εκπαίδευση σε ποικίλα αντικείµενα που άπτονται

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies)

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies) ΕΠΛ 012 ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies) Διδάσκων Καθηγητής: Δημήτριος Τσουμάκος Εαρινό Εξάμηνο 2010 Βασικές Πληροφορίες Πότε: Δευτέρα & Πέμπτη 10:30-12μμ Πού: ΧΩΔ01

Διαβάστε περισσότερα

ΤΠΕ στη Διδακτική των γλωσσών - Πολύγλωσσα ψηφιακά περιβάλλοντα γλωσσικής διδασκαλίας

ΤΠΕ στη Διδακτική των γλωσσών - Πολύγλωσσα ψηφιακά περιβάλλοντα γλωσσικής διδασκαλίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΤΠΕ στη Διδακτική των γλωσσών - Πολύγλωσσα ψηφιακά περιβάλλοντα γλωσσικής διδασκαλίας Ενότητα 1: Γενική Εισαγωγή στο μάθημα Παναγιώτης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Έκδοσης 2005 Π. Κεντερλής

Έκδοσης 2005 Π. Κεντερλής Σύστημα «Ηλέκτρα» Το Σύστημα «Ηλέκτρα» αποτελεί μια ολοκληρωμένη διαδικτυακή εφαρμογή διαχείρισης πληροφοριών μαθημάτων και χρηστών. Αναπτύχθηκε εξολοκλήρου από τον εργαστηριακό συνεργάτη Παναγιώτη Κεντερλή

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

Διαβάστε περισσότερα

web mobile multimedia ανάπτυξη εφαρμογών

web mobile multimedia ανάπτυξη εφαρμογών ανάπτυξη εφαρμογών web mobile multimedia 1 η εταιρία ιστορικό Η διάδρασις ιδρύθηκε το 2006, στην Αθήνα, από το Γιάννη Λαδά, Ηλεκτρολόγο Μηχανικό και Μηχανικό Η/Υ και Πέτρο Βασιλόπουλο, Οικονομολόγο με

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012 ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ Τρίτη, 7 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου Κων/νος Ποτιέ 21/ Χανιά, ΤΚ 73100 AΦΜ: 065439343 Τηλ./Fax:

Διαβάστε περισσότερα

ΙΣΤΟΛΟΓΙΑ BLOGS Ένα διδακτικό εργαλείο

ΙΣΤΟΛΟΓΙΑ BLOGS Ένα διδακτικό εργαλείο ΙΣΤΟΛΟΓΙΑ BLOGS Ένα διδακτικό εργαλείο ΟΙΚΟΝΟΜΟΠΟΥΛΟΥ ΑΓΓΕΛΙΚΗ Καθηγήτρια Πληροφορικής MSc Μηχανικός Πληροφορικών Συστημάτων TI EINAI TO ΙΣΤΟΛΟΓΙΟ -BLOG Πρόκειται για ένα διαδικτυακό ημερολόγιο - σημειωματάριο,

Διαβάστε περισσότερα

Τσικολάτας Α. (2011) Οι ΤΠΕ ως Εκπαιδευτικό Εργαλείο στην Ειδική Αγωγή. Αθήνα

Τσικολάτας Α. (2011) Οι ΤΠΕ ως Εκπαιδευτικό Εργαλείο στην Ειδική Αγωγή. Αθήνα Οι ΤΠΕ ως Εκπαιδευτικό Εργαλείο στην Ειδική Αγωγή Τσικολάτας Αλέξανδρος Αναπληρωτής Καθηγητής, ΕΕΕΕΚ Παμμακαρίστου, tsikoman@hotmail.com Περίληψη Στην παρούσα εργασία γίνεται διαπραγμάτευση του ρόλου των

Διαβάστε περισσότερα

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML Γιώργος Χρ. Μακρής Θεσσαλονίκη, Μάρτιος 2012 Αναπαράσταση Μαθηματικών Κειμένων στο διαδίκτυο

Διαβάστε περισσότερα

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9 ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΤΜΗΜΑ ΠΟΛΥΤΕΧΝΙΚΗ Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9 ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Επιστημονικός Προγραμματισμός

Διαβάστε περισσότερα

Εννοιολογική χαρτογράφηση: Διδακτική αξιοποίηση- Αποτελέσματα για το μαθητή

Εννοιολογική χαρτογράφηση: Διδακτική αξιοποίηση- Αποτελέσματα για το μαθητή Το λογισμικό της εννοιολογικής χαρτογράυησης Inspiration Η τεχνική της εννοιολογικής χαρτογράφησης αναπτύχθηκε από τον καθηγητή Joseph D. Novak, στο πανεπιστήμιο του Cornell. Βασίστηκε στις θεωρίες του

Διαβάστε περισσότερα

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης)

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης) ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ Ακαδημαϊκή Μονάδα: Τομέας: Εργαστήριο/Σπουδαστήριο/Κλινική: Τίτλος Μαθήματος / Θέμα Εργασίας: Κωδικός Μαθήματος: Τύπος Μαθήματος: ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Πληροφοριακά Περιβάλλοντα

Διαβάστε περισσότερα

Εννοιολογική Ομοιογένεια

Εννοιολογική Ομοιογένεια Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Εννοιολογική Ομοιογένεια Αξιοποίηση Ταξινομικών Συστημάτων Γεωργία Προκοπιάδου, Διονύσης

Διαβάστε περισσότερα

ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ

ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 351 ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ Τζουμάκας Βασίλης Καθηγητής Πληροφορικής στο Παπαστράτειο Γυμνάσιο Αγρινίου vtzoum@sch.gr

Διαβάστε περισσότερα

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

Επιμορφωτικές Τηλεκπαιδεύσεις Επιμορφωτικές Τηλεκπαιδεύσεις Υπηρεσίες Πανελλήνιου Σχολικού Δικτύου Υπηρεσία Ηλεκτρονικής Σχολικής Τάξης (η-τάξη) Προεπισκόπηση Παρουσίασης Υπηρεσία Ηλεκτρονικής Σχολικής Τάξης (η-τάξη) Εισαγωγή Χαρακτηριστικά

Διαβάστε περισσότερα

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου Διπλωματική Εργασία Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου Ποτσίκα Ηλιάνα

Διαβάστε περισσότερα

3 ο ΓΕΛ Τρικάλων ΟΔΥΣΣΕΑΣ ΕΛΥΤΗΣ. Ιστολόγια και κοινότητες

3 ο ΓΕΛ Τρικάλων ΟΔΥΣΣΕΑΣ ΕΛΥΤΗΣ. Ιστολόγια και κοινότητες 3 ο ΓΕΛ Τρικάλων ΟΔΥΣΣΕΑΣ ΕΛΥΤΗΣ Ιστολόγια και κοινότητες Ιστολόγια (blogs) και εκπαιδευτικές κοινότητες Εισαγωγή Ορισμοί Στόχοι και Όροι χρήσης Στατιστικά Στοιχεία Ιστολόγια Ηλεκτρονικές εκπαιδευτικές

Διαβάστε περισσότερα

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): 1. Ο Παγκόσμιος Ιστός (world wide web): a. Ταυτίζεται με το Internet b. Είναι υπηρεσία διαχείρισης και πρόσβασης σε

Διαβάστε περισσότερα

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Βερονίκης Σπύρος Τμήμα Αρχειονομίας- Βιβλιοθηκονομίας, Ιόνιο Πανεπιστήμιο spver@ionio.gr Stoica Adrian Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

Διαβάστε περισσότερα

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

ΟΔΗΓΟΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΣΕΜΙΝΑΡΙΟΥ ΟΔΗΓΟΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΣΕΜΙΝΑΡΙΟΥ «Προσβασιμότητα στην εκπαίδευση και κατάρτιση μετά το σχολείο» ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΙΡΑΙΩΣ 1 Περιεχόμενα Περιεχόμενα... 2 1. Εισαγωγή... 3 2. Σκοπός

Διαβάστε περισσότερα

Δημιουργία, εμφάνιση, μέτρηση πλήθους γραμμών, λέξεων και χαρακτήρων αρχείων κειμένου στο Λ/Σ Unix

Δημιουργία, εμφάνιση, μέτρηση πλήθους γραμμών, λέξεων και χαρακτήρων αρχείων κειμένου στο Λ/Σ Unix Δημιουργία, εμφάνιση, μέτρηση πλήθους γραμμών, λέξεων και χαρακτήρων αρχείων κειμένου στο Λ/Σ Unix Επαρκές Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: Βασίλειος Βασιλάκης ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ

Διαβάστε περισσότερα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

Διαβάστε περισσότερα

Υποέργο: 2 Τίτλος: «Δημιουργία και Αξιολόγηση Εικονικού Χώρου Εργαστηριών Ηλεκτρονικής» Επιστημονικός Υπεύθυνος: ΠΑΝΕΤΣΟΣ ΣΠΥΡΟΣ

Υποέργο: 2 Τίτλος: «Δημιουργία και Αξιολόγηση Εικονικού Χώρου Εργαστηριών Ηλεκτρονικής» Επιστημονικός Υπεύθυνος: ΠΑΝΕΤΣΟΣ ΣΠΥΡΟΣ ΑΝΩΤΑΤΗ ΣΧΟΛΗ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ (Α.Σ.ΠΑΙ.Τ.Ε.) «Αρχιμήδης ΙΙΙ Ενίσχυση Ερευνητικών ομάδων στην Α.Σ.ΠΑΙ.Τ.Ε.» Υποέργο: 2 Τίτλος: «Δημιουργία και Αξιολόγηση Εικονικού Χώρου Εργαστηριών

Διαβάστε περισσότερα

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο Τι είναι ένα σύστημα διαχείρισης περιεχομένου; Παρά την μεγάλη εξάπλωση του διαδικτύου και τον ολοένα αυξανόμενο αριθμό ιστοσελίδων, πολλές εταιρείες ή χρήστες δεν είναι εξοικειωμένοι με την τεχνολογία

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Βάσεις Δεδομένων - Γενικά Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα. Τα περιεχόμενα

Διαβάστε περισσότερα

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Σχεδιασμός Πληροφοριακού Συστήματος Καταγραφής μετρήσεων κοινής ωφελείας Υποβοηθούμενο από οπτική αναγνώριση μέσω Κινητού τηλεφώνου Μπούντας Δημήτρης Επιβλέπων Καθηγητής : Δασυγένης

Διαβάστε περισσότερα

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

Διαβάστε περισσότερα

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

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες ΣΧΟΛΕΙΟ Η εκπαιδευτική πρακτική αφορούσε τη διδασκαλία των μεταβλητών στον προγραμματισμό και εφαρμόστηκε σε μαθητές της τελευταίας τάξης ΕΠΑΛ του τομέα Πληροφορικής στα πλαίσια του μαθήματος του Δομημένου

Διαβάστε περισσότερα

Προσβασιµότητα στους διαδικτυακούς κόµβους

Προσβασιµότητα στους διαδικτυακούς κόµβους Οι Πολιτιστικοί Οργανισµοί στο ιαδίκτυο Προσβασιµότητα και ασφάλεια στους διαδικτυακούς κόµβους Εµµανουήλ Γ. Καρατζάς Ηλεκτρολόγος Μηχανικός και Τεχνολογίας Υπολογιστών, MSc. Ίδρυµα Μελετών Λαµπράκη Προσβασιµότητα

Διαβάστε περισσότερα

Ενότητες Γ3.1 - Γ3.2 - Γ3.3

Ενότητες Γ3.1 - Γ3.2 - Γ3.3 Ενότητες Γ3.1 - Γ3.2 - Γ3.3 3.1 Τo διαδίκτυο ως πηγή πληροφοριών 3.2 Αξιοποίηση- αξιολόγηση ιστοσελίδων, ιστοχώρων και πυλών 3.3 Σχεδίαση μαθημάτων με τη χρήση του διαδικτύου To Διαδίκτυο ως πηγή πληροφοριών

Διαβάστε περισσότερα

2. ΠΙΣΤΟΠΟΙΗΣΗ DQS DIN EN ISO 9001: ΠΙΣΤΟΠΟΙΗΣΗ ISO 9001:2015 & BS ISO 29990:2010

2. ΠΙΣΤΟΠΟΙΗΣΗ DQS DIN EN ISO 9001: ΠΙΣΤΟΠΟΙΗΣΗ ISO 9001:2015 & BS ISO 29990:2010 1. ΕΙΣΑΓΩΓΗ Το Κέντρο Επιμόρφωσης και Δια Βίου Μάθησης του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών σας καλωσορίζει στο Πρόγραμμα Συμπληρωματικής εξ Αποστάσεως Εκπαίδευσης και συγκεκριμένα πρόγραμμα

Διαβάστε περισσότερα

ΔΙΔΑΚΤΙΚΉ ΤΩΝ ΜΑΘΗΜΑΤΙΚΏΝ

ΔΙΔΑΚΤΙΚΉ ΤΩΝ ΜΑΘΗΜΑΤΙΚΏΝ ΔΙΔΑΚΤΙΚΉ ΤΩΝ ΜΑΘΗΜΑΤΙΚΏΝ 2. Εκπαιδευτικό Λογισμικό για τα Μαθηματικά 2.1 Κύρια χαρακτηριστικά του εκπαιδευτικού λογισμικού για την Διδακτική των Μαθηματικών 2.2 Κατηγορίες εκπαιδευτικού λογισμικού για

Διαβάστε περισσότερα

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος Κεφάλαιο 11: Εισαγωγή στην HTML 1 11.1 Γενική εισαγωγή στην HTML Τι είναι η HTML HyperText Markup Language - Γλώσσα Χαρακτηρισμού Υπερ-Κειμένου είναι η βασική γλώσσα με την οποία πραγματοποιείται η δόμηση

Διαβάστε περισσότερα

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας 1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική

Διαβάστε περισσότερα

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

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και αποτελεί την πρόταση του Ακαδημαϊκού Διαδικτύου

Διαβάστε περισσότερα

Εκπαιδευτικό Υλικό για την «Υπηρεσία Εκπαιδευτικών Κοινοτήτων και Ιστολογίων» 1 ο µέρος:

Εκπαιδευτικό Υλικό για την «Υπηρεσία Εκπαιδευτικών Κοινοτήτων και Ιστολογίων»  1 ο µέρος: Πανελλήνιο Σχολικό ίκτυο Εκπαιδευτικό Υλικό για την «Υπηρεσία Εκπαιδευτικών Κοινοτήτων και Ιστολογίων» http://blogs.sch.gr 1 ο µέρος: Χρήση Ιστολογίου ως εκπαιδευτικό εργαλείο Ερευνητικό Ακαδηµαϊκό Ινστιτούτο

Διαβάστε περισσότερα

2. ΔΙΑΠΙΣΤΕΥΣΕΙΣ: ΠΙΣΤΟΠΟΙΗΣΗ Ε.ΚΕ.ΠΙΣ. ΠΙΣΤΟΠΟΙΗΣΗ ΕΛΟΤ EN ISO 9001:2008

2. ΔΙΑΠΙΣΤΕΥΣΕΙΣ: ΠΙΣΤΟΠΟΙΗΣΗ Ε.ΚΕ.ΠΙΣ. ΠΙΣΤΟΠΟΙΗΣΗ ΕΛΟΤ EN ISO 9001:2008 2 1. ΕΙΣΑΓΩΓΗ Το Κέντρο Επαγγελματικής Κατάρτισης του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών σας καλωσορίζει στο Πρόγραμμα Συμπληρωματικής εξ Αποστάσεως Εκπαίδευσης και συγκεκριμένα στο εκπαιδευτικό

Διαβάστε περισσότερα

Σημασιολογικοί Ιστοχώροι: Γιατί Drupal. 18/3/2014 Μυρτώ Αμοργιανού Μονάδα Σημασιολογικού Ιστού

Σημασιολογικοί Ιστοχώροι: Γιατί Drupal. 18/3/2014 Μυρτώ Αμοργιανού Μονάδα Σημασιολογικού Ιστού Σημασιολογικοί Ιστοχώροι: Γιατί Drupal 18/3/2014 Μυρτώ Αμοργιανού Τι είναι CMS Τα Συστήματα Διαχείρισης Περιεχομένου (ΣΔΠ, Content Management Systems, CMS) είναι διαδικτυακές εφαρμογές που επιτρέπουν την

Διαβάστε περισσότερα

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

Διαβάστε περισσότερα

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α_ΤΕΤΡΑΜ_ ΕΣΠΕΡΙΝΟ ΛΥΚΕΙΟ ΛΑΡΙΣΑΣ. ΘΕΜΑ: E-LEARNING Αντζελα Πιετρη-Αριστελα Γκιονι ESPERINO LYKEIO LARISAS

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α_ΤΕΤΡΑΜ_ ΕΣΠΕΡΙΝΟ ΛΥΚΕΙΟ ΛΑΡΙΣΑΣ. ΘΕΜΑ: E-LEARNING Αντζελα Πιετρη-Αριστελα Γκιονι ESPERINO LYKEIO LARISAS ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α_ΤΕΤΡΑΜ_2014-15 ΕΣΠΕΡΙΝΟ ΛΥΚΕΙΟ ΛΑΡΙΣΑΣ ΘΕΜΑ: E-LEARNING Αντζελα Πιετρη-Αριστελα Γκιονι ΜΑΘΗΣΗ Μάθηση είναι μια μόνιμη αλλαγή στη συμπεριφορά του ατόμου, η οποία είναι αποτέλεσμα εμπειρίας

Διαβάστε περισσότερα

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S. Στρατηγική Επιλογή Το ταχύτατα μεταβαλλόμενο περιβάλλον στο οποίο δραστηριοποιούνται οι επιχειρήσεις σήμερα, καθιστά επιτακτική -όσο ποτέ άλλοτε- την ανάπτυξη ολοκληρωμένων λύσεων που θα διασφαλίζουν,

Διαβάστε περισσότερα

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι)

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι) Εισαγωγή Το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Πανεπιστημίου Κύπρου προσφέρει ολοκληρωμένα προπτυχιακά και μεταπτυχιακά προγράμματα σπουδών στους κλάδους του Ηλεκτρολόγου Μηχανικού

Διαβάστε περισσότερα

Το μάθημα Διδακτική Μαθημάτων Ειδικότητας φέρνει τους φοιτητές σε επαφή με τα επιστημονικά, επιστημολογικά και διδακτικά χαρακτηριστικά της κάθε

Το μάθημα Διδακτική Μαθημάτων Ειδικότητας φέρνει τους φοιτητές σε επαφή με τα επιστημονικά, επιστημολογικά και διδακτικά χαρακτηριστικά της κάθε Το μάθημα Διδακτική Μαθημάτων Ειδικότητας φέρνει τους φοιτητές σε επαφή με τα επιστημονικά, επιστημολογικά και διδακτικά χαρακτηριστικά της κάθε επιστήμης που πρόκειται να διδάξουν Πώς ένα επιστημονικό

Διαβάστε περισσότερα

ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΟΔΗΓΟΣ E-LEARNING

ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΟΔΗΓΟΣ E-LEARNING ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΑΘΗΝΑ 2014 1 1. Τι είναι το e-learning; Το e-learning, η ηλεκτρονική μάθηση, είναι μια διαδικασία μάθησης και ταυτόχρονα μια μεθοδολογία εξ αποστάσεως εκπαίδευσης

Διαβάστε περισσότερα

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

Ηλεκτρονική Μάθηση & Συστήματα που τη διαχειρίζονται Κύκλος Εκπαίδευσης «Συστήματα Ηλεκτρονικής Μάθησης & Ηλεκτρονική Αξιολόγηση» Ηλεκτρονική Μάθηση & Συστήματα που τη διαχειρίζονται Κατερίνα Γεωργούλη ΤΕΙ Αθήνας Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Στόχοι

Διαβάστε περισσότερα

Τίτλος Βιβλίου: Εισαγωγή στο Wordpress 3.x. Copyright 2012, Γιώργος Μπίκας/Εκδόσεις Κλειδάριθμος

Τίτλος Βιβλίου: Εισαγωγή στο Wordpress 3.x. Copyright 2012, Γιώργος Μπίκας/Εκδόσεις Κλειδάριθμος Τίτλος Βιβλίου: Εισαγωγή στο Wordpress 3.x Copyright 2012, Γιώργος Μπίκας/Εκδόσεις Κλειδάριθμος Εκδόσεις Κλειδάριθμος Έδρα: Στουρνάρη 27Β Αθήνα 106 82 Τηλ.: 210 52.37.635 Fax: 210 52.37.677 email: info@klidarithmos.gr

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

Διαβάστε περισσότερα

SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου

SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου Σελίδα 1 από 40 SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου 1. SGA Διαχείριση Ηλεκτρονικού Πρωτοκόλλου... 4 1.1. Γενικές αρχές του προσφερόμενου συστήματος... 4 1.2.

Διαβάστε περισσότερα

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Θεσσαλονίκη 6/12/2001 Βασίλης Φούρκας, ΕΜΧΑ Η δηµιουργία και λειτουργία ενός

Διαβάστε περισσότερα

Απόστολος Μιχαλούδης

Απόστολος Μιχαλούδης ΔΙΔΑΣΚΑΛΙΑ ΦΥΣΙΚΗΣ ΜΕ ΤΗ ΧΡΗΣΗ ΠΡΟΣΟΜΟΙΩΣΕΩΝ Ανάπτυξη και εφαρμογή διδακτικών προσομοιώσεων Φυσικής σε θέματα ταλαντώσεων και κυμάτων Απόστολος Μιχαλούδης υπό την επίβλεψη του αν. καθηγητή Ευριπίδη Χατζηκρανιώτη

Διαβάστε περισσότερα

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html Χρ. Ηλιούδης Παγκόσμιος Ιστός (WWW) Ο Παγκόσμιος Ιστός (World Wide Web WWW), ή απλώς Ιστός, βασίζεται στην ιδέα των κατανεμημένων πληροφοριών. Αντί όλες

Διαβάστε περισσότερα