Διαδικτυακός Προγραμματισμός

Διδάσκοντες Βασιλική Κούφη
Κατηγορία μαθήματος ΥΔΚ/ΠΣ
Κωδικός μαθήματος ΨΣ-535
Πιστωτικές μονάδες 5
Ώρες μαθήματος 3 ώρες
Ώρες εργαστηρίων 2 ώρες
Ηλεκτρονικό υλικό Προβολή στον Αρίσταρχο (Open e-Class)

Μαθησιακά Αποτελέσματα

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

Ολοκληρώνοντας επιτυχώς το μάθημα οι φοιτητές θα είναι σε θέση να:

  • Σχεδιάζουν και να υλοποιούν RESTful APIs
  • Εφαρμόζουν βέλτιστες πρακτικές για το σχεδιασμό, την τήρηση ιστορικού εκδόσεων, την ασφάλεια και την τεκμηρίωση των APIs
  • Αναπτύσουν εφαρμογές με Java EE και Spring Framework.
  • Αξιοποιούν μεθοδολογίες ανάπτυξης πολυνηματικών εφαρμογών και πρακτικές ταυτοχρονισμού (threads, locks, synchronization).
  • Ενσωματώνουν τεχνικές ελέγχου ταυτότητας και εξουσιοδότησης για την ασφάλεια των διαδικτυακών υπηρεσιών (Authentication, Authorization, IAM).

Γενικές Ικανότητες

  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με την χρήση και των απαραίτητων τεχνολογιών
  • Προαγωγή της δημιουργικής και επαγωγικής σκέψης
  • Λήψη αποφάσεων
  • Αυτόνομη εργασία
  • Ομαδική εργασία

Περιεχόμενα

  • Ανάλυση δεδομένων και τεχνητή νοημοσύνη
  • Εισαγωγή στα RESTful APIs (αρχιτεκτονική RESTful, περιορισμοί REST, μέθοδοι HTTP και κωδικοί κατάστασης)
  • Σχεδιασμός RESTful APIs (βέλτιστες πρακτικές στο σχεδιασμό API, αναγνώριση πόρων και URIs, HATEOAS (Hypermedia as the Engine of Application State), σελιδοποίηση, φιλτράρισμα και ταξινόμηση)
  • Υλοποίηση RESTful υπηρεσιών, χρήση πλαισίων (π.χ. Spring Boot – Java, Flask – Python, Ktor – Kotlin), μορφές σειριοποίησης δεδομένων (JSON, XML)
  • Διαχείριση σφαλμάτων και επικύρωση (στρατηγικές διαχείρισης σφαλμάτων, χρήση κωδικών κατάστασης HTTP αποτελεσματικά, προσαρμοσμένες απαντήσεις σφαλμάτων, τεχνικές επικύρωσης δεδομένων εισόδου)
  • Ασφάλεια στα RESTful APIs (βέλτιστες πρακτικές ασφάλειας API, αυθεντικοποίηση και εξουσιοδότηση (OAuth2, JWT), HTTPS και κρυπτογράφηση δεδομένων)
  • Τεκμηρίωση και δοκιμή APIs (Χρήση Swagger/OpenAPI για τεκμηρίωση, δοκιμή μονάδων και ολοκλήρωσης με εργαλεία όπως Postman, JUnit)
  • Υλοποίηση αρχιτεκτονικών προτύπων και μοτίβων σχεδιασμού όπως MVC και MVVM.
  • Σχεδιασμός και υλοποίηση GraphQL schemas και υπηρεσιών.
  • Επικοινωνία εφαρμογών και συστημάτων μέσω Sockets.
  • Βελτιστοποίηση της απόδοσης εφαρμογών εξυπηρετητή μέσω τεχνικών caching, load balancing και άλλων.

Προτεινόμενα Συγγράμματα

  • ARMANDO FOX, DAVID PATTERSON (2017), ΤΕΧΝΟΛΟΓΙΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ ΩΣ ΥΠΗΡΕΣΙΑΣ: ΜΙΑ ΕΥΕΛΙΚΤΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΝΕΦΟΥΣ
  • Χρήστος Δουληγέρης, Ρόζα Μαυροπόδη, Εύη Κοπανάκη, Απόστολος Καραλής (2021): Τεχνολογίες και Προγραμματισμός στον Παγκόσμιο Ιστό
  • Ι. Κ. ΚΑΒΟΥΡΑΣ, Ι. Ζ. ΜΗΛΗΣ, Α. Α. ΡΟΥΚΟΥΝΑΚΗ, Γ. Β. ΞΥΛΩΜΕΝΟΣ (2011): ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΜΕ JAVA, ΙSBN: 9789609732376
  • Sanjay Patni (2017): Pro RESTful APIs, Design, Build and Integrate with REST, JSON, XML and JAX-RS, ISBN: 9781484226650
  • Fernando Doglio (2018): REST API Development with Node.js, ISBN: 9781484237151

Πρόσθετη Βιβλιογραφία

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