Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλονίκης. Σχολή Τεχνολογικών Εφαρμογών. Τμήμα Πληροφορικής ΣΗΜΕΙΩΣΕΙΣ

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

Download "Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλονίκης. Σχολή Τεχνολογικών Εφαρμογών. Τμήμα Πληροφορικής ΣΗΜΕΙΩΣΕΙΣ"

Transcript

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

2 Προγραμματισμός διαδικτυακών εφαρμογών ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΚΟΝΕΣ...5 ΠΑΡΑΔΕΙΓΜΑΤΑ (ΚΩΔΙΚΑΣ)...7 ΠΙΝΑΚΕΣ...8 ΠΙΝΑΚΕΣ ΕΙΣΑΓΩΓΗ...9 ΟΡΙΣΜΟΣ ΠΕΔΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΔΙΑΔΙΚΤΥΑΚΩΝ ΕΦΑΡΜΟΓΩΝ...11 ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΗΝ CLIENT/SERVER ΑΡΧΙΤΕΚΤΟΝΙΚΗ...12 ΑΣΦΑΛΕΙΑ & ΔΙΑΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ...14 ΔΙΕΘΝΟΠΟΙΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ ΧΡΗΣΗΣ...15 ΙΣΤΟΡΙΚΟ ΑΝΑΠΤΥΞΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ η περίοδος - Στατικό περιεχόμενο (Static Content) η περίοδος - Δυναμικό περιεχόμενο με Gateway Programming η περίοδος - (client-side) Scripting η περίοδος - Server-Side Scripting η περίοδος - Internet Applications βασισμένες σε γλώσσες όπως Java, Delphi, VB, Visual C++ και τεχνολογίες όπως ActiveX η περίοδος - εμφάνιση Frameworks ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΥΣΤΗΜΑ WORLD WIDE WEB...29 ΜΗΧΑΝΙΣΜΟΣ URI...29 ΠΡΩΤΟΚΟΛΛΟ HTTP...30 HTML...33 Λίγα λόγια για τη σήμανση κειμένων...33 Φορμαλιστικός ορισμός της HTML...35 Ένα σύντομο ιστορικό ανάπτυξης της HTML...37 ΒΑΣΙΚΕΣ ΣΗΜΑΝΣΕΙΣ ΣΤΗΝ HTML Φορμάρισμα χαρακτήρων...37 Παράμετροι Στοίχισης...39 Σύνδεσμοι...40 Γραφικά...41 Λίστες...41 Πίνακες...43 Πλαίσια...47 Φόρμες...51 Η σήμανση <INPUT>...54 Η σήμανση <TEXTAREA>...56 Οι σημάνσεις <SELECT> και <OPTION>...57 Άλλες χρήσιμες σημάνσεις...59 <SPAN> και <DIV>...59 <FONT>... </FONT>...59 Γραφικά με συνδέσεις σε διάφορες συντεταγμένες (image maps)...59 Η σήμανση <META>...60 Οι σημάνσεις Fieldset και Legend...61 Η σήμανση XMP

3 Προγραμματισμός διαδικτυακών εφαρμογών Σήμανση BASE...63 Η σήμανση APPLET...63 Η σήμανση SCRIPT...63 Η σήμανση XML...64 Οι σημάνσεις TBODY και THEAD...64 Ειδικοί χαρακτήρες...64 Χρήση Συνόλων Χαρακτήρων & Κωδικοσελίδων στην HTML...65 ΤΟ ΣΥΣΤΗΜΑ WWW ΩΣ HYPERTEXT...67 ΕΡΓΑΛΕΙΑ ΔΗΜΙΟΥΡΓΙΑΣ ΣΕΛΙΔΩΝ HTML...70 Microsoft FrontPage...70 Macromedia Dreamweaver...71 NetObjects Fusion ΕΙΣΑΓΩΓΗ ΣΤΗ JAVASCRIPT...73 ΙΣΤΟΡΙΚΗ ΕΞΕΛΙΞΗ ΚΑΙ ΚΑΤΑΣΤΑΣΗ ΣΗΜΕΡΑ...74 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...74 Δημιουργία απλών scripts...74 H σήμανση <SCRIPT>...75 Τοποθέτηση scripts σε ξεχωριστά αρχεία και ενσωμάτωση...77 Που πρέπει να τοποθετούνται τα scripts;...78 Πότε ένα script εκτελείται;...79 Inline scripts...81 ΜΕΤΑΒΛΗΤΕΣ & ΤΕΛΕΣΤΕΣ ΣΤΗ JAVASCRIPT...82 Μεταβλητές...82 Που πρέπει να ορίζω τις μεταβλητές...83 Χρήση String...83 Μετατροπή μεταξύ μεταβλητών...85 Πίνακες...85 Παραδείγματα χρήσης πίνακα και μεθόδων...87 Πίνακες πολλών διαστάσεων...89 Τελεστές...89 Λίγα λόγια για τους ειδικούς τελεστές...91 Προτεραιότητα τελεστών...93 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΕΛΕΓΧΟΥ ΣΤΗ JAVASCRIPT...94 Εκτέλεση υπό συνθήκη...94 Εντολές επανάληψης...94 ΣΥΝΑΡΤΗΣΕΙΣ...95 Αναδρομή...97 Ζωή μίας μεταβλητής (scope)...98 To αντικείμενο function...98 Built-in συναρτήσεις στη JavaScript...99 Το keyword this...99 ΚΑΠΟΙΑ ΧΡΗΣΙΜΑ ΑΝΤΙΚΕΙΜΕΝΑ Τo αντικείμενο Date Τo αντικείμενο Math To αντικείμενο regular expression : κανονικές εκφράσεις Το αντικείμενο RegExp ΔΙΑΧΕΙΡΙΣΗ ΛΑΘΩΝ & ΑΠΑΣΦΑΛΜΑΤΩΣΗ ΣΤΗ JAVASCRIPT

4 Προγραμματισμός διαδικτυακών εφαρμογών Παρακολούθηση μεταβλητών Συνάρτηση eval Χρήση του γεγονότος onerror Εντολή Try-catch

5 Προγραμματισμός διαδικτυακών εφαρμογών ΕΙΚΟΝΕΣ ΕΙΚΌΝΑ 1-1: ΈΝΑ ΑΠΛΟΪΚΌ ΣΧΕΔΙΆΓΡΑΜΜΑ ΤΟΥ INTERNET. Η ΕΠΙΚΟΙΝΩΝΊΑ ΜΕΤΑΞΎ ΤΩΝ ΥΠΟΛΟΓΙΣΤΏΝ ΓΊΝΕΤΑΙ ΜΕ ΤΗ ΧΡΉΣΗ ΤΟΥ ΠΡΩΤΟΚΌΛΛΟΥ TCP/IP. ΚΆΘΕ ΚΕΝΤΡΙΚΌΣ Η/Υ ΕΞΥΠΗΡΕΤΕΊ ΠΟΛΛΟΎΣ ΤΟΠΙΚΟΎΣ ΥΠΟΛΟΓΙΣΤΈΣ ΣΥΝΔΈΟΝΤΑΣ ΤΟΥΣ ΣΤΟ INTERNET ΕΙΚΌΝΑ 1-2: ΑΝΤΙΣΤΟΊΧΗΣΗ ΤΟΥ ΠΡΩΤΟΚΌΛΛΟΥ TCP/IP ΜΕ ΤΟ ΠΡΌΤΥΠΟ OSI ΕΙΚΌΝΑ 1-3: ΑΝΤΙΣΤΟΊΧΗΣΗ ΤΟΥ ΠΡΩΤΟΚΌΛΛΟΥ TCP/IP ΚΑΙ ΤΗΣ ΠΡΑΓΜΑΤΙΚΉΣ ΛΕΙΤΟΥΡΓΊΑΣ ΤΟΥ INTERNET ΕΙΚΌΝΑ 1-4: ΤΟ ΠΕΔΊΟ ΤΟΥ ΔΙΑΔΙΚΤΥΑΚΟΎ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΎ ΑΣΧΟΛΕΊΤΑΙ ΜΕ ΤΗΝ ΑΝΆΠΤΥΞΗ ΕΦΑΡΜΟΓΏΝ ΣΤΟ ΑΝΏΤΕΡΟ ΕΠΊΠΕΔΟ ΤΟΥ TCP/IP ΠΡΩΤΟΚΌΛΛΟΥ (APPLICATION LAYER) ΕΙΚΌΝΑ 1-5: ΠΑΡΆΔΕΙΓΜΑ ΥΛΟΠΟΊΗΣΗΣ 3-TIER ΑΡΧΙΤΕΚΤΟΝΙΚΉΣ ΕΙΚΌΝΑ 1-6: ΑΠΟΣΤΟΛΉ ΑΊΤΗΣΗΣ ΑΠΌ ΤΟΝ ΠΕΛΆΤΗ ΚΑΙ ΑΠΟΣΤΟΛΉ ΕΝΌΣ ΑΡΧΕΊΟΥ ΑΠΌ ΤΟΝ ΕΞΥΠΗΡΕΤΗΤΉ ΕΝΌΣ ΑΡΧΕΊΟΥ ΑΠΌ ΤΟ ΣΎΣΤΗΜΑ ΑΡΧΕΊΩΝ ΑΥΤΟΎΣΙΟ ΧΩΡΊΣ ΚΑΜΊΑ ΕΠΕΞΕΡΓΑΣΊΑ ΣΤΗ ΜΕΡΙΆ ΤΟΥ ΕΞΥΠΗΡΕΤΗΤΉ. ΑΥΤΌ ΤΟ ΜΟΝΤΈΛΟ ΠΕΡΙΓΡΆΦΕΙ ΟΥΣΙΑΣΤΙΚΆ ΤΟ ΜΟΝΤΈΛΟ ΣΤΑΤΙΚΟΎ ΠΕΡΙΕΧΟΜΈΝΟΥ ΕΙΚΌΝΑ 1-7: ΣΤΆΔΙΑ SERVER-SIDE SCRIPTING. ΑΥΤΌ ΤΟ ΜΟΝΤΈΛΟ ΜΟΙΆΖΕΙ ΜΕ ΤΟ ΜΟΝΤΈΛΟ ΠΟΥ ΠΑΡΟΥΣΙΆΖΕΤΑΙ ΣΤΗΝ ΕΙΚΌΝΑ 1-6 ΑΛΛΆ ΜΕ ΜΊΑ ΣΗΜΑΝΤΙΚΉ ΔΙΑΦΟΡΆ, Ο ΕΞΥΠΗΡΕΤΗΤΉΣ ΠΡΙΝ ΣΤΕΊΛΕΙ ΤΗΝ ΑΠΆΝΤΗΣΗ ΣΤΟΝ ΠΕΛΆΤΗ, ΣΤΟ ΣΤΆΔΙΟ 2 ΚΆΝΕΙ ΜΊΑ ΕΠΕΞΕΡΓΑΣΊΑ (ΕΚΤΕΛΕΊ SERVER-SIDE ΚΏΔΙΚΑ) Η ΟΠΟΊΑ ΠΑΡΆΓΕΙ ΚΆΠΟΙΟ HTML ΚΏΔΙΚΑ. ΣΤΟ ΤΕΛΙΚΌ ΣΤΆΔΙΟ 3 ΤΟ ΣΥΝΟΛΙΚΌ (HTML) ΑΠΟΤΈΛΕΣΜΑ ΜΕΤΆ ΤΗΝ ΕΠΕΞΕΡΓΑΣΊΑ ΑΠΟΣΤΈΛΛΕΤΑΙ ΓΙΑ ΑΝΑΠΑΡΆΣΤΑΣΗ ΣΤΟΝ ΠΕΛΆΤΗ ΕΙΚΌΝΑ 2-1: ΤΑ ΤΡΊΑ ΜΈΡΗ ΜΊΑΣ URI ΔΙΕΎΘΥΝΣΗΣ ΕΙΚΌΝΑ 2-2: TΟ ΑΠΟΤΈΛΕΣΜΑ ΑΠΌ ΤΑ ΔΎΟ ΠΡΟΗΓΟΎΜΕΝΑ ΑΠΟΣΠΆΣΜΑΤΑ HTML ΕΙΚΌΝΑ 2-3: TO ΑΠΟΤΈΛΕΣΜΑ ΑΠΌ ΤΟ ΠΡΟΗΓΟΎΜΕΝΟ ΑΠΌΣΠΑΣΜΑ HTML (ΚΏΔΙΚΑΣ 2-1) ΕΙΚΌΝΑ 2-4: ΛΊΣΤΕΣ ΔΙΑΦΌΡΩΝ ΤΎΠΩΝ ΕΙΚΌΝΑ 2-5: ΒΑΣΙΚΈΣ ΙΔΙΌΤΗΤΕΣ ΤΩΝ ΠΙΝΆΚΩΝ (ΑΝΑΦΈΡΕΤΑΙ ΣΤΟ ΠΡΟΗΓΟΎΜΕΝΟ ΑΠΌΣΠΑΣΜΑ HTML) ΕΙΚΌΝΑ 2-6: ΔΙΑΦΟΡΕΤΙΚΆ ΜΕΓΈΘΗ ΚΕΛΙΏΝ & ΠΊΝΑΚΕΣ ΜΈΣΑ ΣΕ ΠΊΝΑΚΕΣ ΕΙΚΌΝΑ 2-7: ΔΙΆΤΑΞΗ ΜΕ ΤΗ ΧΡΉΣΗ ΠΙΝΆΚΩΝ ΕΙΚΌΝΑ 2-8: ΑΠΛΉ ΣΕΛΊΔΑ ΜΕ ΤΡΊΑ ΚΑΤΑΚΌΡΥΦΑ ΠΛΑΊΣΙΑ ΕΙΚΌΝΑ 2-9: NESTED FRAMES-FRAMESETS ΕΙΚΌΝΑ 2-10: ΜΊΑ ΑΠΛΉ ΦΌΡΜΑ...52 ΕΙΚΌΝΑ 2-11: ΠΑΡΑΔΕΊΓΜΑΤΑ ΤΗΣ ΣΉΜΑΝΣΗΣ <INPUT> ΕΙΚΟΝΑ 2-12: ΧΡΗΣΗ ΣΗΜΑΝΣΗΣ TEXTAREA ΕΙΚΟΝΑ 2-13: ΠΟΛΛΑΠΛΗ ΕΠΙΛΟΓΗ ΜΕ ΧΡΗΣΗ ΤΩΝ <SELECT> ΚΑΙ <OPTION> ΕΙΚΟΝΑ 2-14: ΑΠΟΤΕΛΕΣΜΑ ΤΩΝ ΣΗΜΑΝΣΕΩΝ FIELDSET ΚΑΙ LEGEND ΕΙΚΟΝΑ 2-15: ΧΡΗΣΗ ΤΗΣ ΣΗΜΑΝΣΗΣ XMP ΕΙΚΟΝΑ 2-16: ΤΟ MICROSOFT FRONTPAGE ΕΙΚΟΝΑ 2-17: ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ DREAMWEAVER ΜΧ ΕΙΚΟΝΑ 2-18: ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ NETOBJECTS FUSION ΕΙΚΟΝΑ 3-1: ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΕΙΚΟΝΑ 3-2: ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΕΙΚΟΝΑ 3-3: ΑΠΟΤΕΛΕΣΜΑ ΚΩΔΙΚΑΣ ΕΙΚΟΝΑ 4-1: H ΙΕΡΑΡΧΙΑ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ DOM 0... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΌΝΑ 4-2: ΈΝΑ HTML ΚΕΊΜΕΝΟ (ΔΕΞΙΆ) ΚΑΙ Η "ΓΡΑΦΙΚΉ ΑΝΑΠΑΡΆΣΤΑΣΗ" ΤΟΥ DOM ΠΟΥ ΑΝΤΙΣΤΟΙΧΕΊ ΣΕ ΑΥΤΌ ΤΟ ΑΡΧΕΊΟ... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 5-1: ΧΡΗΣΗ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ NAVIGATOR... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 5-2: TO ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΠΡΟΗΓΟΥΜΕΝΟΥ ΚΩΔΙΚΑ... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. 5

6 Προγραμματισμός διαδικτυακών εφαρμογών ΕΙΚΟΝΑ 5-3: ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 5-4: ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 5-5: ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-1: ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-2: ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-3: ΤΟΠΟΘΕΤΗΣΗ ΣΤΟΙΧΕΙΩΝ ΜΙΑΣ ΣΕΛΙΔΑΣ ΜΕ ΑΠΟΛΥΤΟ ΚΑΙ ΣΧΕΤΙΚΟ ΤΡΟΠΟ (ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ 6-14)... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-4: ΦΟΡΜΑ ΠΡΙΝ ΤΗΝ ΕΜΦΑΝΙΣΗ ΤΟΥ BUTTON (VISIBILITY HIDDEN)... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-5: ΦΟΡΜΑ ΜΕΤΑ ΤΗΝ ΕΜΦΑΝΙΣΗ ΤΟΥ BUTTON (VISIBILITY VISIBLE)... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-6: ΑΠΟΚΡΥΨΗ ΣΤΟΙΧΕΙΩΝ ΜΕ ΤΙΣ ΙΔΙΟΤΗΤΕΣ VISIBILITY (DIV1) ΚΑΙ DISPLAY (DIV2). TΟ DIV1 ΚΑΤΑΛΑΜΒΑΝΕΙ ΤΟ ΧΩΡΟ ΠΟΥ ΤΟΥ ΑΝΑΛΟΓΕΙ ΓΙΑΤΙ ΕΧΕΙ VISIBILITY=HIDDEN. ΑΝΤΙΘΕΤΑ ΤΟ DIV2 ΔΕΝ ΚΑΤΑΛΑΜΒΑΝΕΙ ΤΟ ΧΩΡΟ ΓΙΑΤΙ Η ΑΠΟΚΡΥΨΗ ΤΟΥ ΓΙΝΕΤΑΙ ΜΕ DISPLAY=NONE.... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-7: ΕΜΦΑΝΙΣΗ ΣΤΟΙΧΕΙΩΝ ΜΕ ΤΙΣ ΙΔΙΟΤΗΤΕΣ VISIBILITY (DIV1) ΚΑΙ DISPLAY (DIV2). TΟ DIV1 ΚΑΤΑΛΑΜΒΑΝΕΙ ΤΟ ΧΩΡΟ ΠΟΥ ΕΙΧΕ "ΚΡΑΤΗΘΕΙ" ΓΙΑΤΙ ΕΙΧΕ ΓΙΝΕΙ Η ΑΠΟΚΡΥΨΗ ΤΟΥ ΜΕ VISIBILITY=HIDDEN. ΑΝΤΙΘΕΤΑ ΓΙΑ ΤΗΝ ΕΜΦΑΝΙΣΗ ΤΟΥ DIV2 ΔΗΜΙΟΥΡΓΕΙΤΑΙ ΧΩΡΟΣ ΓΙΑΤΙ Η ΑΠΟΚΡΥΨΗ ΤΟΥ ΕΙΧΕ ΓΙΝΕΙ ΜΕ DISPLAY=NONE.... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-8: ΤΟΠΟΘΕΤΗΣΗ ΣΤΟΙΧΕΙΩΝ ΜΕ ΧΡΗΣΗ ΤΗΣ ΙΔΙΟΤΗΤΑΣ Z-INDEX (ΚΩΔΙΚΑΣ 6-19: ΙΔΙΟΤΗΤΑ Z-INDEX.).... ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΕΙΚΟΝΑ 6-9: ΑΠΟΤΕΛΕΣΜΑ ΤΟΥ ΚΩΔΙΚΑΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. 6

7 Προγραμματισμός διαδικτυακών εφαρμογών ΠΑΡΑΔΕΙΓΜΑΤΑ (ΚΩΔΙΚΑΣ) ΚΏΔΙΚΑΣ 1-1: ΚΏΔΙΚΑΣ CGI ΠΡΟΓΡΆΜΜΑΤΟΣ ΓΡΑΜΜΈΝΟΥ ΣΕ ΓΛΏΣΣΑ C ΚΏΔΙΚΑΣ 1-2: ΚΏΔΙΚΑΣ CGI ΠΡΟΓΡΆΜΜΑΤΟΣ ΓΡΑΜΜΈΝΟΥ ΣΕ ΓΛΏΣΣΑ PERL ΚΩΔΙΚΑΣ 1-3: ΜΙΑ ΠΡΩΤΗ ΑΠΛΗ ΔΥΝΑΜΙΚΗ ΣΕΛΙΔΑ ΠΟΥ ΔΙΝΕΙ ΤΗ ΔΥΝΑΤΟΤΗΤΑ ΑΛΛΑΓΗΣ ΓΡΑΦΙΚΟΥ ΚΩΔΙΚΑΣ 2-1: ΣΗΜΑΝΣΕΙΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΑΡΑΓΡΑΦΩΝ ΚΩΔΙΚΑΣ 3-1: ΕΝΣΩΜΑΤΩΣΗ SCRIPT ΜΕ ΤΗ ΣΗΜΑΝΣΗ <SCRIPT> ΚΏΔΙΚΑΣ 3-2: ΧΡΉΣΗ ΤΩΝ FOR ΚΑΙ EVENT ΙΔΙΟΤΉΤΩΝ (ATTRIBUTES) ΚΩΔΙΚΑΣ 3-3: ΕΚΤΕΛΕΣΗ ΕΝΟΣ SCRIPT ΑΦΟΥ ΕΧΕΙ ΦΟΡΤΩΘΕΙ ΟΛΟΚΛΗΡΗ Η ΣΕΛΙΔΑ ΣΥΝΔΕΟΝΤΑΣ ΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΟΣ SCRIPT ΜΕ ΤΟ ONLOAD EVENT ΤΟΥ BODY ΣΤΟΙΧΕΙΟΥ ΚΩΔΙΚΑΣ 3-4: ΣΥΝΔΕΣΗ ΤΟΥ SCRIPT ΜΕ ΣΥΓΚΕΚΡΙΜΕΝΟ HTML ΣΤΟΙΧΕΙΟ ΚΑΙ ΣΥΓΚΕΚΡΙΜΕΝΟ EVENT ΚΩΔΙΚΑΣ 3-5: ΜΕΘΟΔΟΙ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ STRING ΚΩΔΙΚΑΣ 3-6: ΟΡΙΣΜΟΣ ΚΑΙ ΠΡΟΣΠΕΛΑΣΗ ΣΤΟΙΧΕΙΩΝ ΠΙΝΑΚΑ ΚΩΔΙΚΑΣ 3-7: ΧΡΗΣΗ ARRAY ΑΝΤΙΚΕΙΜΕΝΟΥ ΚΑΙ ΔΙΑΦΟΡΩΝ ΜΕΘΟΔΩΝ ΚΩΔΙΚΑΣ 3-8: ΧΡΗΣΗ ΤΟΥ ΤΕΛΕΣΤΗ DELETE ΚΩΔΙΚΑΣ 3-9: ΕΝΤΟΛΗ FOR IN ΚΩΔΙΚΑΣ 3-10: ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΙ ΕΝΤΟΛΗ RETURN ΚΩΔΙΚΑΣ 3-11: ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΙ ΠΕΡΑΣΜΑ ΠΑΡΑΜΕΤΡΩΝ ΚΩΔΙΚΑΣ 3-12: ΠΕΡΑΣΜΑ ΠΑΡΑΜΕΤΡΩΝ ΔΙΑ ΤΙΜΗΣ (BY VALUE) ΚΑΙ ΔΙΑ ΑΝΑΦΟΡΑΣ (BY REFERENCE) ΚΩΔΙΚΑΣ 3-13: SCOPE ΤΩΝ ΜΕΤΑΒΛΗΤΩΝ ΚΩΔΙΚΑΣ 3-14: ΧΡΗΣΗ ΤΟΥ KEYWORD THIS ΚΩΔΙΚΑΣ 3-15: ΧΡΗΣΗ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ DATE ΚΩΔΙΚΑΣ 3-16: ΕΜΦΑΝΙΣΗ ΗΜΕΡΟΜΗΝΙΑΣ ΜΕ ΧΡΗΣΗ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ DATE ΚΩΔΙΚΑΣ 3-17: ΑΡΙΘΜΗΤΙΚΗ ΜΕΤΑΞΥ ΗΜΕΡΟΜΗΝΙΩΝ ΚΩΔΙΚΑΣ 3-18: ΧΡΗΣΗ ΚΑΝΟΝΙΚΩΝ ΕΚΦΡΑΣΕΩΝ ΓΙΑ ΝΑ ΒΡΟΥΜΕ ΕΜΦΑΝΙΣΗ ΕΝΟΣ PATTERN ΚΩΔΙΚΑΣ 3-19: ΧΡΗΣΗ ΠΟΣΟΤΙΚΟΠΟΙΗΤΩΝ ΚΩΔΙΚΑΣ 3-20: ΧΡΗΣΗ BACK REFERENCES ΣΕ ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ ΚΩΔΙΚΑΣ 3-21: ΑΝΑΚΤΗΣΗ ΤΩΝ ΣΥΜΒΟΛΟΣΕΙΡΩΝ ΠΟΥ ΤΑΥΤΙΖΟΝΤΑΙ ΜΕ ΜΙΑ ΚΑΝΟΝΙΚΗ ΕΚΦΡΑΣΗ ΚΩΔΙΚΑΣ 3-22: ΑΝΤΙΚΑΤΑΣΤΑΣΗ ΤΗΣ ΤΑΥΤΙΣΗΣ ΜΕΤΑ ΑΠΟ ΑΝΑΖΗΤΗΣΗ ΜΕ ΚΑΝΟΝΙΚΗ ΕΚΦΡΑΣΗ ΚΩΔΙΚΑΣ 3-23: ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΜΕΤΑΒΛΗΤΩΝ ΓΙΑ ΑΠΑΣΦΑΛΜΑΤΩΣΗ ΚΩΔΙΚΑΣ 3-24:ΧΡΗΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ EVAL ΓΙΑ ΑΠΑΣΦΑΛΜΑΤΩΣΗ ΚΩΔΙΚΑΣ 3-25: ΧΡΗΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ EVAL ΚΩΔΙΚΑΣ 3-26:ΑΠΑΣΦΑΛΜΑΤΩΣΗ ΜΕ ΤΗ ΧΡΗΣΗ ΤΟΥ ΓΕΓΟΝΟΤΟΣ ONERROR ΚΩΔΙΚΑΣ 3-27: ΔΙΑΧΕΙΡΙΣΗ ΛΑΘΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΤΟΥ WINDOW.ONERROR ΚΩΔΙΚΑΣ 3-28: ΧΡΗΣΗ ΤΗΣ ΙΔΙΟΤΗΤΑΣ NAME ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ERROR ΚΩΔΙΚΑΣ 3-29: ΧΡΗΣΗ ΤΗΣ ΕΝΤΟΛΗΣ THROW

8 Προγραμματισμός διαδικτυακών εφαρμογών ΠΙΝΑΚΕΣ ΠΙΝΑΚΑΣ 2-1: ΠΙΝΑΚΑΣ ΠΟΥ ΕΞΗΓΕΙ ΤΟΥΣ ΚΩΔΙΚΟΥΣ ΚΑΤΑΣΤΑΣΗΣ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΑΝΤΑΛΛΑΓΗΣ ΑΙΤΗΣΕΩΝ- ΑΠΑΝΤΗΣΕΩΝ ΜΕΣΩ ΤΟΥ HTTP ΠΡΩΤΟΚΟΛΛΟΥ ΠΙΝΑΚΑΣ 2-2: ΠΙΝΑΚΑΣ ΜΕ ΕΙΔΙΚΟΥΣ ΧΑΡΑΚΤΗΡΕΣ ΠΙΝΑΚΑΣ 2-3: ΛΙΣΤΑ ΜΕ ΜΕΡΙΚΟΥΣ ΕΙΔΙΚΟΥΣ ΧΑΡΑΚΤΗΡΕΣ ΠΙΝΑΚΑΣ 2-4: ΠΙΝΑΚΑΣ ΜΕ ΤΙΣ ΚΩΔΙΚΟΣΕΛΙΔΕΣ "ΕΛΛΗΝΙΚΟΥ" ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΠΙΝΑΚΑΣ 3-1: ΔΙΑΦΟΡΕΣ JAVASCRIPT & JAVA ΠΙΝΑΚΑΣ 3-2: ΧΡΗΣΙΜΕΣ ΜΕΘΟΔΟΙ ΠΟΥ ΥΠΟΣΤΗΡΙΖΕΙ ΤΟ ΑΝΤΙΚΕΙΜΕΝΟ STRING ΠΙΝΑΚΑΣ 3-3: ΙΔΙΟΤΗΤΕΣ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ STRING ΠΙΝΑΚΑΣ 3-4: ΧΡΗΣΙΜΕΣ ΜΕΘΟΔΟΙ ΚΑΙ ΙΔΙΟΤΗΤΕΣ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ARRAY ΠΙΝΑΚΑΣ 3-5: ΛΙΣΤΑ ΤΩΝ ΤΕΛΕΣΤΩΝ ΣΤΗ JAVASCRIPT ΠΙΝΑΚΑΣ 3-6: ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΤΩΝ ΤΕΛΕΣΤΩΝ ΣΤΗ JAVASCRIPT ΠΙΝΑΚΑΣ 3-7: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΜΕΘΟΔΟΙ ΑΝΤΙΚΕΙΜΕΝΟΥ FUNCTION ΠΙΝΑΚΑΣ 3-8: BUILT-IN ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ JAVASCRIPT ΠΙΝΑΚΑΣ 3-9: ΜΕΘΟΔΟΙ ΚΑΙ ΙΔΙΟΤΗΤΕΣ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ DATE ΠΙΝΑΚΑΣ 3-10: ΑΝΤΙΚΕΙΜΕΝΟ MATH: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΜΕΘΟΔΟΙ ΠΙΝΑΚΑΣ 3-11: ΠΙΝΑΚΑΣ ΜΕ ΤΟΥ ΠΙΘΑΝΟΥΣ ΧΑΡΑΚΤΗΡΕΣ ΓΙΑ ΤΗ ΔΗΜΙΟΥΡΓΙΑ ΜΙΑΣ ΚΑΝΟΝΙΚΗΣ ΕΚΦΡΑΣΗΣ ΣΤΗ JAVASCRIPT ΠΙΝΑΚΑΣ 3-12: ΙΔΙΟΤΗΤΕΣ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ REGEXP ΠΙΝΑΚΑΣ 3-13:ΙΔΙΟΤΗΤΕΣ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ERROR

9 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό 1. Εισαγωγή Η τεράστια ανάπτυξη του διαδικτύου τη δεκαετία του 90 δημιούργησε ένα νέο πεδίο στην επιστήμη των υπολογιστών και κυρίως τη μηχανική λογισμικού, την ανάπτυξη διαδικτυακών εφαρμογών. Η ανάπτυξη διαδικτυακών εφαρμογών διαφέρει σε πολλά σημεία από την ανάπτυξη λογισμικού σε κλασικότερες μορφές όπως τη γνώριζαν οι επιστήμονες πληροφορικής μέχρι τώρα (π.χ. ανάπτυξη εφαρμογής για χρήση σε desktop υπολογιστές, ή ανάπτυξη εφαρμογών με χρήση υπολογιστή διαμοίρασης αρχείων-file server). Οι διαφορές μίας διαδικτυακής εφαρμογής σε σύγκριση με τις κλασικότερες μορφές εφαρμογών που προαναφέρθηκαν, οφείλονται κατά κύριο λόγο στο γεγονός ότι η πλατφόρμα εγκατάστασης και λειτουργίας μίας διαδικτυακής εφαρμογής είναι το διαδίκτυο (Internet). Το διαδίκτυο ως πλατφόρμα υποδομής (underlying platform) έχει κάποια ιδιαίτερα χαρακτηριστικά που κάνουν την ανάπτυξη εφαρμογών λογισμικού διαφορετική και ιδιαίτερη. Για να μπορέσει λοιπόν να αναπτύξει κάποιος διαδικτυακές εφαρμογές θα πρέπει καταρχήν να κατανοήσει τι ακριβώς είναι το διαδίκτυο και πως λειτουργεί. Με μία απλή προσέγγιση και χωρίς να μπούμε σε τεχνικές λεπτομέρειες το διαδίκτυο (Internet, η λέξη προέρχεται από τη φράση Inter- Networking) θα μπορούσε να περιγραφεί ως ένα παγκόσμιο δίκτυο από επιμέρους μικρότερα δίκτυα υπολογιστών, που επικοινωνούν με ένα σύνολο από κοινώς αποδεκτά πρωτόκολλα 1 και που πρακτικά επεκτείνεται σχεδόν σε κάθε χώρα του πλανήτη. Τα πρωτόκολλα του Internet καθορίζουν μια διαδικασία και κάποιους κανόνες επικοινωνίας των υπολογιστών μεταξύ τους. Τα πρωτόκολλα δεν προσθέτουν περιεχόμενο στα ήδη υπάρχοντα δίκτυα, αλλά προσφέρουν τον τρόπο πρόσβασης σ αυτά, από άλλους κόμβους-σημεία του διαδικτύου (δηλ. από άλλους υπολογιστές). Με άλλα λόγια για να επικοινωνήσουν δύο υπολογιστές μεταξύ τους πρέπει να χρησιμοποιήσουν το ίδιο πρωτόκολλο. Για να συνδεθεί λοιπόν ένας υπολογιστής στο Internet θα πρέπει να υποστηρίζει το βασικό πρωτόκολλο επικοινωνίας TCP/IP. Αντιστοίχως για να δημιουργήσει κάποιος διαδικτυακές εφαρμογές θα πρέπει να έχει κάποια βασική γνώση ως πολύ βαθιά γνώση του TCP/IP και άλλων πρωτοκόλλων του διαδικτύου. Το βάθος της γνώσης που απαιτείται εξαρτάται άμεσα από το είδος της διαδικτυακής εφαρμογής που θέλει κάποιος να αναπτύξει. Το απλουστευμένο διάγραμμα της Εικόνα 1-1 απεικονίζει συνοπτικά το διαδίκτυο. Στο διάγραμμα αυτό φαίνεται ότι διάφορα μικρότερα "τοπικά" δίκτυα συνδέονται για να σχηματίσουν ένα μεγαλύτερο "παγκόσμιο" δίκτυο, δηλαδή το Internet. Κάθε τοπικό δίκτυο θα μπορούσαμε ιδεατά να το φανταστούμε να αποτελείται από έναν κεντρικό υπολογιστή ειδικού τύπου (router, switch, gateway), ο οποίος είναι συνδεδεμένος με πολλούς άλλους τοπικούς θα λέγαμε υπολογιστές τους οποίους εξυπηρετεί λειτουργώντας ως ένας μεσολαβητής για να τους "συνδέσει" στο Internet. Κάθε κεντρικός υπολογιστής τώρα που είναι στο Internet, δεν είναι άμεσα συνδεδεμένος με όλους τους άλλους κεντρικούς υπολογιστές που συμμετέχουν στο Internet. Αυτό θα ήταν άλλωστε πρακτικά αδύνατο, καθώς υπάρχουν εκατοντάδες χιλιάδες κεντρικοί υπολογιστές στο Internet. Αντίθετα, κάθε κεντρικός υπολογιστής είναι συνήθως άμεσα συνδεδεμένος με έναν ή δύο άλλους κεντρικούς υπολογιστές-κόμβους του Internet. Στην Εικόνα 1-1 για παράδειγμα, απεικονίζονται τρία δίκτυα, των οποίων οι κεντρικοί υπολογιστές είναι συνδεδεμένοι μεταξύ τους. Η περιγραφή της προηγούμενης παραγράφου έχει να κάνει με την σύνδεση και προσπέλαση ενός υπολογιστή στο διαδίκτυο και αφορά τις τεχνολογίες δικτύων Η/Υ. Από την άποψη του διαδικτυακού προγραμματισμού αυτό που μας ενδιαφέρει είναι ότι οι υπολογιστές που συνδέονται στο διαδίκτυο προσπελαύνουν κάποιους άλλους υπολογιστές για να έχουν πρόσβαση σε διαδικτυακές υπηρεσίες (π.χ. Ftp, www, DNS). Οι κεντρικοί υπολογιστές που προσφέρουν τις υπηρεσίες ονομάζονται Υπολογιστές Εξυπηρέτησης Δικτύου ή "Εξυπηρετητές" (servers) και οι υπολογιστές οι οποίοι συνδέονται και 1 Το βασικό πρωτόκολλο επικοινωνίας ονομάζεται TCP/IP (Transmission Control Protocol/Internet Protocol). 9

10 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό εξυπηρετούνται από αυτόν ονομάζονται "Πελάτες" (clients). Οι πελάτες λοιπόν συνδέονται με τους υπολογιστές εξυπηρέτησης δικτύου για να αποκτήσουν πρόσβαση στο Internet ή για να προσπελάσουν τις υπηρεσίες που προσφέρουν αυτοί (αυτές οι υπηρεσίες θα συζητηθούν αργότερα). Εξαιτίας αυτού του θεμελιώδους χαρακτηριστικού, στο τρόπο λειτουργίας του, το Internet θεωρείται ως ένα δίκτυο πελάτηεξυπηρετητή (client/server). Εικόνα 1-1: Ένα απλοϊκό σχεδιάγραμμα του Internet. Η επικοινωνία μεταξύ των υπολογιστών γίνεται με τη χρήση του πρωτοκόλλου TCP/IP. Κάθε κεντρικός Η/Υ εξυπηρετεί πολλούς τοπικούς υπολογιστές συνδέοντας τους στο Internet. Παρατηρήστε ότι ο διαχωρισμός των Η/Υ σε πελάτες (clients) και εξυπηρετητές (servers) είναι λειτουργικός-χρηστικός. Δηλ. κάθε Η/Υ που αποκρίνεται σε κάποια αίτηση με βάση κάποιο πρωτόκολλο λειτουργεί εκείνη τη στιγμή ως εξυπηρετητής (server). Εξίσου κάθε Η/Υ που αιτείται χρησιμοποιώντας κάποιο πρωτόκολλο λειτουργεί ως (είναι) πελάτης (client). Επίσης κάθε Η/Υ μπορεί να παίζει το ρόλο και ενός πελάτη και ενός εξυπηρετητή. Αυτό σημαίνει ότι σε μία χρονική στιγμή μπορεί να αιτείται μία υπηρεσία από κάποιο άλλον Η/Υ λειτουργώντας ως πελάτης, ενώ σε μία επόμενη στιγμή μπορεί να δέχεται αιτήσεις από άλλους Η/Υ λειτουργώντας ως εξυπηρετητής. Βέβαια αλήθεια είναι ότι λόγω των αυξημένων απαιτήσεων που έχει ένα μηχάνημα που λειτουργεί ως εξυπηρετητής (μια και ανταποκρίνεται πιθανότατα σε πολλές αιτήσεις ανά μονάδα του χρόνου), συνήθως οι Η/Υ που λειτουργούν κυρίως ως εξυπηρετητές είναι αυξημένων δυνατοτήτων (σχετικά με την υπολογιστική τους απόδοση, αποθηκευτικό χώρο, μεθόδους ασφάλειας κλπ). Αυτό βέβαια δεν αποκλείει τη δυνατότητα σε ένα απλό ακόμη και μικρών δυνατοτήτων Η/Υ να "παίξει" το ρόλο του εξυπηρετητή, ιδιαίτερα αν οι απαιτήσεις δεν είναι αυξημένες. Μία πιο τεχνική περιγραφή για το Internet είναι το δίκτυο υπολογιστών που λειτουργεί με βάση το πρωτόκολλο TCP/IP. Στην Εικόνα 1-2 απεικονίζεται η αντιστοίχηση του πρωτοκόλλου TCP/IP και του προτύπου OSI 2. H Εικόνα 1-3 δείχνει την αντιστοίχηση του πρωτοκόλλου TCP/IP με τον πραγματικό τρόπο λειτουργίας και υλοποίησης του διαδικτύου. Φυσικά σε αυτό το βιβλίο δεν είναι δυνατόν να δώσουμε μεγαλύτερη σε έκταση τεχνική περιγραφή του διαδικτύου. Βέβαια από τη μεριά του διαδικτυακού προγραμματισμού αυτό που μας ενδιαφέρει κυρίως είναι να κατανοήσουμε τα βασικά χαρακτηριστικά του διαδικτύου και του τρόπου λειτουργίας του και κυρίως να τοποθετήσουμε κατάλληλα το πεδίο του διαδικτυακού προγραμματισμού στο γενικότερο 2 Το πρότυπο ISO-OSI (ISO Open Systems Interconnection) περιγράφει ένα πολύ-επίπεδο πρότυπο για τη διασύνδεση υπολογιστικών συστημάτων, δίνοντας κυρίως έμφαση στο επίπεδο του δικτύου, του τρόπου διασύνδεσης με ένα δίκτυο Η/Υ κλπ. 10

11 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό οικοδόμημα του διαδικτύου. Έτσι, αν θα θέλαμε να δώσουμε ένα πιο φορμαλιστικό ορισμό του διαδικτυακού προγραμματισμού θα μπορούσαμε να πούμε ότι ο διαδικτυακός προγραμματισμός ασχολείται με την ανάπτυξη εφαρμογών στο ανώτερο επίπεδο του TCP/IP πρωτοκόλλου (Application layer). Αυτός ακριβώς ο ορισμός απεικονίζεται σχηματικά στην Εικόνα 1-4. Ορισμός πεδίου προγραμματισμού διαδικτυακών εφαρμογών Σε αυτό το σημείο είναι χρήσιμο να τονίσουμε ότι πολλοί (λανθασμένα) συνδέουν αποκλειστικά την έννοια του διαδικτυακού προγραμματισμού με τον προγραμματισμό για μία από τις υπηρεσίες του διαδικτύου, τον παγκόσμιο ιστό (World Wide Web, WWW). Αν και ο προγραμματισμός για το WWW (web programming) αποτελεί ένα πολύ μεγάλο κομμάτι του πεδίου του διαδικτυακού προγραμματισμού, σε καμία περίπτωση δεν πρέπει να συγχέεται η έννοια του διαδικτυακού προγραμματισμού με το λεγόμενο web προγραμματισμό. Ο διαδικτυακός προγραμματισμός είναι κάτι πολύ πιο ευρύτερο και εκτός από το web προγραμματισμό περιλαμβάνει και πολλούς άλλους τομείς. Π.χ. η ανάπτυξη ενός mail server ή μίας άλλης διαδικτυακής υπηρεσίας αποτελεί σαφώς αντικείμενο του πεδίου του διαδικτυακού προγραμματισμού χωρίς όμως να είναι web προγραμματισμός. Εικόνα 1-2: Αντιστοίχηση του πρωτοκόλλου TCP/IP με το πρότυπο OSI 11

12 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό Εικόνα 1-3: Αντιστοίχηση του πρωτοκόλλου TCP/IP και της πραγματικής λειτουργίας του Internet. Εικόνα 1-4: Το πεδίο του διαδικτυακού προγραμματισμού ασχολείται με την ανάπτυξη εφαρμογών στο ανώτερο επίπεδο του TCP/IP πρωτοκόλλου (Application layer). Μέχρι τώρα σε αυτό το κεφάλαιο δώσαμε ένα αρχικό απλό ορισμό για το διαδίκτυο και τη λειτουργία του και προσπαθήσαμε να κάνουμε ένα συσχετισμό και αντιστοίχιση του πεδίου του διαδικτυακού προγραμματισμού στο γενικότερο κατασκεύασμα του διαδικτύου. Κάτι τέτοιο ήταν απαραίτητο για να αποκτήσει κάποιος μία βασική γνώση της πλατφόρμας λειτουργίας των διαδικτυακών εφαρμογών, δηλ. του ίδιου του διαδικτύου. Στα επόμενα τμήματα αυτού του κεφαλαίου θα δώσουμε έμφαση στην περιγραφή των ιδιαίτερων χαρακτηριστικών του διαδικτύου που επηρεάζουν και καθορίζουν το πεδίο του διαδικτυακού προγραμματισμού. Δημιουργώντας με την Client/Server Αρχιτεκτονική Εφόσον το διαδίκτυο στηρίζεται στην αρχιτεκτονική πελάτη/εξυπηρετητή (client/server) κάθε διαδικτυακή εφαρμογή θα λειτουργεί με βάση αυτό το πρότυπο. Αυτό το πρότυπο ουσιαστικά ορίζει ότι τα συνεργαζόμενα κομμάτια μιας διαδικτυακής εφαρμογής μπορούν να κατηγοριοποιηθούν ως client ή ως server. Η client εφαρμογή ζητά υπηρεσίες και δεδομένα (requests services and data) από το server. H εφαρμογή server απαντάει στις αιτήσεις του client (responds to client requests). 12

13 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό Για παράδειγμα αυτό το πρότυπο είναι αυτό που εφαρμόζεται στο web προγραμματισμό που αποτελεί και το βασικό αντικείμενο αυτού του βιβλίου. Σύμφωνα λοιπόν με αυτό το πρότυπο ο web client (ένας web browser) επικοινωνεί με τον web server χρησιμοποιώντας κάποιο πρωτόκολλο (το λεγόμενο HTTP πρωτόκολλο στη συγκεκριμένη περίπτωση) κάνοντας κάποια αίτηση για δεδομένα ή υπηρεσία. Ο web server λαμβάνει την αίτηση του web browser και φροντίζει να την εξυπηρετήσει στέλνοντας τα δεδομένα (π.χ. στέλνοντας ένα HTML αρχείο στον browser) ή τρέχοντας κάποιο πρόγραμμα στον server και αποστέλλοντας τα αποτελέσματα κάποιας επεξεργασίας (π.χ. η άντληση δεδομένων από μία βάση δεδομένων). Το απλό πρότυπο client/server που περιγράφεται παραπάνω ονομάζεται και 2-tier αρχιτεκτονική καθώς υπάρχουν δύο μέρη που παίζουν κάποιο ρόλο στην λειτουργία ενός συστήματος (δηλ. ο client και ο server). Σε αυτή την αρχιτεκτονική όμως υπάρχει ένα σοβαρό μειονέκτημα. Καθώς ο αριθμός των clients μεγαλώνει, ο server μπορεί να υπερφορτωθεί από πολλές αιτήσεις (overload by client requests). Επίσης πιθανές αλλαγές στην επιχειρησιακή λογική (business rules) που υλοποιεί μία εφαρμογή, απαιτoύν υψηλό κόστος για αλλαγή σε όλη τη σειρά των διαδικτυακών εφαρμογών όπου η επιχειρησιακή λογική υλοποιείται. Για την αντιμετώπιση αυτών των μειονεκτημάτων και καθώς οι διαδικτυακές εφαρμογές γίνονται όλο και μεγαλύτερες και ολοένα και περισσότεροι πελάτες τις χρησιμοποιούν, άρχισε σε εφαρμογές του παγκόσμιου ιστού και σε άλλες διαδικτυακές υπηρεσίες να εφαρμόζεται η λεγόμενη 3-tier ή n-tier αρχιτεκτονική. Σύμφωνα με αυτή την αρχιτεκτονική η υλοποίηση της επιχειρησιακής λογικής και της διαχείρισης των δεδομένων γίνεται από δύο (ή περισσότερα) διαφορετικά συστατικά στοιχεία της διαδικτυακής εφαρμογής. Στην Εικόνα 1-5 εμφανίζεται ένα σχηματικό παράδειγμα μίας 3-tier αρχιτεκτονικής σε ένα πρότυπο σύστημα διαδικτυακής εφαρμογής του παγκόσμιου ιστού που περιλαμβάνει στο δεύτερο επίπεδο τις εφαρμογές που υλοποιούν την επιχειρησιακή λογική ενώ στο τρίτο επίπεδο υπάρχει η διαχείριση των δεδομένων της εφαρμογής από ένα σύστημα βάσης δεδομένων. Το πρώτο επίπεδο που απεικονίζεται στην Εικόνα 1-5 ενσωματώνει ολόκληρη την αλληλεπίδραση με το χρήση (user experience). Παρέχει ένα γραφικό περιβάλλον αλληλεπίδρασης (graphical user interface) ώστε οι χρήστες να έχουν τη δυνατότητα να αλληλεπιδρούν με την εφαρμογή, δυνατότητες για εισαγωγή δεδομένων, δυνατότητες για τους τελικούς χρήστες να βλέπουν τα αποτελέσματα της αλληλεπίδρασης με το server, διαχείριση, μορφοποίηση δεδομένων. Στις Web εφαρμογές, ο web browser υλοποιεί τις εργασίες αυτού του επιπέδου. Στο δεύτερο επίπεδο υλοποιείται η επιχειρησιακή λογική, και επίσης συλλαμβάνει τους κανόνες που γίνεται η λειτουργία της επιχείρησης και συνδέει το χρήστη στο επίπεδο 1 με τα δεδομένα στο επίπεδο 3. Οι λειτουργίες που ουσιαστικά συλλαμβάνουν (μιμούνται - mimic) τη λειτουργία της επιχείρησης μπορεί να είναι μία εργασία (task) ή μία σειρά από εργασίες. Στο τρίτο επίπεδο γίνεται η διαχείριση των δεδομένων που μπορεί να γίνεται από δομημένα συστήματα δεδομένων (structured) (π.χ. RDBMS όπως η Oracle database) αλλά και μη δομημένα συστήματα (unstructured). Μία εφαρμογή μπορεί να χρησιμοποιεί τις υπηρεσίες από μία ή περισσότερες βάσεις δεδομένων (data stores). 13

14 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό Εικόνα 1-5: Παράδειγμα υλοποίησης 3-tier αρχιτεκτονικής. Ασφάλεια & διαδικτυακός προγραμματισμός Το διαδίκτυο αποτελεί ένα μη ασφαλές περιβάλλον για μετάδοση πληροφοριών και κατά συνέπεια η έννοια της ασφάλειας αποτελεί ένα σημαντικό παράγοντα για τον προγραμματιστή διαδικτυακών εφαρμογών. Το διαδίκτυο (Internet) σχεδιάστηκε αρχικά χωρίς το θέμα της ασφάλειας των ευαίσθητων πληροφοριών να απασχολήσει τους σχεδιαστές του. Πιθανόν κανένας δεν μπορούσε να προβλέψει τότε ότι το διαδίκτυο θα επεκταθεί και θα συνδέσει την πλειοψηφία των δημόσιων και ιδιωτικών δικτύων που υπάρχουν στον κόσμο. Αρχικά το Internet αποτελούσε ένα μέσο διασύνδεσης "γνωστών" μελών της ακαδημαϊκής κοινότητας και ή έννοια της ασφάλειας ήταν λογικό να μην απασχολεί έντονα καθώς υπήρχε η προτεραιότητα της ανάπτυξης του δικτύου. Το διαδίκτυο ως μέσο ψηφιακής επικοινωνίας κρύβει έναν αριθμό από σοβαρούς κινδύνους, όπως: Έλλειψη εμπιστευτικότητας, αφού τα δεδομένα που διακινούνται είναι χωρισμένα σε πακέτα και μπορούν εύκολα να κλαπούν και να αποκαλυφθεί το περιεχόμενό τους. Έλλειψη μηχανισμών για την ταυτοποίηση των οντοτήτων των συστημάτων. Όλα τα συστήματα που είναι συνδεδεμένα στο διαδίκτυο αναγνωρίζονται από την IP διεύθυνση τους. Το πρωτόκολλο IP δεν παρέχει κάποιο μηχανισμό για την αυθεντικοποίηση των οντοτήτων του συστήματος. Έλλειψη αξιόπιστων μέσων για σύνδεση των IP διευθύνσεων με υπολογιστές. Οι IP διευθύνσεις αναθέτονται σε ταυτοποιημένες οντότητες και όχι σε ανεξάρτητους υπολογιστές. Με απλά λόγια οι δύο προηγούμενοι παράγραφοι καθορίζουν τον κίνδυνο ένας υπολογιστής να μπορεί "να εφοδιαστεί" με μία IP διεύθυνση χωρίς αυτή η IP διεύθυνση να "επιτρέπεται" να χρησιμοποιηθεί από αυτό τον Η/Υ (ανήκει σε κάποιον άλλο Η/Υ). Έλλειψη μηχανισμών για προσδιορισμό της ταυτότητας των χρηστών. Εκτεθειμένοι κωδικοί πρόσβασης. Τα περισσότερα συστήματα χρησιμοποιούν κωδικούς για την ταυτοποίηση των χρηστών, οι οποίοι τις περισσότερες φορές μεταφέρονται στο δίκτυο χωρίς να κρυπτογραφηθούν. 14

15 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό Η τεράστια ανάπτυξη του WWW και η δυνατότητα για εκτέλεση προγραμμάτων ή scripts μέσω ενός web browser εισήγαγε επιπλέον παράγοντες κινδύνου της ασφάλειας. Σιγά-σιγά άρχισαν να αναπτύσσονται διάφορες τεχνικές που μπορούν να εφαρμοστούν ώστε να επιτευχθεί η ασφάλεια όλων των πληροφοριών που μεταδίδονται στο διαδίκτυο. Τέτοιες είναι οι εφαρμογές κρυπτογράφησης για αυθεντικοποίηση των χρηστών, η κρυπτογραφημένη μεταφορά των δεδομένων, ο έλεγχος πρόσβασης και τα ασφαλή δικτυακά πρωτόκολλα. Η κρυπτογράφηση είναι η βασική τεχνολογία που χρησιμοποιείται για να αποτρέψει την πρόσβαση μη εξουσιοδοτημένων χρηστών σε εμπιστευτικές πληροφορίες. Η κρυπτογράφηση των δεδομένων τα μετατρέπει σε μια δυαδική ακολουθία χαρακτήρων που δεν επιτρέπουν σε οποιονδήποτε να καταλάβει το περιεχόμενο τους. Μόνο εξουσιοδοτημένα άτομα μπορούν να τα επαναφέρουν στην αρχική τους μορφή με τη χρήση των κλειδιών κρυπτογράφησης. Η ασφάλεια που προσφέρει ο έλεγχος πρόσβασης είναι μια αρκετά πολύπλοκη διαδικασία και μπορεί να εφαρμοστεί με διάφορους τρόπους, όπως συνθηματικά, ψηφιακές υπογραφές, firewalls. Το SSL (Secure Socket Layer) είναι ένα πρωτόκολλο για τη μεταφορά δεδομένων μεταξύ δύο συσκευών, που αναπτύχθηκε για να παρέχει ασφάλεια και ακεραιότητα των πληροφοριών στο Internet. Το SSL διαχειρίζεται την εμπιστευτικότητα και την ακεραιότητα του καναλιού μετάδοσης με χρήση της κρυπτογράφησης των δεδομένων, καθώς και την αυθεντικοποίηση του εξυπηρετητή, αλλά και του πελάτη όταν είναι απαραίτητο. Ένα άλλο πρωτόκολλο για ασφαλή μετάδοση δεδομένων στον ιστό (WWW) είναι το Secure HTTP (S- HTTP). Ενώ το SSL δημιουργεί μια ασφαλή σύνδεση μεταξύ του πελάτη και του εξυπηρετητή, το S- HTTP σχεδιάστηκε για τη μυστική μετάδοση μεμονωμένων μηνυμάτων. Επομένως, το SSL και το S- HTTP είναι μάλλον συμπληρωματικές παρά ανταγωνιστικές τεχνολογίες. Διεθνοποιημένο περιβάλλον χρήσης Ένας ακόμη παράγοντας που διαφοροποιεί το διαδικτυακό προγραμματισμό είναι το διεθνοποιημένο περιβάλλον χρήσης των διαδικτυακών εφαρμογών. Ένα από τα πλεονεκτήματα των διαδικτυακών εφαρμογών είναι ότι μπορείτε να δημιουργήσετε εφαρμογές (διεθνείς ιστοχώρους) όπου οι χρήστες μπορούν να έχουν πρόσβαση από τις διαφορετικούς χώρες τους. Αποτελεί λοιπόν μία επιπλέον διαφορά σε σχέση με μία εφαρμογή που δημιουργείται για μία συγκεκριμένη περιοχή-γλώσσα. Σε μία "διεθνοποιημένη" διαδικτυακή εφαρμογή θα πρέπει να υπάρχει πρόβλεψη για τη γλώσσα του πελάτη (π.χ. Ελληνικός Internet Exporer, Αγγλικός Internet Explorer) και τις άλλες ρυθμίσεις που ισχύουν σε κάθε χώρα (π.χ. διαχωριστικά χιλιάδων, δεκαδικών κλπ). Σε μία διαδικτυακή εφαρμογή θα πρέπει λοιπόν να κάνουμε προβλέψεις γι' αυτές τις ιδιαιτερότητες αν θέλουμε να απευθυνθούμε σε ένα διεθνοποιημένο περιβάλλον. Η γλώσσα HTML που είναι η γλώσσα του παγκόσμιου ιστού έχει πρόβλεψη γι' αυτό το πρόβλημα δίνοντας τη δυνατότητα να καθορίσουμε την κωδικοσελίδα (Codepage) που πρέπει να χρησιμοποιηθεί για τη "μετάφραση" μίας ιστοσελίδας από τον πελάτη. Γενικά υπάρχουν μία σειρά από ιδιαιτερότητες που αφορούν τις διαδικτυακές εφαρμογές και σχετίζονται με το διεθνοποιημένο περιβάλλον χρήσης τους. Μία πιο αναλυτική αναφορά σε αυτές τις ιδιαιτερότητες θα γίνει αργότερα. Ιστορικό ανάπτυξης διαδικτυακού προγραμματισμού Για να μπορέσουμε να κατανοήσουμε καλύτερα τη σημερινή κατάσταση και να προβλέψουμε πιθανές εξελίξεις στο πεδίο του διαδικτυακού προγραμματισμού, είναι χρήσιμο να μελετήσουμε την ιστορική εξέλιξη του. Μέσα από τη μελέτη αυτής της εξέλιξης θα μπορέσουμε να κατανοήσουμε καλύτερα ποια είναι ακριβώς η σημερινή κατάσταση του διαδικτυακού προγραμματισμού και πως ακριβώς καταλήξαμε σε αυτή. Τα στάδια-περίοδοι εξέλιξης του διαδικτυακού προγραμματισμού συνοπτικά είναι: 15

16 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό περίοδος όπου υπάρχει μόνο στατικό περιεχόμενο (αρχική πλήρως στατική HTML). Εμφάνιση του CGI πρωτοκόλλου (Common Gateway Interface) για δυνατότητα εκτέλεσης προγραμμάτων στο server και δημιουργία δυναμικού περιεχομένου. Εισαγωγή client-side scripting και έμφαση στην ανάπτυξη ιστοσελίδων με αυξημένες δυνατότητες αλληλεπίδρασης. Δημιουργία τεχνολογιών και περιβαλλόντων προγραμματισμού για ανάπτυξη πιο ολοκληρωμένων διαδικτυακών εφαρμογών με υποστήριξη server-side scripting. Δυνατότητα για δημιουργία διαδικτυακών εφαρμογών με τη χρήση κλασσικών περιβαλλόντων προγραμματισμού (π.χ. Visual C++, Visual Basic, Delphi) και χρήση βιβλιοθηκών. Εμφάνιση ολοκληρωμένων πλατφόρμων ανάπτυξης διαδικτυακών εφαρμογών & υπηρεσιών (π.χ. Microsoft.net framework) Η καταγραφή που υπάρχει παραπάνω φυσικά δεν θα μπορούσε να χαρακτηριστεί ως πλήρης και η μόνη ορθή. Αυτό θα ήταν αδύνατο άλλωστε (και ίσως μη χρήσιμο) αν σκεφτεί κάποιος το τεράστιο μέγεθος του πεδίου του διαδικτυακού προγραμματισμού, καθώς και τον όγκο των τεχνολογιών που εμφανίστηκαν και υπάρχουν ακόμη σε χρήση. Σκοπός αυτού του κεφαλαίου είναι απλώς η δημιουργία ενός "χάρτη", έστω και μη απολύτως ακριβή, για να κατανοήσει ο σημερινός προγραμματιστής διαδικτυακών εφαρμογών τα βασικά στάδια εξέλιξης που διαμόρφωσαν τη σημερινή κατάσταση στο πεδίο του διαδικτυακού προγραμματισμού. Μόνο έτσι θα μπορεί κάποιος να αναπτύξει καλή γνώση του πεδίου και των διαθέσιμων τεχνολογιών του διαδικτυακού προγραμματισμού. Εδώ θα πρέπει να τονίσουμε ότι για τη πλήρη κατανόηση μίας τεχνολογίας δεν αρκεί μόνο να γνωρίζουμε τα στοιχεία της και την τεχνική της περιγραφή, αλλά για την ορθή της αξιοποίηση θα πρέπει να κατανοήσουμε το περιβάλλον μέσα στο οποίο δημιουργήθηκε και το σκοπό που σκοπεύει να εξυπηρετήσει. Τελικός σκοπός για το διαδικτυακό προγραμματιστή είναι να κάνει την αποτελεσματικότερη ανάπτυξη εφαρμογών κάνοντας την ορθότερη χρήση των καταλληλότερων τεχνολογιών που διαθέτει για το κάθε συγκεκριμένο πρόβλημα που αντιμετωπίζει. Σε αυτό το σημείο θα πρέπει να σημειώσουμε ότι τα στάδια ανάπτυξης που αναφέρονται παρακάτω δεν ακολούθησαν απαραίτητα μία σειριακή χρονική μορφή εμφάνισης & ανάπτυξης. Αρκετά στάδια εμφανίστηκαν σχεδόν ταυτόχρονα και η ανάπτυξη τους και χρήση τους ακολουθεί παράλληλη πορεία ακόμη και σήμερα. Βέβαια το κάθε στάδιο χαρακτηρίζει και μία συγκεκριμένη περίοδο αναζητήσεων και ωρίμανσης του πεδίου του διαδικτυακού προγραμματισμού. Επίσης το κάθε στάδιο χαρακτηρίζει και την ανάγκη για απάντηση σε προβλήματα διαδικτυακού προγραμματισμού με έναν πιο αποτελεσματικό και αποδοτικό τρόπο. 1η περίοδος - Στατικό περιεχόμενο (Static Content) Η πρώτη περίοδος αυτή ουσιαστικά συμβαδίζει με την έκρηξη του WWW, περίπου στις αρχές του Το WWW που ξεκίνησε το 1989 ως ένα κατανεμημένο σύστημα υπερκειμένων (distributed hypertext) μόλις έχει αρχίσει να διαδίδεται με σημαντικούς ρυθμούς. Στην έκρηξη αυτή συνετέλεσε και η δημιουργία του Mosaic, του web browser που κατασκευάστηκε από το National Center for Supercomputing Applications του University of Illinois και την εμφάνιση του Netscape navigator ενός άλλου web browser από την ομώνυμη εταιρία. Γρήγορα οι χρήστες του Internet κατάλαβαν τη δύναμη ενός hypertext 3 συστήματος σε σχέση με άλλα συστήματα οργάνωσης και πρόσβασης της πληροφορίας που υπήρχαν (π.χ. Gopher, WAIS). 3 hypertext ονομάζεται μία μέθοδος οργάνωσης και προσπέλασης μη δομημένων (υπερ)κειμένων. Περισσότερα για τις τεχνολογίες hypertext & hypermedia θα πούμε στο δεύτερο κεφάλαιο. 16

17 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό Επιπλέον το WWW στηρίζονταν σε μία πολύ απλή γλώσσα (την HTML) που έδινε τη δυνατότητα στο καθένα να κάνει εύκολα τις δικές του ιστοσελίδες και με αυτό τον τρόπο να συμμετάσχει ενεργά (ως παροχέας υλικού) στο σύστημα που ήταν σε μεγάλη εξέλιξη. Σε αυτή τη περίοδο η HTML βρίσκεται ακόμη στην έκδοση 2.0 και ουσιαστικά δίνει απλώς τη δυνατότητα για απλή μορφοποίηση κειμένου και φωτογραφιών χωρίς κάποιες ιδιαίτερες δυνατότητες. Παρακάτω φαίνεται ένα απόσπασμα HTML κώδικα που εμφανίζει μία απολύτως στατική σελίδα που εμφανίζει ένα μήνυμα και ένα σχετικό γραφικό. Από τη στιγμή που ο web client "αναπαραστήσει" (κάνει render) τη σελίδα, τίποτε πλέον δεν μπορεί να αλλάξει στη σελίδα. <HTML><HEAD> <TITLE>Μία απολύτως στατική σελίδα</title> </HEAD> <BODY> "Hello World!" <IMG SRC="hello.gif" WIDTH="20" HEIGHT="36"> </BODY></HTML> Σε αυτό το στάδιο αρχίζουν και εμφανίζονται οι πρώτοι απλοί HTML editors που ουσιαστικά είναι η επέκταση απλών ASCII text editors με κάποια μικρή υποστήριξη της HTML. Η εμφάνιση του Netscape Navigator και των πρώτων μηχανών αναζήτησης (search engines) κάνει πλέον το WWW ουσιαστικά το μοναδικό σύστημα οργάνωσης και ανάκτησης πληροφορίας στο Internet με εκρηκτικούς πλέον ρυθμούς ανάπτυξης. Εικόνα 1-6: Αποστολή αίτησης από τον πελάτη και αποστολή ενός αρχείου από τον εξυπηρετητή ενός αρχείου από το σύστημα αρχείων αυτούσιο χωρίς καμία επεξεργασία στη μεριά του εξυπηρετητή. Αυτό το μοντέλο περιγράφει ουσιαστικά το μοντέλο στατικού περιεχομένου. Ως προς το πεδίο του διαδικτυακού προγραμματισμού (αν μπορεί να χαρακτηριστεί έτσι!), αυτό περιορίζεται στη δημιουργία στατικών σελίδων οι οποίες έχουν κυρίως κείμενο με απλή μορφοποίηση. Η έννοια του client-side script (δηλ. του προγράμματος που "κατεβαίνει" με την HTML σελίδα και τρέχει στον browser) δεν υπάρχει ακόμη, μια και το πρότυπο της HTML είναι πολύ απλό για να υποστηρίξει οποιαδήποτε τέτοια σκέψη. Σιγά-σιγά εμφανίζεται η ανάγκη για κάποιου είδους προγραμματιστικό περιβάλλον για να μπορέσει το WWW να αποτελέσει πλέον πλατφόρμα ανάπτυξης διαδικτυακών εφαρμογών, και όχι απλώς ένα μέσο δημοσίευσης πληροφοριών οργανωμένων σε ένα 17

18 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό παγκόσμιο hypertext σύστημα. Αυτή όμως ήταν μόνο η αρχή της πιο "σημαντικής" ιστορίας στην επιστήμη της πληροφορικής 2η περίοδος - Δυναμικό περιεχόμενο με Gateway Programming Αυτή η περίοδος συμπίπτει χρονικά με τη πρώτη περίοδο και ουσιαστικά χαρακτηρίζεται από την ανάπτυξη και χρήση του πρωτοκόλλου Common Gateway Interface (CGI). Όπως είπαμε και προηγούμενα μετά την έκρηξη της πρώτης περιόδου με το στατικό περιεχόμενο, έγινε σαφές ότι το WWW θα μπορούσε να αποτελέσει μία πλατφόρμα ανάπτυξης επιχειρηματικών εφαρμογών (π.χ. ανάκτηση δεδομένων, ηλεκτρονικό εμπόριο). Για να γίνει αυτό χρειαζόταν ένας μηχανισμός εκτέλεσης κάποιων προγραμμάτων, πέρα και εκτός από το απλό κατέβασμα HTML σελίδων και την αναπαράσταση τους (HTML page rendering) στον browser. Το πρώτο βήμα προς αυτή τη κατεύθυνση ήταν η δυνατότητα κλήσης προγραμμάτων που είχαν γραφτεί σε κάποια γλώσσα προγραμματισμού (π.χ. C). Χρησιμοποιώντας το λεγόμενο CGI πρωτόκολλο μπορούσαν τα CGI προγράμματα να λάβουν δεδομένα από τον client, να εκτελεστούν στον server δημιουργώντας δυναμικά κάποιο HTML περιεχόμενο το οποίο απέστειλαν πίσω στον client. Με απλά λόγια το CGI πρωτόκολλο επέτρεψε για πρώτη φορά να υπάρξει δυναμικό περιεχόμενο (dynamic content) στο WWW. To CGI πρωτόκολλο βασίστηκε κατά κύριο στη έννοια του standard input (stdin) και standard output (stdout) που αναπτύχθηκε αρχικά στο λειτουργικό σύστημα Unix και υπήρχε σε γλώσσες 3ης γενιάς όπως η C, C++ κλπ. Για παράδειγμα όταν γινόταν η κλήση ενός C προγράμματος μέσω CGI κάθε έξοδος στο stdout από το C πρόγραμμα κατευθύνονταν προς τον browser. Με ανάλογο τρόπο μπορούσε το C πρόγραμμα να πάρει δεδομένα από τον browser. Το CGI πρόγραμμα (γραμμένο σε C ή σε οποιαδήποτε άλλη γλώσσα που υποστήριζε το CGI) έτρεχε στον server και παρήγαγε δυναμικά περιεχόμενο. Το μειονέκτημα των CGI προγραμμάτων είναι η μη ενσωμάτωση τους στα HTML αρχεία. Στη πραγματικότητα απαιτούν μία συνολική διαφορετική διαχείριση από τα HTML αρχεία και όλη η επεξεργασία συμβαίνει στο server. Αυτό μπορεί να έχει σαν αποτέλεσμα να αυξηθεί ο φόρτος στο server. Πάντως το CGI πρωτόκολλο αποτέλεσε ένα πρώτο μικρό βήμα προς το server-side διαδικτυακό προγραμματισμό και κατέδειξε κατά κάποιο τρόπο τις ανάγκες για μελλοντική ανάπτυξη. Ακόμη και σήμερα το CGI πρωτόκολλο βρίσκεται σε χρήση αν και ενδείκνυται μόνο για απλές διαδικτυακές εφαρμογές. Στον παρακάτω κώδικα (Κώδικας 1-1) φαίνεται ένα πρόγραμμα γραμμένο σε C που όταν εκτελείται μέσω του CGI πρωτοκόλλου δημιουργεί δυναμικά κάποιο περιεχόμενο. Όλες οι εντολές που έχουν σαν έξοδο τους το stdout (π.χ. printf) ουσιαστικά στέλνουν περιεχόμενο στον web client. Επιπλέον μέσω των παραμέτρων argc και argv μπορεί να έχουν πρόσβαση σε δεδομένα που αποστέλλονται από τον client. Καθώς το C πρόγραμμα εκτελείται αφού γίνει η κλήση του από ένα web client (δίνοντας για παράδειγμα τη διεύθυνση βήμα-βήμα "χτίζεται" ένα HTML αρχείο (με τις εντολές printf) το οποίο "αποστέλλεται" ως απάντηση στον web client. Με αυτό το τρόπο υπάρχει η δυνατότητα μέσα από το C πρόγραμμα να δημιουργήσουμε δυναμικά ότι περιεχόμενο θέλουμε. Μπορούμε μέσα από το C πρόγραμμα να αναφερθούμε σε αρχεία, βάσεις δεδομένων και έτσι να δημιουργήσουμε περιεχόμενο ανάλογα με κάποιες συνθήκες ή παραμέτρους. Φυσικά μέσα σε ένα CGI πρόγραμμα δεν μπορεί να υπάρχει αλληλεπίδραση με κάποιο χρήστη (π.χ. μία scanf), μια και το CGI πρόγραμμα τρέχει χωρίς την παρουσία χρηστών (unattented). #include <stdio.h> /* C_CGI.c */ int main( int argc, char* argv[] ) { FILE *fp; printf("content-type: text/html"); 18

19 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό printf("<html>"); printf("<body> <P>"); printf("this is a test"); printf("</body>"); printf("</html>"); fp = fopen("survey.dat", "a" ); fprintf( fp, "This is a test" ); fclose( fp ); printf("</body>\n"); printf("</html>\n"); return 0; Κώδικας 1-1: Κώδικας CGI προγράμματος γραμμένου σε γλώσσα C. Η Perl είναι μια άλλη πολύ δημοφιλής γλώσσα για CGI scripting κυρίως στο λειτουργικό σύστημα Unix. Έχει αναπτυχθεί στο περιβάλλον Unix και έχει πολλές επιρροές από το περιβάλλον του κελύφους Unix (Unix Shell Programming). Διαθέτει ενσωματωμένες πολύ καλές μεθόδους χειρισμού συμβολοσειρών και αρχείων, χαρακτηριστικό ιδιαίτερα σημαντικό για την ανάπτυξη HTML εφαρμογών. Η Perl αρχικά είχε σαν σκοπό να βοηθήσει τον προγραμματιστή στην εκτέλεση συνηθισμένων εργασιών που πιθανώς είναι βαριές και χρονοβόρες ή αρκετά περίπλοκες, έτσι ώστε να μην μπορεί να χρησιμοποιηθεί κώδικας σε γλώσσα C ή σε άλλη σχετική γλώσσα όπως η AWK. Είναι σχεδιασμένη για να υλοποιεί εύκολα τις εύκολες λειτουργίες (π.χ. επεξεργασία αριθµών, κειµένου, αρχείων και καταλόγων). Φυσικά είναι ένα εξαιρετικό εργαλείο για διαχειριστές συστηµάτων αλλά επίσης και για προγραµµατιστές cgi scripts, λόγω της ευκολίας διαχείρισης των αλφαριθµητικών (strings) και των αρχείων. To παρακάτω παράδειγμα (Κώδικας 1-2) μας δείχνει ένα απλό CGI Perl script το οποίο τρέχει στον server και εμφανίζει όλα το περιεχόμενο της επικοινωνίας του web client με το web server χρησιμοποιώντας τον πίνακα μεταβλητών ENV. Ο πίνακας μεταβλητών ENV κρατάει όλες τις πληροφορίες που ανταλλάσσονται διαμέσου του HTTP πρωτοκόλλου (για το πρωτόκολλο αυτό θα μιλήσουμε αναλυτικά στο κεφάλαιο 2) μεταξύ του web client και του web server. #!/usr/bin/perl use strict; use warnings; print Content-type: text/html\n\n ; print <html><head><title>input variables</title></head><body> print <TABLE> ; foreach (sort keys %ENV){ print <tr><td>$_ </td><td>$env{$_</td></tr> ; print </TABLE></body></html> ; Κώδικας 1-2: Κώδικας CGI προγράμματος γραμμένου σε γλώσσα Perl. 3η περίοδος - (client-side) Scripting Αμέσως μετά την πρώτη έκρηξη του WWW όπου ένας τεράστιος αριθμός από στατικές σελίδες δημιουργήθηκαν, άρχισε να γίνεται κατανοητή η ανάγκη για προσθήκη κάποιων μηχανισμών που θα μπορούσαν να κάνουν την εμπειρία αλληλεπίδρασης με τις ιστοσελίδες πιο πλούσια και το περιεχόμενο 19

20 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό καθώς και τη μορφοποίηση του πιο δυναμική, πέρα από τις απλές δυνατότητες της στατικής HTML. H αρχή έγινε με την παρουσίαση του Netscape navigator 2.0 όπου πρωτοπαρουσιάστηκε η δυνατότητα να υπάρχουν images τα οποία δυναμικά είχαν τη δυνατότητα να αλλάζουν περιεχόμενο όταν το mouse ερχόταν επάνω τους (mouseover) και να αλλάζουν όταν το mouse έφευγε (mouseout). Αυτό έδωσε τη δυνατότητα για δημιουργία κάποιων εντυπωσιακών μενού και άλλων μηχανισμών αλληλεπίδρασης που στο στατικό "πρωτόγονο" κόσμο της HTML της πρώτης περιόδου κέρδισαν γρήγορα το ενδιαφέρον. Μέσα σε αυτό το πλαίσιο η εταιρία Netscape που ουσιαστικά οδηγούσε την εξέλιξη των browsers (ο Mosaic είχε αρχίσει σταθερά να χάνει έδαφος) αποφάσισε να δημιουργήσει ένα μηχανισμό που θα έδινε τη δυνατότητα στο WWW να γίνει πιο εντυπωσιακό και δυναμικό. Ο μηχανισμός αυτός ήταν η γλώσσα προγραμματισμού JavaScript, μία διερμηνευμένη (interpreted) γλώσσα προγραμματισμού με ιδιότητες αντικειμενοστραφούς γλώσσας. Κάποιος θα μπορούσε να γράψει προγράμματα σε JavaScript και να τα ενσωματώσει στις HTML σελίδες με σκοπό να τις κάνει πιο δυναμικές. Η εξέλιξη της JavaScript ξεκίνησε από τη Netscape Communications το Γρήγορα η JavaScript αναπτύχθηκε και έγινε εξαιρετικά δημοφιλής για ανάπτυξη κώδικα που θα έτρεχε στους web clients. Εκείνη την εποχή άρχισε και η Microsoft να ενδιαφέρεται για το Internet και βλέποντας την επιτυχία της Netscape με τη JavaScript αποφάσισε να δημιουργήσει τη δική της γλώσσα που ονόμασε JScript και ήταν παρόμοια με τη JavaScript (περίπου στο μέσο του 1996). Ο Internet Explorer 3.0 που είχε εμφανιστεί λίγο πριν είχε υποστήριξη για τη γλώσσα JScript. Ταυτόχρονα η Microsoft αυτή ακριβώς την εποχή παρουσίασε τη δική της scripting γλώσσα τη VBscript που στηρίζονταν στην εξαιρετικά επιτυχημένη και δημοφιλή Visual Basic. H προσδοκία ήταν ότι θα μπορούσε η VBscript να αποτελέσει έναν αντίπαλο στη JavaScript λόγω της πολύ μεγάλης διάδοσης της Visual Basic και εφόσον κάποιος που ήξερε Visual Basic θα μπορούσε εύκολα και γρήγορα να γράψει VBscript. Ως σκέψη ήταν σωστή, η VBScript μπόρεσε όντως να αποσπάσει κάποιο μερίδιο και να διαδοθεί σημαντικά. Σε καμία περίπτωση όμως δεν απέκτησε ποτέ τη διάδοση και την αποδοχή της JavaScript. Παρακάτω φαίνεται μία απλή HTML σελίδα που έχει ενσωματωμένο ένα πολύ απλό JavaScript και υπάρχει πλέον η δυνατότητα για κάποιο δυναμικό περιεχόμενο. Στη συγκεκριμένη περίπτωση υπάρχει η δυνατότητα να "αλλάξει" το γραφικό μόλις ο χρήστης κάνει κλικ με το ποντίκι. Σημειώστε ότι το Script τρέχει στον web client και όχι στον server. Αυτό είναι και το βασικό χαρακτηριστικό αυτού του σταδίου, δηλ. τα προγράμματα (scripts) που ενσωματώνονται στις HTML σελίδες εκτελούνται στον client-web browser αφού η σελίδα αποσταλεί από τον web server. Από αυτή την άποψη σε αυτό το 3ο στάδιο εφαρμόζεται όπως και στο 1ο στάδιο το μοντέλο που φαίνεται στην Εικόνα 1-6). Φυσικά εννοείται ότι τα προγράμματα που εκτελούνται στον web client (scripts) σχετίζονται με στοιχεία αλληλεπίδρασης του χρήστη και όχι με ενέργειες που απαιτούν πρόσβαση με κάποιον κεντρικό εξυπηρετητή (π.χ. ανάκτηση δεδομένων από μία βάση δεδομένων). Παράλληλα την ίδια εποχή (1996) άρχισε και η μάχη των web browser μεταξύ της Netscape και της Microsoft που επηρέασε καθοριστικά την εξέλιξη του διαδικτυακού προγραμματισμού αυτής της περιόδου. Η Microsoft για να έχει πλήρη υποστήριξη της JavaScript κυκλοφόρησε μία νέα έκδοση του Internet Explorer (3b) που αποτέλεσε το έναυσμα για τη μάχη. Χαμένοι ήταν σίγουρα οι προγραμματιστές που έβλεπαν τα script που έγραφαν να τρέχουν σε ένα browser και όχι στον άλλο, και σιγά-σιγά το θέμα του cross-browser προγραμματισμού να γίνεται σημαντικό. Cross-browser προγραμματισμό εννοούμε τη δυνατότητα να δημιουργούμε προγράμματα τα οποία να τρέχουν σε κάθε browser. <HTML><HEAD> <TITLE>Μία πρώτη δυναμική σελίδα</title> <SCRIPT LANGUAGE="JavaScript"> function changeimage(){ MyImage.src="byebye.gif" 20

21 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό </SCRIPT> </HEAD> <BODY> "Hello World!" <IMG ID="MyImage" SRC="hello.gif" onclick="changeimage()"> </BODY> </HTML> Κώδικας 1-3: Μία πρώτη απλή δυναμική σελίδα που δίνει τη δυνατότητα αλλαγής γραφικού. Η Netscape και η Sun απευθύνθηκαν σε ένα ανεξάρτητο οργανισμό για να δημιουργηθεί μία προτυποποίηση της JavaScript, με σκοπό να δώσουν λύση στο σημαντικότατο πρόβλημα της ταυτόχρονης ύπαρξης των δύο γλωσσών (JavaScript και JScript). Ο οργανισμός αυτός ονομαζόταν ECMA (European Computer Manufacturers Association) και δημιούργησε το πρότυπο-γλώσσα προγραμματισμού ECMAScript. Η εμφάνιση της ECMAScript έκανε τη κατάσταση σχετικά καλύτερη και η σύγχυση που επικρατούσε μεταξύ των JavaScript και JScript ελαχιστοποιήθηκε. H ECMA έφτιαξε ένα πρότυπο για τη γλώσσα JavaScript. Παρόλα αυτά όμως και με την μάχη των browser σε πλήρη εξέλιξη το πρόβλημα δεν μπορούσε να λυθεί. Αυτό γιατί η γλώσσα προγραμματισμού για πρόσβαση στα διάφορα συστατικά στοιχεία μίας ιστοσελίδας δεν ήταν αρκετή. Το πρόβλημα ήταν ποια θα ήταν αυτά τα συστατικά στοιχεία που η γλώσσα προγραμματισμού θα μπορούσε να προσπελάσει, πως αυτά τα στοιχεία θα ήταν οργανωμένα (object hierarchy), ποιες θα ήταν οι ιδιότητες τους και οι μεθόδους που θα υποστήριζαν. Για παράδειγμα ένας browser μπορεί να διαθέτει ένα αντικείμενο για να δουλέψει κάποιος με το HTML κείμενο αλλά και ένα window αντικείμενο για να προσπελάσει το ίδιο το παράθυρο του browser. Εάν αυτή η σειρά των αντικειμένων είναι διαφορετική από browser σε browser ή αν δεν υποστηρίζονται οι ίδιες οι ιδιότητες, τότε οι Scripting γλώσσες που δουλεύουν με αυτά τα αντικείμενα θα έχουν πρόβλημα. Έγινε κατανοητό λοιπόν ότι η γλώσσα προγραμματισμού είναι μόνο ένα μέρος του προβλήματος. Για να λυθεί αυτό το πρόβλημα όλες οι εταιρίες απευθύνθηκαν στο W3C consortium ( που είναι ένας οργανισμός για την καθοδήγηση της εξέλιξης του WWW. Ζητήθηκε λοιπόν η δημιουργία ενός προτύπου που θα μπορούσε να χρησιμοποιηθεί από όλους τους browser για αναπαράσταση ενός HTML κειμένου και το οποίο θα επέτρεπε στις scripting γλώσσες να προσπελάσουν όλα τα αντικείμενα μίας ιστοσελίδας. Αυτό το πρότυπο ονομάστηκε DOM level 1 και παρουσιάστηκε το Το DOM αποτέλεσε ένα σημαντικό βήμα για την αποφυγή του χάους. Μετά το 1998 αναπτύχθηκε και το DOM 2 το οποίο αποτέλεσε μία πιο πλήρη υλοποίηση των browser προτύπων που είχε δημιουργήσει η αλματώδης ανάπτυξη των browser της αγοράς και ειδικά του Internet Explorer που άρχισε να επικρατεί εμφανώς στο WWW. Φυσικά η κατάσταση δεν ξεκαθάρισε ποτέ πλήρως μια και ποτέ δεν υπήρχε μία πλήρης υλοποίηση των προτύπων από κανένα browser. Πολλές φορές προσέθεταν τις δικές τους επεκτάσεις για να ενσωματώσουν ιδέες χωρίς πρώτα να περιμένουν ώστε γίνουν επίσημο πρότυπο (δεν θα ήταν μόνο δικές τους ιδέες τότε!). Είναι αποδεκτό όμως ότι σε ένα τόσο γρήγορα μεταβαλλόμενο πεδίο αντιπαράθεσης όπως το WWW τέτοιες συμπεριφορές είναι αναμενόμενες. Τώρα πλέον η κατάσταση είναι πολύ καλύτερη (ειδικά με την έλευση του Netscape Navigator 6) και τα προβλήματα είναι πολύ λιγότερα από ποτέ, τόσο όσο αφορά τις διαφορές μεταξύ της JavaScript και της JScript όσο και το πρότυπο DOM. Μάλιστα τώρα πλέον με τη σχεδόν πλήρη επικράτηση του Internet Explorer (πάνω από 95%), το πρόβλημα φαίνεται να έχει λυθεί από μόνο του. Μάλιστα πρόσφατα ανακοινώθηκε το τέλος της ανάπτυξης του Netscape browser. Βέβαια υπάρχουν ακόμη και άλλοι browsers (π.χ. Mozilla, Opera) που καθιστούν το πρόβλημα του cross-browser προγραμματισμού σημαντικό. Από τη μεριά των προγραμματιστών του διαδικτυακού προγραμματισμού, που τόσο πολύ ταλαιπωρηθήκαμε από την ανάγκη για cross-browser προγραμματισμό εξαιτίας μίας εμπορικής 21

22 Κεφάλαιο 1: Εισαγωγή στο διαδικτυακό προγραμματισμό αντιπαράθεσης, σίγουρα είναι πολύ καλύτερη η επικράτηση των προτύπων. Βέβαια για κάποιον που θέλει να είναι σίγουρος ότι το JavaScript πρόγραμμα του θα τρέχει σε κάθε browser με τον ίδιο ακριβώς τρόπο, το πρόβλημα εξακολουθεί να είναι υπαρκτό. 4η περίοδος - Server-Side Scripting Καθώς το διαδίκτυο αναπτύσσονταν όλο και περισσότερο και ο όγκος των επιχειρήσεων που άρχισε να το χρησιμοποιεί μεγάλωνε καθημερινά, έγινε κατανοητό ότι το διαδίκτυο θα μπορούσε να γίνει μία πλατφόρμα ανάπτυξης επιχειρηματικών εφαρμογών. Μία άλλη σημαντική εξέλιξη ήταν η ανάπτυξη του ηλεκτρονικού εμπορίου και η διείσδυση του στην καθημερινότητα απλών ανθρώπων (στη μορφή B2C, Business to Customer) και επιχειρήσεων (στη μορφή B2B, Business to Business). Τέλος το WWW άρχισε να επικρατεί σαν μία εύκολη στη χρήση πλατφόρμα οργάνωσης και ανάκτησης πληροφοριών που άνοιξε την πόρτα για την υλοποίηση χιλιάδων σχετικών εφαρμογών που όμως απαιτούσαν μία πιο αποτελεσματική πλατφόρμα ανάπτυξης διαδικτυακών εφαρμογών. Αυτό ακριβώς το στάδιο ανάπτυξης περιλαμβάνει αυτή η περίοδος ανάπτυξης πιο ολοκληρωμένων server-side τεχνολογιών. Στη πρώιμη περίοδο ανάπτυξης του WWW η μόνη σχετική τεχνολογία ήταν η CGI που αναφέραμε στη δεύτερη περίοδο. Αυτή η λύση όμως αποτελούσε μία απλή ad-hoc λύση ενός προβλήματος που απαιτούσε σαφώς μία πολύ καλύτερη λύση. Το πρωτόκολλο CGI αποτελούσε απλώς μία επέκταση για δυνατότητα κλήσης προγραμμάτων που υποστήριζαν την έννοια του stdin και stdout (π.χ. C και C++). Πέρα από τη δυνατότητα αποστολής δεδομένων από τον client στον server και αντίθετα δεν υπήρχε καμία άλλη δυνατότητα. Τι άλλες δυνατότητες όμως απαιτούνταν που οδήγησαν στη ανάπτυξη αυτής της 4 ης περιόδου; Για παράδειγμα μία πολύ σημαντική ανάγκη προκύπτει αν σκεφτούμε ότι το WWW είναι ένα προγραμματιστικό περιβάλλον που η κατάσταση μεταβλητών κλπ. δεν διασώζεται καθώς μεταφερόμαστε από μία σελίδα σε μία άλλη (stateless environment). Αν λοιπόν θέλει κάποιος να αναπτύξει μία διαδικτυακή εφαρμογή στην οποία καθώς ο χρήστης θα μεταφέρεται από μία ιστοσελίδα σε μία άλλη θα "σώζεται" η προηγούμενη κατάσταση, θα πρέπει ο προγραμματιστής να υλοποιήσει τον τρόπο που θα "κρατάει" για παράδειγμα τις τιμές μεταβλητών. Ίσως να χρειάζεται να θυμάται μεταβλητές για ένα χρήστη, αλλά και μεταβλητές που ανήκουν σε όλους τους χρήστες που χρησιμοποιούν εκείνη τη στιγμή ταυτόχρονα μία διαδικτυακή εφαρμογή. Αυτό είναι ένα πολύ απλό και σημαντικό παράδειγμα μίας δυνατότητας που δεν υποστηρίζονταν ενσωματωμένο (built-in) στο πρωτόκολλο CGI και χρειαζόταν επιπλέον σημαντικός κόπος από τον προγραμματιστή για να υλοποιήσει τέτοιες δυνατότητες. Ένα άλλο καλό παράδειγμα για την ανάγκη μετάβασης από τις απλές CGI εφαρμογές σε πιο ολοκληρωμένα περιβάλλοντα για server-side εφαρμογές είναι η ιδιαιτερότητα που προκαλεί στις διαδικτυακές εφαρμογές το γεγονός του "διεθνοποιημένου" περιβάλλοντος (μιλήσαμε γι' αυτό το θέμα σε προηγούμενες παραγράφους). Είδαμε ότι θα πρέπει να υπάρχει η δυνατότητα για διαχείριση των διαφορετικών πελατών ανάλογα με την περιοχή-χώρα. Τα προχωρημένα περιβάλλοντα για server-side εφαρμογές έχουν ενσωματωμένες και έτοιμες προς χρήση δυνατότητες για ανάπτυξη εφαρμογών σε διεθνοποιημένο περιβάλλον. Για παράδειγμα το παρακάτω απόσπασμα κώδικα (γραμμένο στη serverside γλώσσα ASP, Active Server Pages) δείχνουν τη δυνατότητα αλλαγής από μία κωδικοσελίδα σε μία άλλη και της διαχείρισης ημερομηνιών ανάλογα με την περιοχή-χώρα του πελάτη αντίστοιχα. To απόσπασμα παρατίθεται όχι για πλήρη κατανόηση, αυτό θα είναι δύσκολο χωρίς γνώση της ASP, αλλά απλώς ως ένα ενδεικτικό παράδειγμα για την υποστήριξη λειτουργιών για ανάπτυξη εφαρμογών για διεθνές περιβάλλον. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=windows-1251"> <% Response.Charset = "windows-1252" <%@ CodePage = %> <!-- Welcome to my home page in UTF-8 --> <% Response.Write "The Session codepage is " & Session.CodePage & "<BR>" 22

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών 1 ίκτυα μικρά και μεγάλα Ένα δίκτυο υπολογιστών (computer network) είναι ένας συνδυασμός συστημάτων (δηλαδή, υπολογιστών),

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

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

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

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

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

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

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

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο Δρ. Χρήστος Όροβας Τεχνικός Υπεύθυνος 1 Διαδικασία «Φόρτωσης» μιας Ιστοσελίδας Internet Explorer, Mozilla, Chrome, κτλ HTTP Server ΠΣΔ Αίτημα για επικοινωνία

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

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

Τεχνικός Εφαρμογών Πληροφορικής Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Περιεχόμενα 1.Τι είναι η Php; 2.Πως γίνετε η γραφή

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

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

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

Βασικές Έννοιες Web Εφαρμογών ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Βασικές Έννοιες Web Εφαρμογών Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου Περιεχόμενα

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της

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

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

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

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

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

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

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής Εργαλεία και τεχνικές από την πλευρά του πελάτη Java Applet

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

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

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

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

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

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP Τεχνολογίες Διαδικτύου Server Side Scripting I PHP Εισαγωγή PHP PHP:Hypertext Preprocessor Mηχανή που συνοδεύει web servers όπως ο IIS και ο Apache Η PHP είναι γλώσσα προγραμματισμού για web εφαρμογές

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

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

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

Περιεχόμενα. Πρόλογος... xiii

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

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

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα Στόχοι κεφαλαίου ίκτυα υπολογιστών (Κεφαλαιο 15 στο βιβλιο) Περιγραφή των κύριων θεµάτων σχετικά µε τα δίκτυα υπολογιστών Αναφορά στα διάφορα είδη δικτύων Περιγραφή των διαφόρων τοπολογιών των τοπικών

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

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα...11 Πρόλογος του καθηγητή Γεωργίου Δουκίδη...13 ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15 ΚΕΦΑΛΑΙΟ 1. Η ΕΠΙΧΕΙΡΗΣΗ...17 Ορισμός της έννοιας της επιχείρησης και οι μορφές

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

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~ Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~ Στελιος Σφακιανάκης Εαρινό 2019 Αυτή η εργασία χορηγείται με άδεια Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 1 Server-side programming

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

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Περιεχόµενα World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Εισαγωγή Ιστορική Αναδροµή Το ιαδίκτυο και το WWW Υπερκείµενο Εντοπισµός πληροφοριών στο WWW Search Engines Portals Unicode Java Plug-Ins 1 2

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

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

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

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

Αρχιτεκτονική πελάτη-εξυπηρέτη Οι διεργασίες που εκτελούνται στο δίκτυο είναι είτε πελάτες (clients) είτε εξυπηρέτες (servers). Εξυπηρέτης: παθητικός,

Αρχιτεκτονική πελάτη-εξυπηρέτη Οι διεργασίες που εκτελούνται στο δίκτυο είναι είτε πελάτες (clients) είτε εξυπηρέτες (servers). Εξυπηρέτης: παθητικός, Αρχιτεκτονική web εφαρµογών Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών 1 Αρχιτεκτονική πελάτη-εξυπηρέτη Οι διεργασίες που εκτελούνται στο δίκτυο είναι είτε πελάτες

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

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

ΣΕΜΙΝΑΡΙΟ ΔΙΚΤΥΩΝ ΜΑΡΤΙΟΣ ΜΑΙΟΣ 2010 ΔΙΟΡΓΑΝΩΣΗ ΑΜΠΑΡΙΩΤΗΣ ΑΠΟΣΤΟΛΟΣ ΓΙΑΜΜΑΚΗΣ ΓΙΑΝΝΗΣ ΛΕΒΑΝΤΗΣ ΟΔΥΣΣΕΑΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΜΑΡΙΟΣ ΨΙΑΧΟΣ ΧΡΗΣΤΟΣ ΣΕΜΙΝΑΡΙΟ ΔΙΚΤΥΩΝ ΜΑΡΤΙΟΣ ΜΑΙΟΣ 2010 ΔΙΟΡΓΑΝΩΣΗ ΑΜΠΑΡΙΩΤΗΣ ΑΠΟΣΤΟΛΟΣ ΓΙΑΜΜΑΚΗΣ ΓΙΑΝΝΗΣ ΛΕΒΑΝΤΗΣ ΟΔΥΣΣΕΑΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΜΑΡΙΟΣ ΨΙΑΧΟΣ ΧΡΗΣΤΟΣ Τεχνολογία Δικτύων Επικοινωνιών Πρωτόκολλα και Αρχιτεκτονική

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

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς PERL Δήμος Παύλου Δημήτρης Κουζαπάς Perl Η Perl είναι μια διερμηνευομένη δυναμική γλώσσα προγραμματισμού. Συνδυάζει χαρακτηριστικά από διάφορες γλώσσες. (C/C++, Awk, Lisp κλπ) Διαδόθηκε λόγω της μεγάλης

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

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

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html Χρ. Ηλιούδης Παγκόσμιος Ιστός (WWW) Ο Παγκόσμιος Ιστός (World Wide Web WWW), ή απλώς Ιστός, βασίζεται στην ιδέα των κατανεμημένων πληροφοριών. Αντί όλες

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

Φύλλο Κατανόησης 1.8

Φύλλο Κατανόησης 1.8 Σχολικό Έτος : 2012-2013 Τάξη : B Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι - Θεωρία Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya1 Φύλλο Κατανόησης 1.8 1.8. Το μοντέλο OSI Ερωτήσεις

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

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

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol) Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας Κέρκυρα ίκτυα - Internet 2 Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) ΜηχανέςΑναζήτησηςστοWeb Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία

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

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό Ανάδοχοι Φορέας Υλοποίησης Έργο ΛΑΕΡΤΗΣ Λογισμικό Δικτύων Οδηγίες αξιοποίησης για τον Εκπαιδευτικό Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Ανάδοχος φορέας: CONCEPTUM A.E. 1 Προσομοίωση

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

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

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

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

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

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38 Περιεχόμενα ΠΡΟΛΟΓΟΣ... 11 ΔΙΑΔΙΚΤΥΟ... 13 1. ΙΣΤΟΡΙΑ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ... 15 2. ΤΙ ΕΙΝΑΙ ΤΟ ΔΙΑΔΙΚΤΥΟ INTERNET;... 16 3. ΤΙ ΠΡΟΣΦΕΡΕΙ ΤΟ ΔΙΑΔΙΚΤΥΟ, ΤΙ ΜΠΟΡΕΙ ΝΑ ΒΡΕΙ ΚΑΝΕΙΣ... 19 4. ΤΙ ΑΠΑΙΤΕΙΤΑΙ ΓΙΑ ΝΑ

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

Πρακτικά όλα τα προβλήματα ασφαλείας οφείλονται σε λάθη στον κώδικα

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

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

Δημοσίευση στο Διαδίκτυο

Δημοσίευση στο Διαδίκτυο ΕΣΔ200 Δημιουργία Περιεχομένου ΙI Δημοσίευση στο Διαδίκτυο Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα Εισαγωγή Δημοσίευση μιας ταινίας στο παγκόσμιο ιστό Βασικά στοιχεία HTML Τεχνικές δημιουργίας

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

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies)

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies) ΕΠΛ 012 ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies) Διδάσκων Καθηγητής: Δημήτριος Τσουμάκος Εαρινό Εξάμηνο 2010 Βασικές Πληροφορίες Πότε: Δευτέρα & Πέμπτη 10:30-12μμ Πού: ΧΩΔ01

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

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

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

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1 Διαχείριση Πληροφοριών στο Διαδίκτυο Εργαστήριο 1 Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας Σχολή Διοίκησης & Οικονομίας Τμήμα Διαχείρισης Πληροφοριών Διδάσκων Μαρδύρης Βασίλειος, Διπλ. Ηλ. Μηχανικός & Μηχ.

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

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

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

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε! Θέλετε να μάθετε πως μπορείτε να έχετε πρόσβαση στις 5250 οθόνες μέσω browser, χωρίς αλλαγή στις υπάρχουσες εφαρμογές και χωρίς εγκατάσταση στον client? Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

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

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

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης Χειμερινό εξάμηνο 2011-2012 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες 1 η Ερώτηση (Ορισμός): Τι είναι το Διαδίκτυο; Διαδίκτυο είναι το παγκόσμιο δίκτυο όλων των επιμέρους δικτύων που έχουν συμφωνήσει σε κοινούς κανόνες επικοινωνίας και

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

7.2.2 Σχέση OSI και TCP/IP

7.2.2 Σχέση OSI και TCP/IP Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.

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

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

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ 1Τι είναι ο Παγκόσµιος Ιστός; Λόγω της µεγάλης απήχησης του Παγκόσµιου Ιστού πολλές φορές ταυτίζουµε τον Παγκόσµιο Ιστό µε το Διαδίκτυο. Στην πραγµατικότητα αυτή η αντίληψη

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

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών World Wide Web (WWW) Θέματα Επεξεργασία δεδομένων στο Web Δημιουργία απλών σελίδων HTML Περιγραφή κάποιων XHTML στοιχείων (tags) Εξέλιξης του WWW Το WWW

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

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

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

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

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

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

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

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

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

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

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

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): 1. Ο Παγκόσμιος Ιστός (world wide web): a. Ταυτίζεται με το Internet b. Είναι υπηρεσία διαχείρισης και πρόσβασης σε

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

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΕΓΚΑΤΑΣΤΑΣΗ & ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ INTERNET INFORMATION SERVER (IIS) ΓΙΑ ΥΛΟΠΟΙΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ (WEB SERVICES) ΣΠΟΥΔΑΣΤΡΙΑ:Μπάρδα Μαρία ΕΙΣΗΓΗΤΗΣ: Τσιαντής

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

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7 ΣΤΟΧΟΙ ΕΞΕΤΑΣΗΣ Η ενότητα ECDL WebStarter απαιτεί από τον Υποψήφιο να κατανοεί τις κύριες έννοιες της σχεδίασης και δημοσίευσης δικτυακών

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

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

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Ευθύμιος Ταμπούρης tambouris@uom.gr Επιστημονική Επιχειρηματική Χρήση των Η/Υ Η επιστημονική κοινότητα ασχολείται με τη λύση πολύπλοκων μαθηματικών προβλημάτων

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

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

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

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

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

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

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

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

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

JAVASCRIPT EVENTS. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

JAVASCRIPT EVENTS. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών JAVASCRIPT EVENTS Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης Σπουδαστές: Μιχαήλ Μιχάλης ΑΜ:5089 Αναγνωστόπουλος Σπύρος ΑΜ:3692 Υπεύθυνος καθηγητής: Αναλυτή Κατερίνα Άρτα 2006 E- learning

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

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Διαδικτυακές Εφαρμογές Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

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

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

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). ΙΔΡΥΜΑ ΝΕΟΛΑΙΑΣ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Καλαμάτα, 2015 Το Διαδίκτυο Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). Πρόκειται

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

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

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client ΕΣΔ516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client Περιεχόμενα Περιεχόμενα Η Διεπίπέδη αρχιτεκτονική (2-tier architecture) Η τριεπίπεδη αρχιτεκτονική (3-tier architecture)

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

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

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

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

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

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

Εισαγωγή στην πληροφορική Εισαγωγή στην πληροφορική Ενότητα 4: Δικτύωση και Διαδίκτυο I Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών Σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET Δημήτριος Παπαδημητρίου Παπαδημητρίου Δημήτριος - MIS - Παν.Μακεδονίας 1 Microsoft.NET Πλατφόρμα επικοινωνίας ανθρώπων, συστημάτων και

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

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού 1η διάλεξη Χαρακτηριστικά Μαθήματος Μάθημα προγραμματισμού (και όχι μόνον) Μπορεί να εξελιχθεί σε εφιάλτη αν δεν έχετε καλή γνώση και αρκετή εμπειρία προγραμματισμού (Java)

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

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

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων World Wide Web Παγκόσμιος Ιστός Internet - WWW Internet: παγκόσμιο δίκτυο υπολογιστών που βασίζεται στο πρωτόκολο επικοινωνίας TCP/IP και

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

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

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

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

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

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

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7] Στόχοι ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 Να εξηγήσουμε τι είναι τα δίκτυα υπολογιστών, ποιες είναι οι βασικές κατηγορίες τους και ποιες οι πιο συνηθισμένες τοπολογίες τους. Να περιγράψουμε

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

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

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

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

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

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

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

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Αρχές Δικτύων Επικοινωνιών Σελ. 9-50 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-b.ggia.info/ Creative Commons License 3.0 Share-Alike Σύνδεση από σημείο

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 1 o ΔΙΑΓΩΝΙΣΜΑ ΘΕΜΑ 1 ο Α) Ποια είναι τα βασικά στοιχεία, τα οποία χαρακτηρίζουν το ISDN; Η ψηφιακή μετάδοση. Όλα τα σήματα μεταδίδονται σε ψηφιακή μορφή απ' άκρη σ' άκρη του δικτύου,

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

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας Υπηρεσίες Internet ίκτυα Η/Υ Επίπεδο Εφαρµογής O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer

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

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Σχεδίαση και Αρχιτεκτονική Δικτύων Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 19 Διάρθρωση

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