Μετάβαση στο περιεχόμενο

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό

Επίσημο περίγραμμα μαθήματος του ΤΜΗΥΠ (Πανεπιστήμιο Πατρών), όπως δημοσιεύεται στη σελίδα του μαθήματος και στο συνημμένο αρχείο «Περίγραμμα Μαθήματος». Το κείμενο παρατίθεται αυτούσιο, χωρίς τα πρότυπα οδηγιών του εντύπου.

Στόχοι

  • Μετά την ολοκλήρωση της διδασκαλίας του μαθήματος, οι φοιτητές θα είναι ικανοί να:
  • Γνωρίζουν τις βασικές αρχές λειτουργίας του Παγκόσμιου Ιστού (Αρχιτεκτονικές client-server, Peer-to-Peer, χρήση ιστοσελίδων και ιστοχώρων).
  • Γνωρίζουν τα βασικά δομικά πρωτόκολλα του παγκόσμιου ιστού (HTTP(s), DNS, TCP/IP).
  • Διαμορφώνουν τη δομή και λειτουργία αντιπροσώπων (web proxies) στον παγκόσμιο ιστό (κοινόχρηστες κρυφές μνήμες, επιπτώσεις στην ποιότητα παροχής υπηρεσιών διαδικτύου, προανάκτηση δεδομένων, συνέπεια και πολιτικές αντικατάστασης περιεχόμενου)
  • Κατανοούν τη δομή και λειτουργία συστημάτων πλεονασμού (web replication) στον παγκόσμιο ιστό (καθρεπτισμός, αρχιτεκτονικές, μετρικές και αλγόριθμοι κατανομής αιτήσεων, δίκτυα διανομής περιεχόμενου)
  • Χρησιμοποιούν την υποστήριξη του DNS και του HTTP για τη λειτουργία κρυφών μνημών και πλεονασμού στον παγκόσμιο ιστό.
  • Γνωρίζουν τις λειτουργίες ενός web browser.
  • Κατασκευάζουν τα βασικά μέρη στον κώδικα μιας ιστοσελίδας με χρήση της γλώσσας HTML.
  • Μορφοποιούν HTML στοιχεία με χρήση CSS.
  • Εισάγουν δυναμικά στοιχεία σε μια ιστοσελίδα με χρήση JavaScript.
  • Γνωρίζουν τις διαφορές client side και server side τεχνολογιών.
  • Διαμορφώνουν τις λειτουργικότητες ενός web server.
  • Χρησιμοποιούν web sessions και web cookies.
  • Αναπτύσσουν ολοκληρωμένες web εφαρμογές με χρήση server side τεχνολογιών.
  • Χρησιμοποιούν βασικές αρχές και τεχνικές ασφάλειας των web εφαρμογών.
  • Διασυνδέουν μια web εφαρμογή με ένα σύστημα διαχείρισης βάσεων δεδομένων.
  • Χρησιμοποιούν μεθοδολογίες ασύγχρονης επικοινωνίας client – server (π.χ. AJAX).
  • Αναπτύσσουν εφαρμογές χρησιμοποιώντας τα πρότυπα περιγραφής, ανταλλαγής και μορφοποίησης δεδομένων (XML/ XSL).
  • Χρησιμοποιούν τις σύγχρονες τεχνολογίες ανάπτυξης εφαρμογών κινητού παγκόσμιου ιστού (mobile web), online χαρτογραφικών υπηρεσιών και online κοινωνικών δικτύων.

Μετά την ολοκλήρωση της διδασκαλίας του μαθήματος, οι φοιτητές θα έχουν αναπτύξει τις ακόλουθες δεξιότητες: 1. Θα μπορούν να αξιοποιούν: - Τις λειτουργίες που προσφέρει το πρωτόκολλο HTTP. - Τον τρόπο που η λειτουργία κρυφών μνημών στους αντιπροσώπους και του καθρεπτισμού στα δίκτυα διανομής επηρεάζει τη λειτουργία και αποδοτικότητα των υπηρεσιών που παρέχονται μέσω Παγκοσμίου Ιστού. 2. Θα είναι σε θέση να αναπτύσσουν καινοτόμες ολοκληρωμένες web εφαρμογές οι οποίες: - Θα διαθέτουν πλήρες, εύχρηστο και διαδραστικό περιβάλλον διεπαφής με χρήση τεχνολογιών HTML5, CSS3 και JavaScript. - Θα διασυνδέονται με σύστημα διαχείρισης βάσεων δεδομένων για αποθήκευση δεδομένων (π.χ. στοιχεία εισόδου χρηστών, δεδομένα εφαρμογής κ.α.). - Θα υλοποιούν αλγόριθμους για επίλυση σύνθετων προβλημάτων (π.χ. σε ένα online σύστημα logistics, εύρεση συντομότερης διαδρομής για την παράδοση μιας αποστολής στον προορισμό της κ.α.). - Θα μπορούν να επικοινωνούν με άλλα web συστήματα των οποίων η λειτουργία και συμπεριφορά είναι απρόβλεπτη και δεν ελέγχεται από τους ίδιους (π.χ. Google Maps, Facebook API κλπ.) με χρήση των αντίστοιχων web APIs και χρήση αντίστοιχων προτύπων (XML, JSON κ.α.). 3. Θα διαμορφώνουν το περιβάλλον για την εγκατάσταση και τη σωστή λειτουργίας της web εφαρμογής που ανέπτυξαν. Ενδεικτικά: - Εγκατάσταση και παραμετροποίηση web server (π.χ. Apache web server). - Εγκατάσταση και παραμετροποίηση server side γλώσσας προγραμματισμού (π.χ. PHP) η οποία θα συνεργάζεται με τον web server. - Εγκατάσταση και παραμετροποίηση συστήματος διαχείρισης βάσεων δεδομένων (π.χ. MySQL). 4. Θα είναι σε θέση να εξετάσουν αν η web εφαρμογή που υλοποίησαν συμμορφώνεται με βασικές αρχές ασφάλειας πληροφοριακών συστημάτων και διασφαλίζει την ευρωστία του συστήματος σε καταστάσεις απρόβλεπτης ή και κακόβουλης χρήσης (π.χ. χρήση sessions για ελεγχόμενη πρόσβαση σε συγκεκριμένες λειτουργίες της web εφαρμογής). 5. Θα μπορούν να αναγνωρίζουν τα προβλήματα, να σχεδιάζουν και να υλοποιούν σύνθετες εφαρμογές βασισμένες στον παγκόσμιο ιστό με βάση τα συναφή κοινωνικά, επιστημονικά και ηθικά ζητήματα που αφορούν το σενάριο εργασίας. 6. Θα διαχειρίζονται τη συνεργασία και επικοινωνία σε ομαδικό περιβάλλον, θα καταστρώνουν οργανωτικά σχέδια για την υλοποίηση και την παρακολούθηση της προόδου της ομαδικής εργασίας, θα κατανέμουν το φόρτο εργασίας. 7. Θα είναι σε θέση να αναλαμβάνουν ατομικές πρωτοβουλίες, ευθύνες και αποφάσεις που αφορούν την εκτέλεση ομαδικής εργασίας.

Περιεχόμενο (ύλη)

Το μάθημα χωρίζεται σε δύο βασικά μέρη, στον Προγραμματισμό στον Παγκόσμιο Ιστό και στα Συστήματα του Παγκόσμιου Ιστού.

Προγραμματισμός στον Παγκόσμιο Ιστό 1. Εισαγωγή στις βασικές έννοιες του παγκόσμιου ιστού. 2. Γλώσσες σήμανσης (HTML4, HTML5) και μορφοποίηση web περιεχομένου (CSS). 3. Τεχνολογίες JavaScript, Bootstrap και εισαγωγή στην AngularJS. 4. Εισαγωγή στις servers side τεχνολογίες του παγκόσμιου ιστού, η γλώσσα προγραμματισμού PHP. 5. Διασύνδεση web εφαρμογών με συστήματα βάσεων δεδομένων (PHP και MySQL). 6. Πρότυπα περιγραφής, ανταλλαγής και μορφοποίησης δεδομένων (XML/ XSL). 7. Τεχνικές ασύγχρονης επικοινωνίας server και client. Εισαγωγή σε AJAX, JSON, jQuery και Node.JS. 8. Εισαγωγή στον κινητό παγκόσμιο ιστό (mobile web). Αρχές σχεδίασης mobile web εφαρμογών. 9. Εισαγωγή στα κοινωνικά δίκτυα και στις μεθόδους επικοινωνίας με τρίτα συστήματα παγκόσμιου ιστού (web services, web APIs).

Συστήματα στον Παγκόσμιο Ιστό 1. Εισαγωγή στις βασικές έννοιες των κρυφών μνημών (ΚΜ) και πλεονασμού περιεχόμενου (ΠΠ). 2. Λειτουργία των πρωτοκόλλων URL, DNS & HTTP (απλό, persistent & pipelining). 3. Λειτουργίες του πρωτοκόλλου HTTP για την υποστήριξη της λειτουργίας ΚΜ και ΠΠ και ασφάλεια κατά τη μεταφορά δεδομένων με κρυπτογράφηση (SSL/TLS, HTTPS). 4. Επιπτώσεις και μετρικές απόδοσης ΚΜ στη λειτουργία του παγκόσμιου ιστού, διαίρεση TCP συνδέσεων, αποθήκευση TCP συνδέσεων σε ΚΜ. 5. Αλγόριθμοι και τεχνικές διαχείρισης συνέπειας στις ΚΜ, πρωτόκολλα ακύρωσης (μισθώσεις, συνδρομές, μισθωμένες συνδρομές) και επικύρωσης περιεχόμενου ΚΜ (διελκυστίνδες, προσαρμογή χρόνου ζωής, piggyback cache validation). 6. Συστήματα πλεονασμού (στατικός/διάφανος, μερικός/πλήρης καθρεπτισμός και συνδυασμοί, τεχνικές διανομής αιτήσεων με ή χωρίς γνώση του περιεχόμενου).

Αξιολόγηση

  • Γλώσσα αξιολόγησης: Ελληνική (Αγγλικά αν χρειαστεί)
  • Τελική εξέταση (100% της συνολικής βαθμολογίας). Τα κριτήρια αξιολόγησης είναι αναρτημένα στην ιστοσελίδα του μαθήματος.
  • Γραπτή που περιλαμβάνει ερωτήσεις πολλαπλής επιλογής και σύντομες ερωτήσεις κρίσεως (30%).
  • Εργασία προγραμματιστικού χαρακτήρα, ανάπτυξης σύνθετης εφαρμογής του παγκόσμιου Ιστού (70%).

Βιβλιογραφία

  • Randy Connolly, Ricardo Hoar, “Προγραμματισμός για το Web. Όλα όσα πρέπει να γνωρίζετε”, 2015, Χ. ΓΚΙΟΥΡΔΑ & ΣΙΑ Ε.Ε.
  • Luke Welling, Laura Thomson, “Ανάπτυξη Web Εφαρμογών με PHP και MySQL”, 2005, ΓΚΙΟΥΡΔΑΣ
  • Larry Ullman, “Εισαγωγή στις PHP 6 & MySQL 5 με Εικόνες”, 2009, ΚΛΕΙΔΑΡΙΘΜΟΣ
  • Α. Βακάλη, Ζ. Παπαμήτσιου, “Πληροφοριακά Συστήματα Παγκόσμιου Ιστού”, 2012, ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ

  • Ελεύθερα προσβάσιμες πηγές στον Παγκόσμιο Ιστό, π.χ. https://www.w3schools.com/

-Συναφή επιστημονικά περιοδικά:

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