«Αντίστροφη μηχανίκευση συστημάτων διαχείρισης περιεχομένου ανοιχτού κώδικα σε επίπεδο μοντέλου» Μανδρώζος Ασημάκης Α.Μ. 610

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

Download "«Αντίστροφη μηχανίκευση συστημάτων διαχείρισης περιεχομένου ανοιχτού κώδικα σε επίπεδο μοντέλου» Μανδρώζος Ασημάκης Α.Μ. 610"

Transcript

1 Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη και Τεχνολογία Υπολογιστών» «Αντίστροφη μηχανίκευση συστημάτων διαχείρισης περιεχομένου ανοιχτού κώδικα σε επίπεδο μοντέλου» Μανδρώζος Ασημάκης Α.Μ. 610 Επιβλέπων Καθηγητής Αθανάσιος Τσακαλίδης, Καθηγητής Τριμελής Εξεταστική Επιτροπή Αθανάσιος Τσακαλίδης, Καθηγητής Ιωάννης Χατζηλυγερούδης, Επίκουρος Καθηγητής Ιωάννης Τζήμας, Επίκουρος Καθηγητής Πάτρα, Ιανουάριος

2 Επιτελική Σύνοψη Τα συστήματα διαχείρισης περιεχομένου (Content Management Systems) χρησιμοποιούνται ευρέως στην κατασκευή εφαρμογών του παγκόσμιου ιστού. Το κυριότερο πλεονέκτημά τους είναι ότι άνθρωποι που δεν γνωρίζουν τις τεχνολογίες διαδικτύου μπορούν πολύ εύκολα μέσω διεπαφών να δημιουργήσουν αλλά και να συντηρήσουν την δική τους ιστοσελίδα.ένα από τα δημοφιλέστερα CMS συστήματα είναι το Joomla. Το Joomla είναι open source οπότε και μπορεί κάποιος να το κατεβάσει δωρεάν,να το χρησιμοποιήσει αλλά και να δει τον πηγαίο κώδικά του. Ξεχωρίζει από τα υπόλοιπα CMS συστήματα λόγο της απλότητας χειρισμού του και της μεγάλης κοινότητας χρηστών που το υποστηρίζουν. Η WebML είναι μια γλώσσα μοντελοποίησης διαδικτυακών εφαρμογών. Στόχος της είναι η παρουσίαση της δομής μιας τέτοιας εφαρμογής. Με την χρησιμοποίηση των WebML μονάδων ως επίπεδο αφαίρεσης μιας διαδικτυακής εφαρμογής είναι έυκολο να διακρίνουμε την δομή αλλά και τον τρόπο λειτουργίας της. Στην παρούσα διπλωματική εργασία χρησιμοποιείται η WebML για την μοντελοποίηση των ιστοσελίδων που παράγει το Joomla.H μοντελοποίηση αυτή μας βοηθάει να διακρίνουμε τα σχεδιαστικά πλεονεκτήματα αλλά και τις αδυναμίες που μπορεί να παρουσιάζει μια διαδικτυακή εφαρμογή δημιουργημένη με το συγκεκριμένο CMS. Η μοντελοποίηση γίνεται αυτόματα με ένα εργαλείο που έχει υλοποιηθεί στην γλώσσα προγραμματισμού Java και παρουσιάζει τα αποτελέσματα τόσο σε γραφική όσο και σε XML μορφή. Αναλυτικά η παρούσα διπλωματική εργασία είναι δομημένη ως εξής: Κεφάλαιο 1: Παρουσιάζονται τα γενικά χαρακτηριστηκά των CMS συστημάτων. Κεφάλαιο 2: Περιγράφεται η γλώσσα WebML Κεφάλαιο 3: Παρουσιάζεται και αναλύεται μια διαδικτυακή εφαρμογή που έχει δημιουργηθεί με το Joomla. Κεφάλαιο 4: Περιγράφει το αυτόματο εργαλείο που χρησιμοποιείται για την αυτόματη μοντελοποίηση των Joomla ιστοσελίδων. Κεφάλαιο 5: Περιγράφει την τεχνική της αντίστροφης μηχανίκευσης και ειδικά την εφαρμογή της σε εφαρμογές Web. 2

3 Πίνακας Περιεχομένων ΚΕΦΑΛΑΙΟ 1 CMS συστήματα... 7 ΚΕΦΑΛΑΙΟ 2 WebML γλώσσα Ανάλυση των απαιτήσεων Εννοιολογική Μοντελοποίηση WebML μοντέλο δεδομένων WebML μοντέλο υπερκειμένου Μοντελοποίηση της παρουσίασης της εφαρμογής (Presentation Modeling) Αναπαράσταση της WebML μέσω XML Μοντέλο δεδομένων σε WebML XML Μοντέλο υπερκειμένου σε WebML XML ΚΕΦΑΛΑΙΟ 3 Ανάλυση του Joomla CMS Εισαγωγή H βάση δεδομένων μιας εφαρμογής Joomla Ανάλυση ενός Joomla site με την WebML Γενική ανάλυση μιας εφαρμογής Joomla ΚΕΦΑΛΑΙΟ 4 Αυτόματη Ανάλυση Μιας Joomla Εφαρμογής σε WebML Εισαγωγή CMS2WebML Ανάλυση του Joomla ιστότοπου με το CMS2WebML Συμπεράσματα Κεφάλαιο 5 Αντίστροφη Μηχανίκευση σε Web εφαρμογές Εισαγωγή Αντίστροφη μηχανίκευση σε εφαρμογές λογισμικού Αντίστροφη μηχανίκευση λογισμικού για λόγους ασφαλείας Αντίστροφη μηχανίκευση λογισμικού για λόγους υλοποίησης λογισμικού Αντίστροφη μηχανίκευση σε εφαρμογές λογισμικού στο Web Εισαγωγή Μοντελοποίηση Web εφαρμογών WebUML Σύνοψη Βιβλιογραφία

4 Πίνακας Εικόνων Εικόνα 1 Φάσεις δημιουργίας διαδικτυακής εφαρμογής... 8 Εικόνα 2 Οντότητες Εικόνα 3 Οντότητες Εικόνα 4 Οντότητες Εικόνα 5 Συσχέτιση Εικόνα 6 OCL Εικόνα 7 Παραγόμενη συσχέτιση Εικόνα 8 Σχήμα δεδομένων Εικόνα 9 Site view Εικόνα 10 Μονάδα δεδομένων Εικόνα 11 Παράδειγμα μονάδας δεδομένων Εικόνα 12 Μονάδα δεδομένων Μορφή κειμένου Εικόνα 13 Μονάδα πολλαπλών δεδομένων Εικόνα 14 Μονάδα πολλαπλών δεδομένων Μορφή κειμένου Εικόνα 15 Μονάδα ευρετηρίου Εικόνα 16 Μονάδα ευρετηρίου Μορφή κειμένου Εικόνα 17 Τύποι μονάδων ευρετηρίου Εικόνα 18 Μονάδα πολλαπλών επιλογών Μορφή κειμένου Εικόνα 19 Ιεραρχική μονάδα Μορφή κειμένου Εικόνα 20 Μονάδα πολλαπλών επιλογών Εικόνα 21 Ιεραρχική μονάδα Εικόνα 22 Μονάδα scroller Εικόνα 23 Μονάδα scroller Μορφή κειμένου Εικόνα 24 Μονάδα εισόδου Εικόνα 25 Μονάδα εισόδου Μορφή κειμένου Εικόνα 26 Μονάδα εισόδου Μορφή κειμένου Εικόνα 27 Μονάδες περιεχομένου Εικόνα 28 Μονάδα δημιουργίας αντικειμένου Εικόνα 29 Μονάδα δημιουργίας αντικειμένου Μορφή κειμένου Εικόνα 30 Μονάδα διαγραφής αντικειμένου Εικόνα 31 Μονάδα διαγραφής αντικειμένου Μορφή κειμένου Εικόνα 32 Μονάδα τροποποίησης αντικειμένου Εικόνα 33 Μονάδα τροποποίησης αντικειμένου Μορφή κειμένου Εικόνα 34 Μονάδα δημιουργίας συσχέτισης Εικόνα 35 Μονάδα δημιουργίας συσχέτισης Μορφή κειμένου Εικόνα 36 Μονάδα αποσύνδεσης συσχέτισης Εικόνα 37 Μονάδα αποσύνδεσης συσχέτισης Μορφή κειμένου Εικόνα 38 Μονάδα εισαγωγής χρήστη Εικόνα 39 Μονάδα εισαγωγής χρήστη Μορφή κειμένου Εικόνα 40 Μονάδα αποσύνδεσης χρήστη Εικόνα 41 Μονάδα αποσύνδεσης χρήστη Μορφή κειμένου Εικόνα 42 Μονάδα αποστολής Εικόνα 43 Μονάδα αποστολής Μορφή κειμένου Εικόνα 44 Μονάδα γενικευμένης λειτουργίας

5 Εικόνα 45 Συναλλαγή Εικόνα 46 Τύποι συνδέσμων Εικόνα 47 Ολικές παράμετροι Εικόνα 48 Ολικές παράμετροι Μορφή κειμένου Εικόνα 49 Μονάδα set Εικόνα 50 Μονάδα set Μορφή κειμένου Εικόνα 51 Μονάδα get Εικόνα 52 Μονάδα get Μορφή κειμένου Εικόνα 53 Αρχιτεκτονική WebRatio Εικόνα 54 Εγκατάσταση Joomla Εικόνα 55 Εγκατάσταση Joomla Εικόνα 56 Εγκατάσταση Joomla Εικόνα 57 Εγκατάσταση Joomla Εικόνα 58 Εγκατάσταση Joomla Εικόνα 59 Αρχική σελίδα Εικόνα 60 Joomla backend Εικόνα 61 Joomla modules Εικόνα 62 Administrator login Εικόνα 63 Η βάση δεδομένων του Joomla Εικόνα 64 Frontpage Εικόνα 65 Breadcrumb Εικόνα 66 Breadcrumb - WebML Εικόνα 67 Banner Εικόνα 68 Banner - WebML Εικόνα 69 Main menu Εικόνα 70 Main menu - WebML Εικόνα 71 Resources Εικόνα 72 Resources - WebML Εικόνα 73 Key concepts Εικόνα 74 Key concepts - WebML Εικόνα 75 Top menu Εικόνα 76 Top menu - WebML Εικόνα 77 Login form Εικόνα 78 Login form - WebML Εικόνα 79 Poll Εικόνα 80 Poll - WebML Εικόνα 81 Who s Online Εικόνα 82 Who s online - WebML Εικόνα 83 Advertisement Εικόνα 84 Advertisement - WebML Εικόνα 85 Syndication Εικόνα 86 Syndication - WebML Εικόνα 87 Newsflash Εικόνα 88 Newsflash - WebML Εικόνα 89 Latest news

6 Εικόνα 90 Latest news - WebML Εικόνα 91 Popular Εικόνα 92 Popular - WebML Εικόνα 93 Search Εικόνα 94 Search - WebML Εικόνα 95 Footer Εικόνα 96 Frontpage component Εικόνα 97 Frontpage component - WebML Εικόνα 98 Ιστοσελίδα από top menu Εικόνα 99 Ιστοσελίδα από top menu Εικόνα 100 Ιστοσελίδα από Latest News Εικόνα 101 Ιστοσελίδα The News Εικόνα 102 Ιστοσελίδα Poll Εικόνα 103 Ιστοσελίδα Results Εικόνα 104 Ιστοσελίδα από login form Εικόνα 105 Ιστοσελίδα από Create an account Εικόνα 106 Ιστοσελίδες από More about Joomla Εικόνα 107 Ιστοσελίδες από Weblinks Εικόνα 108 Super administrator Εικόνα 109 Frontpage super admin - WebML Εικόνα 110 Edit component Εικόνα 111 Edit component - WebML Εικόνα 112 Submit an article Εικόνα 113 Submit an article - WebML Εικόνα 114 Submit a weblink Εικόνα 115 Submit a weblink - WebML Εικόνα 116 Logout Εικόνα 117 Registered user frontpage Εικόνα 118 Frontpage - WebML Εικόνα 119 Article Layout Εικόνα 120 Category Blog Layout Εικόνα 121 Category List Layout Εικόνα 122 Frontpage Blog Layout Εικόνα 123 Section Blog Layout Εικόνα 124 Section Layout Εικόνα 125 Category List Layout Εικόνα 126 Category Layout Εικόνα 127 Web Link Category List Layout Εικόνα 128 Category List Layout Εικόνα 129 CMS2WebML GUI Εικόνα 130 Αποτελέσματα ανάλυσης Εικόνα 131 Γραφικά αποτελέσματα ανάλυσης Εικόνα 132 Αποτελέσματα ανάλυσης σε XML Εικόνα 133 Γραφικά αποτελέσματα ανάλυσης αρχικής σελίδας Εικόνα 134 μετα-μοντέλο Web εφαρμογής

7 Εικόνα 135 Εργαλείο WebUML, γενική αρχιτεκτονική Εικόνα 136 Tag Tree ΚΕΦΑΛΑΙΟ 1 CMS συστήματα Στην εποχή μας οι web εφαρμογές είναι πολύπλοκα συστήματα.δεν αποτελούνται πια μόνο από απλές στατικές ιστοσελίδες που το μόνο που κάνουν είναι η προβολή του περιεχομένου τους στον browser του χρήστη.ο χρήστης μπορεί να αλληλεπιδράσει με την εφαρμογή εισάγοντας δεδομένα σε αυτήν με διαφορετικούς τρόπους.είναι επομένως απαραίτητο οι νέες web εφαρμογές να υποστηρίζουν αυτές τις δυναμικές λειτουργίες.μια επιτυχημένη ιστοσελίδα θα πρέπει να ανανεώνεται συχνά, θα πρέπει να έχει δημιουργηθεί με τρόπο που να βοηθάει τους χρήστες στην πλοήγηση τους,θα πρέπει να είναι ελκυστική οπτικά καθώς και θα πρέπει να υποστηρίζει επιπλέον λειτουργίες όπως είναι π.χ. τα polls,η δυνατότητα εγγραφής,τα newsflashes,τα RSS feeds και τα μενού.δυστυχώς απαιτείται πολύς χρόνος για να δημιουργηθεί μία τέτοια ιστοσελίδα με τον παραδοσιακό τρόπο.εδώ γίνεται εμφανής και η χρησιμότητα των CMS συστημάτων.ένα CMS (content management system) όπως λέει και η ονομασία του είναι ένα σύστημα το οποίο βοηθάει στην διαχείριση περιεχομένου.στο web περιβάλλον αυτό που κάνει είναι η δημιουργία του επιθυμητού web site απευθείας χωρίς την απαίτηση γνώσης των διαδικτυακών τεχνολογιών(html,css, ).Εκτός αυτού μετά την δημιουργία της ιστοσελίδας επιτρέπει και την διαχείρησή της.αυτή γίνεται πανεύκολα μέσω των διεπαφών του CMS.Αν π.χ. ο διαχειριστής θελήσει να προσθέσει νέα άρθρα στην ιστοσελίδα αυτό γίνεται εύκολα με την βοήθεια ενός editor που διαθέτει το CMS.Στην εργασία αυτή θα αναλυθούν ιστοσελίδες που έχουν δημιουργηθεί με διάφορα CMS s με την βοήθεια μιας γλώσσας που ονομάζεται WebML.Τo CMS που θα χρησιμοποιηθεί είναι το Joomla. 7

8 ΚΕΦΑΛΑΙΟ 2 WebML γλώσσα Όπως αναφέρθηκε και προηγουμένως η ανάλυση των ιστοσελίδων θα γίνει με την βοήθεια της WebML. H WebML αποτελεί συντομογραφία του Web Modeling Language.Ο σκοπός της δημιουργίας της είναι η υποστήριξη του σχεδιασμού καθώς και της υλοποίησης εφαρμογών διαδικτύου που διαχειρίζονται συνεχώς και έντονα δεδομένα.οι εφαρμογές αυτές είναι ιστοσελίδες που διαχειρίζονται μεγάλες ποσότητες δομημένων δεδομένων που συνήθως είναι αποθηκευμένα σε μία βάση δεδομένων και πιο συγκεκριμένα σε ένα σύστημα διαχείρισης βάσεων δεδομένων. Η WebML υποστηρίζει 2 μορφές αναπαράστασης.η 1 η είναι η οπτική μορφή και η 2 η η μορφή κειμένου.κυρίως χρησιμοποιείται η πρώτη μορφή γιατί οπτικά απεικονίζει εύκολα το περιεχόμενο που έχει μια HTML σελίδα.η μορφή κειμένου ουσιαστικά περιγράφει τις οντότητες της γραφικής μορφής καθώς και προσθέτει ορισμένες πληροφορίες που δεν παρουσιάζονται σε αυτήν. Η δημιουργία μιας διαδικτυακής εφαρμογής περνάει από διάφορες φάσεις.αυτές φαίνονται στην παρακάτω εικόνα: Εικόνα 1 Φάσεις δημιουργίας διαδικτυακής εφαρμογής Είναι φανερο από το σχήμα ότι η διαδικασία είναι επαναληπτική.κάθε φορά που γίνεται η υλοποίηση της εφαρμογής περνάμε στο στάδιο του ελέγχου και της εκτίμησης.αν η ιστοσελίδα δεν ικανοποιεί τις ανάγκες τότε πρέπει πάλι να ξαναεπιστρέψουμε στην ανάλυση των απαιτήσεων.ο επαναληπτικός αυτός τρόπος 8

9 δημιουργίας είναι ιδανικός για τις εφαρμογές διαδικτύου.αυτές έχουν την ιδιαιτερότητα ότι πρέπει να αναπτυχθούν γρήγορα καθώς και το ότι οι απαιτήσεις τους μπορεί να αλλάξουν κατά την διάρκεια της υλοποίησή τους. Οι φάσεις που βρίσκονται μέσα στο διακεκομμένο πλαίσιο είναι και αυτές που περιγράφονται από την WebML. Η περιγραφή είναι σε εννοιολογικό επίπεδο και βοηθάει στον σχηματισμό ενός εννοιολογικού σχήματος της εφαρμογής.αυτό το μοντέλο στην συνέχεια θα μπορούσε να εισαχθεί σε ένα εργαλείο όπως είναι π.χ. το WebRatio και να παραχθεί αυτομάτως η υλοποίηση της εφαρμογής. 2.1 Ανάλυση των απαιτήσεων Η ανάλυση των απαιτήσεων μιας εφαρμογής αποτελεί την συλλογή πληροφοριών του πεδίου της εφαρμογής καθώς και την καταγραφή των λειτουργιών που θα πρέπει να υποστηρίζονται.η φάση αυτή παίρνει ως είσοδο ένα σύνολο επιχειρηματικών απαιτήσεων και παράγει τα παρακάτω: Τον ορισμό των ομάδων των χρηστών (user groups) που θα αλληλεπιδρούν με την εφαρμογή.η κάθε ομάδα εκπροσωπεί χρήστες που έχουν κοινά χαρακτηριστικά ή που έχουν τον ίδιο ρόλο μέσα στην επιχείρηση.ο ορισμός των ομάδων επιτρέπει την εκτέλεση παρόμοιων δραστηριοτήτων καθώς και ορίζει παρόμοια δικαιώματα πρόσβασης σε αντικείμενα δεδομένων.ένας χρήστης μπορεί να ανήκει σε περισσότερες από μία ομάδες. Ο καθορισμός των λειτουργικών απαιτήσεων.οι λειτουργίες αυτές θα πρέπει να παρέχονται στους χρήστες της εφαρμογής.για κάθε ομάδα χρηστών καθορίζονται οι λειτουργίες τους. Η αναγνώριση των βασικών πληροφοριακών αντικειμένων.αυτά είναι πληροφορίες που πρέπει να προσπελαύνονται, να ανταλλάσονται και να τροποποιούνται από τους χρήστες. Η αποσύνθεση της Web εφαρμογής σε site views.μία site view είναι ένα υπερκείμενο το οποίο είναι σχεδιασμένο με βάση ένα καλά καθορισμένο σύνολο λειτουργίων και απαιτήσεων των χρηστών.κάθε ομάδα χρηστών παρέχεται με τουλάχιστον ένα site view το οποίο και υποστηρίζει τις λειτουργίες της. Η WebML δεν χρησιμοποιείται σε αυτήν την φάση σχεδιασμού.υπάρχουν διάφορες άλλες μέθοδοι που οι αναλυτές χρησιμοποιούν.κάποιες από αυτές είναι τα UML use-case και activity διαγράμματα. 2.2 Εννοιολογική Μοντελοποίηση Στην εικόνα 1 ειπώθηκε ότι οι 2 φάσεις που περικλείονται από το διακεκομένο πλαίσιο είναι και αυτές όπου χρησιμοποιούν την WebML.H WebML χρησιμοποιείται στο εννοιολογικό επίπεδο.το επίπεδο αυτό περιγράφει την εφαρμογή σε υψηλό 9

10 επίπεδο αφαίρεσης και είναι ανεξάρτητο από τον τρόπο υλοποίησης της.αυτό που παράγει η εννοιολογική μοντελοποίηση είναι ένας αριθμός εννοιολογικών σχημάτων που περιγράφουν την οργάνωση της εφαρμογής.σύμφωνα με την WebML μία web εφαρμογή πρέπει να αναλυθεί εννοιολογικά σε δύο επίπεδα: στο επίπεδο σχεδιασμού των δεδομένων και στο επίπεδο σχεδιασμού του υπερκειμένου. Ο σχεδιασμος των δεδομένων ασχολείται με την οργάνωση των βασικών πληροφοριακών αντικειμένων που έχουν αναγνωριστεί κατά την εφαρμογή της ανάλυσης των απαιτήσεων.η οργάνωση αυτή ονομάζεται σχήμα δεδομένων και εκτός από τα βασικά αντικείμενα μπορεί να περιλαμβάνει και άλλα αντικείμενα που παράγονται απο τα βασικά. Μετά τον καθορισμό του σχήματος των δεδομένων ακολουθεί ο σχεδιασμός του υπερκειμένου. Ο σχεδιασμός του υπερκειμένου παράγει site view σχήματα τα οποία ορίζονται βάσει του σχήματος των δεδομένων.τα site view σχήματα περιέχουν την σύνθεση του περιεχομένου και των υπηρεσιών στις σελίδες του υπερκειμένου καθώς επίσης και την πλοήγηση ανάμεσα στα στοιχεία. Η WebML υποστηρίζει την παραγωγή των δύο προηγούμενων σχημάτων WebML μοντέλο δεδομένων Ο σχεδιασμός των δεδομένων είναι ένας παραδοσιακός και παγιωμένος τομέας της τεχνολογίας της πληροφορίας.αυτό σημαίνει ότι υπάρχουν ήδη γλώσσες μοντελοποίησης και μέθοδοι διαθέσιμοι κατά κόρον.για αυτόν τον λόγο η WebML δεν ορίζει την δικιά της γλώσσα μοντελοποίησης δεδομένων.αντ αυτού υποστηρίζει το διάσημο μοντέλο οντοτήτων-συσχετίσεων καθώς και το αντίστοιχο υποσύνολο που υπάρχει στα διαγράμματα κλάσεων της UML.Επομένως τα θεμελιώδη στοιχεία του μοντέλου δεδομένων της WebML είναι οι οντότητες (entities) και οι συσχετίσεις (relationships).μία οντότητα είναι ένα πράγμα, αντικείμενο που ξεχωρίζει από άλλα αντικείμενα.είναι ένας αποθηκευτικός χώρος όμοιων στοιχείων δεδομένων.οι συσχετίσεις είναι σημασιολογικοί δεσμοί μεταξύ οντοτήτων.κάθε οντότητα αντιπροσωπεύεται από ένα σύνολο ιδιοτήτων (attributes). Οι ιδιότητες διαθέτουν τύπο δεδομένων (π.χ. ακέραιος, συμβολοσειρά...). Οι οντότητες μπορούν να οργανωθούν σε ιεραρχίες υπερκλάσης υποκλάσης(isa ιεραρχεία) (π.χ. υπερκλάση : τραγουδιστής, υποκλάση : τραγουδιστής ροκ).οι συσχετίσεις έχουν διάφορους τύπους που καθορίζονται με βάση κάποιους αριθμητικούς περιορισμούς.ένα παράδειγμα δύο οντοτήτων καθώς και η γραφική τους αναπαράσταση στο ER μοντέλο ( μοντέλο οντοτήτων συσχετίσεων ) φαίνεται παρακάτω: 10

11 Εικόνα 2 Οντότητες-1 Στο σχήμα αναπαριστώνται 2 οντότητες.η οντότητα Album αποθηκεύει όλα τα άλμπουμ της εφαρμογής και η οντότητα Artist όλους τους καλλιτέχνες.οι οντότητες αυτές έχουν ιδιότητες.η λίστα των ιδιοτήτων καταγράφεται κάτω από το όνομα της οντότητας στο μοντέλο οντοτήτων συσχετίσεων. Εικόνα 3 Οντότητες-2 Στο παράδειγμά μας η οντότητα Album έχει τις ιδιότητες Title,Year,Cover και η οντότητα Artist τις FirstName, LastName, Biography, Photo. Κάθε οντότητα αποθηκεύει πολλά στιγμιότυπα.αυτά πρέπει με κάποιον τρόπο να διαχωρίζονται.αυτό επιτυγχάνεται με τον καθορισμό μίας ή περισσότερων ιδιοτήτων οι οποίες και διαθέτουν έναν μοναδικό συνδιασμό τιμών για κάθε στιγμιότυπο.οι ιδιότητες αυτές σχηματίζουν το πρωτεύον κλειδί της οντότητας.επομένως εξ ορισμού η τιμή ή συνδιασμός τιμών του πρωτεύοντος κλειδιού θα πρέπει να είναι μοναδική για κάθε στιγμιότυπο της οντότητας.συνήθως ως πρωτεύον κλειδί χρησιμοποιείται μία ιδιότητα που ονομάζεται OID (object identifier) και ο μοναδικός σκοπός της είναι ο καθορισμός αυτής της μοναδικής τιμής.στο μοντέλο οντοτήτων συσχετίσεων οι ιδιότητες κλειδιά απεικονίζονται όπως παρακάτω: 11

12 Εικόνα 4 Οντότητες-3 Στο σχήμα απεικονίζεται επίσης και ο τύπος δεδομένων που αποθηκεύει κάθε ιδιότητα.οι τύποι που υποστηρίζονται εξαρτώνται από το σύστημα διαχείρισης βάσεων δεδομένων που χρησιμοποιεί η Web εφαρμογή αλλά συνήθως είναι τα : string, text, integer, float, date, time, boolean, enumeration, BLOB, URL. Οι συσχετίσεις όπως προείπαμε αποτελούν σημασιολογικές συνδέσεις ανάμεσα σε οντότητες όπως π.χ. η συσχέτιση ενός καλλιτέχνη με τα άλμπουμ του.συνήθως σε εφαρμογές εμφανίζονται δυαδικές συσχετίσεις ή αλλιώς συσχετίσεις ανάμεσα σε δύο οντότητες.από το μοντέλο οντοτήτων συσχετίσεων υποστηρίζεται μεγαλύτερος βαθμός συσχετίσεων όμως αυτές μπορούν εύκολα να μετατραπούν σε έναν αριθμό δυαδικών συσχετίσεων. Στην συνέχεια με τον όρο συσχέτιση υπονοείται δυαδική συσχέτιση.μία συσχέτιση ορίζει δύο ρόλους όπου ο καθένας περιγράφει την λειτουργία της αντίστοιχης οντότητας μέσα στην σχέση.σε κάθε ρόλο αντιστοιχίζονται μία ελάχιστη και μία μέγιστη αριθμητική τιμή.οι τιμές αυτές συμβολίζουν τον ελάχιστο και τον μέγιστο αριθμό των αντικειμένων της οντότητας προορισμού που μπορούν να σχετίζονται με ένα αντικείμενο της οντότητας πηγή. Με βάση αυτές τις τιμές οι συσχετίσεις χωρίζονται στις ακόλουθες κατηγορίες: Ένα προς ένα: Και οι δύο ρόλοι της σχέσης έχουν ως μέγιστες τιμές 1. Ένα προς Ν: Ο ένας ρόλος έχει μέγιστη τιμή 1 και ο άλλος Ν Ν προς Ν: Και οι δύο ρόλοι έχουν μέγιστη τιμή Ν Η συσχέτιση Publication παρουσιάζεται στο παρακάτω σχήμα: Εικόνα 5 Συσχέτιση 12

13 Η συσχέτιση αυτή είναι μια 1 προς Ν συσχέτιση ανάμεσα στις οντότητες Album και Artist και περιγράφει ότι ένα άλμπουμ ανήκει σε έναν καλλιτέχνη και ότι καθε καλλιτέχνης έχει από 0 έως Ν άλμπουμ.ο αριθμός Ν συμβολίζει έναν αυθαίρετα μεγάλο ακέραιο. Ορισμένες ιδιότητες καθώς και συσχετίσεις μπορούν να παραχθούν από άλλα στοιχεία του σχήματος δεδομένων.επομένως δεν υπάρχει λόγος να αποθηκευθούν. Ένα παράδειγμα είναι π.χ. η τιμή ενός άλμπουμ μαζί με το ΦΠΑ.Αν έχουμε αποθηκεύσει στην βάση δεδομένων την τιμή χωρίς το ΦΠΑ και το ΦΠΑ ξεχωριστά τότε με βάση αυτές τις ιδιότητες (υπολογίζοντας το γινόμενο) μπορούμε να παράγουμε την ζητούμενη ιδιότητα.αυτές οι ιδιότητες και συσχετίσεις ονομάζονται παραγόμενες. Στο μοντέλο οντοτήτων συσχετίσεων μπορούμε να τις διακρίνουμε καθώς πριν από το όνομα τους υπάρχει ο χαρακτήρας /.Επίσης μετά το όνομα προσθέτεται και ο κανόνας υπολογισμού της ιδιότητας ή της συσχέτισης.επισήμως το διάγραμμα οντοτήτων συσχετίσεων δεν υποστηρίζει τον συμβολισμό των παραγόμενων στοιχείων υπάρχουν όμως κάποιες γλώσσες που το επεκτείνουν.μία από αυτές είναι η OCL (Object Constraint Language) που ορίζεται στην UML (Unified Model Language).Παραθέτονται δύο τέτοια παραδείγματα που χρησιμοποιούν την OCL για τον υπολογισμό της παραγόμενης ιδιότητας: Εικόνα 6 OCL 13

14 Ένα παράδειγμα μιας παραγόμενης συσχέτισης είναι το παρακάτω: Εικόνα 7 Παραγόμενη συσχέτιση Συνδιάζοντας τις έννοιες που παρουσιάσαμε, ένα απλουστευμένο σχήμα δεδομένων μιας υποτιθέμενης Web εφαρμογής που έχει ως αντικείμενο κινηματογραφικές ταινίες θα μπορούσε να είναι το παρακάτω: Εικόνα 8 Σχήμα δεδομένων Στην εικόνα φαίνεται ότι υπάρχουν οι οντότητες Movie, UserComment, RegisteredUser και Actor.Η οντότητα Movie περιέχει μία παραγόμενη ιδιότητα την /NumOfComments η οποία και υπολογίζεται με την έκφραση Count(Movie.MovieToUserComment).Η συνάρτηση Count(x) επιστρέφει το πλήθος των αντικειμένων της παραμέτρου x.στην συγκεκριμένη περίπτωση παράμετρος είναι ο ρόλος της οντότητας Movie στην συσχέτιση MovieToUserComment. Επομένως η συγκεκριμένη ιδιότητα έχει ως τιμή τον αριθμό των σχολίων που υπάρχει για την συγκεκριμένη ταινία. 14

15 2.2.2 WebML μοντέλο υπερκειμένου Το μοντέλο υπερκειμένου επιτρέπει τον ορισμό των ιστοσελίδων και του περιεχομένου τους.μία ιστοσελίδα περιέχει στοιχεία (components) τα οποία προβάλλουν το περιεχόμενο στον browser του χρήστη.επίσης υποστηρίζει τον ορισμό συνδέσμων ανάμεσα στις ιστοσελίδες και τα στοιχεία τους.τα στοιχεία αυτά στην WebML ονομάζονται μονάδες (units).μονάδα είναι ένα κομμάτι περιεχομένου που προβάλλεται στην ιστοσελίδα.ένα σύνολο μονάδων συνθέτουν μια ιστοσελίδα.στις μονάδες αυτές ή συνολικά στις ιστοσελίδες ορίζονται σύνδεσμοι (links) οι οποίοι και πραγματώνουν την δομή του υπερκειμένου.οι σύνδεσμοι είναι ο ακρογωνιαίος λίθος του μοντέλου του υπερκειμένου.ακολουθώντας τους μπορεί ο χρήστης να πλοηγηθεί στις ιστοσελίδες της εφαρμογής αλλά εκτός αυτού έχουν και την δυνατότητα να μεταφέρουν παραμέτρους που βοηθάνε στον σχεδιασμό των ιστοσελίδων.ένα σύνολο ιστοσελίδων σχηματίζει ένα site view.η έννοια αυτή είναι η ίδια που συναντήθηκε και στην παράγραφο της ανάλυσης των απαιτήσεων.το site view σχηματίζει ένα συνεκτικό υπερκείμενο το οποίο εκπληρώνει ένα καλά καθορισμένο σύνολο απαιτήσεων, όπως είναι οι ανάγκες μιας συγκεκριμένης ομάδας χρηστών.σε μεγάλες εφαρμογές υπάρχουν πολλαπλά site views τα οποία και ορίζονται πάνω από ένα κοινό σχήμα δεδομένων. Ένα site view όπως είπαμε πιο πριν είναι ένα σύνολο ιστοσελίδων.οι ιστοσελίδες αυτές μπορούν να κατηγοριοποιηθούν περαιτέρω με βάση κάποια κοινή συνιστώσα, π.χ. την θεματολογία τους.οι κοινές αυτές ιστοσελίδες σχηματίζουν μία περιοχή (area).πρέπει να γίνει ξεκάθαρο ότι ένα site view είναι ολόκληρο το μοντέλο του υπερκειμένου μιας εφαρμογής για μια συγκεκριμένη ομάδα χρηστών.η περιοχή είναι υποσύνολα του site view. H WebML επίσης υποστηρίζει ολικές παραμέτρους (global parameters). Οι παράμετροι αυτοί περιέχουν μικρά τμήματα πληροφορίας ενός συγκεκριμένου χρήστη όταν αυτός αλληλεπιδρά με την εφαρμογή.οι πληροφορίες αυτές μπορούν να χρησιμοποιηθούν στον σχεδιασμό ορισμένων ιστοσελίδων. Ένα παράδειγμα ενός site view είναι το παρακάτω: 15

16 Εικόνα 9 Site view Στην εικόνα αυτή παρουσιάζεται ένα site view που ονομάζεται MOVIE DB.Περιέχει τις ιστοσελίδες HomePage, ShoppingCart Data, RecentMoviesList, SearchMovies και InsertComment.Υπάρχουν επίσης και δύο περιοχές οι ShoppingCart Area και Movies Area που τμηματοποιούν τις ιστοσελίδες.υπάρχουν επίσης σε κάποιες ιστοσελίδες τα σύμβολα H,L,D.Αυτά είναι ιδιότητες των ιστοσελίδων και περιοχών και εξηγούνται παρακάτω: Το Η συμβολίζει μια home page.αυτή είναι η αρχική ιστοσελίδα της εφαρμογής.όταν ο χρήστης πληκτρολογήσει την εξ ορισμού διεύθυνση σε έναν browser αυτή είναι και η ιστοσελίδα που θα προβληθεί. Το D συμβολίζει την default page.αυτή είναι και η ιστοσελίδα που προβάλλεται αρχικά όταν η περιοχή που περικλύεται προσπελαύνεται. Το L συμβολίζει μια landmark page.στην ιστοσελίδα αυτή υπάρχει πρόσβαση από οποιαδήποτε άλλη ιστοσελίδα ή περιοχή που βρίσκονται στην ίδια περικλυόμενη περιοχή. Στην WebML υπάρχουν 5 βασικά είδη μονάδων τα οποία και αναλύονται στην συνέχεια. 16

17 Μονάδες δεδομένων ( Data units ) Οι μονάδες δεδομένων αναπαριστούν ένα αντικείμενο μιας οντότητας στην ιστοσελίδα και έχουν τα παρακάτω χαρακτηριστικά: Όνομα (Name) : Το καθορισμένο από τον χρήστη όνομα της μονάδας δεδομένων. Πηγή ( Source ) : Είναι το όνομα της οντότητας που παρέχει το αντικείμενο Επιλογέας (Selector) [Προαιρετικό] : Ο επιλογέας αναγνωρίζει ένα μοναδικό αντικείμενο που αποθηκεύει η πηγή.ο επιλογέας είναι προαιρετικός όμως η μόνη περίπτωση που μπορεί να μην χρησιμοποιηθεί είναι όταν η οντότητα περιέχει ένα μόνο αντικείμενο, κάτι που είναι στην πράξη σπάνιο. Ιδιότητες (Included attributes) : Είναι οι ιδιότητες του αντικειμένου που θα προβληθούν στην ιστοσελίδα. Ο συμβολισμός μίας μονάδας δεδομένων είναι ο ακόλουθος: Εικόνα 10 Μονάδα δεδομένων Ένα παράδειγμα μιας μονάδας δεδομένων που ονομάζεται ShortArtist είναι: 17

18 Εικόνα 11 Παράδειγμα μονάδας δεδομένων Από την εικόνα φαίνεται επίσης ότι η πηγή είναι η οντότητα Artist και οι επιλογείς είναι οι FirstName= Celine και LastName= Dion.Όταν υπάρχουν περισσότεροι του ενός επιλογείς τότε ο συνολικός επιλογέας ισούται με την λογική έκφραση επιλογέας Α (AND) επιλογέας Β.Με απλά λόγια θα πρέπει να ισχύουν ταυτόχρονα και οι δύο συνθήκες.όπως ειπώθηκε και σε προηγούμενη παράγραφο η WebML εκτός από την οπτική μορφή έχει και μορφή κειμένου.σύμφωνα με την δεύτερη το προηγούμενο παράδειγμα ορίζεται ως: Εικόνα 12 Μονάδα δεδομένων Μορφή κειμένου Εκτός από το λογικό AND που υπονοείται όταν προστεθεί πάνω από ένας επιλογέας υποστηρίζεται και το λογικό OR.Το λογικό OR σημαίνει ότι αν ισχύει ένας από τους επιλογείς (και όχι αναγκαστικά όλοι) τότε το αντικείμενο επιλέγεται. Υπάρχουν δύο τρόποι υποστήριξης του λογικού OR ως προς τις τιμές και ως προς τις ιδιότητες και παρουσιάζονται στην συνέχεια.η έκφραση [attribute operator value1 value2 valuen] ισοδυναμεί με την [(attribute operator value1) OR (attribute operator value2) OR OR (attribute operator valuen)]. Αυτό είναι η γενική μορφή υποστήριξης του λογικού OR ως προς τις τιμές.το λογικό OR ως προς τις ιδιότητες συμβολίζεται ως εξής: [attribute1 attribute2 attributen operator value] το οποίο ισούται με [(attribute1 operator value) OR (attribute2 operator value) OR OR (attributen operator value)]. 18

19 Μονάδες πολλαπλών δεδομένων (Multidata units) Οι μονάδες πολλαπλών δεδομένων παρουσιάζουν πολλαπλά αντικείμενα μιας οντότητας μαζί, το οποίο επιτυγχάνεται με την επανάληψη της προβολής κάθε αντικειμένου χωριστά.μία μονάδα πολλαπλών δεδομένων έχει τα παρακάτω χαρακτηριστικά: Όνομα: Το καθορισμένο από τον χρήστη όνομα της μονάδας. Πηγή: Είναι η οντότητα από την οποία προέρχονται τα αντικείμενα. Επιλογέας(Προαιρετικό):Ο επιλογέας καθορίζει τα αντικείμενα που θα προβληθούν.αν απουσιάζει τότε όλα τα αντικείμενα της οντότητας επιλέγονται. Ιδιότητες:Το σύνολο των ιδιοτήτων των αντικειμένων που το περιεχόμενο τους θα προβληθεί από την μονάδα. Κατάταξη (Order Clause) [Προαιρετικό]:Περιέχει το σύνολο των ιδιοτήτων που χρησιμοποιούνται για την διάταξη των αντικειμένων που θα προβληθούν καθώς και το κριτήριο διάταξης που εφαρμόζεται.αν δεν καθοριστεί το κριτήριο τότε η σειρά προβολής είναι αυξουσα. Στην παρακάτω είκονα φαίνεται η γραφική αναπαράσταση μιας μονάδας πολλαπλών δεδομένων. Εικόνα 13 Μονάδα πολλαπλών δεδομένων Στο παράδειγμα δεν υπάρχει επιλογέας και επομένως προβάλλονται στην ιστοσελίδα από την μονάδα όλα τα αντικείμενα της οντότητας Artist.Η μορφή κειμένου είναι η: 19

20 Εικόνα 14 Μονάδα πολλαπλών δεδομένων Μορφή κειμένου Κάτι που αξίζει να αναφερθεί είναι ότι η μορφή κειμένου περιγράφει πιο αναλυτικά την μονάδα πολλαπλών δεδομένων καθώς καθορίζει και τις ιδιότητες διάταξης κάτι που δεν φαίνεται από την γραφική παράσταση.οι ιδιότητες διάταξης υπολογίζονται με την σειρά που παρουσιάζονται στον ορισμό.δηλαδή πρώτα τα αντικείμενα ταξινομούνται ως προς την ιδιότητα LastName και μετά αν έχουν την ίδια τιμή στην προηγούμενη ταξινομούνται ως προς την FirstName. Μονάδες ευρετηρίου (Index unit) Οι μονάδες ευρετηρίου παρουσιάζουν μια λίστα πολλαπλών αντικειμένων μιας οντότητας.για τον καθορισμό μιας μονάδας ευρετηρίου χρειάζονται τα παρακάτω: Όνομα: Το όνομα που δίνει ο χρήστης στην μονάδα. Πηγή: Η οντότητα από την οποία αντλούνται τα αντικείμενα. Επιλογέας ( Προαιρετικό ): Ο επιλογέας καθορίζει τα αντικείμενα που θα προβληθούν.αν δεν καθοριστεί τότε επιλέγονται όλα τα αντικείμενα. Ιδιότητες: Το σύνολο των ιδιοτήτων της πηγής που θα προβληθούν στο ευρετήριο. Διάταξη (Προαιρετικό): Το σύνολο των ιδιοτήτων που χρησιμοποιούνται για την ταξινόμηση των αντικειμένων του ευρετηρίου. Οι μονάδες ευρετηρίου διαφέρουν ως προς τις μονάδες πολλαπλών δεδομένων στο ότι στις πρώτες επιλέγεται από μία λίστα ένα αντικείμενο.αντιθέτως οι μονάδες πολλαπλών δεδομένων χρησιμοποιούνται για τον υπολογισμό όλων των αντικειμένων που προβάλλονται από την μονάδα.η γραφική αναπαράσταση μιας μονάδας ευρετηρίου είναι η: 20

21 Εικόνα 15 Μονάδα ευρετηρίου Η εικόνα συμβολίζει μία μονάδα ευρετηρίου που προβάλλει τους τίτλους των άλμπουμ σε αλφαβητική σειρά.όλες οι λεπτομέρειες δεν μπορούν να εξαχθούν μόνο από την γραφική παράσταση γι αυτό και υπάρχει και η μορφή κειμένου της μονάδας που είναι η: Εικόνα 16 Μονάδα ευρετηρίου Μορφή κειμένου Οι μονάδες ευρετηρίου χωρίζονται σε δύο είδη : στις ιεραρχικές μονάδες ευρετηρίου(hierarchical units) και στις μονάδες ευρετηρίου πολλαπλών επιλογών( multichoice units).οι γραφικοί συμβολισμοί τους είναι οι: 21

22 Εικόνα 17 Τύποι μονάδων ευρετηρίου Στις μονάδες ευρετηρίου πολλαπλών επιλογών κάθε στοιχείο του ευρετηρίου διαθέτει ένα checkbox τα οποία και επιτρέπουν στον χρήστη να επιλέξει περισσότερα του ενός αντικείμενα.η μορφή κειμένου αυτής της μονάδας είναι η: Εικόνα 18 Μονάδα πολλαπλών επιλογών Μορφή κειμένου Οι ιεραρχικές μονάδες ευρετηρίου οργανώνουν τα αντικείμενα σε ένα δένδρο πολλαπλών επιπέδων.η ιεραρχία περιλαμβάνει μια ακολουθία από Ν οντότητες οι οποίες συνδέονται με Ν-1 ρόλους συσχέτισης.η πρώτη οντότητα παρουσιάζει τα αντικείμενα της στην κορυφή της ιεραρχίας,η δεύτερη οντότητα στο δεύτερο επίπεδο και ουτοκαθεξής.η ιεραρχική μονάδα που υπάρχει στην εικόνα 16 διαθέτει 2 επίπεδα.στο πρώτο επίπεδο υπάρχουν αντικείμενα από την Entity1 και στο δεύτερο αντικείμενα από την Entity2.Οι διαφορετικές οντότητες διαχωρίζονται από την λέξη NEST.Η μορφή κειμένου μιας ιεραρχικής μονάδας είναι η: 22

23 Εικόνα 19 Ιεραρχική μονάδα Μορφή κειμένου Μια HTML υλοποίηση των προηγούμενων μονάδων φαίνεται στην συνέχεια: Μονάδα πολλαπλών επιλογών Εικόνα 20 Μονάδα πολλαπλών επιλογών 23

24 Ιεραρχική Μονάδα Εικόνα 21 Ιεραρχική μονάδα Μονάδες Scroller (Scroller unit) Οι μονάδες scroller παρέχουν εντολές για την ανακύλιση ή κατακύλιση ανάμεσα στα αντικείμενα ενός συνόλου αντικειμένων (π.χ. τα αντικείμενα μιας οντότητας). Για τον καθορισμό της μονάδας χρειάζονται τα παρακάτω: Όνομα: Το όνομα που έχει δώσει ο χρήστης στην μονάδα. Πηγή: Η οντότητα από την οποία αντλούνται τα αντικείμενα. Επιλογέας (Προαιρετικό): Ο επιλογέας ορίζει το σύνολο των αντικειμένων ανάμεσα στα οποία κάνει ανακύλιση και κατακύλιση η μονάδα. Παράγοντας μπλοκ: Ο αριθμός των αντικειμένων που ανακυλούν ανά βήμα. Αν δεν καθοριστεί παίρνει τιμή 1. Διάταξη:Το σύνολο των ιδιοτήτων που χρησιμοποιούνται για την ταξινόμηση των αντικειμένων καθώς και το κριτήριο ταξινόμησης (αύξουσα ή φθίνουσα σειρά) Η γραφική αναπαράσταση μιας μονάδας scroller καθώς και μία πιθανή υλοποίηση της σε HTML παρουσιάζεται εδώ: 24

25 Εικόνα 22 Μονάδα scroller Η μορφή κειμένου είναι η: Εικόνα 23 Μονάδα scroller Μορφή κειμένου Μονάδες εισόδου (Entry Units) Οι μονάδες εισόδου υποστηρίζουν την φορμαρισμένη είσοδο δεδομένων. Χρησιμοποιούνται για την συλλογή δεδομένων που εισάγει ο χρήστης στην εφαρμογή.τα δεδομένα αυτά μπορούν να χρησιμοποιηθούν ως λέξεις κλειδιά σε μία αναζήτηση ενός αντικειμένου που βρίσκεται στην βάση δεδομένων ή ως παράμετροι σε λειτουργίες όπως είναι η ενημέρωση αντικειμένων,η είσοδος χρήστη και άλλες εξωτερικές υπηρεσίες.για τον καθορισμό μιας μονάδας εισόδου χρειάζονται τα εξής: Όνομα: Το όνομα που δίνει ο χρήστης στην μονάδα. Πεδία (Fields): Το σύνολο των πεδίων που χρησιμοποιούνται για την εισαγωγή των δεδομένων. Η γραφική αναπαράσταση της μονάδας είναι η : 25

26 Εικόνα 24 Μονάδα εισόδου Η μορφή κειμένου είναι η: Εικόνα 25 Μονάδα εισόδου Μορφή κειμένου Σε αυτό το παράδειγμα η μονάδα εισόδου έχει 4 πεδία με τα ονόματα FirstNameField, LastNameField, BirthDateField και DeathDateField. Τα πεδία δέχονται δεδομένα τύπου String(συμβολοσειράς) και τύπου Date. Τα πεδία έχουν και αυτά τις δικιές τους ιδιότητες που μπορούν να χρησιμοποιηθούν στον ορισμό τους στην κειμενική μορφή μιας μονάδας εισόδου.τα πεδία έχουν όνομα,τύπο δεδομένων εισόδου,προαιρετικά μια αρχική τιμή η οποία μπορεί να μεταβληθεί ή όχι και έναν προβλεπτή εγκυρότητας που χρησιμοποιείται για να ελέγξει την εγκυρότητα των δεδομένων εισόδου.ένας τέτοιος σύνθετος ορισμός μιας μονάδας εισόδου φαίνεται παρακάτω: 26

27 Εικόνα 26 Μονάδα εισόδου Μορφή κειμένου 2 Οι 5 μονάδες που παρουσιάστηκαν ονομάζονται μονάδες περιεχομένου και είναι τα ελάχιστα κομμάτια πληροφορίας που προβάλλονται σε μία ιστοσελίδα.συνοπτικά οι 5 βασικές μονάδες περιεχομένου της WebML είναι οι: Εικόνα 27 Μονάδες περιεχομένου Η WebML εκτός από το περιεχόμενο της εφαρμογής περιγράφει και τις λειτουργίες της.αυτό το επιτυγχάνει με τις λεγόμενες λειτουργικές μονάδες ( operation units ). Οι βασικές λειτουργικές μονάδες περιγράφονται στην συνέχεια. Μονάδες δημιουργίας αντικειμένου (Create Unit) Η μονάδα δημιουργίας αντικειμένων επιτρέπει την δημιουργία ενός αντικειμένου μιας οντότητας της βάσης δεδομένων.για τον ορισμό της χρειαζόμαστε τα εξής: Ένα όνομα καθορισμένο από τον χρήστη. Την οντότητα-πηγή στην οποία δημιουργείται το αντικείμενο. Ένα σύνολο από αναθέσεις οι οποίες και δίνουν τιμές στις ιδιότητες του αντικειμένου που πρόκειται να δημιουργηθεί. Συνήθως οι τιμές του νέου αντικειμένου προέρχονται από μία μονάδα εισόδου στην οποία και εισάγει δεδομένα ένας χρήστης.αν δεν εισαχθεί κάποια τιμή για μία ιδιότητα τότε αυτή παίρνει την τιμή NULL.Οι ιδιότητες κλειδί απαγορεύεται να μην παίρνουν τιμές.στην ειδική περίπτωση όπου υπάρχει μία ιδιότητα κλειδί τύπου ID 27

28 και δεν εισαχθεί για αυτήν αρχική τιμή τότε το σύστημα εισάγει αυτόματα μία έγκυρη τιμή.σε όλες τις λειτουργικές μονάδες μπορεί να υπάρξουν σφάλματα κάτα την διάρκεια της εφαρμογής τους.άρα μπορούμε να έχουμε δύο πιθανά αποτελέσματα η λειτουργία να εκτελεστεί επιτυχώς ή ανεπιτυχώς.για να αναπαρασταθεί αυτό στην γραφική μορφή της WebML από κάθε λειτουργική μονάδα εξέχουν δύο σύνδεσμοι,ο σύνδεσμος επιτυχίας OK και ο σύνδεσμος αποτυχίας KO. Η γραφική αναπαράσταση της μονάδας δημιουργίας αντικειμένου είναι η: Εικόνα 28 Μονάδα δημιουργίας αντικειμένου Ένα παράδειγμα μιας κειμενικής μορφής είναι η: Εικόνα 29 Μονάδα δημιουργίας αντικειμένου Μορφή κειμένου Η μονάδα αυτή δημιουργεί ένα αντικείμενο τύπου Artist με όνομα FName και επίθετο LName.Τα FName και LName είναι ονόματα παραμέτρων που εισέρχονται στην μονάδα.μπορεί να προέρχονται π.χ. από μία μονάδα εισόδου και να περιέχουν την είσοδο του χρήστη στα αντίστοιχα πεδία. 28

29 Μονάδες διαγραφής αντικειμένων Η μονάδα διαγραφής αντικειμένων χρησιμοποιείται στην διαγραφή ενός ή περισσοτέρων αντικειμένων μιας οντότητας.χαρακτηρίζεται από τα ακόλουθα: Ένα όνομα καθορισμένο από τον χρήστη. Την οντότητα-πηγή καθώς και τον επιλογέα που χρησιμοποιείται στον καθορισμό των αντικειμένων που πρόκειται να διαγραφούν.τα αντικείμενα που διαγράφονται είναι αυτά που ικανοποιούν την συνθήκη του επιλογέα. Ένας χρήστης συνήθως κατά την διάρκεια αλληλεπίδρασης του με την εφαρμογή επιλέγει κάποια αντικείμενα που προβάλλονται από μονάδες δεδομένων για διαγραφή.όπως προηγουμένως η λειτουργία μπορεί να εκτελεστεί επιτυχώς ή ανεπιτυχώς. Η γραφική αναπαράσταση της μονάδας είναι η: Η μορφή κειμένου είναι η: Εικόνα 30 Μονάδα διαγραφής αντικειμένου Εικόνα 31 Μονάδα διαγραφής αντικειμένου Μορφή κειμένου Παρατηρείστε ότι δεν καθορίζεται ο επιλογέας στο συγκεκριμένο παράδειγμα. Αυτός υπονοείται ότι είναι ο [OID = <παράμετρος συνδέσμου>] ή [OIDϵ{παράμετρος συνδέσμου}].ο σύνδεσμος προέρχεται από μία άλλη μονάδα που καλεί την συγκεκριμένη λειτουργική μονάδα. 29

30 Μονάδες τροποποίησης αντικειμένων (Modify Unit) Η μονάδα τροποποίησης αντικειμένων χρησιμοποιείται στην τροποποίηση της τιμής των ιδιοτήτων ενός ή περισσοτέρων αντικειμένων μιας οντότητας.χαρακτηρίζεται από: Το όνομα που της δίνει ένας χρήστης. Την οντότητα-πηγή και τον επιλογέα που καθορίζουν τα αντικείμενα που θα τροποποιηθούν. Ένα σύνολο αναθέσεων που δίνουν τις νέες τιμές στις ιδιότητες των επιλεγμένων αντικειμένων. Ο χρήστης επιλέγει μέσω της εφαρμογής το αντικείμενο ή το σύνολο των αντικειμένων που θέλει να τροποποιήσει.στην περίπτωση των πολλαπλών αντικειμένων η ίδια τροποποίηση εφαρμόζεται σε όλα τα αντικείμενα. Η γραφική παράσταση της μονάδας είναι η: Εικόνα 32 Μονάδα τροποποίησης αντικειμένου Η μορφή κειμένου ενός παραδείγματος είναι η: Εικόνα 33 Μονάδα τροποποίησης αντικειμένου Μορφή κειμένου Σε αυτό το παράδειγμα τροποποιείται η βιογραφία ενός καλλιτέχνη ή ενός συνόλου καλλιτεχνών (εξαρτάται από την παράμετρο του συνδέσμου εισόδου). 30

31 Μονάδες δημιουργίας συσχέτισης (Connect Unit) Μια μονάδα δημιουργίας συσχέτισης χρησιμοποιείται στην δημιουργία αντικειμένων συσχέτισης.πιο συγκεκριμένα, εφαρμόζεται σε έναν ρόλο συσχέτισης και δημιουργεί μία ή περισσότερες περιπτώσεις του ρόλου που συνδέουν κάποια αντικείμενα των δύο οντοτήτων που συνδέει η συσχέτιση. Χαρακτηρίζεται από: Το όνομα που δίνει ο χρήστης στην μονάδα Τον ρόλο της συσχέτισης στον οποίο εφαρμόζεται η μονάδα. Δύο επιλογείς που καθορίζουν τα αντικείμενα των δύο οντοτήτων για τα οποία θα δημιουργηθεί ο ρόλος.συνήθως για να γίνει η διάκριση σε ποια οντότητα αναφέρονται οι ιδιότητες που υπάρχουν στους επιλογείς εφαρμόζεται το όνομα της οντότητας ως πρόθεμα κατά την δήλωση της ιδιότητας. Η γραφική αναπαράσταση της μονάδας δημιουργίας συσχετίσεων είναι η: Η μορφή κειμένου είναι η: Εικόνα 34 Μονάδα δημιουργίας συσχέτισης Εικόνα 35 Μονάδα δημιουργίας συσχέτισης Μορφή κειμένου Στο συγκεκριμένο παράδειγμα δημιουργείται μια συσχέτιση ρόλου ArtistToReview ανάμεσα στον καλλιτέχνη με ID Art και την κριτική με ID Rev.Παρατηρείστε ότι στους επιλογείς χρησιμοποιείται η οντότητα ως πρόθεμα στις ιδιότητες για να γίνει ξεκάθαρος ο προσδιορισμός τους. 31

32 Μονάδες αποσύνδεσης συσχέτισης (Disconnect Unit) Η μονάδα αυτή έχει ακριβώς την αντίθετη λειτουργία της προηγούμενης μονάδας. Χρησιμοποιείται για την διαγραφή συσχετίσεων ανάμεσα σε αντικείμενα. Χαρακτηρίζεται από: Ένα όνομα που καθορίζει ο χρήστης. Το ρόλο συσχέτισης στον οποίο θα εφαρμοστεί η μονάδα. Δύο επιλογείς που καθορίζουν τα αντικείμενα των δύο οντοτήτων που θα εφαρμοστεί η λειτουργία αποσύνδεσης. Η γραφική της παράσταση είναι η: Εικόνα 36 Μονάδα αποσύνδεσης συσχέτισης Ένα παράδειγμα κειμενικής της μορφής είναι: Εικόνα 37 Μονάδα αποσύνδεσης συσχέτισης Μορφή κειμένου Παρατηρείστε ότι δεν καθορίζονται επιλογείς στο συγκεκριμένο παράδειγμα.αυτό οφείλεται στο ότι οι σύνδεσμοι εισόδου στην μονάδα καθορίζουν μονοσήμαντα τα αντικείμενα που πρόκειται να αποσυνδεθούν. Μονάδες εισαγωγής χρήστη (Login Unit) Μία Web εφαρμογή συνήθως υποστηρίζει εξειδικευμένες λειτουργίες σε χρήστες ή σε ομάδες χρηστών.η αναγνώριση ενός χρήστη επιτυγχάνεται με την μονάδα εισαγωγής χρήστη.αυτή η λειτουργική μονάδα συνδέεται συνήθως με μία μονάδα εισόδου δεδομένων που έχει ως πεδία τα: 1)εισαγωγή ονόματος χρήστη και 2) εισαγωγή κωδικού χρήστη.οι τιμές των πεδίων εισάγονται με την μορφή παραμέτρων στην μονάδα εισαγωγής χρήστη.η μονάδα στην συνέχεια ελέγχει την 32

33 εγκυρότητα των δεδομένων και δρα ανάλογα με την βοήθεια των OK,KO συνδέσμων εξόδου. Η γραφική της αναπαράσταση είναι η: Εικόνα 38 Μονάδα εισαγωγής χρήστη Ένα παράδειγμα της μονάδας σε μορφή κειμένου είναι το: Εικόνα 39 Μονάδα εισαγωγής χρήστη Μορφή κειμένου Οι παράμετροι UserName και Password είναι προκαθορισμένοι από τον ορισμό της μονάδας και πάντα πρέπει να παρέχονται με τιμές.στην συγκεκριμένη περίπτωση ελέγχονται οι τιμές εισόδου UName και Pwd. Μονάδες αποσύνδεσης χρήστη (Logout Unit) Η μονάδα αυτή αποσυνδέει έναν χρήστη από την εφαρμογή και τον οδηγεί σε μία προκαθορισμένη ιστοσελίδα.η μονάδα αποσύνδεσης χρήστη δεν παίρνει είσοδο. Η γραφική της αναπαράσταση είναι η: Εικόνα 40 Μονάδα αποσύνδεσης χρήστη Η κειμενική της μορφή είναι: 33

34 Εικόνα 41 Μονάδα αποσύνδεσης χρήστη Μορφή κειμένου Μονάδες αποστολής (Sendmail Unit) Η μονάδα αποστολής κάνει ότι ακριβώς λέει η ονομασία της, στέλνει ένα σε κάποιους παραλήπτες με αποστολέα τον χρήστη.περιλαμβάνει 5 παραμέτρους: το κείμενο του ,το σύνολο των ηλεκτρονικών διευθύνσεων των παραληπτών,την διεύθυνση του αποστολέα,το θέμα του και ένα σύνολο από επισυναπτόμενα αρχεία. Η γραφική παράσταση της μονάδας είναι η: Εικόνα 42 Μονάδα αποστολής Ένα παράδειγμα κειμενικής της μορφής είναι το: Εικόνα 43 Μονάδα αποστολής Μορφή κειμένου Οι παράμετροι παίρνουν τις τιμές τους από τις μονάδες περιεχομένου που συνδέεται η μονάδα αποστολής . Μονάδες γενικευμένης λειτουργίας (Generic Unit) H WebML επιτρέπει σε έναν χρήστη να ορίσει την δικιά του λειτουργική μονάδα με την βοήθεια της μονάδας γενικευμένης λειτουργίας. Η γραφική της αναπαράσταση είναι η: 34

35 Εικόνα 44 Μονάδα γενικευμένης λειτουργίας Ένα παράδειγμα ορισμού μιας γενικευμένης λειτουργίας είναι η χρέωση μιας πιστωτικής κάρτας. Συναλλαγές (Transactions) Μία συναλλαγή είναι ένα σύνολο λειτουργιών που για να θεωρηθεί ότι εκτελέστηκε με επιτυχία πρέπει όλες οι λειτουργίες που περιλαμβάνει να εκτελεστούν επιτυχώς.οι συναλλαγές είναι μια θεμελιώδης έννοια στο πεδίο των βάσεων δεδομένων και υποστηρίζονται από τα περισσότερα DBMS.Διευκολύνουν πολλαπλούς χρήστες να αλληλεπιδρούν ταυτόχρονα στην βάση δεδομένων χωρίς να προκαλούν ασυνέπειες στα δεδομένα. Οι ιδιότητες που παρουσιάζουν οι συναλλαγές είναι οι: Ατομικότητα: Ατομικότητα σημαίνει ότι είτε όλες οι λειτουργίες που περιλαμβάνει η συναλλαγή εκτελούνται επιτυχώς είτε καμία. Συνέπεια: Η ολοκλήρωση της συναλλαγής δεν προκαλεί ασυνέπειες στα δεδομένα. Απομόνωση: Η εκτέλεση μιας συναλλαγής είναι ανεξάρτητη των ταυτόχρονων εκτελέσεων άλλων συναλλαγών. Αντοχή στον χρόνο: Οι αλλαγές που επιφέρει μια επιτυχημένη συναλλαγή είναι μόνιμες στην βάση δεδομένων. Στην WebML οι συναλλαγές είναι ένα σύνολο λειτουργικών μονάδων.συμβολίζονται ως ένα διακεκομμένο πλαίσιο που περικλείει τις μονάδες αυτές.ένα παράδειγμα μιας συναλλαγής είναι το εξής: 35

36 Εικόνα 45 Συναλλαγή Η μονάδα δημιουργίας δεδομένων CreateReview συνδέεται με την μονάδα δημιουργίας συσχέτισης Connect.Αυτό που κάνει η συναλλαγή είναι η δημιουργία μίας κριτικής και η σύνδεση της με έναν καλλιτέχνη.αν κάποια από τις δύο λειτουργίες αποτύχει τότε αναιρούνται όλες οι αλλαγές που έχουν προέλθει από την συναλλαγή στην βάση δεδομένων μέχρι αυτήν την στιγμή.στην συγκεκριμένη περίπτωση αν εκτελεστεί επιτυχημένα η λειτουργία CreateReview αλλά αποτύχει η Connect τότε αναιρείται και η αλλαγή που έχει επιφέρει η CreateReview δηλαδή διαγράφεται η νέα κριτική. Σύνδεσμοι (Links) Οι σύνδεσμοι ορίζονται ανάμεσα σε μονάδες της ίδιας ιστοσελίδας,ανάμεσα σε μονάδες διαφορετικών ιστοσελίδων ή ανάμεσα σε ιστοσελίδες.κάθε σύνδεσμος εξυπηρετεί μία από τις παρακάτω λειτουργίες: Ο χρήστης μέσω αυτού αλλάζει ιστοσελίδες. Η μεταφορά πληροφοριών ανάμεσα στις μονάδες της εφαρμογής. Η εκτέλεση ορισμένων λειτουργιών (π.χ. η εκτέλεση μιας λειτουργίας τροποποίησης). Οι σύνδεσμοι μπορούν ή και όχι να μεταφέρουν πληροφορίες.οι σύνδεσμοι που μεταφέρουν πληροφορίες ονομάζονται contextual σύνδεσμοι και αυτοί που δεν μεταφέρουν non-contextual συνδεσμοι. Τα δεδομένα που μεταφέρουν οι contextual σύνδεσμοι αναπαριστώνται από τις παραμέτρους του συνδέσμου (link parameters).μια παράμετρος συνδέσμου είναι μια τιμή που σχετίζεται με έναν σύνδεσμο και κατά την πλοήγηση αυτού του συνδέσμου η τιμή αυτή μεταφέρεται από την αρχική μονάδα στην μονάδα προορισμού.οι παράμετροι συνδέσμου μπορούν να χρησιμοποιηθούν ως τιμές στον επιλογέα της μονάδας προορισμού. Η WebML υποστηρίζει και δύο ειδικούς τύπους συνδέσμων τους: αυτόματους συνδέσμους (automatic links) και τους συνδέσμους μεταφοράς (transportation 36

37 links).οι δύο αυτοί τύποι καθορίζουν την συμπεριφορά ενός συνδέσμου.όταν μια ιστοσελίδα περιλαμβάνει έναν αυτόματο σύνδεσμο την στιγμή που αυτή προσπελαύνεται τότε αυτομάτως ο σύνδεσμος ακολουθείται και προβάλλεται ή εκτελείται η μονάδα προορισμού.γραφικά ένας σύνδεσμος ορίζεται ως αυτόματος αν υπάρχει στο σχήμα του το γράμμα «Α».Οι σύνδεσμοι μεταφοράς χρησιμοποιούνται μόνο για την μεταφορά παραμέτρων ανάμεσα σε δύο μονάδες και δεν υπάρχει τρόπος αλληλεπίδρασης με αυτούς από τον χρήστη αφού δεν σχεδιάζεται κάποιο είδος υπερσυνδέσμου στην ιστοσελίδα.δηλαδή λειτουργούν από πίσω από την διεπαφή της εφαρμογής κάτι που δεν μπορεί να αντιληφθεί ο χρήστης.γραφικά οι σύνδεσμοι μεταφοράς αναπαριστώνται από μια διακεκομμένη γραμμή.ένα παράδειγμα που περιλαμβάνει έναν αυτόματο σύνδεσμο καθώς και έναν σύνδεσμο μεταφοράς είναι το παρακάτω: Εικόνα 46 Τύποι συνδέσμων Στο παράδειγμα αυτό παρουσιάζεται μια ιστοσελίδα με το όνομα RecentMoviesList. Η ιστοσελίδα περιλαμβάνει 3 μονάδες και 2 συνδέσμους.η μονάδα ευρετηρίου RecentMoviesIndex παρουσιάζει ένα ευρετήριο που περιέχει τους τίτλους των πρόσφατων ταινιών.η μονάδα δεδομένων Movie details παρουσιάζει τις λεπτομέρειες της ταινίας που έχει επιλεχθεί από το ευρετήριο.τέλος η μονάδα πολλαπλών δεδομένων παρουσιάζει πληροφορίες για τους ηθοποιούς που παίζουν στην επιλεγμένη ταινία.η μονάδα ευρετηρίου συνδέεται με την μονάδα δεδομένων με έναν αυτόματο σύνδεσμο.άρχικα μόλις ο χρήστης προσπελαύνει την σελίδα τίθεται σε λειτουργία ο αυτόματος σύνδεσμος και αποστέλει στην μονάδα δεδομένων ένα καθορισμένο ID μιας ταινίας.έστω π.χ. ότι αποστέλει αρχικά το ID της ταινίας που βρίσκεται στην κορυφή του ευρετηρίου.τότε αρχικά θα προβάλλονται οι λεπτομέρειες αλλά και οι ηθοποιοί της πρώτης ταινίας.ο χρήστης μπορεί όμως στην συνέχεια να επιλέξει μια οποιαδήποτε άλλη ταινία του ευρετηρίου. Αυτή είναι και η διαφορά του αυτόματου συνδέσμου από του συνδέσμου μεταφορών.ο αυτόματος σύνδεσμος σχεδιάζεται στην ιστοσελίδα με την μορφή υπερσυνδέσμου ενώ ο σύνδεσμος μεταφορών όχι.στην συγκεκριμένη 37

38 περίπτωση στον χρήστη προβάλλονται οι λεπτομέρειες των ηθοποιών χωρίς όμως αυτός να αλληλεπιδρά με κάποιον υπερσύνδεσμο. Ολικές παράμετροι (Global Parameters) Ο χρήστης όταν συνδέεται σε μία Web εφαρμογή δημιουργεί ένα session το οποίο καθορίζει και το site view που του προβάλλεται.για να γνωρίζει η εφαρμογή τις πληροφορίες του τρέχοντος χρήστη θα πρέπει να τις αποθηκεύσει σε κάποιες παραμέτρους που είναι προσπελαύσιμες οποιαδήποτε στιγμή από οποιαδήποτε ιστοσελίδα της εφαρμογής.αυτές ονομάζονται ολικές παράμετροι.στην WebML οι ολικές παράμετροι προσπελαύνονται από 2 μονάδες : την GET μονάδα και την SET μονάδα. Η Get μονάδα επιστρέφει την τιμή μιας καθορισμένης ολικής παραμέτρου και η Set μονάδα τροποποιεί την τιμή μιας ολικής παραμέτρου.ο γραφικός συμβολισμός των μονάδων είναι ο: Εικόνα 47 Ολικές παράμετροι Για κάθε ολική παράμετρο καθορίζονται τα παρακάτω: Το όνομα της. Ο τύπος του δεδομένου που αποθηκεύει. Μια εξ ορισμού τιμή η οποία και χρησιμοποιείται αρχικά. Δύο παραδείγματα ορισμού ολικών μεταβλητών είναι τα παρακάτω: 38

39 Εικόνα 48 Ολικές παράμετροι Μορφή κειμένου Η πρώτη ολική παράμετρος χρησιμοποιείται για την αποθήκευση του ID μιας χώρας. Η δεύτερη αντί για το ID αποθηκεύει το όνομα μιας χώρας και έχει ως αρχική τιμή την χώρα Ιταλία.Με την χρησιμοποίηση μιας μονάδας Set μπορούν να τροποποιηθούν αυτές οι τιμές όπως παρακάτω: Σε μορφή κειμένου παίρνουμε: Εικόνα 49 Μονάδα set Εικόνα 50 Μονάδα set Μορφή κειμένου Με την μονάδα Get μια ιστοσελίδα προσπελαύνει την τιμή μιας ολικής παραμέτρου: 39

40 Εικόνα 51 Μονάδα get Η Get μονάδα σε κειμενική μορφή ορίζεται ως: Εικόνα 52 Μονάδα get Μορφή κειμένου Με αυτόν τον τρόπο επιστρέφεται στην μονάδα της ιστοσελίδας η τιμή της ολικής μεταβλητής CurrentCountry. 2.3 Μοντελοποίηση της παρουσίασης της εφαρμογής (Presentation Modeling) Η WebML δεν υποστηρίζει μοντελοποίηση της παρουσίασης μιας Web εφαρμογής. Με το όρο παρουσίαση εννοούμαι τον τρόπο που θα σχεδιάζονται καθώς και το μέρος που θα βρίσκονται σε μια ιστοσελίδα οι μονάδες.επομένως αποτελεί ένα πολύ σημαντικό κομμάτι κατά την υλοποίηση της εφαρμογής αφού ο χρήστης επηρεάζεται από την εμφάνισή της είτε θετικά είτε αρνητικά. Το εργαλείο Web Ratio που παράγει αυτομάτως Web εφαρμογές με την εισαγωγή σε αυτό WebML κώδικα υποστηρίζει την χρήση της γλώσσας XSL για τον σχηματισμό της παρουσίασης της. Η ανάλυση των ιστοσελίδων στην συνέχεια είναι ως προς το περιεχόμενο τους και όχι ως προς την εμφάνισή τους. 2.4 Αναπαράσταση της WebML μέσω XML Στις προηγούμενες παραγράφους παρουσιάστηκε η WebML τόσο σε γραφική όσο και σε μορφή κειμένου.η μορφή κειμένου της WebML μπορεί να αναπαρασταθεί και σε μορφή XML κειμένου.η XML είναι μία γλώσσα που όπως και η HTML έχει τις ρίζες της στην διαχείριση εγγράφων και παράγεται από μια γλώσσα για δόμηση μεγάλων εγγράφων που ονομάζεται SGML(Standard Generalized Markup Language). Αντιθέτως από την HTML η XML μπορεί να αναπαραστήσει οποιοδήποτε είδος 40

41 εγγράφου δομημένων δεδομένων.είναι πολύ χρήσιμη για την μορφοποίηση των δεδομένων όταν μια εφαρμογή πρέπει να επικοινωνεί με μια άλλη εφαρμογή ή να ενοποιεί πληροφορίες από διάφορες εφαρμογές.η XML (όπως και η HTML) είναι μια γλώσσα σήμανσης (markup language).ο όρος σήμανση αναφέρεται σε οτιδήποτε υπάρχει σε ένα έγγραφο που δεν πρόκειται να τυπωθεί.στην ηλεκτρονική επεξεργασία των εγγράφων μια γλώσσα σήμανσης είναι μια τυπική περιγραφή για το ποιο μέρος του εγγράφου είναι περιεχόμενο, ποιο είναι σήμανση και τι σημαίνει η σήμανση.η σήμανση αναπαριστάται στα XML και HTML έγγραφα με την μορφή των ετικετών (tag) που περικλείονται σε γωνιώδεις αγκύλες <, >.Οι ετικέτες χρησιμοποιούνται σε ζευγάρια με την <tag> να σηματοδοτεί την αρχή και την </tag> το τέλος της ετικέτας.τα ζευγάρια χωρίζουν το κείμενο στο τμήμα που αναφέρεται η ετικέτα.αρχικά η XML είχε σχεδιαστεί ώστε να αποτελεί μια γενίκευση της γλώσσας HTML για το διαδίκτυο.αυτό συνέβει επειδή η HTML διαθέτει ένα σταθερό και προκαθορισμένο σύνολο ετικετών ενώ αντιθέτως με την XML μπορεί να οριστεί οποιοσδήποτε αριθμός ετικετών.η παρουσίαση κειμένων σε μορφή XML παρουσιάζει πολλά πλεονεκτήματα τα οποία είναι: Πρώτον, η παρουσία των ετικετών κάνει το έγγραφο να τεκμηριώνεται μόνο του δηλαδή δεν χρειάζεται κανείς ένα σχήμα για να καταλάβει την σημασία του κειμένου. Δεύτερον, η μορφή του εγγράφου δεν είναι αυστηρή.για παράδειγμα αν κάποιος αποστολέας προσθέσει επιπλέον πληροφορίες ο παραλήπτης των δεδομένων μπορεί απλά να αγνοήσει την ετικέτα.η δυνατότητα να αναγνωρίζουμε και να αγνοούμε μη αναμενόμενες ετικέτες επιτρέπει να αναπτύσσεται η μορφή των δεδομένων με τον χρόνο χωρίς να κάνει άκυρες τις υπάρχουσες εφαρμογές. Τέλος, αφού η μορφή XML είναι ευρέως αποδεκτή είναι διαθέσιμη μια μεγάλη ποικιλία από εργαλεία για να βοηθήσουν στην επεξεργασία. Η βασική δομή σε ένα XML έγγραφο είναι το στοιχείο (element).ένα στοιχείο είναι απλώς ένα ζευγάρι από ετικέτες αρχής και τέλους και όλο το κείμενο μεταξύ τους.τα XML έγγραφα πρέπει να περιέχουν ένα στοιχείο-ρίζα που περιέχει όλα τα άλλα στοιχεία του εγγράφου.επιπλέον τα στοιχεία σε ένα XML έγγραφο πρέπει να έχουν μπει σωστά σε ένθεση.για παράδειγμα: <account> <balance> </balance> </account> είναι σωστά,ενώ τα <account> <balance> </account> </balance> είναι λάθος. 41

42 Ενώ η σωστή ένθεση είναι μια διαισθητική λειτουργία μπορούμε να την ορίσουμε πιο τυπικά.λέμε ότι το κείμενο εμφανίζεται στο περιβάλλον ενός στοιχείου αν εμφανίζεται μεταξύ των ετικετών αρχής και τέλους αυτού του στοιχείου.οι ετικέτες είναι σωστά ένθετες αν κάθε ετικέτα αρχής έχει μια μοναδική,αντίστοιχη ετικέτα τέλους, που βρίσκεται στο περιβάλλον του ίδιου γονικού στοιχείου. Εκτός από τα στοιχεία η XML ορίζει και την έννοια της ιδιότητας (attribute).οι ιδιότητες ενός στοιχείου εμφανίζονται σε ζεύγη ονόματος-τιμής πριν από το > μιας ετικέτας.οι ιδιότητες είναι συμβολοσειρές και δεν περιέχουν σήμανση.επιπλέον οι ιδιότητες μπορούν να εμφανίζονται μόνο μια φορά σε μια ετικέτα αντίθετα από τα υποστοιχεία που μπορεί να επαναλαμβάνονται. Αφού τα XML έγγραφα έχουν σχεδιαστεί να ανταλλάσσονται μεταξύ εφαρμογών έχει παρουσιαστεί ένας μηχανισμός χώρου ονομάτων (namespace) που επιτρέπει σε οργανισμούς να καθορίζουν καθολικά μοναδικά ονόματα που θα χρησιμοποιούνται ως ετικέτες στοιχείων σε έγγραφα.η ιδέα ενός χώρου ονομάτων είναι για να προτάσσει σε κάθε ετικέτα ή ιδιότητα ένα καθολικό αναγνωριστικό πόρων. Όπως προείπαμε τα XML έγγραφα μπορούν να δημιουργηθούν χωρίς κάποιο σχετικό σχήμα.ένα στοιχείο μπορεί να έχει οποιοδήποτε υποστοιχείο ή ιδιότητα.ενώ μια τέτοια ελευθερία μπορεί να είναι αποδεκτή εξαιτίας της φύσης που περιγράφει από μόνη της τη μορφή των δεδομένων, δεν είναι γενικά χρήσιμο όταν πρόκειται να γίνει επεξεργασία των XML εγγράφων ατομικά ως μέρος μιας εφαρμογής ή ακόμα και όταν μεγάλες ποσότητες σχετικών δεδομένων πρόκειται να μορφοποιηθούν στην XML.Eπομένως η XML υποστηρίζει ένα εγγράφο-κεντρικό μηχανισμό σχήματος που ονομάζεται DTD (Document Type Definition). Ο ορισμός τύπου εγγράφου (DTD) είναι ένα προαιρετικό μέρος ενός XML εγγράφου. Ο κύριος σκοπός του DTD είναι όπως αυτός του σχήματος : να περιορίζει τον τύπο των πληροφοριών που παρουσιάζονται στο έγγραφο.ωστόσο το DTD δεν περιορίζει τους τύπους σε σχέση με τους βασικούς τύπους όπως ακέραιους ή συμβολοσειρές.αντίθετα περιορίζει μόνο την εμφάνιση υποστοιχείων και ιδιοτήτων μέσα σε ένα στοιχείο. Το DTD είναι βασικά μια λίστα από κανόνες για το πιο μοτίβο υποστοιχείων θα εμφανίζεται μέσα σε ένα στοιχείο.κάθε δήλωση είναι με την μορφή μιας κανονικής παράστασης για τα υποστοιχεία ενός στοιχείου.ο τελεστής καθορίζει το ή ενώ ο τελεστής + καθορίζει το ένα ή περισσότερα.ο τελεστής * χρησιμοποιείται για να καθορίζει μηδέν ή περισσότερα ενώ ο τελεστής? χρησιμοποιείται για να καθορίσει ένα προαιρετικό στοιχείο (μηδέν ή ένα).επίσης ένα στοιχείο μπορεί να δηλωθεί να είναι τύπου #PCDATA.Η λέξη κλειδή #PCDATA δείχνει δεδομένα κειμένου.δύο άλλοι ειδικοί τύποι δηλώσεων είναι το empty που λέει ότι το στοιχείο δεν έχει περιεχόμενα και το any που λέει ότι δεν υπάρχει περιορισμός στα υποστοιχεία του στοιχείου.δηλαδή οποιαδήποτε στοιχεία,ακόμα 42

43 και αυτά πουδεν αναφέρονται στο DTD, μπορούν να υπάρχουν ως υποστοιχεία του στοιχείου.η απουσία μιας δήλωσης για ένα στοιχείο είναι ισοδύναμη με την άμεση δήλωσή του τύπου any.ένα παράδειγμα δήλωσης ενός στοιχείου είναι το: <!ELEMENT bank ((account customer depositor)+)> Ορίζεται ένα στοιχείο με όνομα bank που περιέχει μηδέν ή περισσότερες τριάδες στοιχείων (account, customer, depositor).h σειρά εμφάνισης των υποστοιχείων πρέπει να διατηρείται. Οι επιτρεπόμενες ιδιότητες για κάθε στοιχείο ορίζονται επίσης στο DTD.Αντίθετα με τα υποστοιχεία δεν υπάρχει κάποια σειρά στις ιδιότητες.οι ιδιότητες μπορούν να καθοριστούν να είναι τύπου CDATA, ID, IDREF ή IDREFS.Ο τύπος CDATA απλώς λέει ότι η ιδιότητα περιέχει χαρακτήρες δεδομένων,ενώ τα άλλα τρία δεν είναι τόσο απλά.εξηγούνται με περισσότερη λεπτομέρεια σύντομα.για παράδειγμα η παρακάτω γραμμή από ένα DTD καθορίζει ότι το στοιχείο account έχει μια ιδιότητα acct-type με προκαθορισμένη τιμή checking. <!ATTLIST account acct-type CDATA checking > Οι ιδιότητες πρέπει να έχουν έναν τύπο δήλωσης και μια προκαθορισμένη δήλωση. Η προκαθορισμένη δήλωση μπορεί να αποτελείται από μια προκαθορισμένη τιμή για την ιδιότητα #REQUIRED, που σημαίνει ότι πρέπει να καθοριστεί αυτή η τιμή για την ιδιότητα κάθε στοιχείου ή το #IMPLIED, που σημαίνει ότι δεν παρέχεται καμία προκαθορισμένη τιμή.αν μια ιδιότητα έχει προκαθορισμένη τιμή,για κάθε στοιχείο που δεν καθορίζει μια τιμή για την ιδιότητα,η προκαθορισμένη ιδιότητα συμπληρώνεται αυτόματα όταν διαβάζεται το XML έγγραφο. Μια ιδιότητα τύπου ID παρέχει ένα μοναδικό αναγνωριστικό για το στοιχείο. Μια τιμή που υπάρχει σε μια ιδιότητα ID ενός στοιχείου δεν πρέπει να υπάρχει σε οποιοδήποτε άλλο στοιχείο του ίδιου εγγράφου.το πολύ μια ιδιότητα ενός στοιχείου επιτρέπεται να είναι τύπου ID. Μια ιδιότητα τύπου IDREF είναι μια αναφορά σε ένα στοιχείο.η ιδιότητα πρέπει να περιέχει μια τιμή που να εμφανίζεται στην ιδιότητα ID κάποιου στοιχείου του εγγράφου.ο τύπος IDREFS επιτρέπει μια λίστα από αναφορές χωρισμένες με κενά. Το WebRatio όπως προαναφέραμε είναι ένα εργαλείο το οποίο παίρνει ως είσοδο WebML μοντελοποιήσεις και παράγει την πραγματική υλοποίηση μιας Web εφαρμογής. Η αρχιτεκτονική του αποτελείται από δύο επίπεδα: το επίπεδο σχεδιασμού(design layer) το οποίο και παρέχει λειτουργίες για τον καθορισμό των γραφικών μονάδων της εφαρμογής και το επίπεδο εκτέλεσης-χρόνου (run-time layer) που υλοποιεί τις βασικές υπηρεσίες για την εκτέλεση WebML μονάδων πάνω από ένα τυποποιημένο πλαίσιο εργασίας για Web εφαρμογές.εσωτερικά το 43

44 WebRatio αυτό που κάνει είναι να μεταφράζει την γραφική αναπαράσταση των μονάδων της WebML σε μια XML μορφή (Εικόνα 36).Επίσης το ίδιο κάνει και για το ER της βάσης δεδομένων της εφαρμογής.στην συνέχεια θα παρουσιαστεί αυτή η XML αναπαράσταση σε μορφή DTD σχήματος για κάθε μονάδα. Εικόνα 53 Αρχιτεκτονική WebRatio Μοντέλο δεδομένων σε WebML XML Το μοντέλο δεδομένων περιέχει την αναπαράσταση της βάσης δεδομένων συνήθως σε ER μορφή.στην συνέχεια παρουσιάζεται ο DTD ορισμός για κάθε έννοια που περιλαμβάνεται στο μοντέλο των δεδομένων. Ιδιότητες: Χρησιμοποιούνται για την αναπαράσταση των χαρακτηριστικών που παρουσιάζουν τα αντικείμενα του πραγματικού κόσμου και τα οποία διαχειρίζεται η Web εφαρμογή.η XML σύνταξή τους είναι η: 44

45 Οι ιδιότητες μπορούν να έχουν παραγόμενες τιμές.αυτό συμβολίζεται και με την ιδιότητα value η οποία και περιέχει την έκφραση από την οποία παράγεται η τιμή. Οντότητες:Αποτελούν το βασικό στοιχείο της βάσης δεδομένων.κάθε οντότητα σχετίζεται με ένα σύνολο αντικειμένων του πραγματικού κόσμου των οποίων τα χαρακτηριστικά είναι οι ιδιότητες της οντότητας.η XML σύνταξή τους είναι η: Η ιδιότητα superentity αναφέρεται στην ISA σχέση που μπορεί να έχει μια οντότητα και στην υπερκλάση της. Συσχετίσεις: Οι συσχετίσεις αναπαριστούν τις σημοσιολογικές συνδέσεις ανάμεσα στις οντότητες.η WebML υποστηρίζει δυαδικές συσχετίσεις που δεν έχουν ιδιότητες και οι οποίες συνδέουν μόνο δύο οντότητες.οι ίδιες οντότητες μπορεί να συνδέονται από έναν αυθαίρετο αριθμό από συσχετίσεις με διαφορετικά IDs. 45

46 Εκτός από τις ID ιδιότητες η WebML προσφέρει επιπλέον προαιρετικές ιδιότητες στις οποίες και αναθέτονται ονόματα εύκολα αναγνώσιμα από τον άνθρωπο για την συσχέτιση καθώς και για τον ρόλο της.κάθε ρόλος συσχέτισης μπορεί να διακριθεί από την προαιρετική ιδιότητα rolename και κάθε συσχέτιση μπορεί να περιγραφεί καλύτερα από την προαιρετική ιδιότητα name.σύμφωνα με αυτήν την σύμβαση ένα CASE εργαλείο θα μπορούσε να χρησιμοποιήσει αυτές τις ιδιότητες για καλύτερη γραφική αναπαράσταση των συσχετίσεων Μοντέλο υπερκειμένου σε WebML XML Ο σκοπός του μοντέλου υπερκειμένου είναι ο ορισμός των κόμβων που συνθέτουν ένα υπερκείμενο.συγκεκριμένα το μοντέλο υπερκειμένου καθορίζει τις μονάδες πληροφορίας οι οποίες και είναι τα ατομικά στοιχεία τα οποία μπορεί να παρουσιάζονται σε μία ιστοσελίδα.στην συνέχεια παρουσιάζεται ο DTD ορισμός αυτών των μονάδων. Μονάδες δεδομένων: Μία μονάδα δεδομένων παρουσιάζει ένα αντικείμενο μιας συγκεκριμένης οντότητας. Από τον ορισμό φαίνεται ότι ένα στοιχείο μονάδας δεδομένων (τύπος DATAUNIT) περιέχει προαιρετικά έναν επιλογέα.η έκφραση (DISPLAYALL DISPLAYATTRIBUTE*) σημαίνει ότι το στοιχείο περιέχει είτε ένα υποστοιχείο DISPLAYALL,το οποίο σημαίνει ότι πρέπει να αναπαρισταθούν όλες οι ιδιότητες του αντικειμένου στην ιστοσελίδα, είτε μια ακολουθία από DISPLAYATTRIBUTE που προσδιορίζουν τις προβαλλόμενες ιδιότητες.στην συνέχεια μπορεί να ακολουθούν μηδέν ή περισσότερα υποστοιχεία τύπου LINK τα οποία και αναπαριστούν τους εξερχόμενους συνδέσμους που έχουν ως αρχή την συγκεκριμένη μονάδα.το υποστοιχείο PROPERTY δεν χρησιμοποιείται. 46

47 Εκτός από τον ορισμό των υποστοιχείων ενός στοιχείου τύπου DATAUNIT ορίζονται και οι ιδιότητές του.αυτές είναι οι id, name, entity.η ιδιότητα id είναι το όνομα της μονάδας πρέπει να καθοριστεί αναγκαστικά ενώ οι ιδιότητες name και entity προσδιορίζουν μια περιγραφή φιλική ως προς τον χρήστη και την οντότητα από την οποία αντλείται το αντικείμενο αντίστοιχα και είναι προαιρετικές. Στην συνέχεια ορίζονται τα στοιχεία DISPLAYALL και DISPLAYATTRIBUTE.Κανένα από τα δύο δεν περιέχει υποστοιχεία κάτι που υποδηλώνεται με την λέξη EMPTY.Το στοιχείο DISPLAYALL δεν περιέχει ούτε ιδιότητες.αντιθέτως το στοιχείο DISPLAYATTRIBUTE έχει την ιδιότητα attribute που είναι τύπου IDREF και αναφέρεται σε μια ιδιότητα του αντικειμένου.η attribute είναι υποχρεωτικό να καθοριστεί. Μονάδες πολλαπλών δεδομένων: Οι μονάδες πολλαπλών δεδομένων παρουσιάζουν μαζί πολλαπλά αντικείμενα της ίδιας οντότητας.συντακτικά μια μονάδα πολλαπλών δεδομένων αναπαριστάται από το στοιχείο MULTIDATAUNIT.Ο ορισμός της είναι: Το στοιχείο MULTIDATAUNIT περιέχει προαιρετικά έναν επιλογέα (υποστοιχείο SELECTOR),μηδέν ή περισσότερα υποστοιχεία DISPLAYATTRIBUTE (έχουν οριστεί προηγουμένως), μηδέν ή περισσότερα υποστοιχεία SORTATTRIBUTE και μηδέν ή περισσότερα υποστοιχεία LINK.Η ακολουθία από υποστοιχεία DISPLAYATTRIBUTE περιέχουν τις ιδιότητες των αντικειμένων που θα προβληθούν.η ακολουθία υποστοιχείων SORTATTRIBUTE προσδιορίζει τις ιδιότητες που χρησιμοποιούνται για την διάταξη των αντικειμένων. Οι ιδιότητες του στοιχείου MULTIDATAUNIT είναι οι: id, name, entity και distinct.το id είναι το όνομα της μονάδας πολλαπλών δεδομένων.το name είναι ένα όνομα φιλικό προς τον χρήστη και είναι προαιρετική ιδιότητα.η οντότητα από την οποία αντλούνται τα δεδομένα συμβολίζεται με την ιδιότητα entity.τέλος η distinct συμβολίζει αν θα προβάλλονται αντικείμενα μόνο με διαφορετικές τιμές ή όχι.η distinct παίρνει δύο μόνο προκαθορισμένες τιμές yes ή no με την τιμή no ως τιμή εξ ορισμού. 47

48 Μονάδες ευρετηρίου: Οι μονάδες ευρετηρίου παρουσιάζουν πολλαπλά αντικείμενα μιας οντότητας με την μορφή λίστας όπου κάθε αντικείμενο κατέχει μια θέση στην λίστα.μια μονάδα ευρετηρίου στην XML μορφή κειμένου αναπαρίσταται με το στοιχείο INDEXUNIT.O ορισμός του στοιχείου είναι: Το στοιχείο περιέχει προαιρετικά έναν επιλογέα (SELECTOR),μηδέν ή περισσότερα υποστοιχεία DISPLAYATTRIBUTE, μηδέν ή περισσότερα υποστοιχεία SORTATTRIBUTE και μηδέν ή περισσότερα υποστοιχεία LINK (το στοιχείο PROPERTY δεν χρησιμοποιείται).το υποστοιχείο DISPLAYATTRIBUTE χρησιμοποιείται για την επιλογή των ιδιοτήτων που θα προβληθούν στο ευρετήριο.το υποστοιχείο SORTATTRIBUTE χρησιμοποιείται για την επιλογή των ιδιοτήτων διάταξης των αντικειμένων του ευρετηρίου. Οι ιδιότητες του στοιχείου INDEXUNIT είναι οι: id,name,entity,distinct.η έννοια τους είναι παρόμοια με αυτήν των ιδιοτήτων του MULTIDATAUNIT. Ιεραρχικά ευρετήρια και ευρετήρια πολλαπλών επιλογών: Οι μονάδες ευρετηρίων υπάρχουν σε δύο παραλλαγές που επιτρέπουν την επιλογή πολλαπλών αντικειμένων ταυτόχρονα ή στην ιεραρχική οργάνωση τους.η πρώτη παραλλαγή του ευρετηρίου είναι το ευρετήριο πολλαπλών επιλογών και επιτρέπει την ταυτόχρονη επιλογή πολλαπλών αντικειμένων του ευρετηρίου.το ευρετήριο πολλαπλών επιλογών αναπαρίσταται με το στοιχείο MULTICHOICEINDEXUNIT.Ο ορισμός του είναι: To καινούργιο υποστοιχείο που υπάρχει σε αυτόν τον ορισμό είναι το PRESELECTOR. Αυτό είναι προαιρετικό και περιέχει το σύνολο των αντικειμένων που είναι αρχικά επιλεγμένα στην μονάδα. 48

49 Η δεύτερη παραλλαγή του ευρετηρίου είναι το ιεραρχικό ευρετήριο.το ευρετήριο αυτό παρουσιάζει τα αντικείμενα οργανωμένα ως μια δομή δένδρου πολλαπλών επιπέδων.η ιεραρχία παρουσιάζεται ως μια ακολουθία από Ν οντότητες που συνδέονται από Ν-1 συσχετίσεις.μια ειδική περίπτωση ενός ιεραρχικού ευρετηρίου είναι αυτό που ορίζεται πάνω από μία οντότητα η οποία συσχετίζεται με τον εαυτό της.ο ορισμός του ιεραρχικού ευρετηρίου (στοιχείο HIERARCHICALINDEXUNIT) είναι: To καινούργιο υποστοιχείο που εισάγει ο ορισμός του HIERARCHICALINDEXUNIT είναι το HIERARCHICALINDEXLEVEL. Το υποστοιχείο αυτό ορίζει την περιοχή του 2 ου επιπέδου του ιεραρχικού ευρετηρίου.παραθέτεται ο ορισμός του και παρατηρείστε ότι μπορεί να περιέχει μια ακολουθία υποστοιχείων ίδιου τύπου (HIERARCHICALINDEXLEVEL) τα οποία και υποδηλώνουν τα περαιτέρω επίπεδα(3 ο,4 ο,5 ο κ.τ.λ.). Τα υπόλοιπα υποστοιχεία έχουν οριστεί προηγουμένως. Οι ιδιότητες του στοιχείου HIERARCHICALINDEXUNIT είναι οι: id,name,entity,recursive. Η ιδιότητα entity περιέχει την οντότητα από την οποία αντλούνται τα αντικείμενα του πρώτου επιπέδου.η ιδιότητα recursive ορίζει αν έχουμε τον ειδικό τύπο του ευρετηρίου στο οποίο η οντότητα συσχετίζεται με τον εαυτό της. Οι ιδιότητες του στοιχείου HIERARCHICALINDEXLEVEL είναι οι: id, name, entity, relationship. Η ιδιότητα entity περιέχει την οντότητα από την οποία προέρχονται τα αντικείμενα του συγκεκριμένου επιπέδου (2 ο ή μεγαλύτερο). Η ιδιότητα relationship περιέχει το όνομα της συσχέτισης της οντότητας του τωρινού επιπέδου με αυτής του αμέσως προηγούμενου. 49

50 Μονάδες Scroller: Οι μονάδες scroller παρέχουν εντολές για την ανακύλιση ή κατακύλιση των αντικειμένων ενός συνόλου.μια μονάδα scroller χρησιμοποιείται συνήθως σε συνδιασμό με μία μονάδα δεδομένων, με ένα ευρετήριο ή με μία μονάδα πολλαπλών δεδομένων.το στοιχείο XML που αναπαριστά την scroller μονάδα είναι το SCROLLERUNIT.Ο ορισμός του είναι ο εξής: Το στοιχείο SCROLLERUNIT περιέχει τα υποστοιχεία: SELECTOR (προαιρετικά), μια ακολουθία από μηδέν ή περισσότερα SORTATTRIBUTE και έναν εξωτερικό σύνδεσμο (LINK). Οι ιδιότητες του στοιχείου SCROLLERUNIT είναι οι: id, name, entity και blockfactor. Η ιδιότητα entity αναφέρεται στην οντότητα-πηγή που προέρχονται τα δεδομένα που προβάλλει ο scroller.η ιδιότητα blockfactor αναφέρεται στον αριθμό των αντικειμένων που γίνονται ανακύλιση/κατακύλιση ταυτόχρονα. Μονάδες εισόδου δεδομένων: Μία μονάδα εισόδου δεδομένων σχηματίζει μια μορφή πεδίων στα οποία ο χρήστης μπορεί να εισάγει δεδομένα τα οποία και αποστέλλονται στην Web εφαρμογή.τα δεδομένα χρησιμοποιούνται συνήθως στην εφαρμογή αναζητήσεων καθώς και στην είσοδο των λειτουργικών μονάδων.η μονάδα εισόδου δεδομένων αναπαρίσταται από το XML στοιχείο που λέγεται ENTRYUNIT.Ο ορισμός του στοιχείου καθώς και των σχετικών με αυτό υποστοιχείων δίνεται παρακάτω: 50

51 Ένα στοιχείο ENTRYUNIT αποτελείται από μια ακολουθία από FIELD υποστοιχεία, μια ακολουθία από SELECTIONFIELD υποστοιχεία και μια ακολουθία από LINK υποστοιχεία.τα υποστοιχεία FIELD και SELECTIONFIELD συμβολίζουν τα πεδία εισόδου.tα LINKS είναι οι σύνδεσμοι εξόδου της μονάδας. Οι ιδιότητες του ENTRYUNIT είναι οι: id και name. Το στοιχείο FIELD περιλαμβάνει μια ακολουθία υποστοιχείων τύπου SLOT και μια ακολουθία υποστοιχείων τύπου VALIDATIONRULE.To υποστοιχείο τύπου SLOT χρησιμοποιείται στα SELECTIONFIELDS ενώ το VALIDATIONRULE ελέγχει αν τα δεδομένα που εισάγονται στο πεδίο είναι έγκυρα. Οι ιδιότητες του FIELD είναι οι: id, name,preloaded,modifiable, hidden, type και contenttype. Τα FIELDS έχουν όνομα, τύπο (π.χ. string, text,integer, date κ.α.) καθώς και μπορούν να προσδιοριστούν για αυτά μια αρχική τιμή (ιδιότητα preloaded), αν θα μπορεί κάποιος να τροποποιήσει την αρχική τιμή (ιδιότητα modifiable) ή και μπορεί να μην παρουσιάζεται όταν πληκτρολογείται (ιδιότητα hidden). 51

52 To στοιχείο SLOT είναι ένα υποστοιχείο ενός πεδίου το οποίο χρησιμοποιείται για την αποστολή πολλαπλών αρχικών τιμών σε αυτό.για παράδειγμα για να αποσταλούν σε ένα πεδίο και το όνομα αλλά και το επώνυμο ενός καλλιτέχνη ορίζονται δύο υποστοιχεία τύπου SLOT σε ένα στοιχείο τύπου FIELD. Δεν περιέχει δικά του υποστοιχεία. Οι ιδιότητες του SLOT είναι οι: id, name, value, label και output. Οι ιδιότητες label και output χρησιμοποιούνται στα selectionfields. Η τιμή σε ένα label είναι αυτή που προβάλλεται στον χρήστη για να διευκολύνει την επιλογή του.η πραγματική τιμή όμως του πεδίου διαμορφώνεται με την συνένωση των τιμών που περιέχουν οι ιδιότητες output. Το στοιχείο VALIDATIONRULE περιέχει έναν προβλεπτή εγκυρότητας για ένα πεδίο. Μπορεί να περιλαμβάνει μια οποιαδήποτε λογική έκφραση η οποία χρησιμοποιεί το όνομα του πεδίου, έναν τελεστή που μπορεί να εφαρμοστεί στον τύπο δεδομένων του πεδίου και μια σταθερά.η ειδική λέξη-κλειδί notnull μπορεί να χρησιμοποιηθεί για να υποδηλώσει ότι ένα πεδίο πρέπει να συμπληρωθεί αναγκαστικά. Ιστοσελίδες: Μια μονάδα είναι το ελάχιστο στοιχείο που σχεδιάζει πληροφορία στην ιστοσελίδα.καμία ιστοσελίδα σε μια WebML εφαρμογή δεν μπορεί να περιέχει περιεχόμενο των οντοτήτων και των συσχετίσεων μεταξύ τους σε χαμηλότερο επίπεδο ανάλυσης από την μονάδα.για να κάνει την μοντελοποίηση της εφαρμογής να μοιάζει με την πραγματική της οργάνωση η WebML παρέχει την έννοια της ιστοσελίδας.η έννοια της WebML ιστοσελίδας ταυτίζεται με την πραγματική ιστοσελίδα της εφαρμογής.η ιστοσελίδα ορίζεται μέσω του XML στοιχείου με όνομα PAGE.Ο ορισμός του είναι ο: Το στοιχείο PAGE περιέχει ένα υποστοιχείο τύπου CONTENTUNITS, μια ακολουθία υποστοιχείων PAGE, μια ακολουθία υποστοιχείων ALTERNATIVE και μια ακολουθία υποστοιχείων τύπου LINK.Το υποστοιχείο CONTENTUNITS περιέχει όλες τις μονάδες περιεχομένου που προβάλλει η ιστοσελίδα.η ιστοσελίδα μπορεί να περιέχει μέσα στην δομή της και άλλες ιστοσελίδες (HTML frame) κάτι που φαίνεται από την ακολουθία των υποστοιχείων τύπου PAGE.Επίσης τα υποστοιχεία ALTERNATIVE 52

53 μπορούν να χρησιμοποιηθούν για τον ορισμό OR υποσελίδων.οι σελίδες αυτές έχουν παρουσιαστεί σε προηγούμενη παράγραφο. Οι ιδιότητες του στοιχείου PAGE είναι οι: id, name και landmark. H ιδιότητα landmark καθορίζει αν η ιστοσελίδα αυτή είναι προσβάσιμη από όλες τις ιστοσελίδες που ανήκουν στο ίδιο site view. Σύνδεσμοι: Οι μονάδες και οι ιστοσελίδες συνδέονται μεταξύ τους έτσι ώστε να σχηματίζουν ένα υπολογίσιμο μοντέλο υπερκειμένου.οι σύνδεσμοι επομένως είναι μια κατευθυνόμενη σύνδεση μεταξύ μονάδων ή μεταξύ ιστοσελίδων.το XML στοιχείο που αντιστοιχεί στην έννοια του συνδέσμου είναι το LINK.Ο ορισμός του είναι: Το στοιχείο LINK περιέχει μια ακολουθία από υποστοιχεία τύπου LINKPARAMETER τα οποία αναπαριστούν τις παραμέτρους του συνδέσμου.οι ιδιότητες του LINK είναι οι: id, name, to,type και newwindow. H ιδιότητα to αναφέρεται στην μονάδα ή ιστοσελίδα προορισμού του συνδέσμου.η ιδιότητα type αναφέρεται στον τύπο του συνδέσμου.οι τιμές που μπορεί να πάρει είναι οι normal, automatic και transport και αναφέρονται αντιστοίχως στους κανονικούς συνδέσμους, στους αυτόματους συνδέσμους και στους συνδέσμους μεταφοράς.αν ο προορισμός του 53

54 συνδέσμου βρίσκεται σε διαφορετική ιστοσελίδα τότε μέσω της ιδιότητας newwindow μπορούμε να προσδιορίσουμε αν θα ανοιχτεί νέο παράθυρο στον browser ή αν το συγκεκριμένο παράθυρο θα επανασχεδιαστεί με την ιστοσελίδα προορισμού. Το στοιχείο LINKPARAMETER δεν περιέχει υποστοιχεία.οι ιδιότητες του είναι οι: id, name, source, target, loopback, passing, sourcevalue, sourcelinkparameter,type και contenttype.h ιδιότητα passing συγκεκριμενοποιεί αν η παράμετρος που μεταφέρεται με τον σύνδεσμο σε μία μονάδα προορισμού μπορεί να μεταφερθεί περαιτέρω ως έξοδος στις επόμενες μονάδες.όταν μία μονάδα μεταφέρει επιπλέον ως έξοδο μια passing παράμετρο αυτή δεικτοποιείται με την ιδιότητα sourcelinkparameter. H sourcevalue ιδιότητα χρησιμοποιείται για να αναθέσει μία σταθερά ως τιμή στην παράμετρο. Η ιδιότητα loopback δεν χρησιμοποιείται. Οι επιλογείς αναπαριστώνται στην WebML XML με το στοιχείο SELECTOR. Ο ορισμός του είναι: Το στοιχείο SELECTOR περικλύει μία ή περισσότερες συνθήκες οι οποίες αναπαριστώνται με το υποστοιχείο SELECTORCONDITION.Δεν έχει ιδιότητες. Αντιθέτως το στοιχείο SELECTORCONDITION έχει τις ιδιότητες: id, name, relationship, attributes, predicate, value και type. Ολικές Παράμετροι: Η WebML προσφέρει τις ολικές μεταβλητές για την αποθήκευση πληροφορίας η οποία είναι διαθέσιμη σε όλες τις ιστοσελίδες ενός ή περισσοτέρων site views.μία ολική παράμετρος είναι ένα κομμάτι πληροφορίας το οποίο μπορεί να αποθηκευθεί ή και να ανακτηθεί ακολουθώντας έναν σύνδεσμο. Το XML στοιχείο που αναπαριστά τις ολικές μεταβλητές είναι το GLOBALPARAMETER.Οι λειτουργικές μονάδες που επιδρούν σε αυτό είναι οι getunit και setunit οι οποίες και συμβολίζονται αντίστοιχα από τα στοιχεία GETUNIT, SETUNIT.Οι ορισμοί των παραπάνω στοιχείων είναι: 54

55 To στοιχείο GLOBALPARAMETER δεν περιέχει υποστοιχεία.οι ιδιότητές του είναι οι: id, name, entity, value, type και duration.η ιδιότητα entity χρησιμοποιείται για να αποθηκεύσει τον τύπο της οντότητας αν η πληροφορία που έχει η ολική μεταβλητή είναι το OID ενός αντικειμένου.η ιδιότητα type περιέχει τον WebML τύπο της ολικής παραμέτρου αν δεν αποθηκεύει τιμή τύπου OID(π.χ. συμβολοσειρά, αριθμητική τιμή).η ιδιότητα value περιέχει μια σταθερά που δεν είναι τύπου OID και που χρησιμοποιείται ως η αρχική τιμή της ολικής παραμέτρου.η ιδιότητα duration υποδεικνύει τον χρόνο ζωής της τιμής της παραμέτρου.αν επιλεχθεί η τιμή session τότε μια διαφορετική τιμή αποθηκεύεται σε κάθε ξεχωριστή σύνοδο χρήστη.αν επιλεχθεί η τιμή application τότε υπάρχει μία κοινή τιμή για όλες τις συνόδους και η διάρκεια της συνυπάρχει με την διάρκεια της εφαρμογής. Το στοιχείο GETUNIT περιέχει ένα υποστοιχείο LINK.To LINK είναι ο μοναδικός σύνδεσμος εξόδου της λειτουργικής μονάδας και ο οποίος μεταφέρει την τιμή της ολικής παραμέτρου στην μονάδα που την χρειάζεται. Οι ιδιότητες του GETUNIT είναι οι: id, name και globalparameter.η ιδιότητα globalparameter αναφέρεται στην ολική μεταβλητή από την οποία παίρνει την τιμή η λειτουργική μονάδα GETUNIT. 55

56 Το στοιχείο SETUNIT δεν περιέχει υποστοιχεία.οι ιδιότητες του είναι οι: id, name και globalparameter.h ιδιότητα globalparameter αναφέρεται στην ολική μεταβλητή που την τιμή της τροποποιεί η λειτουργική μονάδα set. Site view: Ένα WebML υπερκείμενο διαμορφώνει μια εφαρμογή την οποία χρησιμοποιεί μια ομάδα χρηστων.το υπερκείμενο αυτό που προορίζεται για έναν τύπο χρηστών ονομάζεται site view.το site view αναπαρίσταται με το XML στοιχείο SITEVIEW.O ορισμός του είναι ο εξής: Το στοιχείο SITEVIEW περιέχει ως υποστοιχεία μια ακολουθία υποστοιχείων τύπου AREA, μια ακολουθία υποστοιχείων τύπου PAGE, ένα υποστοιχείο τύπου OPERATIONUNITS και μία ακολουθία υποστοιχείων τύπου GLOBALPARAMETER.Τα υποστοιχεία AREA προσδιορίζουν τις περιοχές μιας Web εφαρμογής.αυτές έχουν οριστεί σε προηγούμενη παράγραφο και η XML παρουσίαση τους αναλύεται πιο μετά.η ακολουθία υποστοιχείων PAGE περιέχει τις ιστοσελίδες του site view.το στοιχείο OPERATIONUNITS περικλύει όλες τις λειτουργικές μονάδες της εφαρμογής ενώ η ακολουθία στοιχείων τύπου GLOBALPARAMETER περιέχει όλες τις ολικές μεταβλητές της εφαρμογής.οι ιδιότητες του SITEVIEW είναι οι: id, name και homepage.η ιδιότητα homepage καθορίζει την αρχική σελίδα της εφαρμογής. Περιοχές: Οι περιοχές είναι αποθηκευτές ιστοσελίδων ή αναδρομικά άλλων υποπεριοχών και χρησιμοποιούνται στην ιεραρχική οργάνωση ενός site view. Οι πιο πολλές Web εφαρμογές εμφανίζουν μια οργάνωση σε περιοχές.η περιοχή αναπαρίσταται με το AREA XML στοιχείο. Ο ορισμός του είναι ο: 56

57 To στοιχείο AREA περιέχει ως υποστοιχεία μια ακολουθία από υποπεριοχές (AREA*), μια ακολουθία από ιστοσελίδες (PAGES*) και ένα υποστοιχείο τύπου OPERATIONUNITS που περικλύει και τις λειτουργικές μονάδες της περιοχής. Οι ιδιότητες του AREA είναι οι: id, name, landmark, defaultpage και defaultarea. H ιδιότητα landmark υποδεικνύει αν η περιοχή είναι τύπου landmark δηλαδή αν είναι προσβάσιμη από όλες τις άλλες περιοχές ή ιστοσελίδες που βρίσκονται στο ίδιο ιεραρχικό επίπεδο. Οι ιδιότητες defaultpage και defaultarea αναφέρονται στην εξ ορισμού υποπεριοχή ή ιστοσελίδα που προβάλλεται μόλις κάποιος εισέρθει στην συγκεκριμένη περιοχή. Nested (Φωλιασμένες) ιστοσελίδες: Σε πολλές εφαρμογές οι ιστοσελίδες χωρίζονται σε υπο-ιστοσελίδες οι οποίες και διαχειρίζονται ανεξάρτητες μονάδες περιεχομένου. Μια ιστοσελίδα μπορεί να περιέχει μονάδες περιεχομένου ή άλλες ιστοσελίδες.οι φωλιασμένες ιστοσελίδες μπορούν να συνυπάρχουν με δύο μορφές: 1) με την AND μορφή (προβάλλονται ταυτόχρονα) ή 2) με την OR μορφή (προβάλλεται μία ιστοσελίδα κάθε φορά από ένα σύνολο ιστοσελίδων). Η AND μορφή υπονοείται όταν ένα στοιχείο τύπου PAGE περιέχει ένα άλλο ή περισσότερα στοιχεία τύπου PAGE.Για να σχηματιστεί η ΟR μορφή χρησιμοποιείται το υποστοιχείο ALTERNATIVE.To στοιχείο αυτό περιέχει τις ιστοσελίδες που συμμετέχουν στην OR μορφή. Ο ορισμός του είναι ο: Απο τον ορισμό φαίνεται ότι πρέπει να περιέχει τουλάχιστον 2 υποστοιχεία τύπου PAGE (έκφραση (PAGE, PAGE+) ).Οι ιδιότητες του είναι οι: id, name, defaultpage. Η ιδιότητα defaultpage περιέχει την αρχική σελίδα που προβάλλεται στην OR μορφή (εκ των ιστοσελίδων που περικλύει). Στην συνέχεια παρουσιάζεται η XML μοντελοποίηση των λειτουργικών μονάδων της WebML. Μονάδες δημιουργίας αντικειμένων οντοτήτων: Η μονάδα αυτή επιτρέπει την δημιουργία ενός αντικειμένου οντότητας στην βάση δεδομένων της εφαρμογής.αναπαρίσταται με το CREATEUNIT XML στοιχείο. Ο ορισμός του είναι: 57

58 Το στοιχείο CREATEUNIT περιέχει μια ακολουθία υποστοιχείων τύπου LINK, μια ακολουθία υποστοιχείων τύπου OK-LINK και μια ακολουθία υποστοιχείων τύπου KO-LINK.Τα υποστοιχεία OK-LINK και KO-LINK αναπαριστούν αντίστοιχα τους OK και KO συνδέσμους η λειτουργία των οποίων έχει παρουσιαστεί σε προηγούμενη παράγραφο. Οι ιδιότητες του στοιχείου CREATEUNIT είναι οι: id, name και entity.η ιδιότητα entity αναπαριστά τον τύπο του αντικειμένου που πρόκειται να δημιουργηθεί. Μονάδες τροποποίησης αντικειμένων: Με τις μονάδες τροποποίησης αντικειμένων μπορεί κάποιος να αλλάξει τις τιμές των ιδιοτήτων ενός αντικειμένου μιας οντότητας.η μονάδα τροποποίησης αντικειμένων αναπαρίσταται από το XML στοιχείο MODIFYUNIT. Ο ορισμός του είναι ο: Τα υποστοιχεία που περιέχει είναι μια ακολουθία τύπου LINK, μια ακολουθία τύπου OK-LINK και μια ακολουθία τύπου KO-LINK.Οι ιδιότητες του στοιχείου MODIFYUNIT είναι οι: id, name και entity. Μονάδες διαγραφής αντικειμένων: Μια μονάδα διαγραφής αντικειμένων χρησιμοποιείται για την διαγραφή ενός αντικειμένου μιας οντότητας.η μονάδα διαγραφής αντικειμένων αναπαρίσταται από το XML στοιχείο DELETEUNIT.Ο ορισμός του στοιχείου είναι ο: 58

59 Τα υποστοιχεία του DELETEUNIT είναι: προαιρετικά ένας επιλογέας (SELECTOR), μια ακολουθία από LINK, μια ακολουθία από OK-LINK και μια ακολουθία από KO- LINK.Ο επιλογέας χρησιμοποιείται για τον προσδιορισμό του αντικειμένου που πρόκειται να διαγραφεί. Οι ιδιότητες του DELETEUNIT είναι οι: id, name και entity. Η σημασία τους είναι η ίδια όπως περιγράφηκε προηγουμένως. Μονάδες δημιουργίας συσχετίσεων: Η μονάδα αυτή χρησιμοποιείται στην δημιουργία ενός αντικειμένου συσχέτισης.αναφέρεται στον έναν ρόλο μιας συσχέτισης.το ΧΜL στοιχείο της είναι το CONNECTUNIT και ο ορισμός του είναι ο: To στοιχείο CONNECTUNIT περιλαμβάνει δύο επιλογείς οι οποίοι και προσδιορίζουν τα αντικείμενα που συμμετέχουν στην συσχέτιση της οντότητας-πηγή (SOURCESELECTOR) καθώς και της οντότητας προορισμού (TARGETSELECTOR).Για να γίνεται ξεκάθαρη διάκριση ανάμεσα στα δύο είδη αντικειμένων χρησιμοποιείται συνήθως και το όνομα της οντότητας ως πρόθεμα στο όνομα των αντικειμένων. Τα υπόλοιπα υποστοιχεία είναι οι προαιρετικές ακολουθίες από LINK,OK-LINK και KO- LINK. Οι ιδιότητες του CONNECTUNIT είναι οι: id, name και relationship. Η ιδιότητα relationship περιέχει την συσχέτιση της οποίας δημιουργείται ένα αντικείμενο (instance). 59

60 Μονάδες διαγραφής συσχετίσεων: Μια μονάδα διαγραφής συσχετίσεων χρησιμοποιείται στην διαγραφή ενός αντικειμένου (instance) συσχέτισης.αναπαρίσταται απο το XML στοιχείο DISCONNECTUNIT το οποίο ορίζεται ως: Το στοιχείο DISCONNECTUNIT περιέχει τα ακόλουθα υποστοιχεία: SOURCESELECTOR, TARGETSELECTOR, ακολουθία απο LINK, ακολουθία από OK- LINK και ακολουθία από KO-LINK.Oι λειτουργία τους είναι παρόμοια με την λειτουργία που παρουσιάζουν σε προηγούμενες μονάδες. Οι ιδιότητες του DISCONNECTUNIT είναι οι: id, name και relationship.η ιδιότητα περιέχει την συσχέτιση από την οποία θα διαγραφεί το αντικείμενο-συσχέτισης. Μονάδα σύνδεσης χρήστη: H λειτουργική μονάδα αυτή χρησιμοποιείται για την εισαγωγή ενός χρήστη στην εφαρμογή.αναπαρίσταται από το στοιχείο LOGINUNIT. Ο ορισμός του είναι ο: Μονάδα αποσύνδεσης χρήστη: Η λειτουργική μονάδα αποσύνδεσης χρήστη χρησιμοποιείται για την αποσύνδεση ενός χρήστη από την εφαρμογή. Αναπαρίσταται από το XML στοιχείο LOGOUTUNIT.Ο ορισμός του είναι ο: 60

61 Οι μονάδες σύνδεσης και αποσύνδεσης χρήστη δεν χρειάζεται να περιέχουν στον XML ορισμό τους OK-LINKS γιατί αν η λειτουργία εκτελεστεί με επιτυχία τότε ο χρήστης θα οδηγηθεί στο κατάλληλο site view και θα του προβληθεί η default ιστοσελίδα.αντιθέτως περιέχουν KO συνδέσμους οι οποίοι καθορίζουν το που θα οδηγηθεί ο χρήστης στο site view που βρίσκεται στην συγκεκριμένη στιγμή.μπορεί π.χ. να οδηγηθεί πάλι στην ιστοσελίδα η οποία περιέχει την φόρμα εισόδου χρήστη ή να οδηγηθεί σε μια σελίδα υπόδειξης σφάλματος. 61

62 ΚΕΦΑΛΑΙΟ 3 Ανάλυση του Joomla CMS 3.1 Εισαγωγή To Joomla είναι ένα CMS κάτι που σημαίνει ότι από την στιγμή που κάποιος στήσει ένα site μετά το μόνο που χρειάζεται να κάνει είναι να εισάγει το κείμενο και τις εικόνες των νέων άρθρων.το Joomla οργανώνει το περιεχόμενο,παρέχει τους μηχανισμούς αναζήτησής του, το προβάλλει και γενικά διαχειρίζεται την web εφαρμογή. Στην αρχή του παγκόσμιου ιστού οι ιστοσελίδες ήταν στατικές.δημιουργούνταν αποκλειστικά με την βοήθεια της HTML.Αυτό το είδος ιστοσελίδων ήταν ικανοποιητικό μόνο για μικρές Web εφαρμογές.έδωσε την δυνατότητα σε ανθρώπους να δημιουργήσουν την προσωπική τους ιστοσελίδα καθώς και τους επέτρεψε να προβάλλουν σε αυτήν εικόνες.όμως καθώς το διαδίκτυο μεγάλωνε το ίδιο έκαναν και οι ιστοσελίδες και ανακαλύφθηκε ένα έμφυτο πρόβλημα: Ο HTML κώδικας που ήταν υπεύθυνος για την αναπαράσταση της ιστοσελίδας στον πλοηγό (browser) ήταν ανακατεμένος με τα πραγματικά δεδομένα της ιστοσελίδας. Αυτή η ανάμιξη έκανε τελικά τις ιστοσελίδες δύσκολες στην συντήρηση και στην ενημέρωσή τους γιατί ο ιδιοκτήτης έπρεπε να εργαστεί και με τους δύο τύπους κώδικα (δεδομένα, HTML). Για να αντιμετωπίσουν αυτό το πρόβλημα οι σχεδιαστές ιστοσελίδων δημιούργησαν την CSS (Cascading Style Sheets).H CSS ήταν υπεύθυνη για την αναπαράσταση των δεδομένων σε μια ιστοσελίδα.παρολαυτά η σελίδα ήταν ακόμα γραμμένη σε HTML.Με την CSS οι λεπτομέρειες αναπαράστασης είχαν διαχωριστεί από την τυπική HTML μορφή,όπως είναι οι ετικέτες <html>, <head>, <body>.όμως ακόμα το περιεχόμενο της ιστοσελίδας βρισκόταν μέσα στον HTML κώδικα.ο ιδιοκτήτης έπρεπε να διαμορφώσει το περιεχόμενο βάζοντας του τις HTML ετικέτες του.με άλλα λόγια η προσθήκη της CSS διαχώρησε τις λεπτομέρειες αναπαράστασης από την υπόλοιπη σελίδα όμως δεν διαχώρησε το περιεχόμενο από την HTML. Αυτή η κατάσταση αποτελούσε πρόβλημα για ανθρώπους που δεν είχαν τις κατάλληλες γνώσεις και οι οποίοι δεν ήθελαν να περικλύουν το περιεχόμενο τους σε HTML ετικέτες.αυτό είναι λογικό αφού κάποιος που γράφει μια αναφορά για ένα βιβλίο δεν πρέπει να ασχολείται με λεπτομέρειες όπως αν έχει βάλει τις παραγράφους του ανάμεσα στα στοιχεία <p> και </p>. H βασική ιδέα ενός CMS συστήματος είναι ο διαχωρισμός, όσο γίνεται περισσότερο, του περιεχομένου από τον HTML κώδικα. Αυτό σημαίνει ότι δεν χρειάζεται πια να ενσωματώνονται από τον χρήστη στο περιεχόμενο HTML ετικέτες. Το CMS αναλαμβάνει να το κάνει αυτό.το μόνο που έχει να κάνει ο χρήστης είναι να γράψει το περιεχόμενο στον επεξεργαστή κειμένου που παρέχει το CMS. Στην συνέχεια το CMS προσθέτει την CSS και δημιουργεί τον τελικό HTML κώδικα της ιστοσελίδας. 62

63 Το CMS που χρησιμοποιείται περισσότερο είναι το Joomla. Ένας λόγος που κάνει το Joomla τόσο δημοφιλές είναι το ότι διατίθεται δωρεάν.άλλος λόγος είναι ότι είναι από τα πιο παλιά.όμως οι σημαντικότεροι λόγοι είναι η φήμη που έχει ότι λειτουργεί καλά καθώς και οι φανατικοί οπαδοί που έχει αποκτήσει κατά την διάρκεια ύπαρξής του.η βάση χρηστών που έχει δημιουργήσει σχηματίζουν μια ενεργή κοινότητα η οποία έχει δημιουργήσει χιλιάδες επεκτάσεις για αυτό.επίσης είναι διαθέσιμη προσφορά βοήθειας από τα forum ή με μορφή tutorials. Το Joomla επίσης είναι πολύ εύκολο ως προς την χρήση του και παρέχει λειτουργίες που κάνουν πολύ εύκολη την δημιουργία ενός επαγγελματικού site.η περίοδος εκμάθησης που απαιτεί είναι πολύ μικρή και οι τεχνικές γνώσεις ανύπαρκτες. Συνολικά τα πλεονεκτήματα που παρουσιάζει είναι τα: Μεγάλη και ενεργή βάση χρηστών Ευκολία χρήσης Ελάχιστη περίοδος εκμάθησης Καλοφτιαγμένο interface και πάνελ διαχείρισης Πλούσιες ικανότητες φορμαρίσματος (αναπαραστάσεις γραμματοσειρών) Χιλιάδες templates υπάρχουν για κατέβασμα από το διαδίκτυο Δυνατότητα αναζητήσεων πλήρους κειμένου Plug-ins για εμπορικές εφαρμογές όπως π.χ. χρέωση πιστωτικής κάρτας Δυνατότητα βελτιστοποίησης της εφαρμογής ως προς τις μηχανές αναζήτησης (Search Engine Optimization) Δυνατότητα έκδοσης περιεχομένου σε συγκεκριμένες ημερομηνίες,ώρες (scheduled publishing) Το Joomla χρειάζεται έναν web server για να λειτουργήσει. Στο σύστημα που χρησιμοποιώ έχω χρησιμοποιήσει το πακέτο xampp που περιέχει τον Apache web server,την PHP αλλά και την mysql σχεσιακή βάση δεδομένων.αυτά είναι και τα απαραίτητα που χρειάζεται ένα Joomla site για να λειτουργήσει.ο web server που αποθηκεύω το Joomla site βρίσκεται τοπικά στον ίδιο υπολογιστή και το χειρίζομαι σε αυτόν.επομένως για να έχω προσβασή στο site αρκεί να πληκτρολογήσω στον browser site_name, όπου στην θέση του site name τοποθετείται το όνομα της web εφαρμογής.το site βρίσκεται αποθηκευμένο σε έναν φάκελο στο path xampp/htdocs/ site_name. Το όνομα του φακέλου είναι και το όνομα του site και χρησιμοποιείται στο URL του.έστω ότι το site μας ονομάζεται testsite.για να δημιουργηθεί αυτό το site με την βοήθεια του joomla CMS τότε πρέπει να κατεβάσουμε από το internet μια έκδοση του και να κάνουμε extract το 63

64 συμπιεσμένο αρχείο στον συγκεκριμένο φάκελο.στην προκειμένη περίπτωση χρησιμοποιείται το αρχείο Joomla_ Stable-Full_Package.zip. Αρχικά πρέπει να γίνει η εγκατάσταση του Joomla.Άμα γραφτεί στον browser το URL τότε εμφανίζεται η σελίδα εγκατάστασης. Εικόνα 54 Εγκατάσταση Joomla Η εγκατάσταση χωρίζεται σε διάφορα βήματα.αρχικά επιλέγεται η γλώσσα του οδηγού εγκατάστασης (υποστηρίζει ελληνικα).στην συνέχεια εμφανίζονται τα αποτελέσματα του ελέγχου διάφορων στοιχείων του συστήματος.η εικόνα είναι η παρακάτω: 64

65 Εικόνα 55 Εγκατάσταση Joomla 2 Ένα σημαντικό βήμα της εγκατάστασης είναι η σύνδεση του Joomla με την MySQL βάση δεδομένων. Εικόνα 56 Εγκατάσταση Joomla 3 65

66 Πρέπει να δωθούν τα παρακάτω στοιχεία: Ο τύπος της βάσης δεδομένων (στην συγκεκριμένη περίπτωση mysql) To όνομα του Host (localhost σε εμάς) Όνομα χρήστη Κωδικός χρήστη Όνομα της βάσης δεδομένων Το επόμενο βήμα διαμορφώνει τον FTP. Στα Windows συστήματα συνήθως δεν χρειάζεται να καθοριστεί.η παρακάτω εικόνα δείχνει την σελίδα διαμόρφωσης του FTP: Εικόνα 57 Εγκατάσταση Joomla 4 Στην συνέχεια βρίσκεται η κύρια διαμόρφωση του Joomla. Η σελίδα κύριας διαμόρφωσης είναι η: 66

67 Εικόνα 58 Εγκατάσταση Joomla 5 Τα στοιχεία που καθορίζονται σε αυτήν την σελίδα είναι: Το όνομα του νέου Joomla site H διεύθυνση του administrator Ο κωδικός του administrator (προαιρετικά) Υπάρχει η δυνατότητα δημιουργίας ενός site δείγματος Στο συγκεκριμένο site έχω ενεργοποιήσει την τελευταία δυνατότητα.ουσιαστικά το site που αναλύεται βασίζεται στο μεγαλύτερό του μέρος στο site-δείγμα. Τώρα έχει εγκατασταθεί το Joomla site με επιτυχία.πρέπει όμως πριν χρησιμοποιηθεί,να διαγραφεί ο φάκελος installation που βρίσκεται στο path xampp/htdocs/installation.για να χρησιμοποιηθεί το site απλά πληκτρολογώ το URL στον browser. 67

68 To site-δείγμα που έχει δημιουργηθεί είναι το: Εικόνα 59 Αρχική σελίδα Στην εικόνα εμφανίζεται η αρχική σελίδα της web εφαρμογής που ονομάζεται frontpage. Στην frontpage υπάρχει μια πληθώρα από menu.tα menu είναι πολύ χρήσιμα στo Joomla.Κάποιο περιεχόμενο για να εκδωθεί θα πρέπει να συνδεθεί με ένα menu στοιχείο και ο τρόπος που έχει διαμορφωθεί το menu καθορίζει επίσης και τον τρόπο προβολής του περιεχομένου. Τα menu που φαίνονται είναι τα: Top menu: Είναι η οριζόντια μπάρα που βρίσκεται στην κορυφή της σελίδας και περιέχει τα στοιχεία About Joomla Features News The Community Main menu: To menu αυτό βρίσκεται στο αριστερό μέρος της σελίδας και περιέχει τα στοιχεία Home Joomla! Overview Joomla! License 68

69 More about Joomla! FAQ The News Web Links News Feeds Resources: To menu αυτό βρίσκεται κάτω από το main menu και περιέχει τα στοιχεία Joomla! Home Joomla! Forums Joomla! Help OSM Home Administrator H frontpage χωρίζεται σε διάφορα τμήματα και μερικά από αυτά είναι τα: Latest News, Popular και Polls. Aυτά τα τμήματα όπως και τα Menu που παρουσιάστηκαν προηγουμένως είναι Joomla modules. Ένα Joomla site χωρίζεται σε δύο τμήματα : το front end και το back end.το front end αποτελεί το κυρίως site που σερφάρουν οι επισκέπτες και που ανεβαίνει το περιεχόμενο.το back end χρησιμοποιείται για την διαχείριση του front end (π.χ. ποια modules θα παρουσιάζονται σε αυτό).πρόσβαση στο back end έχουν μόνο οι διαχειριστές.η κεντρική σελίδα του back end είναι η: 69

70 Εικόνα 60 Joomla backend Στην συγκεκριμένη εργασία αναλύεται μόνο το front end ενός Joomla site. H frontpage μαζί με τον διαχωρισμό σε modules φαίνεται στην επόμενη εικόνα: 70

71 Εικόνα 61 Joomla modules Το κεντρικό κείμενο της frontpage είναι ένα άρθρο (article).tα άρθρα δεν παρουσιάζονται σε modules αλλά σε components.μπορεί κάποιος admin να διαχειριστεί τα άρθρα με την βοήθεια του διαχειριστή άρθρων που βρίσκεται στο back end του Joomla site. Το Joomla υποστηρίζει πολλά είδη χρηστών της εφαρμογής.αυτοί διαχωρίζονται στους χρήστες που έχουν πρόσβαση μόνο στο front end και σε αυτούς που έχουν πρόσβαση και στο back end.οι τύποι χρηστών του front end είναι οι(σε αυξανόμενη σειρά δυνατοτήτων πρόσβασης): Public: Είναι οι συνηθισμένοι επισκέπτες του site (web surfers) Registered: Είναι επισκέπτες που έχουν την δυνατότητα να εισέλθουν στο site μέσω μιας φόρμας εισόδου. Author: Είναι οι χρήστες που έχουν την δυνατότητα να υποβάλλουν άρθρα. Editor: Είναι οι χρήστες που μπορούν να υποβάλλουν αλλά και να τροποποιήσουν κείμενα. Publisher: Είναι οι χρήστες που μπορούν να επιλέξουν τα κείμενα που θα εκδωθούν στην εφαρμογή. Με τους τύπους χρήστη Author, Editor και Publisher το Joomla επιτρέπει την αλληλεπίδραση των χρηστών αλλά και την προσφορά τους στην εφαρμογή. Συγκεκριμένα οι χρήστες τύπου Author μπορούν να υποβάλλουν περιεχόμενο στην 71

72 εφαρμογή,οι χρήστες τύπου Editor μπορούν επιπλέον να τροποποιήσουν περιεχόμενο ενώ οι χρήστες τύπου Publisher μπορούν να σημαδέψουν άρθρα που πρέπει να εκδωθούν στην εφαρμογή.όλες αυτές οι λειτουργίες των συγκεκριμένων τύπων χρηστών γίνονται στο front end.ο χρήστης αρχικά εισάγεται στην εφαρμογή μέσω μιας φόρμας εισαγωγής (login) και έτσι το σύστημα αναγνωρίζει τον τύπο χρήστη που ανήκει. Οι Authors, Editors και Publishers βλέπουν μικρά εικονίδια πάνω από τα άρθρα τα οποία και τους συνδέουν με τις λειτουργίες που μπορούν να πράξουν.συγκεκριμένα οι Publishers αυτό που κάνουν είναι να σημαδεύουν τα άρθρα που πρέπει να εκδωθούν.την τελική έγκριση την δίνουν οι διαχειριστές. Οι τύποι χρηστών του back end είναι οι: Manager: Χρήστης που έχει δυνατότητα να εισέλθει στο back end Administrator: Έχει περισσότερα προνόμια από τον Manager Super Administrator: Βρίσκεται στην κορυφή της ιεραρχίας και έχει όλα τα προνόμια. Για να αποκτήσει κάποιος διαχειριστής πρόσβαση στο back end πρέπει να βάλει στον πλοηγό το URL θα του προβληθεί η φόρμα εισόδου για τους διαχειριστές η οποία φαίνεται παρακάτω: Εικόνα 62 Administrator login Ο διαχειριστής εισάγει το όνομα χρήστη και τον κωδικό του και εισάγεται στο back end αν είναι σωστά. 72

73 Όπως αναφέρθηκε προηγουμένως το κύριο συστατικό μιας Joomla εφαρμογής είναι τα modules. Υπάρχουν δύο σύνολα modules: το πρώτο σύνολο αναφέρεται στα front end modules (αυτά που προβάλλονται στο front end) και το δεύτερο σύνολο στα back end modules.στην συγκεκριμένη εργασία μας ενδιαφέρουν μόνο τα front end modules αφού και η ανάλυση γίνεται στο front end.στην συνέχεια ο όρος modules αναφέρεται μόνο στα front end modules. Εξ αρχής το Joomla υποστηρίζει 25 modules, αυτά είναι: Tα menu είναι ένας ειδικός τύπος module. Από τα προηγούμενα modules τα menu είναι τα: Main menu User menu Top menu Resources Example Pages Key Concepts 73

74 Tα menu είναι πολύ χρήσιμα στην Joomla εφαρμογή και αυτό γιατί κανένα άρθρο δεν μπορεί να προβληθεί σε αυτήν αν δεν συνδεθεί με ένα στοιχείο menu.tα menu μπορούν να έχουν και ιεραρχική δομή και επομένως ένα στοιχείο μπορεί να περιλαμβάνει και υποστοιχεία.το στοιχείο menu εκτός του ότι καθορίζει ποιο άρθρο της εφαρμογής θα προβληθεί, αν ακολουθηθεί ο αντίστοιχος σύνδεσμος, καθορίζει και την διαμόρφωση που αυτό θα έχει στην σελίδα.το Joomla στην πραγματικότητα δεν αποθηκεύει τις σελίδες στην βάση δεδομένων του αλλά μόνο τα άρθρα και φτιάχνει δυναμικά την σελίδα.ενσωματώνοντας εκτός του id του άρθρου και μερικές μεταβλητές φορμαρίσματος στον σύνδεσμο μπορεί έτσι να σχεδιάσει την σελίδα που αναφέρεται το στοιχείο.tα menu στοιχεία καθορίζουν και τα modules της σελίδας που συνδέουν.ένα module μπορεί να εμφανίζεται οπουδήποτε στην εφαρμογή και αυτό καθορίζεται μέσω του διαχειριστή των modules ο οποίος και το συνδέει με κάποια στοιχεία menu.τα άρθρα και modules που προβάλλονται στην frontpage ανήκουν στο στοιχείο Home. Tα άρθρα στo Joomla χωρίζονται σε κατηγορίες (categories) και σε τομείς (sections). Ένας τομέας θα μπορούσε να παρομοιαστεί με έναν κατάλογο φακέλων, μία κατηγορία με έναν φάκελο και ένα άρθρο με ένα έγγραφο ενός φακέλου.επομένως ένας τομέας περιέχει κατηγορίες και μία κατηγορία περιέχει άρθρα.κατά την δημιουργία ενός άρθρου μπορεί να προσδιοριστούν ο τομέας και η κατηγορία που αυτό ανήκει.αυτή η διαβάθμιση είναι πολύ χρήσιμη όταν η Joomla εφαρμογή περιέχει πολλά άρθρα.διευκολύνεται η διαχείρησή τους. Επίσης η πλοήγηση της εφαρμογής γίνεται πιο εύκολη για έναν χρήστη αφού μπορούν να χρησιμοποιηθούν κάποια στοιχεία menu που να δείχνουν σε συγκεκριμένο τομέα ή κατηγορία και να εμφανίζονται έτσι ομαδοποιημένα τα άρθρα που τον ενδιαφέρουν. Μερικά άρθρα δεν ανήκουν σε καμία κατηγορία / τομέα.αυτά στο Joomla ονομάζονται Uncategorized και θα μπορούσαν να είναι άρθρα όπως π.χ. Privacy Policy.To Joomla προτείνει να υπάρχουν λίγα άρθρα τέτοιου τύπου και αυτά να είναι άρθρα που δεν σχετίζονται με άλλες σελίδες. Tα στοιχεία μιας εφαρμογής Joomla ανήκουν σε τρεις γενικές κατηγορίες: τα components, τα modules και τα plugins. Η διάκριση της γενικής κατηγορίας που ανήκει ένα στοιχείο δεν είναι εύκολη καθώς παρουσιάζουν πολλές ομοιότητες. Οι κυριότερες διαφορές ενός module και ενός component είναι οι εξής: Τα modules συνήθως παρουσιάζουν το περιεχόμενο τους στην περιφέρεια μιας σελίδας.η frontpage π.χ. περιλαμβάνει συνήθως πολλά modules αλλά ένα component που είναι τα άρθρα της κεντρικής σελίδας. 74

75 Τα modules δέχονται μικρή ή καθόλου είσοδο δεδομένων σε αντίθεση με τα components. Ένα τυπικό module είναι μόνο για ανάγνωση (π.χ. το Who s online module) ή δέχεται μηδαμινή είσοδο δεδομένων (π.χ. το Poll module). Ένα component δέχεται διάφορα είδη εισόδου δεδομένων όπως π.χ. η υποβολή ενός άρθρου ή τα σχόλια σε ένα forum. Τα modules έχουν ένα απλό εργαλείο διαχείρισης. Η διαχείριση ενός module επιτυγχάνεται με τον Module Manager ο οποίος τυπικά παρέχει λίγες βασικές παραμέτρους που καθορίζουν π.χ. το που θα προβάλλεται το module στην σελίδα. Ένα component, από την άλλη, μπορεί να διαθέτει μια περίπλοκη διεπαφή διαχείρισης η οποία να περιέχει πολλά tabs. Tα modules τείνουν να είναι μικρότερα σε μέγεθος από τα components. Tα components συνήθως πραγματώνουν πιο πολύπλοκες εργασίες από τα modules. Τα modules συνήθως εκτελούν συγκεκριμένες λειτουργίες,π.χ. η εμφάνιση των χρηστών που επισκέπτονται την εφαρμογή την συγκεκριμένη χρονική στιγμή.τα components εκτελούν πιο γενικές λειτουργίες, π.χ. η προβολή των άρθρων και βρίσκονται στο κεντρικό τμήμα μιας σελίδας.μοιάζουν με ένθετες ιστοσελίδες οι οποίες προβάλλουν περιεχόμενο.σε αντίθεση τα modules εμφανίζονται σε πολλές σελίδες της εφαρμογής και είναι ανεξάρτητα του περιεχομένου τους. Τα components και τα modules μπορούν να συνεργάζονται. Ένα παράδειγμα είναι το search module το οποίο δέχεται την είσοδο του χρήστη και χρησιμοποιεί ένα component για την προβολή των αποτελεσμάτων. Τα plugins είναι αυτά που εκτελούν τις πιο πολύπλοκες λειτουργίες. Τα plugins συνήθως λειτουργούν και με τα δεδομένα που στέλνει ένας χρήστης στο Joomla αλλά και με τα δεδομένα που στέλνει το Joomla στους χρήστες.ένα παράδειγμα ενός plugin είναι ένας WYSIWYG (What You See Is What You Get) επεξεργαστής κειμένου o οποίος και δέχεται τα δεδομένα των χρηστών (καθώς επεξεργάζονται το κείμενο) αλλά και τα στέλνει στο Joomla.Tα plugins μπορούν να λειτουργούν είτε στο front-end είτε στο back-end. Μερικά back end plugins, π.χ. αυτά που χρησιμοποιούνται για online αγορές, έχουν πάρα πολύ περίπλοκες διεπαφές διαχείρισης. 3.2 H βάση δεδομένων μιας εφαρμογής Joomla Το Joomla ανεξαρτήτως εφαρμογής δημιουργεί πάντα την ίδια βάση δεδομένων. Η βάση δεδομένων αποθηκεύει τις οντότητες τις οποίες το Joomla χρησιμοποιεί κατά 75

76 την δυναμική σχεδίαση των ιστοσελίδων.το διάγραμμα οντοτήτων-συσχετίσεων του Joomla 1.5 είναι το: Εικόνα 63 Η βάση δεδομένων του Joomla Όπως φαίνεται από το σχήμα το διάγραμμα οντοτήτων-συσχετίσεων του Joomla χωρίζεται σε διάφορες περιοχές όπου η κάθε μία αναφέρεται και σε διαφορετικό τύπο στοιχείων του Joomla.Οι περιοχές περιέχουν οντότητες που 76

77 χρησιμοποιούνται για τον σχηματισμό και την αποθήκευση των στοιχείων του συγκεκριμένου τύπου.οι περιοχές αλλά και γενικά οι οντότητες συνδέονται με δύο τύπους συσχετίσεων, ένα προς ένα και N προς ένα.οι περιοχές αυτές είναι οι: Content Components, modules και plugins Templates Menu Components Logs και stats User και access control Η περιοχή Content περιέχει τις οντότητες που χρησιμοποιούνται για την αποθήκευση των άρθρων, των κατηγοριών και των τομέων.οι οντότητες είναι οι: jos_content: Είναι η οντότητα που αποθηκεύει τα άρθρα του Joomla. jos_content_frontpage: Η οντότητα αυτή χρησιμοποιείται για να υποδείξει ποια άρθρα θα προβάλλονται στην frontpage. jos_content_rating: Περιέχει πληροφορίες βαθμολόγησης για τα άρθρα. Κάθε άρθρο έχει την δικιά του μοναδική βαθμολογία γι αυτό και συνδέεται με την ένα προς ένα συσχέτιση με την οντότητα jos_content. jos_categories: Περιέχει τις κατηγορίες της Joomla εφαρμογής. Μια κατηγορία περιέχει πολλά άρθρα ενώ ένα άρθρο ανήκει σε μία κατηγορία. Άρα συνδέεται N προς ένα με την οντότητα jos_content. jos_sections: Περιέχει τους τομείς της Joomla εφαρμογής. Ένας τομέας περιέχει πολλές κατηγορίες ενώ μια κατηγορία ανήκει σε έναν τομέα. Οπότε συνδέεται N προς ένα με την jos_categories. Το ίδιο ισχύει και για τα άρθρα οπότε η jos_sections συνδέεται επίσης Ν προς ένα με την jos_content. H περιοχή components, modules και plugins περιέχει πληροφορίες για τα modules, τα components και τα plugins. Οι οντότητες που περιέχει είναι οι: jos_modules: Είναι η οντότητα που αποθηκεύει τα modules του Joomla. jos_modules_menu: Η οντότητα αυτή υλοποιεί την Ν προς Ν συσχέτιση που υπάρχει ανάμεσα σε μία module και μία menu οντότητα. Έχει περιγραφεί και προηγουμένως ότι τα menu είναι και αυτά ένα ειδικού τύπου module. Άρα ένα menu αποθηκεύει πληροφορίες και στην module οντότητα (η οντότητα που αποθηκεύει ένα menu περιγράφεται στην συνέχεια). jos_plugins: Περιλαμβάνει τα plugins της Joomla εφαρμογής. Δεν συσχετίζεται με καμία άλλη οντότητα. 77

78 jos_components: Περιλαμβάνει τα components μιας Joomla εφαρμογής. Η οντότητα αυτή συσχετίζεται με τον εαυτό της (ένα component μπορεί να έχει ένα πατρικό component) με μία ένα προς Ν σχέση.επιπλέον συνδέεται και με την οντότητα jos_menu με μία σχέση ένα προς Ν.Το τελευταίο συμβαίνει γιατί κάθε στοιχείο menu αντιστοιχεί και σε ένα component (π.χ. το άρθρο που προβάλλεται στην σελίδα που συνδέει το στοιχείο). Η περιοχή templates περιέχει πληροφορίες σχετικά με τα templates του Joomla. Templates είναι ο τρόπος αναπαράστασης των στοιχείων του Joomla στην σελίδα. Παρέχονται ως ένα σύνολο από CSS αρχεία.περιλαμβάνει τις οντότητες: jos_templates_position: Παρέχει την διαδρομή που είναι αποθηκευμένο ένα template καθώς και μια περιγραφή του. jos_templates_menu: Κάθε στοιχείο menu, όπως είπαμε και προηγουμένως, εκτός από το component καθορίζει και τον τρόπο παρουσίασης της σελίδας.η οντότητα αυτή επιτυγχάνει αυτήν την λειτουργία αφού συσχετίζεται 1 προς Ν με την jos_menu. H περιοχή menu περιλαμβάνει τα menu που χρησιμοποιεί μια εφαρμογή Joomla. Περιέχει τις οντότητες: jos_menu: Η οντότητα αυτή αποθηκεύει όλα τα στοιχεία menu μιας εφαρμογής Joomla.Έχει 5 συσχετίσεις : με τον εαυτό της, με την jos_poll_menu, με την jos_templates_menu, με την jos_modules_menu και με την jos_components.h συσχέτιση με τον εαυτό της σηματοδοτεί την δημιουργία ιεραρχικών menu.κάθε στοιχείο menu μπορεί να έχει ένα πατρικό στοιχείο.επίσης τα menu στοιχεία συσχετίζονται και με τα poll modules καθώς αυτά αποθηκεύονται ξεχωριστά από τα υπόλοιπα modules. jos_menu_types: H οντότητα αυτή αποθηκεύει πληροφορίες για ολόκληρα τα menu.δείχνει ουσιαστικά πόσα διαφορετικά menu διαθέτει η εφαρμογή. Η περιοχή logs και stats δεν χρησιμοποιείται στην ανάλυση της Joomla εφαρμογής που θα γίνει παρακάτω και περιέχει τις οντότητες: jos_stats_agents jos_core_log_searches jos_core_log_items Η περιοχή components περιλαμβάνει κυρίως τα components του Joomla (εκτός των άρθρων) αλλά και τις οντότητες σχετικά με τα polls.oι οντότητες που περιλαμβάνει είναι οι: 78

79 jos_weblinks: Η οντότητα αυτή περιλαμβάνει τα weblinks της Joomla εφαρμογής.τα links αυτά χρησιμοποιούνται για την διασύνδεση της εφαρμογής με εξωτερικές ιστοσελίδες.έχει μια συσχέτιση ένα προς Ν με την οντότητα jos_categories αφού κάθε weblink ανήκει σε μια κατηγορία. jos_messages: Αποθηκεύει τα μηνύματα που ανταλλάσουν οι χρήστες μιας εφαρμογής Joomla. Έχει μια συσχέτιση Ν προς ένα με την jos_users αφού κάθε χρήστης μπορεί να έχει πολλά μηνύματα. jos_messages_cfg jos_newsfeeds: Περιλαμβάνει τα newsfeeds της Joomla εφαρμογής. Συσχετίζεται Ν προς ένα με την οντότητα jos_categories αφού κάθε newsfeed ανήκει και σε μια κατηγορία. jos_contact_details: Περιλαμβάνει τις πληροφορίες επικοινωνίας που έχει ένας χρήστης στην Joomla εφαρμογή.συσχετίζεται (Ν προς ένα) με τις οντότητες jos_categories και jos_users. jos_polls: Περιλαμβάνει τα poll μιας Joomla εφαρμογής.συσχετίζεται (ένα προς Ν) με τις jos_poll_date, jos_poll_data και jos_poll_menu. jos_poll_date: Περιλαμβάνει τις χρονολογικές πληροφορίες ενός poll. Συσχετίζεται με τα jos_polls και jos_poll_data. jos_poll_menu: Είναι η οντότητα διασύνδεσης της συσχέτισης Ν προς Ν που εμφανίζουν οι οντότητες jos_polls και jos_menu.ένα poll όπως και κάθε module συσχετίζεται με ένα στοιχείο menu. jos_poll_data: Αποθηκεύει τις επιλογές που προβάλλει ένα poll καθώς και τον αριθμό που τις έχουν διαλέξει.συσχετίζεται με τις οντότητες jos_polls και jos_poll_date. jos_banner: Περιέχει τις διαφημίσεις που προβάλλει η Joomla εφαρμογή.οι διαφημίσεις αυτές μπορεί να έχουν μορφή κειμένου ή μορφή εικόνας. Συσχετίζεται με την οντότητα jos_bannerclient. jos_bannerclient: Περιέχει τους διαφημιζόμενους της εφαρμογής. Συσχετίζεται ένα προς Ν με την jos_banner αφού μπορεί να διαφημίζεται σε διαφορετικές διαφημίσεις. Επίσης συσχετίζεται και με την jos_bannerfinish. jos_bannerfinish: Περιλαμβάνει τους χρονικούς περιορισμούς του διαφημιζόμενου στην εφαρμογή μας.συσχετίζεται με τις jos_banner και jos_bannerclient. 79

80 Η περιοχή users και access control περιέχει οντότητες για την αποθήκευση πληροφοριών σχετικών με τους χρήστες της εφαρμογής αλλά και σχετικών με τα δικαιώματα πρόσβασης που έχουν αυτοί.οι οντότητες που περιλαμβάνει είναι οι: jos_users: Περιλαμβάνει τους χρήστες (αυτούς που εισάγονται, όχι τους επισκέπτες) της εφαρμογής.συσχετίζεται με τις οντότητες jos_content, jos_messages, jos_messages_cfg, jos_contact_details, jos_session και jos_core_acl_aro_groups. Ένας χρήστης γράφει άρθρα, ανταλλάσει μηνύματα, έχει πληροφορίες επικοινωνίας και έχει δικαιώματα πρόσβασης. Οι λειτουργίες αυτές επιτυγχάνονται με τις συσχετίσεις της οντότητας. jos_session: Η οντότητα αυτή καταγράφει τους χρήστες που είναι συνδεδεμένοι την συγκεκριμένη χρονική στιγμή στην εφαρμογή (και τους επισκέπτες).συσχετίζεται με τις οντότητες jos_users και jos_groups. jos_groups: Η οντότητα περιλαμβάνει τα group χρηστών που υποστηρίζει μια Joomla εφαρμογή.συσχετίζεται με το jos_session. jos_core_acl_aro_groups jos_core_acl_aro_sections jos_core_acl_groups_aro_map jos_core_acl_aro Oι τελευταίες 4 οντότητες σχετίζονται με τα δικαιώματα πρόσβασης των χρηστών στην εφαρμογή και δεν θα χρησιμοποιηθούν στην ανάλυση της εφαρμογής. 3.3 Ανάλυση ενός Joomla site με την WebML Η εφαρμογή που θα αναλυθεί είναι η εξ ορισμού ιστοσελίδα-δείγμα που δημιουργεί το Joomla αν επιλεχθεί κατά την διάρκεια της εγκατάστασης.μια εφαρμογή Joomla αποτελείται από modules και components και ουσιαστικά αυτό που πρέπει να γίνει είναι να αντιστοιχηθεί κάθε Joomla στοιχείο με ένα WebML πρότυπο (pattern). Ένα WebML πρότυπο περιέχει ένα σύνολο από WebML μονάδες συνδεδεμένες με συγκεκριμένο τρόπο. Το Joomla δημιουργεί τις ιστοσελίδες μιας εφαρμογής με έναν τελείως δυναμικό τρόπο.αυτό που κάνει ουσιαστικά είναι να αποθηκεύει μεταβλητές στα URL (μέθοδος GET) τις οποίες και τις περνάει στο PHP script index.php. Το script αυτό με την βοήθεια των μεταβλητών αναγνωρίζει τα modules αλλά και τα components που πρέπει να προβληθούν στην σελίδα που δείχνει ο σύνδεσμος. Η frontpage της εφαρμογής που θα αναλυθεί είναι η: 80

81 Εικόνα 64 Frontpage Οι 3 προηγούμενες εικόνες αποκαλύπτουν τα modules αλλά και το κεντρικό component της κεντρικής ιστοσελίδας.η ανάλυση γίνεται αρχικά για έναν επισκέπτη της εφαρμογής.στην συνέχεια παρουσιάζονται οι ιδιαιτερότητες που εμφανίζονται σε χρήστες που μπορούν να κάνουν login.τα modules που περιέχει η frontpage είναι τα: Breadcrumbs Banners Main Menu 81

82 Resources Key Concepts Login Form Polls Who s Online Advertisement Syndication Newsflash Latest News Popular Top Menu Search Footer Τα modules Main Menu, Resources, Top Menu και Key Concepts είναι τύπου menu. Breadcrumbs: Τα breadcrumbs έχουν την παρακάτω μορφή: Εικόνα 65 Breadcrumb Αυτό που κάνουν είναι να παρέχουν συνδέσμους σε όλες τις επισκεπτόμενες σελίδες μιας διαδρομής.στο συγκεκριμένο παράδειγμα από την frontpage ακολουθήσαμε την επιλογή του Main Menu Joomla! Overview και στην συνέχεια την επιλογή What s New in 1.5?. Αυτό αποτυπώνεται στο breadcrumb και συνδέει την τωρινή σελίδα με οποιαδήποτε προηγούμενη.στην frontpage το breadcrumb δεν παρέχει καμία λειτουργία αφού το μόνο που κάνει είναι να προβάλλει το όνομα της frontpage χωρίς να υπάρχει κάποιος σύνδεσμος.επομένως φαίνεται ως: Η μοντελοποίηση σε WebML του breadcrumb γίνεται μέσω των συνδέσμων ανάμεσα στις σελίδες της διαδρομής.μια γενική περίπτωση παρουσιάζεται στο παρακάτω σχήμα: 82

83 Εικόνα 66 Breadcrumb - WebML Τα κόκκινα βελάκια του σχήματος είναι οι σύνδεσμοι μέσω του breadcrumb στις προηγούμενες σελίδες της διαδρομής. Banners: Στην frontpage υπάρχει ένα μόνο banner αυτό είναι το: Εικόνα 67 Banner To χαρακτηριστικό των banners είναι ότι δεν προβάλλονται πάντα οι ίδιες διαφημίσεις.αυτό που καθορίζεται είναι ο πελάτης και η κατηγορία που ανήκει το banner και στην συνέχεια επιλέγεται τυχαία μία από τις διαφημίσεις.τα banners αποθηκεύονται στην οντότητα jos_banner, ο πελάτης στην jos_bannerclient και η κατηγορία στην jos_categories.στην συγκεκριμένη περίπτωση ο πελάτης είναι ο Open Source Matters με id = 1 και η κατηγορία η Joomla! Promo με id = 33. Στην WebML ένα banner αναπαρίσταται ως μία μονάδα δεδομένων που χρησιμοποιεί δύο επιλογείς.αυτοί είναι οι jos_bannerclienttojos_banner(id = 1) και jos_categoriestojos_banner(id = 33). Πρέπει να ικανοποιούνται και οι δύο επιλογείς ταυτόχρονα άρα χρησιμοποιείται η AND μορφή.οι δύο επιλογείς μας δίνουν ένα σύνολο από banners.το banner που θα προβληθεί επιλέγεται τυχαία από αυτά.η WebML γραφική μορφή του banner module είναι η: 83

84 Εικόνα 68 Banner - WebML Main Menu: Είναι ένα από τα modules τύπου menu.στο menu προβάλλονται σαν λίστα τα στοιχεία menu.στην frontpage το Main Menu είναι το: Εικόνα 69 Main menu Κάθε menu έχει και ένα όνομα.tα στοιχεία menu αποθηκεύονται όλα μαζί στην οντότητα jos_menu.διακρίνονται μεταξύ τους μέσω της ιδιότητας menutype η οποία και περιέχει το όνομα του menu που αυτό ανήκει. Τα menu ως σύνολο αποθηκεύονται στην οντότητα jos_menu_types.στην συγκεκριμένη περίπτωση τα στοιχεία του Main Menu είναι τα: Home Joomla! Overview Joomla! License More about Joomla! FAQ The News Web Links News Feeds 84

85 Στην WebML ένα menu module θα μπορούσε να αναπαρασταθεί ως μία μονάδα ευρετηρίου της οποίας τα στοιχεία προέρχονται από την οντότητα jos_menu. Ο επιλογέας θα μπορούσε να είναι o [jos_menu_typestojos_menu(menutype= mainmenu )]. Η WebML γραφική αναπαράσταση είναι η: Εικόνα 70 Main menu - WebML Παρατηρείστε ότι το Main Menu είναι ένα ιεραρχικό ευρετήριο.τα διάφορα επίπεδα σχετίζονται με τον εαυτό τους (παρουσιάζει αναδρομή). Τα υποστοιχεία αναγνωρίζουν τα πατρικά τους στοιχεία με την ιδιότητα parent της οντότητας jos_menu. Resources: Eίναι ένα άλλο menu module.στην εφαρμογή έχει την παρακάτω μορφη: Εικόνα 71 Resources 85

86 Τα στοιχεία του είναι τα: Joomla! Home Joomla! Forums Joomla! Documentation Joomla! Community Joomla! Magazine OSM Home Administrator H επιλογή των στοιχείων είναι παρόμοια για όλα τα menu modules. Επομένως έχουμε την επόμενη WebML γραφική παράσταση: Εικόνα 72 Resources - WebML Key Concepts: Είναι ένα menu module και έχει την παρακάτω μορφή: Tα στοιχεία του είναι: Εικόνα 73 Key concepts Extensions Content Layouts Example Pages 86

87 H WebML αναπαράσταση του είναι η: Εικόνα 74 Key concepts - WebML Top Menu: Το 4 ο και τελευταίο menu module που παρουσιάζεται στην frontpage είναι το top menu. Είναι η οριζόντια μπάρα στην κορυφή της οθόνης που συνήθως διαχωρίζει την εφαρμογή στους διάφορους τομείς της.η μορφή του είναι η: Tα στοιχεία του είναι τα: Εικόνα 75 Top menu About Joomla! Features News The Community H WebML γραφική του αναπαράσταση είναι η: 87

88 Εικόνα 76 Top menu - WebML Login Form: Είναι η φόρμα εισαγωγής χρήστη.σε αυτήν κάποιος χρήστης που έχει λογαριασμό στην εφαρμογή εισάγει το όνομα του και τον κωδικό του και έτσι αποκτά πρόσβαση σε επιπλέον πληροφορία και λειτουργίες της εφαρμογής.αν ο χρήστης δεν δώσει έγκυρα στοιχεία επιστρέφει στην αρχική frontpage.το login module της frontpage είναι το: Εικόνα 77 Login form Η προφανής μοντελοποίηση μιας login φόρμας είναι μέσω μιας WebML μονάδας εισαγωγής χρήστη.η μονάδα αυτή μέσω ενός contextual συνδέσμου μεταφέρει το όνομα και τον κωδικό χρήστη σε μια login λειτουργική μονάδα.αν εκτελεστεί με επιτυχία η λειτουργία τότε μεταφερόμαστε (μέσω του OK συνδέσμου) στην frontpage του site view του συγκεκριμένου τύπου χρήστη.αν δεν εκτελεστεί τότε ξαναεπιστρέφουμε (μέσω του KO συνδέσμου) στην frontpage των επισκεπτών.η διαδικασία φαίνεται παρακάτω: 88

89 Εικόνα 78 Login form - WebML Στο σχήμα εμφανίζονται και δύο σύνδεσμοι που συνδέουν ολικά την frontpage με δύο άλλες σελίδες.οι σύνδεσμοι αυτοί οφείλονται στο login module αφού εκτός από την φόρμα εισόδου χρήστη παρέχει και 3 link (Forgot your password, Forgot your username και Create an account) τα οποία οδηγούν σε δύο διαφορετικού τύπου σελίδες.οι σελίδες αυτές θα αναλυθούν πιο μετά. Polls: Τα poll είναι ερωτήματα στα οποία δίνονται οι πιθανές απαντήσεις και οι χρήστες ή επισκέπτες της εφαρμογής καλούνται να εκδηλώσουν την προτίμησή τους.το poll συνδέεται με μία σελίδα αποτελεσμάτων που δείχνει τα ποσοστά επιλογής της κάθε απάντησης.στην συγκεκριμένη ιστοσελίδα το Poll είναι το: Εικόνα 79 Poll 89

90 Τα Vote και Results οδηγούν στην σελίδα αποτελεσμάτων.η διαφορά είναι ότι με το Vote καταχωρείται η ψήφος για την επιλεγμένη απάντηση και προβάλλονται στην συνέχεια τα αποτελέσματα ενώ με το Result απλά προβάλλεται η σελίδα των αποτελεσμάτων.κάθε φορά επιτρέπεται να ψηφίζεται μόνο μία απάντηση.αυτός είναι και ο λόγος που μοντελοποίησα το Poll module ως μία μονάδα ευρετηρίου που συνδέεται με μία λειτουργική μονάδα τροποποίησης. Κάθε φορά που κάποιος πατάει το vote είναι σαν να επιλέγει από ένα ευρετήριο ένα στοιχείο του.το κουμπί Results αναπαρίσταται ως ένας σύνδεσμος από την σελίδα frontpage προς αυτήν που περιέχει τα αποτελέσματα του Poll.H μοντελοποίηση του poll module είναι η: Εικόνα 80 Poll - WebML Από την εικόνα φαίνεται ότι χρησιμοποιούνται οι οντότητες jos_polls που περιέχει τα poll στο σύνολο τους και jos_poll_data που περιέχει τις επιλογές για όλα τα poll. Επομένως με την συσχέτιση jos_pollstojos_poll_data(id=14) επιλέγονται οι πιθανές απαντήσεις για το poll Joomla! Is used for?. Αν επιλέξει ένας χρήστης να ψηφίσει πριν οδηγηθεί στην σελίδα των αποτελεσμάτων εκτελείται η μονάδα ModifyPoll που αυξάνει την ιδιότητα hits κατά ένα του επιλεγμένου αντικειμένου τύπου jos_poll_data.η ιδιότητα hits μετράει τον αριθμό ψήφων.στο σχήμα φαίνονται οι σύνδεσμοι με τα ονόματα των κουμπιών. Who s online: To module αυτό προβάλλει στην σελίδα των αριθμό των χρηστών που είναι συνδεδεμένοι στην εφαρμογή εκείνη την στιγμή.η μορφή του είναι η: 90

91 Εικόνα 81 Who s Online Εκτός από τον αριθμό προβάλλει και τον τύπο των χρηστών.στην προκειμένη περίπτωση είναι συνδεδεμένος μόνο ένας επισκέπτης στην εφαρμογή.το module αυτό χρησιμοποιεί την οντότητα jos_session η οποία και έχει ως αντικείμενα τους χρήστες που βρίσκονται online την συγκεκριμένη στιγμή.για να προσδιορίσει τον αριθμό των αντικειμένων χρησιμοποιεί την εντολή count(jos_session).προφανώς η WebML αναπαριστά αυτό το module με μία μονάδα δεδομένων.η γραφική μορφή φαίνεται παρακάτω: Εικόνα 82 Who s online - WebML Advertisement: To Advertisement είναι και αυτό ένα module τύπου banner. Εμφανίζει διαφημίσεις τύπου κειμένου στην δεξιά στήλη της frontpage. Έχει την παρακάτω μορφή: 91

92 Εικόνα 83 Advertisement Όπως όλα τα modules τύπου banner αντλεί το περιεχόμενο του από την οντότητα jos_banner. Στην συγκεκριμένη περίπτωση εμφανίζονται διαφημίσεις της κατηγορίας με όνομα text-ads.στην WebML το advertisement module μοντελοποιείται ως μια μονάδα πολλαπλών δεδομένων.η γραφική παράσταση της μοντελοποίησης είναι η: Εικόνα 84 Advertisement - WebML Syndication: Με αυτό το module δημιουργείται ένας σύνδεσμος στο κάτω μέρος της σελίδας που συνδέει την frontpage με την σελίδα που προβάλλει όλα τα άρθρα της.αυτό που δημιουργεί είναι ουσιαστικά ένα RSS Feed του component της σελίδας που προβάλλεται.η μορφή του είναι η: 92

93 Εικόνα 85 Syndication Το syndication module θα μπορούσε να μοντελοποιηθεί στην WebML ως ένας σύνδεσμος που συνδέει την frontpage με την σελίδα που παρουσιάζει το RSS Feed όπως παρακάτω: Εικόνα 86 Syndication - WebML Παρατηρείστε τον σύνδεσμο μεταφοράς που συνδέει το component της frontpage με την μονάδα πολλαπλών δεδομένων της feed display. Αυτό συμβαίνει γιατί η feed display προβάλλει σε RSS μορφή το component της frontpage.είναι σημαντικό να σημειωθεί ότι το Syndicate module εμφανίζεται μόνο στις σελίδες της εφαρμογής που έχουν ως component μια μονάδα πολλαπλών δεδομένων ή μια μονάδα ευρετηρίου.δεν εμφανίζεται σε σελίδες που προβάλλουν μόνο ένα άρθρο.περισσότερη ανάλυση της σελίδας feed display θα δωθεί στην συνέχεια. Newsflash: To newsflash module είναι το κείμενο που εμφανίζεται δεξιά του Joomla logo. Περιέχει νέα γραμμένα σε μορφή μικρών μηνυμάτων.η μορφή του είναι η: Εικόνα 87 Newsflash Για το καθορισμό του Newsflash module το μόνο που χρειάζεται είναι να του δωθεί η κατηγορία των άρθρων από την οποία θα προβάλλει τυχαία ένα κείμενο κάθε φορά που φορτώνεται η σελίδα. Επομένως το περιεχόμενο του Newsflash περιέχεται στην οντότητα jos_content.στην Webml μοντελοποιείται ως μία μονάδα δεδομένων όπως παρακάτω: 93

94 Εικόνα 88 Newsflash - WebML Είναι σημαντικό ότι ο επιλογέας καθορίζει ένα σύνολο άρθρων.το άρθρο που θα προβληθεί επιλέγεται τυχαία με έναν μη ντετερμινιστικό τρόπο. Latest News: Είναι μία λίστα που προβάλλει τα πιο πρόσφατα εισαγμένα άρθρα στην βάση δεδομένων.στην frontpage μας βρίσκεται δεξιά του Main menu και κάτω από το Top Menu. Στο module αυτό καθορίζεται ο αριθμός των άρθρων που θα προβληθούν καθώς και η διάταξη τους.το σχήμα του είναι το εξής: Εικόνα 89 Latest news Αυτά είναι και τα 5 πιο πρόσφατα άρθρα με το πιο πρόσφατο στην κορυφή. Τα άρθρα βρίσκονται στην jos_content και καθορίζονται τα πιο πρόσφατα με την βοήθεια των ιδιοτήτων created και modified που αποθηκεύουν τις ημερομηνίες δημιουργίας και τροποποίησης.η WebML μοντελοποίηση του γίνεται με την βοήθεια μιας μονάδας ευρετηρίου πάνω στην οντότητα jos_content. Αυτό το ξεχωρίζει από τα modules τύπου menu αφού εκείνα έχουν ως οντότητα-πηγή την jos_menu.η γραφική αναπαράσταση είναι η: 94

95 Εικόνα 90 Latest news - WebML Popular: Είναι μια λίστα με τα άρθρα που έχουν επισκευτεί πιο πολύ οι χρήστες. Βρίσκεται στα δεξιά του Latest News.O αριθμός των προβληθέντων άρθρων καθορίζεται από την σελίδα διαχείρισης του συγκεκριμένου module. H μορφή του είναι η: Εικόνα 91 Popular Ο αριθμός των επισκέψεων κάθε άρθρου αποθηκεύεται στην ιδιότητα hits που υπάρχει στην οντότητα jos_content.αυτό που κάνει το module είναι να επιλέγει τa N αντικείμενα τύπου jos_content με τα μεγαλύτερα hits.h WebML μοντελοποίηση του είναι παρόμοια με του προηγούμενου module ως: 95

96 Εικόνα 92 Popular - WebML Search: Ένα από τα δυνατότερα σημεία του Joomla είναι το search module. Αυτό επιτρέπει την γρήγορη αναζήτηση των άρθρων που περιέχουν την φράση αναζήτησης. Αυτό είναι πολύ δύσκολο να υλοποιηθεί σε καθαρή HTML όμως αφού το Joomla αποθηκεύει τα άρθρα σε βάση δεδομένων δεν υπάρχουν τέτοια προβλήματα.η μορφή του είναι η: Εικόνα 93 Search Βρίσκεται κάτω από το top menu. Η λειτουργία του έχει ως εξής: ο χρήστης εισάγει την φράση αναζήτησης και πατάει το πλήκτρο ENTER. Στην συνέχεια οδηγείται στην σελίδα αποτελεσμάτων όπου και εμφανίζονται τα σχετικά άρθρα.το search module στην WebML μοντελοποιείται ως μια μονάδα εισαγωγής δεδομένων (entry unit) η οποία και συνδέεται με το component της προβολής αποτελεσμάτων. Η σύνδεση γίνεται με την βοήθεια ενός contextual συνδέσμου ο οποίος μεταφέρει την φράση αναζήτησης ως παράμετρο που χρησιμοποιείται στον επιλογέα του component. Γραφικά η προηγούμενη διαδικασία αναπαρίσταται με το παρακάτω σχήμα: 96

97 Εικόνα 94 Search - WebML Από το σχήμα φαίνεται ότι η σελίδα των αποτελεσμάτων είναι η ίδια η frontpage. Αυτό είναι εμφανές αφού προβάλλονται σε αυτήν τα ίδια modules με την frontpage και επιπλέον το breadcrumb δείχνει ότι βρισκόμαστε στην αρχική σελίδα.το μόνο που αλλάζει είναι το component. Αντί να προβάλλονται τα άρθρα της frontpage εμφανίζονται τα αποτελέσματα της αναζήτησης.στο σχήμα εμφανίζονται μόνο τα αναγκαία στοιχεία για να αναπαρασταθεί η λειτουργία του search module.αυτή η αλλαγή του component μοντελοποιείται ως μία OR μορφή που περιλαμβάνει δύο υποσελίδες. Η πάνω υποσελίδα περιέχει τα άρθρα της frontpage και σηματοδοτείται ως η εξ ορισμού υποσελίδα που προβάλλεται εξ αρχής. Για να σχεδιαστεί η δεύτερη υποσελίδα στην θέση της πρώτης πρέπει να ακολουθηθεί ο σύνδεσμος που εξέχει από την μονάδα search.αυτό σημαίνει ότι πρέπει κάποιος χρήστης να ξεκινήσει μια αναζήτηση. Footer: To Footer module εμφανίζεται πάντα στο κάτω μέρος μιας σελίδας και προβάλλει τo copyright μήνυμα.το module δεν γίνεται να τροποποιηθεί παρά μόνο υπάρχει η επιλογή αν θα εμφανίζεται ή όχι.επειδή αποθηκεύεται σε στατικό κώδικα και όχι στην βάση δεδομένων το footer δεν μοντελοποιείται σε WebML μονάδες.η εμφάνισή του είναι: 97

98 Εικόνα 95 Footer Component: Αναλύθηκαν τα modules της frontpage τώρα το μόνο που μας μένει είναι να αναλύσουμε το component. Το component είναι το περιεχόμενο που προβάλλεται στην κεντρική περιοχή μιας σελίδας.παρουσιάστηκε αμυδρά στην ενότητα του search module. Γενικά η δομή μιας σελίδας τύπου Joomla περιέχει το component στο κέντρο και περιφερειακά τοποθετούνται τα modules. Αρχικά μόλις φορτωθεί η frontpage αυτό που προβάλλει είναι τα άρθρα τα οποία έχουν οριστεί να προβάλλονται σε αυτήν.το περιεχόμενο αυτών των άρθρων είναι προφανώς στην οντότητα jos_content αλλά για να διαχωριστούν από τα υπόλοιπα το id τους αποθηκεύεται επιπλέον στην οντότητα jos_content_frontpage.h μορφή του component είναι η: 98

99 99

100 Εικόνα 96 Frontpage component Αυτό είναι και το default component μιας frontpage. Όπως φαίνεται και από τις εικόνες αποτελείται από έναν αριθμό από άρθρα, από ένα ευρετήριο με το όνομα More Articles και από έναν scroller. Για να μοντελοποιηθεί σε WebML χρησιμοποιούνται 3 μονάδες.μία μονάδα πολλαπλών δεδομένων, μία μονάδα ευρετηρίου και μία μονάδα scroller.το παρακάτω σχήμα δείχνει την WebML αναπαράσταση του default component: 100

101 Εικόνα 97 Frontpage component - WebML Στο σχήμα φαίνεται μια μονάδα scroller πάνω στα άρθρα της frontpage.τα άρθρα αυτά προβάλλονται με την βοήθεια μιας μονάδας πολλαπλών δεδομένων.στο component υπάρχει επίσης και ένα ευρετήριο που αναπαρίσταται μέσω μιας μονάδας ευρετηρίου.το ευρετήριο αυτό περιέχει ως στοιχεία του τα άρθρα της frontpage που δεν προβάλλονται την συγκεκριμένη στιγμή.δηλαδή τα άρθρα που δεν βρίσκονται στην πρώτη σελίδα της scroller μονάδας.στην WebML αυτό το αναπαριστώ με έναν σύνδεσμο μεταφοράς που εξέρχεται από την μονάδα πολλαπλών δεδομένων και μεταφέρει τα id των αρχείων που προβάλλονται. Στην συνέχεια η παράμετρος αυτή χρησιμοποιείται στον δεύτερο επιλογέα της μονάδας ευρετηρίου με αποτέλεσμα να επιλέγονται τα σωστά άρθρα.τα στοιχεία του ευρετηρίου οδηγούν σε ξεχωριστές σελίδες που αναπαριστούν το άρθρο. Όπως παρουσιάστηκε και στην ανάλυση του search module το παραπάνω component είναι ενσωματωμένo σε μια εξ ορισμού υποσελίδα σε μια OR δομή. Το συνολικό component είναι όλη η OR δομή.h 2 η υποσελίδα (που οφείλεται στο search module ) έχει παρουσιαστεί προηγουμένως. 101

102 Ως τώρα αναλύθηκαν τα modules αλλά και το component της frontpage. Στην συνέχεια θα παρουσιαστεί η μορφή και των υπόλοιπων ιστοσελίδων στις οποίες οδηγούμαστε μέσω των υπερσυνδέσμων της frontpage. Η ανάλυση θα δωθεί σε σελίδες που ανήκουν στην εφαρμογή και όχι σε εξωτερικές σελίδες.οι υπερσύνδεσμοι που μας ενδιαφέρουν είναι κυρίως αυτοί που σχετίζονται με τα στοιχεία ενός menu. Η ανάλυση αρχικά ξεκινάει από τα στοιχεία κάθε τύπου menu. Από το top menu: To top menu περιέχει τα στοιχεία About Joomla!, Features, News και The Community.Ακολουθώντας τους υπερσυνδέσμους των στοιχείων μεταφερόμαστε σε δύο τύπους σελίδων. Συγκεκριμένα τα στοιχεία About Joomla!, Features και The Community μας μεταφέρουν σε μια σελίδα προβολής του περιεχομένου ενός άρθρου.το component της σελίδας είναι μια WebML μονάδα δεδομένων που προβάλλει το περιεχόμενο ενός άρθρου.το id του άρθρου που θα προβληθεί μεταφέρεται με την βοήθεια του URL και συγκεκριμένα με την μεταβλητή id.θεωρώ ότι το id μεταφέρεται ως παράμετρος με την βοήθεια ενός contextual συνδέσμου που εξέρχεται από την μονάδα Top Menu.Στην συνέχεια το id χρησιμοποιείται στον επιλογέα της μονάδας δεδομένων του component. Αξίζει να σημειωθεί ότι επειδή στην συγκεκριμένη σελίδα υπάρχει πάλι το search module το συνολικό component είναι μια OR δομή όπως αυτή που παρουσιάστηκε προηγουμένως.το μόνο που αλλάζει είναι η default υποσελίδα.επειδή η υποσελίδα που αναφέρεται το search module είναι παντού η ίδια αυτό που θα παρουσιάζω στην ανάλυση κάθε σελίδας που περιέχει το search module είναι μόνο η default υποσελίδα του component.h γραφική παράσταση της ιστοσελίδας είναι η: 102

103 Εικόνα 98 Ιστοσελίδα από top menu Στο σχήμα παρουσιάζεται μόνο το component και όχι τα modules γιατί το περιεχόμενο αυτού επηρεάζεται από την πλοήγησή μας.τα υπόλοιπα στοιχεία που περιέχει η σελίδα είναι τα modules newsflash, search, breadcrumb, top menu, main menu,key concepts, banner και footer. Η αναπαράσταση των module είναι η ίδια με πριν και το περιεχόμενό τους είναι ανεξάρτητο της διαδρομής που ακολουθήσαμε. Στον άλλο τύπο σελίδας οδηγούμαστε από το στοιχείο News. To στοιχείο αυτό έχει συνδεθεί να προβάλλει ένα RSS Feed. Τα RSS Feed αποθηκεύονται στην οντότητα jos_newsfeed και περιέχουν το URL από το οποίο προέρχεται το περιεχόμενο στην ιδιότητα link. Το περιεχόμενο αυτό προέρχεται από εξωτερικές ιστοσελίδες, επομένως δεν μπορούμε να το αναπαραστήσουμε απευθείας ως μία μονάδα δεδομένων. Αυτό που μπορεί να γίνει είναι να οριστεί μια λειτουργική μονάδα που αναλαμβάνει την προβολή ενός RSS Feed αν της δωθεί το id μιας οντότητας τύπου jos_newsfeed. Η λειτουργική αυτή μονάδα στην συνέχεια θα συνδέεται με μία υποσελίδα που χρησιμοποιείται για να προβληθούν τα δεδομένα του RSS Feed. 103

104 Εικόνα 99 Ιστοσελίδα από top menu 2 Η ιστοσελίδα περιέχει επίσης τα modules newsflash, search, breadcrumb, top menu, main menu,key concepts, banner και footer.ο ορισμός της μονάδας RSS Feed είναι προσωπικός και δεν υπάρχει στην πρότυπη WebML.(Nα το ξανακοιτάξω μήπως πρέπει να πηγαίνει σε μια μονάδα πολλαπλών δεδομένων γιατί δεν νομίζω να επιτρέπεται σε συνδέσμους να μεταφέρουν δεδομένα σε σελίδες αλλά μόνο σε μονάδες). Είναι σημαντικό επίσης να σημειωθεί ότι οι σελίδες στις οποίες οδηγούμαστε από το top menu περιέχουν και αυτές το module top menu. Αυτό σημαίνει ότι οι σελίδες αυτές διασυνδέονται μεταξύ τους με την βοήθεια αυτού. Όταν παρουσιαστεί η μοντελοποίηση της εφαρμογής σε υψηλότερο επίπεδο θα φανεί αυτή η ιδιαιτερότητα. Από το Resources Menu: Το menu αυτό βρίσκεται στην αριστερή στήλη της σελίδας και περιέχει τα στοιχεία: Joomla! Home, Joomla! Forums, Joomla! Documentation, Joomla! Community, Joomla Magazine, OSM Home και Administrator. Όλα τα στοιχεία πλην του Administrator οδηγούν σε ιστοσελίδες εξωτερικές της εφαρμογής, επομένως δεν αναλύονται. Επίσης το στοιχείο Administrator οδηγεί στην σελίδα login του backend τμήματος της εφαρμογής.όπως είπα και προηγουμένως το backend του Joomla δεν αναλύεται στην παρούσα εργασία. Άρα τα στοιχεία του Resources δεν οδηγούν σε σελίδα που χρειάζεται περαιτέρω ανάλυση. 104

105 Από το Latest News: Το ευρετήριο Latest News δεν είναι module τύπου menu. Τα στοιχεία του είναι οι τίτλοι των πιο πρόσφατων άρθρων. Αυτά είναι τα: Joomla License Guidelines, Content Layouts, The Joomla! Community, Welcome to Joomla! και Newsflash 4. Είναι λογικό να οδηγούν σε μια σελίδα η οποία έχει ως component μία μονάδα δεδομένων που θα προβάλλει το συγκεκριμένο άρθρα. Το σχήμα της είναι: Εικόνα 100 Ιστοσελίδα από Latest News Στην εικόνα εμφανίζεται μόνο το component. Θα μπορούσε κάποιος να πει ότι η σελίδα αυτή είναι η ίδια με την πρώτη σελίδα που οδηγούμαστε από το Top Menu. Αυτό είναι σωστό ως προς το component της σελίδας. Σε πολλές σελίδες υπάρχουν διαφορές ως προς τα module που εμφανίζονται σε αυτές.κατά την δημιουργία ενός module ο διαχειριστής καθορίζει τις σελίδες που αυτό θα εμφανίζεται. Επομένως ακόμα και σελίδες που παράγονται από τα στοιχεία του Latest News εμφανίζουν διαφορετικά modules στην περιφέρεια της σελίδας ενώ στο κέντρο έχουν το ίδιου τύπου component. Μία σελίδα η οποία εμφανίζει διαφορετικές μονάδες στην WebML αναγκαστικά ορίζεται ως ξεχωριστή σελίδα.οι σελίδες που οδηγούμαστε μέσω υπερσυνδέσμων και παρουσιάζουν ίδιες μονάδες τις ορίζω ως ίδιες. Άρα στην πραγματικότητα το προηγούμενο σχήμα εκπροσωπεί πάνω από μία σελίδες. 105

106 Στην συγκεκριμένη περίπτωση τα modules που εμφανίζονται στις σελίδες των στοιχείων είναι τα: Joomla! License Guidelines : Newsflash, Top Menu, Search,Latest News, Popular, Breadcrumb, Main Menu, Key Concepts,Banner,Footer. Contents Layout : Newsflash, Top Menu,Search, Breadcrumb, Main Menu, Key Concepts, Banner, Footer. The Joomla! Community: Newsflash, Top Menu, Search, Breadcrumb, Main Menu, Key Concepts, Banner, Footer. Welcome to Joomla!: Newsflash, Top Menu, Search, Breadcrumb, Main Menu, Key Concepts, Banner, Footer. Εδώ υπάρχει μια μικρή διαφορά σε σχέση με τα προηγούμενα στοιχεία η συγκεκριμένη σελίδα μέσω του breadcrumb της συνδέεται εκτός από την frontpage αλλά και με μία σελίδα που λέγεται The News. Η συγκεκριμένη σελίδα θα αναλυθεί στην συνέχεια. Newsflash 4: Newsflash, Top Menu, Search, Breadcrumb, Main Menu, Key Concepts, Banner, Footer. Η συγκεκριμένη σελίδα έχει την ιδιαιτερότητα ότι δεν συνδέεται μέσω του breadcrumb με την frontpage. Ομως έχει έναν σύνδεσμο ήδη με την frontpage μέσω του Main Menu. Επομένως θα μπορούσε να μοντελοποιηθεί με την ίδια σελίδα με τα στοιχεία Contents Layout και The Joomla! Community. Αρχικά η σελίδα στην οποία οδηγούμαστε μέσω του στοιχείου Joomla! License Guidelines περιέχει τα επιπλέον modules Latest News και Popular. Επομένως διαχωρίζεται από τις υπόλοιπες. Τα υπόλοιπα στοιχεία εμφανίζουν τα ίδια modules. Στα τελευταία δύο υπάρχουν οι ιδιαιτερότητες που εμφανίζει το breadcrumb.μόνο όμως η σελίδα που οδηγεί το Welcome to Joomla! πρέπει να μοντελοποιηθεί ως διαφορετική λόγο του επιπλεον non contextual συνδέσμου. Συνολικά από το ευρετήριο οδηγούμαστε σε 3 είδη σελίδων με τα στοιχεία Contents Layout,The Joomla! Community και Newsflash4 να οδηγούν σε ίδιο τύπο σελίδας. Η σελίδα The News: Στην σελίδα αυτή μπορούμε να μεταφερθούμε μέσω του breadcrumb από την σελίδα Welcome to Joomla! (και όχι μόνο). H σελίδα αυτή έχει ως component όλα τα άρθρα που ανήκουν στην κατηγορία Latest (id=1). Επομένως μοντελοποιείται ως μια μονάδα πολλαπλών δεδομένων. Η αναπαράσταση της στην WebML είναι η: 106

107 Εικόνα 101 Ιστοσελίδα The News Στην εικόνα φαίνεται μόνο το component. Τα modules που περιέχει η σελίδα είναι τα: Newsflash, Top Menu, Search, Breadcrumb, Main Menu, Key Concepts, Banner, Syndicate και Footer. Από το Popular: Το ευρετήριο αυτό όπως είναι λογικό παρουσιάζει όμοιες σελίδες με το προηγούμενο.αυτό συμβαίνει επειδή έχει και αυτό ως στοιχεία τους τίτλους άρθρων,αυτήν την φορά των πιο διάσημων.τα δύο ευρετήρια περιέχουν κοινά άρθρα ως στοιχεία τα οποία και αν ακολουθηθούν οδηγούν στην ίδια σελίδα, κάτι πολύ λογικό αφού προβάλλουν το ίδιο άρθρο. Επομένως πολλά ευρετήρια θα δείχνουν σε κοινούς τύπους σελίδων ταυτόχρονα.τα στοιχεία του Popular είναι τα: Joomla! Overview, Joomla! License Guidelines, What s new in 1.5?, Extensions και Welcome to Joomla!. Τα στοιχεία Joomla! License Guidelines και Welcome to Joomla υπήρχαν και στο προηγούμενο module και προφανώς οδηγούν στις ίδιες σελίδες, επομένως δεν αναλύονται. Όπως συμβαίνει και στο προηγούμενο ευρετήριο οι σελίδες που οδηγούμαστε έχουν ως component το περιεχόμενου του άρθρου που στην WebML γλώσσα αναπαρίσταται από μια μονάδα δεδομένων με πηγή το jos_content. Υπάρχει όμως μια ιδιαιτερότητα. Το στοιχείο Extensions που οδηγεί στην σελίδα με το ομόνυμο άρθρο εμφανίζει ένα ευρετήριο άρθρου(article index) και έναν scroller στο περιεχόμενο του component. Το ευρετήριο άρθρου είναι ένα χαρακτηριστικό της Joomla που δεν έχει παρουσιαστεί ως τώρα. Όλα αυτά οφείλονται στον editor του Joomla. Αυτός επιτρέπει την εισαγωγή pagebreaks κάτι που δημιουργεί τις πολλαπλές σελίδες και το ευρετήριο.επειδή οι πληροφορίες αυτές αποθηκεύονται 107

108 εσωτερικά και όχι σε επίπεδο οντοτήτων τα ευρετήρια άρθρων δεν θα τα μοντελοποιήσω στην WebML.Τα στοιχεία του Popular οδηγούν σε σελίδες που έχουν τα module: Joomla! Overview: Newsflash, Top Menu, Search,Latest News, Popular, Breadcrumb, Main Menu, Key Concepts,Banner,Footer. Extensions: Newsflash, Top Menu,Search, Breadcrumb, Main Menu, Key Concepts, Banner, Footer. What s new in 1.5: Newsflash, Top Menu,Search, Breadcrumb, Main Menu, Key Concepts, Banner, Footer.(Eμφανίζει την ιδιαιτερότητα της σελίδας Welcome to Joomla! που παρουσιάστηκε προηγουμένως) Τα υπόλοιπα δύο στοιχεία αντιστοιχούν στις σελίδες των συνονόματων στοιχείων του module Latest News.Επομένως από το Popular module έχουμε τριών ειδών σελίδες, μία για κάθε στοιχείο. Οι τύποι μπορεί ολικά να συνενωθούν στο τέλος μόλις λάβουμε υπόψιν και τους άλλους υπερσυνδέσμους της frontpage.απλά στην συγκεκριμένη περίπτωση δείχνουμε τις διαφορετικές σελίδες που οδηγούμαστε από ένα συγκεκριμένο module. Από το Poll: Το Poll δεν περιέχει υπερσύνδεσμο, έχει όμως δύο κουμπιά που οδηγούν στην σελίδα Results. H λειτουργία του Poll έχει ήδη παρουσιαστεί, στην συγκεκριμένη περίπτωση θα αναλυθεί η ιστοσελίδα Results. Εικόνα 102 Ιστοσελίδα Poll Οπως φαίνεται και από την εικόνα υπάρχει μια λίστα επιλογής του poll που θέλουμε να προβληθεί και στην συνέχεια το ποσοστό και ο αριθμός των ψήφων 108

109 κάθε απάντησης. Στο κάτω μέρος της σελίδας φαίνεται το σύνολο των ψήφων και οι ημερομηνίες της πρώτης και της τελευταίας ψήφου. Η λίστα επιλογής μοντελοποιείται ως μια μονάδα ευρετηρίου με πηγή το jos_polls και τα αποτελέσματα ως δύο μονάδες πολλαπλών δεδομένων που έχουν ως πηγή τις οντότητες jos_poll_data και jos_poll_date. Η παρακάτω εικόνα δείχνει την μοντελοποίηση: Εικόνα 103 Ιστοσελίδα Results Χρησιμοποιούνται μονάδες πολλαπλών δεδομένων γιατί στην περίπτωση των jos_poll_data εμφανίζονται όλες οι απαντήσεις ενός poll ενώ στην περίπτωση των jos_poll_date εμφανίζονται δύο ημερομηνίες. Από το advertisement: Το module advertisement έχει 5 υπερσυνδέσμους.όλοι δείχνουν τα εξωτερικά site που διαφημίζονται και επομένως δεν χρειάζονται ανάλυση οι σελίδες. 109

110 Από την Login Form: Η Login Form παρέχει 3 υπερσυνδέσμους και 1 κουμπί για την εισαγωγή χρήστη. Τα διαφορετικά site views θα αναλυθούν αργότερα επομένως αναλύονται εδώ οι σελίδες που οδηγούν οι 3 υπερσύνδεσμοι.οι σύνδεσμοι Forgot your password και Forgot your username οδηγούν σε ίδιας μορφής σελίδα. Αυτή είναι η (εμφανίζονται μόνο τα components): Εικόνα 104 Ιστοσελίδα από login form Φαίνεται στο σχήμα η σελίδα έχει ως component μία μονάδα εισαγωγής δεδομένων η οποία και ζητά το ενός χρήστη. Το μεταφέρεται ως παράμετρος σε μια λειτουργική μονάδα η οποία και αναλαμβάνει να στείλει στον χρήστη τον λογαριασμό του. Από τον υπερσύνδεσμο Create an account οδηγούμαστε στην σελίδα: 110

111 Εικόνα 105 Ιστοσελίδα από Create an account Η σελίδα έχει μία φόρμα για εισαγωγή των στοιχείων του νέου χρήστη η οποία και συνδέεται με μια λειτουργική μονάδα δημιουργίας αντικειμένου οντότητας. Το αντικείμενο που δημιουργείται είναι τύπου jos_users. Το πραγματικό όνομα του χρήστη, το όνομα χρήστη, το και ο κωδικός του δίνονται ως παράμετροι στην λειτουργική μονάδα για να δημιουργήσει το αντικείμενο. Από το Main Menu: Το Main Menu έχει τα στοιχεία : Home,Joomla! Overview, What s new in 1.5? (2 ου επιπέδου), Joomla! License, More about Joomla!, FAQ, The News, Web Links και News Feeds. To στοιχείο Home μας οδηγεί στην frontpage και δεν αναλύεται. Τα στοιχεία Joomla! Overview, What s new in 1.5?, Joomla! License και The News είναι τα ίδια με αυτά που έχουν παρουσιαστεί σε προηγούμενα modules. Το στοιχείο More about Joomla! μας οδηγεί σε μια σελίδα που έχει ως component μια λίστα με τις κατηγορίες που ανήκουν στο section About Joomla!.Ακολουθώντας τα στοιχεία αυτής της λίστας οδηγούμαστε στις επιμέρους λίστες που έχουν ως στοιχεία τους τίτλους των άρθρων που ανήκουν στην συγκεκριμένη κατηγορία.γραφικά οι σελίδες που οδηγούμαστε από το More about Joomla! είναι οι: 111

112 Εικόνα 106 Ιστοσελίδες από More about Joomla Από το στοιχείο FAQ οδηγούμαστε σε μια ακολουθία σελίδων που έχει την ίδια μοντελοποίηση με του στοιχείου More About Joomla! (με την διαφορά ότι προβάλλονται οι κατηγορίες και τα άρθρα του section FAQ). Το στοιχείο Weblinks έχει παρόμοια λειτουργία με την διαφορά ότι προβάλλονται αρχικά οι κατηγορίες τύπου Weblinks και στην συνέχεια τα αντίστοιχα Weblinks.Το σχήμα του είναι: Εικόνα 107 Ιστοσελίδες από Weblinks Η παράμετρος TYPE έχει την τιμή com_weblinks και έτσι ξεχωρίζουν οι κατηγορίες τύπου weblinks. Στην συνέχεια με μία δεύτερη λίστα προβάλλονται τα weblinks της κατηγορίας τα οποία και οδηγούν σε εξωτερικές σελίδες. Το στοιχείο News Feeds μας οδηγεί σε μια ακολουθία σελίδων που έχουν παρόμοιο σχήμα με αυτό του Web Links. Oι μόνες διαφορές είναι ότι σε αυτήν την 112

113 περίπτωση η παράμετρος TYPE έχει την τιμή com_newsfeeds, στην 2 η σελίδα η οντότητα πηγή είναι η jos_weblinks και στον επιλογέα χρησιμοποιείται η συσχέτιση jos_categoriestojos_weblinks.οι επόμενες σελίδες έχουν component από εξωτερικές σελίδες (τα RSS Feeds) και δεν αναλύονται. Από το Key Concepts: Περιέχει τα στοιχεία: Extensions, Content Layouts και Example Pages.Οι σελίδες που οδηγούμαστε από τα Extensions και Content Layouts έχουν αναλυθεί προηγουμένως.η σελίδα που οδηγούμαστε από το στοιχείο Example Pages έχει ως component το κείμενο του αντίστοιχου άρθρου. Αυτό που παρουσιάζει εξαιρετικό ενδιαφέρον είναι ότι η σελίδα έχει ένα επιπλέον menu που δεν έχουμε παρουσιάσει έως τώρα. Κατά την δημιουργία ενός module τύπου menu καθορίζονται οι σελίδες που αυτό θα εμφανίζεται. Για το συγκεκριμένο menu, που ονομάζεται Example Pages, έχει καθοριστεί μόνο η συγκεκριμένη σελίδα. Τα στοιχεία του menu Example Pages είναι τα: Section Blog, Section Table, Category Blog και Category Table. Κάθε ένα στοιχείο παρουσιάζει ένα διαφορετικό είδος από layout που μπορεί να έχει ένα component. To στοιχείο Section Blog μας οδηγεί σε μια σελίδα που έχει ένα component μορφής section blog.αντίστοιχα και τα υπόλοιπα στοιχεία. Περισσότερα για τις μορφές ενός component layout δίνεται στη συνέχεια. Διαφορετικά site views: Η Joomla! εφαρμογή που αναλύουμε επιτρέπει μέσω της login φόρμας την εισαγωγή ενός χρήστη στο σύστημα καθώς και την δημιουργία νέων λογαριασμών. Κάθε μία ομάδα χρηστών ορίζει και ένα site view. Στην συγκεκριμένη περίπτωση μέσω του front end μπορούν να δημιουργηθούν μόνο λογαριασμοί τύπου registered user. Οι χρήστες αυτοί έχουν μόνο πρόσβαση σε επιπλέον περιεχόμενο και δεν τους παρέχονται άλλες δυνατότητες (π.χ. δημιουργία ή τροποποίηση άρθρων).επίσης η εφαρμογή έχει άλλον έναν χρήστη, τον ιδιοκτήτη του site που είναι τύπου Super Administrator. Στην συνέχεια θα παρουσιαστούν οι διαφορές που εμφανίζονται στην εφαρμογή μετά από την είσοδο των δύο παραπάνω τύπων χρηστών.να σημειωθεί ότι αναλύεται μόνο η front end εμφάνιση της εφαρμογής. Όταν συνδεθεί ο Super Administrator στην εφαρμογή η frontpage παρουσιάζει τις παρακάτω διαφορές: 113

114 Εικόνα 108 Super administrator Οι διαφορές βρίσκονται μέσα στο κόκκινο πλαίσιο. Συγκεκριμένα το login module έχει αντικατασταθεί με ένα καλωσόρισμα στον χρήστη και με το κουμπί logout. Επίσης έχει προστεθεί το User Menu. Στην WebML οι καινούργιες μονάδες αναπαριστώνται ως: Εικόνα 109 Frontpage super admin - WebML Το User Menu αναπαρίσταται ως μία μονάδα ευρετηρίου και το καλωσόρισμα ως μια μονάδα δεδομένων.η μονάδα δεδομένων (δεν φαίνεται στο σχήμα) συνδέεται με μια μονάδα logout η οποία και αποσυνδέει τον χρήστη και επιστρέφει τον έλεγχο στην σελίδα frontpage. Το User Menu έχει ως στοιχεία τα : Your Details, Submit an article, Submit a web link και Logout. Από το στοιχείο Your Details οδηγούμαστε στην ομόνυμη σελίδα.η σελίδα αυτή έχει ως component μια φόρμα 114

115 με τα στοιχεία του χρήστη που είναι συνδεδεμένος.μερικά πεδία περιέχουν εκ των προτέρων τιμές ενώ άλλα δεν έχουν.η φόρμα αυτή επιτρέπει στον χρήστη να τροποποιήσει ή να εισάγει επιπλέον στοιχεία στον λογαριασμό του πατώντας το κουμπί Save.Η εμφάνισή της σελίδας είναι η: Εικόνα 110 Edit component Σε μοντελοποίηση WebML το component είναι όπως παρακάτω: Εικόνα 111 Edit component - WebML Η φόρμα αναπαρίσταται ως μια μονάδα εισαγωγής δεδομένων η οποία και στέλνει τα νέα δεδομένα σε μια λειτουργική μονάδα τροποποίησης αντικειμένου.μόλις γίνει η τροποποίηση επιστρέφουμε στην frontpage του site view που βρισκόμαστε (στην προκειμένη περίπτωση του Super Admin site view). 115

116 Από το στοιχείο Submit an Article οδηγούμαστε στην σελίδα: Εικόνα 112 Submit an article Η σελίδα αυτή επιτρέπει στον διαχειριστή να δημιουργήσει ένα άρθρο μέσω του front end. Εκτός της εισαγωγής του κειμένου έχει την δυνατότητα να ορίσει και άλλα στοιχεία για το άρθρο όπως π.χ. το section και την κατηγορία που ανήκει. Το νέο άρθρο αποθηκεύεται πατώντας το κουμπί Save ενώ με το κουμπί Cancel ακυρώνεται η διαδικασία και επιστρέφουμε στην frontpage του διαχειριστή. Ο επεξεργαστής κειμένου στην συγκεκριμένη περίπτωση είναι ο TinyMCE και επιτρέπει την δημιουργία πολύπλοκων κειμένων. Στην ουσία όμως όλη η φόρμα που εμφανίζεται στην εικόνα το μόνο που κάνει είναι η αποστολή των κατάλληλων 116

117 πληροφοριών με την μορφή παραμέτρων σε μία μονάδα δημιουργίας αντικειμένων.η μοντελοποίηση φαίνεται παρακάτω: Εικόνα 113 Submit an article - WebML Το σχήμα περιέχει δύο μονάδες δημιουργίας αντικειμένων.την μονάδα CreateFront την ενεργοποιούμε μόνο στην περίπτωση που το άρθρο έχει οριστεί να εμφανίζεται στην frontpage.κατά τα άλλα η μονάδα CreateArticle δημιουργεί το άρθρο και στην συνέχεια μεταφέρει τον έλεγχο στην frontpage. Από το στοιχείο Submit a Web Link οδηγούμαστε στην σελίδα δημιουργίας ενός web link.h μορφή της σελίδας είναι η: Εικόνα 114 Submit a weblink Η σελίδα περιέχει μια φόρμα με τα στοιχεία που καθορίζουν ένα web link. Τα στοιχεία αυτά θα αποθηκευθούν στις αντίστοιχες ιδιότητες της οντότητας jos_weblinks. Κάθε web link χρειάζεται ένα όνομα,μια κατηγορία (εμφανίζονται 117

118 μόνο αυτές με section com_weblinks), το URL του link και μια περιγραφή.το πεδίο published καθορίζει αν θα πρέπει το web link να εμφανίζεται στην εφαρμογή. Πατώντας το κουμπί Save το web link αποθηκεύεται αλλιώς με το Cancel επιστρέφουμε πίσω στην frontpage.μοντελοποιώντας την σελίδα στην WebML έχουμε : Εικόνα 115 Submit a weblink - WebML Όπως και προηγουμένως αν πατηθεί το κουμπί Save μεταφερόμαστε στην frontpage διαμέσου της λειτουργικής μονάδας CreateWebLink η οποία και δημιουργεί το Web Link.Αλλιώς μέσω του Cancel οδηγούμαστε απευθείας στην frontpage. Aπό το στοιχείο Logout οδηγούμαστε στην σελίδα: Εικόνα 116 Logout 118

119 Η σελίδα αυτή απλώς παρέχει ένα κουμπί Logout το οποίο έχει την ίδια λειτουργία με αυτό της frontpage.οπότε δεν αναλύεται περαιτέρω. Προηγουμένως αναλύθηκε το site view του διαχειριστή.η εφαρμογή υποστηρίζει και έναν άλλον τύπο χρηστών, τους registered users. Η frontpage τους είναι η: Εικόνα 117 Registered user frontpage Στο κόκκινο πλαίσιο φαίνονται τα νέα modules της frontpage των registered users. Η διαφορά σε σχέση με την frontpage του διαχειριστή είναι ότι αυτήν την φορά το User Menu περιέχει μόνο τα στοιχεία Your Details και Logout. Αυτό οφείλεται στο ότι οι registered users δεν έχουν τα δικαιώματα να δημιουργήσουν ένα άρθρο ή μια web link. Γενικά τα στοιχεία menu καθώς και τα άρθρα ορίζουν ένα επίπεδο πρόσβασης για το είδος των χρηστών στους οποίους πρέπει να εμφανίζονται.το επίπεδο πρόσβασης αποθηκεύεται στην ιδιότητα access των αντίστοιχων οντοτήτων. Για παράδειγμα αν ένα αντικείμενο έχει την τιμή access = 0 τότε όλοι οι χρήστες (και οι επισκέπτες) μπορούν να το δουν. Αν έχει access = 1 το αντικείμενο εμφανίζεται στους χρήστες με δικαιώματα registered users και άνω κ.τ.λ. Οι σελίδες που οδηγούμαστε από τα στοιχεία Your Details και Logout είναι παρόμοιες και έχουν αναλυθεί στο site view των διαχειριστών.η μόνη διαφορά έγκειται στο ότι η φόρμα της σελίδας Your Details περιέχει λιγότερα πεδία από ότι πριν, η λειτουργία της όμως παραμένει η ίδια. 3.4 Γενική ανάλυση μιας εφαρμογής Joomla Το Joomla δημιουργεί όλες τις σελίδες του δυναμικά με την βοήθεια PHP scripts. Αυτο το επιτυγχάνει με την προώθηση παραμέτρων στο αρχείο index.php. Ένα παράδειγμα ενός Joomla URL είναι το : 119

120 mid=27 Το τμήμα του URL αποτελεί την διεύθυνση της εφαρμογής. Επειδή αυτή είναι αποθηκευμένη στον ίδιο υπολογιστή με τον οποίο την χειριζόμαστε χρησιμοποιείται η λέξη localhost.από το αγγλικό ερωτηματικό και μετά ορίζονται οι μεταβλητές και οι τιμές τους που θα εισαχθούν στο script. Στην συγκεκριμένη περίπτωση έχουμε τις μεταβλητές option, view,id, Itemid που παίρνουν αντίστοιχα τις τιμές com_content, article, 19 και 27. Tα ζευγάρια μεταβλητων-τιμών χωρίζονται μεταξύ τους με το σύμβολο &. Η μέθοδος αυτή παραμετροποίησης ενός script μέσω ενός URL ονομάζεται GET μέθοδος. Μια Joomla εφαρμογή λόγο της δυναμικής δημιουργίας όλων των σελίδων της θα μπορούσε να μοντελοποιηθεί μέσω της WebML ως μια σελίδα που περιέχει όλα τα πιθανά να εμφανιστούν modules και components. Κάθε module θα μπορούσε να συνδέεται μέσω συνδέσμων μεταφοράς με άλλα module αλλά και μέσω contextual συνδέσμων με έναν αριθμό από component.αυτά είναι και τα στοιχεία Joomla που προβάλλονται στις σελίδες αν ακολουθήσουμε τους υπερσυνδέσμους του συγκεκριμένου module.επομένως μια γενική μοντελοποίηση θα μπορούσε να είναι η: Εικόνα 118 Frontpage - WebML 120

121 Στο σχήμα φαίνονται οι υποσελίδες Module1 έως ModuleN και η υποσελίδα των component.στο σχήμα επίσης φαίνονται μόνο οι πιθανοί σύνδεσμοι του Module1 το οποίο και οδηγεί σε σελίδες που προβάλλονται τα components που συνδέεται.αξίζει να σημειωθεί ότι δεν είναι ανάγκη να συνδέεται με όλα τα components. Μπορεί ακόμα κάποιο module να μην έχει εξερχόμενους συνδέσμους, αφού δεν οδηγεί μέσω υπερσυνδέσμων σε άλλες σελίδες.σε ορισμένες περιπτώσεις κάποιο component μπορεί να έχει contextual εξερχόμενους συνδέσμους σε άλλα components.αυτό συμβαίνει στην περίπτωση που περιέχει κάποιους υπερσυνδέσμους σε σελίδες της εφαρμογής.παράδειγμα ενός τέτοιου component είναι αυτό της frontpage που περιέχει ένα ευρετήριο με τα άρθρα που δεν προβάλλονται.σημειώστε ότι σε κάθε σελίδα προβάλλεται ένα μόνο component γι αυτό και βρίσκονται όλα σε μια OR δομή. Κάθε component καθορίζει τα modules που θα παρουσιάζονται στην σελίδα του.αυτό αναπαρίσταται με τους συνδέσμους μεταφοράς προς τα module. Ένα component συνδέεται μόνο με τα modules που εμφανίζονται στην σελίδα του (αυτό δεν φαίνεται από το σχήμα). Συνοψίζοντας, για να αναλυθεί μια εφαρμογή Joomla καταγράφουμε το σύνολο των components και των modules που εμφανίζονται σε όλες τις σελίδες της και τα δομούμε ως υποσελίδες όπως στο παραπάνω σχήμα. Στην συνέχεια βρίσκουμε ποια modules έχουν υπερσυνδέσμους σε σελίδες της εφαρμογής και τα συνδέουμε contextual με τα components αυτών των σελίδων. Επίσης συνδέουμε τα components με συνδέσμους μεταφοράς με τα modules που εμφανίζονται στις σελίδες τους.τέλος όσα components περιέχουν υπερσυνδέσμους σε σελίδες της εφαρμογής τα συνδέουμε contextual με τα αντίστοιχα components. Η ανάλυση αυτή είναι σε εννοιολογικό επίπεδο και δεν ασχολείται με τις λεπτομέρειες της υλοποίησης.τέτοιες λεπτομέρειες είναι π.χ. ποια modules και ποιο component θα προβληθούν στην πρώτη μας μετάβαση στην εφαρμογή.επίσης η ανάλυση έγινε σε επίπεδο υποσελίδων και όχι μονάδων. Η αντιστοίχηση κάθε module σε WebML μονάδες έγινε προηγουμένως.το μόνο που χρειάζεται κάποιος να κάνει είναι να γεμίσει την υποσελίδα με τις αντίστοιχες μονάδες και με τους εξωτερικούς συνδέσμους να συνδεθεί με τις αντίστοιχες υποσελίδες.(οι λειτουργικές μονάδες δεν ανήκουν στις υποσελίδες αλλά για λόγους ευκολότερης παρουσίασης του μοντέλου ενσωμάτωσα τους συνδέσμους σε αυτούς των υποσελίδων).στην συνέχεια παρουσιάζονται διάφορα είδη components καθώς και οι αντίστοιχες αναπαραστάσεις τους σε WebML μονάδες. (Ανάλυση σε μερικά components έχει γίνει και στην προηγούμενη παράγραφο που ανέλυε την συγκεκριμένη εφαρμογή.εδώ επιχειρείται μια γενικότερη προσέγγιση) Κάτι που υπονοείται από την προηγούμενη ανάλυση είναι ότι τα URLs καθορίζουν μόνο τα components που θα προβληθούν και όχι τα modules.αυτά καθορίζονται 121

122 από τα components.για να προσδιοριστούν τα διαφορετικά είδη των components πρέπει πρώτα να καταλάβουμε το τι κάνει η κάθε μεταβλητή του URL: Option: H option καθορίζει τον τύπο του component. Παραδείγματα τιμών που παίρνει είναι οι com_content: άρθρα, com_newsfeed: RSS Feed, com_search: φόρμα αποτελεσμάτων αναζήτησης, com_poll: αποτελέσματα των polls, com_weblinks: Web Links. View: H view καθορίζει το επίπεδο από το οποίο βλέπουμε το component. Tα επιπέδα είναι τα section: επίπεδο section, category: επίπεδο κατηγορίας, (article,weblink,newsfeed):επίπεδο περιεχόμενου. Id: Είναι το id του view της URL. Για παράδειγμα αν έχουμε view = section το id έχει την τιμή του αναγνωριστικού του section. Itemid: Αν έχουμε μεταβεί σε μια σελίδα από το στοιχείο ενός menu τότε η URL περιέχει και την μεταβλητή itemid η οποία περιέχει και το αναγνωριστικό του στοιχείου.χρησιμοποιείται για την αναπαράσταση των menu ιεραρχικά(αναγνωρίζονται τα υποστοιχεία). Layout: Καθορίζει τον τύπο μορφοποίησης που θα προβληθεί το component. Η απουσία της μεταβλητής από μία URL ορίζει έναν default τύπο μορφοποίησης. Ο συνδιασμός των πιθανών τιμών που μπορούν να πάρουν αυτές οι μεταβλητές ορίζουν και τους διαφορετικούς τύπους component που προβάλλονται σε μια σελίδα.στην συνέχεια παρουσιάζονται οι τύποι αυτοί. Article Layout: Είναι η κλασσική μορφοποίηση στην οποία προβάλλεται το περιεχόμενο ενός άρθρου μόνο. Η URL έχει τις τιμές option = com_content, view=article και id = ID. Στην WebML αναπαρίσταται ως : 122

123 Εικόνα 119 Article Layout Category Blog Layout (για άρθρα): Παρουσιάζονται σε blog μορφοποίηση όλα τα άρθρα μιας κατηγορίας.η URL έχει τις τιμές option = com_content, view=category, layout=blog και id=id. Στην WebML αναπαρίσταται ως: 123

124 Εικόνα 120 Category Blog Layout Category List Layout (για άρθρα): Παρουσιάζει σε μορφή λίστας όλα τα άρθρα που ανήκουν σε μια κατηγορία.η URL έχει τις τιμές option=com_content, view=category και id=id. Παρατηρείστε ότι αυτό που ξεχωρίζει την URL με την προηγούμενη είναι η απουσία της μεταβλητής layout. Η WebML αναπαράσταση της μορφοποίησης είναι η: 124

125 Εικόνα 121 Category List Layout Front Page Blog Layout: Είναι η μορφοποίηση τύπου blog που έχει η frontpage για το component της.προβάλλονται τα άρθρα που βρίσκονται στην οντότητα jos_content_frontpage.η URL δεν παίρνει τιμές. Η γραφική αναπαράσταση σε WebML είναι η: 125

126 Εικόνα 122 Frontpage Blog Layout Section Blog Layout(για άρθρα): Παρουσιάζονται σε blog μορφοποίηση τα άρθρα που ανήκουν στο ίδιο section.η URL παίρνει τις τιμές option=com_content, view=section, layout=blog και id=id.η WebML αναπαράσταση είναι η: 126

127 Εικόνα 123 Section Blog Layout Section Layout: Προβάλλει μια λίστα με τις κατηγορίες που ανήκουν σε ένα section.h URL έχει τις τιμές option=com_content, view=section και id=id. Η WebML μοντελοποίηση είναι η: 127

128 Εικόνα 124 Section Layout Category List Layout (News Feeds): Η μορφοποίηση αυτή δείχνει μια λίστα με τις κατηγορίες των news feeds. Οι τιμές της URL είναι option=com_newsfeeds και view=categories. Η γραφική αναπαράσταση σε WebML είναι η: Εικόνα 125 Category List Layout 128

129 Category Layout (News Feeds): Η μορφοποίηση αυτή παρουσιάζει όλα τα News Feeds μιας κατηγορίας.οι τιμές της URL είναι οι option=com_newsfeeds, view=category και id=id.παρατηρείστε ότι η URL διαφέρει από αυτήν της προηγούμενης κατηγορίας με την προσθήκη της μεταβλητής id.η WebML αναπαράσταση είναι η: Εικόνα 126 Category Layout Single Feed Layout: Αυτός ο τύπος component προβάλλει τα περιεχόμενα ενός News Feed. Τα περιεχόμενα αυτά προέρχονται από εξωτερικές ιστοσελίδες και επομένως δεν τα μοντελοποιούμε σε WebML.Η URL παίρνει τις τιμές option=com_newsfeeds, view=newsfeed, id=id και catid = CATID. Η catid μεταβλητή περιέχει το αναγνωριστικό της κατηγορίας που ανήκει ένα news feed ενώ η id περιέχει το αναγνωριστικό του news feed. Polls Layout: Είναι ο τύπος component που χρησιμοποιείται για την αναπαράσταση των polls.η URL παίρνει τις τιμές option=com_poll και id=id.η id μεταβλητή χρησιμοποιείται για τον προσδιορισμό του default poll που θα προβληθεί στην σελίδα μόλις φορτωθεί.η WebML αναπαράσταση έχει παρουσιαστεί στην προηγούμενη παράγραφο της εργασίας. Search: Είναι το component που εμφανίζει τα αποτελέσματα μιας αναζήτησης.η URL παίρνει τις τιμές option=com_search, searchword={},ordering={}, searchphrase={}. Οι νέες μεταβλητές χρησιμοποιούνται για τον καθορισμό ορισμένων παραμέτρων αναζήτησης.η WebML αναπαράσταση έχει παρουσιαστεί προηγουμένως. Web Link Category List Layout: Το component αυτό παρουσιάζει σε μορφή λίστας τις κατηγορίες των Web Links.Oι τιμές της URL είναι option=com_weblinks και view=categories.h WebML αναπαράσταση είναι η: 129

130 Εικόνα 127 Web Link Category List Layout Category List Layout(Web Links): Αυτό το component δείχνει όλα τα Web Links που ανήκουν σε μια συγκεκριμένη κατηγορία με την μορφή λίστας.η URL έχει τις τιμές option=com_weblinks, view=category και id=id.h WebML αναπαράσταση του είναι η: 130

131 Εικόνα 128 Category List Layout User Components: Τα component αυτά αναπαριστούν μια φόρμα στην οποία ο χρήστης εισάγει τα στοιχεία του.είναι τα component: Default Login Layout, Default Registration Layout, Default Remind, Default Reset Layout, Default User Layout και User Form Layout. Τα component αυτά έχουν ως κοινή τιμή στην URL την option=com_user.h τιμή της μεταβλητής view τα διαχωρίζει.η WebML ανάλυση μερικών User Components έχει παρουσιαστεί στην προηγούμενη παράγραφο και συγκεκριμένα στο τμήμα με τα διαφορετικά site views. Υπάρχουν και άλλοι τύποι components όμως οι σημαντικότεροι παρουσιάστηκαν. 131

132 ΚΕΦΑΛΑΙΟ 4 Αυτόματη Ανάλυση Μιας Joomla Εφαρμογής σε WebML 4.1 Εισαγωγή Στο προηγούμενο κεφάλαιο αναλύσαμε μια εφαρμογή Joomla σε WebML οντότητες. Η ανάλυση αυτή έγινε παρατηρώντας την εμφάνιση των Joomla modules και components σε έναν browser. Δεν χρησιμοποιήθηκε κάποιο πρόγραμμα για την εξαγωγή των αποτελεσμάτων.στο κεφάλαιο αυτό θα περιγράψουμε μια εφαρμογή η οποία αναλύει αυτόματα ένα Joomla ιστότοπο. Η εφαρμογή αυτή έχει υλοποιηθεί στην γλώσσα προγραμματισμού Java και παίρνει ως είσοδο το URL ενός Joomla ιστότοπου και παράγει ως έξοδο ένα XML αρχείο που περιγράφει τις WebML οντότητες καθώς και την δομή του ιστότοπου σε γραφική μορφή. 4.2 CMS2WebML To όνομα της εφαρμογής είναι CMS2WebML και έχει υλοποιηθεί με το NetBeans IDE 6.5. Η εφαρμογή αναλύει τον Joomla ιστότοπο εξάγοντας τα module που περιέχει από τον HTML κώδικά του. Αυτός ο τρόπος λειτουργίας καθιστά την εφαρμογή εξαιρετικά ευέλικτη αφού το μόνο που χρειάζεται είναι να γνωρίζει ο χρήστης το URL του ιστότοπου που θέλει να αναλύσει.δεν χρειάζεται η εφαρμογή να έχει πρόσβαση στην βάση δεδομένων του ιστότοπου.υπάρχει όμως και ένα μειονέκτημα σε αυτόν τον τρόπο λειτουργίας της εφαρμογής. Ο HTML κώδικας ενός Joomla ιστότοπου παράγεται δυναμικά με την βοήθεια μιας βασης δεδομένων και του template που χρησιμοποιεί. H ΗΤΜL ενός Joomla module διαφέρει σε ορισμένα σημεία ανάλογα με το template. Επομένως η εφαρμογή θα πρέπει να αναγνωρίζει τα modules με βάση κομμάτια HTML κώδικα που είναι όσο περισσότερο γίνεται ανεξάρτητα του template που χρησιμοποιείται. Αυτό δεν είναι 100% εφικτό αλλά ως επι τον πλείστον λειτουργεί.υπάρχει επομένως η περίπτωση η εφαρμογή να μην αναγνωρίσει όλα τα modules ενός ιστότοπου που χρησιμοποιεί ένα συγκεκριμένο template, δηλαδή να μην αναλύσει πλήρως τον ιστότοπο. Αυτό δεν είναι σύνηθες απλά μπορεί να συμβεί με την χρήση ορισμένων templates. H εφαρμογή διαθέτει ένα πολύ απλό αλλά χρηστικό GUI.Αυτό φαίνεται παρακάτω: 132

133 Εικόνα 129 CMS2WebML GUI Όπως φαίνεται και στην εικόνα η εφαρμογή περιέχει 2 text fields.στο πρώτο text field με label Enter CMS URL ο χρήστης εισάγει το αρχικό URL του Joomla ιστότοπου. Είναι πολύ σημαντικό ο χρήστης να εισάγει το URL της αρχικής σελίδας γιατί αλλιώς υπάρχει η περίπτωση να μην σαρωθούν ορισμένες σελίδες που είναι προσβάσιμη απο αυτήν. Στο δεύτερο text field εισάγεται η διαδρομή καθώς και το όνομα του αρχείου που θέλει ο χρήστης να αποθηκευθεί η XML ανάλυση του ιστότοπου. Για να ξεκινήσει η ανάλυση πρέπει ο χρήστης να πατήσει το κουμπί Start. Στη εικόνα φαίνεται και μία text area που περιλαμβάνει το GUI της εφαρμογής. Σε αυτήν μόλις τελειώσει η ανάλυση εμφανίζονται σε μορφή κειμένου οι σελίδες καθώς και τα modules που περιλαμβάνει η κάθε μία. 133

134 4.3 Ανάλυση του Joomla ιστότοπου με το CMS2WebML Στο προηγούμενο κεφάλαιο αναλύθηκε ένας Joomla ιστότοπος που δημιουργήθηκε πειραματικά με τα sample δεδομένα του Joomla κατά την εγκατάσταση του. Στον ιστότοπο αυτό ενεργοποιήθηκαν όλα τα modules που είναι διαθέσιμα στην έκδοση Joomla Για να δούμε πως λειτουργεί η CMS2WebML στο κεφάλαιο αυτό θα πραγματοποιηθεί η ίδια ανάλυση με την χρήση της συγκεκριμένης εφαρμογής.το template που χρησιμοποιείται στην συγκεκριμένη ανάλυση είναι το default rhuk_milkyway.οι επόμενες εικόνες δείχνουν την διαδικασία: Εικόνα 130 Αποτελέσματα ανάλυσης 134

135 Εικόνα 131 Γραφικά αποτελέσματα ανάλυσης Εικόνα 132 Αποτελέσματα ανάλυσης σε XML 135

136 Στην εικόνα 4.2 φαίνεται το GUI της εφαρμογής μετά την ολοκλήρωση της ανάλυσης.παρατηρούμε ότι η text area περιέχει την ανάλυση του ιστότοπου. Μόλις ολοκληρωθεί η ανάλυση εμφανίζεται και το παράθυρο γραφικής αναπαράστασης του ιστότοπου όπως φαίνεται και στην εικόνα 4.3. Το παράθυρο αυτό παριστάνει γραφικά τα διάφορα WebML modules που βρίσκει στις ιστοσελίδες του ιστότοπου.το παράθυρο αυτό απεικονίζει σε κάθε tab και την γραφική αναπαράσταση μιας ιστοσελίδας.όπως φαίνεται και στην εικόνα ο αριθμός των ξεχωριστών σελίδων του ιστότοπου είναι 32.Τέλος στην εικόνα 4.4 φαίνεται ένα μικρό κομμάτι του XML κώδικα της ανάλυσης. Για να δούμε πιο αναλυτικά την ανάλυση θα παρουσιάσω στην συνέχεια την ανάλυση της κεντρικής ιστοσελίδας του ιστότοπου Η ιστοσελίδα αυτή έχει παρουσιαστεί αναλυτικά στο προηγούμενο κεφάλαιο, εδώ απλά θα παρουσιαστούν πιο αναλυτικά τα αποτελέσματα της εφαρμογής. Γνωρίζουμε από το προηγούμενο κεφάλαιο ότι τα modules που περιέχει η αρχική σελίδα είναι τα: search, pillmenu, latest news, popular, main menu, key concepts menu, resources menu, login, poll, who s online, breadcrumb, banner, advertisement, syndicate, footer, frontpage layout component. Όλα τα modules τα βρίσκει και η εφαρμογή.το αποτέλεσμα της text area είναι το παρακάτω: Front Page SearchModule Found!!! LoginModule Found!!! LatestNewsModule Found!!! PopularModule Found!!! PollModule Found!!! BreadcrumbModule Found!!! BannerModule Found!!! AdvertisementModule Found!!! SyndicateModule Found!!! WhosOnlineModule Found!!! FooterModule Found!!! 136

137 PillMenuModule Found!!! 3 Menu Modules vrethikan Menu Module Found with Items: Home Joomla! Overview Joomla! License More about Joomla! FAQ The News Web Links News Feeds Menu Module Found with Items: Joomla! Home Joomla! Forums Joomla! Documentation Joomla! Community Joomla! Magazine OSM Home Administrator Menu Module Found with Items: Extensions Content Layouts Example Pages findmodules Finished... Component Type: Front Page Blog Layout Η γραφική αναπαράσταση της σελίδας είναι η: 137

138 138

139 Εικόνα 133 Γραφικά αποτελέσματα ανάλυσης αρχικής σελίδας Τέλος η XML που παράγει η εφαρμογή για την κεντρική ιστοσελίδα είναι η παρακάτω: <PAGE id="fp"> <!-- SEARCH MODULE START --> <ENTRYUNIT id="fpsearch"> <FIELD id="searchfield" type="string"> <VALIDATIONRULE id="searchfield" predicate="not NULL"/> </FIELD> <!-- SEARCH MODULE END --> <!-- LOGIN MODULE START --> <ENTRYUNIT id="fplogin"> <FIELD id="username" type="string"> <VALIDATIONRULE id="username" predicate="not NULL"/> </FIELD> <FIELD id="password" type="string"> <VALIDATIONRULE id="password" predicate="not NULL"/> </FIELD> <!-- LOGIN MODULE END --> <!-- LATEST NEWS MODULE START --> 139

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

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

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Βάσεις Δεδομένων ΙΙ Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Εισαγωγή Πολλές εφαρμογές διαδικτύου υποστηρίζουν web διεπαφές

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη Σχεσιακό Μοντέλο Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη Εισαγωγή Το σχεσιακό μοντέλο δεδομένων (relational data model) προτάθηκε από τον E. F. Codd το 1970 Aποτελεί ένα μέσο λογικής δόμησης

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

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

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

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

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

EBSCOhost Research Databases

EBSCOhost Research Databases Η EBSCOhost είναι ένα online σύστημα αναζήτησης σε έναν αριθμό βάσεων δεδομένων, στις οποίες είναι συμβεβλημένο κάθε φορά το ίδρυμα. Διαθέτει πολύγλωσσο περιβάλλον αλληλεπίδρασης (interface) με προεπιλεγμένη

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

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση

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

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 25 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ψηφιακής

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

SilverPlatter WebSPIRS 4.1.

SilverPlatter WebSPIRS 4.1. WebSPIRS 4.1. Η υπηρεσία WebSPIRS από τη SilverPlatter αποτελεί ένα φιλικό εργαλείο πρόσβασης και αναζήτησης σε περιεχόμενα βάσεων δεδομένων. Η Βιβλιοθήκη και Κέντρο Πληροφόρησης του Πανεπιστημίου Θεσσαλίας

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Διαγράμματα Κλάσεων στη Σχεδίαση

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

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

H Γενετική Αρχιτεκτονική του Σακχαρώδους Διαβήτη Τύπου 2. Ερευνητικό Πρόγραμμα «Θαλής» Σχεδιασμός και Υλοποίηση της Διαδικτυακής Πύλης του Έργου

H Γενετική Αρχιτεκτονική του Σακχαρώδους Διαβήτη Τύπου 2. Ερευνητικό Πρόγραμμα «Θαλής» Σχεδιασμός και Υλοποίηση της Διαδικτυακής Πύλης του Έργου ΟΜΑΔΑ ΒΙΟΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ H Γενετική Αρχιτεκτονική του Σακχαρώδους Διαβήτη Τύπου 2. Ερευνητικό Πρόγραμμα «Θαλής» Σχεδιασμός και Υλοποίηση της Διαδικτυακής Πύλης του Έργου Α. Τσακαλίδης,

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

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

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

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

Συστήματα Διαχείρισης Περιεχομένου στον Παγκόσμιο Ιστό Διάλεξη #7 η : Joomla!: Ενθέματα (modules)

Συστήματα Διαχείρισης Περιεχομένου στον Παγκόσμιο Ιστό Διάλεξη #7 η : Joomla!: Ενθέματα (modules) Συστήματα Διαχείρισης Περιεχομένου στον Παγκόσμιο Ιστό Διάλεξη #7 η : Joomla!: Ενθέματα (modules) Γαβαλάς Δαμιανός dgavalas@aegean.gr Ενθέματα (modules) Τα ενθέματα (module) είναι επεκτάσεις που χρησιμοποιούνται

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

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

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

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

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1 Σχεσιακό Μοντέλο Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή O σχεδιασμός μιας βάση δεδομένων κωδικοποιεί κάποιο μέρος του φυσικού κόσμου Ένα μοντέλο δεδομένων είναι ένα σύνολο από έννοιες για

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 6: Εισαγωγή στις βάσεις δεδομένων (Μέρος Α) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα Εισαγωγή Σχεσιακό Μοντέλο Σχεδιασμός μιας Β : Βήματα Ανάλυση Απαιτήσεων Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

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

Επεκτεταμένο Μοντέλο Οντοτήτων-Συσχετίσεων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 08 Νοεμβρίου 2012 Περιεχομενα

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα Εισαγωγή Σχεσιακό Μοντέλο Σχεδιασμός μιας Β : Βήματα Ανάλυση Απαιτήσεων Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

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

Βελτιώνω μια λεπτομέρεια, σε σχέση με την Ανακοίνωση από 22/6/2009 (1.4.3)

Βελτιώνω μια λεπτομέρεια, σε σχέση με την Ανακοίνωση από 22/6/2009 (1.4.3) Σχεδιασμός Πληροφοριακών Συστημάτων Η παρακάτω Άσκηση είναι το θέμα της εξέτασης Θεωρίας Ιουνίου 2009. Μπορείτε να το μελετήσετε και να το υλοποιήσετε στον υπολογιστή σας. Αυτό θα ήταν μια εξαιρετική εργασία

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

Δημιουργία ιστοσελίδας με. Wordpress - Βασικές λειτουργίες

Δημιουργία ιστοσελίδας με. Wordpress - Βασικές λειτουργίες Δημιουργία ιστοσελίδας με Wordpress - Βασικές λειτουργίες Περιεχόμενα Εγγραφή και αρχικές ρυθμίσεις Διαχείριση Ιστοσελίδας Δημιουργία Menu Δημιουργία σελίδας Δημιουργία Άρθρου Αλλαγή Εμφάνισης Εγγραφή

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

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

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ 2013 ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ Περιήγηση στις δυνατότητες του λογισμικού και στον τρόπο χρήσης του ΟΜΑΔΑ ΕΡΓΟΥ ΔΙΕΥΘΥΝΣΗΣ

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

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I) JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I) Δημήτρης Μακρής Advanced Topics in Telecoms 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 2 Ο ΒΗΜΑ: ΔΙΑΧΕΙΡΙΖΟΝΤΑΣ

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

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer Σελίδα 1 Copyright Copyright 2007 Atlantis Group. Ιστορικό εγγράφου Έκδοση Εγχειριδίου: 1.0 Ημερομηνία δημιουργίας: 26/11/2007 Σελίδα 2 ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 4 2

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

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών)

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών) ΕΡΓΑΣΙΑ (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών) Τίτλος: Εφαρµογή ιαδικτύου ιαχείρισης Αποθήκων (Warehouse Management Web Application) Ζητούµενο:

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/ 1) Εμφάνιση ιστοσελίδας Ανοίγουμε το πρόγραμμα πλοήγησης (Firefox, Chrome, Internet Explorer κτλ) και στη γραμμή διευθύνσεων πληκτρολογούμε τη διεύθυνση http://localhost ή http://127.0.0.1. Αν δεν βλέπουμε

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

Μοντελοποίηση Πεδίου

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

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

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (2 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Μοντελοποίηση δεδομένων Μοντέλο Οντοτήτων Συσχετίσεων Παραδείγματα Διαγραμματικές τεχνικές Συμβολισμοί Τριαδικές συσχετίσεις 2

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

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

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

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

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

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β Εισαγωγή Σχεδιασµός µιας Β ανάλυση ποιας πληροφορίας και της σχέσης ανάµεσα στα στοιχεία της περιγραφή της δοµής - σχήµα σε διάφορους συµβολισµούς ή µοντέλα Μοντέλο Οντοτήτων - Συσχετίσεων γραφικό µοντέλο

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

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΘΕΟΔΟΣΙΟΥ ΝΙΚΗ Α.Μ. 103/04 ΠΑΠΑΠΕΤΡΟΥ ΦΩΤΕΙΝΗ Α.Μ. 134/04 Εξεταστική Επιτροπή Επιβλέπουσα Καθηγήτρια : Σατρατζέμη Μαρία, Καθηγήτρια Μέλη : Ευαγγελίδης

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή Τι είναι ένα CMS CMS ή Σύστημα Διαχείρισης Περιεχομένου (Content Management System) ονομάζουμε ένα λογισμικό που μας βοηθά να ελέγχουμε και να διαχειριζόμαστε έναν ιστότοπο δημόσιας ή περιορισμένης πρόσβασης.

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

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9)

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΓΙΩΡΓΟΣ ΜΟΥΡΚΟΥΣΗΣ Μηχανικός Η/Υ & Πληροφορικής

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

Σχεδίαση Βάσεων Δεδομένων

Σχεδίαση Βάσεων Δεδομένων Οδηγίες Μέρος 1: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

Joomla! with K2 - User Guide

Joomla! with K2 - User Guide Joomla! with K2 - User Guide τελευταία ανανέωση: 27/03/2014 από την ICAP WEB Solutions 1 Η κατασκευή της δυναμικής σας ιστοσελίδας έχει ολοκληρωθεί και μπορείτε πλέον να προχωρήσετε σε αλλαγές ή προσθήκες

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

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

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

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Σύστημα διαχείρισης περιεχομένου (Content Management System) Τι είναι ένα CMS Σύστημα διαχείρισης περιεχομένου (Content Management System) Λογισμικό το οποίο χρησιμοποιείται για την οργάνωση, ταξινόμηση και αρχειοθέτηση πληροφορίας Χρησιμοποιούνται για τη δημιουργία

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 1 Δρ. Βασιλική Κούφη Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data

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

Τίτλος Πακέτου Certified Computer Expert-ACTA

Τίτλος Πακέτου Certified Computer Expert-ACTA Κωδικός Πακέτου ACTA - CCE - 002 Τίτλος Πακέτου Certified Computer Expert-ACTA Εκπαιδευτικές Ενότητες Επεξεργασία Κειμένου - Word Δημιουργία Εγγράφου Προχωρημένες τεχνικές επεξεργασίας κειμένου & αρχείων

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

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση. Εισαγωγή Σχεσιακό Μοντέλο Ανάλυση Απαιτήσεων Σχεδιασμός μιας Β : Βήματα Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

Web-TMS Web Thesaurus Management System

Web-TMS Web Thesaurus Management System Web-TMS Web Thesaurus Management System Περιγραφή Συστήματος Κέντρο Πολιτισμικής Πληροφορικής Εργαστήριο Πληροφοριακών Συστημάτων Ινστιτούτο Πληροφορικής Ίδρυμα Τεχνολογίας και Έρευνας Ηράκλειο Κρήτης

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

Συστήματα Διαχείρισης Περιεχομένου στον Παγκόσμιο Ιστό Διάλεξη #7 η : Επιλογές εμφάνισης άρθρων. Modules. Γαβαλάς Δαμιανός dgavalas@aegean.

Συστήματα Διαχείρισης Περιεχομένου στον Παγκόσμιο Ιστό Διάλεξη #7 η : Επιλογές εμφάνισης άρθρων. Modules. Γαβαλάς Δαμιανός dgavalas@aegean. Συστήματα Διαχείρισης Περιεχομένου στον Παγκόσμιο Ιστό Διάλεξη #7 η : Επιλογές εμφάνισης άρθρων. Modules. Γαβαλάς Δαμιανός dgavalas@aegean.gr 1 Καθολικές επιλογές εμφάνισης άρθρων Global article options

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

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head> Εισαγωγη στην html Ο παγκόσμιος ιστός (αγγ.: World Wide Web ή www) είναι η πιο δημοφιλής υπηρεσία που μας παρέχει το Διαδίκτυο (Internet) και είναι ένα σύστημα διασυνδεδεμένων πληροφοριών (κειμένου, εικόνας,

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

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

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης. Γενικές Ρυθμίσεις Στην ενότητα αυτή θα περιγράψουμε τις λειτουργίες των Γενικών Ρυθμίσεων. Εκεί αποθηκεύονται όλες οι ρυθμίσεις του Guru CMS. Εάν κάνετε κλικ στο σύνδεσμο "Γενικές Ρυθμίσεις" από την κύρια

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

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

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

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

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

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Μοντελοποίηση Σχήμα (database schema): η περιγραφή της δομής της πληροφορίας που είναι αποθηκευμένη στη βδ με τη χρήση ενός μοντέλου δεδομένων

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

Υποδείγματα Ανάπτυξης

Υποδείγματα Ανάπτυξης Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα

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

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Οδηγίες

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

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα

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

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων (Ημερομηνία Παράδοσης: Δευτέρα 5/5/2008, 11:59μμ Εισαγωγή Στο

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Μέρος 1 1 Βασικοί όροι... 11 2 Βασική δομή κώδικα HTML... 25 3 Μορφοποίηση κειμένου... 39 4 Μορφοποίηση παραγράφων... 51 5 Εισαγωγή εικόνας... 63 6 Λίστες με

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

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις 1) Ερωτήσεις Σωστού/Λάθους (ΣΛ) Το πακέτο λογισμικού Excel της Microsoft είναι λογισμικό διαχείρισης ΒΔ (ΣΛ) Το πακέτο λογισμικού Access της Microsoft είναι λογισμικό

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

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Πληροφορική 2. Βάσεις Δεδομένων (Databases) Πληροφορική 2 Βάσεις Δεδομένων (Databases) 1 2 Επίπεδα αρχεία (flat files) Επίπεδο αρχείο είναι ένα αρχείο που αποτελείται από ένα σταθερό, μικρό αριθμό πεδίων. Οι εγγραφές του αρχείου μπορεί να μην ακολουθούν

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα

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

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Σεμινάριο joomla! 3 Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Ξεκινώντας:Τι είναι τα CMS Η Joomla είναι λογισμικό κατασκευής

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

Εννοιολογικός σχεδιασμός βάσεων δεδομένων Το μοντέλο Οντοτήτων/Συσχετίσεων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Γενικά για οντότητες και συσχετίσεις 2 Διαγράμματα

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 17 18 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο.

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

Θεωρία Κανονικοποίησης

Θεωρία Κανονικοποίησης Θεωρία Κανονικοποίησης Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Βασική

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ 2015-2016

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ 2015-2016 Βάσεις Δεδομένων Εισαγωγή για το Εργαστήριο Δρ. Τιάκας Ελευθέριος Τμήμα Πληροφορικής ΑΠΘ 2015-2016 2 Βασικοί στόχοι Μερικοί βασικοί στόχοι του εργαστηρίου είναι: Η ικανότητα ανάλυσης των απαιτήσεων, κατασκευής

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

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

Σχεδιασμός μιας Β : Βήματα

Σχεδιασμός μιας Β : Βήματα Σχεσιακό Μοντέλο 1 Εισαγωγή Ανάλυση Απαιτήσεων Σχεδιασμός μιας Β : Βήματα Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

ΙΔΡΥΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΡΕΥΝΑΣ (ITE)

ΙΔΡΥΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΡΕΥΝΑΣ (ITE) Α ν ά π τ υ ξ η τ η ς ε λ λ η ν ι κ ή ς ε ρ ε υ ν η τ ι κ ή ς Υ π ο δ ο μ ή ς γ ι α τ ι ς Α ν θ ρ ω π ι σ τ ι κ έ ς Ε π ι σ τ ή μ ε ς Δ Υ Α Σ MIS 4 4 1 2 4 5 ΠΑΡΑΔΟΤΕΟ ΠΑ 2.8 ΙΤΕ 3 Λογισμικό σύστημα για

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Ευαγγελία Πιτουρά 1 Τι έχουμε δει Μοντελοποίηση Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

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

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων ΕΣΔ516 Τεχνολογίες Διαδικτύου Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα Ορισμοί Συστατικά στοιχεία εννοιολογικής σχεδίασης Συστατικά

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

Η επιλογή γλώσσας (π.χ. ελληνικά) διεπαφής του συστήματος, βρίσκεται στο υποσέλιδο του ιστότοπου

Η επιλογή γλώσσας (π.χ. ελληνικά) διεπαφής του συστήματος, βρίσκεται στο υποσέλιδο του ιστότοπου Wordpress.com Περιεχόμενα Wordpress... 1 Ρύθμιση γλώσσας... 1 Δημιουργία λογαριασμού και σύνδεση... 2 Δημιουργία νέου ιστότοπου... 2 Πλατφόρμα διαχείρισης... 5 Αναγνώστης... 5 Πλατφόρμα ιστοτόπου... 5

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

GoDigital.CMS Content Management System. Πλήρης διαχείριση περιεχομένου ιστοσελίδας

GoDigital.CMS Content Management System. Πλήρης διαχείριση περιεχομένου ιστοσελίδας GoDigital.CMS Content Management System Πλήρης διαχείριση περιεχομένου ιστοσελίδας Γενική περιγραφή Πλήρης λύση ηλεκτρονικής παρουσίας Το GoDigital.CMS είναι μία πλήρη εφαρμογή διαχείρισης ηλεκτρονικής

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Εκπαιδευτικό Εργαλείο Κανονικοποίησης Εκπαιδευτικό Εργαλείο Κανονικοποίησης Σύντομες οδηγίες χρήσης Εισαγωγή Το πρόγραμμα Εκπαιδευτικό Εργαλείο Κανονικοποίησης αυτοματοποιεί τη διαδικασία της κανονικοποίησης πινάκων σε BCNF μορφή. Ο χρήστης

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στο Unix Υπολογιστικά συστήματα: Στρώματα 1 επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Περιεχόμενα 2 Εισαγωγή

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

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

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

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με

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

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

Βάσεις Δεδομένων Εισαγωγή Βάσεις Δεδομένων Εισαγωγή Σκοποί ενότητας Εκμάθηση Συστημάτων Διαχείρισης Βάσεων Δεδομένων Δημιουργία E-R διαγραμμάτων 2 Περιεχόμενα ενότητας Συστήματα Διαχείρισης Βάσεων Δεδομένων Διάγραμμα οντοτήτων

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

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 2 3 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο. Όλα

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