Διαδικτυακός Προγραμματισμός |
|
---|---|
Διδάσκοντες | Βασιλική Κούφη |
Κατηγορία μαθήματος | ΥΔΚ/ΠΣ |
Κωδικός μαθήματος | ΨΣ-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ύδοξο αναρτώνται σε ηλεκτρονική μορφή άρθρα, οπτικοακουστικό υλικό διαλέξεων και διαδικτυακές διευθύνσεις για χρήσιμες πληροφορίες καθώς και ασκήσεις για την εξάσκηση των φοιτητών/τριών. Παρουσιάζονται μελέτες περίπτωσης, παραδειγματικά προβλήματα και μέθοδοι επίλυσης αυτών.