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

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

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

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

Συςτήματα Διαχείριςησ Περιεχομένου

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

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

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

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

Ένωση Ελλήνων Χρηστών και Φίλων ΕΛ/ΛΑΚ

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

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

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

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

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

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου

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

6 Εισαγωγή στο Wordpress 3.x

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

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

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να:

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

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

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

Σύστημα Διαχείρισης Περιεχομένου

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress

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

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

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

XAMPP Apache MySQL PHP javascript xampp

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

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

Τεχνικός Εφαρμογών Πληροφορικής

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

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

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου.

Σχολείο, Εκπαιδευτικοί Διαδικτυακή Παρουσία με χρήση CMS. Α. Χατζηπαπαδόπουλος Φ. Δεληγιάννης 1 ο ΕΚ Αθηνών

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

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

Ολοκληρωμένο Πληροφοριακό Σύστημα για Μικρές Επιχειρήσεις

ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς

Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης

Linux Terminal Server Project

Διαφάνεια Κεφάλαιο 12 Υλοποίηση και βελτιστοποίηση υπηρεσιών ψηφιακού επιχειρείν

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

28η Συνάντηση Εκπαιδευτικών Δυτικής Μακεδονίας στις ΤΠΕ Φλώρινα 7/4/2013. To wordpress εγκατάσταση στο ΠΣΔ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

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

Οδηγός στρατηγικής επωνυμίας για διαφημιστικές εταιρείες

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

Ελεύθερο Λογισμικό. Η αρχή της ιστορίας Κιαγιαδάκης Γιώργος (το labάκι)

Wikis: Ανάπτυξη συνεργατικότητας με αξιοποίηση εφαρμογών και υπηρεσιών διαδικτύου

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

Χαρακτηριστικά ιστοσελίδας

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

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

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

Τεχνολογία Πολυμέσων. Ενότητα4: Επεξεργασία Βίντεο - Avidemux. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

φιλοξενία & διαχείριση ιστοσελίδων

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

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

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

Σχεδιαστικά Προγράμματα Επίπλου

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

, α/α: 1. Εξόδου» Παιδείας

περιβάλλον joomla µε έµφαση στην υποστήριξη πολυµέσων

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

Οδηγός γρήγορης εκκίνησης

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου

Σχεδιασμός και Ανάπτυξη Ιστοσελίδων ΙΙ ΙΕΚ ΤΡΙΑΝΔΡΙΑΣ ΓΡΑΦΙΣΤΑΣ ΕΝΤΥΠΟΥ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΕΣΩΝ. CMS Content Management Systems Joomla

1. ΕΙΣΑΓΩΓΗ 2. ΠΕΡΙΓΡΑΦΗ

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

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

Ποια cookies χρησιμοποιούμε στον ιστότοπό μας;

Κεφάλαιο 13: : Εφαρμογές νέφους. Καραμαούνας Π. 1

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

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών

GoDigital.Store E-Commerce Platform

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Ο υποψήφιος Ανάδοχος συμπληρώνει τους παρακάτω πίνακες συμμόρφωσης με την απόλυτη ευθύνη της ακρίβειας των δεδομένων.

α. Προσωπικά δεδομένα που δύνανται να ζητηθούν από την σελίδα.

Information Technology for Business

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

(

Ένωση Ελλήνων Χρηστών και Φίλων ΕΛ/ΛΑΚ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΑΣ ΥΠΟΔΟΜΩΝ, ΝΑΥΤΙΛΙΑΣ & ΤΟΥΡΙΣΜΟΥ ΑΠΟΦΑΣΗ ΕΠΙ ΔΗΛΩΣΗΣ ΣΗΜΑΤΟΣ ΑΠΟΦΑΣΗ ΕΞ 3113/

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL: στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση

Περιεχόμενα. Πληροφορίες Σχετικά με το βιβλίο...11 Τι είναι το WordPress...11 Πληροφορίες για τον συγγραφέα...12

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

Χαρακτηριστικά ιστοσελίδας

Transcript:

A.Τ.Ε.Ι. ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΔΗΜΙΟΥΡΓΙΑ ΔΥΝΑΜΙΚΟΥ ΤΟΠΟΥ ΓΙΑ ΑΝΑΖΗΤΗΣΗ ΚΑΤΟΙΚΙΑΣ Μ Ι Χ Α Λ Η Σ ΤΣΑΜΠ Α Σ (T-2365) Επιβλέπων Καθηγητής : Γεώργιος Κακαρόντζας - ΛΑΡΙΣΑ 2014

«Δηλώνω υπεύθυνα ότι το παρόν κείμενο αποτελεί προϊόν προσωπικής μελέτης και εργασίας και πως όλες οι πηγές που χρησιμοποιήθηκαν για τη συγγραφή της δηλώνονται σαφώς είτε στις παραπομπές είτε στη βιβλιογραφία. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαι ενήμερος/η για την επέλευση των νομίμων συνεπειών»

Εγκρίθηκε από την τριμελή εξεταστική επιτροπή Τόπος, ημερομηνία ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ 1. Ονοματεπώνυμο, Υπογραφή 2. Ονοματεπώνυμο, Υπογραφή 3. Ονοματεπώνυμο, Υπογραφή

ΠΕΡΙΕΧΟΜΕΝΑ Περιεχόμενα... i I. Εισαγωγή... 1 II. Λογισμικό Ανοικτού Κώδικα... 3 II.1. Χαρακτηριστικά - Ορισμός... 3 II.2. Σχετική Βιβλιογραφία... 6 II.3. Τύποι Αδειών... 7 II.3.1. Ακαδημαϊκές Άδειες... 7 II.3.2. Άδειες Ανοιχτού Λογισμικού... 8 II.3.3. Άδειες τύπου Mozilla... 8 II.3.4. Υβριδικές & Διπλές Άδειες... 9 II.4. Προτερήματα Χρήσης... 10 II.5. Αντίλογος... 13 III. Σχεδιασμός Ιστοσελίδων... 15 III.1. Είδη Ιστοσελίδων... 15 III.1.1. Στατικές Ιστοσελίδες... 15 III.1.2. Δυναμικές Ιστοσελίδες... 16 III.2. CMS (Σύστημα Διαχείρισης Περιεχομένου)... 18 III.3. Παρουσίαση Προγραμμάτων CMS... 23 III.3.1. WordPress... 23 III.3.2. Joomla... 24 III.3.3. Drupal... 26 III.4. Γλώσσα PHP... 27 i

IV. Παρουσίαση Εφαρμογής... 30 IV.1. Εγκατάσταση XAMPP... 30 IV.2. Βάση Δεδομένων... 32 IV.3. Λειτουργικές Μονάδες... 34 IV.4. Γραφικό Περιβάλλον... 38 V. Συμπεράσματα... 48 Βιβλιογραφία... 49 Παράρτημα Ι Κώδικας Εφαρμογής... 51 1. add_account.php... 51 2. add_property.php... 53 3. delete_search.php... 56 4. deleteproperty.php... 57 5. head.php... 57 6. index.php... 61 7. list_properties.php... 61 8. login.php... 63 9. logout.php... 64 10. my_searches.php... 64 11. results.php... 65 12. save_query.php... 65 13. search.php... 67 14. sqlconnect.php... 67 Παράρτημα ΙΙ Κώδικας SQL... 69 ii

I. ΕΙΣΑΓΩΓΗ Στην σημερινή εποχή, η διαδικτυακή προβολή είναι ιδιαίτερα μεγάλης σημασίας για την επιβίωση των επιχειρήσεων. Ιδιαίτερα για τις επιχειρήσεις που έχουν την δυνατότητα προβολής των προϊόντων, η διαδικτυακή προβολή είναι απαραίτητη για να προσελκύσουν το επιθυμητό κοινό και να αυξήσουν τα έσοδά τους. Στις μέρες µας, οι ηλεκτρονικοί υπολογιστές, το Internet αλλά ακόμα και τα κοινωνικά δίκτυα είναι πλέον απαραίτητα για τη ομαλή λειτουργία των μεγάλων αλλά και των μικρότερων επιχειρήσεων, ενώ βρίσκουν πολύ καλή εφαρμογή στις δραστηριότητες marketing. Στην εργασία αυτή παρουσιάζουμε έναν δικτυακό τόπο για την αναζήτηση ακινήτων, με άμεση εφαρμογή στην αγορά κατοικίας. Ο ιστοχώρος που δημιουργήσαμε υλοποιήθηκε με την γνωστή γλώσσα προγραμματισμού ιστοσελίδων PHP και βασίζεται στην δημοφιλή πλατφόρμα XAMPP. Ο δικτυακός τόπος αυτός μπορεί να λειτουργήσει ως ένα ακόμα εργαλείο διαδικτυακής προβολής ακινήτων. Με τις πληροφορίες που παρέχει ο δικτυακός τόπος στους καταναλωτές, μπορεί να λειτουργήσει ως ένα χρήσιμο εργαλείο για τους πελάτες για να μπορούν να κάνουν καλύτερες επιλογές. Ξεκινώντας την εργασία, θα κάνουμε μια σύντομη αναφορά στο λογισμικό ανοικτού κώδικα, στο οποίο βασίζεται τόσο ο σχεδιασμός όσο και η υλοποίηση του συγκεκριμένου δικτυακού τόπου. Θα συνεχίσουμε με κάποιες αναλυτικές πληροφορίες για τον τρόπο σχεδιασμού και υλοποίησης δικτυακών τόπων αλλά και για τα πιο κοινά προγράμματα διαχείρισης περιεχομένου. Θα εξηγήσουμε γιατί τα προγράμματα αυτά δεν είναι οι καταλληλότερες λύσεις για 1

την υλοποίηση του δικτυακού μας τόπου, το οποίο υλοποιήσαμε με την γλώσσα PHP, την οποία θα παρουσιάσουμε συνοπτικά. Προχωρώντας, θα παρουσιάσουμε το XAMPP και την διαδικασία με την οποία θα πρέπει να εγκατασταθεί σε έναν υπολογιστή για να δουλέψει ο δικτυακός τόπος μας. Θα εξηγήσουμε τον τρόπο με τον οποίο σχεδιάσαμε την βάση δεδομένων η οποία υποστηρίζει την εφαρμογή μας, ενώ θα αναλύσουμε και κάποια σημεία ενδιαφέροντος στον κώδικα υλοποίησης. Τέλος, θα δείξουμε κάποιες εικόνες από την δικτυακή εφαρμογή και θα δώσουμε τις οδηγίες χρήσης. Κλείνοντας την εργασία μας, θα έχουμε εξηγήσει ότι ο δικτυακός τόπος που δημιουργήσαμε είναι μια ολοκληρωμένη δικτυακή εφαρμογή που υποστηρίζει τόσο αγοραπωλησίες όσο και ενοικιάσεις ακινήτων. Είναι σχεδιασμένη για χρήση από χρήστες όλων των επιπέδων γνώσης και μπορεί να χρησιμοποιηθεί άμεσα για τον σκοπό που υλοποιήθηκε. 2

II. ΛΟΓΙΣΜΙΚΟ ΑΝΟΙΚΤΟΥ ΚΩΔΙΚΑ II.1. ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ - ΟΡΙΣΜΟΣ Ο όρος Ανοιχτό Λογισμικό (Open Source) χρησιμοποιήθηκε αρχικά από τον οργανισμό Open Source Initiative, ο οποίος έχει ως στόχο να προάγει το ανοικτό και ελεύθερο λογισμικό. Ο οργανισμός αυτός βασίζεται σε πρωτοβουλία των Bruce Parens και Eric S. Raymond οι οποίοι προχώρησαν στην ίδρυσή του τον Φεβρουάριο του 1998, όταν η εταιρία Netscape Communications αποφάσισε να προχωρήσει σε μία επαναστατική για την εποχή της κίνηση. Η Netscape δημοσίευσε τον πηγαίο κώδικα του browser της, του Netscape Communicator, ως ελεύθερο λογισμικό. Η κίνηση αυτή είχε φυσικά στόχο τον αντίπαλο Internet Explorer της Microsoft, από τον οποία έχανε συνεχώς έδαφος λόγω της ολοένα και χαμηλότερης δημοτικότητας αλλά και του χαμηλότερου περιθωρίου κέρδους. Λίγο νωρίτερα, τον Ιανουάριο 1998 είχε ήδη αρχίσει και το open source Mozilla project. Για να κατηγοριοποιηθεί ένα λογισμικό ως λογισμικό ανοικτού κώδικα, θα πρέπει να πληροί κάποιες βασικές προϋποθέσεις, οι οποίες σχετίζονται κατά βάση τις άδειες χρήσης του. Καταρχήν η άδεια που καλύπτει το λογισμικό θα πρέπει προφανώς να επιτρέπει την ελεύθερη αναδιανομή (free redistribution). Με τον όρο αυτό εννοούμε ότι το λογισμικό θα πρέπει να μπορεί ελεύθερα να διανεμηθεί. Επίσης, ο πρωτογενής πηγαίος κώδικας θα πρέπει να παρέχεται ελεύθερα σε όλους τους ενδιαφερόμενους, ενώ η διανομή τυχόν μετατροπών (modifications) θα πρέπει να επιτρέπεται χωρίς κανέναν περαιτέρω περιορισμό. 3

Πρόσθετα χαρακτηριστικά που πρέπει να περιλαμβάνει η άδεια χρήσης είναι η απουσία οποιασδήποτε διάκρισης σε σχέση με πρόσωπα, ομάδες ή εταιρίες. Αυτό πρακτικά σημαίνει ότι τα δικαιώματα που απορρέουν από το πρόγραμμα πρέπει να εφαρμόζονται ακριβώς με τον ίδιο τρόπο σε όσους έχει γίνει αναδιανομή χωρίς να υφίσταται ανάγκη για επιπλέον άδειες χρήσης. Η εφαρμοζόμενη άδεια χρήσης δεν πρέπει να αφορά συγκεκριμένα ένα μόνο προϊόν, να περιορίζεται δηλαδή σε ένα μόνο μέρος από μία μεγαλύτερη διανομή του προϊόντος αλλά αντίθετα θα πρέπει να καλύπτει το σύνολο του εγκατεστημένου λογισμικού. Ταυτόχρονα, οι άδειες χρήσης δεν θα πρέπει να εφαρμόζουν περιορισμούς σε σχέση με την εγκατάσταση ή αδειοδότηση άλλου λογισμικού. Αυτό ουσιαστικά σημαίνει ότι δεν μπορούν να υπάρχουν άδειες που να ορίζουν ότι οποιοδήποτε άλλο λογισμικό που διανέμεται μαζί με το ανοικτό λογισμικό, θα πρέπει να διατίθεται με κάποιο συγκεκριμένο τρόπο (π.χ. δωρεάν). Τέλος θα πρέπει η άδεια να είναι ουδέτερη τεχνολογικά (technology neutral), να μην απαιτεί δηλαδή την ύπαρξη άλλων αδειών σε σχέση με τεχνολογίες ή προϊόντα. Η φιλοσοφία του Λογισμικού Ανοικτού Κώδικα στηρίζεται στην βασική αρχή που ορίζει ότι η ανάπτυξη του λογισμικού θα πρέπει να στηρίζεται σε κάποια συγκεκριμένα γενικά πρότυπα. Συγκεκριμένα, στην περίπτωση του ανοικτού λογισμικού, οι χρήστες μπορεί να είναι και προγραμματιστές που έχουν άμεση πρόσβαση στον πηγαίο κώδικα του προγράμματος. Οι χρήστες, με τον διευρυμένο ρόλο που έχουν, ενθαρρύνονται να επεκτείνουν τον κώδικα, να κάνουν αναφορά προβλημάτων (bug reports), τεκμηρίωση κλπ., να συμμετέχουν δηλαδή με άλλα λόγια στην διαδικασία ανάπτυξης. Η συνήθης πρακτική είναι να κυκλοφορούν δύο εκδόσεις ταυτόχρονα. Η μία είναι η επονομαζόμενη σταθερή έκδοση, η οποία είναι δοκιμασμένη και ελεύθερη από σφάλματα, και μία δοκιμαστική έκδοση, η οποία είναι επέκταση της σταθερής και χρησιμοποιείται από τους χρήστες-προγραμματιστές για να δοκιμάσουν νέες λειτουργίες και χαρακτηριστικά. Η πρακτική αυτή όμως 4

απαιτεί ταυτόχρονα να υπάρχει συχνή ενοποίηση των εκδόσεων καθώς και υψηλή προσαρμοστικότητα ώστε να είναι τελικά δυνατή η παράλληλη ανάπτυξη του προγράμματος από πολλούς προγραμματιστές. Συχνά δεν είναι σαφής ο διαχωρισμός ανάμεσα στο λογισμικό ανοικτού κώδικα και το ελεύθερο λογισμικό. Όμως οι δύο αυτές κατηγορίες είναι εντελώς διαφοροποιημένες, σύμφωνα τουλάχιστον με τους ορισμούς που τους έχουν δοθεί από τα ιδρύματα που τα προωθούν, το Open Source Initiative και το Free Software Foundation. Για το ελεύθερο λογισμικό, η λέξη «Ελεύθερο» που το χαρακτηρίζει ανταποκρίνεται στην ελευθερία ανάπτυξης και διακίνησης, όχι στο γεγονός ότι πρέπει να διατίθεται δωρεάν. Το Free Software Foundation προκρίνει αυτή την έννοια, παρά το γεγονός ότι το ελεύθερο λογισμικό στις περισσότερες περιπτώσεις διατίθεται πράγματι δωρεάν*. Μετά την εισαγωγή της έννοιας του ανοικτού κώδικα, το Free Software Foundation άσκησε κριτική στο κίνημα αυτό, κατηγορώντας το ότι δημιούργησε με την εισαγωγή αυτή νέα σύγχυση στους χρήστες, διότι οι στόχοι του δεν ακολουθούσαν κοινωνικά και ηθικά κριτήρια, αλλά ήταν καθαρά τεχνικής φύσεως. Θεωρήθηκε πως δεν ήταν πλέον στόχος η προστασία του ελεύθερου λογισμικού από τη μελλοντική εκμετάλλευση των κερδοσκόπων, οι οποίοι θα μπορούσαν να μετατρέψουν τις ελεύθερες άδειες χρήσης σε μη ελεύθερες. Πάνω απ' όλα όμως, το FSF κατηγορούσε το κίνημα ανοικτού κώδικα για το γεγονός ότι έδινε έμφαση στην ελευθερία εξέτασης του πηγαίου κώδικα, όχι όμως και στην απεριόριστη ελευθερία αναδιανομής και τροποποίησής του. * Μάλιστα είναι διαβόητη η διευκρίνιση: «free speech, not free beer», δηλαδή, «ελεύθερος λόγος, όχι δωρεάν μπύρα». 5

II.2. ΣΧΕΤΙΚΗ ΒΙΒΛΙΟΓΡΑΦΙΑ Το λογισμικό ανοικτού κώδικα υπάρχει σε σημαντικό βαθμό στη σχετική βιβλιογραφία, καθώς αποτελεί ένα θέμα που ανέκαθεν ενδιέφερε τους ερευνητές. Ταυτόχρονα, η επιτυχία της εφαρμογής του σε έργα μεσαίου και μεγάλου μεγέθους (επιχειρήσεις, κρατικοί ή δημόσιοι φορείς) παρουσίαζε πάντα σημαντικές διαφοροποιήσεις και ως εκ τούτου πρόκειται για ένα ζήτημα όπου εντοπίζουμε ένθερμη επιχειρηματολογία τόσο από τους υποστηρικτές του ελεύθερου λογισμικού όσο και από τους πολέμιούς του. Ήδη ερευνητές όπως ο Sieckmann (2001) κατατάσσουν το ελεύθερο λογισμικό ως μια σημαντική δύναμη στην παγκόσμια οικονομική σκηνή και όχι ως ένα απλό εργαλείο στα στενά όρια της ακαδημαϊκής κοινότητας. Οι βασικοί ορισμοί του ανοικτού λογισμικού έχουν διατυπωθεί αρχικά στα πλαίσια του Debian Project * αλλά και στην συνέχεια στα πλαίσια του Open Source Initiative και άλλων φορέων, από τους οποίους θα αντλήσουμε πληροφορίες για τόσο για την ιστορική εξέλιξη του ανοικτού λογισμικού όσο και για την τρέχουσα κατάσταση στα συστήματα αδειοδότησης. Οι Lerner και Tirole (2002) κατέγραψαν και κατηγοριοποίησαν τους τύπους των αδειών χρήσης, εξετάζοντας κυρίως λογισμικό στον δημοφιλή δικτυακό τόπο Sourceforge, ενώ πληροφορίες για τον τύπο των αδειών χρήσης και την κατηγοριοποίησή τους βρίσκουμε και στον Rosen (2002). Από την άλλη, ο Ilvari (2009) παρουσιάζει τους τρόπους με τους οποίους οι χρήστες μπορούν να συμμετέχουν στην ανάπτυξη και στην βελτίωση του λογισμικού ανοικτού κώδικα. Ο Ehrekrantz (2003) εξειδικεύει κάποιες στρατηγικές που συνοδεύουν την ανάπτυξη λογισμικού γενικά στο πλαίσιο του ελεύθερου λογισμικού, ενώ ο Johnson (2001) αναλύει το ίδιο θέμα σε μεγαλύτερο βάθος * http://www.debian.org http://www.opensource.org/ 6

και γενικεύει τα συμπεράσματά του σε μεγαλύτερο φάσμα της παραγωγικής διαδικασίας. Οι Feller και Fitzerald (2002) παρουσιάζουν διεξοδικά την ανάπτυξη στα πλαίσια του ανοικτού κώδικα ενώ για τα ιστορικά στοιχεία της ανάπτυξης του λογισμικού ανοικτού κώδικα θα εξετάσουμε και πληροφορίες από τους Edwards (2000), Moody (2001), Shapin (1994) και Salus(1994). II.3. ΤΥΠΟΙ ΑΔΕΙΩΝ Η κατηγοριοποίηση των αδειών χρήσεως του Λογισμικού Ανοιχτού Κώδικα είναι αρκετά ευρεία και περιλαμβάνει διάφορες κατηγορίες ώστε να περιλαμβάνουν όλες τις περιπτώσεις και τους τρόπους με τους οποίους γίνεται η χρήση, τροποποίηση και διανομή του Λογισμικού Ανοιχτού Κώδικα, η οποία θα πρέπει φυσικά να ακολουθεί νομικά βάσιμες αρχές. Σε γενικές γραμμές, θα πρέπει να τονίσουμε ότι δεν υπάρχουν ούτε εφαρμόζονται περιορισμοί στην χρήση του λογισμικού ανοιχτού κώδικα στις επιχειρήσεις αφού όλοι οι τύποι αδειών τηρούν κάποιες βασικές αρχές. Καταρχήν, επιτρέπουν την χρήση του λογισμικού στην τελική εκτελέσιμη του μορφή χωρίς κανένα περιορισμό. Επίσης όλες οι άδειες ανοικτού λογισμικού επιτρέπουν την τροποποίηση του κώδικα χωρίς κανένα περιορισμό, εφόσον το τελικό αποτέλεσμα θα χρησιμοποιηθεί εσωτερικά στην επιχείρηση που την εφαρμόζει. Εδώ πρέπει να σημειωθεί ότι οι άδειες τύπου GPL και Mozilla θέτουν κάποιους περιορισμούς, αλλά αυτοί αφορούν μόνο την περίπτωση που η επιχείρηση σχεδιάζει να διανείμει σε πελάτες της λογισμικό παραγωγής της, μέρος του οποίου έχει βασίσει σε λογισμικό ανοιχτού κώδικα. Οι τύποι αδειών κατηγοριοποιούνται σε τρεις βασικές κατηγορίες, οι οποίες αναλύονται παρακάτω. II.3.1. ΑΚΑΔΗΜΑΪΚΕΣ ΆΔΕΙΕΣ Οι ακαδημαϊκές άδεις (Academic Licenses) δίνουν πλήρη δικαιώματα στον τελικό χρήστη του λογισμικού να το χρησιμοποιήσει, να το τροποποιήσει αλλά ακόμα και να το επεκτείνει ή να το πουλήσει. Το λογισμικό που προκύπτει 7

από την τυχόν επέκταση δεν απαιτείται να διανέμεται με την ίδια άδεια ενώ ταυτόχρονα δεν απαιτούν την κοινοποίηση των αλλαγών ή των επεκτάσεων στον αρχικό δημιουργό. Με αυτό τον τρόπο, οι ακαδημαϊκές άδεις επιτρέπουν στο παραγόμενο εμπορικό λογισμικό να εμπεριέχει κομμάτια ανοικτού λογισμικού που καλύπτεται από τις άδειες αυτές. Το μόνο που απαιτείται είναι να παραμένουν στο τελικό λογισμικό και να αναφέρονται τα δικαιώματα του αρχικού δημιουργού. Τέλος, οι ακαδημαϊκές άδειες δεν δίνουν καμιά εγγύηση για την χρήση του λογισμικού, χρησιμοποιώντας την γνωστή φράση ότι το λογισμικό παραδίδεται «όπως είναι» ( as is ). II.3.2. ΆΔΕΙΕΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Οι άδειες ανοικτού λογισμικού (Open Source Software Licenses), εφαρμόζουν κάποιους παραπάνω περιορισμούς. Εάν ο χρήστης επιθυμεί να τροποποιήσει και να διανείμει το λογισμικό, τότε όλες οι αλλαγές θα πρέπει να κοινοποιούνται στον αρχικό δημιουργό, ενώ το παραγόμενο λογισμικό θα πρέπει να διανεμηθεί χρησιμοποιώντας την ίδια άδεια. Αυτό σημαίνει ότι εάν ο χρήστης συμπεριλάβει λογισμικό που καλύπτεται από άδεια ανοικτού λογισμικού μέσα σε λογισμικό που έχει αναπτύξει ο ίδιος, τότε ολόκληρο το τελικό λογισμικό (συμπεριλαμβανόμενου και του κώδικα που έχει γράψει ο χρήστης) θα πρέπει να υπαχθεί κάτω από την ίδια ακριβώς άδεια (propagate license). Όπως και στις ακαδημαϊκές άδειες, έτσι και στις άδειες ανοικτού λογισμικού, δεν παρέχεται καμία εγγύηση για την χρήση του λογισμικού. II.3.3. ΆΔΕΙΕΣ ΤΥΠΟΥ MOZILLA Οι άδειες τύπου Mozilla (Mozilla-type Licenses) είναι ένας συνδυασμός των δύο παραπάνω τύπων αδειών. Αυτός ο τύπος άδειας απαιτεί όλα τα παράγωγα του αρχικού λογισμικού να διανέμονται με την ίδια άδεια. Επίσης, επιτρέπει τον συνδυασμό του παραγόμενου λογισμικού με κάποιο άλλο λογισμικό για την δημιουργία ενός μεγαλύτερου προϊόντος, το οποίο μπορεί να διανεμηθεί όμως και με διαφορετικού τύπου άδεια. Με τον τρόπο αυτό, 8

υποστηρίζει την ανάπτυξη ιδιόκτητου λογισμικού, όπως και οι ακαδημαϊκές άδειας, ενώ πρόσθετα χειρίζεται και θέματα πατέντων σχετικά με την άδεια του λογισμικού. Όπως και στις προηγούμενες κατηγορίες, δεν υφίσταται οποιαδήποτε εγγύηση για την χρήση του λογισμικού από τον τελικό χρήστη. II.3.4. ΥΒΡΙΔΙΚΕΣ & ΔΙΠΛΕΣ ΆΔΕΙΕΣ Από την παράθεση των παραπάνω τύπων αδειών χρήσης ανοικτού λογισμικού, είναι εμφανές ότι οι τυποποιημένες άδειες χρήσης παρουσιάζουν κάποιες ατέλειες, οι οποίες αφήνουν περιθώρια υποβάθμισης της ποιότητας του παρεχόμενου λογισμικού ανοιχτού κώδικα. Το βασικότερο πρόβλημα είναι ότι δεν παρέχεται εγγύηση για τη χρήση του λογισμικού, κάτι το οποίο κάνει τους επαγγελματίες της πληροφορικής να αποφεύγουν τη χρήση του λογισμικού αυτού. Μπορεί ίσως να θεωρηθεί ότι οι άδειες που απαιτούν κοινοποίηση των αλλαγών ή των επεκτάσεων ενδεχομένως να διασφαλίζουν σε κάποιο βαθμό την ποιότητα του λογισμικού, αλλά αυτό δεν μπορεί σίγουρα να αποτελέσει ουσιαστικό επιχείρημα για την επέκταση της χρησιμοποίησης των αδειών. Μία λύση που προκρίνεται τον τελευταίο καιρό είναι η εφαρμογή υβριδικών αδειών (Hybrid Licenses) όπως η Apple Public Source License ή η Sun Community Source License. Αυτοί οι τύποι αδειών δεν θεωρούνται καθαρά ανοικτού τύπου, ειδικά από τους παραδοσιακούς της κοινότητας του ανοικτού λογισμικού, παρόλο που η Sun Community Source License πιστοποιήθηκε από το Open Source Initiative. Οι άδειες αυτές προστατεύουν την ιδιοκτησία των δημιουργών του λογισμικού καθώς και τις πατέντες και τα συμφέροντα των επενδυτών σε αυτό. Ο κώδικας όμως δημοσιεύεται ελεύθερα στο κοινό για να μπορεί να χρησιμοποιηθεί. Παρά τις αρχικές αντιρρήσεις, αυτοί οι τύποι αδειών έγιναν αποδεκτοί σε σημαντικό βαθμό τόσο από τους παραγωγούς εμπορικού λογισμικού όσο και από την κοινότητα ανοικτού λογισμικού. 9

Η διπλή αδειοδότηση (Dual Licensing) είναι και αυτή μια αρκετά διαδεδομένη επιλογή. Αυτή υλοποιείται με την διανομή του λογισμικού με εμπορική άδεια αλλά και με κάποια άδεια ανοικτού λογισμικού, ανάλογα με την χρήση. Οι χρήστες που θα εκμεταλλευτούν το λογισμικό εμπορικά θα πρέπει να πληρώσουν κάποιο ποσό, ενώ τα οφέλη του ανοικτού λογισμικού συνεχίζουν να υφίστανται για τους μη εμπορικούς και τους ακαδημαϊκούς χρήστες. Άλλη λύση διπλής αδειοδότησης είναι να διανείμεται η τελευταία έκδοση του λογισμικού με εμπορική άδεια, ενώ οι παλαιότερες εκδόσεις να διανέμονται σταδιακά με άδειες ανοικτού λογισμικού. Η διπλή αδειοδότηση είναι μια σχετικά αποδεκτή λύση για την κοινότητα ανοικτού λογισμικού καθώς βρίσκεται ήδη σε χρήση εδώ και αρκετό καιρό. Η αδειοδότηση άλλωστε είναι ένα συμβόλαιο μεταξύ του ιδιοκτήτη/εμπόρου και του χρήστη/πελάτη. Οι πελάτες είναι ακόμα αρνητικοί στις εμπορικές άδειες, ενώ οι έμποροι δεν φαίνονται να τις αφήνουν στην άκρη για χάρη του καθαρά ανοικτού λογισμικού. Συνεπώς, η λογική πρόβλεψη λέει ότι οι διπλές και οι υβριδικές άδειες θα αναπτυχθούν περαιτέρω καθώς επιτρέπουν στις επιχειρήσεις που παράγουν λογισμικό να επιτύχουν τους εμπορικούς τους στόχους, στηρίζοντας ταυτόχρονα την κοινότητα του ανοικτού λογισμικού. II.4. ΠΡΟΤΕΡΗΜΑΤΑ ΧΡΗΣΗΣ Τα προτερήματα της χρήσης του λογισμικού ανοικτού κώδικα έχουν καταγραφεί σε πληθώρα ερευνών. Συγκεκριμένα, έρευνες των Zdnet, Bloor Research, Syscontrol AG, Netcraft και άλλων έχουν αποδείξει την ανωτερότητα εφαρμογών ανοικτού λογισμικού από την πλευρά της αξιοπιστίας. Η σύγκριση έγινε μεταξύ γνωστών πακέτων ανοικτού λογισμικού όπως το λειτουργικό σύστημα GNU\Linux και ο Apache web server με τα εμπορικά τους αντίστοιχα. 10

Για παράδειγμα, σε δοκιμή του Zdnet* διάρκειας 10 μηνών τα Windows NT αντιμετώπιζαν πρόβλημα κατά μέσο όρο μια φορά κάθε 6 εβδομάδες και απαιτούσαν 30 λεπτά για την ανάκαμψη του συστήματος ενώ το GNU\Linux δεν αντιμετώπισε κανένα πρόβλημα. Η διαφορά στην αξιοπιστία πιθανώς να οφείλεται στο γεγονός ότι οι εφαρμογές ανοικτού λογισμικού είναι αποτέλεσμα εθελοντικής εργασίας, χωρίς πίεση για εταιρικούς και εμπορικούς στόχους. Στην παραγωγή εμπορικού λογισμικού, συχνά υπάρχει πίεση από την εταιρική δομή να παρουσιαστεί κάτι ακόμη κι αν δεν είναι απόλυτα έτοιμο ή τέλεια δοκιμασμένο. Αντίθετα, στο ανοικτό λογισμικό όλοι μπορούν να δουν, να σχολιάσουν και να διορθώσουν τη δουλειά των άλλων και έτσι το τελικό αποτέλεσμα αποτελεί κράμα πολλών ταλέντων και δεξιοτήτων. Για τους ίδιους λόγους, οι φανατικοί του ανοικτού λογισμικού επιχειρηματολογούν υπέρ της αποδοτικότητας και της ταχύτητας εφαρμογών βασισμένων στο GNU\Linux. Χάρη στον ανοικτό τους κώδικα οι εφαρμογές ανοικτού λογισμικού ελέγχονται κυριολεκτικά από χιλιάδες ανθρώπους και τα τυχόν προβλήματά τους ανακαλύπτονται πολύ πιο γρήγορα. Μια ενδιαφέρουσα έρευνα της Attrition.org έδειξε ότι το 59% των δικτυακών τόπων των οποίων hackers άλλαξαν την κεντρική σελίδα (deface) έτρεχαν Windows, ενώ µόνο το 21% έτρεχαν σε λειτουργικά βασισμένα GNU\Linux, αν και άλλη έρευνα του Security Portal έδειξε πως η ταχύτητα διευθέτησης των προβλημάτων που εμφανίζονται στο GNU\Linux είναι σημαντικά μεγαλύτερη από αυτή που συναντούμε στα Windows. Ένα άλλο σημαντικό πλεονέκτημα των εφαρμογών ανοικτού λογισμικού θεωρείται ότι είναι η επεκτασιμότητά τους. Οι περισσότερες επιχειρηματικές εφαρμογές θεωρείται ότι πρέπει να έχουν χαμηλό κόστος εκκίνησης µε εύκολη και γρήγορη αναβάθμιση, αν τελικά η εμπορική διάθεσή τους δείξει ότι η υπηρεσία που δημιουργήθηκε είναι δημοφιλής στο κοινό. Λόγω της φύσης * http://www.biznix.org/whylinux/windows/zdnet.htm http://www.security-portal.cz/ 11

τους και του ελεύθερου κώδικα που εμπεριέχουν, οι εφαρμογές ανοικτού λογισμικού μπορούν εύκολα να τοποθετηθούν σε πολλές διαφορετικές πλατφόρμες υπολογιστών, αλλά ακόμα και να λειτουργήσουν παράλληλα σε μεγάλα συστήματα υψηλών επιδόσεων. Ένα άλλο, ίσως μη αναμενόμενο, πλεονέκτημα των εφαρμογών ανοικτού λογισμικού είναι ότι θεωρείται ότι παρέχουν καλύτερη ασφάλεια των δεδομένων. Αυτό οφείλεται στο γεγονός ότι το σύστημα ασφαλείας και κρυπτογράφησης ελέγχεται από περισσότερους ανθρώπους και αυτό από μόνο του είναι παράγοντας που δημιουργεί προστιθέμενη αξία στην ασφάλεια του τελικού προϊόντος. Έτσι το λογισμικό που προκύπτει είναι τελικά ασφαλέστερο από εκείνο που διαχειρίζονται λίγοι μόνο προγραμματιστές, όσο καταρτισμένοι ή ευφυείς και αν υποθέσουμε ότι είναι. Επίσης, ένα ακόμα επιχείρημα υπέρ του ανοικτού λογισμικού είναι η συχνότητα με την οποία δημιουργούνται ιοί για την εκάστοτε πλατφόρμα, καθώς θεωρείται ότι γενικά τα Windows στοχοποιούνται πολύ πιο συχνά ως πλατφόρμα σε σχέση με το GNU\Linux. Ένας άλλος τομέας στον οποίο θεωρείται ότι υπερτερεί το λογισμικού ανοικτού κώδικα είναι το χαμηλότερο κόστος λειτουργίας, αν και όπως θα δούμε στην ενότητα II.5 παρακάτω, το ζήτημα αυτό είναι πολυδιάστατο. Το επιχείρημα εδώ είναι ότι το λογισμικό ανοικτού κώδικα το οποίο μπορεί να χρησιμοποιηθεί σε επιχειρήσεις (λειτουργικά συστήματα, βάσεις δεδομένων, εφαρμογές γραφείου) παρέχεται δωρεάν και για απεριόριστο αριθμό χρηστών, σε αντίθεση με το αντίστοιχο εμπορικό λογισμικό στο οποίο η επιχείρηση χρεώνεται συνήθως ανά θέση εργασίας. Επίσης, η επιχείρηση μπορεί θεωρητικά να αξιοποιήσει παλαιότερο εξοπλισμό αφού είναι ελεύθερη να κάνει τροποποιήσεις στον κώδικα, μειώνοντας έτσι τα έξοδά της. Ταυτόχρονα, οι επεκτάσεις του λογισμικού είναι (θεωρητικά τουλάχιστον) ευκολότερες και φθηνότερες. Ο χρήστης διαθέτει πρόσβαση στον πηγαίο κώδικα του λογισμικού που χρησιμοποιεί και μπορεί έτσι να ζητήσει επεκτάσεις ή αλλαγές 12

από οποιονδήποτε. Με τον τρόπο αυτό περιορίζεται η μονοπωλιακή δύναμή του κατασκευαστή πάνω στην υποστήριξη και αναβάθμιση του προϊόντος του. Έτσι εάν ο χρήστης λοιπόν δεν είναι ικανοποιημένος από την συνεργασία μπορεί άμεσα να απευθυνθεί σε κάποιον άλλον, χωρίς να απαιτηθεί η αντικατάσταση του συνόλου των εφαρμογών που χρησιμοποιεί, η οποία θα ήταν απαραίτητη στην περίπτωση του εμπορικού λογισμικού. Τέλος, οι φίλοι του ανοικτού λογισμικού θεωρούν ότι η υποστήριξη που παρέχει η κοινότητα στα προϊόντα αυτά είναι διαρκής και πολύ πιο εκτενής σε σχέση με την υποστήριξη του εμπορικού λογισμικού. Οι κατασκευαστές εμπορικού λογισμικού συχνά κατηγορούνται ότι διορθώνουν µόνο τα πιο ενοχλητικά και τα πιο εμφανή προβλήματα των εφαρμογών τους. Ταυτόχρονα υποχρεώνουν τους χρήστες τους να αγοράζουν νέες αναβαθμίσεις ακόμα κι στην περίπτωση που δεν τις χρειάζονται, αφού συχνά διακόπτουν σχετικά σύντομα την υποστήριξη των παλαιότερων εκδόσεων του προγράμματος. Αντίθετα, στις εφαρμογές ανοικτού λογισμικού, η επιχείρηση δεν βασίζεται σε έναν κατασκευαστή για την υποστήριξη αλλά αντίθετα έχει μία ολόκληρη κοινότητα για τον σκοπό αυτό ενώ μπορεί ακόμα και να διορθώσει η ίδια τυχόν προβλήματα ή να εφαρμόσει τυχόν βελτιώσεις. II.5. ΑΝΤΙΛΟΓΟΣ Παρά τα πλεονεκτήματα που αναφέραμε παραπάνω, οι εφαρμογές ανοικτού λογισμικού εμφανίζουν τελικά αρκετά προβλήματα στην υλοποίηση και την χρήση τους. Ένα θέμα εντοπίζεται στην επιτόπου υποστήριξη καθώς, παρόλο που ο Apache αποτελεί τον δημοφιλέστερο web server στο Internet και το GNU\Linux διαθέτει ένα μεγάλο ποσοστό της αγοράς στους διακομιστές, στην Ελλάδα δεν υπάρχει ιδιαίτερα μεγάλος αριθμός τεχνικών µε ουσιαστική εμπειρία σε παρόμοια συστήματα. Το πρόβλημα αυτό δυσχεραίνεται περαιτέρω από το γεγονός ότι η (επίσημη) τεκμηρίωση για τα προγράμματα 13

αυτά είναι από μικρή έως ανύπαρκτη, αν και συνήθως η διαδικτυακή κοινότητα είναι αρκετά ανοικτή στο να μοιράζεται τα προβλήματά και τις λύσεις τους. Ταυτόχρονα, τα στελέχη των επιχειρήσεων είναι αρκετά διστακτικά στο να εισηγηθούν την απόκτηση λογισμικού ανοικτού κώδικα στην διοίκηση. Ο λόγος είναι ότι τα γνωστά εμπορικά πακέτα μπορεί να είναι πολύ πιο ακριβά, όμως είναι αρκετά πιο διαδεδομένα και τυχόν προβλήματα δεν μπορούν να καταλογιστούν στο στέλεχος που εισηγήθηκε την αγορά τους. Αντίθετα, εάν κάτι δεν λειτουργήσει σωστά σε μια εφαρμογή ανοικτού λογισμικού, είναι αρκετά πιθανόν αυτό να προκαλέσει μομφές κατά του αρμόδιου στελέχους. Τέλος, αναφορικά με το κόστος, θα πρέπει να αναφερθούμε εδώ στο συνολικό κόστος ιδιοκτησίας (Total Cost of Ownership). Το κόστος του λογισμικού δεν είναι μόνο το κόστος αγοράς του αλλά θα πρέπει να λαμβάνεται υπόψη και το κόστος συντήρησης, υποστήριξης αλλά και της εκπαίδευσης του προσωπικού. Με δεδομένο ότι οι περισσότεροι εργαζόμενοι είναι ήδη εξοικειωμένοι με τα Windows και το Office, είναι αρκετά ακριβό για τις επιχειρήσεις να πληρώσουν για την επανεκπαίδευση αυτών των χρηστών σε εφαρμογές ανοικτού λογισμικού. Η άποψη αυτή υποστηρίζεται και από κορυφαίους κυβερνητικούς παράγοντές στην Αγγλία* και έρχεται σε αντίθεση με αυτά που υποστηρίζουν οι φίλοι του ανοικτού λογισμικού, οι οποίοι επικεντρώνονται σε μία μόνο πλευρά του ζητήματος. * http://www.computing.co.uk/ctg/news/2341969/-each-time-we-look-at-opensource-microsoft-is-cheaper-says-local-government-cio# 14

III. ΣΧΕΔΙΑΣΜΟΣ ΙΣΤΟΣΕΛΙΔΩΝ III.1. ΕΙΔΗ ΙΣΤΟΣΕΛΙΔΩΝ III.1.1. ΣΤΑΤΙΚΕΣ ΙΣΤΟΣΕΛΙΔΕΣ Μια στατική ιστοσελίδα είναι μια ιστοσελίδα της οποίας το περιεχόμενο μεταφέρεται στον χρήστη ακριβώς στην μορφή που είναι αποθηκευμένο στον εξυπηρετητή ιστοσελίδων (Web Server). Τα περιεχόμενα μιας στατικής ιστοσελίδας εμφανίζονται με την ίδια μορφή σε όλους του χρήστες, με την μορφή που είναι αποθηκευμένα στο σύστημα αρχείων του εξυπηρετητή ιστοσελίδων. Οι στατικές ιστοσελίδες είναι αποθηκευμένες συνήθως σε μορφή HTML και μεταφέρονται χρησιμοποιώντας το πρωτόκολλο HTTP. Οι στατικές ιστοσελίδες παρουσιάζουν αρκετά πλεονεκτήματα στην χρήση τους Καταρχήν, δεν χρειάζονται ιδιαίτερες προγραμματιστικές δεξιότητες για να δημιουργήσει κάποιος μια στατική σελίδα. Υπάρχουν αρκετά προγράμματα στην αγορά που επιτρέπουν εύκολη δημιουργία στατικών ιστοσελίδων, ενώ ακόμα και το δημοφιλές Microsoft Word επιτρέπει αυτήν την λειτουργία. Επίσης, μια στατική σελίδα μπορεί να βρίσκεται με εύκολο τρόπο κλωνοποιημένη σε περισσότερους από έναν εξυπηρετητές, αφού η εμφάνισή της είναι πάντα η ίδια. Ένα ακόμα πλεονέκτημα είναι ότι δεν απαιτείται ειδικό λογισμικό στον εξυπηρετητή ιστοσελίδων για την δημοσίευση στατικών σελίδων. Η σελίδα μπορεί να είναι διαθέσιμη στον φυλλομετρητή (browser) κατευθείαν από ένα 15

αποθηκευτικό μέσο όπως ένα CD-ROM ή USB μνήμης χωρίς να χρειάζεται να διαμεσολαβήσει ένα εξυπηρετητής ιστοσελίδων με κατάλληλο λογισμικό χειρισμού ιστοσελίδων. Αυτή η δυνατότητα χρησιμοποιείται συχνά σε ψηφιακούς δίσκους με διαφημιστικό ή προωθητικό υλικό marketing. Από την άλλη οι σελίδες σε γλώσσα PHP ή άλλες τεχνολογίες δυναμικών σελίδων θέλουν έναν διερμηνέα (π.χ. διερμηνέα της PHP) ο οποίος θα τρέχει στον εξυπηρετητή ιστοσελίδων και θα δημιουργεί δυναμικά την σελίδα πριν αυτή αποσταλεί στον φυλλομετρητή του χρήστη. Ταυτόχρονα όμως, οι στατικές σελίδες έχουν μια σειρά από μειονεκτήματα, τα οποία μάλιστα τις έχουν κάνει πλέον μη ελκυστικές για τις μοντέρνες χρήσεις του διαδικτύου. Το σημαντικότερο πρόβλημα είναι ότι δεν είναι εύκολη η διαδραστικότητα με τον χρήστη. Ο κάθε χρήστης βλέπει το ίδιο αποτέλεσμα και δεν υπάρχει κανένας τρόπος να του παραδώσουμε εξατομικευμένο περιεχόμενο. Επίσης, για δικτυακούς τόπους με μεγάλο όγκο περιεχομένου, η διαχείριση μεγάλου αριθμού στατικών ιστοσελίδων δεν είναι καθόλου εύκολη υπόθεση. Τέλος, το σημαντικότερο πρόβλημα είναι οι μεγάλη δυσκολία που παρουσιάζεται στην προσθήκη νέων δεδομένων. Ας θεωρήσουμε την περίπτωση ενός μεγάλου δικτυακού τόπου με ειδησεογραφικό περιεχόμενο. Εάν ο τόπος αυτός λειτουργούσε με στατικές σελίδες, θα ήταν αδύνατο να μπορέσουν οι διαχειριστές να σχεδιάσουν και να ανεβάσουν έναν τόσο μεγάλο αριθμό ιστοσελίδων, όπως θα απαιτούσε η σύγχρονη ροή ειδήσεων. III.1.2. ΔΥΝΑΜΙΚΕΣ ΙΣΤΟΣΕΛΙΔΕΣ Για την αντιμετώπιση όλων των παραπάνω προβλημάτων δημιουργήθηκαν οι δυναμικές ιστοσελίδες, σελίδες δηλαδή που δημιουργούνται αυτόματα από προγράμματα που εκτελούνται στον διακομιστή του δικτυακού τόπου. Μια δυναμική ιστοσελίδα είναι μια ιστοσελίδα η οποία δημιουργείται δυναμικά την στιγμή της πρόσβασης σε αυτή ή την 16

στιγμή που ο χρήστης αλληλεπιδρά με τον εξυπηρετητή ιστοσελίδων. Οι δυναμικές ιστοσελίδες θεωρούνται δομικό στοιχείο της νέας γενιάς του παγκόσμιου ιστού (Web 2.0) όπου η πληροφορία διαμοιράζεται σε πολλαπλές ιστοσελίδες. Η δυναμική ιστοσελίδα μπορεί να δημιουργείται δυναμικά από ένα σενάριο εντολών, το οποίο εκτελείται τοπικά στο πελάτη ή στον εξυπηρετητή ή και στον πελάτη και στον εξυπηρετητή. Μια δυναμική ιστοσελίδα συνήθως δημιουργείται από ένα λογισμικό το οποίο τρέχει στον απομακρυσμένο εξυπηρετητή ιστοσελίδων. Ο χρήστηςπελάτης επισκέπτεται τον εξυπηρετητή ιστοσελίδων ο οποίος δημιουργεί δυναμικά την ιστοσελίδα την οποία επιστρέφει σε μορφή HTML στον πελάτη. Τέτοιες τεχνολογίες για την δημιουργία δυναμικών ιστοσελίδων στον εξυπηρετητή είναι η τεχνολογία PHP (Hypertext Preprocessor), την οποία άλλωστε χρησιμοποιήσαμε και στην παρούσα εργασία, αλλά και οι ASP, ColdFusion, Perl, WebDNA και άλλες. Οι γλώσσες αυτές συνήθως (με εξαίρεση την ASP.NET και την JSP) χρησιμοποιούν ένα σενάριο εντολών CGI κατά την δυναμική δημιουργία των σελίδων. Πολλές φορές χρησιμοποιούνται από τους σχεδιαστές και βάσεις δεδομένων στις οποίες είναι αποθηκευμένο το περιεχόμενο των σελίδων και τα προγράμματα που αναφέραμε αναλαμβάνουν την λήψη των πληροφοριών και την διαμόρφωση της σελίδας, δυναμικά, κατά τον χρόνο που το ζητάει ο επισκέπτης. Εδώ δεν θα πρέπει να γίνεται η σύγχυση με τα συστήματα διαχείρισης περιεχομένου, αφού αυτά περιλαμβάνουν έναν μεγάλο αριθμό δυνατοτήτων και έχουν την δυνατότητα διαχείρισης ιδιαίτερα πολύπλοκων και μεγάλων δικτυακών χώρων. Ένας δικτυακός τόπος με σύστημα διαχείρισης περιεχομένου δεν είναι απλώς ένας δυναμικός δικτυακός τόπος. Πολλές φορές οι σελίδες είναι αποθηκευμένες στατικά σε κρυφήπροσωρινή μνήμη και αποστέλλονται κατευθείαν στο πελάτη. Με αυτό το 17

τρόπο αποφεύγεται η υπερφόρτωση του εξυπηρετητή ιστοσελίδων και καλείται η μηχανή δημιουργία δυναμικών ιστοσελίδων μόνο όταν το αποθηκευμένο περιεχόμενο έχει αλλάξει. III.2. CMS (ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ) Ο όρος Συστήματα Διαχείρισης Περιεχομένου * (Content Management Systems ή CMS), αναφέρεται στις εφαρμογές που επιτρέπουν την δημιουργία, διαχείριση, διανομή, δημοσίευση και τον εντοπισμό της πληροφορίας. Δίνουν επίσης στον διαχειριστή του δικτυακού τόπου την δυνατότητα να ορίσει και να επεξεργαστεί την δομή του τόπου, την εμφάνιση των δημοσιευμένων σελίδων και την πλοήγηση που προσφέρεται στους επισκέπτες και χρήστες της. Το Content Management System (CMS) είναι στην ουσία μια μορφή λογισμικού που αυτοματοποιεί τις διαδικασίες δημιουργίας, οργάνωσης, ελέγχου και δημοσίευσης περιεχομένου σε μία πληθώρα μορφών ιστοσελίδας. Τα πλέον πρόσφατα CMS μάλιστα επιτρέπουν την απευθείας δημιουργία ιστοσελίδων για διαφορετικούς τύπους φυλλομετρητών (κανονικοί υπολογιστές, smartphones, tablets, κλπ.). Τα περισσότερα CMS έχουν την δυνατότητα να διαχειριστούν περιεχόμενο σε όλες τις μορφές που μπορεί να κυκλοφορήσει στο Internet, δηλαδή μπορούν να αποθηκεύσουν και να διαχειριστούν κείμενα, εικόνες, βίντεο, java animations, πρότυπα σχεδίασης, * Πηγή εικόνας: http://readwrite.com/files/files/files/wpcontent/uploads/2011/01/content-management-system.jpg 18

βάσεις δεδομένων κ.α. Με τον τρόπο αυτό και λόγω της ευκολίας δημιουργίας και επεξεργασίας δεδομένων, το CMS επιτρέπει στον οποιονδήποτε, ακόμα και αν δεν έχει ιδιαίτερες γνώσεις προγραμματισμού και γλώσσας HTML, να δημιουργήσει και να διαχειριστεί με τρόπο εύκολο και γρήγορο την ιστοσελίδα του. Τα CMS επιτρέπουν την δημιουργία δυναμικού περιεχομένου σε έναν δικτυακό χώρο και ενώ εμπεριέχουν τις πληροφορίες που παρουσιάζονται στην ιστοσελίδα και έτσι μπορούν να δημιουργηθούν και να αλλάξουν οποιαδήποτε στιγμή από τους ίδιους τους διαχειριστές του δικτυακού χώρου χωρίς να είναι απαραίτητες ειδικές γνώσεις σχετικές με τη δημιουργία ή επεξεργασία ιστοσελίδων, καθώς τα περιεχόμενα συντάσσονται μέσω κάποιων online εφαρμογών επεξεργασίας περιεχομένου. Συχνά τα προγράμματα αυτά είναι απλώς ειδικοί κειμενογράφοι, παρόμοιοι με το Microsoft Word. Η λειτουργικότητα ενός συστήματος διαχείρισης περιεχομένου, μπορεί να αναλυθεί σε τέσσερεις βασικές κατηγορίες, στην δημιουργία, στην διαχείριση, στην δημοσίευση και στην παρουσίαση δεδομένων. Το πρώτο τμήμα ενός Συστήματος Διαχείρισης Περιεχομένου είναι ένα εύχρηστο περιβάλλον δημιουργίας δεδομένων για την συγγραφή σελίδων, σχεδιασμένο να λειτουργεί όπως οι βασικές λειτουργίες του Word. Έτσι, ακόμη και οι χρήστες χωρίς ιδιαίτερη τεχνική γνώση μπορούν να δημιουργούν νέες σελίδες ή να ενημερώνουν το περιεχόμενο παλαιών, χωρίς να χρειάζεται να γνωρίζουν κάποια γλώσσα δημιουργίας ιστοσελίδων. Επίσης, το CMS, επιτρέπει τη διαχείριση της δομής του δικτυακού τόπου, επιτρέπει δηλαδή στον διαχειριστή να ορίσει το σημείο όπου θα τοποθετηθούν τα τμήματα περιεχομένου των νέων σελίδων και τον τρόπο αλληλοσύνδεσης τους. Κάποια συστήματα επιτρέπουν την εύκολη αναδιάρθρωση του site χωρίς να δημιουργούνται «σπασμένοι» σύνδεσμοι. Σχεδόν όλα τα CMS προσφέρουν ένα εύχρηστο περιβάλλον επεξεργασίας κειμένου μέσα από τον ίδιο τον φυλλομετρητή, γεγονός που απλοποιεί ακόμη περισσότερο την υλοποίηση του 19

συστήματος και επιτρέπει την απομακρυσμένη ενημέρωση του περιεχομένου και του site, χωρίς να απαιτείται η εγκατάσταση ειδικών εφαρμογών στον υπολογιστή του διαχειριστή. Το υποσύστημα διαχείρισης δεδομένων προσφέρει μία πλειάδα χρήσιμων χαρακτηριστικών. Καταρχήν επιτρέπει την παρακολούθηση όλων των εκδόσεων μιας σελίδας καθώς και του χρήστη ο οποίος έκανε τις αλλαγές αλλά και την χρονική στιγμή που τις έκανε. Επίσης διασφαλίζουν ότι οι αλλαγές σε κάθε τμήμα του δικτυακού χώρου μπορούν να γίνουν μόνο από τα άτομα που έχουν τα ανάλογα δικαιώματα αλλαγών στο συγκεκριμένο τμήμα. Τέλος επιτρέπουν τον έλεγχο ροής της εργασίας. Για παράδειγμα, όταν δημιουργείται ή επεξεργάζεται από τον συντάκτη μια σελίδα, αποθηκεύονται δεδομένα όπως ημερομηνίες δημιουργίας, αλλαγής, δημοσίευσης και αρχειοθέτησης καθώς και άλλες πληροφορίες ελέγχου που δίνουν δυνατότητα ελέγχου της κατάστασης του περιεχομένου και της σελίδας. Το σύστημα δημοσίευσης χρησιμοποιείται όταν ολοκληρωθεί η δημιουργία του τελικού κειμένου και αυτό μπορεί να δημοσιευθεί στον δικτυακό τόπο που διαχειρίζεται το CMS. Τα συστήματα διαχείρισης περιεχομένου διαθέτουν ισχυρούς μηχανισμούς δημοσίευσης, οι οποίοι επιτρέπουν την αυτόματη μορφοποίηση της σελίδας κατά τη δημοσίευση της. Μπορούν επίσης να επιτρέψουν την ταυτόχρονη δημοσίευση του ίδιου περιεχομένου σε πολλαπλές ιστοσελίδες και σε πολλαπλούς δικτυακούς χώρους, διευκολύνοντας περαιτέρω την δουλειά των επαγγελματιών του χώρου. Φυσικά, κάθε δικτυακός τόπος έχει διαφορετική εμφάνιση. Για τον λόγο αυτό, το CMS επιτρέπει στους γραφίστες και web designers να καθορίσουν την εμφάνιση που θα χρησιμοποιηθεί από το σύστημα, επιλέγοντας από μια σειρά από προεγκατεστημένα πρότυπα ή σχεδιάζοντας το δικό τους πρότυπο. Οι δυνατότητες δημοσίευσης διασφαλίζουν τη σταθερή και ομοιόμορφη εμφάνιση των σελίδων σε όλο το site, εξασφαλίζοντας υψηλά επίπεδα εμφάνισης, χωρίς ιδιαίτερες δυσκολίες από πλευρά σχεδιασμού. Τέλος, 20

αναφορικά με την δημοσίευση των πληροφοριών, το CMS επιτρέπει στους συντάκτες του περιεχομένου, να επικεντρωθούν στην συγγραφή της πληροφορίας, αφήνοντας στο σύστημα τη φροντίδα της παρουσίασης της. Το τελευταίο κομμάτι είναι το υποσύστημα παρουσίασης δεδομένων. Το CMS θα φροντίσει για την πλοήγηση στις σελίδες του δικτυακού τόπου, δημιουργώντας τους απαραίτητους συνδέσμους, ανάλογα με το περιεχόμενο που έχει καταχωριστεί. Πρόσθετα, το CMS διευκολύνει την υποστήριξη διαφορετικών φυλλομετρητών, ενώ εμπεριέχει και δυνατότητες προσβασιμότητας. Το CMS μπορεί να χρησιμοποιηθεί για να κάνει έναν δικτυακό τόπο δυναμικό και διαδραστικό, αυξάνοντας κατακόρυφα την αποτελεσματικότητα του και την επισκεψιμότητά του. Αν και η δημιουργία και παρουσίαση περιεχομένου σε μορφή HTML είναι ένα από τα δυνατότερα σημεία ενός CMS, εντούτοις μπορεί να προσφέρει πολύ περισσότερα. Μια εξαιρετικά ενδιαφέρουσα δυνατότητα των συστημάτων αυτών είναι η ταυτόχρονη δημοσίευση του περιεχομένου σε διαφορετικές μορφές για εκτύπωση και ηλεκτρονική διανομή (PDF, Word, κλπ), ασύρματες/φορητές συσκευές, RSS Feeds ή XML. Ταυτόχρονα, οι τελευταίες εκδόσεις των CMS υποστηρίζουν άμεση σύνδεση με τα κοινωνικά δίκτυα, μια δυνατότητα η οποία είναι σίγουρα ιδιαίτερα σημαντική, λαμβάνοντας υπόψη την διείσδυσή τους στο κοινό. Τα οφέλη που προκύπτουν από την εφαρμογή και χρήση ενός συστήματος διαχείρισης περιεχομένου είναι πολλά και σημαντικά. Καταρχήν, επιτρέπουν την γρήγορη ενημέρωση, διαχείριση και αρχειοθέτηση της πληροφορίας. Πρόσθετα πλεονεκτήματα είναι η δυνατότητα αναζήτησης του περιεχομένου που καταχωρείται και η αυτόματη αρχειοθέτηση του, η εύκολη χρήση και η άμεση γνώση του τελικού αποτελέσματος, όπως γίνεται με τους γνωστούς κειμενογράφους, παρέχει μεγαλύτερη συνέπεια στην εμφάνιση του διαδικτυακού σας τόπου. Επίσης, τα CMS παρέχουν αυξημένη ευελιξία, βελτιωμένη πλοήγηση και αυξημένη δυνατότητα επέκτασης. Ο διαχωρισμός 21

του περιεχομένου από το σχεδιασμό και την πλοήγηση (navigation) του δικτυακού τόπου δίνει την δυνατότητα αλλαγής του σχεδιασμού ή τρόπου πλοήγησης χωρίς να είναι απαραίτητη η ενημέρωση όλων των σελίδων από τον ίδιο το χρήστη. Επίσης υποστηρίζουν ένα αποκεντροποιημένο σύστημα ενημέρωσης καθώς η ενημέρωση του περιεχομένου μπορεί να γίνει από οπουδήποτε, από πολλούς χρήστες και από διαφορετικούς υπολογιστές. Επίσης παρέχουν αυξημένη ασφάλεια και προστασία του σχεδιασμού του δικτυακού τόπου από λανθασμένες ενέργειες. Οι ενέργειες αυτές θα μπορούσαν να δημιουργήσουν προβλήματα στην εμφάνισή του και η αυτόματη δημιουργία των συνδέσμων μεταξύ των σελίδων καθώς και η αποφυγή προβλημάτων ανύπαρκτων σελίδων (404 error pages) δίνουν την δυνατότητα απρόσκοπτης λειτουργίας στην ιστοσελίδα. Επίσης, η μη επαναλαμβανόμενη πληροφορία ή η μείωση αυτής, σημαίνει πρακτικά μικρότερο φόρτο εργασίας στον εξυπηρετητή (server) και χρήση λιγότερου χώρου αποθήκευσης, αφού δεν υπάρχουν πολλές επαναλαμβανόμενες στατικές σελίδες, από τη στιγμή που η ανάπτυξη των σελίδων γίνεται δυναμικά. Όλο το περιεχόμενο καταχωρείται στην βάση δεδομένων, την οποία μπορούμε πιο εύκολα και γρήγορα να την προστατεύσουμε τηρώντας αντίγραφα ασφαλείας. Πρόσθετα, τα CMS μειώνουν σημαντικά το κόστος συντήρησης το δικτυακού τόπου, καθώς δεν απαιτούνται ειδικές τεχνικές γνώσεις από τους διαχειριστές με συνέπεια την ελαχιστοποίηση λήψης τεχνικής υποστήριξης και έτσι μειώνουν και τις ανάγκες εκπαίδευσης για τους διαχειριστές. Τέλος, τα CMS επιτρέπουν την διατήρηση της επιχειρησιακής γνώσης εντός της επιχείρησης. Είναι γενικά γνωστό πως όταν φεύγει από την επιχείρηση ένας εργαζόμενος που βρίσκεται σε σημαντική θέση, μειώνεται η γνώση που είναι διαθέσιμη μέσα στον οργανισμό. Το CMS υποστηρίζει την καταγραφή αυτής της πληροφορίας στα πληροφοριακά συστήματα με σκοπό την διατήρησή της εντός της επιχείρησης. 22

III.3. ΠΑΡΟΥΣΙΑΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ CMS III.3.1. WORDPRESS Το WordPress * έχει ένα σύστημα προτύπων ιστού το οποίο χρησιμοποιεί έναν επεξεργαστή προτύπων. Οι χρήστες του μπορούν να αλλάζουν τη θέση διαφόρων στοιχείων του γραφικού περιβάλλοντος χωρίς να χρειάζεται να επεξεργάζονται κώδικα PHP ή HTML. Μπορούν επίσης να εγκαθιστούν και να αλλάζουν μεταξύ διαφόρων οπτικών θεμάτων ενώ μπορούν ακόμα και να επεξεργαστούν απευθείας τον κώδικα PHP και HTML στα οπτικά θέματα, προκειμένου να επιτύχουν προχωρημένες τροποποιήσεις. Το WordPress έχει επίσης δυνατότητα ενσωματωμένης διαχείρισης συνδέσμων, μόνιμους συνδέσμους οι οποίοι είναι φιλικοί προς τις μηχανές αναζήτησης, δυνατότητα ανάθεσης πολλαπλών κατηγοριών και υποκατηγοριών στα άρθρα, και υποστήριξη για ετικέτες στα άρθρα και τις σελίδες. Συμπεριλαμβάνονται επίσης αυτόματα φίλτρα, τα οποία παρέχουν προτυποποιημένη μορφοποίηση του κειμένου. * Πηγή εικόνας: http://wordpress.tv/category/how-to/admin/ 23

Το WordPress υποστηρίζει επίσης τα πρότυπα Trackback και Pingback για προβολή συνδέσμων προς άλλους ιστότοπους, οι οποίοι με τη σειρά τους έχουν συνδέσμους προς μια δημοσίευση ή ένα άρθρο. Τέλος, το WordPress έχει μια πλούσια αρχιτεκτονική πρόσθετων λειτουργιών, η οποία επιτρέπει στους χρήστες και στους προγραμματιστές να επεκτείνουν τη λειτουργικότητά του πέρα από τις δυνατότητες οι οποίες αποτελούν μέρος της βασικής εγκατάστασης. Διατίθενται εγγενείς εφαρμογές για το Android, iphone/ipod Touch, ipad, Windows Phone 7 και το BlackBerry. Το WordPress είναι μια πολύ καλή λύση CMS, όμως γενικά δεν προτείνεται για μεγάλα portals ή blogs ή μεγάλα φόρουμ συζητήσεων. Επίσης δεν θα έχει καλή απόδοση σε εταιρικές ιστοσελίδες εταιρικές ακόμα και αν οι ανάγκες του από άποψη διαχείρισης και παραμετροποίησης δεν είναι ιδιαίτερα υψηλές. Τέλος, οι σχεδιαστές δικτυακών τόπων το αποφεύγουν πάντα όταν ο δικτυακός τόπος που σχεδιάζουν εμπεριέχει shopping cart. III.3.2. JOOMLA Το Joomla! * είναι ένα ελεύθερο και ανοικτού κώδικα σύστημα διαχείρισης περιεχομένου. Είναι ένας πλήρης μηχανισμός διαχείρισης του περιεχομένου και της βάσης δεδομένων του ιστοχώρου και χρησιμοποιείται για την δημοσίευση περιεχομένου στον παγκόσμιο ιστό (World Wide Web) και σε τοπικά δίκτυα - intranets. Είναι γραμμένο εξ ολοκλήρου σε PHP και αποθηκεύει * Πηγή εικόνας: http://mac.brothersoft.com/joomla.html 24

τα δεδομένα του σε βάση δεδομένων MySQL. Το βασικό χαρακτηριστικό του είναι ότι οι σελίδες που εμφανίζει είναι δυναμικές, δηλαδή δημιουργούνται την στιγμή που ζητούνται. Έτσι, είναι απαραίτητα ένα σύστημα διακομιστή (server) όπως είναι ο Apache για να λαμβάνει τις αιτήσεις των χρηστών και τις εξυπηρετεί. Το σύστημα διαθέτει δυνατότητες πλήρους επεξεργασίας του περιεχομένου αλλά και του περιβάλλοντος, συμπεριλαμβανομένων των θέσεων του αριστερού, του κεντρικού και του δεξιού μενού, ενώ χρησιμοποιεί τον browser για να ανεβάζει εικόνες στη βιβλιοθήκη για την χρήση τους σε οποιοδήποτε σημείο του ιστοχώρου Το Joomla! χρησιμοποιεί ερωτήματα προς τη βάση για να λαμβάνει δεδομένα τα οποία μορφοποιεί και αποστέλλει στον εκάστοτε φυλλομετρητή (web browser) του χρήστη. Το Joomla! έχει και άλλες δυνατότητες εμφάνισης όπως η προσωρινή αποθήκευση σελίδας, RSS feeds, εκτυπώσιμες εκδόσεις των σελίδων, ειδήσεις, blogs, δημοσκοπήσεις, έρευνες, καθώς και πολύγλωσση υποστήριξη των εκδόσεών του. Ένα σημαντικό του χαρακτηριστικό είναι η δυνατότητα για Search Engine Optimisation (SEO). Η διαδικασία αυτή που στα Ελληνικά μεταφράζεται ως «Βελτιστοποίηση μηχανών αναζήτησης», ουσιαστικά είναι η βελτιστοποίηση της ιστοσελίδας για τις μηχανές αναζήτησης. Οι μηχανές αναζήτησης όπως η Google και το Yahoo! είναι η σημαντικότερη πηγή για την αύξηση των επισκεπτών μιας ιστοσελίδας. 25

III.3.3. DRUPAL Το Drupal * θεωρείται σήμερα στην αγορά ένα από τα κορυφαία συστήματα διαχείρισης περιεχομένου. Βρίσκεται στην αγορά εδώ και αρκετά χρόνια και είναι γνωστό και την άψογη αρχιτεκτονική του, την ενεργή κοινότητα που το στηρίζει με πολύ ουσιαστικό τρόπο αλλά και την ποιότητα του κώδικα του που τρέχει πίσω του. Είναι πλέον κοινά αποδεκτό ότι το Drupal αποτελεί την καλύτερη λύση για αυξημένες ανάγκες διαχείρισης και παραμετροποίησης. Οι διαχειριστές το προτιμούν σε περιπτώσεις δικτυακών τόπων με απαιτήσεις μεσαίου ή υψηλού επιπέδου. Σε μικρότερων απαιτήσεων έργα, το Drupal αποτελεί και εκεί μια αξιόπιστη λύση, όμως δεδομένων των δυνατοτήτων του, απαιτείται αρκετή παραμετροποίηση και μάλλον δεν είναι η καλύτερη λύση. * Πηγή εικόνας: http://dontai.com/wp/2009/04/01/drupal-6-workflow-documentation/ 26

Το Drupal μπορεί να εκτελεστεί σε διάφορες πλατφόρμες, συμπεριλαμβανομένων των λειτουργικών συστημάτων Windows, Mac OS X, Linux, FreeBSD. Στην πράξη, μπορεί να εκτελεστεί σε οποιασδήποτε πλατφόρμα που υποστηρίζει είτε τον διακομιστή ιστοσελίδων Apache HTTP Server (έκδοση 1.3+), είτε τον Internet Information Services (έκδοση IIS5+) της Microsoft, καθώς επίσης και τη γλώσσα προγραμματισμού PHP (έκδοση 4.3.3+). Το Drupal απαιτεί μια βάση δεδομένων όπως η MySQL και η PostgreSQL για την αποθήκευση του περιεχομένου και των ρυθμίσεών του. III.4. ΓΛΩΣΣΑ PHP H PHP είναι μια ιδιαίτερα δημοφιλής γλώσσα προγραμματισμού για τη δημιουργία δυναμικών ιστοσελίδων. Ο κώδικας μιας σελίδας PHP ουσιαστικά παράγει κώδικα HTML, περνώντας από επεξεργασία από έναν συμβατό διακομιστή του Παγκόσμιου Ιστού, όπως ο Apache τον οποίο χρησιμοποιεί το πακέτο XAMPP. Το αποτέλεσμα είναι να παράγεται η σελίδα σε πραγματικό χρόνο με το τελικό περιεχόμενο να αποστέλλεται στο πρόγραμμα περιήγησης των επισκεπτών σε μορφή κώδικα HTML. Η ΡΗΡ είναι μια γλώσσα τύπου script η οποία εκτελείται στην πλευρά του διακομιστή ενώ είναι σχεδιασμένη ειδικά για τον Παγκόσμιο Ιστό. Μέσα σε μια σελίδα HTML, ένας προγραμματιστής μπορεί να ενσωματώσει κώδικα PHP, ο οποίος θα εκτελείται κάθε φορά που ο χρήστης θα επισκέπτεται σελίδα. Οι οδηγίες του κώδικα ΡΗΡ, μεταφράζονται στον διακομιστή, ο οποίος δημιουργεί κώδικα HTML ή κάποια άλλη έξοδο που θα δει ο επισκέπτης. 27

Η ΡΗΡ δημιουργήθηκε το 1994 και ήταν αρχικά η δουλειά ενός ατόμου, του Rasmus Lerdorf. Ως γλώσσα, έγινε άμεσα πολύ δημοφιλής και υιοθετήθηκε από την προγραμματιστική κοινότητα γρήγορα. Τον Ιούνιο του 2013 ήταν σε χρήση σχεδόν στο συντριπτικό ποσοστό 82,1% των ενεργών δικτυακών τόπων παγκοσμίως.* Όπως αναφέραμε και παραπάνω, η PHP είναι ένα προϊόν ανοιχτού κώδικα. Τα αρχικά ΡΗΡ σήμαιναν στην αρχή Personal Home Page (προσωπική σελίδα), αλλά άλλαξε σύμφωνα με την σύμβαση GNU και τώρα σημαίνει Hypertext Preprocessor (προεπεξεργαστής κειμένου). Τα πλεονεκτήματα της PHP είναι αρκετά, έναντι των ανταγωνιστών της της (Perl, Microsoft Active Server Pages (ASP), Java Server Pages ( JSP ) και Cold Fusion). Η γλώσσα PHP είναι ανεξάρτητη από την πλατφόρμα του χρήση ενώ συνεργάζεται με όλους τους δημοφιλείς web servers (Apache, IIS, Tomcat, κλπ). Ταυτόχρονα, υποστηρίζει έναν μεγάλο αριθμό βάσεων δεδομένων (MySQL, DB2, Oracle) και μάλιστα με πολύ απλή σύνταξη εντολών. Τέλος, η γλώσσα μπορεί να υποστηρίξει τόσο διαδικασιακό (procedural) όσο και αντικειμενοστραφή (OOP) προγραμματισμό. * Πηγή: http://w3techs.com/technologies/overview/programming_language/all (Προσπελάστηκε την 18/8/2014) 28

Η ΡΗΡ είναι πολύ αποτελεσματική καθώς έχει πολύ υψηλή απόδοση. Επίσης, διαθέτει εγγενείς συνδέσεις για πολλά συστήματα βάσεων δεδομένων. Εκτός από την MySQL, η οποία χρησιμοποιείται με μεγαλύτερη συχνότητα, ο προγραμματιστής μπορεί να συνδεθεί με τις βάσεις δεδομένων PostgreSQL, Oracle, dbm, filepro, Informix, InterBase, Sybase και άλλες. Επίσης, χρησιμοποιώντας το Open Database Connectivity Standard (ODBC) μπορούμε να συνδεθούμε σε οποιαδήποτε βάση δεδομένων παρέχει ένα πρόγραμμα οδήγησης ODBC όπως τις βάσεις της Microsoft. Επίσης, η PHP εμπεριέχει ενσωματωμένες βιβλιοθήκες για τις περισσότερες από τις συνηθισμένες διαδικασίες που συναντώνται σε έναν δικτυακό τόπο, καθώς σχεδιάστηκε για να χρησιμοποιείται στο διαδίκτυο. Ο προγραμματιστής μπορεί να κάνει πολλές λειτουργίες με ελάχιστες γραμμές κώδικα. Το κόστος είναι επίσης ένα πλεονέκτημα της PHP, καθώς η γλώσσα είναι δωρεάν. Επίσης, είναι αρκετά εύκολη στην εκμάθηση και τη χρήση, αφού η σύνταξή της βασίζεται σε άλλες γλώσσες προγραμματισμού, ειδικότερα στην C και στην Perl. Τέλος, ένα από τα μεγαλύτερα πλεονεκτήματά της είναι η μεταφερσιμότητα. Η ΡΗΡ είναι διαθέσιμη για πολλά λειτουργικά συστήματα και ο προγραμματιστής μπορεί να γράψει κώδικα ΡΗΡ για δωρεάν συστήματα τύπου Unix, για εμπορικές εκδόσεις του UNIX ή για διαφορετικές εκδόσεις των Microsoft Windows. 29

IV. ΠΑΡΟΥΣΙΑΣΗ ΕΦΑΡΜΟΓΗΣ IV.1. ΕΓΚΑΤΑΣΤΑΣΗ XAMPP Το XAMPP είναι ένα πακέτο που περιέχει προγράμματα ελεύθερου λογισμικού, ανεξαρτήτου πλατφόρμας και χρησιμοποιείται ως πλατφόρμα για την σχεδίαση, ανάπτυξη ακόμα και φιλοξενία ιστοσελίδων με τεχνολογίες όπως σελίδες PHP ή και JSP. Το πακέτο περιέχει τον εξυπηρετητή ιστοσελίδων Apache και την βάση δεδομένων MySQL. Επίσης, περιέχει έναν διερμηνέα για κώδικα γραμμένο στην γλώσσα PHP. Η τελευταία έκδοση του πακέτου βρίσκεται στην ιστοσελίδα http://www.apachefriends.org. Αναφορικά με την εγκατάσταση του πακέτου, το Xampp περιέχει μία ολοκληρωμένη διαδικασία εγκατάστασης, η οποία τοποθετεί στον υπολογιστή όλες τις απαραίτητες εφαρμογές. Τα αρχεία του δικτυακού τόπου που δημιουργούμε θα πρέπει να τοποθετηθούν στον φάκελο C:\xampp\htdocs στον υπολογιστή στον οποίο εγκαταστάθηκε το Xampp. Σε περίπτωση που εγκατασταθεί κάποιο σύστημα διαχείρισης περιεχομένου (π.χ. Joomla) θα πρέπει να εγκατασταθεί σε εκείνο τον φάκελο. 30

Το Xampp όπως είπαμε περιέχει και την βάση δεδομένων MySQL, η οποία περιέχει προεγκατεστημένο τον χρήστη root με κενό κωδικό. Στην περίπτωσή μας, μπορούμε να αφήσουμε αυτή την επιλογή για σύνδεση με την βάση δεδομένων όμως εάν η εγκατάσταση αφορά δικτυακό τόπο που θα είναι διαθέσιμος στο κοινό, ο κωδικός αυτός θα πρέπει να αλλάξει για λόγους ασφαλείας. Όταν ολοκληρωθεί η εγκατάσταση του Xampp, μπορούμε να ξεκινήσουμε τις εφαρμογές που εμπεριέχει χρησιμοποιώντας το Xampp Control Panel, μέσω του οποίου μπορούμε να διαχειριστούμε τόσο τον Apache όσο και την MySQL. Εδώ θα πρέπει να δοθεί ιδιαίτερη προσοχή έτσι ώστε να μην εκτελούνται ταυτόχρονα εφαρμογές που χρησιμοποιούν τα ίδια ports που χρησιμοποιούν οι προαναφερθείσες εφαρμογές καθώς στην περίπτωση αυτή δεν θα λειτουργεί σωστά η μηχανή του εξυπηρετητή ή της βάσης δεδομένων. Ένα από τα πιο κοινά προγράμματα το οποίο δημιουργεί πρόβλημα στην εκτέλεση των εφαρμογών είναι το Skype, το οποίο θα πρέπει να είναι κλειστό όταν εκτελείται ο Apache και η MySQL. 31

Ο Πίνακας Ελέγχου (Control Panel) επιτρέπει την εκκίνηση των εφαρμογών αλλά και του περιβάλλοντος διαχείρισής τους. Για την MySQL, το περιβάλλον διαχείρισης είναι το PhpMyAdmin το οποίο είναι ένα ιδιαίτερα ισχυρό εργαλείο διαχείρισης της βάσης, το οποίο συνδέει με επιτυχία το γραφικό περιβάλλον με τον κώδικα SQL τον οποίο υποστηρίζει η MySQL. IV.2. ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Η βάση δεδομένων (με όνομα akinita) που έχουμε υλοποιήσει για τον δικτυακό μας τόπο είναι αρκετά απλή, καλύπτει όμως στο ακέραιο τις ανάγκες μας για αποθήκευση και επεξεργασία δεδομένων. Πρέπει να τονιστεί ότι το collation της βάσης (δεδομένου ότι περιέχει δεδομένα με ελληνικούς χαρακτήρες) θα πρέπει να οριστεί ως utf8_unicode_ci, κάτι το οποίο θα πρέπει να οριστεί τόσο στην βάση όσο και μεμονωμένα στους πίνακες που δημιουργούνται. 32

Η δομή της βάσης, η οποία περιέχει τρεις πίνακες, φαίνεται παραπάνω. Ο βασικός πίνακας είναι ο πίνακας των ακινήτων (spitia), ο οποίος περιέχει στοιχεία για τα ακίνητα που έχουν καταχωρήσει οι χρήστες/ιδιοκτήτες στην βάση. Ο πίνακας περιέχει πληροφορίες για την διεύθυνση του ακινήτου, καθώς και τα χαρακτηριστικά του γνωρίσματα (τετραγωνικά, δωμάτια, αν είναι επιπλωμένο καθώς και το κόστος). Υπάρχει ένα πεδίο τύπου Boolean (υλοποιημένο ως ένα δυαδικό ψηφίο Bit(1)) το οποίο μας δείχνει αν το ακίνητο είναι για ενοικίαση (αν όχι, τότε θεωρείται ότι καταχωρίστηκε προς πώληση) ενώ υπάρχει και το πεδίο που μας δείχνει τον χρήστη/ιδιοκτήτη του ακινήτου. Το πεδίο αυτό είναι ξένο κλειδί για τον πίνακα των χρηστών (xristes), ο οποίος περιέχει τα στοιχεία του κάθε χρήστη του συστήματός μας. Σύμφωνα με τα απαιτούμενα του συστήματος, ο χρήστης μπορεί να εγγραφεί είτε ως πάροχος ακινήτου είτε ως αγοραστής/ενοικιαστής. Η διαφοροποίηση αυτή γίνεται από το πεδίο Paroxos. 33

Ο τελευταίος πίνακας είναι ο πίνακας των καταχωρισμένων αναζητήσεων. Όπως μας ζητήθηκε, το σύστημα θα πρέπει να επιτρέπει στον χρήστη να αποθηκεύει τις αναζητήσεις ακινήτων έτσι ώστε να μπορεί να ελέγξει μελλοντικά εάν υπάρχουν κάποια ακίνητα που να ταιριάζουν στις προτιμήσεις του. Ο πίνακας περιέχει τα απαιτούμενα χαρακτηριστικά γνωρίσματα που ζήτησε ο χρήστης, ενώ έχει και ως ξένο κλειδί τον χρήστη ο οποίος καταχώρισε την αναζήτηση. Εδώ θα πρέπει να σημειώσουμε κάποιες παρατηρήσεις αναφορικά με τη βάση δεδομένων. Καταρχήν, με βάση την υλοποίησή μας, ο κάθε χρήστης μπορεί να καταχωρίσει είτε αναζητήσεις είτε ακίνητα, ανάλογα με τον ρόλο του στο σύστημα (πάροχος ή ενοικιαστής/αγοραστής). Αυτό υλοποιήθηκε μόνο στο front-end του συστήματος και όχι ως έλεγχος της βάσης. Επίσης, είναι σημαντικό να σημειωθεί ότι η βάση μπορεί εύκολα να εμπλουτιστεί με πρόσθετα χαρακτηριστικά για τα ακίνητα, αρκεί να προστεθούν τα αντίστοιχα πεδία και στους δύο πίνακες, δηλαδή σε αυτόν των ακινήτων και σε αυτόν των αναζητήσεων. Ο πλήρης κώδικας SQL για την δημιουργία της βάσης και των πινάκων της δίνεται στο Παράρτημα ΙΙ. IV.3. ΛΕΙΤΟΥΡΓΙΚΕΣ ΜΟΝΑΔΕΣ Η διαδικτυακή εφαρμογή που έχουμε σχεδιάσει αποτελείται από μια σειρά από αρχεία PHP τα οποία δημιουργούν τις ιστοσελίδες που εμφανίζονται στον τελικό χρήστη. Πριν ξεκινήσουμε την περιγραφή του κώδικα, θα πρέπει να αναφέρουμε ότι για να επιτύχουμε καλό αποτέλεσμα στο γραφικό περιβάλλον της εφαρμογής, χρησιμοποιήσαμε ένα έτοιμο θέμα (με όνομα «Grunge Era») το οποίο εντοπίσαμε στο Internet *, αφού το τροποποιήσαμε κατάλληλα. Ως * http://www.styleshout.com/demo/?theme=grungeera 34

editor για τις σελίδες PHP χρησιμοποιήθηκαν δύο συμπληρωματικά προγράμματα. Το ένα πρόγραμμα είναι το UltraEdit, το οποίο είναι ένας γενικός text editor ο οποίος υποστηρίζει αρχεία με κώδικα PHP, ενώ το δεύτερο είναι το IDE phpdesigner 8 της εταιρίας mpsoftware *. Μια παρατήρηση που πρέπει να γίνει εδώ είναι ότι θα πρέπει κατά την αποθήκευση των αρχείων PHP (τα οποία στην ουσία είναι αρχεία κειμένου) να επιλέγεται ως encoding το UTF- 8, καθώς σε αντίθετη περίπτωση δεν εμφανίζονται σωστά οι ελληνικοί χαρακτήρες. Η εφαρμογή δεν είναι διεθνοποιημένη προς το παρόν καθώς περιέχονται στον κώδικα τα μηνύματα μόνο στα Ελληνικά. Το σημείο εκκίνησης της εφαρμογής είναι η κεντρική σελίδα (index.php), η οποία περιέχει το βασικό μενού του δικτυακού μας τόπου. Το αρχείο που περιέχει τις γενικές συναρτήσεις που χρησιμοποιούνται είναι το head.php, στο οποίο έχουμε υλοποιήσει μεθόδους που εμφανίζουν το κεντρικό μενού, την κεφαλίδα και το υποσέλιδο της κάθε σελίδας της εφαρμογής αλλά και που υλοποιούν κάποιες απαραίτητες γενικές λειτουργίες, όπως για παράδειγμα την σύνδεση ενός χρήστη στο σύστημα. Επίσης, θα πρέπει να αναφερθούμε στο αρχείο sqlconnect.php το οποίο διαχειρίζεται την σύνδεσή μας με την βάση δεδομένων. Σημαντική λειτουργικότητα στην head.php έχει η μέθοδος checkpropertysuccess, η οποία παίρνει ως παράμετρο το κλειδί του ακινήτου που μόλις καταχωρίστηκε και ελέγχει αν ικανοποιεί κάποια από τις αποθηκευμένες αναζητήσεις. Εφόσον εντοπιστεί κάποια αναζήτηση, καλείται η μέθοδος mailex η οποία αποστέλλει το σχετικό ενημερωτικό e-mail στον χρήστη. Τέλος στην head.php υπάρχει η μέθοδος test_input, η οποία χρησιμοποιείται για να καθαριστούν τα δεδομένα ερωτημάτων που περνούν * http://www.mpsoftware.dk/phpdesigner.php Αντλήθηκε από το http://www.freestuff.gr/forums/viewtopic.php?t=52609 την 26/7/2014. 35

στον κώδικα μέσω της μεθόδου POST στις ιστοσελίδες. Η μέθοδος αυτή αντιγράφηκε ακέραια από σχετικά άρθρα στην ιστοσελίδα w3schools.com *. Ο κώδικας της κάθε σελίδας έχει την παρακάτω γενική μορφή: H μέθοδος pagehead, η οποία εμπεριέχεται στo head.php, ξεκινά ένα καινούργιο session (για να αποθηκεύονται πληροφορίες κατά την επίσκεψη του χρήστη στον δικτυακό μας τόπο) ενώ φροντίζει για την σύνδεση με την βάση. Στην συνέχεια, δημιουργεί κώδικα HTML για την κεφαλίδα της σελίδας, με βάση έτοιμο κώδικα που υπάρχει στο θέμα που κατεβάσαμε. Στην συνέχεια εκτελείται η mainmenu, μία μέθοδος η οποία χτίζει το βασικό μενού της σελίδας, ανάλογα με το προφίλ του χρήστη ο οποίος είναι συνδεδεμένος (εάν είναι συνδεδεμένος) αλλά και ανάλογα με την σελίδα για την οποία εμφανίζεται το μενού. Ο λόγος της διαφοροποίησης ανά σελίδα είναι ότι το θέμα επιτρέπει να εμφανίζεται με διαφορετικό χρώμα το κουμπί της σελίδας που είναι ενεργή (χρησιμοποιώντας την CSS Class «current») και για τον λόγο αυτό η mainmenu παίρνει ως παράμετρο το όνομα της σελίδας που «ζητάει» την εμφάνιση του μενού. Εάν ο χρήστης είναι πάροχος, το σύστημα του επιτρέπει να δει τα ακίνητά του ή να προσθέσει νέο ακίνητο, ενώ αν είναι ενοικιαστής/αγοραστής του επιτρέπει να δει τα καταχωρισμένα ακίνητα, αλλά και τις αναζητήσεις που έχει αποθηκεύσει. Για τους συνδεδεμένους χρήστες * http://www.w3schools.com/php/php_form_validation.asp 36