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



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

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

Ανάπτυξη εφαρμογής ηλεκτρονικού πίνακα ανακοινώσεων για φορητή συσκευή

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο

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

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

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

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

ANDROID Προγραμματισμός Εφαρμογών

XAMPP Apache MySQL PHP javascript xampp

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

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

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

ΠΡΟΤΑΣΗ-ΑΝΑΘΕΣΗ ΕΡΓΟΥ ΠΟΥ ΑΦΟΡΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ WEB SITE ΓΙΑ ΤΗΝ ΕΤΑΙΡΕΙΑ ΣΑΣ ESHOP

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

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

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

ΚΕΠΛΗΝΕΤ ΕΒΡΟΥ. Καλτσίδης Χρήστος

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

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

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

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

Information Technology for Business

Εφαρµογές και Περιβάλλοντα Εργασίας AJAX

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

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

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

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

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

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

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

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

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

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

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

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

Το γεγονός ότι αποτελεί λογισµικό ανοικτού κώδικα το καθιστά αρκετά ευέλικτο σε συνεχείς αλλαγές και βελτιώσεις. Υπάρχει µια πληθώρα χρηστών που το χρ

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

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android

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

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

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

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

Business Software & Networks. Λύσεις Προώθησης Πωλήσεων µε τη πλατφόρµα mobile server. salesman. ing software platform.

ΠΡΟΤΑΣΗ-ΑΝΑΘΕΣΗ ΕΡΓΟΥ ΠΟΥ ΑΦΟΡΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ WEB SITE ΓΙΑ ΤΗΝ ΕΤΑΙΡΕΙΑ ΣΑΣ

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

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΓΙΑ ΜΑΡΚΕΤΙΝΓΚ ( ιδάσκ. Καθηγητής: Α.Α. Οικονοµίδης) ΑΞΙΟΛΟΓΗΣΗ ΠΑΚΕΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΜΠΟΡΙΟΥ Product Scope 32 Bookmarks

ΤΕΙ Πειραιά, Τμήμα Αυτοματισμού Π. Ράλλη & Θηβών 250, Αιγάλεω ΠΤΥΧΙΑΚΉ ΕΡΓΑΣΙΑ

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ

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

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Vodafone Business Connect

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

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

Κινητές τεχνολογίες;

Ρυθμίσεις εγκατάστασης ονόματος χώρου σε πίνακα ελέγχου plesk

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

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση

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

Πλοήγηση www / Με τον Internet Explorer

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

Εγχειρίδιο Χρήστη - Μαθητή

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗ ΧΡΗΣΗ ΤΟΥ CONTROL PANEL RACKSPACE

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

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

Μελέτη περίπτωσης συστήµατος διαχείρισης οπτικοακουστικού περιεχοµένου δηµιουργηµένου από χρήστες Flickr

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

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, PIRCH 32 v0.92b

Linux Terminal Server Project

Οδηγίες για συμμετοχή σε τηλεδιασκέψεις με χρήση Cisco WebEx

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

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

ICOP - ΥΠΗΡΕΣΙΕΣ - INTERNET WEBMARKETING ΠΡΟΣΦΟΡΑ ΣΥΣΤΗΜΑΤΑ ΦΙΛΟΞΕΝΙΑΣ

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

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

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

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

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

Transcript:

ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τίτλος: Σύστηµα κράτησης θέσεων θεάτρου Αγγλικός τίτλος: Theatre booking-seat system ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ των Αντωνούλα Παναγιώτη Α.Μ. 1225 Αντάρα Λάµπρου Α.Μ. 1317 Επιβλέπων καθηγητής: ρ. Μωυσιάδης Ελευθέριος.

Πίνακας περιεχοµένων Πίνακας Περιεχοµένων Πίνακας Εικόνων Ευχαριστίες Περίληψη Abstract ΕΙΣΑΓΩΓΗ σελ2 σελ6 σελ10 σελ11 σελ12 σελ13 ΚΕΦΑΛΑΙΟ 1 ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΤΟΥ ΚΙΝΗΜΑΤΟΓΡΑΦΟ 1.1Τεχνολογίες που χρησιµοποιήθηκαν κατά τη δηµιουργία του site. σελ14 1.2 Η γλώσσα προγραµµατισµού php. σελ14 1.2.1 Ιστορικά - Πως δηµιουργήθηκε η γλώσσα προγραµµατισµού php και πως λειτουργεί σήµερα; σελ14 1.2.2 Ορισµός της γλώσσας προγραµµατισµού php και παράδειγµα της; σελ15 1.2.3 Πλεονεκτήµατα της php; σελ15 1.3 Tι είναι το phpmyadmin; σελ16 1.3.1 υνατότητες του phpmyadmin. σελ16 1.4 Τι είναι η MySQL; σελ17 1.4.1 Πλεονεκτήµατα της MySQL. σελ17 1.5 Τι είναι η τεχνολογία html5; σελ18 1.5.1 Τι προσφέρει η τεχνολογία html5; σελ18 1.5.2 Ποια είναι τα πλεονεκτήµατα και τα µειονεκτήµατα της τεχνολογίας html5; σελ18 1.6 Τι είναι η τεχνολογία ajax και ποια η χρησιµότητα της; σελ18 1.6.1 Πως λειτουργεί η τεχνολογία ajax; σελ19 1.6.2 Πλεονεκτήµατα και µειονεκτήµατα της τεχνολογίας ajax; σελ19 1.6.3 Τεχνολογίες που χρησιµοποιεί η τεχνολογία ajax; σελ20 1.7 Τι είναι ο Web Host; σελ20 1.7.1 Τι είναι το Web Hosting Φιλοξενεία ιστοσελίδων; σελ21 1.8 Τι είναι ο Server; σελ22 1.9 Πως πρέπει να διαλέξετε το κατάλληλο πακέτο Web Hosting; σελ23 1.10 Τι είναι ο Server, Web Server και Web Client; σελ24 1.11 Τι είναι ο Τοπικός Server Apache; σελ25 ~ 2 ~

ΚΕΦΑΛΑΙΟ 2 ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ ANDROID 2.1 Τι είναι το Android; σελ26 2.2 Εφαρµογές Android σελ26 2.3 Ιστορικό Ενηµερώσεων σελ27 2.3.1 Android 1.5 Cupcake σελ28 2.3.2 Android 1.6 Donut σελ29 2.3.3 Android 2.0/2.1 Éclair σελ29 2.3.4 Android 2.2 Froyo σελ30 2.3.5 Android 2.3 Gingerbread σελ30 2.3.6 Android 3.0 Honeycomb σελ31 2.3.7 Android 4.0 Ice Cream Sandwich σελ32 2.3.8 Android 4.1 Jelly Bean σελ32 2.3.9 Android 4.4 Kitkat σελ33 2.4 Αρχιτεκτονική του Android σελ33 2.4.1 Πυρήνας Linux (Linux Kernel) σελ34 2.4.2 Βιβλιοθήκες σελ35 2.4.3 Η εικονική µηχανή Dalvik σελ36 2.4.4 Χρόνος Εκτέλεσης Εφαρµογής (Android Runtime) σελ36 2.4.5 Πλαίσιο Εφαρµογής (Application Framework) σελ36 2.5 Στο εσωτερικό µιας εφαρµογής του Android σελ38 2.5.1 Το αρχείο AndroidManifest.xml σελ39 2.5.2 Οι φάκελοι src & res σελ39 2.5.3 Οι υπόλοιποι φάκελοι του project σελ39 2.5.4 οµικά Μέρη µιας Εφαρµογής σελ40 2.6 Ασφάλεια στο Android σελ41 ΚΕΦΑΛΑΙΟ 3 ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ 3.1 Βάσεις εδοµένων σελ42 3.2 Τι είναι η βάση δεδοµένων σελ42 3.3 Σύστηµα ιαχείρισης Βάσεων εδοµένων σελ42 3.3.1 Χαρακτηριστικά της Προσέγγισης Βάσης εδοµένων σελ44 ΚΕΦΑΛΑΙΟ 4 ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΑΝ ΓΙΑ ΤΗΝ ΒΑΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΤΗΝ ΗΜΙΟΥΡΓΙΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΤΟΥ ΚΙΝΗΜΑΤΟΓΡΑΦΟΥ 4.1 Τι είναι ο XAMPP; σελ45 4.1.1 Αρχιτεκτονική του XAMPP; σελ45 4.1.2 Απαιτήσεις και χαρακτηριστικά του XAMPP. σελ46 ~ 3 ~

4.1.3 Εγκατάσταση του XAMPP. σελ47 4.2 Εγκατάσταση του NOTEPAD++. σελ52 ΚΕΦΑΛΑΙΟ 5 ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΑΝ ΓΙΑ ΤΗΝ ANDROID ΕΦΑΡΜΟΓΗ 5.1 Μια Android application µε την χρήση των SDK και Eclipse σελ57 5.2 Προετοιµασία σελ57 5.2.1 Εγκατάσταση του Eclipse IDE σελ57 5.2.2 Εγκατάσταση του ADT plugin για το Eclipse σελ58 5.2.3 Εγκατάσταση του Android SDK σελ60 5.3 ηµιουργία Android-εφαρµογής5.4 AndroidScreencast Πρόγραµµα για παρουσίαση της πτύχιακης σε υπολογιστή. σελ61 5.4 AndroidScreencast Πρόγραµµα για παρουσίαση της πτύχιακης σε υπολογιστή. σελ63 ΚΕΦΑΛΑΙΟ 6 Η ΒΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 6.1 Η δηµιουργία της βάσης σελ65 ΚΕΦΑΛΑΙΟ 7 Η ΕΦΑΡΜΟΓΗ ΤΗΣ ΙΣΤΟΣΕΛΙ ΑΣ 7.1 Συσχέτιση βάσης δεδοµένων µε την ιστοσελίδα σελ72 7.2 Εισαγωγή στην σελίδα του Admin σελ73 7.3 Οθόνη επιλογής ταινίας-ηµεροµηνίας σελ74 7.4 Οθόνη διαχείρισης θέσεων σελ76 7.5 Γραφικό περιβάλλον σελ77 7.6 Ανανέωση Βάσης στον πίνακα Customer σελ79 7.7 Αποστολή email σελ80 ΚΕΦΑΛΑΙΟ 8 TBS SYSTEM ANDROID APP 8.1 Εγκατάσταση του TBS-SYSTEM σελ83 8.2 Εκτέλεση και οθόνη εισαγωγής σελ84 8.3 Κεντρικό µενού-επιλογή ταινίας και ηµεροµηνίας σελ87 8.4 Πανοραµική εικόνα της κινηµατογραφικής αίθουσας-επιλογή θέσης σελ91 8.5 Φόρµα συµπλήρωσης στοιχείων σελ94 8.6 Σελίδα επιβεβαίωσης-confirm σελ97 ΚΕΦΑΛΑΙΟ 9 ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ σελ102 ~ 4 ~

ΚΕΦΑΛΑΙΟ 10 ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ 10.1 Μη φόρτωση των Java στοιχείων από την βάση δεδοµένων στην Android εφαρµογη. σελ103 10.2 Σε µεροικές android συσκεύες παρατηρήθηκε απρόσµενος τερµατισµός κρασάρισµα της εφαρµογής. σελ103 10.3 Πρόβληµα κατά την µεταφορά στον server όσο αναφορά την ιστιοσελίδα. σελ103 10.4 Πρόβληµα µε την µεταφορά στον Server όσον αφορά το sendmail σελ104 ΚΕΦΑΛΑΙΟ 11 ΕΠΙΛΟΓΟΣ σελ107 Βιβλιογραφία σελ108 ~ 5 ~

Πίνακας εικόνων : Εικόνα 1: Android 1.5 Cupcake Logo Εικόνα 2: Android 1.6 Donut Logo Εικόνα 3: Android 2.0/2.1 Eclair Logo σελ28 σελ29 σελ29 Εικόνα 4: Android 2.2 Froyo Logo σελ 30 Εικόνα 5: Android 2.3 Gingerbread Logo σελ 30 Εικόνα 6: Android 3.0 Honeycomb Logo σελ 31 Εικόνα 7: Android 4.0 Ice Cream Sandwich Logo σελ 32 Εικόνα 8: Android 4.1 Jelly Bean Logo σελ 32 Εικόνα 9: Android 4.4 Kitkat Logo σελ 33 Εικόνα 10: Αρχιτεκτονική Android σελ 34 Εικόνα 11: Android Framework σελ 38 Εικόνα 12: Σύστηµα διαχείρισης βάσεων δεδοµένων σελ 43 Εικόνα 13: Αρχική σελίδα του XAMPP σελ 46 Εικόνα 14: Επιλογή έκδοσης του XAMPP σελ 47 Εικόνα 15: Κατέβασµα του XAMPP σελ 48 Εικόνα 16: XAMPP Control Panel σελ 49 Εικόνα 17: Localhost του XAMPP σελ 50 Εικόνα 18: XAMPP Security σελ 51 Εικόνα 19: Login στο PhpMyAdmin σελ 51 Εικόνα 20: Create Database σελ 52 Εικόνα 21: Notepad ++ Επιλογή Γλώσσας σελ 53 Εικόνα 22: Notepad ++ Welcome σελ 53 ~ 6 ~

Εικόνα 23: Notepad ++ License Agreement Εικόνα 24: Notepad ++ Folder Selection Εικόνα 25: Notepad ++ Finish Εικόνα 26: Notepad ++ Τελικό περιβάλλον Εικόνα 27: Εγκατάσταση Java SE Εικόνα 28: Εγκατάσταση του ADT PlugIn Εικόνα 29: Ολοκλήρωση εγκατάστασης ADT PlugIn Εικόνα 30: Android SDK Installation Εικόνα 31: Eclipse Android Preferences Εικόνα 32: ηµιουργία AVD Εικόνα 33: ηµιουργία Android Project Εικόνα 34: Android ScreenCast Εικόνα 35: Το αρχικό µενού του PhpMyAdmin Εικόνα 36: Περιεχόµενα του loginuser Εικόνα 37: Movie Table Εικόνα 38: moviedate Table Εικόνα 39: chair Table Εικόνα 40: customer Table Εικόνα 41: Πίνακας συσχετίσεων βάσης Εικόνα 42: Login Page της ιστοσελίδας του κινηµατογράφου Εικόνα 43: Η οθόνη επιλογής ταινίας Εικόνα 44: Η οθόνη διαχείρισης θέσεων Εικόνα 45: Ενεργοποίηση Apache MySQL Mercury στο XAMPP σελ54 σελ55 σελ55 σελ56 σελ58 σελ59 σελ60 σελ61 σελ62 σελ62 σελ63 σελ64 σελ65 σελ66 σελ67 σελ68 σελ69 σελ70 σελ71 σελ73 σελ75 σελ77 σελ81 ~ 7 ~

Εικόνα 46: Επιλογή του TheaterBookingSeatSystem.apk Εικόνα 47: Ο χρήστης επιλέγει το install για την εγκατάσταση του TBS System Εικόνα 48: Εγκατάσταση της εφαρµογής σελ83 σελ83 σελ83 Εικόνα 49: Η εγκατάσταση έχει ολοκληρωθεί και η εφαρµογή TBS System είναι έτοιµη προς χρήση σελ83 Εικόνα 50: Ο χρήστης επιλέγει το TBS System και η εφαρµογή εκτελείται. Εικόνα 51: Το Welcome Screen της εφαρµογής Εικόνα 52: Το κεντρικό Μενού της εφαρµογής Εικόνα 53: Ο χρήστης επιλέγει ταινία Εικόνα 54: Ο χρήστης επιλέγει ώρα προβολής Εικόνα 55: Το υποβοηθητικό µενού της mymenu Εικόνα 56: Η Help_play.java Εικόνα 57: To activity επιλογής θέσεων Εικόνα 58: Το help_seat Εικόνα 59: Αν ο χρήστης δεν επιλέξει κάποια θέση εµφανίζεται λάθος Εικόνα 60: Ο χρήστης επιλέγει τις θέσεις που θέλει Εικόνα 61: Η φόρµα συµπλήρωσης στοιχείων Εικόνα 62: Η βοήθεια του Personal Data Εικόνα 63: Η εφαρµογή προτρέπει τον χρήστη να είσαγει τα στοιχεία του Εικόνα 64: Ο χρήστης έχει εισάγει εσφαλµένο όνοµα Εικόνα 65: Ο χρήστης έχει εισάγει εσφαλµένο email Εικόνα 66: Ο χρήστης έχει εισάγει εσφαλµένο τηλεφωνικό αριθµό Εικόνα 67: Η Confirm.java Εικόνα 68: Ολοκλήρωση της κράτησης σελ84 σελ85 σελ87 σελ88 σελ88 σελ89 σελ89 σελ90 σελ92 σελ92 σελ93 σελ94 σελ95 σελ95 σελ96 σελ96 σελ96 σελ97 σελ99 ~ 8 ~

Εικόνα 69: Ο χρήστης επιλέγει το yes Εικόνα 70: Μόλις πατήσει το yes η εφαρµογή επιστρέφει στο κεντρικό µενού Εικόνα 71 : Έαν ο χρήστης επιλέξει το Quit η εφαρµογή κλείνει Εικόνα 72: Η εφαρµογή έκλεισε µετά την επιλογή του χρήστη Εικόνα 73: Login στο Μandrill Εικόνα 74: SMTP API στο Mandrill σελ99 σελ100 σελ100 σελ100 σελ104 σελ105 ~ 9 ~

Ευχαριστίες Θέλουµε να ευχαριστήσουµε τις οικογένειες µας που µας στήριξαν για όλο αυτό το εξάµηνο, τον καθηγητή µας κύριο Μωυσιάδη που µας εµπιστεύτηκε την εκπόνηση της πτυχιακής αυτής, για όλη την βοήθεια και την καθοδήγηση του και τέλος το τµήµα της βιοµηχανικής πληροφορικής που µας έθεσε τις βάσεις. ~ 10 ~

ΠΕΡΙΛΗΨΗ Σκοπός της πτυχιακής εργασίας είναι η δηµιουργία µιας android εφαρµογής που θα επιτρέπει στον χρήστη την κράτηση θέσεων σε κινηµατογράφο. Η εφαρµογή αποτελείται από δυο λογισµικά συστήµατα : Στο πρώτο λογισµικό σύστηµα είναι η android εφαρµογή όπου ο πελάτης µπορεί να κάνει κράτιση θέσεων.αρχικά επιλέγει παράσταση και ώρα προβολής.στην συνέχεια επιλέγει θέση από µια πανοραµοική εικόνα της αίθουσας προβολής µέσω της οθόνης αφής του κινητού του.έπειτα ο χρήστης καλείται να συµπληρώσει µια φόρµα η οποία θα περιεχεί τα στοιχεία του, όπως ονοµατεπώνυµο email και τον αριθµό τηλεφώνου.και τέλος η εφαρµογή ζητάει µια επιβεβαίωση από τον χρήστη πριν την τελική κράτηση. Το δεύτερο λογισµικό σύστηµα είναι µια ιντερνετική εφαρµογή η οποία δίνει το δικαίωµα στον υπεύθυνο του συστήµατος να διαχειρίζεται τις κρατήσεις του κινηµατογράφου.αρχικά θα του ζητηθεί να κάνει login χρησιµοποιώντας το username του και το password του.στην συνέχεια επιλέγει παράσταση και ώρα προβολής.ύστερα εµφανίζεται µια πανοραµοική εικόνα της αίθουσας προβολής και έχει την δυνατότητα να κάνει κράτηση ή να την ακυρώνει υπάρχουσες κρατήσεις, ενώ µπορεί να στέλνει ενηµερωτίκα email µαζικά και ατοµικά. Τα δυο λογισµικά συστήµατα επικοινωνούν µε τον server του συστήµατος στον οποίο βρίσκονται τα δεδοµένα των ταίνιων, ηµεροµηνιών καθώς και η κατάσταση των θέσεων.ενώ µετά απο κάθε κράτηση τα στοιχεία του πέλατη αποθηκεύονται στην βάση δεδοµένων του server. ~ 11 ~

ABSTRACT This dissertation describes the creation of an android application that would allow a customer to book seats in a cinema. The application is comprised of two software systems: The first software system is an android application where customers can book seats. Initially, customers pick a movie and preferred time of that movie. Next, they can select seats from a panoramic view of the theater using their mobile phone touchscreen. Then, the customer fills in a form with his or her personal information, such as last name, email and phone number. Lastly, the application requests confirmation from the user before finalizing the booking. The second software system is an internet application used by the system administrator in order to manage the cinema bookings. Initially the user will be asked to log in using their assigned username and password. Then the user selects the movie and time of the movie. A panoramic view of the theater appears and the user has the ability to make a booking, cancel existing bookings, while he a also has the ability to send mass or personalized informational emails. These two software systems communicate with the system server where the movie data, dates and booking statuses reside. While after each booking, the customer information is retained at server level. ~ 12 ~

ΕΙΣΑΓΩΓΗ Στην παρούσα πτυχιακή εργασία γίνεται χρήση διαφόρων τεχνολογιών του διαδικτύου για την δηµιουργία µίας δυναµικής ιστοσελίδας στην οποία οι εισερχόµενοι χρήστες θα µπορούν να ανασύρουν στατιστικά στοιχεία από την βάση δεδοµένων και να κάνουν συγκρίσεις αυτών. Επίσης οι ίδιοι χρήστες θα µπορούν να καταχωρούν στην βάση δεδοµένων διάφορα στοιχεία που αφορούν την πρακτική τους άσκηση. Για την δηµιουργία της ιστοσελίδας θα χρησιµοποιηθεί η γλώσσα διαδικτυακού προγραµµατισµού PHP η οποία διατίθεται δωρεάν. Για την υποστήριξη και δηµιουργία της βάσης δεδοµένων θα χρησιµοποιηθεί η γλώσσα MySQL η οποία είναι παράλληλα και προϊόν που διατίθεται δωρεάν ως πακέτο λογισµικού. Η ιστοσελίδα χρησιµοποιεί ακόµη την HTML γλώσσα για την δηµιουργία υποστήριξη των ιστοσελίδων καθώς και JavaScript σε κάποια σηµεία της. Για την υποστήριξη της PHP και όλου του περιβάλλοντος της εφαρµογής θα χρησιµοποιηθεί ο APACHE web server, που διατίθεται δωρεάν µέσω της σχετικής άδειας. Για την δηµιουργία της ANDROID application θα χρησιµοποιηθεί η γλώσσα JAVA XML. ~ 13 ~

ΚΕΦΑΛΑΙΟ 1 ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΤΟΥ ΚΙΝΗΜΑΤΟΓΡΑΦΟΥ 1.1 Τεχνολογίες που χρησιµοποιήθηκαν κατά τη δηµιουργία του site. Παρακάτω θα επισηµάνουµε λίγα πράγµατα για τις διάφορες τεχνολογίες που χρησιµοποιήσαµε κατά τη δηµιουργία του site µας και διάφορες από τις έννοιες και σηµασίες τους, όπως τη γλώσσα προγραµµατισµού php, τη βάση δεδοµένων σε SQL (phpmyadmin), για την MySQL βάση, για τον Server και WebServer, για την τεχνολογία html5 και ajax, για το Web Host και Web Hosting κ.α. 1.2 Η γλώσσα προγραµµατισµού php. Η PHP είναι µια γλώσσα προγραµµατισµού για web servers, χρήσιµη για δυναµικές ιστοσελίδες, οι οποίες µπορούν να διασυνδέσουν µε µια βάση δεδοµένων. Η PHP είναι δωρεάν για χρήση, και είναι η δηµοφιλέστερη για τους hosts Unix και Linux, αν και υπάρχουν εκδόσεις διαθέσιµες για τα Windows. 1.2.1 Ιστορικά - Πως δηµιουργήθηκε η γλώσσα προγραµµατισµού php και πως λειτουργεί σήµερα; Γλώσσα προγραµµατισµού για τη δηµιουργία σελίδων web µε δυναµικό περιεχόµενο. Μια σελίδα PHP περνά από επεξεργασία από συµβατό web server (π.χ. Apache ), ώστε να παραχθεί σε πραγµατικό χρόνο το τελικό περιεχόµενο, που θα σταλεί στο πρόγραµµα περιήγησης των επισκεπτών σε µορφή κώδικα HTML. Ένα αρχείο µε κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση (π.χ. *.php, *.php4, *.phtml κ.ά.). Η ενσωµάτωση κώδικα σε ένα αρχείο επέκτασης.html δεν θα λειτουργήσει και θα εµφανίσει στον browser τον κώδικα χωρίς καµία επεξεργασία, εκτός αν έχει γίνει η κατάλληλη ρύθµιση στα MIME types του server. Επίσης ακόµη κι όταν ένα αρχείο έχει την επέκταση.php, θα πρέπει ο server να είναι ρυθµισµένος για να επεξεργάζεται κώδικα PHP. Η ιστορία της 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 web sites που τη χρησιµοποιούσαν, ενώ αργότερα την ίδια χρονιά οι Andi Gutmans και Zeev Suraski ξαναέγραψαν τη γλώσσα από την αρχή, βασιζόµενοι όµως αρκετά στην PHP/FI 2.0. Έτσι η PHP έφθασε στην έκδοση 3.0 η οποία θύµιζε περισσότερο τη σηµερινή µορφή της. Στη συνέχεια, οι Zeev και Andi δηµιούργησαν την εταιρεία Zend (από τα αρχικά των ονοµάτων τους), η οποία συνεχίζει µέχρι και σήµερα την ανάπτυξη ~ 14 ~

και εξέλιξη της γλώσσας PHP. Ακολούθησε το 1998 η έκδοση 4 της PHP, τον Ιούλιο του 2004 διατέθηκε η έκδοση 5, ενώ αυτή τη στιγµή έχουν ήδη διατεθεί και τα πρώτα snapshots της επερχόµενης PHP 6, για οποιονδήποτε προγραµµατιστή θέλει να τη χρησιµοποιήσει. Σήµερα περισσότερα από 16.000.000 web sites, ποσοστό µεγαλύτερο από το 35% των ιστοσελίδων του ιαδικτύου, χρησιµοποιούν scripts γραµµένα µε τη γλώσσα PHP, ενώ το υπόλοιπο 65% το µοιράζονται στατικές σελίδες HTML και όλες οι άλλες γλώσσες προγραµµατισµού. Πρόκειται για µια εξέλιξη που ο ίδιος ο Rasmus Lerdorf σε πρόσφατη συνέντευξή του δήλωσε ότι δεν περίµενε όταν, πριν από 15 χρόνια, δηµιουργούσε τις πρώτες γραµµές κώδικα PHP. Τόνισε όµως ότι η PHP δεν θα είχε γίνει τόσο δηµοφιλής αν η εξέλιξή της είχε παραµείνει προσωπική του προσπάθεια και δεν είχε βοηθηθεί από τους Andi Gutmans, Zeev Suraski και την εθελοντική συµµετοχή προγραµµατιστών από ολόκληρο τον κόσµο. Τα περισσότερα web sites επί του παρόντος χρησιµοποιούν κυρίως τις εκδόσεις 4 και 5 της PHP. Με τις γλώσσες Perl και C/C++ στις οποίες έχει τις ρίζες της, η PHP έχει εξαιρετική οµοιότητα ως προς τον τρόπο σύνταξης, αλλά και πολλές εντολές της. 1.2.2 Ορισµός της γλώσσας προγραµµατισµού php και παράδειγµα της; Η γλώσσα προγραµµατισµού Php (Hypertext PreProcessor) έχει το ιδιαίτερο χαρακτηριστικό ότι ο κώδικάς της πρώτα µεταγλωττίζεται στον server και µετά φορτώνεται σαν ένα κανονικό html έγγραφο, χωρίς ο χρήστης να είναι σε θέση να δει τον αρχικό κώδικα. Με την τεχνολογία της Php µπορούµε να δηµιουργήσουµε δυναµικές ιστοσελίδες (dynamic web pages). Ανταγωνιστικές της τεχνολογίας Php είναι η τεχνολογία ASP (Active Server Pages) της εταιρείας Microsoft καθώς και η τεχνολογία CFML (ColdFusion Markup Language). Θα δούµε ένα πολύ απλό αρχικό παράδειγµα. Π.χ. Το παράδειγµα εκτυπώνει την αγγλική λέξη «Hello». <?php echo ""; echo "Hello"; echo "";?> 1.2.3 Πλεονεκτήµατα της php; Κάποιοι από τους ανταγωνιστές της PHP είναι η Perl, Microsoft ASP.NET, Java Server Pages(JSP), ColdFusion. Σε σύγκριση µε αυτά τα προϊόντα τα πλεονεκτήµατα της PHP είναι : 5. Υψηλή απόδοση 6. ιασυνδέσεις µε πολλά διαφορετικά συστήµατα βάσεων δεδοµένων ~ 15 ~

7. Ενσωµατωµένες βιβλιοθήκες για πολλές συνηθισµένες Web διαδικασίες 8. Χαµηλό κόστος 9. Ευκολία µάθησης και χρήσης 10. υνατή αντικειµενοστραφή υποστήριξη Μεταφερσιµότητα 10. ιαθεσιµότητα του κώδικα προέλευσης 11. ιαθεσιµότητα υποστήριξης 1.3 Tι είναι το phpmyadmin; Το phpmyadmin είναι µια εφαρµογή LAMP γραµµένη ειδικά για τη διαχείριση εξυπηρετητών MySQL. Γραµµένο σε PHP και προσβάσιµο µέσω ενός περιηγητή ιστοσελίδων, το phpmyadmin προσφέρει ένα γραφικό περιβάλλον για εργασίες διαχείρισης βάσεων δεδοµένων. Το phpmyadmin είναι ένα σύνολο από php scripts µε το οποίο διαχειριζόµαστε τις βάσεις δεδοµένων που έχουµε µέσω web. To phpmyadmin µπορεί να διαχειριστεί ένα ολόκληρο mysql server ή ακόµα και απλές βάσεις δεδοµένων όπου ο κάθε χρήστης έχει ένα λογαριασµό και µπορεί να δηµιουργήσει και να διαχειριστεί τις δικές του βάσεις δεδοµένων. Παρακάτω θα δούµε την διαδικασία εγκατάστασης της εφαρµογής. 1.3.1 υνατότητες του phpmyadmin. Το PhpMyAdmin µπορεί να : ηµιουργεί και να διαγράφει βάσεις δεδοµένων ηµιουργεί, τροποποιεί, διαγράφει, αντιγράφει και µετονοµάζει πίνακες Κάνει συντήρηση της βάσης Προσθέτει, διαγράφει και τροποποιεί πεδία πινάκων Εκτελεί ερωτήµατα SQL ακόµα και οµαδικά (batch) ιαχειρίζεται κλειδιά σε πεδία Φορτώνει αρχεία κειµένου σε πίνακες ηµιουργεί και διαβάζει πίνακες(που προέρχονται από dump βάσης) Εξάγει δεδοµένα σε µορφή CVS, XML και LATEX ιαχειρίζεται πολλούς διακοµιστές ιαχειρίζεται τους χρήστες MySQL και τα δικαιώµατα τους Ελέγχει την αναφορική δραστηριότητα των δεδοµένων των MyISAM πινάκων ηµιουργεί PDF γραφικών του layout της βάσης δεδοµένων Εκτελεί αναζητήσεις σε όλη τη βάση δεδοµένων ή µέρος αυτής Υποστηρίζει πίνακες InnoDB και ξένα κλειδιά Υποστηρίζει MySQLi, µια βελτιωµένη επέκταση του MySQLPhpMyAdmin ~ 16 ~

1.4 Τι είναι η MySQL; Η MySQL είναι ένα δυνατό, γρήγορο σύστηµα διαχείρισης σχεσιακής βάσης ανοικτού κώδικα όπως λέγεται (relational database management system - RDBMS) που χρησιµοποιεί την Structured Query Language (SQL), την πιο γνωστή γλώσσα για την προσθήκη, την πρόσβαση και την επεξεργασία δεδοµένων σε µία Βάση εδοµένων. Μία βάση δεδοµένων σας επιτρέπει να αποθηκεύετε, να αναζητάτε, να ταξινοµείτε και ν ανακαλείτε τα δεδοµένα σας αποτελεσµατικά. Ένας MySQL server αποτελείται από ένα σύνολο βάσεων δεδοµένων (databases). Κάθε βάση δεδοµένων είναι ένα σύνολο πινάκων (tables) παρόµοιων µε αυτών που µπορείτε να φτιάξετε σε ένα πρόγραµµα spreadsheet όπως το Excel. Οι γραµµές του πίνακα ονοµάζονται εγγραφές (records) και οι στήλες του πίνακα ονοµάζονται πεδία (fields). εν υπάρχει ουσιαστικό όριο στην ποσότητα βάσεων που περιέχονται στον server, στην ποσότητα πινάκων που περιέχονται στις βάσεις µα ούτε και στην ποσότητα πεδίων και εγγραφών που περιέχονται στους πίνακες. Τα πεδία των πινάκων µπορούν να περιέχουν µόνο ένα συγκεκριµένο τύπο πληροφορίας ο οποίος ορίζεται κατά την δηµιουργία του πίνακα. Για παράδειγµα ένα πεδίο που είναι ορισµένο ως ακέραιος αριθµός δεν είναι κατάλληλο για αποθήκευση δεκαδικού αριθµού ή κειµένου. Η δοµή αυτή χρησιµοποιείται από όλα τα σύγχρονα συστήµατα βάσεων δεδοµένων και έχει αποδειχτεί πολύ πρακτική για την αποθήκευση τεράστιων όγκων δοµηµένης πληροφορίας. Σε κάθε πίνακα βάσης δεδοµένων είναι σηµαντικό να υπάρχει µια στήλη (πεδίο) σε κάθε σειρά της οποίας να υπάρχει διαφορετική τιµή έτσι ώστε κάθε εγγραφή να αποκτήσει ένα µοναδικό χαρακτηριστικό, έναν «αριθµό ταυτότητας» µε τον οποίο να µπορούµε να αναφερόµαστε σε αυτήν. Το ιδιαίτερο αυτό πεδίο το ορίζουµε κατά την κατασκευή του πίνακα δίνοντάς του την ιδιότητα του πρωτεύοντος κλειδιού (primary key). 1.4.1 Πλεονεκτήµατα της MySQL. Μερικοί από τους κύριους ανταγωνιστές της Mysql είναι οι PostgreSQL, Microsoft SQL Server, Oracle. Η Mysql όµως διαφέρει γιατί έχει τα εξής πλεονεκτήµατα : Υψηλή απόδοση Χαµηλό κόστος Εύκολη διαµόρφωση και εκµάθηση Μεταφερσιµότητα ιαθεσιµότητα του κώδικα προέλευσης ιαθεσιµότητα υποστήριξης ~ 17 ~

1.5 Τι είναι η τεχνολογία html5; Το HTML5 (Hyper-Text Markup Language 5), είναι µια καινούρια τεχνολογία στην κατασκευή ιστοσελίδων και είναι η τελευταία έκδοση του HTML, το οποίο είναι η βασική γλώσσα προγραµµατισµού ιστοσελίδων 1.5.1 Τι προσφέρει η τεχνολογία html5; Το HTML5 προσφέρει πολύ περισσότερες δυνατότητες στις ιστοσελίδες, για παράδειγµα πιο πολλές επιλογές στην κατασκευή φορµών, όπως πεδία για e-mail, τηλέφωνα κλπ. Ακόµη, υποστηρίζεται η άµεση ενσωµάτωση βίντεο ή ήχου σε ιστοσελίδες, χωρίς την ανάγκη πρόσθετων. Περισσότερες πληροφορίες θα βρείτε παρακάτω. 1.5.2 Ποια είναι τα πλεονεκτήµατα και τα µειονεκτήµατα της τεχνολογίας html5; Πλεονεκτήµατα Επιτρέπει σε αυτούς που διαχειρίζονται ιστοσελίδες, να µπορούν να προσθέσουν περισσότερη λειτουργικότητα στην ιστοσελίδα τους, όταν µάλιστα συνδυάσουν και την επίσης καινούρια έκδοση του CSS, το CSS3. Μειονεκτήµατα Παρ' όλα αυτά, το HTML5 και το CSS3, δεν υποστηρίζεται από όλους τους browsers. Επίσης οι περισσότεροι από αυτούς κατά µεγάλο µέρος υποστηρίζουν το HTML5 µόνο µε τα δικά τους προθέµατα, για παράδειγµα, ο Firefox, χρησιµοποιεί (στο CSS3) το πρόθεµα -moz-, το Chrome και το WebKit το -webkit-, ενώ το Opera το πρόθεµα -o-. O Internet Explorer υποστηρίζει µόνο κατά 30% περίπου το HTML5, παρόλο που δεν χρειάζεται πρόθεµα. Παρ' όλα αυτά όµως, µέχρι το 2012 πιθανότατα όλοι οι browser θα υποστηρίζουν το HTML5, το CSS3 και κάποιες επιπλέον λειτουργίες που προστέθηκαν στο JavaScript. 1.6 Τι είναι η τεχνολογία ajax και ποια η χρησιµότητα της; Τα αρχικά προέρχονται από τις λέξεις Asynchronous JavaScript And XML και είναι ένας από τους κύριους αντιπροσώπους του επονοµαζόµενου web 2.0 [ µια νέα εποχή για το Internet µε κύρια στοιχεία τα wikis,τα blogs,τα Podcasts και γενικά την άµεση επικοινωνία του community των χρηστών του Internet ]. Η δηµιουργία µιας web εφαρµογής η οποία χρησιµοποιεί την AJAX τεχνολογία µπορεί καµιά φορά να αποδειχτεί πιο δύσκολη από το κλασσικό τρόπο. Αυτή η τεχνολογία βοηθά γενικώς στην ευχρηστία και στο να γίνουν οι εφαρµογές πιο εύχρηστες, φιλικές και πιο λειτουργικές. Μπορεί ο AJAX να είναι ένα εργαλείο από το οποίο µπορούν να προκύψουν πολλά οφέλη, ωστόσο πολλές φορές δεν είναι αναγκαίο να το χρησιµοποιούµε σε κάθε εφαρµογή. Ίσως είναι και διασκεδαστικό πολλές φορές να χρησιµοποιούµε αυτό το εργαλείο, αλλά δεν σηµαίνει ότι είναι η καλύτερη λύση για όλες τις εφαρµογές που αναπτύσσουµε. Το αν µια εφαρµογή θα επωφεληθεί από την AJAX ~ 18 ~

τεχνολογία δεν είναι κάτι σίγουρο και δεδοµένο. Πρέπει να δούµε τα πλεονεκτήµατα και τα µειονεκτήµατα αυτής της τεχνολογίας και από κει και πέρα η απόφαση είναι δική µας. 1.6.1 Πως λειτουργεί η τεχνολογία ajax; Σύµφωνα µε την wikipedia το A.J.A.X είναι µια προγραµµατιστική τεχνική του web που συνδυάζει υπάρχουσες τεχνολογίες [ JavaScript και XML κατά κόρον ] ώστε να καταστήσει την επικοινωνία client server πιο άµεση και τις σελίδες που το χρησιµοποιούν πιο ζωντανές. Το κύριο χαρακτηριστικό µιας web σελίδας που χρησιµοποιεί A.J.A.X. είναι η άµεση ενηµέρωση της µε νέο περιεχόµενο χωρίς να χρειάζεται να ξαναφορτωθεί εξ ολοκλήρου. 1.6.2 Πλεονεκτήµατα και µειονεκτήµατα της τεχνολογίας ajax; Πλεονεκτήµατα σε σχέση µε κλασσικές web εφαρµογές : 1. Το interface είναι πολύ πιο διαδραστικό, διότι δεν χρειάζεται να ξαναφορτώσει ολόκληρη η σελίδα. Απλά µεταφέρεται µικρότερη και η απαραίτητη πληροφορία που ζητήθηκε. Επίσης ο χρήστης έχει την αίσθηση ότι οι ενέργειες του έχουν άµεσο αποτέλεσµα. 2. Σε µια κλασσική web εφαρµογή, όταν ο web server στέλνει την σελίδα στον browser, µπορούν να χρησιµοποιηθούν πολλαπλά connection threads για να επιταχυνθεί η µεταφορά. Αυτό αξιοποιεί η καινούρια τεχνολογία. Οπότε σε µια σελίδα φορτώνουµε τα βασικά scripts και CSS αρχεία µία φορά και έπειτα αξιοποιούµε τις πολλαπλές συνδέσεις για να µεταφέρουµε στη σελίδα µας το περιεχόµενο που επιθυµούµε. 3. Ο χρόνος αναµονής µειώνεται. Στην περίπτωση που ο χρήστης υποβάλει µια φόρµα δεν χρειάζεται να περιµένει όλη την σελίδα να ξαναφορτώσει ώστε να αποσταλούν τα δεδοµένα της φόρµας. Αντί αυτού µπορεί να συνεχίσει να δουλεύει στην σελίδα, ενώ τα δεδοµένα αποστέλλονται. 4. Σε περίπτωση που παρουσιαστεί σφάλµα τότε επηρεάζεται µόνο το συγκεκριµένο τµήµα χωρίς να επηρεάζει το υπόλοιπα και να χαθούν κρίσιµα ίσως δεδοµένα. 5. Η κίνηση από και προς το server µειώνεται σηµαντικά, οπότε µειώνεται και η χρήση του bandwidth. Μειονεκτήµατα του AJAX : 1. Η ανάπτυξη µιας AJAX εφαρµογής µπορεί να απαιτεί περισσότερο χρόνο και κόστος. Θεωρείται πιο δύσκολη η ανάπτυξη λόγω των πολλών εµπλεκόµενων τεχνολογιών. 2. Ακόµα δεν έχουν δοθεί πλήρεις απαντήσεις σε διάφορα ζητήµατα ασφαλείας. Πολλοί είναι οι επικριτές αυτής της τεχνολογίας εξαιτίας των αναπάντητων ερωτηµάτων που αφήνει αυτή η τεχνολογία σε θέµατα ασφαλείας. 3. Με τον AJAX δεδοµένα φορτώνονται ασύγχρονα σε µια σελίδα αλλάζοντας τη µορφή της χωρίς να επαναφορτωθεί. Οι browsers ωστόσο δεν µπορούν να δηµιουργήσουν bookmarks τέτοιων στιγµιότυπων. Οπότε δεν είναι δυνατή η αποθήκευση σελίδων πέραν της αρχικής. Επίσης αν θέλουµε να πάµε σε κάποια προηγούµενη κατάσταση της σελίδας ~ 19 ~

δεν έχει νόηµα να πατήσουµε το BACK button αφού το URL δεν έχει αλλάξει καθόλου. Για να ξεπεράσουµε αυτά τα προβλήµατα πρέπει να γίνει επιπλέον προγραµµατισµός κάτι που αυξάνει το κόστος και το χρόνο ανάπτυξης. 4. Το ότι ο AJAX δεν χρησιµοποιείται στο µεγαλύτερο ποσοστό των σελίδων που βλέπουµε στο διαδίκτυο δεν είναι τυχαίο. Ένας από τους κύριους λόγους είναι γιατί δεν µπορούν να γίνουν indexed από τις µηχανές αναζήτησης. Για παράδειγµα τα e-commerce sites βασίζονται σε µεγάλο βαθµό στο indexing που γίνεται από τις µηχανές αναζήτησης διότι χωρίς αυτό δεν θα µπορούσαν να προωθήσουν και να πουλήσουν προϊόντα. Μια καλή ιδέα για να αντιµετωπίσουµε αυτό το πρόβληµα θα ήταν να µην αναπτύσσουµε µια σελίδα που να βασίζεται εξολοκλήρου στον AJAX αλλά µόνο ορισµένα µέρη. 5. Επίσης ένα σχετικά σηµαντικό πρόβληµα είναι ότι ο AJAX υποστηρίζεται µόνο από browsers οι οποίοι υποστηρίζουν πλήρως JavaScript µε έµφαση στο XMLHttpRequest αντικείµενο. Οπότε µπορεί να υπάρχουν επισκέπτες που να έχουν παλιότερους browsers και έτσι να µην µπορούν να δουν αυτές τις εφαρµογές. Επίσης από τους browsers που έχουν πλήρη υποστήριξη της JAVASCRIPT, µπορεί να χρειαστεί να γράψουµε πρόσθετο και σύνθετο κώδικα για τις AJAX εφαρµογές εξαιτίας του διαφορετικού τρόπου µε τον οποίο χειρίζονται το XMLHttpRequest αντικείµενο. 6. Ένα τελευταίο µειονέκτηµα έχει να κάνει µε το XMLHttpRequest αντικείµενο. Εξαιτίας περιορισµών ασφαλείας µπορούµε να έχουµε πρόσβαση µόνο στον server που εξυπηρέτησε την αρχική σελίδα. Αν θέλουµε να συλλέξουµε στο ενδιάµεσο πληροφορίες από άλλο server αυτό δε γίνεται. 1.6.3 Τεχνολογίες που χρησιµοποιεί η τεχνολογία ajax; Το XHTML και CSS για σχεδιαστικούς λόγους ( Αντί XHTML µπορεί να χρησιµοποιεί και XML ανάλογα µε την υλοποίηση ). Το DOM ( Document Object Model ) µέσω της JavaScript για την δυναµική αναπαράσταση των πληροφοριών. Το αντικείµενο XMLHttpRequest που απαιτείται για την ασύγχρονη επικοινωνία του client µε τον server. 1.7 Τι είναι ο Web Host; Για να µπορεί κάποιος να έχει πρόσβαση στο website σας, όλα τα αρχεία του website πρέπει να είναι αποθηκευµένα σε έναν web server. Ο web server µε τη σειρά του δηµοσιοποιεί τις σελίδες αυτές στο διαδίκτυο µέσω της διαδικτυακής ονοµασίας (domain name). Ο Web Ηost είναι η εταιρεία η οποία παρέχει χώρο σε ένα web server. Χρειάζεται σε άτοµα και εταιρείες που δεν έχουν τη δυνατότητα να έχουν δικό τους web-server. Υπάρχει πληθώρα δωρεάν και επί πληρωµή Web Hosts. Εκτός του χώρου στο server, οι Web Hosts προσφέρουν και πολλές άλλες συµπληρωµατικές υπηρεσίες. Παράδειγµα είναι οι mail servers και οι κατοχυρώσεις ονοµάτων. Ο συνδυασµός χώρου στο server και προστιθέµενων υπηρεσιών ονοµάζεται πρόγραµµα φιλοξενίας. ~ 20 ~

1.7.1 Τι είναι το Web Hosting Φιλοξενεία ιστοσελίδων; Για να είναι µία ιστοσελίδα διαθέσιµη online στο internet, θα πρέπει αυτή να φιλοξενείται σε έναν κατάλληλο υπολογιστή, δηλαδή έναν web server (εξυπηρετητή ιστοσελίδων). Ο web server, δέχεται και επεξεργάζεται τις αιτήσεις των επισκεπτών και τους παρουσιάζει την ιστοσελίδα που φιλοξενεί. Υπηρεσίες φιλοξενίας ιστοσελίδων (web hosting) υπάρχουν διαθέσιµες τόσο στην Ελλάδα, όσο και στο εξωτερικό και συνήθως προσφέρονται ως "πακέτα" κάθε ένα από το οποίο έχει κάποια συγκεκριµένα τεχνικά χαρακτηριστικά, τα οποία συνήθως αναφέρονται πολύ αναλυτικά σε λίστες ή πίνακες, ενώ η κάθε εταιρία συχνά παρουσιάζει και συγκριτικούς πίνακες µεταξύ των πακέτων που προσφέρει. Κριτήριο για την επιλογή της κατάλληλης υπηρεσίας, είναι φυσικά οι ανάγκες της κάθε ιστοσελίδας αλλά και η τιµή του πακέτου φιλοξενίας. ύο από τα πιο βασικά χαρακτηριστικά ενός πακέτου φιλοξενίας ιστοσελίδων είναι : Το Disk Space, δηλαδή ο διαθέσιµος χώρος για τα δεδοµένα της ιστοσελίδας Το Bandwidth, δηλαδή ο µέγιστος αριθµός της µηνιαίας διακίνησης δεδοµένων της ιστοσελίδας. Για να τοποθετήσετε την δική σας ιστοσελίδα στο ίντερνετ, χρειάζονται τα παρακάτω : Πρώτα απ' όλα, να έχετε την δική σας ιστοσελίδα. Θα πρέπει να έχετε ένα αντίγραφο του site στον τοπικό υπολογιστή (σε html-αρχεία), ή έτοιµο υλικό + πρόγραµµα, το οποίο θα επέτρεπε να δηµιουργηθεί το site άµεσα στο server. Όνοµα χώρου. Θα πρέπει να διαλέξετε και να αποκτήσετε το όνοµα τοµέα (domain name) για το site σας. Είναι προτιµότερο, εάν το όνοµα θα είναι σχετικό µε το θέµα της ιστοσελίδας, και να µπορεί να αποµνηµονεύεται εύκολα. Το όνοµα χώρου µπορεί να είναι σε οποιαδήποτε, της επιλογή σας, domain περιοχή, για παράδειγµα:.com.net.org.gr κ.τ.λ. Κατά την επιλογή της ζώνης παίρνετε υπόψη τα δεδοµένα για τις αντιστοιχίες των domain ζωνών. Παραδείγµατος χάρη, τα ονόµατα στη ζώνη.com προορίζονται για ιστοσελίδες εµπορικού χαρακτήρα,.org για κρατικούς και κοινωνικούς οργανισµούς. Τα domain names τύπου.gr,.us,.uk κ.τ.λ. δείχνουν στην τοποθεσία (χώρα) του φορέα. ~ 21 ~

Να παραγγείλετε ένα από τα πακέτα φιλοξενίας στην εταιρεία, η οποία παρέχει τις αντίστοιχες υπηρεσίες. Η επιλογή του πακέτου φιλοξενίας αποτελεί ξεχωριστό θέµα για συζήτηση και για αυτό δεν θα το συζητήσουµε στο παρόν άρθρο. 1.8 Τι είναι ο Server; Είναι ένας υπολογιστής που διαθέτει κατάλληλο υλικό και λογισµικό, είναι συνδεδεµένος στο ιαδίκτυο και στον οποίο αποθηκεύεται ένα αντίγραφο της ιστοσελίδας. Ως συνήθως, σε ένα server τοποθετούνται πολλές ιστοσελίδες, σε ξεχωριστό φάκελο η κάθε µια. Με την βοήθεια οποιουδήποτε web-browser (προγράµµατος για την προβολή των ιστοσελίδων στο ίντερνετ) µπορείτε να έχετε πρόσβαση στην ιστοσελίδα σας, πληκτρολογώντας στην γραµµή διεύθυνσης το όνοµα χώρου που έχετε αποκτήσει και το οποίο έχετε συνδέσει µε το χώρο στον οποίο βρίσκεται η ιστοσελίδα αυτή. Το web-hosting µπορεί να συγκριθεί µε την ενοικίαση ακινήτου, γιατί ουσιαστικά αυτό γίνεται νοικιάζετε χώρο στον σκληρό δίσκο ενός server σε κάποια εταιρεία. Πολλές εταιρείες προτείνουν την φιλοξενία της ιστοσελίδας σε χαµηλές τιµές, όµως όχι όλες µπορούν να εξασφαλίσουν την απαιτούµενη ποιότητα των υπηρεσιών. Μιλώντας για την τιµή της φιλοξενίας, πρέπει να σηµειωθεί, ότι για τις περισσότερες ιστοσελίδες το ποσό της µηνιαίας πληρωµής µπορεί να µην ξεπερνάει τα 10 δολάρια ΗΠΑ. Περίπου µε τέτοιο κόστος µπορεί να βρεθεί η εταιρεία, η οποία θα προσφέρει 300 ΜΒ χώρου στον server και διάφορες δυνατότητες, όπως: εγκατάσταση και εκτέλεση των scripts (προγράµµατα), υποστήριξη βάσεων δεδοµένων, πίνακας διαχείρισης (administration panel) της ιστοσελίδας σας, όπου γίνονται οι ρυθµίσεις που αφορούν όχι µόνο την ιστοσελίδα σας, αλλά γενικώς το χώρο που έχετε ενοικιάσει καθώς και τις παρεχόµενες υπηρεσίες (π.χ. το ηλεκτρονικό ταχυδροµείο). Εάν σκοπεύετε να αποκτήσετε µια παρουσία στο ιαδίκτυο, θα πρέπει όχι µόνο να αποφασίσετε το τι επιπέδου θα είναι το site σας, αλλά και να κάνετε την σωστή επιλογή του παροχέα της φιλοξενίας. Στατιστικά, πάνω από 70% των ιδιοκτητών ιστοσελίδων είχαν αλλάξει το hosting τουλάχιστον µια φορά. Η αλλαγή του παροχέα προκαλείται από την µη ικανοποίηση από την ποιότητα των παρερχοµένων υπηρεσιών. Πράγµατι, οποιοσδήποτε παροχέας λέει ότι είναι ο καλύτερος και ότι έχει τις χαµηλότερες τιµές κ.τ.λ. κ.τ.λ. Μετά αποκαλύπτεται, ότι η υπηρεσία της υποστήριξης δεν απαντάει ή απαντάει, αλλά µε καθυστέρηση, τα server τους ώρες-ώρες "κολλάνε" εξαιτίας µεγάλου φόρτου. Τέτοια απροσεξία κατά την επιλογή του παροχέα µπορεί να φέρει µεγάλες απώλειες. Φανταστείτε, τι σηµαίνει η αδυναµία πρόσβασης στην ιστοσελίδα µιας εταιρείας, όπου κάθε µισή ώρα ανανεώνονται οι σηµαντικές πληροφορίες για τους υπαλλήλους και τους συνεργάτες, οι οποίοι βρίσκονται σε αποµακρυσµένα υποκαταστήµατα της εταιρείας. Φανταστείτε, ότι οι δυνητικοί πελάτες της εταιρείας δεν µπορούν να µάθουν τα στοιχεία επικοινωνίας της εταιρείας, γιατί δεν µπορούν να ανοίξουν το site. Πιθανόν, σε µισή ώρα, αυτοί οι άνθρωποι δεν θα κάνουν δεύτερη προσπάθεια να ξαναµπούν στο site. Πιθανόν, σε µισή ώρα αυτοί θα βρουν µια άλλη ανταγωνιστική ιστοσελίδα. Η ζηµιά από τα servers που κολλάνε µπορεί να είναι πολύ µεγάλη. Για να µη κάνετε λάθη στην επιλογή του hosting, θα πρέπει οπωσδήποτε να επισκεφτείτε διάφορα φόρουµ, όπου σχολιάζονται οι εταιρείες που παρέχουν φιλοξενία. ιαβάστε ~ 22 ~

προσεκτικά τις γνώµες των πελατών για διάφορους παροχείς του hosting. Ο χρόνος που θα ξοδέψετε στην έρευνα των φόρουµ και η ανάγνωση των σχολίων, θα σας αποζηµιώσει µε την σταθερότητα λειτουργίας του site σας. 1.9 Πως πρέπει να διαλέξετε το κατάλληλο πακέτο Web Hosting; Τα πακέτα φιλοξενίας, ως συνήθως, διαφοροποιούνται µε το µέγεθος του παρεχόµενου χώρου στο δίσκο του server, µε τον αριθµό των επιτρεπόµενων subdomains, µε περιορισµό στην κίνηση που θα υπάρχει στο site (traffic). Φυσικά, αφού διαλέξετε µερικές εταιρείες φιλοξενίας µε το περισσότερο κύρος, θα πρέπει να συγκρίνετε τα πακέτα φιλοξενίας που προσφέρουν. Κατά την σύγκριση, πρέπει να έχετε υπόψη σας, τι απαιτήσεις πρέπει να πληρεί το πακέτο φιλοξενίας. Θα πρέπει να προσέξετε : Το µέγεθος του παρεχόµενου χώρου Την δυνατότητα να έχετε πολλές διευθύνσεις e-mail Εγκατάσταση και εκτέλεση εφαρµογών (cgi, php, MySQL) Πρόσβαση στην ιστοσελίδα µε FTP Το εργαλείο διαχείρισης, µε το οποίο µπορείτε να ελέγχετε την ιστοσελίδα σας (πολύ σηµαντικό: ένα ποιοτικό administration panel, όπου όλες οι δυνατότητες και λειτουργίες είναι "τακτοποιηµένες" θα σας εξοικονοµήσει πολύ χρόνο) Την εξερχόµενη κίνηση από το site σας Ας τα δούµε ένα-ένα λοιπόν. Εάν η πρώτη σας ιστοσελίδα θα αποτελείται από µερικές σελίδες και ένα λογότυπο, τότε θα σας καλύψει άνετα ένα πακέτο φιλοξενίας, όπου το µέγεθος στο δίσκο θα είναι από 100 έως 300 Megabyte. Αυτό είναι παραπάνω από αρκετό. Λιγότερο από 100 ΜΒ χώρου ήδη δεν παρέχει σχεδόν καµία εταιρεία φιλοξενίας. Με τις διευθύνσεις ηλεκτρονικού ταχυδροµείου είναι πιο απλά πρακτικά όλοι οι παροχείς δίνουν απεριόριστο αριθµό των e-mail διευθύνσεων. Περιορισµός µπορεί να υπάρχει µόνο στον αριθµό των ξεχωριστών POP3 και SMTP λογαριασµών. Αυτό σηµαίνει, ότι παρόλο που οι διευθύνσεις είναι διαφορετικές, έχετε περιορισµένο αριθµό των ξεχωριστών συνδέσεων µε την βοήθεια κάποιου προγράµµατος (mail-client). Η εγκατάσταση και η εκτέλεση των scripts είναι απαραίτητη, εάν το site θα έχει δυναµικές σελίδες, ή εάν θα είναι απαραίτητο να υλοποιηθεί η λειτουργία της αναζήτησης µέσα στο site. Στην περίπτωση που η ιστοσελίδα θα είναι εξολοκλήρου στατική (html-σελίδες), τότε η δυνατότητα εκτέλεσης των προγραµµάτων έχει δευτερεύουσα σηµασία. Η πρόσβαση στο site µέσω FTP είναι απαραίτητη. Χωρίς αυτή δεν µπορείτε να κάνετε τίποτα. Η FTP πρόσβαση παρέχεται από όλους τους παροχείς, και πιστεύω πως αυτό το θέµα είναι απλό και κατανοητό. Το administration panel, µε την πρώτη µατιά, δεν έχει ιδιαίτερη σηµασία. Αλλά όταν φτάνετε στο σηµείο να διαχειρίζεστε πρακτικά την ιστοσελίδα σας, τότε ένα ποιοτικό εργαλείο διαχείρισης είναι απαραίτητο. ~ 23 ~

Με το administration panel µπορείτε όχι µόνο να ρυθµίζετε τις δυνατότητες του site, αλλά και να παίρνετε και τις στατιστικές αναφορές για αυτό, για παράδειγµα: πόσος χώρος στο δίσκο χρησιµοποιείται και πόσος είναι ακόµη ελεύθερος, ποιος είναι ο δείκτης του εξερχόµενου traffic για τον τρέχοντα µήνα (ως συνήθως, όλα τα πακέτα έχουν κάποιο περιορισµό στο επίπεδο της κίνησης). Εάν στο πακέτο φιλοξενίας αναφέρεται "απεριόριστο" traffic µην το πιστέψετε. Το πιο πιθανό αυτός να µην είναι και πολύ καλός hoster, ο οποίος µε οποιονδήποτε τρόπο προσπαθεί να προσελκύσει τους πελάτες. Με την βοήθεια του administration panel µπορεί να γίνεται εύκολη ρύθµιση του site και του e-mail : να δηµιουργούνται νέες διευθύνσεις, να ρυθµίζεται η ανακατεύθυνση της αλληλογραφίας, να γίνεται εύκολα η διαχείριση των αρχείων και των φακέλων (να ρυθµίζονται τα δικαιώµατα πρόσβασης στα αρχεία, κωδικοί για τους φακέλους). Το πληρωµένο εξερχόµενο traffic έχει µεγάλη σηµασία. Εάν δεν υπολογίσετε καλά το πόση πληροφορία θα στέλνεται κάθε µήνα από το site σας στους υπολογιστές των επισκεπτών, τότε πιθανόν, η ιστοσελίδα σας θα σταµατήσει να είναι διαθέσιµη (δεν θα είναι προσβάσιµη online), αφού θα ξεπεραστεί το όριο που είχατε πληρώσει. Μπορείτε να υπολογίσετε στο περίπου το εξερχόµενο traffic, χωρίς ιδιαίτερη δυσκολία. Μάθετε το µέσο µέγεθος της κάθε σελίδας του site, συµπεριλαµβάνοντας και γραφικά στοιχεία που περιέχει (κουµπάκια, banners, φωτογραφίες κ.τ.λ.). Να έχετε υπόψη, ότι κατά την φόρτωση άλλων σελίδων, στις οποίες υπάρχουν τα ίδια γραφικά, που είχαν φορτωθεί από πριν, τότε αυτά δεν παίρνονται από την σελίδα σας, αλλά από τον φάκελο προσωρινών αρχείων ίντερνετ (cache) του χρήστη. Τώρα προβλέψτε πόσες, κατά µέσο όρο, σελίδες µπορεί να επισκεφτεί ο κάθε χρήστης, και περίπου πόσοι χρήστες πιστεύετε ότι θα επισκέπτονται την ιστοσελίδα σας. Τώρα πολλαπλασιάστε το µέγεθος της σελίδας επί τον αριθµό των σελίδων και επί τον αριθµό των επισκεπτών σε ένα 24-ωρο. Θα πάρετε την κατά προσέγγιση εξερχόµενη κίνηση το 24-ωρο. Πολλαπλασιάζουµε επί 30 µέρες και παίρνετε, στο περίπου, τον όγκο των εξερχόµενων πληροφοριών το µήνα. Εάν ο αριθµός είναι αρκετά µεγάλος, µην απογοητεύεστε, αφού είναι µόνο οι υποθέσεις που κάνετε. Μπορεί να έχετε πολύ λιγότερους επισκέπτες, από ότι νοµίζετε, και ο καθένας τους θα επισκέπτεται πολύ λιγότερες σελίδες, και το εν τρίτο από αυτούς θα έχουν απενεργοποιήσει στο browser τους την εµφάνιση εικόνων (όλα αυτά δεν σας τα εύχοµαι!). 1.10 Τι είναι ο Server, Web Server και Web Client; Ο Server (εξυπηρετητής) είναι ένας υπολογιστής που έχει τον κεντρικό έλεγχο ενός δικτύου, παρέχοντας βασικές υπηρεσίες στους χρήστες του. Σε ένα δίκτυο ο server ελέγχει την όλη λειτουργεία και για λόγους ασφαλείας επιτρέπει την πρόσβαση µόνο σε εξουσιοδοτηµένους χρήστες, παραχωρώντας τους λειτουργείες ανάλογα µε τα δικαιώµατα που έχουν. Μια κατηγορία server είναι οι web servers οι οποίοι προσφέρουν τις ζητούµενες ιστοσελίδες (web pages). Οι πιο γνωστοί servers είναι ο Apache και ο IIS. Web Server ονοµάζουµε το λογισµικό που τρέχει σε ένα κόµβο Internet και επιτρέπει σε άλλους υπολογιστές να αποκτούν αντίγραφα των Web σελίδων που είναι αποθηκευµένες σε αυτόν. Με τον όρο Web Server αναφερόµαστε είτε σε έναν ηλεκτρονικό υπολογιστή (hardware), είτε σε ένα λογισµικό (software) που µας επιτρέπει µέσω του Internet και µε την βοήθεια ~ 24 ~

του HTTP (Hyper Text Transfer Protocol - Πρωτόκολλο Μεταφοράς Υπερκειµένου) να αποκτούµε πρόσβαση σε ιστοσελίδες που είναι αποθηκευµένες σε αυτόν. Κάθε Web Server έχει έναν βασικό διαχειριστή ο οποίος ελέγχει τον διακοµιστή. Έτσι όταν ο χρήστης ζητάει άδεια από τον Web Server να "ανοίξει" µια συγκεκριµένη ιστοσελίδα το αίτηµά του ελέγχεται πρώτα από τον διαχειριστή της ιστοσελίδας ή του διακοµιστή και στην συνέχεια αφού παραχωρηθεί η άδεια ο χρήστης βλέπει την ιστοσελίδα. Η διαδικασία αυτή φαντάζει να είναι πολύπλοκη και χρονοβόρα, όµως, όπως πολύ σωστά αναφέρεται σε σχετικό άρθρο στο www.topwebhosting.gr, "Oι Web Servers είναιικανοί να χειριστούν εκατοντάδες χιλιάδες αιτήµατα το δευτερόλεπτο και µπορούν να ανατρέξουν σε πληροφορίες γρήγορα, παρέχοντας στον επισκέπτη της σελίδας την πληροφορία που αναζητεί σε µηδενικό χρόνο.". Υπάρχουν διάφορα είδη Web Server όπως οι dedicated servers, οι load balancing servers, οι database servers. Επίσης, καθένας µπορεί να µετατρέψει τον ηλεκτρονικό υπολογιστή του σε έναν Web Server εγκαθιστώντας κατάλληλο λογισµικό που να συνδέει τον υπολογιστή του µε το Internet. Web Client ονοµάζουµε το λογισµικό που τρέχει ένας Η/Υ και του επιτρέπει να "διαβάζει" Web σελίδες (από το σκληρό του δίσκο ή από το Internet αν είναι συνδεδεµένος µε αυτό). 1.11 Τι είναι ο Τοπικός Server Apache; Ο Apache HTTP γνωστός και απλά σαν Apache είναι ένας εξυπηρετητής του παγκόσµιου ιστού (web). Όποτε επισκέπτεστε έναν ιστότοπο ο πλοηγός σας επικοινωνεί µε έναν διακοµιστή HTTP. O Apache είναι ένας από τους δηµοφιλέστερους, εν µέρει γιατί λειτουργεί σε διάφορες πλατφόρµες σαν τα Windows, το Linux, το Unix, και το Mac OS X. ιατηρείται τώρα από µια κοινότητα ανοιχτού κώδικα µε επιτήρηση από το Ίδρυµα Λογισµικού Apache (Apache Software Foundation). Η πρώτη του έκδοση, γνωστή ως NCSA HTTPd, δηµιουργήθηκε από τον Robert McCool και κυκλοφόρησε το 1993. Θεωρείται ότι έπαιξε σηµαντικό ρόλο στην αρχική επέκταση του ιστού. Ήταν η πρώτη βιώσιµη εναλλακτική επιλογή που παρουσιάστηκε απέναντι στον εξυπηρετητή http της εταιρείας Netscape και από τότε έχει εξελιχθεί στο σηµείο να ανταγωνίζεται άλλους εξυπηρετητές βασισµένους στο Unix σε λειτουργικότητα και απόδοση. Από το 1996 ήταν από τους πιο δηµοφιλείς όµως από τον Μάρτιο του 2006 έχει µειωθεί το ποσοστό της εγκατάστασής του κυρίως από τον Microsoft Internet Information Services και τη πλατφόρµα.net. Τον Οκτώβριο του 2007 το µερίδιο του ήταν 47,73 % από όλους τους ιστοτόπους. Ο Apache είναι ένα ελεύθερο ανοικτού κώδικα λογισµικό. Εκτός του κόστους, είναι ιδιαίτερα διαµορφώσιµο και είναι πλήρες των προηγµένων χαρακτηριστικών γνωρισµάτων, όπου αυτός είναι και ο κύριος λόγος για τον οποίο οι περισσότεροι πάροχοι web hosting το χρησιµοποιούν. ~ 25 ~

ΚΕΦΑΛΑΙΟ 2 ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ ANDROID 2.1 Τι είναι το Android; Το Android είναι ένα λειτουργικό σύστηµα ανοιχτού κώδικα, βασισµένο στο Linux, για φορητές συσκευές όπως smartphones και tablets. Αναπτύχθηκε από την Google και αργότερα από την Open Handset Alliance η οποία είναι µια κοινοπραξία εταιριών λογισµικού, κατασκευής hardware και τηλεπικοινωνιών, οι οποίες είναι αφιερωµένες στην ανάπτυξη και εξέλιξη ανοιχτών προτύπων στις φορητές συσκευές. Η πρώτη παρουσίαση της πλατφόρµας Android έγινε στις 5 Νοεµβρίου 2007, παράλληλα µε την ανακοίνωση της ίδρυσης του οργανισµού Open Handset Alliance. Η Google δηµοσίευσε το µεγαλύτερο µέρος του κώδικα του Android υπό τους όρους της Apache License, µιας ελεύθερης άδειας λογισµικού. Τον Ιούλιο του 2005, η Google εξαγόρασε την Android Inc, µια µικρή εταιρεία µε έδρα το Palo Alto στην California των ΗΠΑ. Εκείνη την εποχή ελάχιστα ήταν γνωστά για τις λειτουργίες της Android Inc, εκτός του ότι ανέπτυσσαν λογισµικό για κινητά τηλέφωνα. Αυτή ήταν η αρχή της φηµολογίας περί σχεδίων της Google για να διεισδύσει στην αγορά κινητής τηλεφωνίας. Στην Google, η οµάδα µε επικεφαλής τον Andy Rubin ανέπτυξε µια κινητή πλατφόρµα που στηρίζεται στον πυρήνα του Linux, την οποία προώθησαν µε την παροχή ενός ευέλικτου, αναβαθµίσιµου συστήµατος. Έχει αναφερθεί ότι η Google είχε ήδη συγκεντρώσει µια σειρά από εταίρους hardware και software και επισήµανε στους παρόχους ότι ήταν ανοικτή σε διάφορους βαθµούς συνεργασίας εκ µέρους της. Έντυπα και ηλεκτρονικά µέσα ενηµέρωσης σύντοµα ανέφεραν φήµες ότι η Google ανέπτυσσε µια Google-branded συσκευή. Περισσότερες φήµες ακολούθησαν, αναφέροντας ότι η Google καθόριζε τις τεχνικές προδιαγραφές και έδειχνε πρωτότυπα στους κατασκευαστές κινητών τηλεφώνων και τους φορείς δικτύων. Τελικά η Google παρουσίασε το smartphone της Nexus One που χρησιµοποιεί το open source λειτουργικό σύστηµα Android. Η συσκευή κατασκευάστηκε από την HTC, και έγινε διαθέσιµη στις 5 Ιανουαρίου 2010. 2.2 Εφαρµογές Android Το Android έχει µια µεγάλη κοινότητα προγραµµατιστών που γράφουν εφαρµογές, οι οποίες επεκτείνουν τη λειτουργικότητα των συσκευών. Οι εφαρµογές γράφονται σε µια προσαρµοσµένη έκδοση της JAVA και µπορεί κάνεις να κατεβάσει από το online κατάστηµα Google Play (πρώην Android Market) της Google όπως και από άλλα sites. Μέχρι τον Ιούλιο του 2013 περισσότερες από 1000000 εφαρµογές ήταν διαθέσιµες στο Google Play ενώ τα downloads ειναι περισσότερα απο 50 δισεκατοµµύρια. Το Android είναι η πρώτη σε πωλήσεις παγκοσµίως πλατφόρµα για smartphones καθώς µέχρι το Σεπτέµβριο του 2013 µετρούσε περισσότερες από 1 δισεκατοµµύριο ενεργοποιηµένες συσκεύες. ~ 26 ~

2.3 Ιστορικό Ενηµερώσεων Παρόλο που το Android είναι ένα προϊόν ελεύθερου λογισµικού, ένα κοµµάτι της ανάπτυξης του λογισµικού συνεχίζεται σε ιδιωτικό παρακλάδι. Για να έρθει αυτό το λογισµικό σε κοινή θέαση δηµιουργήθηκε ένα παρακλάδι του µόνο ανάγνωσης, εν ονόµατι "Cupcake". To Cupcake συνήθως συγχέεται µε τον τίτλο µιας ενηµέρωσης, σε αντίθεση µε όσα δηλώνει η ίδια η Google στην ιστοσελίδα ανάπτυξης του Android: "το Cupcake αποτελεί ακόµη ένα έργο σε εξέλιξη, όχι µια επίσηµη έκδοση. Αξιοσηµείωτες αλλαγές στο λειτουργικό Android θα παρουσιαστούν στο cupcake και περιλαµβάνουν αλλαγές στο σύστηµα διαχείρισης των µεταφορτώσεων (download manager), το framework, Bluetooth, το λογισµικό συστήµατος, το ραδιόφωνο και το σύστηµα τηλεφωνίας, εργαλεία προγραµµατισµού, το κυρίως σύστηµα και διάφορες εφαρµογές, καθώς και πληθώρες διορθώσεις σφαλµάτων. Στις 30 Απριλίου 2009, κυκλοφόρησε η επίσηµη ενηµέρωση έκδοσης 1.5 για το Android.Αποτελείται από πολλά νέα χαρακτηριστικά και βελτιώσεις στο γραφικό περιβάλλον: υνατότητα καταγραφής κινούµενης εικόνας µε την χρήση της αντίστοιχης λειτουργίας του τηλεφώνου Μεταφόρτωση αρχείων βίντεο στο YouTube και εικόνων στο Picasa κατευθείαν από το τηλέφωνο Επανασχεδιασµένο λογισµικό πληκτρολογίου µε λειτουργία αυτόµατης συµπλήρωσης κειµένου υνατότητα αυτόµατης σύνδεσης ασύρµατης συσκευής ακουστικού Bluetooth εφόσον εντοπιστεί σε µια συγκεκριµένη απόσταση Νέα widgets και φάκελοι που µπορούν να τοποθετηθούν στην επιφάνεια εργασίας Εφέ αλλαγής οθονών και µενού ιευρυµένη λειτουργία αντιγραφής/επικόλλησης για να περιλαµβάνει δικτυακές διευθύνσεις ~ 27 ~

Ακολουθεί ο αναλυτικός πίνακας των εκδόσεων android: 2.3.1 Android 1.5 Cupcake Εικόνα 1: Android 1.5 Cupcake Logo Η έκδοση Cupcake, βασισµένη στο Linux Kernel 2.6.27, παρουσιάστηκε στις 30 Απριλίου του 2009.Υποστηρίζει νέες λειτουργίες για την κάµερα τις συσκευής, όπως η καταγραφή και παρακολούθηση βίντεο από την λειτουργία της κάµερας και η άµεση µεταφόρτωση του βίντεο αλλά και των φωτογραφιών στο Youtube και το Picasa αντίστοιχα απευθείας από το τηλέφωνο. Έχει νέο έξυπνο πληκτρολόγιο µε πρόβλεψη κειµένου. Υποστηρίζει πρότυπο Bluetooth A2DP και AVRCP ενώ έχει και την ικανότητα να συνδέεται αυτόµατα σε µικροσυσκευές Bluetooth από µια συγκεκριµένη απόσταση. Ακόµα στην έκδοση αυτή έχει νέο γραφικό περιβάλλον µε κινούµενες µεταβάσεις οθόνης. ~ 28 ~

2.3.2 Android 1.6 Donut Εικόνα 2: Android 1.6 Donut Logo Η έκδοση Donut, βασισµένη στο Linux Kernel 2.6.29, παρουσιάστηκε στις 15 Σεπτεµβρίου του 2009.Έχει ταχύτερη απόκριση σε σχέση µε την προηγούµενη έκδοση. Υποστηρίζεται πλέον η επιλογή πολλαπλών αρχείων ταυτόχρονα, έχει ανανεωµένο γκάλερι και φωτογραφική µηχανή, καθώς και βελτιωµένο Android Market. Έχει ανανεωµένη φωνητική αναζήτηση, µε ταχύτερη απόκριση και βαθύτερη ολοκλήρωση µε εγγενείς (native) εφαρµογές, συµπεριλαµβανοµένης της δυνατότητας κλήσης επαφών. υνατότητα αναζήτησης σελιδοδεικτών, ιστορικού, επαφών αλλά και στο διαδίκτυο από την αρχική οθόνη. Υποστήριξη για ανάλυση οθονών WVGA. Ανανεωµένη υποστήριξη τεχνολογιών για CDMA/EVDO, 802.1x, VPNs και µε µηχανή µετατροπής κειµένου σε οµιλία (text-tospeech). 2.3.3 Android 2.0/2.1 Éclair Εικόνα 3: Android 2.0/2.1 Eclair Logo Η έκδοση Eclair, βασισµένη και αυτή στον Linux Kernel 2.6.29, παρουσιάστηκε στις 26 Οκτωβρίου του 2009, ενώ τον Ιανουάριο του 2010 επανεκδόθηκε σε Αndroid 2.1 Eclair (MR1).Σε αυτή την έκδοση υπάρχει ακόµα ταχύτερη απόκριση του υλικού σε σχέση µε τις δυο προηγούµενες και πλέον υποστηρίζονται περισσότερες οθόνες και αναλύσεις. Υπάρχει νέος browser ο οποίος υποστηρίζει το πρότυπο HTML5, νέο User Interface, και βελτιωµένοι χάρτες Google (Google Maps 3.1.2). Έχει ενσωµατωθεί η υποστήριξη φλας για την κάµερα η οποία έχει πλέον και ψηφιακό zoom. Επίσης έχει βελτιωθεί η κλάση MotionEvent ώστε να υπάρχει η δυνατότητα για γεγονότα ~ 29 ~

πολλαπλής αφής (multitouch events). Υποστηρίζεται Bluetooth 2.1 και έχει βελτιωθεί και το πληκτρολόγιο. 2.3.4 Android 2.2 Froyo Εικόνα 4: Android 2.2 Froyo Logo Η έκδοση Froyo, βασισµένη στο Linux Kernel 2.6.32, παρουσιάστηκε στις 20 Μαΐου του 2010. Υπάρχουν βελτιστοποιήσεις στην ταχύτητα γενικά του λειτουργικού συστήµατος, στην µνήµη και στην απόδοση. Έχει ενσωµατωθεί ο µηχανισµός JavaScript του Chrome V8 στον browser, υπάρχει πλέον Adobe Flash 10.1, ενώ υποστηρίζεται καλύτερα πλέον το Microsoft Exchange. Έχει γίνει ανανέωση του Android Market. Ο χρήστης µπορεί πλέον να ελέγχει αν θα γίνεται ή όχι κίνηση πακέτων δεδοµένων από το δίκτυο κινητής τηλεφωνίας. Υπάρχει η δυνατότητα εγκατάστασης εφαρµογών στην κάρτα µνήµης και η µεταφορά τους εκεί από τη µνήµη του τηλεφώνου. Επίσης το τηλέφωνο πλέον µπορεί να µετατραπεί σε WiFi hotspot. 2.3.5 Android 2.3 Gingerbread Εικόνα 5: Android 2.3 Gingerbread Logo Η έκδοση Gingerbread, βασισµένη στο Linux Kernel 2.6.35.7, παρουσιάστηκε στις 6 εκεµβρίου του 2010, ενώ τον Φεβρουάριο του 2011 επανεκδόθηκε σε Android ~ 30 ~

2.3.3. Στην έκδοση αυτή υπάρχουν αλλαγές στο User Interface το οποίο έχει γίνει πιο απλό και ταχύ, ενώ υποστηρίζονται πλέον οθόνες µεγάλων µεγεθών και αναλύσεων. Υπάρχει πλέον το πρωτόκολλο SIP για κλήσεις µέσω VoIP, υποστηρίζεται ο τύπος βίντεο WebM/VP8 και ο κωδικοποιητής AAC, έχει βελτιωθεί ο ήχος καθώς και οι λειτουργίες απεικόνισης για την ανάπτυξη παιχνιδιών. Υπάρχει η δυνατότητα για Copy- Paste σε όλο το σύστηµα και όχι µόνο στην ίδια εφαρµογή. Υποστηρίζεται το NFC (Near Field Communication) και η ύπαρξη πολλαπλών καµερών. Επίσης, έχει βελτιωθεί η ενεργειακή υποστήριξη και έχει γίνει µετάβαση από το σύστηµα αρχείων YAFFS στο ext4 στις νέες συσκευές. 2.3.6 Android 3.0 Honeycomb Εικόνα 6: Android 3.0 Honeycomb Logo Η έκδοση Honeycomb, βασισµένη στο Linux Kernel 2.6.36, παρουσιάστηκε στις 9 Μαΐου του 2011,µε την ιδιαιτερότητα ότι προοριζόταν αποκλειστικά για tablets. Οι αλλαγές που έγιναν στην έκδοση αυτή έχουν να κάνουν κυρίως µε τη βελτίωση της υποστήριξης των tablets. Υπάρχει ένα νέο, εντελώς διαφορετικό, User Interface και υποστηρίζονται διπύρηνοι και τετραπύρηνοι επεξεργαστές. Ακόµα, εχει απλοποιηθεί το multitasking έτσι ώστε ο χρήστης να µπορεί µε τη χρήση ενός πλήκτρου (recent apps) να περνάει από µια εφαρµογή σε άλλη. Υπάρχει η δυνατότητα για Video Chat µέσω της εφαρµογής Google Talk καθώς η ανάγνωση βιβλίων µέσω του Google ebooks. Επιπλέον, µπορούν να κρυπτογραφηθούν όλα τα δεδοµένα χρήστη. ~ 31 ~

2.3.7 Android 4.0 Ice Cream Sandwich Εικόνα 7: Android 4.0 Ice Cream Sandwich Logo Η έκδοση Ice Cream Sandwich, βασισµένη στο Linux Kernel 3.0.1, παρουσιάστηκε στις 19 Οκτωβρίου του 2011. Για άλλη µια φορά έχει βελτιωθεί η ταχύτητα και η απόδοση του συστήµατος. Πλέον στο User Interface, το οποίο είναι και παλι διαφορετικό, υπάρχουν εικονικά πλήκτρα τα οποία παίρνουν τη θέση των φυσικών ή αφής που υπήρχαν στις συσκευές. Βελτίωση της ασφάλεια του συστήµατος µε την προσθήκη αναγνώρισης προσώπου για να ξεκλειδώσει η συσκευή. Ο browser µπορεί να ανοίξει ταυτόχρονα µέχρι και 16 καρτέλες. Υπάρχει η δυνατότητα ο χρήστης να τερµατίσει εφαρµογές οι οποίες τρέχουν στο background, ενώ µπορεί να θέσει και όρια στην κίνηση πακέτων δεδοµένων. Η εφαρµογή Android Beam αξιοποιεί πλέον το NFC αφού επιτρέπει την αποστολή δεδοµένων από τη συσκευή σε όσες βρίσκονται εντός µιας µικρής ακτίνας εµβέλειας. Ακόµα µε την ύπαρξη του Wi-Fi Direct συσκευές µπορούν να συνδεθούν µεταξύ τους ασύρµατα χωρίς την µεσολάβηση κάποιου access point. Τέλος, υποστηρίζεται η εγγραφή βίντεο σε 1080p. 2.3.8 Android 4.1 Jelly Bean Εικόνα 8: Android 4.1 Jelly Bean Logo ~ 32 ~

Στο συνέδριο Google I/O στις 27/06/2012 η Google ανακοίνωσε το Android 4.1 Jelly Bean το οποίο ήταν βασισµένο στο Linux kernel 3.0.31. Πρωταρχικός στόχος ήταν η βελτίωση της λειτουργικότητας και της απόδοσης του user interface. Σε αύτο περιελάµβανε το "Project Butter" το οποίο χρησιµοποιούσε touch anticipation, triple buffering, extended vsync timing and a fixed frame rate of 60 fps ώστε να δηµιουργήσει ένα "buttery-smooth" user interface. Το Jelly Bean έγινε open source στις 9/7/2012 ενώ η πρώτη συσκευή που κυκλοφόρησε µε το Jelly Bean ήταν το Nexus 7 tablet στις 13/07/2012. 2.3.9 Android 4.4 Kitkat Εικόνα 9: Android 4.4 Kitkat Στις 3 Σεπτεµβρίου 2013 η Google ανακοίνωσε το Android 4.4 Kitkat επίσης γνώστο και ως Project Svelte. Το project αναµενόταν από αρκέτους bloggers ως android 5.0 Key Lime Pie αλλά ουσιαστίκα λόγω εµπορίκης συµφωνίας της Google µε την Nestle το συγκεκριµένο όνοµα εγκαταλείφτηκε. Το KitKat έκανε το ντεµπούτο στο Nexus 5 της Google, και έχει βελτιστοποιηθεί για να τρέχει σε ένα µεγαλύτερο εύρος συσκευών από τις προηγούµενες εκδόσεις Android, κάθως έχει 512 MB µνήµης RAM, ως ελάχιστες απαιτήσεις. 2.4 Αρχιτεκτονική του Android Το Android δεν είναι µόνο ένα λειτουργικό σύστηµα. Είναι µια στοίβα λογισµικού η οποία αποτελείτε από το λειτουργικό σύστηµα, τις υπηρεσίες διασύνδεσης µε τις εφαρµογές (middleware) και τέλος από τις κύριες (core) εφαρµογές, µεταξύ αυτών, ενός email cient, µιας εφαρµογής διαχείρισης SMS, ενός ηµερολογίου, ενός browser, εφαρµογή διαχείρισης επαφών, και άλλες οι οποίες έρχονται δεµένες µε την υπόλοιπη στοιβάδα λογισµικού του Android. Στο επίσηµο σχεδιάγραµµα που ακολουθεί (Εικόνα 1.11) θα δούµε οπτικά την αρχιτεκτονική αυτή. Από ότι βλέπουµε λοιπόν η αρχιτεκτονική του λειτουργικού συστήµατος αποτελείτε από 5 βασικά επίπεδα. Τον πυρήνα Linux (Linux Kernel) ~ 33 ~

Τις εγγενείς και τις προηγµένες βιβλιοθήκες (Libraries) Την εικονική µηχανή Dalvik (Dalvik VM) Τον χρόνο εκτέλεσης (Android Runtime) Το πλαίσιο εφαρµογής (Application Framework) Εικόνα 10: Αρχιτεκτονική Android 2.4.1 Πυρήνας Linux (Linux Kernel) Η βάση της στοίβας λογισµικού του Android είναι ο πυρήνας Linux. Ο τροποποιηµένος πυρήνας του συστήµατος βασίζεται στην έκδοση 2.6 (και στην έκδοση 3.0.1 για το Android 4.0) του Linux Kernel, η οποία υποστηρίζει όλες τις κύριες λειτουργίες του λειτουργικού συστήµατος. Οι λειτουργίες αυτές αφορούν διαχείριση µνήµης, διαχείριση διεργασιών, λειτουργίες δικτύου, ασφάλεια του λειτουργικού, και ένα σύνολο οδηγών υλικού (hardware drivers). Οι οδηγοί αυτοί είναι υπεύθυνοι για την επικοινωνία του software µε το hardware της συσκευής. Ενδεικτικά ο πυρήνας του Android περιέχει: Οδηγό προβολής οθόνης Οδηγό Wifi και Bluetooth Οδηγό κάµερας κλπ Ο πυρήνας του Android µπορεί να βασίζεται στον πυρήνα του Linux, αλλά διαφέρει ~ 34 ~

αρκετά από αυτόν. Ο λόγος είναι οι αλλαγές στην αρχιτεκτονική που έχει κάνει η Google για να είναι ελαφρύτερος και βελτιστοποιηµένος για χρήση σε κινητές συσκευές. Αυτό σηµαίνει ότι παρότι το Android είναι κατά βάση Linux, επί της ουσίας είναι αρκετά δύσκολο να τρέξουν εφαρµογές ή να χρησιµοποιηθούν βιβλιοθήκες από τη µία πλατφόρµα στην άλλη. Ο Linus Torvalds έχει αναφέρει ότι τελικά στο µέλλον το Android και το Linux θα µοιράζονται έναν κοινό πυρήνα, αλλά αυτό θα αργήσει 4-5 χρόνια ακόµα. 2.4.2 Βιβλιοθήκες Στο δεύτερο επίπεδο της στοίβας έχουµε τις βιβλιοθήκες του Android. Αυτές ουσιαστικά αποτελούν τα APIs που είναι διαθέσιµα στους προγραµµατιστές για την ανάπτυξη των εφαρµογών. Οι βιβλιοθήκες από µόνες τους δεν αποτελούν εφαρµογές αλλά ενσωµατώνονται και χρησιµοποιούνται από τις εφαρµογές για τις διάφορες λειτουργίες που παρέχει η καθεµία από αυτές. Ουσιαστικά αποτελούν ένα από τα δοµικά υλικά των εφαρµογών, και άρα είναι αναπόσπαστο κοµµάτι τους. Οι δυνατότητες των βιβλιοθηκών του Android γίνονται εµφανείς στους προγραµµατιστές στην στοίβα του πλαισίου εφαρµογής. Το σύνολο σχεδόν των βιβλιοθηκών είναι γραµµένο σε C και C++, οι οποίες έχουν µεταγλωττιστεί για τη χρήση τους από το λειτουργικό. Μερικές από τις κύριες βιβλιοθήκες του Android είναι: System C library µια ενσωµάτωση της standard βιβλιοθήκης συστήµατος της C (libc) τροποποιηµένη για κινητές συσκευές βασισµένες στο Linux. Βιβλιοθήκες Πολυµέσων Υποστηρίζει αναπαραγωγή και εγγραφή πολλών δηµοφιλών µέσων ήχου και εικόνας,όπως: MPEG4, H.264, MP3, AAC, AMR, JPG, και PNG Surface Manager διαχειρίζεται την πρόσβαση στο υποσύστηµα προβολής, και συνθέτει απρόσκοπτα δισδιάστατα και τρισδιάστατα επίπεδα γραφικών τα οποία προέρχονται από πολλαπλές εφαρµογές. LibWebCore µια µοντέρνα µηχανή υποστήριξης πλοήγηση στο διαδίκτυο (browser engine) η οποία χρησιµοποιείτε και από τον ενσωµατωµένο browser του Android αλλά και από τις WebViews που ενσωµατώνονται στις εφαρµογές. SGL η γνωστή µηχανή δισδιάστατων γραφικών Βιβλιοθήκες 3D µια υλοποίηση βασισµένη στα APIs του OpenGL ES 1. Οι βιβλιοθήκες χρησιµοποιούν είτε τρισδιάστατη επιτάχυνση υλικού, όπου αυτή είναι διαθέσιµη, είτε µια υψηλά βελτιωµένη τρισδιάστατη επιτάχυνση λογισµικού σε περίπτωση που η πρώτη δεν είναι διαθέσιµη. FreeType παρέχει ευκρίνεια γραφικών στα bitmaps και τις γραµµατοσειρές των εφαρµογών του συστήµατος. SQLite µια πανίσχυρη και συνάµα πολύ ελαφριά σχεσιακή βάση δεδοµένων ~ 35 ~

2.4.3 Η εικονική µηχανή Dalvik Σχεδόν το σύνολο των APIs του Android βασίζονται στη γλώσσα προγραµµατισµού Java. Στην Java ως γνωστόν υπάρχει η λεγόµενη Java Virtual Machine στην οποία εκτελείτε ο κώδικας bytecode των εφαρµογών. Στο Android υπάρχει κάτι παρόµοιο και δεν είναι άλλο από την εικονική µηχανή Dalvik. Η Dalvik λοιπόν είναι η εικονική µηχανή µέσω της οποίας τρέχουν οι εφαρµογές του Android. H κάθε εφαρµογή τρέχει µέσω τις δικής της εικονικής µηχανής στη δικιά της διεργασία και για αυτό το λόγο καµία εφαρµογή δεν έχει επαφή µε την άλλη, ενώ εκτελούνται ταυτόχρονα. Η Dalvik δεν υποστηρίζει τον κώδικα bytecode, αντί αυτού οι κλάσεις της Java γίνονται compile σε αρχεία.dex ώστε να τρέξουν στην VM. Τα αρχεία dex ουσιαστικά αποτελούν συµπιεσµένα δεδοµένα για εξοικονόµηση χώρου κατά την εκτέλεση. Το Android είναι από τη φύση του multitasking λειτουργικό σύστηµα και για αυτό επιτρέπει στις εφαρµογές του να τρέχουν σε πολλά νήµατα ταυτόχρονα και να απασχολούν πολλές διαδικασίες εάν αυτό είναι αναγκαίο. Για να γίνει αυτό εφικτό η µηχανή Dalvik είναι σχεδιασµένη για να έχει ελάχιστο αντίκτυπο στη χρήση της µνήµης. Χάρη στον λιτό της σχεδιασµό, το σύστηµα είναι σε θέση να τρέχει πολλές εικονικές µηχανές ταυτόχρονα. 2.4.4 Χρόνος Εκτέλεσης Εφαρµογής (Android Runtime) Ο χρόνος εκτέλεσης των εφαρµογών του Android, βρίσκεται στο ίδιο επίπεδο µε τις κύριες βιβλιοθήκες και την µηχανή Dalvik. Εδώ βρίσκουµε το κοινό σηµείο επαφής µεταξύ των δυνατοτήτων που παρέχουν οι βιβλιοθήκες και του χρόνου εκτέλεσης της εικονικής µηχανής Dalvik τις λειτουργίες τις οποίας, περιγράψαµε παραπάνω. 2.4.5 Πλαίσιο Εφαρµογής (Application Framework) Το Android παρέχει στους developers µια ανοιχτού κώδικα πλατφόρµα ανάπτυξης και τη δυνατότητα να αναπτύξουν µε αυτή ιδιαίτερα καινοτόµες και πλούσιες σε υλικό, εφαρµογές. Οι developers έχουν στην διάθεση τους τη δυνατότητα ελέγχου του υλικού της συσκευής και µέσω αυτής µπορούν να αποκτήσουν πρόσβαση σε υπηρεσίες εντοπισµού, εκτέλεση διεργασιών παρασκηνίου, και πάρα πολλές ακόµη δυνατότητες οι οποίες βασίζονται στα APIs που είναι διαθέσιµα. Στο επόµενο επίπεδο της αρχιτεκτονικής του Android λοιπόν, συναντάµε το πλαίσιο των εφαρµογών. Οι developers έχουν πρόσβαση σε όλα τα APIs µεταξύ αυτών και στα κύρια APIs που χρησιµοποιούν οι ενσωµατωµένες εφαρµογές. Η δοµή των εφαρµογών είναι τέτοια που ευνοείται η επαναχρησιµοποίηση δοµικών συστατικών, και επίσης επιτρέπεται η χρήση των δυνατοτήτων τις µίας εφαρµογής από άλλες εφαρµογές, βέβαια κάτω από τις προδιαγραφές ασφάλειας του Android. Τα σηµαντικότερα δοµικά στοιχεία του πλαισίου εφαρµογών είναι: Σύστηµα προβολών (View System) αποτελεί ένα εκτενές σύνολο από αντικείµενα GUI τα οποία µπορούν να χρησιµοποιηθούν κατά το σχεδιασµό µιας εφαρµογής. Παραδείγµατα προβολών είναι οι λίστες (listview), το πλέγµα (GridView), πεδία εισαγωγής κειµένου, κουµπιά, κλπ Πάροχος Περιεχοµένου (Content Provider) δίνει τη δυνατότητα στις εφαρµογές να ~ 36 ~

µοιράζονται ή να ανταλλάσσουν δεδοµένα µιας συγκεκριµένης µορφής η οποία ορίζεται από τον πάροχο. Παραδείγµατα δεδοµένων, είναι οι επαφές χρήστη και οι βάσεις δεδοµένων των εφαρµογών. ιαχειριστής Πόρων (Resource Manager) παρέχει πρόσβαση σε υλικό το οποίο δεν είναι σε µορφή κώδικα όπως πχ, εικόνες, αρχεία xml, πίνακες χαρακτήρων, κλπ ιαχειριστής Ειδοποιήσεων (Notification Manager) δίνει στις εφαρµογές πρόσβαση στις υπηρεσίες ειδοποιήσεων χρήστη. Τέτοιες είναι οι ειδοποιήσεις στη notification bar, τα toast µηνύµατα στο κάτω µέρος της οθόνης, η δόνηση του κινητού και η ενεργοποίηση της οθόνης, κλπ ιαχειριστής ραστηριοτήτων (Activity Manager) διαχειρίζεται τον κύκλο ζωής των δραστηριοτήτων και παρέχει δυνατότητα πλοήγησης από δραστηριότητα σε δραστηριότητα κρατώντας αποθηκευµένη στη µνήµη τη σειρά εκτέλεσης αυτών. Στο σχεδιάγραµµα φαίνεται λεπτοµερώς ο κύκλος ζωής κάθε δραστηριότητας. ~ 37 ~

Εικόνα 11: Android Framework 2.5 Στο εσωτερικό µιας εφαρµογής του Android Κάθε εφαρµογή αποτελείτε από ένα σύνολο αρχείων και φακέλων δοµηµένα σε µορφή project, τα οποία αφού γίνουν compiled µέσω του Android SDK µας δίνουν το αρχείο.apk. Το αρχείο αυτό αποτελεί την εφαρµογή και µπορούµε να εγκαταστήσουµε στις συσκευές µας. Ξεκινώντας, η κάθε εφαρµογή αποτελείτε όπως είπαµε από πολλά αρχεία δοµηµένα ~ 38 ~

σε φακέλους. Όλες οι εφαρµογές πρέπει να έχουν ένα µοναδικό όνοµα πακέτου (package name) το οποίο χρησιµοποιείτε από το λειτουργικό σύστηµα για αναγνώριση της εφαρµογής. Μια εφαρµογή µπορεί να αποτελείτε από πολλά υποπακέτα, εφόσον αυτό είναι απαραίτητο λόγω της πολυπλοκότητας τις εφαρµογής, αλλά µόνο από ένα κύριο. 2.5.1 Το αρχείο AndroidManifest.xml Κάθε project εφαρµογής περιέχει ένα αρχείο στο οποίο βρίσκονται καταχωρηµένες οι σηµαντικότερες πληροφορίες της εφαρµογής, και το αρχείο αυτό ονοµάζεται AndroidManifest.xml. Πρόκειται όπως λέει και το όνοµα του για ένα αρχείο xml µέσα στο οποίο ο προγραµµατιστής καταχωρεί τις σηµαντικότερες πληροφορίες της εφαρµογής για χρήση από το λειτουργικό σύστηµα. Κάποιες από αυτές τις πληροφορίες είναι: Το όνοµα του πακέτου της εφαρµογής Το κανονικό της όνοµα που φαίνεται στον χρήστη Η έκδοση των APIs που χρησιµοποιούνται Ο αριθµός έκδοσης της εφαρµογής Οι άδειες χρήσης που ζητάει η εφαρµογή Όλες οι δραστηριότητες, πάροχοι περιεχοµένου, υπηρεσίες, κλπ, που περιέχει και χρησιµοποιεί η εφαρµογή. Όπως αντιλαµβανόµαστε πρόκειται για πολύ σηµαντικό αρχείο και αποτελεί κύριο συστατικό κάθε εφαρµογής. 2.5.2 Οι φάκελοι src & res Στον φάκελο src (εκ του source) περιέχονται τα αρχεία κλάσης τις Java όλων των Activities, Services, Content Providers, βοηθητικά αρχεία, κλπ. Ο φάκελος περιέχει το πακέτο ή τα πακέτα της εφαρµογής τα οποία περιέχουν τα αρχεία Java, και αποτελεί τον µοναδικό φάκελο στο project στον οποίο αποθηκεύονται τα αρχεία του κώδικα µας. Ο φάκελος res (εκ του resources) περιέχει όλα τα αρχεία εικόνας, κειµένου, xml layout, κλπ τα οποία χρησιµοποιούνται από τις Activities που βρίσκονται στον φάκελο src. Φυσικά δεν βρίσκονται όλα τα αρχεία πόρων, σε έναν φάκελο, αλλά είναι χωρισµένα και ταξινοµηµένα σε υποφακέλους ανάλογα µε το είδος τους. Συνηθισµένοι υποφάκελοι του κύριου φακέλου res, είναι ο φάκελος drawable ο οποίος περιέχει τα αρχεία εικόνας (.png,.jpg,.gif) τα οποία χρησιµοποιεί η εφαρµογή µας, ο φάκελος layout ο οποίος περιέχει όλα τα αρχεία xml τα οποία ορίζουν τα διάφορα layouts που υπάρχουν στην εφαρµογή, και τέλος ο φάκελος values στον οποίο αποθηκεύονται όλοι οι πόροι κειµένου που χρησιµοποιούνται στην εφαρµογή. 2.5.3 Οι υπόλοιποι φάκελοι του project Ένα project αποτελείτε από περισσότερους από τους 3 βασικούς φακέλους, κάποιοι από τους οποίους µπορεί να θεωρηθούν και περιττοί αναλόγως την περίπτωση. Στο project λοιπόν περιλαµβάνονται και ο φάκελος µε τα διαθέσιµα APIs αναλόγως την ~ 39 ~

έκδοση που έχουµε επιλέξει να δουλέψουµε, ο φάκελος µε τις διαθέσιµες βιβλιοθήκες που έχουµε εισάγει στο build path του project µας, και επίσης περιλαµβάνει και τις διαβαθµίσεις του φακέλου res, όπως είναι οι φάκελοι drawable-hdpi, drawable-mdpi, layout-port, menu, κλπ. Σε αυτούς περιλαµβάνονται τα ειδικά διαµορφωµένα αρχεία πόρων που έχουµε τοποθετήσει ώστε να είναι διαθέσιµα από το λειτουργικό σύστηµα, αναλόγως την περίσταση. 2.5.4 οµικά Μέρη µιας Εφαρµογής Παραπάνω αναφέραµε ότι όλα τα δοµικά µέρη της εφαρµογής πρέπει να αναφέρονται αναλυτικά στο αρχείο AndroidManifest.xml, πια είναι όµως αυτά τα δοµικά µέρη και πια η λειτουργία του καθενός; ραστηριότητες (Activities) Πρόκειται ίσως για το κύριο δοµικό στοιχείο µιας εφαρµογής. ραστηριότητα είναι µια οθόνη διεπαφής χρήστη (GUI) και προβολής πληροφοριών. Κάθε εφαρµογή έχει τόσες Activities όσες και οι διαφορετικές οθόνες οι οποίες εµφανίζονται στον χρήστη. Όλες οι δραστηριότητες συνεργάζονται µεταξύ τους για να δώσουν στον χρήστη µια συνολική εµπειρία χρήσης της εφαρµογής. Προθέσεις (Intents) Οι δραστηριότητες επικοινωνούν και εναλάσουν την λειτουργία τους µέσω των Intents. Ουσιαστικά τα Intents εξασφαλίζουν την µετάβαση από την µία δραστηριότητα σε µια άλλη και επίσης χρησιµοποιούνται για ανταλλαγή δεδοµένων. Η ανταλλαγή δεδοµένων, µπορεί να γίνει είτε µεταξύ των Activities µιας εφαρµογής, είτε από τη µία εφαρµογή στην άλλη. Παραδείγµατος χάρη µπορούµε µέσω ενός Intent να εκκινήσουµε έναν browser ώστε να µας ανοίξει απευθείας ένα url το οποίο έχουµε παρέχει εµείς µέσω ενός Intent. Υπηρεσίες (Services) Πρόκειται για λειτουργίες της εφαρµογής οι οποίες είναι σχεδιασµένες να τρέχουν στο παρασκήνιο και να επιστρέφουν αποτελέσµατά ακόµη και όταν η εφαρµογή δεν είναι στο προσκήνιο. Πχ µια εφαρµογή media player µπορεί µέσω µιας υπηρεσίας να συνεχίσει να παίζει µουσική ακόµη και όταν το κύριο παράθυρο της εφαρµογής δεν βρίσκεται στο προσκήνιο. Πάροχος Περιεχόµενου (Content Providers) - Η ανταλλαγή δεδοµένων από µια εφαρµογή στην άλλη όπως είπαµε παραπάνω µπορεί να γίνει µέσω ενός Intent, ένας πάροχος περιεχοµένου όµως έχει πιο σύνθετη λειτουργία. Οι content providers µιας εφαρµογής διαχειρίζονται συγκεκριµένα δεδοµένα της εφαρµογής τα οποία έχει ορίσει ο προγραµµατιστής κατά την κατασκευή του. Συνηθισµένα δεδοµένα τα οποία µοιράζονται µέσω Content Providers, είναι οι βάσεις δεδοµένων SQLite µιας εφαρµογής, και οι επαφές του χρήστη. έκτες Μετάδοσης (Broadcast Receivers) Πρόκειται για ένα είδους υπηρεσία η οποία αντιλαµβάνεται κάποια γεγονότα του συστήµατος και αναλαµβάνει να ενηµερώσει το σύστηµα η τις υπόλοιπες εφαρµογές. Ο σκοπός τους είναι διπλός καθότι µπορούν και να ενηµερωθούν για κάποιο συµβάν από άλλες εφαρµογές, αλλά και να ειδοποιήσουν τις υπόλοιπες εφαρµογές και το σύστηµα για κάποιο συµβάν που τις ενεργοποίησε. εν έχουν γραφικό περιβάλλον αλλά µπορούν να προβάλουν ειδοποίηση στον χρήστη µέσω της µπάρας ειδοποιήσεων. Συνήθως χρησιµοποιούνται ως διαµεσολαβητές µεταξύ των Activities και των Servιces µιας εφαρµογής. ~ 40 ~

2.6 Ασφάλεια στο Android Τη στιγµή που µια εφαρµογή εγκαθίσταται στη συσκευή, λειτουργεί αποκλειστικά στο δικό της εικονική µηχανή η οποία αποτελεί και το πλαίσιο ασφαλείας (sandbox) της εφαρµογής. Το Android είναι ένα λειτουργικό σύστηµα πολλών χρηστών στο οποίο: Η κάθε εφαρµογή αντιµετωπίζεται σαν διαφορετικός χρήστης Από προεπιλογή το σύστηµα δίνει έναν µοναδικό αριθµό ID ο οποίος είναι άγνωστος στην εφαρµογή. Το σύστηµα αναθέτει συγκεκριµένες άδειες χρήσης στα αρχεία της εφαρµογής, και µόνο η εφαρµογή µε το σωστό ID µπορεί να έχει πρόσβαση σε αυτά. Κάθε εφαρµογή τρέχει στην δική της εικονική µηχανή (VM) αποµονωµένη από τις υπόλοιπες εφαρµογές. Η κάθε VM εκκινείτε µόλις ζητηθεί από το σύστηµα και κλείνει είτε επειδή δεν χρησιµοποιείτε πλέον, είτε επειδή το σύστηµα θέλει να ελευθερώσει τους πόρους της µνήµης για χρήση από άλλη εφαρµογή. Με αυτό τον τρόπο το Android χρησιµοποιεί την αρχή των ελαχίστων δικαιωµάτων. Η κάθε εφαρµογή έχει πρόσβαση µέσω του AndroidManifest µόνο σε όσους πόρους συστήµατος χρειάζεται και κανέναν περισσότερο. Οι πόροι και τα δικαιώµατα που απαιτούνται από µία εφαρµογή γίνονται γνωστά στον χρήστη τη στιγµή της εγκατάστασης της, και ο χρήστης µπορεί να επιλέξει να µην εγκαταστήσει µια εφαρµογή εφόσον δεν συµφωνεί να τις παρέχει πρόσβαση στους πόρους που ζητάει. ~ 41 ~

ΚΕΦΑΛΑΙΟ 3 ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ 3.1 Βάσεις εδοµένων Οι βάσεις δεδοµένων και τα συστήµατα βάσεων δεδοµένων αποτελούν ένα σηµαντικό στοιχείο της καθηµερινής ζωής στην σύγχρονη κοινωνία. Η αγορά αντικειµένων από ένα σούπερ µάρκετ, η ανάληψη χρηµάτων, η κράτηση ταξιδιωτικών εισιτηρίων, η αναζήτηση στοιχείων σε µία βιβλιοθήκη, είναι ενέργειες αντιπροσωπευτικές αυτού που ονοµάζεται παραδοσιακές εφαρµογές βάσεων δεδοµένων, όπου οι περισσότερες πληροφορίες είναι σε µορφή text ή σε µορφή αριθµού. Οι βάσεις δεδοµένων και η τεχνολογία βάσεων δεδοµένων εξασκούν σηµαντική επίδραση στην αυξανόµενη χρήση των υπολογιστών. Μπορεί µε ασφάλεια να ειπωθεί ότι οι βάσεις δεδοµένων θα παίξουν κρίσιµο ρόλο σε όλες τις περιοχές που χρησιµοποιούνται υπολογιστές, όπως παραδειγµατικά µπορούµε να αναφέρουµε, η µηχανική, η ιατρική, τα νοµικά, η εκπαίδευση, η οικονοµία κ.ά. 3.2 Τι είναι η βάση δεδοµένων Βάση δεδοµένων είναι µία συλλογή από σχετιζόµενα δεδοµένα. Με τον όρο δεδοµένα, εννοούµε γνωστά γεγονότα που µπορούν να καταγραφούν και έχουν κάποια υπονοούµενη σηµασία. Ο όρος αυτός είναι αρκετά γενικός, γι αυτό συνήθως η χρήση του όρου βάση δεδοµένων έχει τις ακολουθούµενες υπονοούµενες ιδιότητες: * Μία βάση δεδοµένων αναπαριστά κάποια άποψη του πραγµατικού κόσµου η οποία µερικές φορές λέγεται µικρόκοσµος ή πεδίο αναφοράς. Οι αλλαγές στον µικρόκοσµο αντανακλώνται στην βάση δεδοµένων. * Μία βάση δεδοµένων είναι µία λογικά συνεκτική συλλογή δεδοµένων που έχει κάποια εγγενή σηµασία. Μία τυχαία διευθέτηση δεδοµένων δεν είναι σωστό να αναφέρεται ως βάση δεδοµένων. * Μία βάση δεδοµένων σχεδιάζεται, χτίζεται και γεµίζει µε δεδοµένα για κάποιο συγκεκριµένο σκοπό. Προορίζεται για µία συγκεκριµένη οµάδα χρηστών και για κάποιες προκαθορισµένες εφαρµογές για τις οποίες οι χρήστες αυτοί ενδιαφέρονται. 3.3 Σύστηµα ιαχείρισης Βάσεων εδοµένων Σύστηµα ιαχείρισης Βάσεων εδοµένων (Σ Β database management system DBMS) είναι µία συλλογή από προγράµµατα που επιτρέπουν στους χρήστες να δηµιουργήσουν και να συντηρήσουν µία βάση δεδοµένων. ~ 42 ~

Το Σ Β είναι ένα γενικής χρήσης (general-purpose) σύστηµα λογισµικού που διευκολύνει τις διαδικασίες ορισµού, κατασκευής και χειρισµού βάσεων δεδοµένων για διάφορες εφαρµογές. Ο ορισµός µίας βάσης δεδοµένων περιλαµβάνει την προδιαγραφή των τύπων, των δοµών και των περιορισµών των δεδοµένων που θα αποθηκευθούν στην βάση. Κατασκευή µίας βάσης δεδοµένων είναι η διαδικασία αποθήκευσης των ίδιων των δεδοµένων σε ένα µέσο αποθήκευσης που ελέγχεται από το Σ Β. Ο χειρισµός µίας βάσης δεδοµένων περιλαµβάνει ορισµούς, όπως υποβολή επερωτήσεων προς την βάση για ανάκτηση συγκεκριµένων δεδοµένων, ενηµέρωση της βάσης ώστε να αντανακλά αλλαγές στον µικρόκοσµο και παραγωγή αναφορών για τα δεδοµένα. Εικόνα 12: Σύστηµα διαχείρισης βάσεων δεδοµένων ~ 43 ~

3.3.1 Χαρακτηριστικά της Προσέγγισης Βάσης εδοµένων Ένα σύνολο διαφορετικών χαρακτηριστικών ξεχωρίζουν την προσέγγιση βάσεων δεδοµένων από την παραδοσιακή προσέγγιση του προγραµµατισµού µε χρήση αρχείων. Στην κλασσική επεξεργασία αρχείων κάθε χρήστης ορίζει και δηµιουργεί αρχεία που χρειάζεται για µία συγκεκριµένη εφαρµογή. Ένας χρήστης στην Γραµµατεία, για παράδειγµα, µπορεί να τηρεί ένα αρχείο για τους φοιτητές και τους βαθµούς τους και να έχει κατασκευάσει προγράµµατα για να τυπώνει αναλυτικές βαθµολογίες και να εισάγει νέους βαθµούς στο αρχείο. Ένας δεύτερος χρήστης στο λογιστήριο µπορεί να παρακολουθεί τα δίδακτρα και τις πληρωµές των φοιτητών. Ενώ και οι δύο χρήστες ενδιαφέρονται για τα δεδοµένα των φοιτητών, κάθε χρήστης τηρεί ξεχωριστά αρχεία και προγράµµατα για τον χειρισµό τους διότι ο καθένας απαιτεί κάποια δεδοµένα που δεν είναι διαθέσιµα στα αρχεία του άλλου. Αυτός ο πλεονασµός στον ορισµό και την αποθήκευση των δεδοµένων έχει ως αποτέλεσµα να σπαταλάται αποθηκευτικός χώρος και να καταβάλεεται πρόσθετος κόπος για την διατήρηση των κοινών δεδοµένων σε ενηµερωµένη µοφρή. Στην προσέγγιση των βάσεων δεδοµένων, διατηρείται ένας και µοναδικός ταµιευτήρας δεδοµένων που ορίζεται µία φορά και στην συνέχεια προσπελάζεται από τους διάφορους χρήστες. Οι κύριες διαφορές της προσέγγισης βάσεων δεδοµένων από την προσέγγιση επεξεργασίας αρχείων είναι οι επόµενες [9]: * Η αυτοπεριγραφική φάση ενός συστήµατος βάσης δεδοµένων * Αποµόνωση µεταξύ προγραµµάτων και δεδοµένων και αφαίρεση δεδοµένων * Υποστήριξη πολλών όψεων των δεδοµένων * Μοίρασµα των δεδοµένων και επεξεργασία δοσοληψιών από πολλούς χρήστες ~ 44 ~

ΚΕΦΑΛΑΙΟ 4 ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΑΝ ΓΙΑ ΤΗΝ ΒΑΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΤΗΝ ΗΜΙΟΥΡΓΙΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΤΟΥ ΚΙΝΗΜΑΤΟΓΡΑΦΟΥ 4.1 Τι είναι ο XAMPP; Το XAMPP είναι ένα πρόγραµµα ελεύθερου λογισµικού µε µηδενικό κόστος. To XAMPP αποτελεί στην ουσία ένα πακέτο, το οποίο περιλαµβάνει τις τελευταίες εκδόσεις του Apache HTTP Server, της PHP και της MySQL βάσης δεδοµένων, µεταγλωτιστές σεναρίων γραµµένους στις γλώσσες προγραµµατισµού PHP και Perl, ενώ περιλαµβάνει επίσης και αλλα τρία χρήσιµα εργαλεία, που θα χρειαστούµε στην συνέχεια (PhpMyAdmin, Filezilla Server, Mercury Mail). To XAMPP διατίθεται και αυτό δωρεάν από την σελίδα http://www.apachefriends.org για διάφορα λειτουργικά συστήµατα (Linux, Windows, Solaris, Mac). Το Control Panel του Xampp. Το όνοµα XAMPP είναι αρκτικόλεξο(ακρωνύµιο) και σηµαίνει : 1 Χ (σηµαίνει πως είναι χιαστή πλατφόρµα) 2 Apache HTTP Server 3 MySQL 4 PHP 5 Perl Το πρόγραµµα έχει δηµιουργηθεί κάτω από την άδεια χρήσης GNU (General Public License) και συµπεριφέρεται σαν ένας web server χωρίς κόστος ικανός να φιλοξενεί πολλές δυναµικές ιστοσελίδες. Το XAMPP είναι διαθέσιµο στα Microsoft Windows, Linux, Solaris, και Mac OS X, και είναι κυρίως χρήσιµο για ανάπτυξη web projects. 4.1.1 Αρχιτεκτονική του XAMPP; Η εφαρµογή που αναπτύχθηκε έχει σχεδιαστεί έχοντας ως βάση την µέγιστη δυνατή λειτουργικότητα. Έτσι έχει προσεχθεί ώστε να είναι : ανεξάρτητη λειτουργικού συστήµατος (δηλαδή µπορεί να εγκατασταθεί σε οποιοδήποτε λειτουργικό σύστηµα) προσπελάσιµη µέσω οποιουδήποτε φυλλοµετρητή (browser) πλήρως σπονδυλωτή στη δοµή της, δηλαδή να χρησιµοποιεί αρθρώµατα (modules) για τις διάφορες λειτουργίες που εκτελεί προσιτή στη διαχείριση από τον διδάσκοντα. Οι παραπάνω ιδιότητες-στόχοι οδηγούν σε ένα σύστηµα υλικού (H/W) και λογισµικού (S/W) το οποίο αποτελείται από : τη βάση δεδοµένων που περιέχει όλες τις απαραίτητες πληροφορίες για τη λειτουργία του συστήµατος ~ 45 ~

τα αποθηκευτικά µέσα, δηλαδή τους υπολογιστές που φιλοξενούν το υλικό του µαθήµατος το περιβάλλον εργασίας, δηλαδή το λογισµικό διεπαφής που επεξεργάζεται τις πληροφορίες και κάνει δυνατή την αλληλεπίδραση των χρηστών µε το εκπαιδευτικό υλικό. Η εφαρµογή είναι βασισµένη στο πρότυπο τύπου «πελάτη-εξυπηρετητή» (clientserver). Εγκαθίσταται σε οποιοδήποτε λειτουργικό σύστηµα, υποστηρίζει web server τύπου Apache ή Microsoft IIS, ενώ στηρίζεται εξ ολοκλήρου σε περιβάλλοντα «ανοιχτού κώδικα» (open source) για την λειτουργία της. Για την ανάπτυξη του ιστογενούς περιβάλλοντος της εφαρµογής και των αλγορίθµων της χρησιµοποιήθηκε η γλώσσα PHP (Pre Hypertext Processor). Εικόνα 13: Αρχική σελίδα του XAMPP 4.1.2 Απαιτήσεις και χαρακτηριστικά του XAMPP. Tο XAMPP απαιτεί µόνο ένα zip, πίσσα ή exe αρχείο που θα κατεβάσει και να τρέξει, και µικρή ή δεν διάρθρωση των επιµέρους στοιχείων που συνθέτουν τον web server απαιτείται. XAMPP ενηµερώνεται τακτικά να συµπεριλάβει τις τελευταίες εκδόσεις του Apache / MySQL / PHP και Perl. Επίσης, έρχεται µε µια σειρά από άλλες µονάδες, συµπεριλαµβανοµένων OpenSSL και phpmyadmin. Η Εγκατάσταση XAMPP απαιτεί λιγότερο χρόνο από την εγκατάσταση κάθε στοιχείου του ξεχωριστά. Αυτοτελές, πολλαπλές παρουσίες του XAMPP µπορεί να υπάρχει σε έναν υπολογιστή, καθώς και κάθε δεδοµένη περίσταση µπορούν να αντιγραφούν από έναν υπολογιστή στον άλλο. Προσφέρεται σε δύο πλήρη εκδόσεις, κανονική έκδοση και µια µικρότερη έκδοση. ~ 46 ~

4.1.3 Εγκατάσταση του XAMPP. Για να ξεκινήσουµε τη δηµιουργία της ιστοσελίδας που πρόκειται να δηµιουργήσουµε θα πρέπει να κατεβάσουµε αρχικά ένα τοπικό server για τους πειραµατισµούς µας, όπως είναι ο XAMPP. Το συγκεκριµένο πρόγραµµα µπορούµε να το κατεβάσουµε από τη διεύθυνση : http://www.apachefriends.org/en/xampp.html Ανοίγωντας ένα καινούργιο παράθυρο µε τον browser, τον οποίο χρησιµοποιούµε, πληκτρολογούµε την παραπάνω διεύθυνση. Στη συνέχεια, επιλέγουµε τη δεύτερη επιλογή «XAMPP for Windows», όπως βλέπουµε και στην παραπάνω εικόνα (PrintScreen). Αµέσως µας ανοίγει µία σελίδα που µας επιτρέπει να κατεβάσουµε το πρόγραµµα, πατώντας «Installer». Εικόνα 14: Επιλογή έκδοσης του XAMPP Αφού το κάνουµε αυτό, µας εµφανίζει ένα παράθυρο όπου µπορούµε να κατεβάσουµε το αρχείο.exe του συγκεκριµένου προγράµµατος, στον υπολογιστή µας ώστε αργότερα να προχωρήσουµε στην εγκατάσταση του. ~ 47 ~

Εικόνα 15: Κατέβασµα του XAMPP ~ 48 ~

Ακολούθως, πατάµε «Αποθήκευση Αρχείου» και το εκτελέσιµο πρόγραµµα ( Xampp.exe )αποθηκεύεται στον προεπιλεγµένο φάκελο του υπολογιστή µας (π.χ. Downloads ). Εκεί, αφού το βρούµε, κάνουµε διπλό κλικ ώστε να ξεκινήσει η εγκατάσταση. Αφού έχει εγκατασταθεί ο xampp, πάµε στην επιφάνεια εργασίας και κάνουµε διπλό κλικ στο εικονίδιο XAMPP Control Panel. Αυτό θα µας εµφανίσει την παρακάτω εικόνα. Εικόνα 16: XAMPP Control Panel Άρα, ο τοπικός µας server βρίσκεται σε λειτουργία. Μετά κάτω από το µενού Έναρξη (Start) του υπολογιστή µας, δηµιουργήθηκε ένας νέος κατάλογος εφαρµογών µε το το όνοµα apachefriends, που περιέχει όλες τις εντολές που χρειαζόµαστε για να λειτουργήσουµε την εφαρµογή. Έτσι κάνοντας κλικ στο «xampp basic start» ξεκινάµε την εφαρµογή, κάνοντας κλικ στο «xampp basic stop» σταµατάµε την εφαρµογή. Κάνοντας κλικ στο «xampp httpdoc folder» βλέπουµε σε ποιο κατάλογο αποθηκεύονται τα αρχεία που δηµιουργούν τις σελίδες µας. Σηµαντικό στοιχείο είναι ότι µαζί µε το xampp εγκαθίσταται αυτόµατα και η εφαρµογή phpmyadmin για τη διαχείριση βάσεων δεδοµένων MySQL. Πρέπει να σηµειώσουµε ότι, επειδή τρέξαµε υπηρεσίες, χρειάστηκε να έχουµε δικαιώµατα διαχειριστή και όχι του απλού χρήστη. Επιπλέον, δεν θέλαµε να γίνεται αυτόµατη εκκίνηση και δεν έπρεπε ποτέ να πατήσουµε την επιλογή Svc, διότι θα είχαν εγκατασταθεί ως υπηρεσίες (services.exe). Εφόσον είχε τελειώσει η παραπάνω ~ 49 ~

διαδικασία (close this wizard) από το Start Control Panel πατήσαµε το κουµπί Start και περιµέναµε να γίνει πράσινο στον Apache και στην MySql. Επόµενο βήµα ήταν να ανοίξουµε τον φυλλοµετρητή web browser και να µεταβούµε στην ιστοσελίδα µας : http://localhost ή στο διαχειριστικό κοµµάτι του προγράµµατος : http://localhost/xampp. Εικόνα 17: Localhost του XAMPP Στην επιλογή Status µπορούµε να δούµε ποιες υπηρεσίες είναι ACTIVATED. Παρατηρούµε ότι όσες θέλουµε είναι ενεργές. Αυτό που πρέπει να κάνουµε αρχικά είναι να πάµε στην επιλογή Security και να κάνουµε τις αλλαγές που µας προτείνει το xampp για να αυξήσουµε την ασφάλεια του τοπικού µας server. Τελικά θα έχουµε το παρακάτω αποτέλεσµα και είµαστε έτοιµοι να ξεκινήσουµε να διαχειριζόµαστε τον τοπικό µας server. ~ 50 ~

Εικόνα 18: XAMPP Security θα κάνουµε login µε τα στοιχεία που ορίσαµε προηγουµένως όπως στην εικόνα παρακάτω. Εικόνα 19: Login στο PhpMyAdmin ~ 51 ~

Μετά πάµε στην καρτέλα databases και στο σηµείο create new database βάζουµε το όνοµα που θέλουµε να έχει η βάση µας και πατάµε create. Εικόνα 20: Create Database Ετσι λοιπόν δηµιουργήσαµε την βάση δεδοµένων µας. 4.2 Εγκατάσταση του NOTEPAD++. Το πρόγραµµα αυτό είναι διαθέσιµο για κατέβασµα από την ιστοσελίδα http://notepad-plus-plus.org/ Αφού µπούµε στην σελίδα πατάµε Download και κατεβάζουµε το εκτελέσιµο αρχείο (.exe) και είµαστε έτοιµοι να ξεκινήσουµε την εγκατάσταση. ~ 52 ~

Αφού πατήσουµε διπλό κλικ στο εκτελέσιµο αρχείο µας εµφανίζεται η παρακάτω οθόνη στην οποία επιλέγουµε γλώσσα. Εικόνα 21: Notepad ++ Επιλογή Γλώσσας Σε αυτή την οθόνη η εγκατάσταση µας καλωσορίζει στο πρόγραµµα και εµείς απλώς πατάµε επόµενο. Εικόνα 22: Notepad ++ Welcome ~ 53 ~

Εδώ εµφανίζεται η άδεια χρήσης του προγράµµατος και το µόνο που έχουµε να κάνουµε είναι να συµφωνήσουµε για να προχωρήσει η εγκατάσταση. Εικόνα 23: Notepad ++ License Agreement Στην επόµενη οθόνη πρέπει να επιλέξουµε το µέρος που θέλουµε να εγκαταστήσουµε το πρόγραµµα και µετά πατάµε Επόµενο. ~ 54 ~

Εικόνα 24: Notepad ++ Folder Selection Σε αυτή την οθόνη ενηµερωνόµαστε ότι η εγκατάσταση ολοκληρώθηκε µε επιτυχία και πατάµε Τέλος. Εικόνα 25: Notepad ++ Finish ~ 55 ~

Αυτό είναι το τελικό περιβάλλον που πρέπει να έχουµε αφού ολοκληρωθεί η εγκατάσταση. Εικόνα 26: Notepad ++ Τελικό περιβάλλον ~ 56 ~

ΚΕΦΑΛΑΙΟ 5 ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΑΝ ΓΙΑ ΤΗΝ ANDROID ΕΦΑΡΜΟΓΗ 5.1 Μια Android application µε την χρήση των SDK και Eclipse Ο σκοπός αυτής της εφαρµογής είναι να βοηθήσει όσους ενδιαφέρονται να γράψουν apps για Android. Σε αυτήν την εφαρµογή θα εξετάσουµε ολόκληρο τον κύκλο της ανάπτυξης εφαρµογής, ξεκινώντας µε ένα καθαρό υπολογιστή µέχρι το τελικό.apk αρχείο. 5.2 Προετοιµασία Για την προετοιµασία της εφαρµογής απαιτείται η εγκατάσταση µερικών λειτουργικών προγραµµάτων που αναφέρονται λεπτοµερώς πιο κάτω. εν θα υπάρξουν δραµατικές αλλαγές αν χρησιµοποιείτε άλλη έκδοση των Windows ή Linux. Εγκατάσταση του Eclipse IDE Εγκατάσταση ADT plugin για το Eclipse Εγκατάσταση JDK και JRE Εγκατάσταση του Android SDK 5.2.1 Εγκατάσταση του Eclipse IDE Επιλέγουµε την ενότητα Downloads στο επίσηµο site και εγκαθιστούµε την έκδοση Classic. Στη συνέχεια αποσυµπιέζουµε το αρχείο οπουδήποτε θέλουµε (εν προκειµένω, στο φάκελο C:\Eclipse Εγκατάσταση του περιβάλλοντος Java JDK και JRE). Αν δεν έχουµε ήδη εγκαταστήσει το Java Development Kit (JDK) και Java Runtime Environment (JRE), τότε θα πρέπει να το κάνουµε. Αυτό είναι κάτι που γίνεται στο site της Oracle (www.oracle.com/technetwork/java/javase/downloads/index.html), επιλέγοντας «Λήψη και εγκατάσταση του JDK και JRE». ~ 57 ~

Εικόνα 27: Εγκατάσταση Java SE 5.2.2 Εγκατάσταση του ADT plugin για το Eclipse Τρέχουµε το Eclipse. Αρχικά θα µας ζητηθεί να επιλέξουµε τον φάκελο που θα αποθηκεύονται τα projects µας. Για την παρούσα εργασία επιλέχθηκε το C:\Eclipse\Projects. Τώρα πρέπει να εγκαταστήσουµε το plugin, επιλέγοντας στο Help->Install New Software. Στο πεδίο Work With γράφουµε https://dlssl.google.com/android/eclipse/ και πατάµε add. Στο παράθυρο που θα ανοίξει γράφουµε ένα όνοµα ώστε αργότερα να µπορούµε να τα διαχωρίζουµε. ~ 58 ~

Εικόνα 28: Εγκατάσταση του ADT PlugIn Επιλέγουµε το Developer tools και πατάµε next. ~ 59 ~

Εικόνα 29: Ολοκλήρωση εγκατάστασης ADT PlugIn Αφού ολοκληρωθεί η εγκατάσταση κάνουµε επανεκκίνηση του Eclipse. 5.2.3 Εγκατάσταση του Android SDK Κατεβάζουµε το SDK από το επίσηµο site του Αndroid. Για τις ανάγκες της εργασίας, επιλέχθηκε το.zip αρχείο και έγινε unzip στο C:\Android. Τρέχουµε το αρχείο SDK Manager.exe που βρίσκεται στον φάκελο Android και στο παράθυρο που θα ανοίξει, επιλέγουµε τις εκδόσεις του Android και διάφορα άλλα στοιχεία που θέλουµε να χρησιµοποιήσουµε και πατάµε το install. ~ 60 ~

Εικόνα 30: Android SDK Installation Όταν ολοκληρωθεί η εγκατάσταση, πατάµε Restart και κλείνουµε τα παράθυρα. 5.3 ηµιουργία Android-εφαρµογής Μια καλή συµβουλή πριν από τη δηµιουργία της πρώτης εφαρµογής, είναι η δηµιουργία µιας εικονικής Android συσκευής για τον ταχύτερο έλεγχο του λογισµικού. Το Android Virtual Device (AVD) είναι ένα τέτοιο εικονικό smartphone που τρέχει Android, στο οποίο µπορούµε εύκολα να εκτελέσουµε οποιοδήποτε πρόγραµµα έχουµε δηµιουργήσει. Το προφανές πλεονέκτηµα του AVD είναι ότι µπορούµε να δούµε πώς το λογισµικό µας θα προβάλλεται σε διαφορετικά smartphones τα οποία υποστηρίζουν Android, αντί να τα αγοράσουµε (κάτι που είναι πρακτικά και κυρίως, οικονοµικά αδύνατον) και να κάνουµε τις απαραίτητες δοκιµές στο καθένα ξεχωριστά. Πριν φτιάξουµε το AVD, πρώτα θα συνδέσουµε το Android SDK, επιλέγοντας στο Window->Preferences. Στο παράθυρο που ανοίγει, πάµε στο Android και εκεί επιλέγουµε το φάκελο που έχουµε κάνει Unzip το SDK, πατάµε Apply και τέλος ΟΚ. ~ 61 ~

Εικόνα 31: Eclipse Android Preferences Τώρα πάµε στο Window -> Android SDK and AVD Manager, πατάµε New και διαλέγουµε τα χαρακτηριστικά που θέλουµε να έχει το εικονικό smartphone µας. Εικόνα 32: ηµιουργία AVD ~ 62 ~

Κλείνουµε το παράθυρο και πάµε στο File -> New -> Other, όπου επιλέγουµε το Android -> Android Project. Εικόνα 33: ηµιουργία Android Project Πατάµε Finish και το project έχει δηµιουργηθεί και είναι έτοιµο για αλλαγές. 5.4 AndroidScreencast Πρόγραµµα για παρουσίαση της πτύχιακης σε υπολογιστή. Για την παρσουσίαση της πτυχιακής χρησιµοποιήθηκε το androidscreencast για Ubuntu 12.04. Αρχικά κατεβαίνει το androidscreencast απο την σελίδα (https://code.google.com/p/androidscreencast/). Στην συνέχεια γίνεται έλεγχος εάν η συσκευή έχει ανιχνευτεί εκτελώντας το παρακάτω στο terminal: adb devices Τέλος εκτελείται το androidscreencast εκτελώντας το παρακάτω στο terminal: ~ 63 ~

$ wget http://androidscreencast.googlecode.com/svn/trunk/androidscreencast/dist/androidscr eencast.jnlp $ javaws androidscreencast.jnlp Και το πρόγραµµα είναι έτοιµο για χρήση. Εικόνα 34: Android ScreenCast ~ 64 ~

ΚΕΦΑΛΑΙΟ 6 Η ΒΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 6.1 Η δηµιουργία της βάσης Αφού ανοίξουµε το XAMPP και κάνουµε login στο http://localhost/phpmyadmin/index.php µπορούµε να στήσουµε την βάση δεδοµένων µας.η δικιά µας βάση αποτελείται από τους εξής πίνακες : * loginuser * movie * moviedate * chair * customer Εικόνα 35: Το αρχικό µενού του PhpMyAdmin ~ 65 ~

Στην παρακάτω εικόνα µπορούµε να δούµε απο τι αποτελείται ο πίνακας loginuser ο οποίος έχει τις εγγραφές των διαχειριστών: Εικόνα 36: Περιεχόµενα του loginuser ~ 66 ~

Ύστερα βλέπουµε τον πίνακα movie πους µας δίνει πληροφορίες για τις ταινίες: Εικόνα 37: Movie Table Ύστερα βλέπουµε τον πίνακα moviedate πους µας δίνει πληροφορίες για ώρεςηµεροµηνίες προβολών: ~ 67 ~

Εικόνα 38: moviedate Table Ύστερα βλέπουµε τον πίνακα chair πους µας δίνει πληροφορίες για τις θέσεις στην εκάστοτε προβολή : ~ 68 ~

Εικόνα 39: chair Table ~ 69 ~

Και στον τέλος βλέπουµε τον πίνακα customer πους µας δίνει πληροφορίες για τον εκάστοτε πελάτη : Εικόνα 40: customer Table Στην επόµενη εικόνα βλέπουµε τον πίνακα συσχετίσεων και την σχέση µεταξύ πινάκων µε την βοήθεια foreign keys : ~ 70 ~

Εικόνα 41: Πίνακας συσχετίσεων βάσης Αφού σώσουµε την βάση µας στον φάκελο htdocs του XAMPP πλέον µε την βοήθεια του notepad++ µπορούµε να αρχίσουµε το στήσιµο τις webpage µας. ~ 71 ~

ΚΕΦΑΛΑΙΟ 7 Η ΕΦΑΡΜΟΓΗ ΤΗΣ ΙΣΤΟΣΕΛΙ ΑΣ 7.1 Συσχέτιση βάσης δεδοµένων µε την ιστοσελίδα Για να µπορέσουµε να έχουµε εύκολη πρόσβαση στην βάση δεδοµένων αρχικά δηµιουργήσαµε την credentials.php που χρησιµοποιείτε συχνά <?php $db_hostname = 'localhost'; $db_database = 'booking_seats'; $db_username = 'root'; $db_password = 'tbs'; $db_server = mysql_connect($db_hostname, $db_username, $db_password); if (!$db_server) die("unable to connect to MySQL: ". mysql_error()); mysql_select_db($db_database) or die("unable to select database: ". mysql_error());?> ~ 72 ~

7.2 Εισαγωγή στην σελίδα του Admin Αρχικά για να µπορέσει να ο διαχειριστής να εισέλθει στην σελίδα επιλογής ταινίας και ηµεροµηνίας θα πρέπει να δώσει το όνοµα-χρηστη(username) και τον κωδικό(password). Εικόνα 42: Login Page της ιστοσελίδας του κινηµατογράφου Στην συγκεκριµένη οθόνη χρησιµοποιήθηκε ο κώδικας: <html> <head> <title>login Page</title> </head> <body> <img src="http://195.130.93.10/kaanton/ptuxiaki//images/login.png"> <h1>please login</h1> <label for="username">username: </label><input id="username" name="username" type="text" /><br/><br/> <label for="password">password: </label><input id="password" name="password" type="password" /><br/><br/> <button id="submitbtn">submit</button> ~ 73 ~

<button id="resetbtn">reset</button> <script type="text/javascript" src="http://195.130.93.10/kaanton/ptuxiaki/js/jquery- 1.8.2.min.js"></script> <script type="text/javascript" src="http://195.130.93.10/kaanton/ptuxiaki/js/jquery.loginuser.js"></script> </body> </html> Βεβαια χρησιµοποιήσαµε και τα js και για να µην µπορεί να αποκρυπτογραφηθεί εύκολα ο κωδικός χρησιµοποιήθηκε και το πρωτόκολλο MD5 όπως φαίνεται στον παρακάτω κώδικα: $inputusername = $_POST["username"]; $inputpassword = $_POST["password"]; $salt = "secret"; $token = md5("$salt$inputpassword$salt"); $query = "SELECT username, password FROM loginuser WHERE username = '$inputusername' AND password = '$token'"; $result = mysql_query($query); 7.3 Οθόνη επιλογής ταινίας-ηµεροµηνίας Αρχικά ζητείται από τον χρηστη-admin να επιλέξει ταινία στο dropdown menu και ύστερα εµφανίζεται ένα δεύτερο dropdown menu µε τις ηµεροµηνίες-ώρες τις συγκεκριµένης ταινίας. ~ 74 ~

Εικόνα 43: Η οθόνη επιλογής ταινίας Η σελίδα και το γραφικό τις περιβάλλον φαίνεται στον εξής κώδικα cinemas.php: img src="http://195.130.93.10/kaanton/ptuxiaki/images/welcome_screen.png"> <p>here, you can get info about the available movies..</p> <form id="form1" name="form1" method="post" action="http://195.130.93.10/kaanton/ptuxiaki/cinemas_chairs.php"> movie List : <select id="movietitle" name="movietitle"> ~ 75 ~

<option value="">--- Select ---</option> </option> </select> <option value="1"> RAMBO <option value="5"> HANGOVER <option value="9"> SILENT HILL <option value="13"> GANGSTER SQUAD </option> </option> </option> Αφού γίνει η επιλογή ταινίας το δεύτερο dropdown menu εµφανίζεται όπως φαίνεται στον έξης κώδικα: <div id="selectboxdatecontainer"></div> <input type="submit" id="submitformbtn" name="submitformbtn" value="select" /> και η αντιστοίχιση ταινίας ηµεροµηνίας-ώρας έγινε µε την βοήθεια του κώδικα: "movie Dates: <select id='moviedate' name='moviedate'><option value=''>no available dates<\/option><\/select>" 7.4 Οθόνη διαχείρισης θέσεων Αφού κλικάρουµε το κουµπί select περνάµε στην οθόνη που µας δίνει τις πληροφορίες για τις κρατήσεις θέσεων και τα στοιχεία του κάθε πελάτη ~ 76 ~

Εικόνα 44: Η οθόνη διαχείρισης θέσεων 7.5 Γραφικό περιβάλλον Στον κώδικα που ακολουθεί βλέπουµε τις διαθέσιµες ή κρατηµένες ήδη και της πληροφορίες για τον πελάτη: <?php ~ 77 ~

moviedate.date_id $query = "SELECT chair.number, chair.booked, chair.chair_id, FROM moviedate INNER JOIN chair ON moviedate.date_id = chair.date_id WHERE chair.date_id = '". $_POST["movieDate"]. "'"; $result = mysql_query($query); $moviedate = ""; $i = 0; $number = 0; while($row_chair=mysql_fetch_assoc($result)) { $moviedate = $row_chair['date_id']; $chairimage = "http://195.130.93.10/kaanton/ptuxiaki/images/chair_empty.png"; if ($row_chair['booked'] == 'yes') { $chairimage = "http://195.130.93.10/kaanton/ptuxiaki/images/chair.png"; } if($i % 10 == 0){ if ($i == 0){ echo ""; } else{ echo $number. "<br/>"; } $number++; } echo "<a href='#' class='chair' data-chairid='". $row_chair['chair_id']. "'><img src='". $chairimage. "' width='90' height='60' border='0' /></a>"; $i++; } echo $number;?> </div> <div style="float:right;"> <label for="name">name: </label><input type="text" name="name" id="name" value="" /><br/> <label for="phone">phone: </label><input type="text" name="phone" id="phone" value="" /><br/> <label for="email">email: </label><input type="text" name="email" id="email" value="" /><br/> <input id="thechairid" type="hidden" value="" /> ~ 78 ~

<input id="movietitle" type="hidden" value="<?php echo $_POST["movieTitle"];?>" /> <input id="moviedate" type="hidden" value="<?php echo $_POST["movieDate"];?>" /> <button id="submitcustomerchange">change</button> <button id="resetcustomerform">reset</button><br/> <span id='successdeletednotif'></span> </div> 7.6 Ανανέωση Βάσης στον πίνακα Customer Ο διαχείρισης έχει την δυνατότητα κράτησης θέσεων (update query) και ακύρωσης ήδη κρατηµένων θέσεων(delete query) στον κώδικα που ακολουθεί: if(isset($_post["remove"]) && isset($_post["thechairid"])) { $query = "DELETE FROM customer WHERE customer.chair_id = '$thechairid'"; $result = mysql_query($query); $query = "UPDATE chair SET booked = 'no' WHERE Chair_id = '$thechairid'"; $result = mysql_query($query); $output = array( "status" => true, "message" => "Existing customer deleted." ); } else if(isset($_post["name"]) && isset($_post["phone"]) && isset($_post["email"]) && isset($_post["thechairid"])){ $query = "SELECT * FROM customer WHERE customer.chair_id = '$thechairid'"; $result = mysql_query($query); // for update existing customer if ( mysql_num_rows($result) ) { $query = "UPDATE customer SET chair_id='$thechairid', name='$name', phone='$phone', email='$email' WHERE customer.chair_id = '$thechairid'"; $result = mysql_query($query); $output = array( "status" => true, ~ 79 ~

"message" => "Existing customer updated." ); } // new customer else { $query = "INSERT INTO customer (chair_id, name, phone, email) VALUES ('$thechairid', '$name', '$phone', '$email')"; $result = mysql_query($query); $query1 = "UPDATE chair SET booked='yes' WHERE chair_id='$thechairid'"; $result1 = mysql_query($query1); } } $output = array( "status" => true, "message" => "New customer inserted." );?> echo json_encode($output); 7.7 Αποστολή email Ο διαχειριστής έχει την δυνατότητα να αποστείλει email µαζικά η ατοµικά όπως φαίνεται στον κώδικα : <?php $emailarray = $_POST["emailArray"]; $emailmessagebody = $_POST["emailMessageBody"]; $to = implode(',', $emailarray); $subject = "Test mail"; $message = $emailmessagebody; $from = "tbs@localhost"; $headers = "From:". $from; mail($to,$subject,$message,$headers); $output = array( ); "message" => "The emails were sent successfully!" ~ 80 ~

echo json_encode($output);?> Βέβαια για να σταλθεί το email πρέπει να γίνουν και οι κατάλληλες ρυθµίσεις στο XAMPP, αφού ανοίξουµε στο XAMPP ενεργοποιούµε Apache MySQL και Mercury όπως φαίνεται παρακάτω : Εικόνα 45: Ενεργοποίηση Apache MySQL Mercury στο XAMPP Ύστερα βρίσκουµε το php.ini και sendmail.ini τα οποια βρίσκονται στον φάκελο του XAMPP και κάνουµε τις εξής αλλαγές βάζοντας το smtp του παρόχου µας όπως φαίνεται: php.ini: [mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury SMTP = smtp.hol.gr smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ~ 81 ~

sendmail_from = postmaster@live.com sendmail.ini: smtp_server=smtp.hol.gr ; smtp port (normally 25) smtp_port=25 ~ 82 ~

ΚΕΦΑΛΑΙΟ 8 TBS SYSTEM ANDROID APP 8.1 Εγκατάσταση του TBS-SYSTEM Αρχικά για να µπορέσει να χρησιµοποιηθεί το TBS System από το smartphone του χρήστη πρέπει να γίνει η εγκατάσταση της εφαρµογής. Αφού αντιγραφτεί το apk της εφαρµογής στην κάρτα sd του κινητού η εγκατάσταση µπορεί να γίνει απλώς επιλέγοντας το <Theater Booking Seat System.apk>. Στην συνέχεια ζητείται από τον χρήστη αν θέλει να γίνει η εγκατάσταση του <TBS System>, επιλέγοντας το <Install> ο χρήστης επιτρέπει την εγκατάσταση της εφαρµογής στο κινητό του. Μετά από λίγα δευτερόλεπτα η εγκατάσταση της εφαρµογής έχει ολοκληρωθεί και είναι έτοιµη για χρήση. Το TBS System πλέον µπορεί να βρεθεί στο µενού των εφαρµογών του χρήστη. Εικόνα 46: Επιλογή του TheaterBookingSeatSystem.apk Εικόνα 47: Ο χρήστης επιλέγει το install για την εγκατάσταση του TBS System Εικόνα 48: Εγκατάσταση της εφαρµογής Εικόνα 49: Η εγκατάσταση έχει ολοκληρωθεί και η εφαρµογή TBS System είναι έτοιµη προς χρήση ~ 83 ~

8.2 Εκτέλεση και οθόνη εισαγωγής Αµέσως µετά την εγκατάσταση του TBS System µπορεί πλεον να γίνει η εκτέλεση Εικόνα 50: Ο χρήστης επιλέγει το TBS System και η εφαρµογή εκτελείται. της εφαρµογής από τον χρήστη. Από την στιγµή που ο χρήστης επιλέξει την εφαρµογή, το AndroidManifest.xml αναζητάει και εκτελεί το activity που είναι στο category.launcher. Συγκεκριµένα εδω: <activity android:name=".welcome_screen" android:configchanges="orientation" android:label="tbs System" > <intent-filter> <action android:name="com.theatre.booking.seat.system.welcome_screen" /> <category android:name="android.intent.category.default" /> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> ~ 84 ~

Με το συγκεκριµένο activity θα εκτελεστεί η java που βρίσκεται στο android:name συγκεκριµένα εδώ θα εκτελεστεί το welcome_screen.java και ουσιαστικά πλέον η εφαρµογή αρχίζει να εµφανίζει το γραφικό περιβάλλον της εφαρµογής στον χρήστη. Το welcome_screen.java για να εµφανίσει το εισαγωγικό µήνυµα χρείαζεται να φορτώσει το αντίστοιχο layout. Αυτό γίνεται από το setcontentview. Συγκεκριµένα εδώ: setcontentview(r.layout.welcome_screen); Στο R.layout βρίσκονται όλα τα layout της εφαρµογής, ουσιαστικά δηλαδή το γραφικό περιβάλλον της εφαρµογής. Συγκεκριµένα εδώ η welcome_screen.java εµφανίζει το layout welcome_screen.xml το οποίο εµφανίζει στον χρήστη το εξής: Εικόνα 51: Το Welcome Screen της εφαρµογής Η συγκεκριµένη εικόνα εµφανίζεται µέσα απο την welcome_screen.xml µέσω της συγκεκριµένης εντολής: android:background="@drawable/welcome_screen" > Εδώ συγκεκριµένα η εικόνα welcome_screen.png που βρίσκεται στον φάκελο drawable µέσα στο res(resources) ανακαλείται και εµφανίζεται, ενώ συγχρόνως ακούγεται µία µελωδία η οποία εκτελείται µέσω της συγκεκριµένης εντολής στην welcome_screen.java: mplogo_snd = MediaPlayer.create(this, R.raw.logo_sound); if(mplogo_snd!= null) mplogo_snd.start(); Τέλος η εφαρµογή ελέγχει αν υπάρχει διαθέσιµη σύνδεση ώστε να τραβήξει τα δεδοµένα απο τον webserver. ~ 85 ~