• Nenhum resultado encontrado

Ανάπτυξη εφαρμογής διαδικτύου για την ηλεκτρονική εξυπηρέτηση του κοινού και την παρακολούθηση της συντήρησης του τροχαίου υλικού του ΟΣΕ, με τη χρήση των γλωσσών προγραμματισμού TLC, HTML και MYSQL

N/A
N/A
Protected

Academic year: 2023

Share "Ανάπτυξη εφαρμογής διαδικτύου για την ηλεκτρονική εξυπηρέτηση του κοινού και την παρακολούθηση της συντήρησης του τροχαίου υλικού του ΟΣΕ, με τη χρήση των γλωσσών προγραμματισμού TLC, HTML και MYSQL"

Copied!
67
0
0

Texto

(1)

ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ

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

ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ TCL HTML ΚΑΙ MYSQL.

ΖΩΓΡΑΦΟΣ ΓΕΩΡΓΙΟΣ ΜΑΛΑΜΑΤΑΣ ΑΛΕΞΑΝΔΡΟΣ

ΟΚΤΩΒΡΗΣ 2007

ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ Μαρδυρης Βασιλειος

(2)

Περιεχόμενα

Πρόλογος………... 4

Εισαγωγή………... 5-6 1 APACHE WEB SERVER………..… 7-15 1.1 Υποστήριξη μιας server-side γλώσσας προγραμματισμού………8

1.2 Σχήματα αυθεντικοποίησης……….9

2 MYSQL………...……… 16-20 3 TCL……….. 21-24 4 Η γλώσσα γραφής ιστοσελίδων HTML……….. 25

5 Πρωτόκολλο HTTP………. 26-28 6 Το πρωτόκολλο διαμεσολάβησης CGI……….. 28

7 Προγράμματα………... 28-30 7.1 ADOBE PHOTOSHOP CS2………. 29

7.2 ADOBE IMAGE READY CS2………... 29

7.3 NOTEPAD ++ V4.0.1, PROGRAMMERS NOTEPAD……….. 30

7.4 MySql Control Center………. 30

8 Μοντέλο ανάπτυξης της εφαρμογής………..… 31-33 8.1 Πληροφοριακά Συστήματα Διαχείρισης Πόρων Επιχείρησης (ERP)………. 31

8.2 Το πρότυπο της εφαρμογής………. 31

8.3 Πολυμορφισμός της εφαρμογής……….. 33

9 Τρόπος λειτουργίας της εφαρμογής………. 34-52 9.1 Δημιουργία λογαριασμού για εισαγωγή στη βάση δεδομένων……….……….. 34

9.2 Παράδειγμα δημιουργίας ενός πίνακα στην Mysql……… 36

9.3 Γενική εικόνα της τελικής κατάστασης της Βάσης Δεδομένων……… 37

9.4 Αναλυτική περιγραφή του πίνακα pinakas_login και λειτουργιών του………..……. 38

9.5 Περιγραφή και ανάλυση της ασφάλειας της εφαρμογής……….……..…... 39

9.6 Περιγραφή και ανάλυση διεργασιών που εκτελούνται κατά την έκδοση εισιτηρίων………... 42

9.7 Περιγραφή και ανάλυση λειτουργιών της «Παρακολούθησης Θέσεων»……….….. 45

9.8 Περιγραφή και ανάλυση της λειτουργίας καταγραφής και αποθήκευσης στατιστικών στοιχείων……… 46

9.9 Περιγραφή και ανάλυση της προβολής δρομολογίων των αμαξοστοιχιών……...… 49

9.10 Περιγραφή και ανάλυση της ενότητας Διαχείρισης Χρηστών………...…. 50

10 Manual της εφαρμογής………. 53-64 10.1 Εκδόσεις Εισιτήριων……… 53

(3)

10.3 Φορτωτικές……… ……….. 57

10.4 Τροχαίο Υλικό………...…… 59

10.5 Στατιστικά Στοιχειά………...… 61

10.6 Δρομολόγια……… 62

10.7 Διαχείριση Χρηστών………. 63

Συμπεράσματα και προοπτικές………...……….. 65 Βιβλιογραφία……….…… 66-67

(4)

ΠΡΟΛΟΓΟΣ

Το όλο αυτό εγχείρημά μας, μπορεί να συγκεντρωθεί σε μία προσπάθεια κατανόησης του τρόπου σκέψης και της υλοποίησης ενός συστήματος, το οποίο είναι ικανό να ανταπεξέθλει με επιτυχία στις ανάγκες, τόσο των επιχειρήσεων, όσο και των πελατών τους, που έρχονται σε άμεση επαφή μαζί του.

Ολοκληρώνοντας την ανάγνωση αυτής της πτυχιακής εργασίας με τίτλο

«Ανάπτυξη εφαρμογής διαδικτύου για την ηλεκτρονική εξυπηρέτηση του κοινού και την παρακολούθηση της συντήρησης του τροχαίου υλικού του ΟΣΕ, για τη χρήση των γλωσσών προγραμματισμού Tcl, HTML και MySql», ευελπιστούμε να έχουμε επιτύχει τον στόχο μας, ο οποίος είναι να κατανοηθούν όχι μόνο ο τρόπος δημιουργίας ενός τέτοιου προγράμματος, αλλά και το πόσο εύχρηστο, ευέλικτο και συγχρόνως αποδοτικό μπορεί να είναι.

(5)

ΕΙΣΑΓΩΓΗ

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

Με τη σκέψη αυτή, ξεκινήσαμε μια προσπάθεια δημιουργίας ενός διαδραστικού συστήματος, το οποίο, με το κατάλληλο λογισμικό και με τη βοήθεια του ευρέως διαδεδομένου πλέον και καθημερινά χρησιμοποιούμενου παγκόσμιου ιστού (Internet), μπορεί να απλοποιεί και να επιταχύνει τις διαδικασίες των διαφόρων λειτουργιών του εκάστοτε οργανισμού ή επιχείρησης.

Αποφασίσαμε, λοιπόν, να αναπτύξουμε ένα πληροφοριακό σύστημα- πρόγραμμα ηλεκτρονικής διαχείρισης υλικού και εξυπηρέτησης των πελατών μιας εταιρίας σιδηροδρόμων και συγκεκριμένα του Οργανισμού Σιδηροδρόμων Ελλάδος (Ο.Σ.Ε.). Σκοπός του είναι, όπως αναφέρεται και στα παρακάτω κεφάλαια, ο σχεδιασμός ενός συστήματος, το οποίο αφορά την έκδοση και κράτηση εισιτηρίων – θέσεων και την έκδοση φορτωτικών μεταφοράς εμπορευμάτων. Ακόμα δίνει τη δυνατότητα προβολής της κατάστασης, στην οποία βρίσκεται ανά πάσα στιγμή το τροχαίο υλικό. Επίσης, είναι ικανό να κρατά στατιστικά στοιχεία από τα οποία μπορεί ο οργανισμός να βγάλει σωστά και γρήγορα συμπεράσματα σε ότι αφορά τις διάφορες λειτουργίες της επιχείρησης.

Η συλλογή των απαραίτητων στοιχείων για την υλοποίηση του προγράμματος έγινε με τη διαδικασία των συνεντεύξεων από τους εργαζομένους του ΟΣΕ, ενημερωτικών φυλλαδίων που μας δόθηκαν και από την επίσημη σελίδα του ΟΣΕ στο διαδίκτυο. Τα προγράμματα, με τα οποία υλοποιήσαμε το λογισμικό αυτό πρόγραμμα, αναφέρονται στα παρακάτω

(6)

κεφάλαια, αλλά κυρίως βασιστήκαμε στα Apache Web Server, MySql και γλώσσα προγραμματισμού TCL.

(7)

APACHE WEB SERVER

Ο Apache Web Server είναι ένας δυνατός, ευέλικτος και συνεργαζόμενος άριστα με το πρωτόκολλο http, web server. Υποστηρίζει μέχρι και τα πιο καινούργια πρωτόκολλα. Έχει μεγάλες δυνατότητες παραμετροποίησης και επεκτασιμότητας με third – party modules. Υπάρχει η δυνατότητα να παραμετροποιηθεί με δημιουργία modules μέσω της πλατφόρμας Apache module API. Παρέχει πλήρη πρόσβαση στον πηγαίο κώδικα. Είναι συμβατός με διάφορα λειτουργικά συστήματα όπως : Windows VISTA/XP/NT/9x, Netware από 5.x και μεταγενέστερα, καθώς επίσης και τις περισσότερες εκδόσεις των Unix.[1]

Η πρώτη έκδοση του Apache Web Server δημιουργήθηκε το 1995, από μια ομάδα 20 εθελοντών προγραμματιστών, η οποία και ονομάστηκε Apache Group. Βάση για τη δημιουργία του αποτέλεσε ο NCSA Ηttpd Web Server.

Για τον τρόπο επιλογής του ονόματος του οι απόψεις διίστανται. Η μια εκδοχή υποστηρίζει ότι το όνομα το πήρε λόγο του σεβασμού που είχαν οι προγραμματιστές απέναντι στην ινδιάνικη φυλή των APACHE. Η δεύτερη εκδοχή, και αυτή που τυγχάνει και μεγαλύτερης αποδοχής, είναι ότι η λέξη APACHE προέρχεται από την φράση A PATCHy server, λόγω του γεγονότος ότι δημιουργήθηκε επάνω σε προηγούμενο κώδικα με τη συμπλήρωση μερικών

“patch” αρχείων.

Ο Apache Web Server υποστηρίζει ένα πλήθος χαρακτηριστικών λόγω της ύπαρξης πολλαπλών δομικών στοιχείων που ονομάζονται modules μέσα στον κώδικα, τα οποία μεγαλώνουν τη λειτουργικότητα του.

Οι βασικότερες κατηγορίες module του Apache Web Server εξυπηρετούν τα ακόλουθα:

(8)

Υποστήριξη μιας server-side γλώσσας προγραμματισμού[I]:

Perl (mod_perl) : Πρόκειται για ένα module επιλογής για τον Apache Web Server. Ενσωματώνει ένα μεταφραστή της γλώσσας Perl στον Apache Web Server, έτσι ώστε το δυναμικό περιεχόμενο των τμημάτων κώδικα (scripts) της Perl να μπορεί να εκτελεσθεί κατευθείαν σε ενδεχόμενη κλήση του κώδικα, χωρίς να χρειάζεται ξεχωριστός μεταφραστής της Perl κάθε φορά που καλείται κάποιος τέτοιος κώδικας.

Python (mod_python) : Πρόκειται για ένα module του Apache Web Server, το οποίο ενσωματώνει σε αυτόν τη δυνατότητα εκτέλεσης προγραμμάτων που είναι γραμμένα σε γλώσσα προγραμματισμού Python. Το module αυτό είχε σκοπό να αντικαταστήσει το CGI σαν μέθοδο εκτέλεσης κώδικα στον Web Server. Τα υποσχόμενα πλεονεκτήματα του ήταν η γρηγορότερη ταχύτητα εκτέλεσης και διαχείρισης δεδομένων και εργασιών σε περισσότερες από μια παράλληλες εργασίες (sessions).

PHP (mod_php): Στην αρχή η PHP ξεκίνησε σαν ένα πρόγραμμα αλλά με τη συνεχιζόμενη ανάπτυξη της, από την τρίτη έκδοση, είχε γίνει ήδη μια πανίσχυρη γλώσσα ανάπτυξης ιστοσελίδων. Από την τέταρτη έκδοση της ήταν ικανή και αρκετά γερή για να υποστηρίξει επιχειρησιακές εφαρμογές διαδικτύου. Μπορεί να υποστηρίξει σχεδόν όλες τις βάσεις δεδομένων και είναι αρκετές φορές πιο γρήγορη από την ASP σε συστήματα Windows. Διαθέτει επεκτάσεις όπως την APC που μπορούν να βελτιώσουν την ταχύτητα της από 50 έως 400 % ανάλογα με τον κώδικα PHP που γράφει ο χρήστης.

(9)

Σχήματα αυθεντικοποίησης:

Mod_access: Οι οδηγίες που παρέχονται από το Mod_access χρησιμοποιούνται στους τομείς <directory>, <files> και <location>

καθώς και στα αρχεία με κατάληξη .htaccess για να ελέγχουν την πρόσβαση σε συγκεκριμένα κομμάτια του server. Η πρόσβαση ελέγχεται με βάση την IP διεύθυνση, το hostname ή άλλα χαρακτηριστικά του αιτήματος του πελάτη, όπως αυτά λαμβάνονται από μεταβλητές περιβάλλοντος. Οι οδηγίες Allow και Deny χρησιμοποιούνται για να καθοριστεί σε ποιους πελάτες επιτρέπεται ή όχι η πρόσβαση στο server, ενώ η οδηγία Order θέτει ένα προεπιλεγμένο επίπεδο πρόσβασης και προσδιορίζει πως αλληλεπιδρούν μεταξύ τους οι οδηγίες Allow και Deny.

Mod_auth : Το Mod_auth επιτρέπει τη χρήση αυθεντικοποίησης HTTP Basic για να περιοριστεί η πρόσβαση ανατρέχοντας σε αρχεία απλού κειμένου για τα στοιχεία των χρηστών. Παρόμοιες λειτουργίες περιέχονται στα mod_auth_dbm και mod_auth_db. Η HTTP Digest αυθεντικοποίηση παρέχεται από το mod_auth digest. Τα παραπάνω modules αποτελούν μηχανισμούς ασφαλείας βασισμένους σε πιστοποιητικά και είναι τόσο ασφαλή όσο η ασφάλεια του Web server σας και εξ ορισμού δεν είναι τόσο ασφαλή όσο το σύστημα ασφαλείας του κάθε συστήματος λειτουργίας.

Mod_digest : Το Mod_digest είναι ένα module το οποίο χρησιμοποιούταν παλαιότερα για την αυθεντικοποίηση των χρηστών αλλά δεν χρησιμοποιείται πλέον, γιατί ενώ είναι συμβατό με τους περισσότερους μοντέρνους browser, δεν είναι συμβατό με τον Microsoft Internet Explorer. Αντιθέτως χρησιμοποιείται το mod_auth_digest το οποίο δεν έχει τέτοιους περιορισμούς.

(10)

Επιπλέον κατηγορίες χαρακτηριστικών του Apache Web Server είναι:

URL Rewrite Engine: Το mod_rewrite θεωρείται ο ελβετικός σουγιάς του χειρισμού των URL. Χρησιμοποιεί μια μηχανή επανεγγραφής βασισμένη σε κανόνες για την επανεγγραφή των ζητούμενων URL στη στιγμή. Υποστηρίζει έναν απεριόριστο αριθμό κανόνων και συνθηκών και έτσι παρέχει μεγάλη ευελιξία και έναν πανίσχυρο μηχανισμό χειρισμού των URL. Οι χειρισμοί των URL εξαρτώνται από διάφορους παράγοντες όπως μεταβλητές περιβάλλοντος και HTTP επικεφαλίδες για να επιτευχθεί το απόλυτο ταίριασμα των URL. Έχει μεγάλη λειτουργικότητα και ευελιξία, είναι όμως πολύπλοκο και η κατανόηση της πλήρους λειτουργίας του απαιτεί χρόνο.

Υποστήριξη φιλτραρίσματος

Mod_so : Το mod_so είναι ένα πειραματικό module, το οποίο χρησιμοποιείται σε επιλεγμένα συστήματα για να προσθέτουν modules στον Apache μέσω του μηχανισμού Dynamic Shared Object (DSO). Σε συστήματα Unix χρησιμοποιούνται αρχεία με την κατάληξη .so, ενώ σε συστήματα Windows χρησιμοποιούνται αρχεία DLL για την προσθήκη των modules. Σε παλαιότερες εκδόσεις του Apache υπήρχαν τα mod_dld και mod_dll για συστήματα Unix και Windows αντίστοιχα, αλλά αντικαταστάθηκαν από το mod_so από την έκδοση 1.3 και μετά.

Mod_ssl : Αυτό το module προσφέρει υποστήριξη για τα SSL και TLS του Apache HTTP server. Δημιουργήθηκε από τον Ralf S. Engeschall, είναι βασισμένο σε δουλειά του Ben Laurie και στηρίζετε στο OpenSSL για την παροχή της μηχανής κρυπτογράφησης.

Επίσης μπορούμε να κάνουμε μια απλή αναφορά και στα υπόλοιπα module του Apache Web Server, τα οποία είναι τα εξής[2]:

 Mod_actions

(11)

 Mod_alias

 Mod_asis Mod_auth_anon

 Mod_auth_db

 Mod_auth_dbm

 Mod_auth_digest

 Mod_autoindex

 Mod_browser

 Mod_cern_meta

 Mod_dir

 Mod_dld

 Mod_env

 Mod_example.;

 Mod_expires

 Mod_headers

 Mod_imap

 Mod_include

 Mod_info

 Mod_isapi

 Mod_log_agent

 Mod_log_common

 Mod_log_config

 Mod_log_forensic

 Mod_log_referer

 Mod_mime

 Mod_mime_magic

 Mod_mmap_static

 Mod_negotiation

 Mod_setenvif

 Mod_speling

 Mod_status

 Mod_unique_id

 Mod_userdir

(12)

 Mod_usertrack

 Mod_vhost_alias

Ο Apache αρχικά χρησιμοποιήθηκε για να εξυπηρετεί ιστοσελίδες στατικού περιεχομένου, καθώς και δυναμικού περιεχομένου στο περιβάλλον του παγκόσμιου ιστού (World Wide Web). Πολλές web-εφαρμογές έχουν δημιουργηθεί με την προϋπόθεση ύπαρξης όλων των χαρακτηριστικών, που ο Apache μπορεί να προσφέρει.

Ο Apache είναι ένας web server, ο οποίος ανήκει στη διάσημη ομάδα L.A.M.P., της οποίας τα αρχικά ισοδυναμούν με Linux, Apache, Mysql, καθώς και Perl/PHP/Python γλώσσες προγραμματισμού.

Ο Apache τροποποιήθηκε και αποδόθηκε ξανά σαν τμήμα ομοειδών λογισμικών πακέτων από μεγάλους οίκους λογισμικού όπως Oracle RDBMS ή IBM WebSphere application server. Τα Mac λειτουργικά συστήματα ενσωμάτωσαν τον Apache Web Server σαν τον κύριο web server τους, καθώς και σαν τον κύριο Web-Object server εφαρμογών. Επίσης υποστηρίζεται κατά κάποιο τρόπο και από την Borland στα εργαλεία ανάπτυξης Kylix και Delphi. Ο Apache συμπεριλαμβανόταν στο Novell NetWare 6.5, όπου και ήταν ο προκαθορισμένος web server.

Ο Apache χρησιμοποιείται και σε διάφορες άλλες εργασίες, των οποίων το περιεχόμενο έπρεπε να γίνει διαθέσιμο, με όσο το δυνατό πιο αξιόπιστο και ασφαλή τρόπο. Ένα παράδειγμα είναι η μετακίνηση κοινόχρηστων αρχείων από έναν προσωπικό υπολογιστή στο Internet. Ένας χρήστης, ο οποίος έχει εγκατεστημένο τον Apache στον προσωπικό του Η/Υ μπορεί να τοποθετήσει οποιαδήποτε αρχεία επιθυμεί στον κεντρικό κατάλογο εγγράφων (document root) του Apache, από όπου μπορούν μα διανεμονται με ασφάλεια στο Internet.

Πολλοί προγραμματιστές διαδικτυακών εφαρμογών χρησιμοποιούν σε επίπεδο προσωπικού Η/Υ τον Apache για την δοκιμή των υπό ανάπτυξη προγραμμάτων τους.

(13)

Ανταγωνιστές του Apache Web Server είναι τα Microsoft Internet Information Services (IIS) της Microsoft, ο Sun Java System Web server της Sun Microsystems, καθώς επίσης και οι κάτοχοι άλλων εφαρμογών όπως ο Zeus Web Server.

Οι οδηγίες που περιέχονται στα αρχεία διαμόρφωσης μπορούν να αφορούν όλο το server ή ορισμένους τομείς, αρχεία ή URLs. Παρακάτω περιγράφετε πως χρησιμοποιούνται τα αρχεία παραμετροποίησης τομέων, για να αλλάξει η χρήση άλλων οδηγιών διαμόρφωσης[I].

Τα module που σχετίζονται με αυτή τη διαδικασία είναι τα core, mod_version και mod_proxy. Υπάρχουν δυο τύποι αρχείων διαμόρφωσης τομέων, από τη μια μεριά είναι τα αρχεία αυτά που ελέγχονται για κάθε αίτημα και οι εντολές τους εφαρμόζονται μόνο αν αντιστοιχούν σε κάποιο αρχείο και από την άλλη υπάρχουν τα αρχεία που ελέγχονται μόνο στην εκκίνηση και επανεκκίνηση του server, όπως τα <IfDefine>,<IfModule> και <IfVersion> και αν οι συνθήκες τους ισχύουν τότε εφαρμόζονται για όλα τα αιτήματα, αλλιώς αγνοούνται.

Το αρχείο διαμόρφωσης <IfDefine> περιέχει εντολές, που εφαρμόζονται μόνο αν ισχύει μια κατάλληλη παράμετρος στη γραμμή εντολών httpd, όπως στο παρακάτω παράδειγμα όλες οι αιτήσεις στέλνονται σε άλλη ιστοσελίδα αν ο server ξεκινήσει με την εντολή httpd –DclosedForNow[1].

<IfDefine ClosedForNow>

Redirect / http://otherserver.example.com/

</IfDefine>

Το αρχείο διαμόρφωσης <IfModule> έχει παρόμοια λειτουργία μόνο που οι οδηγίες του εκτελούνται εάν υπάρχει διαθέσιμο στο server ένα συγκεκριμένο module. Το module αυτό πρέπει να είναι στατικά συνταγμένο το server ή να γίνει εισαγωγή του μέσο της εντολής LoadModule. Στο ακόλουθο παράδειγμα η οδηγία MimeMagicFiles εκτελείτε μόνο αν το mod_mine_magic είναι διαθέσιμο.

(14)

<IfModule mod_mime_magic.c>

MimeMagicFile conf/magic

</IfModule>

Το αρχείο διαμόρφωσης <IfVersion> κάνει την ίδια δουλειά με τα προηγούμενα δυο με την εξαίρεση ότι οι οδηγίες του εκτελούνται μόνο σε συγκεκριμένη έκδοση του server, όπως στο παρακάτω παράδειγμα:

<IfVersion >= 2.1>

# this happens only in versions greater or

# equal 2.1.0.

</IfVersion>

Τα πιο γνωστά αρχεία διαμόρφωσης είναι αυτά που διαμορφώνουν συγκεκριμένα στοιχεία στο σύστημα αρχείων ή στον ιστοχώρο. Αρχικά είναι σημαντικό να διευκρινίσουμε πως υπάρχει διαφορά ανάμεσα σε αυτά τα δυο.

Το σύστημα αρχείων είναι ο τρόπος που βλέπει το λειτουργικό σύστημα τους δίσκους σας και χρειάζεται την ακριβή τοποθεσία που βρίσκετε το ζητούμενο αρχείο, όπως για παράδειγμα το /usr/local/apache2 σε ένα σύστημα Unix ή το

"c:/Program Files/Apache Group/Apache2" σε ένα σύστημα Windows, ενώ ο ιστοχώρος είναι ο τρόπος, που φαίνεται η ιστοσελίδα, όπως δίνεται από τον server του διαδικτύου και οι ιστοσελίδες μπορούν να παραχθούν δυναμικά από τις τοποθεσίες τους, όπου το /dir/ μπορεί να αντιστοιχεί στο μονοπάτι /usr/local/apache2/htdocs/dir/ σε ένα σύστημα Unix.

Το αρχείο διαμόρφωσης <VirtyalHost>, που περιέχει οδηγίες, που εφαρμόζονται σε διαχειριστές ιστοσελίδων και είναι πολύ χρήσιμο για την περίπτωση που εξυπηρετούνται πολλοί διαχειριστές στο ίδιο μηχάνημα με διαφορετική διαμόρφωση για τον κάθε ένα.

Τα αρχεία διαμόρφωσης <Proxy> και <ProxyMatch>, οποία χρησιμοποιούνται μόνο σε ιστοσελίδες, στις οποίες η πρόσβαση γίνεται μέσω του mod_proxy μόνο στο server, στον οποίο ανήκει η κάθε URL. Για

(15)

παράδειγμα η ακόλουθη διαμόρφωση δεν επιτρέπει τη χρησιμοποίηση του server για την πρόσβαση στην ιστοσελίδα cnn.com.

<Proxy http://cnn.com/*>

Order allow, deny Deny from all

</Proxy>

Αναλόγως σε ποιον τομέα θέλουμε να εκτελέσουμε τις οδηγίες από τα αρχεία διαμόρφωσης υπάρχουν περιορισμοί, που καθορίζονται από την κάθε οδηγία. Για να εφαρμοστεί η κάθε οδηγία χρησιμοποιείται μια καθορισμένη σειρά πράξεων, κατά την οποία ελέγχεται το αρχείο διαμόρφωσης, βρίσκετε σε ποιο αρχείο αντιστοιχούν οι οδηγίες που δίνονται, η τοποθεσία του και μετά εκτελούνται οι οδηγίες που περιέχονται σε αυτό, όπως φαίνεται και στο παρακάτω παράδειγμα με τις εντολές να εκτελούνται από κάτω προς τα πάνω.

<Location />

Order deny, allow Allow from all

</Location>

Η σειρά, με την οποία εκτελούνται οι εντολές, είναι πολύ σημαντική και για αυτό χρειάζεται προσοχή.

(16)

MYSQL

Η MySql είναι μια σχεσιακή βάση δεδομένων (RDBMS) πολλών χρηστών, η οποία αριθμεί πάνω από 10 εκ. εγκαταστάσεις (installations) σύμφωνα με τα στοιχεία της ιδιοκτήτριας εταιρείας.

Η MySsql ανήκει και χορηγείται, από τη Σουηδική εταιρεία MySql AB, η οποία έχει και τα περισσότερα δικαιώματα του κώδικα της.

Η MySql χρησιμοποιείται σε ένα μεγάλο εύρος εφαρμογών, όπως Διαχείριση Αποθήκης Δεδομένων (Data – Warehousing), το Ηλεκτρονικό Εμπόριο (e – Commerce) καθώς επίσης και σε διάφορες εφαρμογές εισόδου σε ιστοσελίδες (Logging Applications). Βασικό πλεονέκτημα της Mysql είναι η δυνατότητα αρμονικής συνεργασίας με πολλές εφαρμογές. Παραδείγματα εταιρειών που χρησιμοποιούν την εν λόγω βάση διαχείρισης δεδομένων είναι οι : NASA, GOOGLE, LUFTHANSA, HYPERION, CISCO και SUZUKI.

Η MySql είναι συμβατή με τα εξής λειτουργικά συστήματα:

 BSDi,

 GNU/Linux,

 Mac OS X,

 Novell NetWare,

 OpenBSD,

 OS/2,

 Solaris,

 SCO UnixWare,

 Windows 95/ 98/ ME/ NT/ 2000/XP/

Vista

Επίσης, η Mysql συνεργάζεται με ένα μεγάλο αριθμό γλωσσών προγραμματισμού, μερικές εκ των οποίων είναι οι εξής:

(17)

 JDBC

 ODBC

 PHP

 Perl

 Python

 WebDAV

 SQL Database Connectivity (SQLDBC)

 ADO

 Delphi

 TCL

Δέκα βασικοί λόγοι που μας οδήγησαν στην χρησιμοποίηση της Mysql[3]

Α. Η μικρή απαίτηση σε μνήμη και η ευελιξία της.

Η mysql μπορεί να διαχειριστεί βάσεις δεδομένων, που περιέχουν terabyte πληροφοριών χρησιμοποιώντας μόνο 1 megabyte μνήμης και υποστηρίζει όλα τα είδη συστημάτων windows, Linux και Unix. Ακόμα, επειδή είναι πρόγραμμα ανοιχτού κώδικα, επιτρέπει την πλήρη προσαρμογή του συστήματος διαχείρισης βάσεων δεδομένων στις απαιτήσεις μας.

Β. Η υψηλή απόδοση.

Η μοναδική αρχιτεκτονική της μηχανής αποθήκευσης της mysql επιτρέπει στους επαγγελματίες των βάσεων δεδομένων να διαμορφώσουν ειδικά για συγκεκριμένες εφαρμογές το σύστημα βάσεων δεδομένων με αποτέλεσμα την υψηλή απόδοση αυτών των εφαρμογών. Η mysql πληροί τις πιο υψηλές απαιτήσεις και προσδοκίες του κάθε συστήματος, είτε η ζητούμενη εφαρμογή είναι ένα σύστημα υψηλής ταχύτητας επεξεργασίας συναλλαγών είτε μια ιστοσελίδα μεγάλου όγκου, που εκτελεί ένα δισεκατομμύριο αναζητήσεις τη

(18)

μέρα. Με υψηλή ταχύτητα διαχείρισης δεδομένων, χαμηλές απαιτήσεις μνήμης, πλήρεις δείκτες κειμένων και άλλους μηχανισμούς βελτίωσης απόδοσης, η mysql προσφέρει τα απαραίτητα πυρομαχικά για τα σημερινά κρίσιμα επιχειρησιακά συστήματα.

Γ. Υψηλή Διαθεσιμότητα

Η σταθερή αξιοπιστία και μόνιμη διαθεσιμότητα είναι χαρακτηριστικά της mysql, με τους πελάτες της, να βασίζονται σε αυτή να εγγυηθεί διαθεσιμότητα όλο το εικοσιτετράωρο. Η MySQL προσφέρει μια ποικιλία επιλογών για οποιοδήποτε λόγο θέλετε να τη χρησιμοποιήσετε.

Δ. Πλήρης Υποστήριξη Συναλλαγών.

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

Ε. Δυνατότητες διαχείρισης δεδομένων σε ιστοσελίδες.

Η mysql αποτελεί πλέον πρότυπο για ιστοσελίδες υψηλής κίνησης λόγω της γρήγορης μηχανής αναζήτησης, της υψηλής ταχύτητας εισαγωγής δεδομένων και της καλής υποστήριξης σε ειδικές λειτουργίες διαδικτύου, όπως γρήγορες αναζητήσεις πλήρους κειμένου. Αυτές τις δυνατότητες τις έχει και στο επίπεδο της αποθήκευσης δεδομένων, όπου η mysql έχει δυνατότητα διαχείρισης terabyte δεδομένων. Άλλες δυνατότητες, όπως βασικοί πίνακες μνήμης, δείκτες hash, δομές B-tree και συμπιεσμένα αρχεία πινάκων που μειώνουν τις απαιτήσεις αποθηκευτικού χώρου έως και ογδόντα τις εκατό κάνουν την mysql ένα δυνατό υποψήφιο για διαδικτυακές και επιχειρησιακές εφαρμογές.

(19)

ΣΤ. Υψηλό επίπεδο ασφαλείας δεδομένων.

Επειδή η φύλαξη των σημαντικών αρχείων των επιχειρήσεων είναι πρωτεύουσας σημασίας για τους διαχειριστές βάσεων δεδομένων, η mysql διαθέτει εξαιρετικές δυνατότητες ασφάλειας, οι οποίες διασφαλίζουν την απόλυτη ασφάλεια των δεδομένων. Διαθέτει μηχανισμούς και τρόπους αυθεντικοποίησης που διασφαλίζουν πως μόνο εξουσιοδοτημένοι χρήστες έχουν πρόσβαση στα δεδομένα, και δυνατότητα περιορισμού του επιπέδου πρόσβασης των χρηστών. Τα SSH και SSL υποστηρίζονται για να διασφαλιστούν ασφαλείς συνδέσεις. Ακόμα υπάρχουν δυνατότητες κωδικοποίησης και αποκωδικοποίησης δεδομένων, έτσι ώστε να προστατεύονται ευαίσθητα δεδομένα και οι χρήστες να βλέπουν μόνο όσα πρέπει να δουν. Τέλος οι δυνατότητες backup και αποκατάστασης που παρέχονται από την mysql και από τρίτους προμηθευτές λογισμικού επιτρέπουν πλήρη λογικά και φυσικά backup και πλήρη αποκατάσταση.

Ζ. Περιεκτική ανάπτυξη εφαρμογής.

Ένας από τους λόγους, που η mysql είναι η πιο δημοφιλής βάση δεδομένων ανοιχτού κώδικα στον κόσμο είναι ότι προσφέρει περιεκτική υποστήριξη για κάθε ανάγκη ανάπτυξης εφαρμογής. Στο εσωτερικό της βάσης δεδομένων υπάρχει υποστήριξη για αποθηκευμένες λειτουργίες, διαδικασίες και άλλα. Για ενσωματωμένες εφαρμογές υπάρχουν διαθέσιμες βιβλιοθήκες, που μπορούν να ενσωματωθούν στην mysql, για να μπορεί να υποστηρίξει σχεδόν οποιαδήποτε εφαρμογή. Ακόμα η mysql διαθέτει οδηγούς, που επιτρέπουν όλες τις μορφές των εφαρμογών να τη χρησιμοποιούν για τη διαχείριση των δεδομένων τους. Δεν έχει σημασία αν χρησιμοποιούν PHP, Perl, Java, Visual Basic, ή .NET, η mysql προσφέρει στους προγραμματιστές ότι χρειάζονται για την επιτυχημένη κατασκευή συστημάτων πληροφοριών που χρειάζονται βάσεις δεδομένων.

Η. Ευκολία διαχείρισης.

(20)

Η mysql προσφέρει εξαιρετικές δυνατότητες γρήγορης εκκίνησης με τον μέσο όρο από το κατέβασμα του προγράμματος μέχρι τη συμπλήρωση της εγκατάστασης να είναι κάτω από τα δεκαπέντε λεπτά. Αυτό ισχύει ανεξάρτητα από την πλατφόρμα λειτουργίας, όπως Windows, Linux, Macintosh ή UNIX.

Μόλις εγκατασταθεί μπαίνουν σε λειτουργία οι διαδικασίες αυτοδιαχείρισης, οι οποίες μειώνουν το φόρτο εργασίας των διαχειριστών του συστήματος.

Θ. Διαρκής Υποστήριξη

Πολλές εταιρείες διστάζουν να δεσμευτούν απόλυτα σε προγράμματα ανοιχτού κώδικα, γιατί πιστεύουν πως δεν έχουν την υποστήριξη ή την επαγγελματική εξυπηρέτηση που χρειάζονται, για να διασφαλίσουν την επιτυχία των εφαρμογών τους. Αυτοί οι φόβοι είναι αβάσιμοι γιατί η mysql προσφέρει εικοσιτετράωρη υποστήριξη και εξυπηρέτηση. Η mysql δεν είναι ένα απλό πρόγραμμα ανοιχτού κώδικα, γιατί όλο το λογισμικό της αποτελεί ιδιοκτησία και υποστηρίζετε από την mysql AB, η οποία εγγυάται το συνδυασμό της σωστής υποστήριξης με την ελευθερία του προγράμματος ανοιχτού κώδικα.

I. Το χαμηλότερο κόστος χρήσης.

Χρησιμοποιώντας τη mysql πολλές εταιρείες έχουν συνειδητοποιήσει πως το κόστος χρήσης είναι πολύ μικρότερο, λόγω της δυνατότητας της mysql να χρησιμοποιεί παλιό hardware χωρίς ιδιαίτερες απαιτήσεις και ακόμα λόγω της εύκολης συντήρησης και αξιοπιστίας, η mysql προσφέρει οικονομία χρόνου στους διαχειριστές των βάσεων δεδομένων.

(21)

TCL

Η TCL ή αλλιώς “Tool Command Language”, είναι μια απλή γλώσσα προγραμματισμού, ανοιχτού κώδικα και αδειών χρήσης με βασικό πλεονέκτημα την επεκτασιμότητα της. Αυτό σημαίνει ότι έχει τη δυνατότητα κάποιος, να γράψει διαφόρων ειδών εφαρμογές σαν Tcl “script”. Υπάρχουν επεκτάσεις για http (internet) και CGI εφαρμογές, εφαρμογές γραφημάτων, καθώς επίσης και επικοινωνίας δεδομένων μέσω κάποιων εξωτερικών βάσεων δεδομένων. Η TCL διαθέτει πολλά έτοιμα βασικά στοιχεία, όπως μεταβλητές και συναρτήσεις και είναι συμβατή με όλα τα νέα λειτουργικά συστήματα όπως: Unix, Linux, MacOs, Windows 95/98/NT/2000/XP/…, PDA.

Η TCL αρχικά δημιουργήθηκε σαν γλώσσα προγραμματισμού σε πειραματικά εργαλεία CAD. Τα προγράμματα σε Tcl συχνά αποκαλούνται και

“scripts”, διότι δεν απαιτείται να περάσουν από τη διαδικασία του “compilation”

πριν χρησιμοποιηθούν, γεγονός που σημαίνει ότι δεν υπάρχει επιπλέον καθυστέρηση στην εκτέλεση κάποιας εφαρμογής[4].

Η Tcl σχεδιάστηκε σαν μια ευέλικτη γλώσσα με ένα μικρό πυρήνα λειτουργιών, ο οποίος μπορούσε να υιοθετηθεί από προγράμματα, κατά τέτοιο τρόπο, τον οποίο ούτε οι δημιουργοί της δεν είχαν φανταστεί. Πράγματι, η Tcl έχει χρησιμοποιηθεί σχεδόν σε όλων των ειδών τις εφαρμογές ξεκινώντας από τους AOL’s web servers και φτάνοντας έως την κεντρική διοίκηση του δικτύου του τηλεοπτικού σταθμού NBC. Στη συνέχεια προσδιορίζουμε τους τύπους εφαρμογών, τους οποίους είναι ικανή να αναπτύξει:

Εφαρμογές Ιστοχώρου ( Web Applications )

Η Tcl είναι μια δυναμική γλώσσα προγραμματισμού και ενδείκνυται για εφαρμογές web. Αυτό γίνεται λόγω της όλης φιλοσοφίας της, η οποία είναι το να είναι μια και να κάνει για όλα («one-size-fits-all»).

(22)

Εφαρμογές Γραφικού Περιβάλλοντος Χρηστών (Desktop GUI Apps)

H Τk, η οποία είναι μια γλώσσα προγραμματισμού, η οποία έρχεται μαζί με την Tcl, σαν ένα ολοκληρωμένο πακέτο, βοήθησε στην αναγνώριση της Tcl, ως τη μοναδική λογική γλώσσα προγραμματισμού γραφικών περιβαλλόντων κάτω από συστήματα Unix και X11. Ο κόσμος αναγνώρισε την Tcl ως την πιο κατάλληλη για ανάπτυξη GUI, κάνοντας την παράλληλα και πιο γρήγορη και εύκολη από χαμηλού επιπέδου (“low-level”) C και C++ γλώσσες.

Δοκιμή και Αυτοματισμοί (Testing and Automation)

Η Tcl περιέχει ένα πλαίσιο εργασίας με όνομα “tcltest”. To DejaGnu είναι ένα ευρέως γνωστό πλαίσιο εργασίας δοκιμών (για gcc για παράδειγμα), βασισμένο στην Tcl και του Don Libes’, Expect (η οποία ήταν και η πρώτη επέκταση της tcl, που χρησιμοποιήθηκε για την αυτοματοποίηση διαδραστικών εφαρμογών). Εταιρείες όπως η Oracle, η Sybase και η Cisco έχουν εκατομμύρια γραμμών κώδικα tcl, οι οποίοι δοκιμάζονται με τον παραπάνω τρόπο και διασφαλίζουν έτσι τη σωστή λειτουργία των εφαρμογών τους.

Βάσεις Δεδομένων (Databases)

Η Tcl έχει πληθώρα διαθέσιμων επεκτάσεων, οι οποίες της επιτρέπουν τη,ν συνεργασία της με όλες τις γνωστές βάσεις δεδομένων, όπως Mysql, Oracle, Sybase, PostgreSQL, Berkeley DB, υποστηριζόμενες ODBC βάσεις δεδομένων, και πολλές άλλες. Υπάρχουν επίσης πολλά εργαλεία, τα οποία προσφέρουν ένα απλό interface για την εργασία με τις διάφορες βάσεις δεδομένων.

Ενσωματωμένη Ανάπτυξη (Embedded Development)

Επειδή η Tcl είναι μια πολύ συμπαγής γλώσσα, και μπορεί να δέσει πολύ καλά με το hardware, είναι η πρώτη επιλογή για την ενσωματωμένη ανάπτυξη

(23)

εφαρμογών. Η Tcl βρίσκεται «κρυμμένη» σε πολλές συσκευές, συμπεριλαμβανομένων προϊόντων δικτύου της Cisco.

Χαρακτηριστικά και Πλεονεκτήματα της Tcl[5][IV]

Ο κύριος λόγος, για τον οποίο οι περισσότεροι προγραμματιστές χρησιμοποιούν την Tcl, είναι ότι μπορούν να δημιουργήσουν τις εφαρμογές τους γρηγορότερα. Σε πολλές περιπτώσεις μπορούμε να δημιουργήσουμε εφαρμογές έως και 5-10 φορές γρηγορότερα με την Tcl, απ’ ότι με άλλες γλώσσες προγραμματισμού, περισσότερο δε εάν αυτές χρησιμοποιούν κάποιο γραφικό περιβάλλον.

Μαζί με το εργαλείο ανάπτυξης Tk, που προσφέρεται μαζί με την Tcl μπορεί να δημιουργήσει ένα πολύ απλό και εξίσου με πολλές δυνατότητες γραφικό περιβάλλον. Η Tk δημιουργήθηκε με την προϋπόθεση να υποστηρίξει απόλυτα την ταχεία ανάπτυξη εφαρμογών από γλώσσες όπως η Tcl. Γλώσσες, όπως η C++ υστερούν σε απλότητα και δύναμη από την Tcl.

Η Tcl/Tk λειτουργεί κάτω από λειτουργικά συστήματα, όπως Windows, Macintosh, καθώς επίσης και από κάθε πλατφόρμα των Unix. Προσφέρει υψηλού επιπέδου API’s, τα οποία επιτρέπουν τη γραφή κώδικα, ο οποίος εκτελείται το ίδιο – παντού – αφήνοντας όλη τη δύσκολη δουλειά του διαχωρισμού των διαφορετικών καταστάσεων μεταξύ των συστημάτων στην Tcl.

Η Tcl είναι μια απλή γλώσσα προγραμματισμού. Έμπειροι προγραμματιστές μπορούν να μάθουν Tcl και να δημιουργήσουν την πρώτη τους εφαρμογή μέσα σε λίγες ώρες ή μέρες. Αρχάριοι προγραμματιστές μπορούν και αυτοί γρήγορα και εύκολα να μάθουν τα βασικά τμήματα της Tcl.

Τις περισσότερες φορές η Tcl χρησιμοποιείται από έμπειρους προγραμματιστές για τη δημιουργία του κορμού ενός προγράμματος, ενώ απλοί προγραμματιστές δημιουργούν script από Tcl, για να προσαρμόσουν το πρόγραμμα, για παράδειγμα τη δημιουργία κανονισμών των λειτουργιών της εφαρμογής.

(24)

Η tcl/Tk βρίσκεται υπό συνεχή ανάπτυξη, από ένα πλήθος προγραμματιστών, από τις αρχές του 1990. Για τον παραπάνω λόγο η Tcl άργησε να μπορεί να δώσει αξιοπιστία, διεθνή υποστήριξη (documentation), υψηλή απόδοση, μεταφερσιμότητα, ενσωμάτωση, υποστήριξη δικτύου και αλλά.

Και επειδή η Tcl βρίσκεται υπό ανάπτυξη συνεχώς δημιουργούνται και ενσωματώνονται σε αυτή χαρακτηριστικά τελευταίας τεχνολογίας.

Οι δυναμικές γλώσσες προγραμματισμού συχνά κάνουν την ανάπτυξη συστημάτων δυσκολότερη, επειδή χρειάζεται να υπάρχει ο μεταγλωττιστής (interpreter), αλλά και ο κώδικας του προγράμματος μας να βρίσκονται στην ίδια μηχανή. Οι περισσότερες δυναμικές γλώσσες προσφέρουν τα εργαλεία για την εκτέλεση της μεταγλώττισης (compile) μέσα σ’ ένα και μόνο εκτελέσιμο αρχείο.

Η Tcl όμως, δεν αρκείται σε αυτό, αλλά χρησιμοποιεί και άλλες τεχνολογίες, όπως Tcl Virtual File System, Starkits και Starpacks, για να κάνει την ανάπτυξη πιο ευέλικτη και δυναμική[V].

(25)

Η γλώσσα γραφής ιστοσελίδων HTML[VI]

Τα αρχικά HTML προέρχονται από τις λέξεις HyperText Markup Language.

Η html δεν είναι μια γλώσσα προγραμματισμού. Είναι μια περιγραφική γλώσσα, δηλαδή ένας ειδικός τρόπος γραφής κειμένου. Ο browser αναγνωρίζει αυτόν τον τρόπο γραφής και εκτελεί τις εντολές που περιέχονται σε αυτόν. Αξίζει να σημειωθεί ότι η html είναι η πρώτη και πιο διαδεδομένη γλώσσα περιγραφής της δομής μιας ιστοσελίδας. Η html χρησιμοποιεί τις ειδικές ετικέτες (τα tags) να δώσει τις απαραίτητες οδηγίες στον browser. Τα tags είναι εντολές, που συνήθως ορίζουν την αρχή ή το τέλος μιας λειτουργίας. Τα tags βρίσκονται πάντα μεταξύ των συμβόλων < και >. (Π.χ. <BODY>) Οι οδηγίες είναι case insensitive, δεν επηρεάζονται από το αν έχουν γραφτεί με πεζά (μικρά) ή κεφαλαία.

Όπως είδαμε στην προηγούμενη παράγραφο με αυτή την γλώσσα μπορούμε να σχεδιάσουμε και να δημιουργήσουμε μεμονωμένες ιστοσελίδες ή και ολοκληρωμένα websites. Αυτό όμως, για να πραγματοποιηθεί, χρειάζεται και μερικές μεθόδους οι οποίες κάνουν τη δουλειά του κάθε ένα από εμάς πολύ πιο εύκολη. Αυτές οι μέθοδοι είναι:

 Cascading Stylesheets. Χρησιμοποιούνται για τον τρόπο που εμφανίζονται οι ιστοσελίδες, και τις κάνουν πιο προσβάσιμες.

 Javascript. Είναι μια γλώσσα προγραμματισμού η οποία χρησιμοποιείται κυρίως για την δημιουργία των διάφορων εφέ στις ιστοσελίδες.

(26)

Πρωτόκολλο HTTP

Το http είναι το «σύστημα», με το οποίο επικοινωνούν οι browsers με τους web servers. Το ακρώνυμο http σημαίνει Hypertext Transfer Protocol, το οποίο και μας δείχνει ξεκάθαρα για ποιο λόγο χρησιμοποιείται (hypertext). Πιο αναλυτικά το http είναι ένα σύνολο κανόνων για τη μεταφορά αρχείων όπως κείμενο, εικόνες, ήχο, βίντεο και άλλα, στο διαδικτύο. Αμέσως μόλις κάποιος χρήστης του διαδικτύου ανοίξει το browser που χρησιμοποιεί αυτόματα γίνεται χρήση του πρωτοκόλλου http. Το http είναι πρωτόκολλο εφαρμογής και τρέχει στα επάνω επίπεδα του TCP-IP πρωτοκόλλου[6].

Η βασική ιδέα του όλου θέματος περί το http είναι ότι τα αρχεία μπορούν να περιέχουν αναφορές προς άλλα αρχεία, τα οποία με την σειρά τους σε κάποια άλλα κ.ο.κ. Κάθε web server περικλείει, σε σχέση βέβαια και με τον αριθμό των σελίδων που μπορεί να εξυπηρετεί, έναν HTTP daemon, ένα πρόγραμμα, το οποίο έχει σχεδιαστεί να περιμένει http requests και να τα διαχειρίζεται όποτε αυτά φτάσουν. Ο κάθε ένας browser είναι ένας http client, στέλνοντας requests στους web server. Όταν ο χρήστης του browser «ανοίξει»

μια σελίδα μέσω του URL, είτε διαλέξει να μεταφερθεί κάπου μέσω ενός υπερσυνδέσμου, τότε ο browser δημιουργεί ένα http request και το στέλνει στη διεύθυνση IP, που του υποδεικνύει το URL. Έπειτα ο http daemon, που δέχεται αυτό το request στέλνει πίσω το ζητούμενο αρχείο ή αρχεία.

Όπως προαναφέρθηκε, το http είναι ένα πρωτόκολλο επικοινωνίας μεταξύ πελάτη και εξυπηρετητή μέσω αιτήσεων και απαντήσεων (request / response).

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

Το μήνυμα της αίτησης απαρτίζεται από τα ακόλουθα: το αίτημα, για παράδειγμα GET images/logo.gif HTTP/1.1, στο οποίο ζητάμε να επιστραφεί το αρχείο logo.gif από το φάκελο images. Κεφαλίδες, όπως Accept-Language: en.

Μια κενή γραμμή. Ένα μήνυμα (προαιρετικό).

(27)

Η γραμμή της αίτησης και της κεφαλίδας πρέπει να τελειώνουν με CRLF που σημαίνει carriage return (χαρακτήρας επιστροφής – enter -) και line feed (εκκίνηση νέας γραμμής). Η κενή γραμμή πρέπει να αποτελείται μόνο από CRLF και από κανένα άλλο κενό ή χαρακτήρα.

Το HTTP προσδιορίζει 8 μεθόδους, με τις οποίες μπορεί να ανταποκριθεί στις αιτήσεις μας προς την επιλεγμένη πηγή.

 HEAD: Ζητά μια απόκριση παρόμοια με αυτή που θα έπαιρνε σε περίπτωση που το αίτημα ήταν σαν της μορφής GET, αλλά χωρίς το κυρίως μέρος της απόκρισης. Αυτό μας βοηθάει να δούμε πληροφορίες, οι οποίες είναι γραμμένες στις κεφαλίδες της απόκρισης, χωρίς όμως να μεταφερθεί όλο το κυρίως μέρος της.

 GET: Ζητά μια απεικόνιση της καθορισμένης πηγής. Μακράν η πιο χρησιμοποιούμενη μέθοδο μέχρι στιγμής στο web.

 POST: Υποβάλλει δεδομένα προς επεξεργασία στην καθορισμένη τοποθεσία. Τα δεδομένα συμπεριλαμβάνονται στο κυρίως μέρος της αίτησης.

 PUT: Στέλνει στον server μια απεικόνιση της καθορισμένης πηγής.

 DELETE: Διαγράφει την καθορισμένη πηγή.

 TRACE: Βοηθάει τους client’s να παρακολουθούν τι μεταβολές γίνονται στο αίτημα τους μεταξύ των server.

 OPTIONS: Μας επιστρέφει τις μεθόδους HTTP, που υποστηρίζει ο web server. Είναι ένα καλό κριτήριο για να ελέγξουμε τις δυνατότητες ενός web server.

 CONNECT: Μετατρέπει τη διαδρομή που ακολουθεί η αίτηση σε ένα διάφανο TCP/IP tunnel, το οποίο συνήθως το κωδικοποιεί με το SSL μέσω κάποιου μη κρυπτογραφημένου HTTP proxy.

Μερικές μέθοδοι, όπως οι GET, HEAD θεωρούνται ασφαλείς μέθοδοι επειδή η λειτουργία τους είναι μόνο να ανακτούν πληροφορίες χωρίς να επηρεάζουν την κατάσταση του server. Μέθοδοι όπως POST, PUT και DELETE

(28)

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

Το πρωτόκολλο διαμεσολάβησης CGI

Το CGI (Common Gateway Interface) είναι μια μέθοδος, η οποία επιτρέπει σε ένα υπερσύνδεσμο να μπορεί να αναφέρεται σε κάποιο πρόγραμμα παρά σε κάποια στατική ιστοσελίδα του web. Επιτρέπει δηλαδή μέσω του πρωτοκόλλου HTTP τη χρήση των checkboxes, radio buttons και submit buttons και καθιστά εφικτή την εκτέλεση υποερωτημάτων μέσα στις φόρμες της html[7].

ΠΡΟΓΡΑΜΜΑΤΑ

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

Σε μια εφαρμογή, σημαντικό ρόλο στην επιτυχία της έχει, εκτός από τον βαθμό εξυπηρέτησης των αναγκών των χρηστών, η οπτική της εικόνα ή αλλιώς το γραφικό περιβάλλον, με το οποίο έρχεται σε συνεχή επαφή ο χρηστής. Έτσι σοφό θα ήταν, εφ’ όσον περνάνε οι χρήστες πολλές ώρες με το πρόγραμμα, τα χρώματα τα οποία πρέπει να χρησιμοποιηθούν να είναι τέτοια ώστε να μην κουράζουν τους χρήστες.

Πολλά ήταν τα εργαλεία τα οποία δοκιμάστηκαν για τη διεκπεραίωση κάποιων εργασιών, αλλά επειδή οι απαιτήσεις ήταν υψηλές δεν μπόρεσαν να αντεπεξέλθουν. Έτσι τα προγράμματα που χρησιμοποιήθηκαν κατά κόρον είναι τα εξής δυο που παρουσιάζονται παρακάτω.

(29)

Πρόκειται για ένα από τα καλύτερα προγράμματα επεξεργασίας που κυκλοφορούν στην αγορά. Είναι εύχρηστο και με μεγάλες δυνατότητες.

Χρησιμοποιήθηκε στη δημιουργία των κουμπιών του κεντρικού μενού της εφαρμογής. Επιλέχθηκε ανάμεσα σε πολλά γιατί η προσθήκη των εφέ (σκίαση και ανύψωση) στα κουμπιά ,έτσι ώστε να φαίνονται πιο αληθοφανή, επιτεύχθηκε με λίγα μόνο κλικ, τη στιγμή που άλλα προγράμματα, όπως Corel, Serif Draw χρειάζονταν πολύ περισσότερο χρόνο.

Ένα άλλο πλεονέκτημα του προγράμματος είναι η εργασία σε αυτό, μέσω διαφορετικών επιπέδων (layers), σε μια εικόνα. Δηλαδή πρακτικά δημιουργήσαμε τη βάση του κουμπιού και έπειτα γράψαμε τους τίτλους των κουμπιών, χωρίς να χρειάζεται να ξαναδημιουργούμε το κουμπί από την αρχή.

ADOBE IMAGE READY CS2

Το πρόγραμμα αυτό είναι της ίδιας εταιρείας με το προηγούμενο. Μια από τις εφαρμογές του είναι η εύκολη μετατροπή μιας εικόνας σε image map. Έχει τη δυνατότητα να δημιουργεί και να κόβει την εικόνα σε συγκεκριμένα σημεία (slices) και τη μετατροπή τους σε κουμπιά.

Εμείς, από το πρόγραμμα αυτό, πήραμε κάποια πιο εξειδικευμένα στοιχεία, όπως κομμάτια κώδικα html και JavaScript. Τα κομμάτια αυτά για να τα πάρουμε δημιουργήσαμε εκ νέου μια εικονική ιστοσελίδα με βάση τα πρότυπα του Image Ready και της προσθέσαμε λειτουργίες, τις οποίες θέλαμε εμείς να εισάγουμε στο πρόγραμμα. Έτσι το πρόγραμμα δημιούργησε για εμάς τον κώδικα, τον οποίο εμείς το χρησιμοποιήσαμε στα σημεία που μας ήταν απαραίτητος.

Επίσης στο πρόγραμμα αυτό δημιουργήθηκε και το εισαγωγικό κινούμενο γραφικό (.gif) που απεικονίζει το σήμα του ΟΣΕ.

Για να κάνουμε πιο εύκολη τη,ν συγγραφή του κώδικα της tcl χρησιμοποιήσαμε κάποιους Editors όπως:

(30)

NOTEPAD ++ V4.0.1 ,PROGRAMMERS NOTEPAD 2

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

Επίσης, ένα άλλο πλεονέκτημα, το οποίο έχουν είναι ότι, όταν επρόκειτο να γράψουμε κομμάτι κώδικα, το οποίο ήταν είτε έλεγχος (if) είτε επαναληπτική διαδικασία (foreach, for), μπορούσαμε να τη,ν συμπτύξουμε και να μην

«φαίνεται» παρά μόνο η αρχή της, ώστε να μη μπερδεύεται στο μάτι με τον υπόλοιπο κώδικα.

Ένα άλλο σημείο, στο οποίο χρειαστήκαμε ένα βοηθητικό πρόγραμμα ήταν στον τομέα της βάσης δεδομένων. Εκεί χρειαζόμασταν ένα εργαλείο, που να μπορούμε να βλέπουμε τις αλλαγές και όχι μόνο, που κάναμε στη βάση δεδομένων.

Ένα τέτοιο ήταν το:

MySql Control Center

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

Είναι ένα πρόγραμμα, το οποίο συνδέεται εύκολα με τη βάση δεδομένων, παρουσιάζει με γραφικό τρόπο (πίνακες, κελιά) τα δεδομένα, εμφανίζει τις εντολές της sql, τι δομή έχουν, μας βοήθησε να μπορούμε να βλέπουμε άμεσα τον τύπο των δεδομένων που παίρνουν τα πεδία των πινάκων, κ.λ.π.

Referências

Documentos relacionados

Η ίδρυση της Εξαρχίας άνοιξε τον δρόμο για τη διείσδυση του ‘βουλγαρισμού’ στη Μακεδονία και τη Θράκη, την ίδρυση σχολείων, την αύξηση των μητροπόλεων που ήλεγχε, με στόχο,