...

Τεχνολογικό Εκπαιδευτικό Ίδρυµα

by user

on
Category: Documents
120

views

Report

Comments

Transcript

Τεχνολογικό Εκπαιδευτικό Ίδρυµα
Τεχνολογικό Εκπαιδευτικό Ίδρυµα Κρήτης
Σχολή Τεχνολογικών Εφαρµογών
Τµήµα Εφαρµοσµένης Πληροφορικής & Πολυµέσων
Πτυχιακή Εργασία
Συµµετοχή στην
σχεδίαση-δηµιουργία ιστοσελίδας που παρέχει
πλατφόρµα για την υποστήριξη της κινητικότητας των σπουδαστών
Erasmus (MUTW Project)
Κατσιαµπούρη Αγγελική-Ιωάννα ΑΜ:2233
Μουντράκης Στέφανος
ΑΜ:1611
Επιβλέπων Καθηγητής: ∆ρ. Παπαδουράκης Γεώργιος
Ηράκλειο 2011
1
Ευχαριστίες
Αρχικά θα ήθελα να ευχαριστήσω τον συνάδελφό µου Μουντράκη Στέφανο, που µε την
θέλησή του και τις γνώσεις του καταφέραµε να βγάλουµε την εργασία αυτή εις πέρας. Χωρίς την
πολύτιµη βοήθειά του δεν θα ήταν εύκολο να επιτευχθεί ο στόχος της πραγµατοποίησης της εργασίας
εντός 4 µηνών, καθώς δεν υπήρχε προηγούµενη επαφή µε το αντικείµενο της PHP.
Στην συνέχεια θα ήθελα να ευχαριστήσω τους φοιτητές από τις υπόλοιπες χώρες που πήραν
µέρος στο project αυτό, για το πνεύµα συνεργασίας που επέδειξαν, καθώς και την διάθεση τους να
βοηθήσουνε εµένα και τον συνάδελφό µου σε ότι χρειαζόµασταν.
Τέλος, θέλω να ευχαριστήσω τον καθηγητή κ.Παπαδουράκη Γεώργιο που µας ενέταξε σε αυτό
το πρόγραµµα και µας βοήθησε στην πρώτη γνωριµία που έγινε µε τους υπόλοιπους φοιτητές, αλλά
και την οικογένειά µου και τουσ φίλους µου για την ψυχολογική- και όχι µόνο, υποστήριξη που µου
προσέφεραν.
Κατσιαµπούρη Αγγελική-Ιωάννα
Θα ήθελα να ευχαριστήσω τον κ. Παπαδουράκη που µε δέχτηκε σε αυτή την πτυχιακή και
µου έδωσε την ευκαιρία να µάθω καινούργια πράγµατα ενώ παράλληλα να αποκτήσω εµπειρία στην
συνεργασία µε Ευρωπαίους συναδέλφους.
Θα ήθελα επίσης να ευχαριστήσω τους Ευρωπαίους συναδέλφους που ήµασταν µαζί σε αυτό
το σχέδιο και ιδιαίτερα τους Stephane Polet, Daniel Lopes και τον Pedro Ferreira για την σηµαντική
τους συνεισφορά και καθοδήγηση στο γενικότερο project.
Ευχαριστώ επίσης τη συνεργάτη µου Αγγελική Κατσιαµπούρη που µε άριστη συνεργασία και
πολύ δουλειά καταφέραµε να πραγµατοποιήσουµε την πτυχιακή µας.
Τέλος θα ήθελα να ευχαριστήσω την οικογένεια µου για την συµπαράσταση τους και την συνεχή
υποστήριξη που µου παρέχουν στο να πετυχαίνω τους στόχους µου.
Στέφανος Μουντράκης
2
Abstract
The main purpose of this thesis is to develop a website for all those who are involved in the
Erasmus Program, in order to avoid the bureaucracy of filling forms and waiting for response. It is
part of the MUTW project, in which students of all around Europe are coming together in order to
create this site. Students and coordinators can log in the website by using their unique user – password
after they have registered. In the site, there are all the forms that have to be filled by students and
coordinators. The exact way of making the process is explained in the chapters beneath.
For the creation of the site, web programming languages were used, such as HTML and CSS
for design, Javascript and Jquery for error control and PHP for functionality. For data' s storage and
recovery, we used the database management system MySQL supported by XAMPP which provides the
web server Apache. All tools and languages which are used for the creation of this website are
explained with details during the access of the thesis.
3
Σύνοψη
Ο κύριος σκοπός της πτυχιακής αυτής είναι η δηµιουργία – κατασκευή ιστοσελίδας που θα
βοηθήσει όλους αυτούς που ασχολούνται µε το πρόγραµµα Erasmus, µε σκοπό να αποφύγουν την
γραφειοκρατεία και την αναµονή. Αποτελεί µέρος του project MUTW κατά το οποίο φοιτητές από όλη
την Ευρώπη δηµιουργούν µαζί την σελίδα αυτή, ο καθένας το δικό του ξεχωριστό κοµµάτι.Οι
φοιτητές και οι συντονιστές θα µπορούν να µπαίνουν στην ιστοσελίδα χρησιµοποιώντας τους
κωδικούς user – password, αφού πρώτα θα έχουν κάνει εγγραφή. Το site έχει την ονοµασία
ErasmusLine. Στην ιστοσελίδα περιέχονται όλες οι φόρµες που πρέπει να συµπληρωθούν από τους
φοιτητές και τους συντονιστές. Η ακριβής διαδικασία εξηγείται παρακάτω.
Για την δηµιουργία της σελίδας αυτής χρησιµοποιήθηκαν όλες οι “απαραίτητες” γλώσσες
προγραµµατισµού. Το design των φορµών έγινε µε χρήση HTML και CSS, ο έλεγχος για λάθη µε
javascript και jquery και η λειτουργικότητα µε PHP. Για την αποθήκευση και ανάκτηση δεδοµένων
χρησιµοποιήθηκε το εργαλέιο διαχείρησης βάσης MySQL το οποίο υποστηρίζεται από το XAMPP,
που προσφέρει το web server Apache. Πλήρης περιγραφή των εργαλείων και των γλωσσών που
χρησιµοποιήθηκαν , θα βρείτε κατά την διάρκεια προσπέλασης της πτυχιακής εργασίας.
4
Περιεχόµενα
1. ΕΙΣΑΓΩΓΗ
1.1 Περίληψη …………………………………………………………………………………………9
1.2 Κίνητρο για την διεξαγωγή της εργασίας………………………………………………………...9
1.3 Σκοπός και στόχοι εργασίας ……………………………………………………………………..9
1.4 ∆οµή εργασίας …………………………………………………………………………………..10
2. ΜΕΘΟ∆ΟΛΟΓΙΑ ΥΛΟΠΟΙΗΣΗΣ
2.1 Μέθοδος Ανάπτυξης και Ανάλυσης Πτυχιακής…………………………………………………11
2.2.1 Ορισµός Ίντερνετ(διαδίκτυο)……………………………………………………………...……11
2.2.1.a Παγκόσµιος Ιστός (WWW) – Internet………………………………………………....……..11
2.2.1.b Web Server ( ∆ιακοµιστής Ιστού)……………………………………………………………..11
2.2.1.c Φυλλοµετρητές (web browser)…………………………………………………..……………12
2.2.2 Ιστοσελίδα (Web Page)………………………………………………………………………….13
2.2.2.a Στατικές Ιστοσελίδες ( Static Web Pages)………………………………………………...…..13
2.2.2.b ∆υναµικές Ιστοσελίδες ( Dynamic Web Pages)……………………………………………...13
2.2.2.c Πλεονεκτήµατα – Μειονεκτήµατα ∆υναµικής – Στατικής Ιστοσελίδας……………………..13
2.3 Σύστηµα Ονοµάτων Τοµέων (Domain Name System)………………………………………….14
2.4.1 Εξυπηρετητής (Server)…………………………………………………………………………16
2.4.2 Μοντέλο Πελάτη – ∆ιακοµιστή………………………………………………………………..18
2.4.3 Apache – HTTP εξυπηρετητής…………………………………………………………………19
2.5
PHP…………………………………………………………………………………………..20
2.6
HTML………………………………………………………………………………………..22
2.7
CSS…………………………………………………………………………………………..23
2.7.1 Πλεονεκτήµατα CSS ………………………………………………………………………....24
2.8 jQuery…………………………………………………………………………………...……….24
2.9 Javascript………………………………………………………………………………………....25
2.10 Framework – Plonk……………………………………………………………………………..26
2.10.1 ∆οµή του Plonk………………………………………………………………………………..26
2.11 XAMPP………………………………………………………………………………………….31
3. ΣΧΕ∆ΙΟ ∆ΡΑΣΗΣ ΓΙΑ ΤΗΝ ΕΚΠΟΝΗΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ
3.1
State of the Art……………………………………………………………………………….36
3.1.1 Ελεύθερο Λογισµικό……………………………………………………………………...……36
3.1.2 Πλεονεκτήµατα Ελεύθερου Λογισµικού………………………………………………………37
3.1.3 NetBeans…………………………………………………………………………………….…38
3.1.4 Χρήση της πλατφόρµας NetBeans…………………………………………………………….39
3.1.5 Λόγοι Επιλογής NetBeans………………………………………………………………...……43
3.1.6 MySQL…………………………………………………………………………………………45
3.1.7 Χρήση της MySQL……………………………………………………………………………..45
3.1.8 Λόγοι Χρήσης των XAMPP και PLONK………………………………………………………51
3.2
Microsoft Project……………………………………………………………………………..51
3.2.1 Σηµαντικοί Στόχοι για την Εκπλήρωση της Πτυχιακής……………………………………...…52
3.2.2 Προετεινόµενο Χρονοδιάγραµµα (Gantt Chart) Εργασίας………………………………....…..52
4. ΚΥΡΙΟ ΜΕΡΟΣ ΠΤΥΧΙΑΚΗΣ
4.1 Ανάλυση Προβλήµατος…………………………………………………………………………….56
4.1.1 Σύντοµη Περιγραφή του Προγράµµατος MUTW……………………………………………….56
4.1.2 Η Οµάδα µας (ORANGE TEAM)……………………………………………………………….56
4.1.3 Links Προγραµµάτων που Χρησιµοποιήθηκαν………………………………………...………59
4.1.4 SourceForge…………………………………………………………………………………...…59
4.1.5 Adobe Connect Pro Meeting…………………………………………………………………….60
4.1.6 DropBox………………………………………………………………………………………….61
5
4.1.7 Git..............................................................................................................................................62
4.1.8 In-Coming Students Package-P5...............................................................................................63
4.1.9 Απαιτήσεις Συστήµατος..............................................................................................................65
4.2 Σχεδιασµός Υλοποίησης – Υλοποιηση..........................................................................................65
4.2.1 Φόρµες – ∆ηµιουργία και Λειτουργικότητα...............................................................................65
4.2.2 ∆οµή της Βάσης ∆εδοµένων.......................................................................................................67
4.2.3 ∆ηµιουργία Βάσης ∆εδοµένων...................................................................................................68
4.2.4 ∆οµή της ιστοσελίδας Erasmusline..............................................................................................71
5. ΑΠΟΤΕΛΕΣΜΑΤΑ
5.1 Συµπεράσµατα................................................................................................................................92
5.2 Μελλοντική Εργασία και Επεκτάσεις.............................................................................................92
6. ΒΙΒΛΙΟΓΡΑΦΙΑ
6
Πίνακας Εικόνων
Εικόνα 1 – λειτουργίες φυλλοµετρητών………………………………………………………….12
Εικόνα 2 – Ιεραρχική οργάνωση χώρου ονοµάτων DNS………………...………………………15
Εικόνα 3 – εξυπηρετητές………………………………………………………………………….17
Εικόνα 4 – Πού χρησιµεύει η ΡΗΡ..................................................................................................21
Εικόνα 5 – Φάκελος Πτυχιακή........................................................................................................26
Εικόνα 7 – Περιεχόµενα CSS.........................................................................................................26
Εικόνα 8 – Φάκελος Includes..........................................................................................................27
Εικόνα 9 – Περιεχόµενα Includes...................................................................................................27
Εικόνα 10 – Περιεχόµενα js............................................................................................................28
Εικόνα 11 – Φάκελος Layout..........................................................................................................28
Εικόνα 12 - ΠεριεχόµεναLibrary...................................................................................................29
Εικόνα 13 – Φάκελος Library.........................................................................................................29
Εικόνα 14 – Αρχεία .tpl/.php...........................................................................................................30
Εικόνα 15 – Start XAMPP..............................................................................................................30
Εικόνα 16 – Localhost in XAMPP..................................................................................................32
Εικόνα 17 – PhPMyAdmin.............................................................................................................32
Εικόνα 18 – Αρχική σελίδα Βάσης ∆εδοµένων..............................................................................33
Εικόνα 19 – ∆ηµιοργία Βάσης ∆εδοµένων.....................................................................................33
Εικόνα 20 – Υπάρχουσες Βάσεις ...................................................................................................34
Εικόνα 21 – Πίνακες Βάσης............................................................................................................34
Εικόνα 22 – ∆ηµιουργία Project σε NetBeans................................................................................35
Εικόνα 23 – Χαρακτηριστικά ενός Project.....................................................................................39
Εικόνα 24 – Περιεχόµενα Libraries................................................................................................40
Εικόνα 25 – Πάράδειγµα Project σε NetBeans...............................................................................40
Εικόνα 26 – Εργαλεία NetBeans.....................................................................................................41
Εικόνα 27 – ∆ηµιουργία UML........................................................................................................41
Εικόνα 28 – ∆ηµιουργία Project σε Java........................................................................................42
Εικόνα 29 – Username / Password MySQL....................................................................................45
Εικόνα 30 – Create new Schema in MySQL ….............................................................................45
Εικόνα 31 – Storage Engine............................................................................................................47
Εικόνα 32 – address book …..........................................................................................................48
Εικόνα 33 – Κώδικας για δηµιουργία πίνακα.................................................................................49
Εικόνα 34 - Παράδειγµα χρήσης της γραµµής εντολών.................................................................50
Εικόνα 35 - αντίγραφο ασφαλείας..................................................................................................50
Εικόνα 36 – Στόχοι Πτυχιακής........................................................................................................51
Εικόνα 37 – Gantt Chart..................................................................................................................53
Εικόνα 38 – Πακέτα ανά οµάδα......................................................................................................53
Εικόνα 39 - Adobe Connect Pro Meeting.......................................................................................58
Εικόνα 39 – Βάση ∆εδοµένων........................................................................................................66
Εικόνα 40 – Εισαγωγή πινάκων......................................................................................................67
Εικόνα 41 – Αναζήτηση Πίνακα.....................................................................................................68
Εικόνα 42 – Επιτυχής εισαγωγή πίνακα.........................................................................................69
Εικόνα 43 – Αρχική σελίδα Erasmusline........................................................................................70
Εικόνα 44 – Info Page.....................................................................................................................71
Εικόνα 45 – Contact........................................................................................................................71
Εικόνα 46 – Erasmus Info...............................................................................................................72
Εικόνα 47 – Partners Info …...........................................................................................................73
Εικόνα 48 – EIS..............................................................................................................................77
Εικόνα 49 – Register Form.............................................................................................................77
Εικόνα 50 – Login...........................................................................................................................78
Εικόνα 51 – Forgot Password.........................................................................................................78
7
Εικόνα 52 – New Password Sent.....................................................................................................79
Εικόνα 53 – Javascript στην φόρµα Registration.............................................................................80
Εικόνα 54 – Strength of password...................................................................................................80
Εικόνα 55 – Weak password............................................................................................................81
Εικόνα 56 – valid email...................................................................................................................82
Εικόνα 57 – error in login...............................................................................................................83
Εικόνα 58 – Javascript στην φόρµα Accomodation.........................................................................84
Εικόνα 59 – Transcript of Records...................................................................................................85
Εικόνα 60 – Επιλογή φοιτητή..........................................................................................................86
Εικόνα 61 – Certficate of Arrival / Departure..................................................................................86
Εικόνα 62 – Παράδειγµα Certficate of Staying...............................................................................86
Εικόνα 63 – Παράδειγµα Accomodation.........................................................................................87
8
1. ΕΙΣΑΓΩΓΗ
1.1
Περίληψη
Η δηµιουργία του website ErasmusLine ήρθε µέσα από την συµµετοχή στο πρόγραµµα
MUTW. Κατά το πρόγραµµα αυτό, φοιτητές από διάφορα µέρη της Ευρώπης συνεργάζονται, έχοντας
ο καθένας το δικό του µοναδικό ρόλο στο project , και δηµιουργούνε µια ιστοσελίδα που έχει ως
βασικό στόχο να εξυπηρετεί τους ανθρώπους που χρησιµοποιούν ή θέλουν να χρησιµοποιήσουν το
πρόγραµµα Erasmus. Η σελίδα παρέχει όλες τις απαραίτητες φόρµες που χρειάζεται να
συµπληρωθούν από τους ενδιαφερόµενους κια να σταλούν µέσω email στους υπέυθυνους. Η
ιστοσελίδα είναι δυναµική, που σηµαίνει ότι µπορεί να εγγραφεί στην βάση δεδοµένων οποιοδήποτε
νέο στοιχείο βρεθεί, όπως π.χ ένα επιπλέον πανεπιστήµιο ή κάποιο καινούργιο µάθηµα.
Όπως προαναφέρθηκε, κάθε µέλος του προγράµµατος αυτού έχει κι έναν µοναδικό ρόλο στην
δηµιουργία της ιστοσελίδας. Ο ρόλος της ελληνικής οµάδας είναι η κατασκευή και λειτουργικότητα
κάθε φόρµας που πρέπει να συµπληρωθεί είτε από τους φοιτητές είτε από τους συντονιστές. Για την
υλοποίηση συνέβαλαν πολλές γλώσσες προγραµµατισµού και πολλά εργαλεία. Χρησιµοποιήσαµε το
πρόγραµµα NetBeans για τον κώδικα και το XAMPP για να βλέπουµε το αποτέλεσµα αυτού.
1.2
Κίνητρο για την ∆ιεξαγωγή της Εργασίας
Αρχικό και πρωταρχικό κίνητρο για την δηµιουργία της ιστοσελίδας αυτής είναι να
παρακαµφθεί όλη η γραφειοκρατεία που υπάρχει µέχρι σήµερα σε όλη την διαδικασία του
προγράµµατος Erasmus. Οι συντονιστές και οι φοιτητές θα έχουν την ευκαιρία πλέον να τα κάνουν
όλα διαδικτυακά. Θα συµπληρώνονται οι φόρµες µέσα από την σελίδα και µέσω email θα πηγαίνουν
στους εκάστοτε υπεύθυνους, οι οποίοι µε την σειρά τους θα συµπληρώνουν τα απαιτούµενα πεδία και
θα τα στέλνουν µε email στους επόµενους. Η σελίδα βέβαια έχει και κάποιες άλλες παροχές, όπως
ποιες χώρες έχουν την µεγαλύτερη προτίµηση από τους φοιτητές ή τα ποσοστά των φοιτητών που
χρησιµοποίησαν το πρόγραµµα αυτό ανά έτος, όµως αυτά δεν ήταν µέρος της ελληνικής οµάδας.
Όπως προαναφέρθηκε, η εργασία αυτή είναι οµαδική και οι συµµετέχοντες είναι από διάφορα
µέρη της Ευρώπης. Συνεπώς, το δεύτερο κίνητρο είναι η ανάπτυξη των ικανοτήτων των
συµµετέχοντων όσον αφορά την εξασκηση της αγγλικής γλώσσας και του οµαδικού πνεύµατος και
επικοινωνίας. Εκτός από τα κίνητρα που µας δώσανε οι ίδιοι οι συντονιστές, είχαµε και ως προσωπικό
κίνητρο την πρόκληση σε κάτι καινούριο, αφού κανείς από τους δύο δεν είχε ασχοληθεί πριν µε κάτι
παρόµοιο.
1.3
Σκοπός και Στόχοι Εργασίας
Σκοπός της πτυχιακής εργασίας είναι η κατακευή και η λειτουργικότητα των εγγράφων που
πρέπει να συµπληρωθούν από όλους τους συµµετέχοντες του προγράµµατος Erasmus σε ηλεκτρονική
µορφή. Οι βασικοί στόχοι για την εκπόνηση της πτυχιακής είναι:
➢
➢
➢
➢
➢
Ολοκλήρωση της ανάλυσης του προβλήµατος
Υλοποιήση του τεχνικού µέρους της πτυχιακής εργασίας
Έλεγχος λειτουργίας του τεχνικού µέρους
Συγγραφή της πτυχιακής εργασίας
Ανάλυση όλων των εργαλείων και των γλωσσών προγραµµατισµού που χρησιµοποιήθηκαν
9
➢
➢
Ανάλυση της διαδικασίας εκπόνησης του τεχνικού µέρους
Παρουσίαση της πτυχιακής εργασίας
1.4
∆οµή της Εργασίας
Η παρούσα πτυχιακή εργασία έχει αναλυθεί στα παρακάτω κεφάλαια:
Στο κεφάλαιο 1 παρέχονται κάποιες εισαγωγικές πληροφορίες για τους στόχους και τον
σκοπό της πτυχιακής εργασίας
Στο κεφάλαιο 2 περιγράφονται τα εργαλεία και οι γλώσσες προγραµµατισµού που
χρησιµοποιήθηκαν για την δηµιουργία του τεχνικού µέρους της πτυχιακής εργασίας
Στο κεφάλαιο 3 γίνεται σύγκριση των εργαλείων ανάπτυξης και η τελική επιλογή µε βάση τα
προτερήµατα – µειονεκτήµατα του καθενός.
Στο κεφάλαιο 4 παρουσιάζονται οι απαιτήσεις και οι περιορισµοί σύµφωνα µε τους οποίους
θα λειτουργήσει τελικά η ιστοσελίδα
Στο κεφάλαιο 5 παρατίθενται τα αποτελέσµατα και τα συµπεράσµατα της πτυχιακής
εργασίας , καθώς και πιθανές µελλοντικές επεκτάσεις του συστήµατος που υλοποιήθηκε
Στο κεφάλαιο 6 παρουσιάζεται η βιβλιογραφία που χρησιµοποιήθηκε κατά την διάρκεια της
εκπόνησης της πτυχιακής εργασίας και της εφαρµογής
10
2.ΜΕΘΟ∆ΟΛΟΓΙΑ ΥΛΟΠΟΙΗΣΗΣ
2.1Μέθοδος Ανάλυσης και Ανάπτυξης της Πτυχιακής Εργασίας
Το βασικό πρόβληµα που πρέπει να επιλυθεί είναι να µετατραπούν τα έγγραφα συµπλήρωσης
από χειρόγραφα σε ηλεκτρονικά. Έγινε χρήση διαφόρων εργαλείων και γλωσσών προγραµµατισµού
και το τελικό αποτέλεσµα αφοµοιώθηκε στην κεντρική ιστοσελίδα που έχει δηµιουργηθεί από τα άλλα
µέλη του project. Όλη η εργασία έγινε βάσει ενός framework που ονοµάζεται Plonk και δεν βρίσκεται
προς διάθεση στο εµπόριο. Το πρόγραµµα που χρησιµοποιήσαµε είναι το NetBeans, λόγω των
υπηρεσιών που προσφέρει και κάνει πιο εύκολη την διαδικασία.
Αρχικά, θα γίνει η δηµιουργία της κάθε φόρµας µε χρήση HTML και CSS. Αφού τελειώσει το
κατασκευαστικό κοµµάτι, σειρά έχει το λειτουργικό. Σε αυτό το σηµείο πρέπει να φροντισουµε όλες
τις τεχνικές λεπτοµέρειες που θα κάνουν τις φόρµες όχι µόνο λειτουργικές αλλά και εύκολα προσιτές
από όλους όσους χρησιµοποιούν την σελίδα αυτή. Η διαδικασία αυτή απαιτεί την χρήση PHP
Javascript και Jquery. Και οι τρεις αποτελούν γλώσσες προγραµµατισµού για το διαδίκτυο, για να
γίνεται σωστή και ελεγχόµενη η διαδικασία συµπλήρωσης και υποβολής των εγγράφων. Τα πεδία που
θα συµπληρώνονται από τους εκάστοτε ενδιαφερόµενους, θα αποθηκεύονται σε µια βάση δεδοµένων
που θα δηµιουργηθεί µε την χρήση του εργαλείου MySQL και του XAMPP που προσφέρει τον server
Apache για επικοινωνία µε το διαδίκτυο.
Παρακάτω γίνεται µια αναφορά σε όλα τα εργαλεία που χρησιµοποιήθηκαν για την
κατασκευή των ηλεκτρονικών εγγράφων.
2.2.1 Ορισµός Internet (διαδίκτυο)
Το Internet ή διαδίκτυο , είναι το παγκόσµιο δίκτυο που συνδέει όλους τους ηλεκτρονικούς
υπολογιστές µεταξύ τους, χρησιµοποιώντας ένα κοινό πρωτόκολλο επικοινωνίας, το TCP/IP
(Transmission Control Protocol / Internet Protocol). Όλοι οι υπολογιστές απολαµβάνουν τις ίδιες
υπηρεσίες και µπορούν να επικοινωνούν µεταξύ τους και να διαµοιράζονται αρχεία και δεδοµένα µε
διάφορα πρωτόκολλα µεταφοράς όπως πχ HTTP, SMTP, FTP όπου το καθένα ελέγχει διαφορετικά
τµήµατα στην διαδικασία της µεταφοράς.
2.2.1.a Παγκόσµιος Ιστός (WWW) – Internet
Ο όρος παγκόσµιος ιστός- WWW(World Wide Web) εύκολα συγχέεται µε τον όρο διαδίκτυο,
όµως δεν είναι ταυτόσηµοι. Ο παγκόσµιος ιστός αποτελεί τµήµα του διαδικτύου και είναι το
µεγαλύτερο και το ταχύτερα αναπτυσσόµενο κοµµάτι του. Συγκεκριµένα, αποτελεί το µεσο για τη
µεταφορά του τεράστιου όγκου δεδοµένων που είναι διαθέσιµα στο διαδίκτυο. Χρησιµοποιεί το
πρωτόκολλο HTTP (Hyper Text Transfer Protocol). Η πληροφορία παρουσιάζεται στον χρήστη µε τη
µορφή ιστοσελίδων (web pages) οι οποίες προσφέρονται από έναν εξυπηρετητή (web
server) και γίνονται ορατές µέσα από ένα πρόγραµµα φυλλοµετρητή σελίδων (web browser) που έχει
εγκαταστήσει ο κάθε χρήστης στον υπολογιστή του.
11
2.2.1.b Web Server ( ∆ιακοµιστής Ιστού)
Κάθε ιστοσελίδα βρίσκεται αποθηκευµένη σε κάποιον διακοµιστή Ιστού µε τη µορφή αρχείου.
Οι διακοµιστές Ιστού είναι ειδικοί υπολογιστές αρκετά µεγάλης ισχύος που διαθέτουν ειδικό
λογισµικό και µε τις κατάλληλες δικτυακές συνδέσεις επιτρέπουν την διάθεση ιστοσελίδων σε
ολόκληρο τον κόσµο. Όταν ο χρήστης ζητήσει να δει µια ιστοσελίδα, ο server του καθιστά διαθέσιµη
την σελίδα αυτή χρησιµοποιώντας ως µέσο τον φυλλοµετρητή.
2.2.1.c Φυλλοµετρητές (web browser)
Η ενεργοποίηση του φυλλοµετρητή γίνεται επιλέγοντάς το εικονίδιό του από την επιφάνεια
εργασίας του υπολογιστή του χρήστη. Αυτόµατα ανακτάται η ιστοσελίδα που έχει αποθηκεύσει ο
χρήστης ως αρχική ή που προυπάρχει από τους κατασκευαστές του. Όταν ο χρήστης επιλέξει έναν
σύνδεσµο, το πρόγραµµα φυλλοµετρητή αναλαµβάνει την διαδικασία µεταφοράς του υπερκειµένου
από τον κεντρικό υπολογιστή σε αυτόν του χρήστη.
Στον παρακάτω πίνακα παρατίθενται οι βασικές λειτουργίες του φυλλοµετρητή.
Εικόνα 1 – λειτουργίες φυλλοµετρητών
12
2.2.2 Ιστοσελίδα (Web Page)
Ιστοσελίδα είναι ένα είδος ηλεκτρονικού εγγράφου του παγκόσµιου Ιστού που περιλαµβάνει
πληροφορίες σε µορφή κειµένου, υπερκειµένου, ήχου , βίντεο και εικόνας. Πολλές ιστοσελίδες µαζί
συνθέτουν έναν ιστότοπο ή web site. Οι σελίδες του ίδιου ιστότοπου παρουσιάζονται µε το ίδιο όνοµα
χώρου (domain name) . Οι ιστoσελίδες αλληλοσυνδέονται και εµφανίζονται σύµφωνα µε την επιλογή
του χρήστη πατώντας απλά πάνω στα κατάλληλα “σηµεία” που υποδυκνείει η ίδια η σελίδα.
Οι δύο µεγάλες κατηγορίες στις οποίες χωρίζονται οι ιστοσελίδες είναι οι στατικές (static) και
οι δυναµικές(dynamic). Η διαφορά τους δεν έγκειται στο εµφανισιακό κοµµάτι αλλά στο λειτουργικό.
2.2.2.a Στατικές Ιστοσελίδες ( Static Web Pages)
Οι στατικές σελίδες είναι ουσιαστικά απλά ηλεκτρονικά έγγραφα. Συνήθως περιέχουν
κείµενο, εικόνα, ήχο, βίντεο, συνδέσµους και αρχεία για download. Χρησιµεύουν κυρίως στην
δηµιουργία µόνιµων – στατικών παρουσιάσεων, όπου δεν υπάρχει συχνά η ανάγκη για τροποποίηση
του περιεχοµένου τους. Ο χαρακτηρισµός “στατική” δεν αναφέρεται στο περιεχόµενο της σελίδας
αλλά στο γεγονός ότι το περιεχόµενό της είναι σταθερό και συγκεκριµένο. Πρόκειται δηλαδή για
σταθερά ηλεκτρονικά έγγραφα.
Το κυριότερο µειονέκτηµά τους είναι ότι δεν είναι ιδιαίτερα πρακτικά όταν το περιεχόµενό
τους χρειάζεται συχνή αλλαγή. Αυτό µπορεί βέβαια να επιτευχθεί µε επεµβάσεις κατευθείαν πάνω
στην ιστοσελίδα µε διάφορα προγράµµατα, αλλά είναι µια διαδικασία που χρειάζεται σχετική
εµπειρία.
2.2.2.b ∆υναµικές Ιστοσελίδες (Dynamic Web Pages)
Οι δυναµικές ιστοσελίδες µπορεί εµφανισιακά να µην έχουν κάποια ιδιαίτερη διαφορά µε τις
στατικές, όµως οι δυνατότητές τους είναι πολύ περισσότερες από όλες τις πλευρές καθώς πρόκειται
ουσιαστικά για ένα ολόκληρο πρόγραµµα – εφαρµογή και όχι ένα απλό ηλεκτρονικό έγγραφο.
Συνήθως οι δυναµικές ιστοσελίδες χρησιµοποιούν κάποια βάση δεδοµένων για να
αποθηκεύουν το περιεχόµενο τους και να ανακτούν τµήµα αυτού ανάλογα µε το σηµείο που “πάτησε”
ο χρήστης. Η χρήση της βάσεως δεδοµένων είναι αυτή που κάνει εύκολη την διαδικασία
προσθαφαίρεσης δεδοµένων στην ίδια ιστοσελίδα, καθώς δεν χρειάζεται να επεµβαίνουµε στην
ιστοσελίδα αλλά µέσα από την βάση δεδοµένων διαχειριζόµαστε την πληροφορία που θέλουµε να
τροποποιήσουµε. Οι υπόλοιπες διαδικασίες γίνονται “αυτόµατα” από τον µηχανισµό της ιστοσελίδας.
Για την διαχείρηση του περιεχοµένου της σελίδας υπάρχει ένας µηχανισµός που ονοµάζεται CMS
(Content Management System) και η χρήση του είναι αρκετά εύκολη.
2.2.2.c Πλεονεκτήµατα – Μειονεκτήµατα ∆υναµικής – Στατικής Ιστοσελίδας
Οι στατικές ιστοσελίδες κατασκευάζονται ευκολότερα µε χαµηλότερο κόστος από µια
δυναµική ιστοσελίδα και έχουν µικρότερες απαιτήσεις σε χώρο (φιλοξενία ιστοσελίδας). Απο την
άλλη µεριά µια στατική ιστοσελίδα έχει δυσκολίες στην ανανέωση και την ανάπτυξή της και δεν
συνιστάται για πολύ µεγάλες ιστοσελίδες. Το περιεχόµενο της δεν αλλάζει εύκολα και απαιτεί κάποιες
γνώσεις για να µπορέσει να αλλαχθεί ή να προστεθεί νέο υλικό.
Μια δυναµική ιστοσελίδα µπορεί να απαιτεί αρκετές σελίδες κώδικα και πολλές γνώσεις για
να κατασκευαστεί όµως απο κει και πέρα γίνετε πολύ εύκολη στην χρήση της. Σε αντίθεση µε τις
στατικές ιστοσελίδες ο απλός χρήστης χωρίς ιδιαίτερες γνώσεις µπορεί να προσθέσει ή να αλλάξει το
περιεχόµενο της ιστοσελίδας. Πίσω από κάθε δυναµική ιστοσελίδα υπάρχει µια βάση δεδοµένων. Το
κόστος κατασκευής µιας δυναµικής ιστοσελίδας και της φιλοξενία της είναι πολύ µεγαλύτερο από ότι
µια στατικής ιστοσελίδας.
13
2.3
Σύστηµα Ονοµάτων Τοµέων (Domain Name System)
Το Domain Name System ή DNS είναι ένα ιεραρχικό σύστηµα ονοµατοδοσίας για
υπολογιστές, υπηρεσίες και οποιοδήποτε άλλο δικτυακό πόρο συνδέεται σε δίκτυο µε πρωτόκολλο ΙΡ.
Το σύστηµα DNS µπορεί και αντιστοιχίζει ονόµατα µε διευθύνσεις ΙΡ ή άλλα ονόµατα στο ∆ιαδίκτυο
ή ένα ιδιωτικό δίκτυο.
Ο χώρος ονοµατων τοµέων (Domain Name Space ) του DNS είναι δοµηµένος ιεραρχικά σε
δενδρική δοµή, µε τα ονόµατα να φέρουν πληροφορία που αντανακλά τη θέση τους στη δοµή αυτή. Ο
χώρος ονοµάτων DNS ενός ιδιωτικού δικτύου µπορεί να διαφέρει µε τον χώρο ονοµάτων DNS του
∆ιαδικτύου ή κάποιου άλλου διαδικτύου. Η αντιστοίχιση ονοµάτων µε αριθµητικές διευθύνσεις
προέκυψε επειδή οι αριθµητικές διευθύνσεις IP δεν είναι εύχρηστες απο τους ανθρωπους. Οι
άνθρωποι αποδιδουν σηµασία και θυµούνται ευκολότερα ονόµατα.
Οι χώροι ή περιοχές ή τοµείς (domains) χωρίζονται σε επίπεδα, και κάθε επίπεδο συχνά
περιέχει κατώτερα επιπέδα, για παράδειγµα ένας τοµέας πρώτου επιπέδου µπορεί να περιέχει
ιεραρχικά τοµείς δεύτερου επιπέδου κτλ. Η αλλαγή επιπέδου των ονοµάτων χώρου είναι πολλές φορές
ισοδύναµη µε αλλαγή ζώνης DNS (DNS zone). Χρησιµοποιόντας την ορολογία που χρησιµοποιήται
στην δενδρική δοµή η ζώνη DNS είναι ένας κόµβος και ένα όνοµα χώρου είναι ένα φύλλο. Όλες οι
ζώνες DNS είναι και ονόµατα χώρου αλλά το αντίστροφο δεν ισχύει πάντα. Στην πράξη οι ζώνες DNS
είναι τα φυσικά αρχεία που βρίσκονται σε εξυπηρετητές DNS και περιέχουν τις αντιστοιχίσεις
ονοµάτων και διευθύνσεων ή άλλων ονοµάτων ως εγγραφές DNS ( DNS records ή resource records ).
∆ηλαδή οι ζώνες DNS είναι απλές βάσεις δεδοµένων και οι εγγραφές DNS είναι τα δεδοµένα.
Πχ. µια ζώνη DNS είναι η ζώνη ietf.org που περιέχει όλες τις εγγραφές DNS γιά το όνοµα χώρου του
ietf.org. Για διαχειριστικούς και λογιστικούς λόγους ο διαχειριστής της ζώνης ietf.org δηµιούργησε τη
ζώνη tools.ietf.org και έδωσε το δικαίωµα της διαχειρισής των εγγραφών DNS στον χώρο ονοµάτων
tools.ietf.org σε κάποιον άλλο διαχειριστή συστηµάτων. Άλλη µια ζώνη DNS είναι η ζώνη com. Ο
∆ιαχειριστής της ζώνης com δηµιούργησε τη ζώνη example.com και έδωσε τον έλεγχο της στον
IANA. Τώρα ο IANA ελέγχει όλες τις εγγραφές DNS για τον χώρο ονοµάτων example.com.Οι ζώνες
DNS συνήθως σηµαίνουν την αλλαγή διαχείρισης µιάς περιοχής/χώρου και περιέχουν εγγραφές DNS
(µε κατεύθυνση από το όνοµα) µόνο µε το όνοµα χώρου ή τοµείς του. Όταν κάποιος κατοχυρώνει ένα
όνοµα χώρου στο σύστηµα DNS στη ουσία παίρνει τον έλεγχο της ζώνης DNS αυτού του ονόµατος
χώρου. Το Σύστηµα DNS βασίζεται σε µια διανεµηµένη βάση δεδοµένων η οποία «τρέχει» στους
εξυπηρετητές (servers) του συστήµατος και αποτελείται από ζώνες DNS οργανωµένες σε µια δενδρική
δοµή. Οι εξυπηρετητές DNS χωρίζονται στους αρχικούς (root) εξυπηρετητές, τους εξουσιοδοτηµένους
(authoritative) εξυπηρετητές, και τους αποθηκευτικούς (caching) εξυπηρετητές. Οι εξουσιοδοτηµένοι
εξυπηρετητές DNS χωρίζονται σε πρωτεύοντες και εναλλακτικούς (masters and slaves). Συνήθως
κάποιος από τους πρωτεύοντες εξουσιοδοτηµένους εξυπηρετητές ενός ονόµατος χώρου είναι ο
πρωταρχικός. Σε αυτόν γίνονται συνήθως οι αλλαγές. Πελάτες των υπηρεσιών που παρέχουν οι
εξυπηρετητές DNS είναι οι λύτες DNS (DNS resolvers). Οι λύτες είναι λογισµικό που χρησιµοποιήται
απο έναν χρήστη ή κάποιo πρόγραµµα που ζητά τις υπηρεσίες DNS. Οι λύτες διαβάζουν τα ονόµατα
του DNS από δεξιά προς τα αριστερά. Κάθε τελεία δείχνει την αρχή ενός υποσυνόλου και το σύνολο
που περιλαµβάνει όλα τα σύνολα είναι η πιο δεξιά τελεία που ονοµάζεται ρίζα και συνήθως
παραλείπεται. Π.χ. όταν γράφουµε το όνοµα "DNS.example.wikipedia.www.el.ipduh.com" εννοούµε
"DNS.example.wikipedia.www.el.ipduh.com." . Η τελική τελεία είναι το σύνολο που περιλαµβάνει
όλο το σύστηµα και το υποσύνολο που ονοµάζεται "com.". Το σύνολο "com." περιλαµβάνει το σύνολο
"ipduh.com.", το σύνολο "ipduh.com." περιλαµβάνει το "el.ipduh.com." Το σύνολο "el.ipduh.com."
περιλαµβάνει το σύνολο "www.el.ipduh.com." κτλ Οι άνθρωποι διαβάζουν τα ονόµατα DNS από
αριστερά προς τα δεξιά και πάντα παραλείπουν την τελευταία τελεία. Στα ονόµατα DNS επιτρέπεται η
χρήση αλφαριθµητικών στοιχείων παυλών και τελειών. Συνεχόµενες παύλες και συνεχόµενες τελείες
απαγορεύονται. Στα ονόµατα χώρου τα κεφαλαία γράµµατα είναι ισοδύναµα µε τα µικρά γράµµατα.
Π.χ example.net και exAmpLE.nET είναι το ίδιο όνοµα. Η σχέση µεταξύ ονοµάτων και διεύθύνσεων
IP δεν είναι 1 προς 1. ∆ηλαδή σε ένα όνοµα µπορεί να αντιστοιχούν πολλές διευθύνσεις IP και σε µια
διεύθυνση πολλά ονόµατα.
14
Εικόνα 2 – Ιεραρχική οργάνωση χώρου ονοµάτων DNS
Το σύστηµα DNS προέκυψε επειδή στους άνθρωπους ονόµατα σηµαίνουν περισσότερα απο
αριθµητικές διευθύνσεις αλλά στην συνέχεια το συστηµα DNS απέκτησε και άλλες χρήσεις εξίσου
σηµαντικές. Το DNS επιτρέπει την ανεύρεση ενός εξυπηρετητή (server) ή µιας υπηρεσίας σε έναν
εξυπηρετητή χρησιµοποιώντας ένα όνοµα. Ένας εξυπηρετητής µπορεί να προσφέρει ταυτόχρονα
περισσότερες από µια υπηρεσίες, σύµφωνα µε διάφορα πρωτόκολλα, όπως το HTTP, το FTP, το POP,
το IMAPκαι το SMTP, δίνοντας τη δυνατότητα στο χρήστη να συνδεθεί σε µια ιστοσελίδα (HTTP), σε
µια αποθήκη αρχείων (FTP), ή να λάβει email (POP ή IMAP). Για ένα χρήστη είναι ευκολότερο να
θυµάται το όνοµα της ιστοσελίδας www.google.gr παρά το χ.ψ.ω.ζ:80 (ο συνδυασµός διεύθυνσης IP
και θύρας TCP στην οποία βρίσκεται ο εξυπηρετητής HTTP του www.google.gr). Επίσης το DNS
χρησιµοποιείται για να αντιστοιχίσει διευθύνσεις IP µε ονόµατα. Έτσι ο διαχειριστής ενός δικτύου
µπορεί να χρησιµοποιήσει ονόµατα για να επικοινωνήσει ή να απλώς να θυµάται ονόµατα
µηχανηµάτων, τοποθεσίες, ονόµατα χώρου, και ότι άλλο σκεφτεί. Τα ονόµατα των διευθύνσεων IP
λειτουργούν και κατά κάποιον τρόπο σαν εγγυήσεις µιας και µόνο οι διαχειριστές των δικτύων κάτοχοι των διευθύνσεων µπορούν να τα αλλάξουν. Στην λειτουργία του ηλεκτρονικού ταχυδροµείου
το όνοµα της διεύθυνσης IP του εξυπηρετητή ηλεκτρονικού ταχυδροµείου (Mail Server) θεωρείται
απόδειξη του ότι είναι αυτός που λέει. Το σύστηµα DNS δίνει, τέλος, τη δυνατότητα αντιστοίχισης
µεταξύ ονοµάτων, καθώς και τη δυνατότητα αντιστοίχισης ενός ονόµατος σε πολλαπλές διευθύνσεις
IP (round robin DNS και IP sorting), πράγµα που βοηθά στη διαµοίραση του φόρτου µας µιας
δικτυακής υπηρεσίας σε περισσότερους του ενός εξυπηρετητές ή την κατεύθυνση των πελατών
δικτυακών υπηρεσιών σε γεωγραφικά κοντινότερους εξυπηρετητές. Στο σύστηµα DNS είναι δυνατή η
αντιστοίχιση άπειρων ονοµάτων σε µία διεύθυνση IP ή µια οµάδα διευθύνσεων IP. Αυτό διευκολύνει
λογιστικά την διαχείριση εξυπηρετητών δικτυακών υπηρεσιών και βοηθά στην οικονοµία
διευθύνσεων IP.
15
2.4
Εξυπηρετητής (Server)
Εξυπηρετητής ή διακοµιστής (server) είναι υλικό ή / και λογισµικό που αναλαµβάνει την
παροχή διάφορων υπηρεσιών, «εξυπηρετώντας» αιτήσεις από άλλους υπολογιστές γνωστούς ως
πελάτες (clients). Όταν ένας υπολογιστής εκτελεί κυρίως τέτοια προγράµµατα εξυπηρετητές
συνεχόµενα, 24 ώρες την ηµέρα, τότε µπορούµε να αναφερθούµε σε όλον τον υπολογιστή ως
εξυπηρετητή, αφού αυτή είναι η κύρια λειτουργία του. Παροµοίως, ως πελάτη µπορούµε να
θεωρήσουµε είτε κάποιο λογισµικό που επικοινωνεί και υποβάλει αιτήµατα στον εξυπηρετητή, είτε
τον υπολογιστή στον οποίο εκτελείται το λογισµικό πελάτης.
Η επικοινωνία µεταξύ πελάτη και εξυπηρετητή γίνεται µέσω ενός τοπικού δικτύου, ή ακόµα
και µέσω του ∆ιαδικτύου. Ο εξυπηρετητής είναι συνήθως ένας υπολογιστής που διαφέρει ως προς τη
σύνθεσή του από άλλους κοινούς υπολογιστές, µιας και οι δυνατότητες του είναι σαφώς
αναβαθµισµένες. Κύρια χαρακτηριστικά ενός εξυπηρετητή είναι οι επεξεργαστές που υποστηρίζει και
χρησιµοποιεί για την επεξεργασία των δεδοµένων που δέχεται, οι γρήγοροι και µεγάλης
χωρητικότητας σκληροί δίσκοι αλλά και οι ταχύτητες µνήµης που υποστηρίζει. Συνήθως συνοδεύεται
από σύστηµα διπλής τροφοδοσίας (dual power supply) και από συσκευή παροχής αδιάλειπτης
ενέργειας (UPS), για µεγαλύτερη αξιοπιστία και σιγουριά στις παρεχόµενες υπηρεσίες του.
Οι υπολογιστές που χρησιµοποιούνται ως εξυπηρετητές πρέπει να µπορούν να δουλεύουν όλη
την ηµέρα και συνεχώς χωρίς διακοπές. Για το λόγο αυτό οι εταιρείες κατασκευής υπολογιστών και
τµηµάτων υπολογιστών προσφέρουν ξεχωριστές κατασκευές για εξυπηρετητές. Φυσικά αυτές οι
κατασκευές µπορούν να χρησιµοποιηθούν και για προσωπικό υπολογιστή όµως ανεβάζουν το κόστος.
Συνηθισµένα χαρακτηριστικά για το υλικό είναι:
• µητρικές πλακέτες µε
• µεγάλη αντοχή στις θερµοκρασίες
• ενσωµατωµένα συστήµατα RAID
• ενσωµατωµένη κάρτα οθόνης µικρής µνήµης και ταχύτητας
• πιο άνετα κατανεµηµένα τα στοιχεία της µνήµης και του επεξεργαστή ώστε να είναι
δυνατή η ψύξη και των δύο από ξεχωριστά δυνατά ανεµιστηράκια
• λιγότερες θύρες επέκτασης
• περισσότερα ενδεικτικά στοιχεία λειτουργίας
• δυνατότητα χρήσης µνήµης ECC
• κουτιά
• βαριά
• µε ειδικό κλείδωµα
• θέσεις για περισσότερα ανεµιστηράκια
• ειδικά διαµορφωµένους εσωτερικούς χώρους ώστε να γίνεται πιο καλή κυκλοφορία
του αέρα
• ειδικά κουτιά που µπορούν να ενσωµατωθούν σε rack
• δίσκοι
• µε προδιαγραφές για µεγαλύτερο συνεχόµενο χρόνο χρήσης
• που µπορούν να αποσυνδέονται την ώρα που είναι σε λειτουργία
16
Εικόνα 3 – εξυπηρετητές
Τα περισσότερα λειτουργικά συστήµατα έχουν ειδική έκδοση για χρήση ως εξυπηρετητή.
Τα χαρακτηριστικά που την διαφοροποιούν είναι πολλά µερικά από τα οποία είναι:
• δυνατότητα λειτουργίας χωρίς την ύπαρξη:
• πληκτρολογίου
• οθόνης
• γραφικού περιβάλλοντος
• κάρτας ήχου
• δυνατότητες επιλογής χρόνου επεξεργασίας των διάφορων προγραµµάτων
• πρόγραµµα επικοινωνίας µε το UPS
• δυνατότητα χρήσης περισσότερων του ενός επεξεργαστή
• δυνατότητα συνεπεξεργασίας µε άλλους υπολογιστές- εξυπηρετητές
• περισσότερες δυνατότητες αλλαγής του υλικού και αναβάθµισης του λειτουργικού χωρίς την
ανάγκη επανεκκίνησης του συστήµατος
• περισσότερα συστήµατα ασφαλείας
Πολλά σύγχρονα προγράµµατα δουλεύουν µε τη λογική πελάτη - εξυπηρετητή. Ακόµα και το
ίδιο το λειτουργικό σύστηµα δουλεύει µε αυτήν τη λογική. Τα προγράµµατα ζητάνε κάποια ενέργεια
και το λειτουργικό σύστηµα αναλαµβάνει να τα εξυπηρετήσει εκτελώντας τις λειτουργίες που του
ζητήθηκαν.
Συνήθως τα περισσότερα προγράµµατα εξυπηρετητών απαιτούν και ξεχωριστό υπολογιστήεξυπηρετητή χωρίς αυτό να είναι πάντα απαραίτητο.
17
Συνηθισµένοι εξυπηρετητές-προγράµµατα σε περιβάλλον γραφείου που µπορεί να βρίσκονται ή όχι σε
ξεχωριστούς υπολογιστές είναι:
•
•
•
•
•
•
•
Εξυπηρετητής αρχείων (file server)
Εξυπηρετητής εκτυπωτών (printer server)
Εξυπηρετητής αντιγράφων ασφαλείας (backup server)
Εξυπηρετητής βάσεων δεδοµένων (database server)
Εξυπηρετητής φαξ (fax server)
Εξυπηρετητής διαµεσολαβητή (proxy server)
Εξυπηρετητής ηλεκτρονικού ταχυδροµείου ΙΜΑΡ
Συνηθισµένοι εξυπηρετητές-προγράµµατα στο Ίντερνετ είναι:
•
•
•
•
•
•
•
•
Παγκόσµιου Ιστού (World Wide Web, web server)
Domain Name System (DNS server)
Ηλεκτρονικού ταχυδρµείου (mail server)
Μεταφοράς αρχείων µε το πρωτόκολλο FTP(ftp server)
irc και instant messaging (irc server)
Επικοινωνίες φωνής
streaming audio και video (streaming server)
Online παιχνίδια
Κάθε εξυπηρετητής έχει διαφορετικές ανάγκες για υλικό. Σύνήθως έχει ανάγκη από γρήγορη
πρόσβαση στο δίκτυο όµως ένας εξυπηρετητής φαξ δεν θα υποφέρει τόσο αν δεν έχει γρήγορη κάρτα
δικτύου ή αρκετή µνήµη όσο το να έχει προβληµατικό modem. Ένας εξυπηρετητής αρχείων και ένας
εξυπηρετητής αντιγράφων ασφαλείας είναι προτιµότερο να έχουν όσο γίνεται πιο αξιόπιστους και πιο
ταχείς δίσκους από το να έχουν µεγαλύτερο επεξεργαστή ή περισσότερη και ακριβότερη µνήµη.
Ένας εξυπηρετητής DNS χρειάζεται όσο το δυνατό µεγαλύτερη ασφάλεια και γι αυτό το λόγο εκείνο
που χρειάζεται περισσότερο είναι να τρέχουν όσο το δυνατόν λιγότερα προγράµµατα.
2.4.2 Μοντέλο Πελάτη – ∆ιακοµιστή
Στην επιστήµη υπολογιστών το µοντέλο αρχιτεκτονικης λογισνικού πελάτη-διακοµιστή
αποτελεί µία συνήθη µέθοδο ανάπτυξης λογισµικού στην οποία ο πελάτης (ένα τµήµα λογισµικού)
ζητά κάτι (π.χ. έναν πόρο τα αποτελέσµατα ενός υπολογισµού κ.ο.κ.) και ένα άλλο τµήµα λογισµικού,
ο διακοµιστής (ή εξυπηρετητής), του το επιστρέφει. Κάθε διακοµιστής µπορεί να εξυπηρετεί
πολλαπλούς πελάτες. Ο διακοµιστής και ο πελάτης µπορούν να εκτελούνται σε διαφορετικές
διεργασίες, οι οποίες µε τη σειρά τους µπορούν να εκτελούνται σε διαφορετικούς υπολογιστές , οπότε
απαιτείται ένα δίκτυο υπολογιστών για τη διαδιεργασιακή επικοινωνία µεταξύ τους. Σε αυτή την
περίπτωση το µοντέλο πελάτη-διακοµιστή αποτελεί µία από τις µεθόδους ανάπτυξης και λειτουργίας
κατανεµηµένων συστηµάτων, όπου θεωρούµε τόσο τον πελάτη όσο και τον διακοµιστή διαφορετικά
τµήµατα της ίδιας κατανεµηµένης εφαρµογής (π.χ., µε την έννοια αυτή, ο Παγκόσµιος Ιστός είναι µία
µεγάλη κατανεµηµένη εφαρµογή αποτελούµενη από τους πλοηγούς Web και το σύνολο των
διακοµιστών Web).
18
2.4.3 Apache – HTTP εξυπηρετητής
Ο Apache HTTP γνωστός και απλά σαν Apache είναι ένας εξυπηρετητής του παγκόσµιο υ
ιστού (web). Όποτε ένας χρήστης επισκέπτεται ένα ιστότοπο το πρόγραµµα πλοήγησης (browser)
επικοινωνεί µε έναν διακοµιστή (server) µέσω του πρωτοκόλλου ΗΤΤΡ, ο οποίος παράγει τις
ιστοσελίδες και τις αποστέλλει στο πρόγραµµα πλοήγησης. O Apache είναι ένας από τους
δηµοφιλέστερους, εν µέρει γιατί λειτουργεί σε διάφορες πλατφόρµες όπως τα Windows, το Linux, το
Unix και το Macos X. Συντηρείται τώρα από µια κοινότητα ανοικτού κώδικα µε επιτήρηση από το
Ίδρυµα Λογισµικού Apache (Apache Software Foundation).
Ο Apache χρησιµοποιείται και σε τοπικά δίκτυα σαν διακοµιστής συνεργαζόµενος µε συστήµατα
διαχείρισης Βάσης ∆εδοµένων π.χ. , oracle, MySQL.
Η πρώτη του έκδοση, γνωστή ως NCSA HTTPd, δηµιουργήθηκε από τον Robert McCool και
κυκλοφόρησε το 1993. Θεωρείται ότι έπαιξε σηµαντικό ρόλο στην αρχική επέκταση του παγκόσµιου
ιστού. Ήταν η πρώτη βιώσιµη εναλλακτική επιλογή που παρουσιάστηκε απέναντι στον εξυπηρετητή
http της εταιρίας Netscape και από τότε έχει εξελιχθεί στο σηµείο να ανταγωνίζεται άλλους
εξυπηρετητές βασισµένους στο Unix σε λειτουργικότητα και απόδοση. Από το 1996 ήταν από τους
πιο δηµοφιλείς όµως από τον Μάρτιο του 2006 έχει µειωθεί το ποσοστό της εγκατάστασής του κυρίως
από τον Microsft Internet Information Services και την πλατφόρµα .NET . Τον Οκτώβριο του 2007 το
µερίδιο του ήταν 47.73% από όλους τους ιστοτόπους.
19
2.5
PHP
Η PHP είναι µια ευρέως χρησιµοποιούµενη, γενικού σκοπού scripting γλώσσα η οποία είναι
κατάλληλη για ανάπτυξη web σελίδων και µπορεί να ενσωµατωθεί σε HTML κώδικα. Εκτελείται
σε έναν web server, λαµβάνοντας ως είσοδο PHP κώδικα και παράγοντας ως έξοδο ιστοσελίδες.
Μπορεί να αναπτυχθεί στους περισσότερους web servers, σε σχεδόν κάθε λειτουργικό σύστηµα και
πλατφόρµα και µπορεί να χρησιµοποιηθεί µε τα περισσότερα συστήµατα διαχείρισης βάσεων
δεδοµένων (DBMS). Η PHP είναι εγκατεστηµένη σε περισσότερες από 20 εκατοµµύρια
ιστοσελίδες και 1 εκατοµµύριο web servers.Αντίθετα από µια συνηθισµένη HTML σελίδα, η
σελίδα PHP δεν στέλνεται άµεσα σε έναν πελάτη (client-side), αντί’ αυτού πρώτα µεταγλωττίζεται
στο web server(server-side)και µετά αποστέλλεται το παραγόµενο αποτέλεσµα. Έτσι τα στοιχεία
HTML στον πηγαίο κώδικα µένουν ως έχουν, αλλά ο PHP κώδικας µεταγλωττίζεται και εκτελείται.
Η µεταγλώττιση αυτή αυξάνει το χρόνο εκτέλεσης του script διότι προσθέτει ένα επιπλέον βήµα
προς εκτέλεση. Τα PHP scripts µπορούν να µεταγλωττιστούν και από πριν, µε την χρήση των PHP
compilers όπως γίνεται και σε άλλες γλώσσες προγραµµατισµού όπως η C. Η PHP είναι παρόµοια
µε άλλες server-side scripting γλώσσες που παρέχουν δυναµικό περιεχόµενο από τον web server
στο πελάτη(client), όπως το ASP.NET της Microsoft, οι JavaServer Pages της Sun Microsystems
και mod_perl.Η ιστορία της PHP ξεκινά από το 1995, όταν ένας φοιτητής, ο Rasmus
Lerdorfδηµιούργησε χρησιµοποιώντας τη γλώσσα προγραµµατισµού Perl ένα απλό script µε όνοµα
php.cgi, για προσωπική χρήση. Το script αυτό είχε σαν σκοπό να διατηρεί µια λίστα στατιστικών
για τα άτοµα που έβλεπαν το online βιογραφικό του σηµείωµα. Αργότερα αυτό το script το διέθεσε
και σε φίλους του, οι οποίοι άρχισαν να του ζητούν να προσθέσει περισσότερες δυνατότητες. Η
γλώσσα τότε ονοµαζόταν PHP/FI από τα αρχικά Personal Home Page/Form Interpreter.
Το 1997 η PHP/FI έφθασε στην έκδοση 2.0, βασιζόµενη αυτή τη φορά στη γλώσσα C και
αριθµώντας περισσότερους από 50.000 ιστότοπους που τη χρησιµοποιούσαν, ενώ αργότερα την
ίδια χρονιά οι Andi Gutmans και Zeev Suraski ξαναέγραψαν τη γλώσσα από την αρχή, βασιζόµενοι
όµως αρκετά στην PHP/FI 2.0. Έτσι η PHP έφθασε στην έκδοση 3.0 η οποία θύµιζε περισσότερο
τη σηµερινή µορφή της.
Στη συνέχεια, οι Zeev και Andi δηµιούργησαν την εταιρεία Zend (από τα αρχικά των
ονοµάτων
τους), η οποία συνεχίζει µέχρι και σήµερα την ανάπτυξη και εξέλιξη της γλώσσας PHP.
Ακολούθησε το 1998 η έκδοση 4 της PHP, τον Ιούλιο του 2004 διατέθηκε η έκδοση 5, ενώ αυτή τη
στιγµή έχουν ήδη διατεθεί και οι πρώτες δοκιµαστικές εκδόσεις της επερχόµενης PHP 6, για
οποιονδήποτε προγραµµατιστή θέλει να τη χρησιµοποιήσει.
Οι περισσότεροι ιστότοποι επί του παρόντος χρησιµοποιούν κυρίως τις εκδόσεις 4 και 5 της
PHP.
Τον Αύγουστο του 2004 ήταν σε χρήση σχεδόν σε 17 εκατοµµύρια τοµείς παγκόσµια και αυτός ο
αριθµός µεγαλώνει γρήγορα. µπορείτε να δείτε τον τρέχοντα αριθµό στο :
http://www.php.net/usage.php.
Η PHP είναι ένα προϊόν ανοιχτού κώδικα, που σηµαίνει ότι έχετε πρόσβαση στον
κώδικα προέλευσης και µπορείτε να τον χρησιµοποιείτε, να τον αλλάζετε και να τον αναδιανείµετε
χωρίς χρέωση.
Η PHP αρχικά ήταν το ακρωνύµιο του Personal Home Page(προσωπική αρχική σελίδα), αλλά
άλλαξε σύµφωνα µε τη σύµβαση GNU και τώρα είναι ακρωνύµιο του PHP Hypertext
Preprocessor(προεπεξεργαστής κειµένου PHP). Η τρέχουσα βασική έκδοση της PHP είναι η 5.
20
Αυτή η έκδοση έχει υποστεί πλήρη ανανέωση στη Zend µηχανή της και µερικές µεγάλες
βελτιώσεις στη γλώσσα.
Η αρχική σελίδα της PHP είναι διαθέσιµη στο: http://www.php.net
Η αρχική σελίδα της Zend Technologies είναι διαθέσιµη στο: http://www.zend.com
Ένα αρχείο µε κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση (π.χ.*.php,*.php4, *.phtml
κ.ά.).
Η ενσωµάτωση κώδικα σε ένα αρχείο επέκτασης .html δεν θα λειτουργήσει και θα εµφανίσει στον
browser τον κώδικα χωρίς καµία επεξεργασία, εκτός αν έχει γίνει η κατάλληλη ρύθµιση στα MIME
types του server.
Επίσης ακόµη κι όταν ένα αρχείο έχει την επέκταση .php, θα πρέπει ο server να είναι ρυθµισµένος
για να επεξεργάζεται κώδικα PHP. Ο διακοµιστής Apache, που χρησιµοποιείται σήµερα ευρέως σε
συστήµατα µε τα λειτουργικά συστήµατα Linux και Microsoft Windows, υποστηρίζει εξ ορισµού
επεξεργασία κώδικα PHP.
Εικόνα 4 – Πού χρησιµεύει η ΡΗΡ
2.5.1 Πλεονεκτήµατα της PHP
Κάποιοι από τους ανταγωνιστές της PHP είναι η Perl, Microsoft ASP.NET, Java Server
Pages(JSP), ColdFusion.
Σε σύγκριση µε αυτά τα προϊόντα τα πλεονεκτήµατα της PHP είναι:
Υψηλή απόδοση
ιασυνδέσεις µε πολλά διαφορετικά συστήµατα βάσεων δεδοµένων
Ενσωµατωµένες βιβλιοθήκες για πολλές συνηθισµένες Web διαδικασίες
Χαµηλό κόστος
Ευκολία µάθησης και χρήσης
υνατή αντικειµενοστραφή υποστήριξη
Μεταφερσιµότητα
ιαθεσιµότητα του κώδικα προέλευσης
ιαθεσιµότητα υποστήριξης
21
2.6 HTML
Τα αρχικά HTML προέρχονται από τις λέξεις HyperText Markup Language. Η html δεν είναι µια
γλώσσα προγραµµατισµού. Είναι µια γλώσσα σήµανσης (markup language), δηλαδή ένας ειδικός
τρόπος γραφής κειµένου. Ο καθένας µπορεί να δηµιουργήσει ένα αρχείο HTML χρησιµοποιώντας
απλώς εναν επεξεργαστή κειµένου. Aποτελεί υποσύνολο της γλώσσας SGML (Standard Generalized
Markup Language) που επινοήθηκε από την IBM προκειµένου να λυθεί το πρόβληµα της µη
τυποποιηµένης εµφάνισης κειµένων στα διάφορα υπολογιστικά συστήµατα. Ο browser αναγνωρίζει
αυτόν τον τρόπο γραφής και εκτελεί τις εντολές που περιέχονται σε αυτόν. Αξίζει να σηµειωθεί ότι η
html είναι η πρώτη και πιο διαδεδοµένη γλώσσα περιγραφής της δοµής µιας ιστοσελίδας.
Η html χρησιµοποιεί τις ειδικές ετικέτες (τα tags) να δώσει τις απαραίτητες οδηγίες στον
browser. Τα tags είναι εντολές που συνήθως ορίζουν την αρχή ή το το τέλος µιας λειτουργίας. Τα tags
βρίσκονται πάντα µεταξύ των συµβόλων < και >. Π.χ. <BODY> Οι οδηγίες είναι case insensitive, δεν
επηρεάζονται από το αν έχουν γραφτεί µε πεζά (µικρά) ή κεφαλαία. Ένα αρχείο HTML πρέπει να έχει
κατάληξη htm ή html.
Για να µπορούν οι browser να ερµηνεύουν σχεδόν απόλυτα σωστά την html έχουν θεσπιστεί
κάποιοι κανόνες. Αυτοί οι κανόνες είναι γνωστοί ως προδιαγραφές. Εποµένως σχεδόν κάθε είδος
υπολογιστή µπορεί να δείξει το ίδιο καλά µια ιστοσελίδα. Οι πρώτες προδιαγραφές ήταν η html 2.0.
Πρόβληµα προέκυψε όταν η Μicrosoft και η Νetscape πρόσθεσαν στην html τέτοιες δυνατότητες που
στην αρχή τουλάχιστον ήταν συµβατές µόνο µε συγκεκριµένους browser. Ακόµη και σήµερα
υπάρχουν διαφορές στην απεικόνιση κάποιας σελίδας από διαφορετικούς browsers. Ιδιαίτερο είναι το
πρόβληµα όταν η ιστοσελίδα, εκτός απο "καθαρή" HTML περιλαµβάνει και εφαρµογές Javascript.
Σήµερα πολλοί είναι εκείνοι που δηµιουργούν µια ιστοσελίδα σε κάποιο πρόγραµµα που
επιτρέπει την δηµιουργία χωρίς την συγγραφή κώδικα. Η κοινή άποψη πάνω στο θέµα όµως είναι ότι
κάτι τέτοιο είναι αρνητικό επειδή ο δηµιουργός δεν έχει τον απόλυτο έλεγχο του κώδικα µε
αποτέλεσµα πολλές φόρες να υπάρχει οπτικό χάος στην προσπάθεια των browser να εµφανίσουν την
ιστοσελίδα. Για το σκοπό αυτό έχει δηµιουργηθεί ειδικό λογισµικό, που επιτρέπει το "στήσιµο" της
σελίδας οπτικά, χωρίς τη συγγραφή κώδικα, δίνει όµως τη δυνατότητα παρέµβασης ΚΑΙ στον κώδικα.
Χαρακτηριστικό παράδειγµα το λογισµικό Dreamweaver της Adobe και το FrontPage της Microsoft.
22
2.7
CSS
Η CSS (Cascading Style Sheets-∆ιαδοχικά Φύλλα Στυλ) ή ( αλληλουχία φύλλων στύλ ) είναι
µια γλώσσα υπολογιστή που ανήκει στην κατηγορία των γλωσσών φύλλων στυλ που χρησιµοποιείται
για τον έλεγχο της εµφάνισης ενός εγγράφου που έχει γραφτεί µε µια γλώσσα σήµανσης.
Χρησιµοποιείται δηλαδή για τον έλεγχο της εµφάνισης ενός εγγράφου που γράφτηκε στις γλώσσες
HTML και XHTML, δηλαδή για τον έλεγχο της εµφάνισης µιας ιστοσελίδας και γενικότερα ενός
ιστότοπου. Η CSS είναι µια γλώσσα υπολογιστή προορισµένη να αναπτύσσει στυλιστικά µια
ιστοσελίδα δηλαδή να διαµορφώνει περισσότερα χαρακτηριστικά, χρώµµατα, στοίχιση και δίνει
περισσότερες δυνατότητες σε σχέση µε την html. Για µια όµορφη και καλοσχεδιασµένη ιστιοσελίδα η
χρήση της CSS κρίνεται ως απαραίτητη.
Για ένα έγγραφο πχ xhtml θα υπάρχουν παραπάνω από ένα φύλλα στυλ τα οποία περιέχουν
δηλώσεις για την εµφάνιση ενός συγκεκριµένου στοιχείου. Το Φύλλο στύλ που εφαρµόζεται σε ένα
έγγραφο µπορεί να προέρχεται από :
• το συγγραφέα µιας ιστοσελίδας
• το χρήστη του πλοηγού
• τον ίδιο τον πλοηγό, αν έχει το δικό του προκαθορισµένο φύλλο στυλ .
Συνεπώς για ένα xhtml στοιχείο θα υπάρχουν παραπάνω από µια δηλώσεις που πιθανόν να είναι
συγκρουόµενες.Το πρότυπυ css για να επιλύσει παρόµοιες συγκρούσεις έχει καθορίσει µια
αλληλουχία-σειρά στην οποία θα µπούν αυτές οι δηλώσεις και µε βάση την οποία θα επιλεγεί πχ η
δήλωση που είναι πρώτη στη σειρά.
Ο αλγόριθµος δηµιουργίας αυτής της σειράς-αλληλουχίας είναι ο ακόλουθος:
1. Βρες όλες τις δηλώσεις που εφαρµόζονται στο στοιχείο που µας ενδιαφέρει. Οι δηλώσεις
εφαρµόζονται στο στοιχείο αν ο επιλογέας του το επιλέξει (ταιριάζει µε αυτό).
2. Ταξινόµησε µε βάση τη σηµασία (κανονική ή σηµαντική) και προέλευση ( συγγραφέας ,
χρήστη ή πλοηγός χρήστη). Με αύξουσα σειρά προτεραιότητας:
1. ∆ηλώσεις πλοηγού χρήστη
2. Κανονικές δηλώσεις χρήστη
3. Κανονικές δηλώσεις συγγραφέα
4. Σηµαντικές δηλώσεις συγγραφέα
5. Σηµαντικές δηλώσεις χρήστη
3. Ταξινόµησε τις δηλώσεις ίδιας σηµασίας και προέλευσης µε κριτήριο την εξειδίκευση του
επιλογέα: οι πιο εξειδικευµένοι επιλογείς υπερισχύουν των πιο γενικών. Τα ψευδό-στοιχεία
και οι ψευδο-κλάσεις λογαριάζονται σαν κανονικά στοιχεία και κλάσεις αντίστοιχα.
4. Τέλος ταξινόµησε ανάλογα µε τη σειρά καθορισµού: αν δύο δηλώσεις έχουν το ίδιο βάρος ,
προέλευση και εξειδίκευση , αυτή που προσδιορίστηκε τελευταία επικρατεί. Οι δηλώσεις σε
εισαγώµενα φύλλα στυλ θεωρούνται ότι δηλώνονται πριν από τις δηλώσεις στο ίδιο το φύλλο
στυλ .
23
Αφού λοιπόν προκύψει µια σειρά-αλληλουχία κανόνων εµφάνισης που αφορούν το ίδιο στοιχείο θα
επιλεγεί προς εφαρµογή (για την αποφυγή συγκρούσεων ) η δήλωση που θα είναι τελευταία στην
σειρά που αναλύθηκε πιο πάνω.
2.7.1 Πλεονεκτήµατα CSS
Μερικά από τα πλεονεκτήµατα των CSS είναι:
• ∆ιαχωρισµός του περιεχοµένου από την σχεδίαση.
• Ελαχιστοποίηση του χρόνου για τις αλλαγές στην σχεδίαση αφού όλα τα στοιχεία
περιέχονται σε ένα αρχείο.
• Πιο καθαρός κώδικας HTML
• Προσβασιµότητα από όλους τους Web Browsers
• Πιστοποίηση από την W3C το µεγαλύτερο οργανισµό Web Standards
• Αύξηση ταχύτητας της εµφάνισης της ιστοσελίδας
• Μικρότερο µέγεθος αρχείων
• Καλύτερη θέση στις µηχανές αναζήτησης λόγω καθαρότερου κώδικα.
• Οµοιόµορφη εµφάνιση όλων των ιστοσελίδων που συνδέονται µε το CSS αρχείο
αφού τα στοιχεία δεν αλλάζουν.
2.8 jQuery
Η jQuery είναι µία cross-browser JavaScript βιβλιοθήκη µε σκοπό την απλοποίηση της δέσµης
ενεργειών υπολογιστή-πελάτη της HTML. Είχε κυκλοφορήσει τον Ιανουάριο του 2006 στο BarCamp
NYC από τον John Resig. Χρησιµοποιείται σε πάνω από το 43% των 10.000 πιο δηµοφιλών
ιστοτόπων, η jQuery είναι η πιο δηµοφιλής βιβλιοθήκη JavaScript σε χρήση σήµερα.
Η jQuery είναι ελεύθερο, ανοικτό λογισµικό, µε άδεια από την MIT License και την GNU General
Public License, Έκδοση 2.
Η jQuery έχει ως στόχο να καταστήσει ευκολότερη την περιήγηση σε ένα έγγραφο, να
επιλέγει τα στοιχεία DOM, τη δηµιουργία animations, να χειρίζεται γεγονότα , και να αναπτύσει τις
εφαρµογές Ajax. Η jQuery προβλέπει επίσης δυνατότητες για τους προγραµµατιστές που θέλουν
δηµιουργήσουν plugins στην κορυφή της βιβλιοθήκης JavaScript. Χρησιµοποιώντας αυτές τις
εγκαταστάσεις, οι προγραµµατιστές µπορούν να δηµιουργήσουν πηγές για αλληλεπίδραση χαµηλού
επιπέδου και κινούµενα σχέδια, τα προηγµένα εφέ και σε υψηλό επίπεδο, το θέµα-είναι σε θέση
24
widgets. Αυτό συµβάλλει στη δηµιουργία ισχυρών και δυναµικών ιστοσελίδων.
H jQuery περιέχει τα ακόλουθα χαρακτηριστικά:
- DOM επιλογές στοιχείου χρησιµοποιώντας την cross-browser ανοιχτού κώδικα επιλογής κινητήρα
Sizzle, ένα spin-off από το πρόγραµµα jQuery.
- DOM traversal και τροποποίηση (συµπεριλαµβανοµένης της υποστήριξης CSS 1-3).
- Εκδηλώσεις
- CSS χειραγώγησης
- Επιδράσεις και κινούµενα σχέδια
- Ajax
- Επεκτασιµότητα µέσω plug-ins
- Βοηθητικά προγράµµατα - όπως η έκδοση του προγράµµατος περιήγησης και την κάθε
λειτουργία.
-Cross-browser υποστήριξη
2.9 JAVASCRIPT
Η JavaScript είναι γλώσσα προγραµµατισµού η οποία έχει σαν σκοπό την παραγωγή
δυναµικού περιεχοµένου και την εκτέλεση κώδικα στην πλευρά του πελάτη (client-side) σε
ιστοσελίδες. To πρότυπο της γλώσσας κατά τον οργανισµό τυποποίησης ECMA ονοµάζεται
ECMAscrip.
Όπως και η PHP, η Javascript έχει βασιστεί όσον αφορά τον τρόπο σύνταξης του κώδικά της
στη γλώσσα προγραµµατισµού C µε την οποία παρουσιάζει πολλές οµοιότητες. Όµως ενώ η PHP
εκτελείται στο διακοµιστή (server-side γλώσσα προγραµµατισµού), η Javascript εκτελείται στον
πελάτη (client-side γλώσσα προγραµµατισµού).
Αυτό σηµαίνει ότι η επεξεργασία του κώδικα Javascript και η παραγωγή του τελικού
περιεχοµένου HTML δεν πραγµατοποιείται στο διακοµιστή, αλλά στο πρόγραµµα περιήγησης των
επισκεπτών. Αυτή η διαφορά έχει και πλεονεκτήµατα και µειονεκτήµατα για καθεµιά από τις δύο
γλώσσες. Συγκεκριµένα, η Javascript δεν έχει καµία απαίτηση από πλευράς δυνατοτήτων του server
για να εκτελεστεί (όπως επεξεργαστική ισχύ ή συµβατό λογισµικό διακοµιστή), αλλά βασίζεται στις
δυνατότητες του browser των επισκεπτών. Επίσης µπορεί να ενσωµατωθεί σε στατικές σελίδες
HTML. Παρόλα αυτά, οι δυνατότητές της διαφέρουν σηµαντικά από αυτές της PHP (για παράδειγµα
δεν παρέχει συνδεσιµότητα µε βάσεις δεδοµένων που βρίσκονται στο διακοµιστή).
ΣΗΜΕΙΩΣΗ! Η Javascript δεν θα πρέπει να συγχέεται µε τη Java, που είναι διαφορετική γλώσσα
προγραµµατισµού και µε διαφορετικές εφαρµογές. Τονίζεται ότι ο σωστός τρόπος γραφής της είναι
"Javascript" και όχι 'Java script' σαν δύο λέξεις, όπως λανθασµένα γράφεται ορισµένες φορές.
25
2.10 Framework – Plonk
Για την δηµιουργία και το design του site, πρέπει να χρησιµοποιηθεί ένα συγκεκριµένο
framework, για να είναι οµοιόµορφο και καλαίσθητο το τελικό αποτελέσµα.
Λόγω της συνεργασίας µε τα υπόλοιπα µέλη, η απόφαση για το framework που θα χρησιµοποιηθεί
έπρεπε να παρθεί από κοινού. Η οµάδα από το Βέλγιο δηµιούργησε ένα δικό της,καινούργιο
framework που ονόµασαν Plonk, και το οποίο τελικά ήταν και αυτό που χρησιµοποιήσαµε µε
επιτυχία.
Παρακάτω παρατίθενται λίγα λόγια για την δοµή του Plonk, µε την συνοδεία εικόνων, για να
γίνει πιο κατανοητή η µελλοντική χρήση του,αφού είναι έτοιµο να βγει πλέον στο εµπόριο.
2.10.1 ∆οµή του Plonk
Αρχικά, είναι ο κεντρικός κορµός από τον οποίο αποτελείται το framework. Στον κύριο
κορµό, έχουµε τον φάκελο Source Files, µέσα στον οποίο βρίσκονται οι φάκελοι core, files, library,
modules, καθώς και το αρχείο index, το οποίο είναι τύπου php.
Εικόνα 5 – Φάκελος Πτυχιακή
Ας πούµε τώρα λίγα λόγια για τον κάθε φάκελο χωριστά.
Μέσα στον φάκελο core έχουµε τους υποφακέλους css, img, includes, js και layout.
Ο φάκελος css περιέχει κατά βάση το design του site, δηλαδή το µέγεθος, το χρώµα, το
background των φορµών, καθώς και την διάταξη – δοµή που έχει κάθε φόρµα εσωτερικά. Όλα αυτά
γίνονται µε συγκεκριµένες εντολές, αλλά περισσότερα για το css θα παρατεθούν παρακάτω.
Εικόνα 6 – Φάκελος CSS
26
Εικόνα 7 – Περιεχόµενα CSS
Μέσα στον φάκελο img βρίσκονται οι εικόνες που χρησιµοποιήθηκαν σε όλο το site συνολικά.
Εικόνα 8 – Φάκελος Includes
Στον φάκελο includes βρίσκονται τα αρχεία στα οποία δηλώνονται οι βάσεις δεδοµένων,οι server και
τα πρωτόκολλα που έχουν χρησιµοποιηθεί.
27
Εικόνα 9 – Περιεχόµενα Includes
Στον φάκελο js βρίσκονται τα αρχεία jquery-validation, τα οποία περιέχουν τις λειτουργίες (
functions ), οι οποίες είναι απαραίτητες για την σωστή και ολοκληρωµένη λειτουργία του site.
Παρακάτω θα παρατεθεί ο κώδικας των λειτουργιών.
Εικόνα 10 – Περιεχόµενα js
Τέλος, µέσα στον φάκελο layout, έχουµε το αρχείο layout.tpl, το οποίο είναι η αρχική σελίδα που
φαίνεται µόλις µπαίνουµε στο Erasmusline site.
28
Εικόνα 11 – Φάκελος Layout
Στην συνέχεια έχουµε τον φάκελο library, ο οποίος περίεχει τον φάκελο phpmailer. Μέσα
στον φάκελο αυτο, βρίσκονται τα αρχέια που περιέχουν τις λειτουργίες (functions) των πρωτοκόλλων
(στην περίπτωσή µας τα πρωτόκολλα SMTP και POP3) τα οποία είναι απαραίτητα για να υπάρχει
σωστή αντιστοίχηση των θυρών µεταξύ τερµατικών υπολογιστών, έτσι ώστε να στέλνονται σωστά και
µε ακρίβεια τα αρχεία που επιθυµούµε.
Εικόνα 12 – Περιεχόµενα Library
29
Τέλος, έχουµε των φάκελο που ονοµάζεται modules και µέσα στον οποίο έχουµε τα αρχέια µε το
design της κάθε φόρµας.
Για κάθε φόρµα που σχεδίαζουµε, δηµιουργούµε και από ένα ξεχωριστό φάκελο.
Εικόνα 13 – Φάκελος Library
Σε κάθε ένα φάκελο που έχουµε για την κάθε φόρµα, δηµιουργούµε άλλον ένα υποφάκελο,
και δύο αρχεία τύπου php. Στον υποφάκελο που ονοµάσαµε layout, φτιάχνουµε το αρχείο .tpl, το
οποίο είναι και το κεντρικό design της εκάστοτε φόρµας που δηµιουργούµε. Από τα άλα δύο αρχεία,
το ένα είναι η βάση δεδοµένων της κάθε φόρµας που θα συνδεθεί µε την κεντρική βάση δεδοµένων,
και το άλλο αρχείο είναι η “γενικότερη” σύνδεση της φόρµας µε το κεντρικό site.
!ΣΗΜΕΙΩΣΗ! - Τα αρχεία στα οποία δηµιουργούµε την δοµή της φόρµας, είναι σε µορφή .tpl.
Εικόνα 14 – Αρχεία .tpl/.php
Τέλος, όπως ειπώθηκε παραπάνω, έχουµε το κεντρικό αρχείο index, το οποίο περιέχει την σύνδεση
όλων των φορµών που δηµιουργήθηκαν µε την αρχική σελίδα, αλλά και την σύνδεση των
πρωτοκόλλων του φακέλου library µε το site.
30
2.11 XAMPP
Το XAMPP είναι ένα δωρεάν και open source web cross-platform λύση server στοίβα πακέτο,
που αποτελείται κυρίως από την Apache HTTP Server, MySQL βάση δεδοµένων, και τους διερµηνείς
για scripts γραµµένα στην PHP και σε Perl γλώσσες προγραµµατισµού.
XAMPP είναι ένα ακρώνυµο από τις λέξεις:
•
•
•
•
•
X (cross-platform)
Apache HTTP Server
MySQL
PHP
Perl
Το πρόγραµµα εκδίδεται σύµφωνα µε τους όρους της GNU General Public License και
λειτουργεί ως ένα ελεύθερο web server κατάλληλο να εξυπηρετεί δυναµικές σελίδες. Η XAMPP
είναι διαθέσιµη για τα Microsoft Windows, Linux, Solaris και Mac OS X, και χρησιµοποιείται κυρίως
για έργα ανάπτυξης ιστοσελίδων. Αυτό το λογισµικό είναι χρήσιµο όταν δηµιουργείτε δυναµικές
ιστοσελίδες µε χρήση γλωσσών προγραµµατισµού όπως η PHP, JSP, Servlets.
Το XAMPP απαιτεί µόνο ένα zip, tar ή exe για να το κατεβάσετε και να τρέξει, και µικρή ή
καθόλου διάρθρωση των επιµέρους στοιχείων που συνθέτουν τον web server απαιτείται. Το XAMPP
ενηµερώνεται τακτικά για να συµπεριλαµβάνει τις τελευταίες εκδόσεις του Apache / MySQL / PHP
και Perl. Επίσης, έρχεται µε µια σειρά από άλλες µονάδες, συµπεριλαµβανοµένων OpenSSL και
phpMyAdmin.
Η Εγκατάσταση του XAMPP απαιτεί λιγότερο χρόνο για την εγκατάσταση κάθε στοιχείου του
ξεχωριστά. Αυτοτελές, πολλαπλές παρουσίες του XAMPP µπορεί να υπάρχουν σε έναν υπολογιστή,
καθώς και κάθε δεδοµένη περίσταση µπορούν να αντιγραφούν από έναν υπολογιστή στον άλλο.
Προσφέρεται σε δύο πλήρεις εκδόσεις, µια κανονική έκδοση και µια µικρότερη έκδοση.
Επισήµως, οι σχεδιαστές του XAMPP το προόριζαν για χρήση µόνο ως εργαλείο ανάπτυξης,
για να επιτρέπουν στους σχεδιαστές ιστοσελίδας και τους προγραµµατιστές να δοκιµάσουν τις
εργασίες τους στους δικούς τους υπολογιστές χωρίς καµία πρόσβαση στο Internet. Για να γίνει αυτό
όσο το δυνατόν ευκολότερο, πολλά σηµαντικά χαρακτηριστικά ασφαλείας είναι απενεργοποιηµένα
από προεπιλογή. Στην πράξη, όµως, το XAMPP µερικές φορές χρησιµοποιείται για να εξυπηρετήσει
πραγµατικές ιστοσελίδες σχετικά µε το World Wide Web. Ένα ειδικό εργαλείο που παρέχεται για να
προστατέψετε τα πιο σηµαντικά µέρη του πακέτου µε κωδικό πρόσβασης. Το XAMPP παρέχει επίσης
υποστήριξη για τη δηµιουργία και το χειρισµό βάσεων δεδοµένων MySQL και SQLite, µεταξύ άλλων.
Μόλις το XAMPP είναι εγκατεστηµένο µπορείτε να µεταχειριστείτε τον localhost σας όπως ένα
αποµακρυσµένο υπολογιστή χρησιµοποιώντας ένα FTP client. Χρησιµοποιώντας ένα πρόγραµµα
όπως FileZilla έχετε πολλά πλεονεκτήµατα κατά την εγκατάσταση ενός συστήµατος διαχείρισης
περιεχοµένου (CMS) όπως το Joomla. Μπορείτε επίσης να συνδεθείτε στο localhost µέσω FTP µε το
πρόγραµµα επεξεργασίας HTML.
Η προεπιλογή FTP χρήστη "newuser", η default FTP password είναι "wampp".
Η προεπιλογή MySQL χρήστης "root" δεν υπάρχει καµία προεπιλογή MySQL κωδικό πρόσβασης.
31
Εφόσον έχουµε εγκαταστήσει το XAMPP στον υπολογιστή µας, από το Start Control Panel
πατάµε το κουµπί Start και περιµένουµε να γίνει πράσινο στον Apache και στην MySql.
Εικόνα 15 – Start XAMPP
Επόµενο βήµα είναι να ανοίξουµε τον browser και να πληκτρολογήσουµε το url:
http://localhost/xampp/
Εικόνα 16 – Localhost in XAMPP
Έπειτα, επιλέγουµε από το αριστερό µέρος της σελίδας την επιλογή PhpMyAdmin.
32
Εικόνα 17 - PhPMyAdmin
Μας εµφανίζεται η σελίδα δηµιουργίας µιας βάσης δεδοµένων.
δεδοµένων
Εικόνα 18 – Αρχική σελίδα Βάσης ∆εδοµένων
Πλέον µπορούµε να φτιάξουµε την δική µας βάση γράφοντας ένα όνοµα και βάζοντας την σύνθεση
που επιθυµούµε.
33
Εικόνα 19 – ∆ηµιοργία Βάσης ∆εδοµένων
Αριστερά της σελίδας υπάρχουν αποθηκευµένες οι βάσεις δεδοµένων που έχουµε ήδη δηµιουργήσει
δηµιουργήσει.
Εικόνα 20 – Υπάρχουσες Βάσεις
Αφού δηµιουργήσουµε την βάση ή ανακτήσουµε µια που έχουµε ήδη φτιάξει “πατώντας
“πατώντας”
πατώντας πάνω της
της,
µπορούµε να εισαγάγουµε
εισαγάγουµε, να εξαγάγουµε και γενικά να διαχειριστούµε τα στοιχεία που περιέχει
µέσα η βάση και πατάµε Εκτέλεση για να καταχωρηθεί στην βάση.
34
Εικόνα 21 – Πίνακες Βάσης
Αφού καταχωρηθούν οι πίνακες και τα στοιχεία τους στην βάση, πλεόν είµαστε έτοιµοι να την
χρησιµοποιήσουµε στην εργασία µας.
3. ΣΧΕ∆ΙΟ ∆ΡΑΣΗΣ ΓΙΑ ΤΗΝ ΕΚΠΟΝΗΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ
3.1 State of the Art
3.1.1 Ελεύθερο Λογισµικό
Το λογισµικό, ξεκινά την ζωή του ως ένας µακροσκελής κατάλογος από προτάσεις, σε µια
λίγο-πολύ κωδικοποιηµένη µορφή βασισµένη στην αγγλική γλώσσα. Φαντάζοµαι ότι ο παραπάνω
ορισµός δεν φωτίζει ιδιαίτερα το θέµα αλλά ένα παράδειγµα µάλλον θα είναι αρκετό. Ορίστε λοιπόν
µια λίστα µε αναλυτικές οδηγίες για να βρείτε την έξοδο σας από έναν δαιδαλώδη λαβύρινθο
γραµµένη µε στυλ που µοιάζει µε τον πηγαίο κώδικα ενός προγράµµατος:
AHEAD 5 STEPS
TURN 90 DEGREES CLOCKWISE
$StepsToWalk=10
AHEAD $StepsToWalk STEPS /* at this point we should have reached a door */
TURN KNOB 180 DEGREES CLOCKWISE
WAIT
DOING NOTHING
UNTIL DOOR OPENS
CROSS DOOR
TURN -90 DEGREES CLOCKWISE...
Είναι φανερό πως οι προτάσεις αυτές αποτελούνται µεν από συνηθισµένα γράµµατα, αριθµούς
35
και λίγα µαθηµατικά κυρίως σύµβολα αλλά οι λέξεις και η σύνταξη θυµίζει περισσότερο κάποια
περίεργη διασταύρωση αγγλικών και άλγεβρας. Και µπορεί το παράδειγµα µας να µοιάζει λίγο-πολύ
κατανοητό αλλά στην περίπτωση ενός περίπλοκου προγράµµατος τα πράγµατα είναι σαφώς πιο...
στρυφνά. Ευτυχώς µε την προσθήκη σχολίων και αρκετής εµπειρίας το τελικό αποτέλεσµα είναι
τελικά κατανοητό στους προγραµµατιστές και ονοµάζεται πηγαίος κώδικας (source code). Οι
προγραµµατιστές αναπτύσσουν λογισµικό δουλεύοντας σχεδόν αποκλειστικά σε αυτήν τη µορφή τον
πηγαίο κώδικα. Στην συνέχεια ο πηγαίος κώδικας µπορεί να δοθεί ως είναι στον Η/Υ για άµεση
εκτέλεση αλλά η ταχύτητα δεν θα είναι η µέγιστη δυνατή. Για να επιτύχουµε την µέγιστη ταχύτητα ο
πηγαίος κώδικας περνά από ένα ειδικό πρόγραµµα. Αυτό τον απογυµνώνει από καθετί περιττό ενώ
επίσης συµπυκνώνει την ουσία του σε µία νέα µορφή την οποία ο Η/Υ µπορεί να εκτελέσει χωρίς
καµιά ενδιάµεση µετατροπή - δηλαδή γρήγορα. Η µορφή αυτή καλείται object code ή εκτελέσιµος
κώδικας. Λόγο της απογύµνωσης και της συµπύκνωσης ο εκτελέσιµος κώδικας είναι αδύνατον να
µετατραπεί µε αυτόµατο τρόπο στην αρχική µορφή πηγαίου κώδικα χωρίς να χαθούν πολλές και
σηµαντικές πληροφορίες. Αν ένας προγραµµατιστής είναι αναγκασµένος να εργαστεί µόνο µε τον
εκτελέσιµο κώδικα και εφόσον έχει την σχετική εµπειρία ίσως να καταφέρει να εργαστεί αλλά η
πορεία του θα είναι και εξαιρετικά επίπονη και εξαιρετικά αργή. Για την ακρίβεια το επίπεδο
δυσκολίας και καθυστέρησης είναι τέτοιο που οτιδήποτε πέραν από απλές αλλαγές καθίσταται
αδύνατο. Από όλες τις παραπάνω λεπτοµέρειες πρέπει να θυµάστε πως το λογισµικό µπορεί να
προσφερθεί σε δυο µορφές: Ως πηγαίος κώδικας και ως εκτελέσιµος κώδικας. Αντίθετα από τον
πηγαίο κώδικα, εκτελέσιµος κώδικας ∆ΕΝ επιτρέπει ούτε εις βάθος µελέτη ούτε την πραγµατοποίηση
ουσιαστικών αλλαγών και βελτιώσεων.
3.1.2 Πλεονεκτήµατα Ελεύθερου Λογισµικού
Με την ανάπτυξη του Internet οι προγραµµατιστές που συνειδητοποιούσαν τους περιορισµούς
του ιδιόκτητου λογισµικού µπόρεσαν να έρθουν εύκολα σε επαφή και αναζήτησαν µια µέθοδο
ανάπτυξης, διάθεσης και χρήσης λογισµικού που θα τους έδινε µεγαλύτερη ελευθερία. Το αποτέλεσµα
ήταν αφενός η ωρίµανση µεθόδων συνεργασιακής ανάπτυξης και ελεύθερης διάθεσης λογισµικού το
οποίο φτάνει στους χρήστες του µε ελάχιστους περιορισµούς και αφετέρου µια αυξανόµενη συλλογή
από τα προϊόντα αυτής της µεθόδου, δηλαδή το Ελεύθερο Λογισµικό / Λογισµικό Ανοικτού Κώδικα.Οι
προγραµµατιστές ΕΛ/ΛΑΚ δραστηριοποιούνται φυσικά εντός του νοµικού πλαισίου περί πνευµατική
ιδιοκτησίας που αναφέραµε. Ως εκ τούτου µπορούν να παραχωρήσουν το προϊόν της δουλειάς τους
διαθέτοντας στους ενδιαφερόµενους µια άδεια χρήσης. Σχετικά πρόχειρα αυτό που διαφοροποιεί το
ΕΛ/ΛΑΚ από το ιδιόκτητο λογισµικό είναι η άδεια χρήσης βάση της οποίας διατίθεται. Το ΕΛ/ΛΑΚ
διατίθεται µε µία άδεια χρήσης που παρέχει στον χρήστη του σχεδόν όλα τα δικαιώµατα που
απολαµβάνει και ο ίδιος ο δηµιουργός: συµπεριλαµβάνονται τα δικαιώµατα χρήσης για κάθε σκοπό,
αντιγραφής, διάθεσης σε τρίτους και το δικαίωµα της τροποποίησης για τη δηµιουργία παράγωγου
λογισµικού. Η διάθεση του πηγαίου κώδικα είναι προαπαιτούµενη ώστε να µπορεί ο αποδέκτης να
µελετήσει και να µετατρέψει το λογισµικό (επειδή όπως αναφέραµε ένας προγραµµατιστής µπορεί να
µελετήσει αποδοτικά και να κάνει ουσιαστικές τροποποιήσεις στο λογισµικό µόνο στην µορφή
πηγαίου κώδικα). Η δυνατότητα της µελέτης και της µετατροπής του πηγαίου κώδικα ενέπνευσε όπως
είναι προφανές την ονοµασία "Open Source Software" που στα ελληνικά θα µπορούσε να αποδοθεί µε
ακρίβεια ως "λογισµικό ανοιχτού πηγαίου κώδικα" αλλά που χάριν συντοµίας αποδίδεται ως
"Λογισµικό Ανοικτού Κώδικα (ΛΑΚ)". Το δε γεγονός ότι ο αποδέκτης είναι ελεύθερος να αξιοποιήσει
το λογισµικό σχεδόν µε κάθε τρόπο ενέπνευσε την ονοµασία "Ελεύθερο Λογισµικό (ΕΛ)".
Σε αυτό το σηµείο και πριν δούµε πιο λεπτοµερώς τι πρέπει να ισχύει ώστε ένα λογισµικό να
θεωρείται αυτό ΕΛ/ΛΑΚ έχουµε την ευκαιρία να διαλευκάνουµε γιατί η ονοµασία είναι µία αλλά
36
διπλή: Η ονοµασία "Ελεύθερο Λογισµικό / Λογισµικό Ανοικτού Κώδικα" είναι λοιπόν διπλή διότι
αφορά σε δύο τυπικά ξεχωριστούς ορισµούς και είναι µία διότι οι δύο αυτοί ορισµοί στην συντριπτική
πλειοψηφία των περιπτώσεων περιγράφουν το ίδιο αντικείµενο! Η διατύπωση αυτή θυµίζει λίγο...
σοφιστική οπότε ας εξηγήσουµε λίγο καλύτερα τι συµβαίνει: Η ανάπτυξη του ΕΛ/ΛΑΚ είναι µια
πρόσφατη τεχνική, οικονοµική και κοινωνική εξέλιξη (2 µε 3 δεκαετίες) και αρκετές λεπτοµέρειες
είναι ακόµα ρευστές. Υπάρχουν δύο φορείς που έχουν σφραγίσει µε τις επιλογές τους αυτή την
εξέλιξη. Η προσέγγιση τους εκπροσωπεί τους περισσότερους συµµετέχοντες. Πρόκειται για το Free
Software Foundation (FSF) και το Open Source Initiative (OSI). Οι δύο φορείς είτε συµφωνούν είτε
συγκλίνουν έντονα σε πάρα πολλά σηµαντικά, πρακτικά και λειτουργικά ζητήµατα. Για παράδειγµα,
συγκλίνουν σχεδόν απόλυτα ως προς το τι πρέπει να ισχύει για να είναι ένα πρόγραµµα ΕΛ/ΛΑΚ
(παρότι το περιγράφουν µε διαφορετική γλώσσα!). Από την άλλη όµως, διαφωνούν σε διάφορα
ιδεολογικά ζητήµατα. Ίσως η βασικότερη ιδεολογική διαφορά είναι πως το FSF θεωρεί το µηελεύθερο λογισµικό κοινωνικό πρόβληµα που πρέπει να λυθεί ενώ το OSΙ το θεωρεί απλά µια µη
ιδανική µέθοδο ανάπτυξης λογισµικού [Β∆][ΑΠ∆]. Επίσης οι δύο φορείς διαφέρουν ορισµένες φορές
σε επιλογές όπως η πολιτική προώθησης του ΕΛ/ΛΑΚ.
Ακολουθεί σε ελεύθερη (αλλά όσο γίνεται προσεκτική) απόδοση το τι θεωρεί σηµαντικό ο κάθε
φορέας για να χαρακτηρίσει ένα λογισµικό ΕΛ/ΛΑΚ (για την ακρίβεια ΕΛ ή ΛΑΚ αντίστοιχα)
Το Free Software Foundation ονοµάζει ένα πρόγραµµα Ελεύθερο Λογισµικό αν η άδεια χρήσης
διασφαλίζει τις παρακάτω τέσσερις ελευθερίες για τον αποδέκτη του:
• Την ελευθερία να εκτελέσουν το πρόγραµµα για οποιονδήποτε σκοπό
• Την ελευθερία να µελετήσουν τον τρόπο λειτουργίας του προγράµµατος και να το
προσαρµόσουν στις ανάγκες τους (η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για
αυτό)
• Την ελευθερία να αναδιανέµουν αντίγραφα του προγράµµατος ώστε να βοηθήσούν το
συνάνθρωπο τους.
• Την ελευθερία να βελτιώσούν το πρόγραµµα και να διανείµουν τις βελτιώσεις που έχουν κάνει
στο ευρύ κοινό, ώστε να επωφεληθεί ολόκληρη η κοινότητα (η πρόσβαση στον κώδικα είναι
προϋπόθεση για αυτό)
Το δε Open Source Initiative ονµάζει Λογισµικό Ανοιχτού Κώδικα αν η άδεια χρήσης παρέχει τα
παρακάτω δικαιώµατα στον αποδέκτη του:
• Το δικαίωµα οποιουδήποτε να κάνει χρήση του λογισµικού για οποιοδήποτε σκοπό
• Το δικαίωµα να παραλαµβάνει τον πηγαίο κώδικα του λογισµικού και το δικαίωµα να
τροποποιεί του λογισµικό
• Το δικαίωµα να αναδιανέµει το πρωτότυπο λογισµικό ή κάθε άλλο που προέκυψε από
µετατροπή του πρωτότυπου (είτε επί αµοιβή είτε δωρεάν)
• Το δικαίωµα να αποκτήσει το λογισµικό χωρίς να καταβάλει κάποιο αντίτιµο.
Και οι δύο ορισµοί αφήνουν περιθώρια για την δηµιουργία µιας πληθώρας αδειών χρήσης αλλά είναι
επίσης φανερό πως συγκλίνουν εντονότατα. Αυτός ακριβώς είναι και ο λόγος που είναι τόσο δύσκολο
µία άδεια χρήσης να καλύπτει µόνο τις απαιτήσεις του ενός φορέα και όχι του άλλου [∆∆]. Στην
πράξη οι άδειες που καλύπτουν τις απαιτήσεις ενός και µόνο από τους δυο ορισµούς είναι ακόµα
σπανιότερες διότι παρά τις όποιες διαφορές, υπάρχει αρκετή συγκατάβαση µεταξύ των ανθρώπων που
εστερνίζοντε την φιλοσοφία του κάθε ενός από τους δύο φορείς ώστε οι περισσότεροι να κατακρίνουν
την χρήση τέτοιων αδειών.[todo: ξέρει κανείς παράδειγµα;] Εν τέλη ο όρος ΕΛ/ΛΑΚ είναι
κατάλληλος για το 99% του λογισµικού που είναι είτε Ελεύθερο είτε Ανοικτού κώδικα και για αυτό
είναι και αρκετά διαδεδοµένος.
37
3.1.3 NetBeans
Το NetBeans είναι ένα επιτυχηµένο ερευνητικό έργο ανοιχτής πηγής (open source) µε µεγάλο
αριθµό χρηστών, µια αναπτυσσόµενη κοινωνία, κοντά στους 100 συνεργάτες παγκοσµίως. Η Sun
Microsystems ίδρυσε το ερευνητικό έργο ανοιχτής πηγής NetBeans τον Ιούνιο του 2000 και συνεχίζει
να είναι ο κύριος ανάδοχος.
Σήµερα δύο ερευνητικά έργα υπάρχουν: Το NetBeans IDE και το NetBeans Platform.
Tο NetBeans IDE είναι ένα περιβαλλοντικό ανάπτυγµα IDE - ένα εργαλείο στους
προγραµµατιστές για να γράψουν, να κάνουν compile, debug και να αναπτύξουν προγράµµατα.
Είναι γραµµένο σε Java - αλλά µπορεί να υποστηρίξει όλες τις γλώσσες προγραµµατισµού.
Υπάρχει επίσης ένας µεγάλος αριθµός υποµονάδων (modules) που βοηθάνε στην επέκταση της
λειτουργικότητας του NetBeans IDE. To NetBeans IDE είναι ένα ελεύθερο προιόν δίχως περιορισµούς
στον τρόπο χρησιµοποίησής του. ∆ιαθέσιµο επίσης είναι το NetBeans Platform, ένα εκτατό θεµέλιο
αποτελούµενο από υποµονάδες (modular) που χρησιµοποιείται σαν βάση λογισµικού για τη
δηµιουργία µεγάλων επιτραπέζιων (desktop) εφαρµογών. Οι ISV συνεργάτες διαθέτουν προσθήκες,
επιπρόσθετα προγράµµατα (plug-ins) που εύκολα συνενώνονται στο Platform και µπορούν επίσης να
χρησιµοποιηθούν για την ανάπτυξη άλλων εργαλίων και λύσεων. Και τα δύο τα προιόντα είναι
ανοιχτής πηγής (open source) και ελεύθερα για εµπορική ή µη χρήση. Ο κώδικας πηγής (source code)
είναι διαθέσιµος για επαναχρησιµοποίηση κάτω από το Common Development and Distribution
License(CDDL). Το πρόγραµµα NetBeans αναφέρεται τόσο στο πλαίσιο πλατφόρµας για εφαρµογές
Java desktop, όσο και σε ένα ολοκληρωµένο περιβάλλον ανάπτυξης (IDE) για την ανάπτυξη µε Java,
JavaScript, PHP, Python, Ruby, Groovy, C, C + +, Scala,Clojureκαιάλλα.
Το NetBeans IDE είναι γραµµένο σε Java και µπορεί να τρέξει σε οποιοδήποτε σηµείο ενός JVM που
είναι εγκατεστηµένο, συµπεριλαµβανοµένων των Windows, Mac OS, Linux και Solaris. Μια JDK
είναι απαραίτητη για τη λειτουργία ανάπτυξης της Java, αλλά δεν απαιτείται για την ανάπτυξη σε
άλλες γλώσσες προγραµµατισµού.Η πλατφόρµα NetBeans επιτρέπει στις εφαρµογές που θα
αναπτυχθούν αρθρωτά στοιχεία λογισµικού που ονοµάζονται ενότητες. Οι αιτήσεις που βασίζονται
στην πλατφόρµα NetBeans (συµπεριλαµβανοµένου του NetBeans IDE) µπορούν να παραταθούν µε
τρίτου τύπου προγραµµατιστές. Το NetBeans Platform είναι µία επαναχρησιµοποιήσιµη πλατφόρµα
για την απλούστευση της ανάπτυξης εφαρµογών Java desktop Swing. Το NetBeans IDE πακέτο για
την Java SE περιέχει ό, τι χρειάζεται για να αρχίσει να αναπτύσσει NetBeans plugins και το NetBeans
Platform εφαρµογές που βασίζονται. Συµπληρωµατική SDK δεν είναι απαραίτητη. Η πλατφόρµα
προσφέρει επαναχρησιµοποιήσιµες υπηρεσίες κοινές για τις εφαρµογές γραφείου, επιτρέποντας στους
προγραµµατιστές να επικεντρώνονται στην λογική ειδικά για την εφαρµογή τους.
38
Ανάµεσα στα χαρακτηριστικά της πλατφόρµας,είναι:
1. Χρήστης διαχείριση διεπαφής (π.χ. µενού και γραµµές εργαλείων)
2. Χρήστης διαχείριση των ρυθµίσεων
3. Αποθήκευση διαχείριση (αποθήκευση και φόρτωση οποιουδήποτε είδους δεδοµένα)
4.Παράθυρο διαχείριση
5.Οδηγός πλαισίου (υποστηρίζει βήµα-βήµα διαλόγους)
6. NetBeans Visual Βιβλιοθήκη
7. Ολοκληρωµένα Εργαλεία ανάπτυξης
3.1.4 Χρήση της πλατφόρµας NetBeans
Η πλατφόρµα NetBeans παρέχει πολλές κατηγορίες πάνω στις οποίες µπορεί ο χρήστης να
προγραµµατίσει. Από τα πρώτα βήµατα που πρέπει να κάνει ο χρήστης στην πλατφόρµα, είναι να
επιλέξει ποια κατηγορία του χρειάζεται.
Εικόνα 22 – ∆ηµιουργία Project σε NetBeans
Στην συνέχεια, αφού έχουµε επιλέξει κατηγορία και το όνοµα του project, εµφανίζεται στην οθόνη η
πλατφόρµα στην οποία θα γράψουµε τον κώδικά µας. Κάθε project έχει κάποια χαρακτηριστικά, όπως
πχ το όνοµα, τα αρχεία που θα αποθηκευτούν στον υποφάκελο source package αλλά και την
βιβλιοθήκη (Libraries) όπου βρίσκονται αποθηκευµένα όλα τα εργαλεία που θα χρησιµοποιήσουµε για
να διευκολυνθούµε ως χρήστες.
39
Εικόνα 23 – Χαρακτηριστικά ενός Project
Ένα πλεονέκτηµα του προγράµµατος αυτού είναι ότι παρέχει την δυνατότητα στον χρήστη να
προσθέσει και ο ίδιος εξωτερικές βιβλιοθήκες, σε περίπτωση που χρειάζεται κάποιο εργαλείο που δεν
προυπάρχει στην πλατφόρµα.
Εικόνα 24 – Περιεχόµενα Libraries
Το πρόγραµµα NetBeans δίνει την δυνατότητα στον χρήστη αφού γράψει τον κώδικα να κάνει
compile για την διόρθωση τυχόν λαθών και στην συνέχεια να 'τρέξει' το πρόγραµµα. Στην παρακάτω
εικόνα βλέπουµε ότι αριστερά υπάρχουν αποθηκευµένα όλα τα project που έχουµε δηµιουργήσει στο
παρελθόν, στην κάτω αριστερή µεριά φαίνονται οι µεταβλητές που έχουµε χρησιµοποιήσει σε κάθε
project. Στην κάτω πλευρά του προγράµµατος είναι η έξοδος που έχει ο εκάστοτε κώδικας που έχουµε
γράψει, εάν φυσικά δεν έχουµε γράψει στον κώδικα ότι θέλουµε η έξοδος να είναι σε κάποιο γραφικό
περιβάλλον. Τέλος, στην πάνω πλευρά έχουµε όλα τα κουµπιά για compile, build, build and clean και
run.
40
Εικόνα 25 – Πάράδειγµα Project σε NetBeans
Ένα άλλο πλεονέκτηµα της πλατφόρµας αυτής είναι ότι µπορεί ο χρήστης να κάνει download
τα plugin του uml (unified modeling language) και να φτιάξει το δικό του uml
Εικόνα 26 – Εργαλεία NetBeans
Αφού εγκαταστήσουµε τα plugin µπορούµε πλεόν να κάνουµε χρήση του uml κάνοντας την
ίδια διαδικασία µε την αρχική για να δηµιουργήσουµε το project µας, δηλαδή επιλέγουµε την
κατηγορία uml και δίνουµε όνοµα. Στην συνέχεια, µε δεξί κλικ πάνω στο όνοµα του uml -> New και
επιλέγουµε ποιο ακριβώς κοµµάτι του uml χρειαζόµαστε την συγκεκριµένη στιγµή (diagram, package,
element).
41
Εικόνα 27 – ∆ηµιουργία UML
Μια άλλη χρησιµότητα του προγράµµατος αυτού είναι ότι µπορεί ο χρήστης να δηµιουργήσει
εφαρµογή σε όποια κατηγορία και να επιλέξει, µέσα από το γραφικό περιβάλλον που παρέχει το
NetBeans. Για να εµφανίσει όµως η πλατφόρµα την οθόνη του γραφικού περιβάλλοντος πρέπει ο
χρήστης να πάει πάλι στην αρχή του προγράµµατος και να επιλέξει το application project από την
κατηγορία που επιθυµεί.
Εικόνα 28 – ∆ηµιουργία Project σε Java
42
Το παράθυρο που εµφανίζεται είναι το παρακάτω. Ο χρήστης έχει πλέον την δυνατότητα να
δηµιουργήσει την δική του εφαρµογή. Στην δεξιά µεριά του παραθύρου υπάρχουν όλα τα απαραίτητα
εργαλεία που χρειάζεται ο χρήστης για την εφαρµογή του. Κάτω αριστερά υπάρχει ένα µικρό
παράθυρο όπου εµφανίζει όλα τα 'εξαρτήµατα' που έχουν χρησιµοποηθεί στην εφαρµογή
3.1.5 Λόγοι Επιλογής NetBeans
Το NetBeans προσφέρει ολοκληρωµένο περιβάλλον ανάπτυξης (IDE). Το NetBeans IDE
µπορεί να ενισχύσει την παραγωγικότητά σας όταν εργάζεστε µε Java SE, της Java EE, ή Java ME
τεχνολογία καθώς και PHP, Groovy, JavaScript, και C / C + +. Visual εργαλεία που δηµιουργούν
κώδικα σκελετό είναι επίσης διαθέσιµα, επιτρέποντάς σας να δηµιουργήσετε µια βασική εφαρµογή,
χωρίς να γράψετε ούτε µία γραµµή κώδικα.
Εδώ είναι οι κυριότεροι λόγοι χρήσης του NetBeans IDE:
1. Έργα Out of the Box - Απλά κατεβάστε και εγκαταστήστε το NetBeans IDE και είστε καλοί να πάτε.
Η εγκατάσταση είναι ένα αεράκι µε το µικρό µέγεθος λήψης του. Όλα τα εργαλεία IDE και διαθέτει
πλήρως ενσωµατωµένη-δεν χρειάζεται να κυνηγούν για plug-ins, και συνεργάζονται στενά, όταν
ξεκινήσει το IDE.
2. Ελεύθερη και Ανοικτού Κώδικα - Όταν χρησιµοποιείτε το NetBeans IDE, θα ενταχθούν σε µια
ζωντανή, open-source κοινότητα χιλιάδων χρηστών έτοιµοι να βοηθήσουν και να συµβάλουν.
Υπάρχουν συζητήσεις για το NetBeans λίστες αλληλογραφίας blogs, σε PlanetNetBeans, και χρήσιµες
συχνές ερωτήσεις.
43
3. συνδεδεµένο Developer - Το NetBeans IDE είναι το εργαλείο της επιλογής για τις οµάδες που
εργάζονται σε ένα συνεργατικό περιβάλλον. Μπορείτε να δηµιουργήσετε και να διαχειριστείτε
java.net-έργα που φιλοξενούνται, για παράδειγµα? Εκθέσεις παρακολούθησης αρχείο το ζήτηµα µε τα
δύο Jira και Bugzilla, και να συνεργάζονται µε τους οµοϊδεάτες προγραµµατιστές-όλα απευθείας από
το οικείο περιβάλλον του IDE.
4. Ισχυρή GUI Builder - Η GUI Builder (παλαιότερα γνωστό ως Έργο Matisse) υποστηρίζει µια
σοφιστικέ αλλά απλοποιηµένο πλαίσιο εφαρµογής Swing και Φασόλια δεσµευτική. Τώρα µπορείτε να
χτίσετε GUIs µε φυσικό τρόπο.
5. Υποστήριξη για Java προτύπων και πλατφορµών -Το IDE παρέχει end-to-end λύσεις για όλες τις
πλατφόρµες ανάπτυξης Java καθώς τα πιο σύγχρονα πρότυπα Java. Java Κινητικότητα Υποστήριξη
πλήρες περιβάλλον για τη δηµιουργία, τη δοκιµή και την εκτέλεση εφαρµογών για κινητές συσκευές.
Με προεπεξεργαστή µπλοκ, µπορείτε να χειριστείτε εύκολα θέµατα κατακερµατισµού. Υποστήριξη
για την ανάπτυξη Java κινητικότητα είναι το καλύτερο µεταξύ όλων των εργαλείων ανάπτυξης Java.
Java Enterprise Edition (EE) 6 υποστήριξη: Το πρώτο δωρεάν, ανοιχτού κώδικα IDE για την
υποστήριξη της Java EE 6 προδιαγραφές. Java Standard Edition (SE) Υποστήριξη: Μπορείτε να
αναπτύξουν εφαρµογές που χρησιµοποιούν τις πιο πρόσφατες προδιαγραφές Java SE.
6. Ο χαρακτηρισµός και Debugging Tools - Με το NetBeans IDE profiler, έχετε σε πραγµατικό χρόνο
εικόνα για τη χρήση της µνήµης και των δυνητικών προβληµάτων απόδοσης. Επιπλέον, µπορείτε να
κάνετε πράξη συγκεκριµένα τµήµατα του κώδικα για να αποφευχθεί η υποβάθµιση των επιδόσεων
κατά τη διάρκεια της προφίλ. Το εργαλείο HeapWalker σας βοηθά να αξιολογούν το περιεχόµενο Java
σωρού και να βρουν τις διαρροές µνήµης.
7. ∆υναµική Υποστήριξη ξένων γλωσσών - Το NetBeans IDE παρέχει ολοκληρωµένη υποστήριξη για
scripting γλώσσες, όπως η PHP, Groovy, και JavaScript.
PHP: Με το NetBeans IDE για PHP, µπορείτε να πάρετε το καλύτερο και των δύο κόσµων:
την παραγωγικότητα της IDE (ολοκλήρωση κώδικα, σε πραγµατικό χρόνο έλεγχο σφαλµάτων,
διόρθωσης σφαλµάτων και περισσότερο) µε την ταχύτητα και την απλότητα του αγαπηµένου σας
επεξεργαστή κειµένου σε ένα λιγότερο από 30MB download.
JavaScript: Το NetBeans IDE έχει τα εργαλεία JavaScript χρειάζεστε: ένα έξυπνο επεξεργαστή
JavaScript, CSS / HTML ολοκλήρωση κώδικα, τη δυνατότητα εντοπισµού σφαλµάτων JavaScript
στον Firefox και IE, και η συνδυασµένη υπηρεσία δηµοφιλείς βιβλιοθήκες JavaScript. Αγαπηµένες
σας πλαίσιο JavaScript θα σας πάρει 80% από το δρόµο, το NetBeans IDE, θα σας βοηθήσει µε το
τελευταίο 20%.
Groovy: Στο NetBeans IDE, µπορείτε να δηµιουργήσετε τώρα ∆ισκοπότηρα εφαρµογές,
ενσωµατώνουν Groovy σενάρια µε το έργο JavaSE σας.
8. επεκτάσιµη πλατφόρµα - Ξεκινήστε µε επεκτάσιµη πλατφόρµα της και να προσθέσετε τις δικές σας
δυνατότητες NetBeans IDE και επεκτάσεις ή να χτίσετε ένα IDE που µοιάζει µε την εφαρµογή,
κρατώντας µόνο τα χαρακτηριστικά που θέλετε. Η επέκταση της πλατφόρµας και Swing µε βάση την
ίδρυσή του εξοικονοµεί χρόνο ανάπτυξης και µπορούν να βελτιστοποιήσουν την απόδοση.
9. Προσαρµοζόµενα Έργα - Μέσω του NetBeans IDE διαδικασία κατασκευής, το οποίο βασίζεται σε
βιοµηχανικά πρότυπα, όπως Apache Ant, κάνει, Maven, και γκανιότα, όχι µια ιδιόκτητη διαδικασία
κατασκευής, µπορείτε να προσαρµόσετε εύκολα τα σχέδια και να προσθέσετε λειτουργικότητα.
Μπορείτε να κατασκευάσουν, να λειτουργήσουν, και να αναπτύξετε σχέδια για διακοµιστές εκτός του
IDE.
10. Μη Υποστήριξη Java Code - ∆εν περιορίζεστε στη γλώσσα προγραµµατισµού Java. Μπορείτε να
συµπεριλάβετε πολλές άλλες γλώσσες προγραµµατισµού, όπως C / C + +, scripting γλώσσες, όπως η
44
JavaScript, κλπ. Ακόµα πιο συναρπαστικό, να καθορίζει τη δική σας γλώσσα και να συµπεριληφθεί
στα έργα σας.
11. Αφιερωµένο στήριξη που διατίθεται - Όταν δεν µπορείτε να πάρετε τη βοήθεια που χρειάζεστε από
την κοινότητα, θεωρούν πακέτα στήριξης για προγραµµατιστές, τα οποία προσφέρουν συµβουλές
προγραµµατισµού, υποστήριξη λογισµικού, και οι πιστώσεις εκπαίδευσης.
3.1.6 MySQL
SQL είναι τα αρχικά της αγγλικής ονοµασίας (Structured Query Language) η οποία στην
ελληνική ορολογία µεταφράζεται ως δοµηµένη γλώσσα αναζήτησης. Συνοπτικά µε την SQL µπορούµε
να έχουµε πρόσβαση σε µια βάση δεδοµένων, να εκτελούµε αναζητήσεις µε κριτήρια, να εισάγουµε
νέα δεδοµένα, να διαγράψουµε υπάρχοντα δεδοµένα να κάνουµε αλλαγές σε υπάρχοντα δεδοµένα.
Αξίζει να σηµειωθεί ότι η SQL είναι τυποποιηµένη από τον Αµερικανικό Ινστιτούτο Τυποποιήσεων
γνωστή και ως ANSI (American National Standards Institute) για την πρόσβαση και διαχείριση
βάσεων δεδοµένων. Εντολές SQL χρησιµοποιούνται για την εξαγωγή και ανανέωση δεδοµένων από
µια βάση δεδοµένων. Η SQL ακολουθείτε από τα πιο γνωστά προγράµµατα σχεσιακής βάσεις
δεδοµένων όπως MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase κτλπ.
∆υστυχώς, υπάρχει µεγάλος αριθµός διαφορετικών εκδόσεων της γλώσσας SQL αλλά
τουλάχιστον για να είναι εγκεκριµένη βασικές εντολές συναντιούνται σε όλες τις βάσεις δεδοµένων
όπως SELECT, UPDATE, DELETE, INSERT, WHERE, και άλλες).
3.1.7 Χρήση της MySQL
Παρακάτω θα δείξουµε συνοπτικά πώς µπορούµε ναχρησιµοποιήσουµε το γραφικό
περιβάλλον του εργαλείου MySQL Query Browser και MySQL Administrator για ορισµένες
διαδικασίες. Για περισσότερες και αναλυτικότερες πληροφορίες ανατρέξτε στα εγχειρίδια χρήσης των
προγραµµάτων.
Το πρόγραµµα MySQL Query Browser είναι ένα από τα εργαλεία (MySQL GUI Tools)
µε γραφικό περιβάλλον τα οποία διατίθενται για την MySQL στην διεύθυνση
http://dev.mysql.com/downloads/gui-tools/5.0.html . Θα πρέπει να τα κατεβάσετε
ξεχωριστά από την MySQL.
Τα εγχειρίδια χρήσης των MySQL GUI Tools βρίσκονται στην διεύθυνση
http://dev.mysql.com/doc/ .
45
Σύνδεση του Query Browser µε τον server
Εικόνα 29 – Username / Password MySQL
Παράδειγµα δηµιουργίας βάσης δεδοµένων
Για να δηµιουργήσουµε µια καινούργια βάση δεδοµένων κάνουµε δεξί κλικ στην καρτέλα
Schemata και επιλέγουµε Create New Schema. Ο όρος «σχήµα» στην ορολογία των
βάσεων δεδοµένων περιγράφει την δοµή της βάσης και των πινάκων που την αποτελούν.
Το σχήµα της νέας βάσης εµφανίζεται στην λίστα µε τα υπόλοπα σχήµατα. Για να
δηµιουργήσουµε πίνακες κάνουµε δεξλι κλικ στην βάση και επιλέγουµε Create New Table.
Σηµαντικό επίσης για την MySQL είναι η επιλογή της µηχανής αποθήκευσης και
διαχείρισης των πινάκων (storage engine). Η µηχανή αυτή έχει καθαρά εσωτερικό, ως
προς το πρόγραµµα, ρόλο και δεν είναι εξωτερικά παραµετροποιήσιµη. Η µόνη
δυνατότητα που µας δίνεται είναι η επιλογή µιας από τις ήδη υπάρχουσες. Η επιλογή αυτή
υπάρχει για να καλύπτει τις διαφορετικές ανάγκες που µπορεί να προκύπτουν από βάσεις
δεδοµένων διαφορετικών προδιαγραφών.
Εικόνα 30 – Create new Schema in MySQL
46
Από τις διαθέσιµες µηχανές, αυτή που δίνει την δυνατότητα δηµιουργίας ξένων κλειδιών είναι
η InnoDB την οποία και πρέπει να χρησιµοποιήσετε σε όλους τους πίνακες της βάσης. Αντίθετα, η
µηχανή MYISAM δεν υποστηρίζει την χρήση ξένων κλειδιών και δεν προτείνεται για χρήση.
Εικόνα 31 – Storage Engine
Παράδειγµα εισαγωγής στοιχείων στην βάση δεδοµένων
Για να µπορέσουµε να εισάγουµε χειροκίνητα, δίχως SQL, δεδοµένα στην βάση πρέπει
πρώτα να εµφανίσουµε τα περιεχόµενα ενός πίνακα.
1) Γράφουµε και εκτελούµε το ερώτηµα πατώντας το κουµπί Execute
2) Εφόσον ο πίνακας είναι άδειος δεν εµφανίζονται εγγραφές στην καρτέλα Resultset
3) Για να ενεργοποιηθεί η δυνατότητα επεξεργασίας των δεδοµένων πρέπει να
επιλέξουµε Edit
47
Εικόνα 32 – address book
Για να εισάγουµε δεδοµένα αλλάζοντας την τιµή των κελιών κάνουµε διπλό κλικι σε αυτά.
1.
Αν ένα πεδίο έχει auto increment τότε αν δεν του θέσουµε εµείς συγκεκριµένη τιµή, τότε µετά
την επεξεργασία αυτή τίθεται αυτόµατα. Σε δεδοµένα τα οποία έχουν την δυνατότητα να είναι NULL
µπορούµε να αφήσουµε την τιµή αυτή.
2.
Τα νέα δεδοµένα εµφανίζοντα µε πράσινο χρώµα, ενώ µε µωβ τα δεδοµένα τα οποία
προυπήρχαν αλλά τα µεταβάλλαµε.
3.
Για να επικυρωθούν οι αλλαγές επιλέγουµε Apply Changes. Στην αντίθετη περίπτωση
επιλέγουµε Discard.
Scripts - Τα scipts είναι ένας πολύ βολικός τρόπος για την διαχείριση ενός προγράµµατος. Η
χρήση των script µπορεί να γίνει τόσο από την γραµµή εντολών όσο και από τον MySQL
Query Browser. Αφού ανοίξουµε ένα script µπορούµε να το εκτελέσουµε είτε όλο µαζί είτε εντολήεντολή.
48
Εικόνα 33 – Κώδικας για δηµιουργία πίνακα
ΓΡΑΜΜΗ ΕΝΤΟΛΩΝ
Το εκτελέσιµο του MySQL client βρίσκεται στον φάκελο “φάκελος mysql server”/bin και το
εκτελούµε µε την εντολή : mysql -u root -p. Αν έχουµε δηµιουργήσει άλλον χρήστη αντί για root
χρησιµοποιούµε username .
Χρήσιµες εντολές:
?: εµφανίζει λίστα µε όλες τις εντολές της MySQL
SHOW DATABASES: Μας εµφανίζει λίστα µε τις βάσεις που υπάρχουν.
USE database_name: Αλλάζουµε την τρέχουσα βάση προς επεξεργασία στην
database_name.
SHOW TABLES: Μας εµφανίζει λίστα µε τους πίνακες της τρέχουσας βάσης.
QUIT ή \q: έξοδος από τον MySQL client.
49
Παράδειγµα χρήσης της γραµµής εντολών:
Εικόνα 34 - Παράδειγµα χρήσης της γραµµής εντολών
BACKUP KAI RESTORE
Για την δηµιουργία αντιγράφων ασφαλείας µπορεί να χρησιµοποιηθεί το GUI MySQL
Administrator.
Για την σύνδεση του MySQL Administrator µε τον server ακολουθείται η ίδια διαδικασία
µε τον MySQL Query Browser.
50
Επιλέγουµε από την αριστερή πλευρική στήλη την επιλογή Αντίγραφα ασφαλείας.
1) ∆ηµιουργούµε ένα νέο Έργο για ένα νέο αντίγραφο ασφαλείας
2) του δίνουµε όνοµα
3) επιλέγουµε την βάση δεδοµένων που θέλουµε να αποθηκεύσουµε
4) και τέλος δηµιουργούµε το αντίγραφο ασφαλείας.
Mε την αντίστροφη διαδικασία επαναφέρουµε ένα αντίγραφο ασφαλείας.
Εικόνα 35 - αντίγραφο ασφαλείας
Επιλέγουµε από την αριστερή πλευρική στήλη την επιλογή Αποκατάσταση Αντιγράφων.
1)
ανοίγουµε το αρχείο αντιγράφου ασφαλείας.
2)
Επιλέγουµε τις κατάλληλες παραµέτρους.
3)
Ξεκινάµε την αποκατάσταση.
51
Βοήθεια και Τεκµηρίωση των Προγραµµάτων
Tόσο το RDBMS MySQL όσο και τα εργαλεία µε γραφικό περιβάλλον έχουν εγχειρίδια, όπου
µπορείτε να ανατρέξετε για την χρήση τους. Η τεκµηρίωση αυτή βρίσκεται στο
http://dev.mysql.com/doc/. Εκεί θα βρείτε τόσο το εγχειρίδιο της MySQL (MySQL
Reference Manual) όσο και το εγχειρίδιο χρήσης των εργαλείων µε γραφικό περιβάλλον
(MySQL GUI Tools).
Επίσης στον δικτυακό τόπο της MySQL µπορείτε να βρείτε mailing lists
http://lists.mysql.com/
και forum http://forums.mysql.com/ .
3.1.8 Λόγοι Χρήσης των XAMPP και PLONK
Μετά από έρευνα µε τους υπόλοιπους φοιτητές της οµάδας, καταλήξαµε στο συµπέρασµα ότι
η πιο εύχρηστη πλατφόρµα που µπορούµε να χρησιµοποιήσουµε είναι το XAMPP. Αυτό συµβαίνει
κυριώς, επειδή το συγκεκριµένο λογισµικό υποστηρίζει όλα τα προγράµµατα που θέλουµε να
χρησιµοποιήσουµε, αλλά και µπορεί να φιλοξενήσει µια ιστοσελίδα χωρίς να είναι συνδεδεµένο στο
διαδίκτυο, δηλαδή σε localhost. Επίσης χρησιµοποιεί την βάση δεδοµένων MySQL για σύνδεση µε
την ιστοσελίδα και υπάρχουν συγκεκριµένα username και password που µπορούµε να
χρησιµοποιήσουµε για την είσοδό µας στην βάση (παντα όσο η σελίδα µας φιλοξενείται στον
localhost).
Όσον αφορά το framework PLONK, όπως έχουµε ήδη αναφέρει είναι µια δουλειά που
ξεκίνησε από την οµάδα του βελγίου, και παρόλο που ακόµα δεν έχει τελιοποιηθεί (π.χ σε θέµατα
ασφάλειας) είναι ήδη αρκετά λειτουργική και εύχρηστη.
3.2
Microsoft Project
Το Microsoft Project (MSP, MSOP ή WinProj) είναι ένα πρόγραµµα διαχείρισης έργων
λογισµικού, που αναπτύχθηκε και πωλείται από τη Microsoft, η οποία έχει σχεδιαστεί για να βοηθήσει
ένα διαχειριστή του έργου για την ανάπτυξη ενός σχεδίου, διαθέτει πόρους για τα καθήκοντα, την
παρακολούθηση της προόδου, τη διαχείριση του προϋπολογισµού, και την ανάλυση των φορτίων
εργασίας . Ήταν η τρίτη έκδοση της Microsoft που βασίζεται σε Windows εφαρµογή, και µέσα σε
δύο χρόνια από την εισαγωγή τους έγινε το κυρίαρχο PC-based λογισµικό διαχείρισης του έργου. Αν
και επώνυµα ως µέλος της οικογένειας του Microsoft Office, ποτέ δεν έχει συµπεριληφθεί σε κάποια
από τις οικογένειες προγραµµάτων του Office (όπως το Visio). Είναι διαθέσιµο σήµερα σε δύο
εκδόσεις, Standard και Professional. Αποκλειστική µορφή αρχείου MS Project είναι. MPP. Microsoft
Project και το Microsoft Project Server είναι οι ακρογωνιαίοι λίθοι του Microsoft Office Enterprise
Project Management (EPM).
52
3.2.1 Σηµαντικοί Στόχοι για την Εκπλήρωση της Πτυχιακής
Εικόνα 36 – Στόχοι Πτυχιακής
3.2.2 Προτεινόµενο Χρονοδιάγραµµα (Gantt Chart) Εργασίας
Εικόνα 37 – Gantt Chart
53
4. ΚΥΡΙΟ ΜΕΡΟΣ ΠΤΥΧΙΑΚΗΣ
4.1 Ανάλυση Προβλήµατος
4.1.1 Σύντοµη Περιγραφή του Προγράµµατος MUTW
Το Multinational Undergraduate Team Work (MUTW) είναι ένα πρόγραµµα που επιδοτείται
από την Ευρωπαική Ένωση και έχει ως σκοπό την συνεργασία µεταξύ διαφόρων χωρών για την
επιτυχή δηµιουργία ενός project. Απώτερος στόχος του προγράµµατος αυτού είναι η αύξηση των
δεξιοτήτων των φοιτητών, ενώ το πνεύµα επικοινωνίας και οµαδικότητας αποτελούν κινητήριο
δύναµη για την επίτευξη του στόχου αυτού.
Συνολικά 11 Πανεπιστήµια λαµβάνουν µέρος στην εργασία αυτή, κάθε Πανεπιστήµιο έχει δύο
φοιτητές που συµµετέχουν, και είµαστε χωρισµένοι σε δύο οµάδες, την Orange Team και την Blue
Team (εµείς ανήκουµε στην Orange Team). Κάθε οµάδα θα δηµιουργήσει την ιστοσελίδα όπως αυτή
νοµίζει, χρησιµοποιώντας συγκεκριµένα πρότυπα όπως την PHP για την σύνδεση µε το internet και
την SQL για βάση δεδοµένων, όµως το framework που θα χρησιµοποιηθεί για το design του site είναι
στην ευχέρεια της κάθε οµάδας.
Κάθε Πανεπιστήµιο έχει αναλάβει διαφορετικό τµήµα της εργασίας αυτής που πρέπει να φέρει
εις πέρας µέχρι την καταληκτική ηµεροµηνία, όπου θα γίνει και η παρουσίαση του τελικού project.
Κατά την διάρκεια των 4 αυτών µηνών, έγιναν εβδοµαδιαίες τακτικές συναντήσεις όπου συµµετείχαν
όλα τα µέλη της οµάδας και παρουσιάζαµε την πρόοδο που είχαµε πραγµατοποιήσει κατά την
διάρκεια της εκάστοτε εβδοµάδας, και συζητούσαµε για τα ζητήµατα που προέκυπταν ή τους τυχόν
προβληµατισµούς µας επί της εργασίας.
Οι συναντήσεις αυτές έγιναν µέσω του προγράµµατος Adobe Acrobat Connect Pro Meeting
που µας συνέστησαν οι καθηγητές- κριτές των Πανεπιστηµίων που συµµετέχουν, και για τα αρχεία
που χρειάστηκαν να “ανέβουν” σε ένα κοινό φάκελο που µοιραζόµασταν όλοι οι συµµετέχοντες
χρησιµοποιήθηκε το πρόγραµµα Sourceforge. Όλες οι συζητήσεις καταγράφηκαν, και στα αρχεία
είχαν πρόσβαση και οι καθηγητές. Με αυτά τα δεδοµένα,καθώς και την αρχική παρουσίαση του
προετεινόµενου timetable, αλλά και την παρουσίαση του τελικού project, οι καθηγητές- κριτές
απέδωσαν στη κάθε οµάδα την βαθµολογία που αναλογούσε.
4.1.2 Η Οµάδα µας (ORANGE TEAM)
Η οµάδα µας αποτελείται από 6 Πανεπιστήµια, δηλαδή 12 φοιτητές. Υπάρχουν συνολικά 8
διαφορετικά πακέτα που αποτελούν το project αυτό, και διανεµήθηκαν στους φοιτητές επί ίσοις όροις.
Παρακάτω παραθέτεται ο πίνακας µε την διανοµή των πακέτων, καθώς και ο µέγιστος αριθµός credits
που µπορεί να κερδίσει η κάθε οµάδα σύµφωνα µε τους κριτές.
54
Orange team
Package
Partner
ECTS
P1-CONFIG
P8-Kiel
12
P2-INFOX
P2-Gent
18
P3-ALERT
P7-Heraklion
20
P4-OUT
P9-Veliko Turnovo
15-20
P5-IN
P11-Reykjavik
6
P6-EXAM
P1-Porto
18
P7-MATCH
P8-STATS
Εικόνα 38 – Πακέτα ανά οµάδα
Παρακάτω παραθέτουµε λίγα λόγια για το κάθε πακέτο.
P1 - CONFIG, Πακέτο ∆ιαµόρφωσης (Configuration Package):
Το πακέτο αυτό είναι υπεύθυνο για την διαχείρηση του ErasmusLine. Όλα τα άλλα πακέτα
βασίζονται σε αυτό για την παροχή επικύρωσης και συνεκτικών στοιχείων που απαιτούνται για την
λειτουργία του συστήµατος. Το πακέτο αυτό διαχειρίζεται τους λογαριασµούς, τα προφίλ των
χρηστών, την αρχική σελίδα του site καθώς και το κύριο µενού.
55
P2 - INFOX, Πακέτο Ανταλλαγής Πληροφοριών και Ασφαλείας (Information Exchange and Security
Package):
Αυτό το πακέτο επιτρέπει την αναταλλαγή εγγράφων και την διεκπεραίωση των διαδικασιών που
γλινονται από τους φοιτητές σε κάθε στάδιο της κινητικότητας. Παρέχει µηχανισµό ασφαλής
ανταλλαγής πληροφοριων που είναι συσχετισµένες µε την ανταλλαγή των φοιτητών τα οποία
διαχειρίζονται τα συµµετέχοντα Ιδρύµατα µέσω του ∆ιαδικτύου.
P3 - ALERTS, Πακέτο Αυτόµατης Ειδοποίησης (Automatic Alerts Package):
Το πακέτο αυτό δηµιουργεί αυτόµατες ειδοποιήσεις για τις εκκρεµούσες εργασίες. Οι ειδοποιήσεις
αυτές προκαλούνται απο χρονικά όρια και συσχετίζονται µε τις αιτήσεις που δεν έχουν απαντηθεί στο
επιτρεπόµενο χρονικό όριο.
P4- OUT, Πακέτο Εξερχόµενων Φοιτητών (Outgoing Students Package):
Ως εξερχόµενο φοιτητή εννοούµε τον φοιτητή εκείνο ο οποίος φεύγει από το Ίδρυµα Αποστολής και
εισέρχεται σε κάποιο Ίδρυµα Υποδοχής, συµµετέχει ήδη ή προτίθεται αν συµµετάσχει σε κάποια
κινητικότητα Erasmus. Αυτό το πακέτο βοηθά τους φοιτητές, τους συντονιστές και γενικά το
προσωπικό από τη µεριά του Ιδρύµατος Αποστολής.
P5 - IN, Πακέτο Εισερχόµενων Φοιτητών (Incoming Students Package):
Ως εισερχόµενο φοιτητή εννοούµε τον φοιτητή εκείνο που εισέρχεται στο Ίδρυµα Αποδοχής από
κάποιο Ίδρυµα Αποστολής, έχει υπογράψει διµερή συµφωνία µε το Ίδρυµα Υποδοχής, είναι ήδη στην
κινητικότητα Erasmus ή προτίθεται να
υπάρξει. Αυτό το πακέτο βοηθά τους φοιτητές, τους
συντονιστές και γενικά το προσωπικό από τη µεριά του Ιδρύµατος Υποδοχής.
P6 - EXAMS, Πακέτο ∆ιαγωνισµών Erasmus (Erasmus Exams
Package):
Όταν ένας φοιτητής έχει ένα µάθηµα στο Ίδρυµα Αποστολής και δεν υπάρχει αντιστοιχία µε µάθηµα
στο Ίδρυµα Υποδοχής, ο φοιτητής δικοιούται να ζητήσει να λάβει µέρος στις εξετάσεις που
διαικπεραιώνονται στο µάθηµα αυτό από το Ίδρυµα Υποδοχής για να περάσει το µάθηµα.
P7 - MATCH, Πακέτο Αυτόµατης Αντιστοιχίας Μαθηµάτων (Automatic Course Matching Package):
Σε αυτό το πακέτο οφείλεται η αναγνώριση και η αυτόµατη αντιστοιχία των µαθηµάτων του
Ιδρύµατος Αποστολής µε το Ίδρυµα Υποδοχής.
P8 - STATS, Πακέτο Στατιστικων Erasmus (Erasmus Statistics Package):
Αυτό το πακέτο χρησιµοποιεί ένα εκτελεστικό σύστηµα πληροφοριών που συλλέγει λειτουργικά
δεδοµένα και τα γνωστοποιεί στους χρήστες µετά απο µια σειρά στατιστκών δεικτών.
56
4.1.3 Links Προγραµµάτων που Χρησιµοποιήθηκαν
–
Για την επικοινωνία µεταξύ των φοιτητών και το εβδοµαδιαίο τακτικό meeting,
χρησιµοποιήθηκε το πρόγραµµα Adobe Acrobat Connect Pro Meeting :
–
Για τον διαµοιρασµό των αρχείων και την κοινή πρόσβαση σε αυτά, χρησιµοποιήθηκε το
πρόγραµµα SourceForge :
Η δική µας οµάδα χρησιµοποιούσε το link ως Forum.
4.1.4 Sourceforge
Το SourceForge είναι ένας “χώρος” web-based πηγαίου κώδικα. Λειτουργεί ως µια κεντρική
τοποθεσία για τους προγραµµατιστές λογισµικού για να ελέγχουν και να διαχειρίζονται την ανάπτυξη
του ελεύθερου λογισµικού. Η ιστοσελίδα λειτουργεί σε µια έκδοση του SourceForge Enterprise
Edition, που σχετιζεται µε την τελευταία έκδοση open-source διαθέσιµη. Από τον Φεβρουάριο του
2009, το SourceForge αποθετήριο φιλοξενεί περισσότερα από 230.000 έργα και έχει περισσότερους
από 2 εκατοµµύρια εγγεγραµµένους χρήστες, αν και δεν είναι όλα ενεργά. Η sourceforge.net
προσέλκυσε τουλάχιστον 33 εκατοµµύρια επισκέπτες µέχρι τον Αύγουστο του 2009, σύµφωνα µε µια
έρευνα Compete.com.
Η SourceForge προσφέρει δωρεάν πρόσβαση στο hosting και στα εργαλεία για την ανάπτυξη
του ελεύθερου λογισµικού ανοικτού κώδικα, σε ανταγωνισµό µε άλλους παρόχους, όπως η
RubyForge, Tigris.org, BountySource, Launchpad, BerliOS, JavaForge και το GNU Savannah.
Οι προγραµµατιστές έχουν πρόσβαση σε κεντρική αποθήκευση και σε εργαλεία για τη
διαχείριση των έργων, αν και είναι περισσότερο γνωστή για την παροχή συστηµάτων ελέγχου
αναθεώρησης όπως CVS, SVN, Bazaar, Git ή Mercurial.
Κύρια χαρακτηριστικά (µεταξύ άλλων) περιλαµβάνουν τα wikis του έργου, µετρήσεις και
ανάλυση, η πρόσβαση σε µια βάση δεδοµένων MySQL, και το µοναδικό sub-domain URLs (όπως
http://project-name.sourceforge.net).
Ο µεγάλος αριθµός των χρηστών στο SourceForge.net (πάνω από 2.000.000 από το 2009)
εκθέτει εξέχοντα έργα σε µια ποικιλία από προγραµµατιστές, και µπορεί να δηµιουργήσει ένα βρόγχο
θετικής ανάδρασης. Καθώς αυξάνεται η δραστηριότητα ενός έργου, η SourceForge.net του
εσωτερικού συστήµατος κατάταξης καθιστά πιο ορατό σε άλλους προγραµµατιστές, που µπορούν να
συµµετάσχουν και να συνεισφέρουν σε αυτό.
∆εδοµένου ότι πολλά έργα ανοικτού κώδικα αποτυγχάνουν λόγω έλλειψης υποστήριξης για
την ανάπτυξη, η έκθεση σε µια τέτοια µεγάλη κοινότητα προγραµµατιστών µπορεί να αποδίδει
συνεχώς νέα ζωή σε ένα έργο. Οι προγραµµατιστές πρέπει να συµφωνήσουν να χορηγούν
άδεια χρήσης της SourceForge.net πριν να µπορούν να φιλοξενούν κώδικα σε διακοµιστές της. Η
SourceForge.net χρησιµοποιεί Trove Categorization για τα έργα της.
57
4.1.5 Adobe Connect Pro Meeting
Adobe Connect (πρώην Presedia Publishing System, Macromedia Breeze, και το Adobe
Acrobat Connect Pro) είναι το λογισµικό που χρησιµοποιείται για τη δηµιουργία πληροφοριών και για
γενικές παρουσιάσεις, online εκπαιδευτικό υλικό, web conferencing, µάθητικές ενότητες, και κοινή
χρήση επιφάνειας εργασίας - χρήστη. Το προϊόν έχει Adobe Flash ως βάση. Όλα τα δωµάτια είναι
συνάντηση που οργανώθηκε σε «λοβούς». Με κάθε pod που εκτελεί ένα συγκεκριµένο ρόλο (π.χ.
chat, whiteboard, σηµείωµα, κλπ). Η συνιστώµενη βάση δεδοµένων για backend υποστήριξη του
Microsoft SQL Server. Το προϊόν µπορεί να λάβουν άδεια λειτουργίας ως εγκατεστηµένο προϊόν που
θα εγκαταστήσετε στον συλλογισµό, µια cloud-based εφαρµογής που φιλοξενείται από την Adobe, ή
ως µια υπηρεσία διαχείρισης, στην οποία ένας εταίρος (ConnectSolutions), αναπτύσσει και
διαχειρίζεται κάθε εγκατάσταση πελάτη ξεχωριστά (µόνο ενοικιαστή) σε ένα FISMA συµβατό data
center. Adobe Connect ήταν στο παρελθόν µέρος της οικογένειας Adobe Acrobat και έχει αλλάξει
αρκετές φορές τα ονόµατα. Το προϊόν αναπτύχθηκε για πρώτη φορά από µια νεοσύστατη εταιρεία που
ονοµάζεται Presedia, η οποία δηµιούργησε το Σύστηµα Εκδόσεις Presedia και περιλάµβανε µια πρώτη
γενιά του PowerPoint σε Flash Plugin, το οποίο έγινε το Adobe Presenter, και µια εκπαιδευτική
ενότητα. Macromedia απέκτησε Presedia και προστίθενται σε πραγµατικό χρόνο συστατικό το web
conferencing, που ονοµάζεται Breeze Live (αργότερα µετονοµάστηκε Συνέλευση Breeze).
Στην έκδοση 5, Macromedia Breeze περιλαµβάνονται τέσσερις εφαρµογές: Παρουσιαστής
Breeze, Εκπαίδευση Breeze, συνεδριάσεων Breeze, και Εκδηλώσεις Breeze (νέο στην έκδοση 5).
Μετά την εξαγορά από την Adobe,η Macromedia Breeze συνεδριάσεων αρχικά επαναλανσάρισε το
Adobe Connect, τότε το Adobe Acrobat Connect Professional (µε µια έκδοση SMB που ονοµάζεται
Adobe Connect), είναι τώρα Adobe Connect. Η πλήρης σειρά προϊόντων περιλαµβάνει εκδόσεις του
Κατάρτιση Breeze, Breeze Παρουσιαστής , Breeze Συνέλευση, και Εκδηλώσεις Breeze. Υπάρχει
επίσης ένα προϊόν που ονοµάζεται Adobe ConnectNow η οποία αποτελεί µέρος του Acrobat.com, µια
σουίτα του cloud-based για εφαρµογές που παρέχονται από την Adobe.
Εικόνα 39 - Adobe Connect Pro Meeting
58
4.1.6 DropBox
Εκτός από το Adobe Connect Pro Meeting που χρησιµοποιούσαµε µε τα υπόλοιπα παιδιά από
το project, χρησιµοποιήσαµε επίσης το πρόγραµµα Dropbox για διαµοιρασµό αρχέιων.
Το Dropbox είναι µια Web-based υπηρεσία φιλοξενίας που λειτουργεί από την Dropbox, Inc
η οποία χρησιµοποιεί το cloud computing για να επιτρέψει στους χρήστες να αποθηκεύουν και να
µοιράζονται αρχεία και φακέλους µε άλλους µέσω του Internet χρησιµοποιώντας το συγχρονισµό
αρχείων. Ιδρύθηκε το 2007 από αποφοίτους του ΜΙΤ Drew Χιούστον και Arash Ferdowsi ως Υ
Combinator εκκίνησης . Υπάρχουν δύο δωρεάν και επί πληρωµή υπηρεσίες, το καθένα µε ποικίλες
επιλογές. Σε σύγκριση µε παρόµοιες υπηρεσίες, Dropbox προσφέρει ένα σχετικά µεγάλο αριθµό
πελατών χρήστη σε µια ποικιλία της επιφάνειας εργασίας και τα κινητά λειτουργικά συστήµατα.
Υπάρχει ένας αριθµός των εκδόσεων σε πολλά λειτουργικά συστήµατα, συµπεριλαµβανοµένων των
εκδόσεων για τα Microsoft Windows, Mac OS X και Linux (επίσηµες και ανεπίσηµες), καθώς και
εκδόσεις για φορητές συσκευές, όπως το Android, Windows Phone 7, το iPhone, iPad και BlackBerry,
καθώς και µια web-based client για όταν δεν υπάρχει τοπική πελάτης έχει εγκατασταθεί. Dropbox
χρησιµοποιεί το freemium οικονοµικό µοντέλο και δωρεάν υπηρεσία του προσφέρει 2 GB δωρεάν
online αποθηκευτικό χώρο. Οι χρήστες που αναφέρονται Dropbox σε άλλους µπορεί να κερδίσει µέχρι
και 8 GB δωρεάν αποθηκευτικού χώρου. Κυριότερους ανταγωνιστές της υπηρεσίας περιλαµβάνουν
Box.net, Egnyte, το Windows Live SkyDrive, το Ubuntu One, TitanFile, SugarSync, Mozy,
ZumoDrive, SpiderOak και Wuala.
Τόσο ο διακοµιστής Dropbox και desktop λογισµικό του πελάτη είναι κυρίως γραµµένα σε
Python. Ο πελάτης επιφάνειας εργασίας χρησιµοποιεί σετ εργαλείων για GUI όπως wxWidgets και το
κακάο. Άλλες αξιοσηµείωτες βιβλιοθήκες περιλαµβάνουν Twisted Python, ctypes, και pywin32. Το
λογισµικό δεν χρησιµοποιεί καµία από τρίτους συγχρονισµού αρχείων ή βιβλιοθήκες έλεγχος έκδοσης
και χτίστηκε από το µηδέν. Ο πελάτης Dropbox επιτρέπει στους χρήστες να απορρίψουν οποιοδήποτε
αρχείο σε καθορισµένο φάκελο που στη συνέχεια συγχρονίζονται µε την υπηρεσία παροχής Internet
Dropbox και σε οποιοδήποτε άλλο από υπολογιστές και συσκευές του χρήστη µε τον πελάτη Dropbox.
Οι χρήστες µπορούν επίσης να ανεβάσετε τα αρχεία χειροκίνητα µέσω ενός web browser. Μέσα από
αυτές τις χρήσεις, µπορεί να είναι µια εναλλακτική λύση για couriering φυσική αφαιρούµενα µέσα,
και άλλες παραδοσιακές µορφές µεταφοράς αρχείων, όπως το FTP και συνηµµένα ηλεκτρονικού
ταχυδροµείου. Ενώ το Dropbox λειτουργεί ως υπηρεσία αποθήκευσης, στόχος του είναι σχετικά µε το
συγχρονισµό και την κοινή χρήση. Υποστηρίζει ιστορία αναθεώρηση, έτσι ώστε τα αρχεία
διαγράφονται από το φάκελο Dropbox µπορεί να ανακτηθεί από οποιαδήποτε από τις συγχρονισµένες
υπολογιστών. Ο έλεγχος έκδοσης Dropbox βοηθά επίσης τους χρήστες γνωρίζουν την ιστορία ενός
αρχείου µπορεί να επεξεργάζεται επί του παρόντος, διευκολύνοντας περισσότερους από ένα άτοµο να
επεξεργαστείτε και εκ νέου µετά αρχείων χωρίς επιπλοκές να χάσει την προηγούµενη µορφή του.
Η ιστορία έκδοση περιορίζεται σε 30 ηµέρες. Μια πληρωµένη επιλογή για απεριόριστες
ιστορία έκδοση που ονοµάζεται "Rat Pack-" είναι διαθέσιµη. Το ιστορικό εκδόσεων έχει συνδυαστεί
µε τη χρήση της τεχνολογίας κωδικοποίησης δέλτα. Για την εξοικονόµηση εύρους ζώνης και του
χρόνου, εάν ένα αρχείο στο Dropbox φάκελο του χρήστη έχει αλλάξει, Dropbox µόνο προσθήκες τα
κοµµάτια του αρχείου που αλλάζουν όταν το συγχρονισµό.Αν ο πελάτης δεν έχει κανένα περιορισµό
στο µέγεθος µεµονωµένων αρχείων, τα αρχεία που µεταφορτώνονται µέσω του δικτυακό τόπο είναι
περιορισµένη σε ένα µέγιστο των 300 MB ανά αρχείο. Εµποδίζει τους ελεύθερους χρήστες (που
παίρνουν 2 GB δωρεάν αποθηκευτικού χώρου) από τη δηµιουργία πολλών δωρεάν λογαριασµούς,
Dropbox περιλαµβάνει το περιεχόµενο των κοινόχρηστων φακέλων όταν συνολικά το ποσό του χώρου
που χρησιµοποιείται για την το λογαριασµό. Το Dropbox χρησιµοποιεί S3 συστήµατος της Amazon
αποθήκευσης για την αποθήκευση των αρχείων. Επίσης, χρησιµοποιεί SSL µεταφορές για
συγχρονισµό και αποθηκεύει τα δεδοµένα µέσω AES. -256 κρυπτογράφησης .
59
Οι έµπειροι χρήστες έχουν επινοήσει µια σειρά από καινοτόµες χρήσεις και τα mash-ups από
την τεχνολογία που επεκτείνουν τη λειτουργικότητα Dropbox ». Αυτά περιλαµβάνουν: την αποστολή
αρχείων σε µια Dropbox µέσω Gmail. Χρησιµοποιώντας Dropbox για συγχρονισµό IM συνοµιλία
καταγράφει, διαχείριση BitTorrent, διαχείριση κωδικό πρόσβασης, αποµακρυσµένη έναρξη εφαρµογής
και παρακολούθησης του συστήµατος, και ως δωρεάν υπηρεσία web hosting.
4.1.7 Git
Για τον διαµοιρασµό και την αποθήκευση των αρχείων ολόκληρης της οµάδας καθ'όλη την
διάρκεια του project, χρησιµοποιήσαµε το λογισµικό Git ώστε να µπορεί ο καθένας να κάνει
ανάκτηση αρχείου όποια ώρα θελήσει.
Το Git είναι ένα κατανεµηµένο σύστηµα ελέγχου και αναθεώρησης, µε µια έµφαση στην
ταχύτητα. Αρχικά σχεδιάστηκε και αναπτύχθηκε από τον Linus Torvalds για την ανάπτυξη του πυρήνα
Linux. Κάθε Git κατάλογος εργασίας είναι ένα ολοκληρωµένο σύστηµα αποθήκης µε πλήρες ιστορικό
και όλες τις δυνατότητες εντοπισµού αναθεώρησης, δεν εξαρτάται από την πρόσβαση στο δίκτυο ή
από έναν κεντρικό server. Η τρέχουσα συντήρηση του λογισµικού της GIT εποπτεύεται από τον Junio
Hamano. Είναι ελεύθερο λογισµικό και διανέµεται υπό τους όρους της GNU General Public License
έκδοση 2.
Ο σχεδιασµός του GIT είναι µια σύνθεση των εµπειριών Torvalds µε το Linux στη διατήρηση
ενός µεγάλου έργου ανάπτυξης, µαζί µε βαθιά γνώση του για τις επιδόσεις του συστήµατος αρχείων
που αποκτήθηκε από το ίδιο σχέδιο και την επείγουσα ανάγκη να παράγει ένα λειτουργικό σύστηµα
στη σύντοµη διαταγή. Αυτές οι επιρροές οδήγησαν στις ακόλουθες επιλογές εφαρµογής:
Ισχυρή υποστήριξη για τις µη γραµµικές ανάπτυξη
Το Git στηρίζει την ταχεία διακλάδωση και συγχώνευση, και περιλαµβάνει ειδικά εργαλεία για τον
εντοπισµό και την πλοήγηση σε µια µη γραµµική ιστορία ανάπτυξης. Μια υπόθεση για το Git είναι
ότι µια αλλαγή θα συγχωνευθεί πιο συχνά από ό, τι είναι γραµµένο, καθώς περνά γύρω από διάφορους
αναθεωρητές.
Κατανεµηµένα ανάπτυξη
Όπως οι Darcs, BitKeeper, Mercurial, SVK και Bazaar, το Git δίνει σε κάθε προγραµµατιστή ένα
τοπικό αντίγραφο του µε όλη την ιστορία της ανάπτυξης, και οι αλλαγές αντιγράφονται από ένα τέτοιο
χώρο αποθήκευσης σε κάποιο άλλο. Οι αλλαγές αυτές εισάγονται ως επιπλέον ανάπτυξη, και
µπορούν να συγχωνευθούν µε τον ίδιο τρόπο όπως τοπικά αναπτύχθηκε το αρχικό.
Συµβατότητα µε τα υπάρχοντα συστήµατα / πρωτόκολλα
Αποθετήρια µπορούν να δηµοσιεύονται µέσω HTTP, FTP, rsync, ή ένα πρωτόκολλο Git πάνω είτε σε
µια απλή πρίζα ή ssh. 'Έχει επίσης µια εξοµοίωση εξυπηρετητή CVS, η οποία επιτρέπει τη χρήση των
υφιστάµενων πελατών CVS και IDE plugins για να αποκτήσετε πρόσβαση αποθετήρια git. Subversion
και SVK αποθετήρια µπορούν να χρησιµοποιηθούν άµεσα µε git-svn.
60
Η αποτελεσµατική διαχείριση των µεγάλων έργων
Ο Torvalds έχει περιγράψει Git ότι είναι πολύ γρήγορη και κλιµακωτή, και οι δοκιµές επιδόσεων
γίνονται µε Mozilla έδειξαν ότι ήταν µία τάξη µεγέθους ταχύτερα από ό, τι ορισµένα συστήµατα
ελέγχου αναθεώρηση, και η αναθεώρηση από ένα τοπικά αποθηκευµένο αποθετήριο µπορεί να είναι
εκατό φορές πιο γρήγορη από ό, τι αυτό από τον αποµακρυσµένο διακοµιστή.
Το ιστορικό του Git είναι αποθηκευµένο µε τέτοιο τρόπο ώστε το όνοµα της συγκεκριµένης
αναθεώρησης (µια «δέσµευση» από την άποψη Git) εξαρτάται από το πλήρες ιστορικό της ανάπτυξης
. Μόλις δηµοσιευθεί, δεν είναι δυνατό να αλλάξει, χωρίς να γίνονται αντιληπτό. Η δοµή είναι
παρόµοια µε µια hash δέντρο, αλλά µε τα πρόσθετα δεδοµένα στους κόµβους καθώς και τα
φύλλα.(Mercurial και µονοχρωµία έχουν επίσης αυτή την ιδιότητα.)
Toolkit µε βάση το σχεδιασµό
Το Git σχεδιάστηκε ως ένα σύνολο από προγράµµατα γραµµένα σε C, και µια σειρά από σενάρια
κελύφους που παρέχουν περιτυλίγµατος γύρω από αυτά τα προγράµµατα. Παρά το γεγονός ότι τα
περισσότερα από αυτά σενάρια έχουν έκτοτε ξαναγραφεί σε C για την ταχύτητα και τη δυνατότητα
µεταφοράς, ο σχεδιασµός παραµένει, και είναι εύκολο να αλυσίδα τα στοιχεία µαζί.
Pluggable στρατηγικές συγχώνευσης
Στο πλαίσιο του σχεδιασµού της εργαλειοθήκης, το Git είναι ένα καλά καθορισµένο µοντέλο
ελλιπούς συγχώνευσης, και αυτό έχει πολλούς αλγορίθµους για την ολοκλήρωσή της, µε
αποκορύφωµα να ενηµερώνει το χρήστη ότι είναι σε θέση να ολοκληρώσει τη συγχώνευση αυτόµατα
και χειροκίνητα.
Σκουπίδια συσσωρεύεται ή συλλέγονται
Η εγκατάλειψη ή αλλαγές θα αφήσουν άχρηστα αντικείµενα να αιωρούνται στη βάση δεδοµένων.
Αυτά είναι γενικά ένα µικρό κλάσµα των συνεχώς αυξανόµενων αντικείµενων, αλλά το διάστηµα
µπορεί να ανακτηθεί µε το GC git.
Περιοδική ρητή αντικείµενο συσκευασίας
Το Git αποθηκεύει κάθε αντικείµενο που µόλις δηµιουργήθηκε ως ξεχωριστό αρχείο. Παρά το γεγονός
ότι είναι µεµονωµένα συµπιεσµένο, αυτό παίρνει πολύ χώρο και είναι αναποτελεσµατικό. Αυτό
λύνεται µε τη χρήση "πακέτων" που αποθηκεύουν ένα µεγάλο αριθµό αντικειµένων σε ένα ενιαίο
αρχείο (ή το δίκτυο ρεύµα byte), συµπιεσµένα µεταξύ τους. Τα πακέτα είναι συµπιεσµένα
χρησιµοποιώντας την λογική ότι τα αρχεία µε το ίδιο όνοµα είναι πιθανώς παρόµοια, αλλά δεν
εξαρτώνται από αυτό για την ορθότητα. Τα νεοσύστατα αντικείµενα (που προστέθηκαν πρόσφατα)
εξακολουθούν να αποθηκεύονται µεµονωµένα, καθώς και η περιοδική επανασυσκευασία είναι
απαραίτητη για τη διατήρηση της αποτελεσµατικότητας . Το Git κάνει περιοδική ανασυσκευασία
αυτόµατα αλλά το εγχειρίδιο ανασυσκευασίας είναι επίσης δυνατό µε την GIT GC εντολή.
4.1.8 In-Coming Students Package-P5
Με τον όρο “εισερχόµενος φοιτητής, εννοούµε τον φοιτητή που εισέρχεται από ένα Ίδρυµα
Αποστολής σε ένα Ίδρυµα Αποδοχής µέσω της κινητικότητας Erasmus. Με το πρόγραµµα
Erasmus, οι φοιτητές µπορούνα να παρακολουθήσουν έως και δύο εξάµηνα τα µαθήµατα που θα
έκαναν στο δικό τους πανεπιστήµιο, σε άλλης χώρας, ή να κάνουν την πρακτική τους άσκηση.
Το πακέτο αυτό έχει ως σκοπό να βοηθήσει τους φοιτητές, τους συντονιστές αλλά και
γενικότερα όλους όσους εµπλέκονται στις διαδικασίες της πραγµατοποίησης της κινητικότητας. Θα
πρέπει να τονιστεί ότι το πακέτο αυτό είναι άρρηκτα συνδεδεµένο µε το πακέτο Ρ4(εξερχόµενοι
φοιτητές), καθώς οι φόρµες που θα δηµιουργηθούν και από τα δύο πακέτα , θα χρησιµοποιηθούν και
από τα δύο είδη φοιτητών.
61
Θεωρητικό υπόβαθρο - Ένας φοιτητής για να γίνει δεκτός από το πανεπιστήµιο που επιθυµεί, θα
πρέπει να ακολουθήσει κάποιες συγκεκριµένες διαδικασίες.
Κατ' αρχήν, θα πρέπει να στείλει τις πρώτες φόρµες, οι οποίες είναι το βιογραφικό του, την
Συµφωνία Μάθησης και την Αίτηση Αποδοχής.
Το Πανεπιστήµιο που θα λάβει τα έγγραφα αυτά, θα εξετάσει αν ο φοιτητής πληρεί τις προυποθέσεις
να γίνει αποδεκτός ή όχι. Σε περίπτωση αποδοχής, µπορεί να γίνει ή να µην γίνει αποδεκτή η
Συµφωνία Μάθησης.
(Για κάθε βήµα θα παρέχεται και το ανάλογο σχήµα.)
Σε περίπτωση που κάποιος φοιτητής θελήσει να κάνει κάποια αλλαγή σε κάποιο µάθηµα ( να
διαγράψει µια προηγούµενη επιλογή του ή και να προσθέσει κάποιο άλλο µάθηµα), υπάρχει φόρµα
Αλλαγής Συµφωνία Μάθησης , η οποία πάλι µπορεί να γίνει αποδεκτή από το Ίδρυµα Αποδοχής ή
όχι.
Εάν ο φοιτητής περάσει αυτά τα στάδια µε επιτυχία, τότε προχωράει στο δεύτερο µέρος της
διαδικασίας, το οποίο είναι η συµπλήρωση της φόρµας για Στέγαση. Το αν αυτή η αίτηση θα γίνει
αποδεκτή από το Ίδρυµα Αποδοχής εξαρτάται από το αν διαθέτει εστίες το Πανεπιστήµιο αυτό, αλλά
και κατά πόσο οι εστίες είναι διαθέσιµες για το χρονικό διάστηµα που θα χρειαστεί ο εκάστοτε
φοιτητής. Μετά απο την συµπλήρωση και αποστολή και αυτήσ της φόρµας, πληρούνται πλέον οι
προυποθέσεις για να ξεκινήσει ο φοιτητής την διαδικασία κινητικότητας.
Το επόµενο βήµα γίνεται πλέον αφού έχει φτάσει ο φοιτητής στο Ίδρυµα Αποδοχής και αφορά
την φόρµα πιστοποίησης αφίξεως. Το Πανεπιστήµιο συµπληρώνει την φόρµα αυτή αναγράφοντας
ηµεροµηνία άφιξης του φοιτητή, βεβαιώνοντας έτσι ότι ο φοιτητής βρίσκεται εκεί στην ώρα του και
θα ξεκινήσει κανονικά την περίοδο σπουδών του. Αυτή η πιστοποίηση έχει άµεση σχέση µε την
υποτροφία που παίρνει ο κάθε φοιτητής, καθώς η καταµέτρηση των χρηµάτων που θα λάβει ο
φοιτητής γίνεται βάσει των ηµερών διαµονής του στο εξωτερικό και όχι βάσει µηνών.Η φόρµα αυτή
αποστέλεται στο Ίδρυµα Αποστολής.
62
Ο φοιτητής έχει δικαίωµα για αλλαγή µαθηµάτων και µπορεί να συµπληρώσει την φόρµα
Αλλαγής Συµφωνίας Μάθησης όπου µπορεί να διαγράψει και να πρσθέσει µαθήµατα. Η φόρµα αυτή
µπορεί να γίνει αποδεκτή ή όχι. Σε περίπτωση µη αποδοχής, ο φοιτητής µπορεί να ξανακάνει αίτηση,
επιστρέφοντας στο βήµα 9.
Εάν κάποιος φοιτητής επιθυµεί να παρατείνει την διαµονή του και την διάρκεια σπουδών του
στο Ίδρυµα που ήδη βρίσκεται, µπορεί να συµπληρώσει την φόρµα επιµήκυνσης περιόδου
κινητικότητας, η οποία µπορεί πάλι να γίνει αποδεκτή ή όχι.
Σε περίπτωση που η αίτηση γίνει αποδεκτή, ο φοιτητής πρέπει να ξαναγυρίσει στο βήµα 9 και να να
συµπληρώσει την αίτηση Αλλαγής Μαθηµάτων.
Στο τέλος πλέον της σπουδαστικής περιόδου, οι συντονιστές του Ιδρύµατος Αποδοχής πρέπει να
συµπληρώσουν την φόρµα των Βαθµών-Μονάδων που έχει ο κάθε µαθητής σε κάθε µάθηµα που
δήλωσε. Επίσης, θα πρέπει να συµπληρωθεί η πιστοποίηση διαµονής και αναχωρήσεως από τους
συντονιστές του Ιδρύµατος Αποδοχής, και οι δύο αυτές φόρµες θα σταλούν στο Ίδρυµα Αποστολής.
63
4.1.9 Απαιτήσεις Συστήµατος
Όπως κάθε ιστοσελίδα, έτσι και η δική µας πρέπει να καλύπτει ορισµένες ανάγκες των
χρηστών. Για παράδειγµα, θα πρέπει να είναι εύχρηστη έτσι ώστε να µπορεί να χρησιµοποιηθεί από
όλους τους χρήστες, γνώστες του αντικειµένου και µη. Αυτό σηµαίνει ότι το layout θα πρέπει να
παραµείνει απλό και κατανοητό. Μια δεύτερη απαίτηση του συστήµατος είναι ότι πρέπει να
χρησιµοποιηθεί javascript για τυχόν λάθη που µπορεί να γίνουν, όπως π.χ στο πεδίο του τηλεφώνου να
γράψει κάποιος έναν χαρακτήρα. Οι προγραµµατιστές θα πρέπει να προβλέψουν και να προνοήσουν
για τέτοιες περιπτώσεις. Εκεί χρησιµοποιήται η γλώσσα javascript, όπου “βλέπει” τα λάθη και µας
εµφανίζει µηνυµατα µε τις διορθώσεις που πρέπει να γίνουν.
4.2
Σχεδιασµός Υλοποίησης - Υλοποίηση
Παρακάτω εξηγούµε λεπτοµερώς πώς έγινε η υλοποίηση της ιστοσελίδας βήµα βήµα, δηλαδή
πως δηµιουργήθηκαν οι φόρµες και η βάση δεδοµένων.
4.2.1 Φόρµες – ∆ηµιουργία και Λειτουργικότητα
Όπως έχουµε ήδη επισηµάνει σε προηγούµενο κεφάλαιο, οι φόρµες που πρέπει να
δηµιουργήσουµε είναι τα πιστοποιητικά άφιξης / διαµονής / αναχώρησης, την φόρµα αλλαγής
µαθηµάτων και την φόρµα µε τις βαθµολογίες των µαθηµάτων. Θα αρχίσουµε την περιγραφή της
διαδικασίας δηµιουργίας τους µε τα πιστοποιητικά άφιξης / διαµονής / αναχώρησης.
1. ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΑΦΙΞΗΣ / ∆ΙΑΜΟΝΗΣ / ΑΝΑΧΩΡΗΣΗΣ
( CERTIFICATES OF ARRIVAL / STAY / DEPARTURE )
Τα πιστοποιητικά αυτά συµπληρώνονται από τον συντονιστή (coordinator) του εκάστοτε
Ιδρύµατος Αποδοχής και στέλνονται στο Ίδρυµα Αποστολής. To πιστοποιητικό άφιξης συµπληρώνεται
και στέλνεται όταν φτάσει ο φοιτητής στο Ίδρυµα Αποδοχής, το πιστοποιητκό αναχώρησης όταν ο
φοιτητής φεύγει από το Πανεπιστήµιο Αποδοχής και το πιστοποιητικό διαµονής συµπληρώνεται
αυτόµατα όταν συµπληρωθεί και το αναχώρησης, αφού τα πεδία που περιέχει, έχουν ήδη
συµπληρωθεί στα προηγούµενα δύο.
Όταν µπούµε στην σελίδα των certificates, η πρώτη φόρµα που εµφανίζεται είναι η Select
Student . Εδώ, εµφανίζονται όλα τα ονόµατα και οι αριθµοί µητρώων των φοιτητών που συµµετέχουν
στο πρόγραµµα Eramus για το συγκεκριµένο εξάµηνο. Κάθε όνοµα έχει δίπλα του ένα βέλος, το οποίο
αν το πατήσουµε µας παραπέµπει στο πιστοποιητκό άφιξης. Εκεί, υπάρχουν όλες οι πληροφορίες για
τον φοιτητή , τους συντονιστές και τα Ιδρύµατα Αποστολής και Αποδοχής. Στο τέλος της φόρµας,
υπάρχει η ηµεροµηνία άφιξης που πρέπει να συµπληρωθεί από τον συντονιστή του Ιδρύµατος
Αποδοχής και να σταλεί στο mail του συντονιστή Ιδρύµατα Αποστολής. Εδώ πρέπει να τονίσουµε οτι
όλα τα πεδία της φόρµας αυτής είναι ήδη συµπληρωµένα,αφού είναι συνδεδεµένες οι µεταβλητές µε
την βάση δεδοµένων. Συνεπώς, ο συντονιστής το µόνο στοιχείο που πρέπει να συµπληρωσει είναι η
ηµεροµηνία άφιξης. Σε περίπτωση που η φόρµα αυτή έχει ήδη συµπληρωθεί, αντί για το κουµπί
Submit Form, εµφανίζεται η ηµεροµηνία και ένα κουµπί Resend Form, που σηµαίνει ότι έχουµε
δικαίωµα να ξαναστείλουµε την φόρµα στον συντονιστή, αλλά χωρίς να την αναµορφώσουµε.
Την ίδια φόρµα έχουµε και για το πιστοποιητικό αναχώρησης, µόνο που αν η ηµεροµηνία
αναχώρησης είναι µικρότερη από αυτήν της άφιξης, δε µας επιτρέπει να στείλουµε την φόρµα και µας
εµφανίζει ένα µήνυµα: Departure Date Should Be After Arrival Date. Επίσης, αν το πιστοποιητικό
άφιξης δεν έχει συµπληρωθεί µέχρι να συµπληρωθεί το πιστοποιητικό αναχώρησης, τότε όταν ο
συντονιστής θα επιχειρήσει να στείλει το πιστοποιητικό αναχώρησης θα εµφανιστεί πάλι το ίδιο
µήνυµα.
64
Όταν πλέον θα έχουν σταλεί και τα δύο πιστοποιητικά, τότε στην φόρµα Select Student θα
εµφανίζεται για κάθε όνοµα η επιλογή Sended Certificates. Αν πατήσουµε πάνω σε αυτήν την επιλογή,
µας παραπέµπει στο πιστοποιητικό διαµονής όπου έιναι πάλι η ίδια φόρµα µε τις προηγούµενες αλλά
εµφανίζονται επίσης οι ηµεροµηνίες άφιξης και αναχώρησης, που είχαν καταχωρηθεί στην βάση
δεδοµένων . Κατά συνέπεια, ο συντονιστής δεν έχει πρόσβαση στα στοιχεία της φόρµας αυτής, µόνο
µπορεί να δει τα στοιχέια που έχουν αυµπληρωθεί από την βάση δεδοµένων του Ιδρύµατος.
2. TRANSCRIPT OF RECORDS
Αρχικά, πρέπει να τονίσουµε ότι πρόσβαση και σε αυτήν την φόρµα έχουν µόνο οι
συντονιστές των Ιδρυµάτων. Όταν επιλέξουµε να µπούµε στην φόρµα του transcript of records
(δηλαδή στην φόρµα µε τις βαθµολογίες των φοιτητών ανά µάθηµα) αρχικά µας παραπέµπει στην
φόρµα Select Students όπου εµφανίζονται τα ονόµατα των συµµετέχοντων φοιτητών και οι αριθµοί
µητρώων τους. Πατώντας το βέλος δεξιά από το όνοµα, µας εµφανίζεται η φόρµα transcript of
records. Η φόρµα αυτή περιέχει όλες τις πληροφορίες του φοιτητή, των συντονιστών και των
Ιδρυµάτων που έχουν ήδη καταχωρηθεί στην βάση δεδοµένων µε την συµπλήρωση των πρώτων
φορµών από τον φοιτητή.
Κάτω από τα στοιχεία αυτά υπάρχει ένας πίνακας µε τα µαθήµατα που έχει επιλέξει ο
φοιτητης να παρακολουθήσει κατά την διάρκεια του προγράµµατος Erasmus, ο κωδικός του κάθε
µαθήµατος ,πόσες µονάδες έχει το κάθε µάθηµα στο ECTS καθώς και την διάρκεια του µαθήµατος
κατά την διάρκεια του εξαµήνου. Ο συντονιστής το µόνο που έχει να κάνει συνεπώς, είναι να
συµπληρώσει το πεδίο µε την τοπική βαθµολογία δίπλα σε κάθε µάθηµα. Αυτόµατα, συµπληρώνεται
και το πεδίο µε την βαθµολογία στο ECTS. Τέλος, κάτω από τον πίνακα µε τις βαθµολογίες υπάρχουν
πληροφορίες σχετικά µε τους βαθµούς και τις µονάδες του ECTS και πως αυτά µεταφράζονται σε
κάθε χώρα ώστε να προσαρµοστούν κατάλληλα.
4.2.2 ∆οµή της Βάσης ∆εδοµένων
Είναι πολύ σηµαντικό να υπάρχει µια γερή και σωστή βάση για να µπορέσει η εφαρµογή να
είναι καθ' όλα λειτουργική. Βασική προυπόθεση είναι να συµπεριλάβουµε σε κάθε πίνακα όσο το
δυνατόν περισσότερες πληροφορίες µε λιγότερες επαναλήψεις εγγραφών που θα κάλυπταν την
διαδικασία κινητικότητας. Συνεχώς όµως προέκυπταν καινούρια δεδοµένα κατά την διάρκεια του
project, κατά συνέπεια η βάση έπρεπε συνεχώς να µετατρέπεται.
Αρχικά, καταγράψαµε τα δεδοµένα που θα χρειαστεί µια συνιθησµένη διαδικασία εγγραφής
χρήστη, επιλογής Ιδρύµατος και µαθηµάτων. Μετά από συζήτηση µε όλα τα µέλη της οµάδας,
καταλήξαµε στο συµπέρασµα ότι θα χρησιµοποιήσουµε βάση MySQL µε κωδικοποίηση UTF8. Έτσι,
το κάθε ίδρυµα θα µπορεί να αποθηκεύει τα δεδοµένα στην δική του γλώσσα.
Η τελική βάση δεδοµένων του website Erasmusline αποτελείται συνολικά από 15 πίνακες. Ο
παρακάτω κώδικας είναι ο ένας εκ των πινάκων και τον παραθέτουµε ως παράδειγµα. Παρακάτω
παρατίθεται η βάση :
65
Εικόνα 39 – Βάση ∆εδοµένων
Όπως φαίνεται στο σχεδιάγραµµα,
σχεδιάγραµµα ο πιο σηµαντικός πίνακας της βάσης ειναι ο erasmusstudent,
erasmusstudent καθώς
αποτελεί την 'καρδιά'
καρδιά της βάσης και συνδέεται µε τους περισσότερους πίνακες
πίνακες. Είναι απαραίτητος από
την αρχή της διαδικασίας µέχρι
ρι το τέλος
τέλος. Ο δεύτερος πιο σηµαντικός πίνακας είναι ο erasmuslevel.
Εκεί αποσαφηνίζονται τα βήµατα που πρέπει να περάσει ο µαθητής
µαθητής.
Ο παρακάτω κώδικας είναι η δηµιουργία του πίνακα erasmuslevel.
CREATE TABLE IF NOT EXISTS `erasmuslevel` (
`idStatusLevel` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idStatusLevel`)
) ENGINE=InnoDB DEFAULT
EFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
4.2.3 ∆ηµιουργία Βάσης ∆εδοµένων
Αφού έχουµε εγκαταστήσει την πλατφόρµα XAMPP και έχουµε συνδεθεί µε τον localhost,
πηγαίνουµε στην αριστερή στήλη της σελίδας κι επιλέγουµε Tools → PhpMyAdmin.
PhpMyAdmin Μας ανοίγει το
εργαλείο PhpMyAdmin µε το οποίο θα δηµιουργήσουµε την βάση µας
µας. Εάν έχουµε ήδη φτιάξει µια
βάση, θα µας την εµφανίσει στην αριστερή µεριά της σελίδας
βάση
σελίδας, αλλιώς θα δη
δηµιουργήσουµε
µιουργήσουµε µια
δίνοντας της όνοµα και τύπο κωδικοποίησης και στην συνέχεια πατάµε το κουµπί '∆ηµιουργία'.
'∆ηµιουργία
∆ηµιουργία
66
Πλέον είµαστε έτοιµοι να εισάγουµε τους πίνακες µέσα στην βάση µας.
Εικόνα 40 – Εισαγωγή πινάκων
67
Για να γίνει η εισαγωγή των πινάκων, µπορούµε είτε να γράψουµε κώδικα, είτε να έχουµε ήδη
έτοιµο αρχείο και να το φορτώσουµε είτε να δηµιοργήσουµε τα δεδοµένα γράφοντας το όνοµα του
πίνακα και τα στοιχεία του.
Εικόνα 41 – Αναζήτηση Πίνακα
Είχαµε ήδη δηµιουργήσει σε αρχείο την βάση µας, οπότε την φορτώσαµε στην βάση που µόλις
φτιάξαµε. Αφού έχει ολοκληρωθεί το φόρτωµα του αρχείου, η πλατφόρµα θα µας εµφανίσει το
µήνυµα “Η εισαγωγή ολοκληρώθηκε επιτυχώς, 32 ερωτήµατα εκτελέστηκαν.” και θα φαίνονται οι
πινακες στην αριστερή µεριά της σελίδας.
68
Εικόνα 42 – Επιτυχής εισαγωγή πίνακα
4.2.4 ∆οµή της ιστοσελίδας Erasmusline
Το layout της ιστοσελίδας ήταν υπόθεση της γερµανικής οµάδας, όµως το συναποφασίσαµε
όλοι µαζί. Καταλήξαµε στο γεγονός ότι επειδή πολλοί φοιτητές χρησιµοποιούν µικρές οθόνες στους
υπολογιστές τους ή netbooks, φτιάξαµε την εφαρµογή σε ένα πλαίσιο 980 pixels. Έτσι, η οθόνη θα
έχει πάντα µικρό buffer για τους κέρσορες ή ότι άλλο χρειάζεται προσαρµογή σε κάθε οθόνη.
Συναποφασίσαµε η ιστοσελίδα να έχει απλή εµφάνιση για να είναι εύκολα προσπελάσιµη από
όλους τους ανθρώπους. Πάνω αριστερά έχουµε βάλει το λογότυπο του erasmusline και δεξιά τους
φακέλους (tabs) µε τα µενού και τα υποµενού.
69
Εικόνα 43 – Αρχική σελίδα Erasmusline
Εκτός από το γενικό layout της ιστοσελίδας, η οµάδα των γερµανών έπρεπε να φτιάξει και τις
πληροφορίες που βρίσκονται στο tab “Info”. Στον υποφάκελο αυτό , έχουν τοποθετηθεί κάποια link
που κάνουν ανακατεύθυνση σε άλλες σελίδες που περιέχουν γενικές πληροφορίες για το πρόγραµα
Erasmus, για τις φόρµες που πρέπει να συµπληρωθούν, αλλά και για τους συµµετέχοντες στο
πρόγραµµα αυτό.
70
Εικόνα 44 – Info Page
Εικόνα 45 - Contact
71
Στο πάνω αριστερό τµήµα της ιστοσελίδας, παρατηρούµε δύο συνδέσµους , τους About και Contact.
Το πρώτο περιλαµβάνει λίγες πληροφορίες για το πρόγραµµα Erasmus και το δεύτερο δίνει τα
στοιχεία των ανθρώπων που µπορούµε να επικοινωνήσουµε ώστε να µας βοηθήσουν σε τυχόν
απορίες.
Εικόνα 46 – Erasmus Info
72
Εικόνα 47 – Partners Info
Η διαδικασία µεταφοράς δεδοµένων γίνεται µε την βοήθεια της cURL βιβλιοθήκης,
προκειµένου να υπάρχει µεγαλύτερη ασφάλεια και να φτάνουν τα δεδοµένα στον host server. Η
µεταφορά τους γίνεται µε ένα JSON-string το οποίο έχει κρυπτογραφηθεί µε τον αλγόριθµο 3DES.
To cURL είναι ένα λογισµικό που παρέχει βιβλιοθήκη και εντολές συγκεκριµένες για τη
µεταφορά δεδοµένων χρησιµοποιώντας διάφορα πρωτόκολλα όπως HTTP / HTTPS. Παρέχει επίσης
επαλήθευση username και password και είναι συµβατό µε τις Ipv6. Στην εφαρµογή χρησιµοποιούµε
µόνο ένα µικρό τµήµα της βιβλιοθήκης αυτής. Παρακάτω παρατίθενται οι εντολές που σου προσφέρει
η βιβλιοθήκη και τι σηµαίνει η καθεµία.
CURLOPT_URL
∆ηµιουργεί τον προορισµό URL
CURLOPT_POST
Αν είναι true, τα δεδοµένα έχουν αποσταλεί σωστά
CURLOPT_RETURNTRANSFER
Αν είναι true, η εφαρµογή επιστρέφει µια γραµµατοσειρά
CURLOPT_SSL_VERIFYPEER
Αν είναι false, το λογισµικό σταµατάει την επικύρωση
CURLOPT_POSTFIELDS
Για να γίνει η µεταφορά µε το πρωτόκολλο HTTP
Το JSON (JavaScript Object Notation) είναι file format που βασίζεται σε κείµενο για
επικοινωνία µεταξύ διαφορετικών server / εφαρµογών. Αποφασίσαµε να χρησιµοποιήσουµε JSON
αντί για XML για την δυναµική του χρήση. Κάθε δεδοµένο που µεταφέρεται µεταξύ δύο server,
µεταφέρεται µέσα σε ένα JSON string το οποίο µπορεί να διαχειριστεί πολλούς δείκτες.
Το 3DES ( Data Encryption Standard) είναι ένας συµµετρικός αλγόριθµος κρυπτογράφησης.
Λόγω της τριπλής του κρυπτογράφησης, αποτελεί το πιο διαδεδοµένο αλγόριθµο.
Για να γίνει η µεταφορά δεδοµένων χρειαζόµαστε τη µέθοδο, τους πίνακες και τα δεδοµένα
για κάθε µέθοδο: public function dataTransfer($method, $table, $data, $idInst) { }
73
Στο επόµενο βήµα, γίνεται η µεταφορά δεδοµένων για τον host server και έχουµε ως παράµετρο το
πρώτο JSON string.
[
{
"method":"Method 1",
"params":{
"table":"Table 1",
"data":{
"Data 1.1":"Value 1.1",
"Data 1.2":"Value 1.2"
}}},
{
"method":"Method 2",
"params":{
"table":"Table 2",
"data":{
"Data 2.1":"Value 2.1",
"Data 2.2":"Value 2.2"
}}}
]
Κάθε string κρυπτογραφείται σε 3DES ώστε να µη µπορεί κανένα plain text να µεταφέρεται πάνω από
τον WWW. Όταν ο φάκελος φτάσει στον host server, τα δεδοµένα αποκρυπτογραφούνται σε plain
text και το string σε αντκείµενο. Η µέθοδος φορτώνεται και καλείται.
Η µέθοδος που αφορά τη µεταφορά φακέλων, χρειάζεται το όνοµα του φακέλου, το host
institution, το user – id και τον host server: public function fileTransfer($method, $file, $idInst,
$userid) { }
Σε αυτήν την περίπτωση, το JSON string χρειάζεται το user-id και τον φάκελο ως παράµετρο. Όλη η
υπόλοιπη διαδικασία είναι ίδια µε το απλό κείµενο.
Στο layout χρησιµοποιηθήκε επίσης javascript για την επιβεβαίωση φόρτωσης της σελίδας.
<script type="text/javascript">
document.observe("dom:loaded", function() {
// second manual example : multicolor (and take all other default paramters)
manualPB2 = new JS_BRAMUS.jsProgressBar($("elementMain"),{$progress},
{
barImage
: Array(
"./core/js/progress/images/bramus/percentImage_back4.png",
"./core/js/progress/images/bramus/percentImage_back3.png"
"./core/js/progress/images/bramus/percentImage_back2.png",
74
"./core/js/progress/images/bramus/percentImage_back1.png"),
onTick : function(pbObj) {
return true;
}
});
}, false);
</script>
και τα υπόλοιπα τµήµατα µε html όπως πχ τα tab:
{option:oNotLogged}
<a href="index.php?module=home&amp;view=home" title="home">Home</a>
<a href="index.php?module=login&amp;view=login" title="Login">Login</a>
{/option:oNotLogged}
Μέσα στο αρχείο layout.tpl υπάρχουν και άλλα τµήµατα κώδικα τα οποία εµφανίζονται αφού έχουµε
κάνει login, όπως οι φόρµες που πρέπει να συµπληρωθούν:
{option:oOffice}
<div id="subnav">
<ul>
<li class="level2"><a href="index.php?module=office&amp;view=precandidates" title="Show
Precandidate Forms">Show Precandidate Forms</a></li>
<li class="level2"><a href="index.php?module=office&amp;view=applics" title="Show Student
Application Forms">Show Student Application Forms</a></li>
<li class="level2"><a href="index.php?module=office&amp;view=agreements" title="Show
Learning Agreements">Show Learning Agreements</a></li>
<li class="level2"><a href="index.php?module=learnagr_ch&amp;view=learnagrch" title="Show
Change of Learning Agreements">Show Change of Learning Agreements</a></li>
<li class="level2"><a href="index.php?module=trrec&amp;view=select" title="Show Transcript of
Records">Show Transcript of Records</a></li>
<li class="level2"><a href="index.php?module=abroad_stay&amp;view=select" title="Show
Certificates">Show Certificates</a></li>
<li class="level2"><a href="index.php?module=office&amp;view=extends" title="Show Extend
Mobility Period">Show Extend Mobility Period</a></li>
</ul>
</div>
{/option:oOffice}
Για να γίνει η σελίδα ακόµα πιο αποτελεσµατική, η οµάδα από την Βουλγαρία ασχολήθηκε µε
το κοµµάτι του deamon. Σε αυτό το στάδιο, η οµάδα δηµιούργησε µια 'αφύπνιση' κατά την οποία εάν
οι φόρµες που έπρεπε να συµπληρωθούν είχαν λιγότερο από τρεις µέρες για να λήξει η προθεσµία
τους, το λογισµικό στέλνει ειδοποίηση µε µηνυµα στον αντίστοιχο άνθρωπο. Το λογισµικό αυτό τρέχει
µέσα στην βάση δεδοµένων µια φορά την ηµέρα. ∆ηµιουργήθηκε µε κώδικα PHP.
Η οµάδα της Πορτογαλίας είχε αναλάβει το κοµµάτι των πληροφοριακών συστηµάτων. Το
κοµµάτι αυτό καταλαµβάνει ένα µεγάλο τµήµα της βάσεως δεδοµένων, καθώς υπάρχουν συνέχεια
δεδοµένα που πρέπει να εισαχθούν και να καταχωρηθούν. Περιέχουν αναφορές, υπολογιστικά φύλλα,
γραφικά διαγράµµατα και πίνακες που µπορούν να βοηθήσουν τους ενδιαφερόµενους να αναλύσουν
και να συγκρίνουν τα δεδοµένα για κάθε χώρα ξεχωριστά. Γι αυτόν τον λόγο, τα δεδοµένα που παίρνει
η βάση δεδοµένων πρέπει να ανανεώνεται κάθε εξάµηνο. Η διεπαφή πρέπει να είναι απλή, εύχρηστη
και ταυτόχρονα συγκεκριµένη.
75
Εικόνα 48 - EIS
Η επικοινωνία µε τον εξυπηρετητή γίνεται µέσα από το Jason. Το µήνυµα – αίτηση στέλνεται
στον Slave Server
{"jsonrpc":"2.0","id":1,
"method":"runScenario",
"params":{"cube":"fact_efficacy",
"columns":["dim_gender.dim_gender_id","dim_institution.institution_code"],
"rows": ["dim_mobility.dim_mobility_id","measure.M1"],"filters":{}}}
και µεταφράζεται :
{"jsonrpc":"2.0","result":[{"Mobility Type":"both","M | fkl | Applications":1130,"M | gent |
Applications":1280,"M | gun | Applications":1075,"M | isep | Applications":943,"F | fkl |
Applications":1006,"F | gent | Applications":964,"F | gun | Applications":1092,"F | isep |
Applications":1020},
{"Mobility Type":"intern","M | fkl | Applications":1262,"M | gent | Applications":1030,"M | gun
| Applications":1356,"M | isep | Applications":967,"F | fkl | Applications":884,"F | gent |
Applications":1170,"F | gun | Applications":1035,"F | isep | Applications":997},
{"Mobility Type":"study","M | fkl | Applications":976,"M | gent | Applications":966,"M | gun |
Applications":1101,"M | isep | Applications":1144,"F | fkl | Applications":784,"F | gent |
Applications":1087,"F | gun | Applications":851,"F | isep | Applications":1121}],"id":1}
76
Η οµάδα του Βελγίου βρισκόταν σε συνεχή επικοινωνία µαζί µας, αφού η δουλειά και των δύο
οµάδων ήταν σχεδόν η ίδια. Παραπάνω, έχουµε ήδη αναφερθεί στην διαδικασία που πρέπει να
ακολουθήσει ένας φοιτητής προκειµένου να ολοκληρώσει την συµπλήρωση των ηλεκτρονικών
εντύπων και να συµµετάσχει στο πρόγραµµα Erasmus. Στις παρακάτω εικόνες παρατίθενται οι φόρµες
που έχουµε δηµιουργήσει οι δύο οµάδες µαζί.
Αρχικά, ο φοιτητής πρέπει να συµπληρώσει την φόρµα εγγραφής, για να αποθηκευτούν τα
στοιχεία του στην βάση και να µπορεί απο κει και πέρα να έχει πάντα πρόσβαση απλά µε το username
και το password που έχει επιλέξει. Το 'αστεράκι' δίπλα από κάθε πεδίο δηλώνει ότι το πεδίο αυτό
πρέπει να συµπληρωθεί υποχρεωτικά και δίπλα στο password υπάρχει µια υποσηµείωση ότι ο κωδικός
που θα επιλέξει ο φοιτητής πρέπει να περιέχει τουλάχιστον 8 χαρακτήρες. Επειδή είχαµε λίγο χρόνο
στην διάθεσή µας για την ολοκλήρωση του project, δεν βάλαµε στην βάση πολλές χώρες στο πεδίο
του nationality. Αυτή η πρόσθεση µπορεί να γίνει στο µέλλον. Επίσης, στην φόρµα εγγραφής ζητείται
από τον φοιτητή να φορτώσει και µια φωτογραφία του, όπως συµβαίνει και στην έντυπη φόρµα.
Εικόνα 49 – Register Form
77
Η φόρµα αυτή συµπληρώνεται αποκλειστικά από τους φοιτητές. Αφού συµπληρωθεί η αίτηση,
τους αποστέλεται ένα mail στο email που έχουν συµπληρώσει στο αντίστοιχο πεδίο. Το µήνυµα αυτό
περιέχει µέσα ένα σύνδεσµο στον οποίο ο φοιτητής πρέπει να κάνει 'κλικ' για να µπει στην σελίδα και
να πιστοποιήσει την εγγραφή του. Εκτός από το login που εµφανίζεται στην αρχική σελίδα, υπάρχει
και ξεχωριστό tab που µπορεί ο φοιτητής να γράψει τους κωδικούς του και να εισέλθει στις υπόλοιπες
φόρµες.
Εικόνα 50 - Login
Στην περίπτωση που καποιος έχει ξεχάσει τον κωδικό του, υπάρχει κάτω από το πεδίο του password
ένας σύνδεσµος “forgot your password”. Ο φοιτητής µπορεί να πατήσει αυτόν τον σύνδεσµο και η
σελίδα θα τον πάει σε ένα καινούριο tab στο οποίο θα ζητηθεί πάλι το email του. Αφού το
πληκτρολογήσει και πατήσει το κουµπί “send a new passord” , θα του αποσταλεί ένα µήνυµα, όπου θα
υπάρχει ένα καινούριο password.
Εικόνα 51 – Forgot Password
78
Εικόνα 52 – New Password Sent
Εάν πληκτρολογηθεί λάθος το email το σύστηµα του επιστρέφει την εξής απάντηση:
Προκειµένου να είναι πιο ασφαλής και συγκεκριµένη η εγγραφή του φοιτητή, σε όλες τις
φόρµες που πρέπει να συµπληρωθούν έχουµε φτιάξει µε κώδικα Javascript εφαρµογές µικρές που
καθοδηγούν τον ενδιαφερόµενο ώστε να συµπληρωθούν σωστά τα πεδία και να αποθηκευτούν στην
βάση όλα τα στοιχεία σε ίδια µορφή. Για την διευκόλυνσή µας, χρησιµοποιήσαµε την βιβλιοθήκη
jQuery Validation Engine. Το µεγαλύτερο πλεονέκτηµα της βιβλιοθήκης αυτής σε σχέση µε τις
υπόλοιπες είναι ότι κάνει έλεγχο σε κάθε πεδίο της φόρµας ξεχωριστά και όχι αφού έχει ήδη
συµπληρωθεί η φόρµα.
Ένα άλλο πλεονέκτηµα της βιβλιοθήκης αυτής είναι ότι µπορεί εύκολα κάποιος να την
ενσωµατώσει στον κώδικά του, πχ
<input type=”text”class=”validate[required,custom[email]]” name=”email” />
79
Εικόνα 53 – Javascript στην φόρµα Registration
Στο πεδίο του password, µέσα στο .tpl καλείται ένα script σε javascript το οποίο ελέγχει αν το
pasword που έχει πκηκτρολογηθεί είναι επαρκές ή όχι.
<div class="TRdiv">
<label for="password"><span>Password: </span></label>
<input value="{$password|htmlentities}" class="validate[required,custom[onlyLetterNumber]]
text-input" type="password" name="password" id="password" />
<span class="req" id="msgPassword">{$msgPassword|htmlentities}</span>
<script type="text/javascript">
jQuery('#password').pstrength();
</script>
</div>
Εικόνα 54 – Strength of password
80
Εικόνα 55 – Weak password
Σε περίπτωση που κάποιος προσπαθήσει να κάνει εγγραφή στο σύστηµα ενώ έχει ήδη ξανακάνει και
εισάγει το ίδιο email, η σελίδα του επιστρέφει µε την βοήθεια της javascript το µήνυµα ότι το email
έχει ήδη χρησιµοποιηθεί για εγγραφή.
<div class="mainDiv">
{option:oSuccess}
<h3>Your email has been succesfully validated.</h3>
<form action=" " method="post" enctype="multipart/form-data">
<fieldset>
<legend>Login</legend>
<div class="TRdiv">
<label>Email</label>
<input class="field" type="text" name="Email" />
</div>
<div class="TRdiv">
<label>Password</label>
<input class="field" type="password" name="Password"/>
</div>
<div class="TRdiv">
<input type="hidden" name="formAction" id="formLogin"
value="mainLogin" />
<input class="button" name="btnLogin" id="btnLogin" type="submit"
value="Login"/>
</div>
</fieldset>
</form>
{/option:oSuccess}
{option:oNoSuccess}
<h3>Your email couldn't be validated</h3>
{/option:oNoSuccess}
</div>
81
Εικόνα 56 – valid email
Εάν κάποιος προσπαθήσει να κάνει login χωρίς πρώτα να έχει κάνει εγγραφή στο σύστηµα,
τότε του επιστρέφεται µήνυµα ότι το σύστηµα δεν τον βρίσκει και τυ υπενθυµίζει να κάνει πρώτα
εγγραφή. Αυτό γίνεται µέσα απο µια function σε php που καλείται από το αντίστοιχο τµήµα του html.
public function showLogin() {
$this->mainTplAssigns('Login');
$this->checkLogged();
if (PlonkFilter::getGetValue('error') === '1') {
$this->pageTpl->assign('errorMsg', 'Username or password is incorrect');
} else if (PlonkFilter::getGetValue('error') === '2') {
$this->pageTpl->assign('errorMsg', 'We couldn\'t find you. Is it possible you don\'t have an <a
href="index.php?module=register&view=register" title="Create account">account</a> yet?');
} else {
$this->pageTpl->assign('errorMsg', '');
}
}
Μέσα στον φάκελο modules υπάρχει για κάθε µοντέλο ξεχωριστά ένα αρχείο java.tpl µέσα
από το οποίο καλούνται οι συναρτήσεις της βιβλιοθήκης της jquery. Η βιβλιοθήκη είναι
αποθηκευµένη στον φάκελο library → validation µέσα στο framework plonk. Παρακάτω παρατίθενται
τα scripts που χρησιµοποιήσαµε για να καλούµε τις συνασρτήσεις για την φόρµα εγγραφής.
<script type="text/javascript" src="./core/js/jquery/jquery-1.5.js"></script>
<script type="text/javascript" src="./core/js/progressbar/js/jquery.progressbar.js"></script>
<script type="text/javascript" src="./core/js/jquery/jquery.pstrength-min.1.2.js"></script>
<script type="text/javascript" src="./core/js/jquery/jquery.validationEngine.js"></script>
<script type="text/javascript" src="./core/js/jquery/jquery.validationEngine-en.js"></script>
<script type="text/javascript" src="./core/js/jquery/jquery.MultiFile.js"></script>
<link rel="stylesheet" href="./core/css/validationEngine.jquery.css" type="text/css" />
<script type="text/javascript">
jQuery(document).ready(function(){
// binds form submission and fields to the validation engine
jQuery("#register").validationEngine(); });
</script>
82
Εικόνα 57 – error in login
Από τη µεριά του server, ο έλεγχος σφαλµάτων γίνεται µέσα από την βιβλιοθήκη benjaminkeen.com
PHP validation. Επιλέξαµε αυτήν την βιβλιοθήκη γιατί είναι εύκολο να ενσωµατωθεί στον κώδικα και
να τροποποιηθεί. Όταν ο server βρίσκει λάθος στα στοιχεία, ενηµερώνει την φόρµα.
private function fillRules() {
$this->rules[] = "required,familyName,Last name is required.";
$this->rules[] = "required,firstName,First name is required.";
$this->rules[] = "required,email, Email address is required.";
$this->rules[] = "valid_email,email,Please enter a valid email address";
$this->rules[] = "required,password,Password is required";
$this->rules[] = "length>8,password,Password minimum 8 characters";
$this->rules[] = "same_as,password,password2,Passwords do not match.";
$this->rules[] = "required,birthPlace,Birthplace is required";
$this->rules[] = "required,mobilePhone,Phone number is required";
$this->rules[] = "required,telephone,Phone number is required";
$this->rules[] = "required,street,Street + NR = required";
$this->rules[] = "required,city,City is required";
$this->rules[] = "required,postalCode,Postal Code is required";
$this->rules[] = "is_alpha,postalCode,Only digits allowed in Postal Code";
$this->rules[] = "required,nationality,Choose a country";
$this->rules[] = "required,password2,Password 2 required";
$this->rules[] = "required,birthDate,Date wrong format";}
83
Εικόνα 58 – Javascript στην φόρµα Accomodation
Η οµάδα της Ελλάδας ασχολήθηκε κυρίως µε τις φόρµες που πρέπει να συµπληρωθούν από
τους συντονιστές, δηλαδή τις φόρµες άφιξης, διαµονής και αποχώρησης, αλλά και την φόρµα για την
αίτηση καταλύµατος από τη µεριά του φοιτητή. Αυτό σηµαίνει ότι η οµάδα αυτή ασχολήθηκε
περισσότερο µε την βάση δεδοµένων, καθώς στις περισσότερες φόρµες τα πεδία πρέπει να τραβάνε
δεδοµένα κατευθείαν από την βάση δεδοµένων και να τα εµφανίζουν.
Και σε αυτές τις φόρµες, έχουν χρησιµοποιηθεί οι βιβλιοθήκες για τον client και τον server για
έλεγχο σφαλµάτων.
Στις παραπάνω εικόνες είδαµε παραδείγµατα από τα form checking client – server.
Για τα πεδία που πρέπει να συµπληρωθούν µέσα από την βάση – όπως είναι η εικόνα παρακάτω,
χρησιµοποιήσαµε έναν αντίστοιχο κώδικα σαν αυτόν στην συνέχεια που δείχνει µόνο το κοµµάτι των
στοιχείων που συµπληρώνονται από την βάση κατευθείαν.
<div class="leftAlDiv">
<p class="minHead">Student Information</p>
<div ><span class="spleft">First Name :</span><span class="spright" id="lol"
name="lol">{$stFirstName}</span></div>
<div ><span class="spleft">Last Name :</span><span
class="spright">{$stLastName}</span></div>
<div ><span class="spleft">Gender :</span><span class="spright">{$stGender}</span></div>
<div ><span class="spleft">Date of Birth :</span><span
class="spright">{$stDtBirh}</span></div>
84
Εικόνα 59 – Transcript of Records
Μέσα στο αρχείο java.tpl του transcript of records έχουµε καλέσει όλα τα script για να γίνεται ο
έλεγχος των µαθηµάτων και των αντίστοιχων βαθµών πριν αυτά εµφανιστούν στην ιστοσελίδα.
<script type="text/javascript" src="./core/js/jquery/jquery-1.5.js"></script>
<script type="text/javascript" src="./core/js/jquery/jquery.validationEngine.js"></script>
<script type="text/javascript" src="./core/js/jquery/jquery.validationEngine-en.js"></script>
<script type="text/javascript" src="./core/js/Custom/custom.js" type="text/javascript" charset="utf-8">
</script>
<script type="text/javascript" src="./core/js/jquery/sorttable.js" type="text/javascript"></script>
<link rel="stylesheet" href="./core/css/validationEngine.jquery.css" type="text/css" />
<link rel="stylesheet" href="./core/css/Style.css" type="text/css" media="screen"/>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#form1").validationEngine();
});
</script>
Για λόγους εµφάνισης κυρίως, αποφασίσαµε να φτιάξουµε ένα layout για την αναζήτηση των
φοιτητών από τη µεριά του συντονιστή, όπου ο συντονιστής θα µπορεί να κάνει αναζήτηση του
φοιτητή είτε από το ονοµατεπώνυµο είτε από τον αριθµό µητρώου. Όταν θα βρεί τον φοιτητή που
επιθυµεί, δίπλα στο ονοµά του θα εµφανίχεται ένα βελάκι το οποίο πατώντας το σε παραπέµπει
κατευθείαν στην φόρµα που χρειάζεται , ενώ παρέχει αυτόµατα και τα στοιχεία του φοιτητή.
85
Εικόνα 60 – Επιλογή φοιτητή
Εικόνα 61 – Certficate of Arrival / Departure
Εικόνα 62 – Παράδειγµα Certficate of Staying
86
Εικόνα 63 – Παράδειγµα Accomodation
Το τµήµα της αίτησης εξετάσεων ήταν επίσης της Βουλγαρίας. Για την δηµιουργία του χρειάστηκαν
τα ίδια εργαλεία µε τα δικά µας, PHP ενσωµατωµένη σε κείµενο HTML και MySQL για την βάση
δεδοµένων. Με το κουµπί 'manage exams' στέλνεται µήνυµα στον συντονιστή του αντίστοιχου
ιδρύµατος που επιθυµεί ο φοιτητής να εξεταστεί στο µάθηµα. Από τη µεριά του φοιτητή υπάρχει η
επιφάνεια παρακάτω:
87
Από τη µεριά του συντονιστή
υντονιστή η επιφάνεια χρήστη είναι η εξής
εξής:
Στο παρακάτω διάγραµµα φαίνονται τα βήµατα που πρέπει να κάνει ο φοιτητής για να δηλώσει ότι
επιθυµεί να δώσει εξετάσεις.
Αφού ακολουθήσει τα βήµατα αυτά
αυτά, ο συντονιστής σε συνεργασία µε τον αντίστοιχο καθηγητή θα
πρέπει να απαντήσει θετικά ή αρνητικά
αρνητικά. Το σχεδιάγραµµα δείχνει την πορεία που πρέπει να
ακολουθήσει ο συντονιστής.
88
Η αντιστοίχηση µαθηµάτων µεταξύ των δύο ιδρυµάτων δε µπόρεσε να επιτευχθεί
επιτευχθεί, διότι η εν λόγω
οµάδα αποχώρησε από το project και δεν υπήρχε αρκετός καιρός για να πραγµατοποιηθεί από τους
υπόλοιπους.
89
5. ΑΠΟΤΕΛΕΣΜΑΤΑ
Μετά από 3 µήνες δουλειάς, φτάσαµε στο τέλος της εργασίας MUTW. Τις τελευταίες 103
µέρες πετύχαµε πολλούς στόχους και είχαµε µια παραγωγική περίοδο όλοι µαζί σε µια οµάδα
πανευρωπαικού τύπου. Σκοπός µας ήταν να δηµιουργήσουµε µια διαδικτυακή εφαρµογή που θα
καλύπτει όλες τις απαραίτητες ανάγκες για την συµµετοχή στο πρόγραµµα Erasmus. Σε περισσότερες
από 30 συναντήσεις συζητήσαµε το 'χτίσιµο' της εφαρµογής, τα δεδοµένα προβλήµατα αλλά και
συντονίζαµε τη µελλοντική µας εργασία. Μετά από σκληρή δουλειά δηµιοργήσαµε τελικά την
εφαρµογή Erasmusline, που ελπίζουµε να ανταποκρίνεται στις πραγµατικές ανάγκες των
συµµετεχόντων, αλλά ταυτόχρονα είναι και το αποτέλεσµα της τρίµηνης οµαδικής προσπάθειας.
Κάθε οµάδα είχε τους δικούς της στόχους να εκπληρώσει. Παρακάτω παρατίθενται οι στόχοι
του κάθε πακέτου.
P1 – Config
•
∆ηµιουργία βάσης δεδοµένων
(Γερµανία)
•
κεντρική σελίδα και µενού
•
σχεδιασµός ιστοσελίδας
•
διαχείρηση δεδοµένων
•
διαχείρηση χρήστη
•
άδεια πρόσβασης
P2 – Infox
(Γερµανία)
•
•
•
Ανταλλαγή πληροφοριών µε JSON και cURL
ανταλλαγή αρχείων µε cURL
κρυπτογράφηση
P3 – Alert
(Βουλγαρία)
•
Αποστολή µηνυµάτων σε περίπτωση εισβολής ιού
P4 – Out
(Βέλγιο)
•
•
•
•
•
Σχεδιασµός ροής εξερχόντων
σχεδιασµός φόρµας
πρώτη φάση υποψηφίου
δεύτερη φάση υποψηφίου
φόρµα διαµονής
P5 – In
(Ελλάδα)
•
•
•
•
•
Σχεδιασµός φόρµας
λειτουργικότητα σε PHP
επικύρωση σε Javascript, PHP, jQuery
αποθήκευση – ανάκτηση δεδοµένων µε χρήση MySQL
φόρµες µηνυµάτων µεταξύ συντονιστών
P6 – Exam
(Βουλγαρία)
•
•
Αίτηµα φοιτητή για γραπτές εξετάσεις στο πανεπιστήµιο αποδοχής
ο συντονιστής δέχεται – απορρίπτει το αίτηµα
P7 – Match
(Ισλανδία)
•
•
•
Ανεύρεση πανεπιστηµίου και µαθηµάτων
συσχετισµός µαθηµάτων
λίστα συσχετισµένων µαθηµάτων
•
•
Ενσωµάτωση βάσης δεδοµένων στην σελίδα
EIS web-interface σχεδιασµός και ενσωµάτωση
P8 – Stats
(Πορτογαλία)
90
Εκτός από τα απτά αποτελέσµατα, η πτυχιακή αυτή µας οφέλησε στο γεγονός ότι και οι δύο
χρησιµοποιήσαµε για πρώτη φορά τα προγράµµατα αυτά , έτσι κερδίσαµε και την τεχνογνωσία των
προγραµµάτων. Τέλος, το πρακτικό κοµµάτι της πτυχιακής µπορεί να χρησιµοποιηθεί µελλοντικά από
άλλους προγραµµατιστές, να τροποποιηθεί και να τελειοποιηθεί έτσι ώστε να µπορέσει να βγει στο
εµπόριο.
5.1 Συµπεράσµατα
∆εδοµένου του γεγονότος ότι η εργασία αυτή είναι αποτέλεσµα συµµετοχής ανθρώπων απο
όλη την Ευρώπη, ένα συµπέρασµα στο οποίο καταλήξαµε έιναι ότι µε τον συνδυασµό της
τεχνογνωσίας που προσέφερε η κάθε οµάδα από την χώρα της, πετύχαµε τους στόχους µας και ζήσαµε
µια µοναδική εµπειρία ανάµιξης πολιτισµού και κουλτούρας. ∆ηµιουργήσαµε ένα πρότυπο πάνω στο
οποίο µπορούν µελλοντικά να το εξελίξουν και να κάνουν τυχόν τροποποιήσεις.
5.2 Μελλοντική Εργασία και Επεκτάσεις
Η εφαρµογή που δηµιοργήθηκε, καλύπτει τις περισσότερες από τις ανάγκες που έχουν οι
συµµετέχοντες του προγράµµατος Erasmus. Ωστόσο, κυρίως λόγω της έλλειψης χρόνου, η εφαρµογή
δε µπόρεσε να τελειοποιηθεί µε αποτέλεσµα να υπάρχουν κάποιες µελλοντικές εργασιές που µπορούν
να γίνουν πάνω στην εφαρµογή. Παρακάτω παρατίθενται οι εργασίες αυτές.
α) τα πρότυπα προσβασιµότητας
Για να συνάδει µε τα πρότυπα της Ευρωπαϊκής Ένωσης η ιστοσελίδα πρέπει να ταιριάζει µε το
πρότυπο “Παγκόσµιος Ιστός του W3C Initiative για την Προσβασιµότητα (WAI)” , κυρίως µε την
δεύτερη έκδοση του Web Content Accessibility Guidelines (WCAG v2). Για την επίτευξη αυτού του
στόχου η ιστοσελίδα πρέπει να βελτιωθεί ώστε να ταιριάζει µε όλες τις απαιτήσεις που έχουν τα άτοµα
µε ειδικές ανάγκες ώστε να έχουν απεριόριστη πρόσβαση στην εφαρµογή ErasmusLine.
β) την διαδικασία πρακτικής άσκησης
Αποδείχθηκε ότι η διαδικασία της πρακτικής άσκησης είναι µια περίπλοκη διαδικασία. Λόγω της
υψηλότερης προτεραιότητας της διαδικασίας ανταλλαγής πανεπιστήµιου δεν θα µπορούσε να
ολοκληρωθεί εγκαίρως.
γ) την ολοκλήρωση της Επίσηµης Σύµβασης Erasmus
Η επίσηµη σύµβαση Erasmus είναι ένα έγγραφο το οποίο είναι ειδικό και συγκεκριµένο για κάθε
ίδρυµα. Θα πρέπει να υπάρχει µια διαδικασία τυποποίησης που να περιλαµβάνει µια φόρµα στην
εφαρµογή.
δ) ένταξη ανάκτησης δεδοµένων
Η καλύτερη ενσωµάτωση µεταξύ του P1-Config και P4-Out για τη βελτίωση της ροής των
πληροφοριών στο ODS.
ε) Γενική διόρθωση σφαλµάτων
Το λογισµικό δεν υφίσταται σχεδόν ποτέ χωρίς σφάλµατα. Γενική διόρθωση σφαλµάτων πρέπει να
γίνει στις µελλοντικές εργασίες.
91
6. ΒΙΒΛΙΟΓΡΑΦΙΑ
➢
➢
➢
mess/
➢
➢
➢
➢
➢
PHP- βιβλιοθήκη
http://phpmailer.worxware.com/
http://www.benjaminkeen.com/software/php_validation/
JavaScript- βιβλιοθήκη
http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-isahttps://github.com/jquery/jquery-ui
http://plugins.jquery.com/project/jQueryProgressBar
http://www.eyecon.ro/datepicker/
http://plugins.jquery.com/project/maskedinput
http://plugins.jquery.com/project/password_strength
Internet- βιβλιοθήκη
➢
http://www.google.gr/url?sa=t&source=web&cd=5&ved=0CEMQFjAE&url=http%3A
%2F%2Fwww.cnc.uom.gr%2Fservices%2Fguides%2Finternet.doc&rct=j&q
➢
http://www.google.gr/url?sa=t&source=web&cd=4&ved=0CDsQFjAD&url=http%3A
%2F%2F1tee-renti.att.sch.gr%2Fimages%2FDIADIKTIO
NetBeans- βιβλιοθήκη
➢
➢
http://www.cs.uoi.gr/~zarras/se-notes/NetBeansPresentation.pdf-- netbeans
http://en.wikipedia.org/wiki/NetBeans-- netbeans
➢
Βασικές Γνώσεις
http://www.wikipedia.com
➢
http://www.php.net
Βιβλία – Ακαδηµαικά Άρθρα
➢
The data warehouse toolkit : the complete guide to dimensional modeling / Ralph Kimball,
Margy Ross. - 2nd ed.
➢
Executive Information Systems: Development Lifecycle and Building by using the Business
➢
Inteligence Tools / Lungu Ion, Vatuiu Teodora.
➢
Building Information out of Data: Executive Information System at Penn State University /
➢
The Pennsylvania State University Executive Information System Coordinating Committee
➢
Building and Optimizing Data Warehouse "Star Schemas" with MySQL / Bert Scalzo
➢
➢
Άλλα άρθρα
The Erasmus Programme December 2010 – A Statistical Overview / European
Commission, Education and Culture DG
➢
Ιστοσελίδες
Saiku – Next Generation Open Source Analytics / http://www.analytical-labs.com
92
➢
➢
Data Warehouse – GeekInterview / http://www.learn.geekinterview.com/data-warehouse/
LearnDataModeling.com / http://www.learndatamodeling.com/
➢
Open Source Business Intelligence / http://www.squidoo.com/osbi
93
Fly UP