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

Σχετικά έγγραφα
Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 8 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Java Server Pages (JSP)

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

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

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

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

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

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

Πληροφορίες για το μάθημα

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

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

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

Γαβαλάς αµιανός

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

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

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

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

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

BibConvert μετατροπές LOM

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

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

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

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

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

ΔΕ10: Πληροφοριακά Συστήματα Διοίκησης IΙ Εργαστήριο # 2

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

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

Διαδικτυακές Εφαρμογές Ενότητα 5: Servlets και JSPs

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID

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

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

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

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML

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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

Προβλήµατα CGI, SSI CGI: Απόδοση Έναρξη νέας διαδικασίας για εκτέλεση (2 διαδικασιών σε περίπτωση διερµηνευόµενης γλώσσας, π.χ. perl). Κοινές διαδικασ

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Κατανεμημένα Συστήματα με Java. Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

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

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

Εφαρµογές WebGIS Open Source

Εισαγωγή στις Σελίδες Εξυπηρετητή Java Java Server Pages (JSP)

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

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

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

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

Social Network : Programming on FACEBOOK

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

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

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

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

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

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

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

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

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

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

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

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

Βασική δομή ενός HTML εγγράφου

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Αρχιτεκτονική Λογισμικού

Σημασιολογικός Ιστός (Semantic Web) - XML

Σχεδιασμός και Ανάπτυξη Ιστοσελίδων ΙΙ ΙΕΚ ΤΡΙΑΝΔΡΙΑΣ ΓΡΑΦΙΣΤΑΣ ΕΝΤΥΠΟΥ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΕΣΩΝ. CSS - Cascading Style Sheets

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

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

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

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

5 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: προχωρημένα θέματα PHP

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

Αλεξιάδης Γεώργιος (ΠΕ86) -

Άσκηση 1. Απάντηση Άσκησης 1

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

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

Υπολογιστική Νέφους Cloud computing

Ασφαλείς Εφαρμογές η-υπογραφών

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

Company LOGO. Nazaret Kazarian. 1

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

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

Transcript:

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

Η αρχιτεκτονική του WWW Βασική αρχιτεκτονική του WWW HTTP HTML URL Επέκταση της βασικής αρχιτεκτονικής του WWW Προγραμματισμός στην πλευρά του πελάτη (JavaScript,..) Προγραμματισμός στην πλευρά του εξυπηρετητή (CGI, php, jsp,..) Plug-ins Εφαρμογές πολλών στρωμάτων (n-tier application servers) Web Services (SOAP, ) XML Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 2 2

Δυναμικές Ιστοσελίδες Μία ιστοσελίδα είναι δυναμική όταν: αλληλεπιδρά µε το χρήστη (π.χ. αλλάζει η εμφάνιση ενός μενού επιλογών όταν ο δείκτης του ποντικιού τοποθετείται πάνω σε αυτό), αλλάζει η μορφή της (π.χ. μετακινούνται λέξεις και αντικείμενα, αλλάζουν δυναμικά εικόνες, γράμματα και χρώματα), μεταβάλλεται το περιεχόμενό της (π.χ. αλλάζουν τα περιεχόμενα ενός πίνακα). Για την ενημέρωση και την αλλαγή των περιεχόμενων μιας ιστοσελίδας πολλές φορές απαιτείται: απομακρυσμένη αναζήτηση δεδομένων και αλληλεπίδραση της ιστοσελίδας µε αρχεία ή βάσεις δεδομένων. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 3 3

Προγραμματισμός στην πλευρά του πελάτη (JavaScript,..) Επεξεργασία JavaScript Πελάτης Web Browser Τελική HTML σελίδα Διαδίκτυο Επικοινωνία HTTP HTML σελίδα με κώδικα javascript Εξυπηρετητής Web Server Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 4 4 Χρήστης

Plug-ins Εμφάνιση plug-in στην σχετική εφαρμογή Κατάλληλη Εφαρμογή Επεξεργασία HTML σελίδα με κώδικα Plug-ins Πελάτης Web Browser Τελική HTML σελίδα Διαδίκτυο Επικοινωνία HTTP HTML σελίδα με κώδικα Plug-ins Εξυπηρετητής Web Server Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 5 5 Χρήστης

Καταλληλότητα, Πλεονεκτήματα, Μειονεκτήματα Κατάλληλη τεχνολογία όπου: Ελέγχεται η είσοδος του χρήστη (form validation) Απαιτούνται πολύπλοκες λειτουργίες στον πελάτη (πχ. παιχνίδια) Πλεονεκτήματα: Ταχύτερες λόγο τοπικής εκτέλεσης υνατότητα εκτέλεσης χωρίς συνεχή σύνδεση server/client υνατότητες, ευελιξία, ευχρηστία και καλαισθησία ιστοσελίδων Οικομικότερες Καμία εμπλοκή µε server Μειονεκτήματα: Ο κώδικας είναι ορατός εν μπορεί να έχει πρόσβαση στο τοπικό file system εν τρέχουν σε όλους τους clients (browsers) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 6 6

Προγραμματισμός στην πλευρά του εξυπηρετητή (CGI, php, jsp,..) Πελάτης Web Browser Τελική HTML σελίδα Διαδίκτυο Τελική HTML σελίδα Επικοινωνία HTTP Εξυπηρετητής Web Server Επεξεργασία php κώδικα και παραγωγή HTML σελίδας Επεξεργασία Δεδοì ένων Βάση Δεδομένων Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 7 7 Χρήστης

Εφαρμογές πολλών στρωμάτων (n-tier application servers) Πελάτης Web Browser Τελική HTML σελίδα Διαδίκτυο Τελική HTML σελίδα Επικοινωνία HTTP Σελίδα jsp επικοινωνεί με EJB Εξυπηρετητής Web Server Επικοινωνία Web Server ì ε Application Server Επεξεργασία Δεδομένων από EJB Εξυπηρετητής Εφαρμογών Application Server Επεξεργασία Δεδοì ένων Βάση Δεδομένων Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 8 Χρήστης 8

Server Side: Καταλληλότητα, Πλεονεκτήματα, Μειονεκτήματα Καταλληλότητα: Δυναμική / Παραμετρική εμφάνιση περιεχομένου Απαραίτητο όταν απαιτείται επικοινωνία (αλληλεπίδραση) µε τον Server Δυνατότητα ελέγχου των πελατών, π.χ. μετρητές επισκέψεων (hit counters), ελεγχόμενη πρόσβαση σε κάποιες σελίδες Πλεονεκτήματα: Η επεξεργασία μεταφέρεται στο server, χρησιμοποιείται η ισχύς του server O κώδικας είναι κρυφός Η εκτέλεση του κώδικα είναι ανεξάρτητη του browser: στέλνεται «καθαρό» HTML που εμφανίζεται πανομοιότυπο σε κάθε browser Η μοναδική λύση για πρόσβαση στο file system του server Μειονεκτήματα: Χρησιμοποιεί πολύτιμη επεξεργαστική ισχύ του server. Κλιμάκωση (scalability); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 9 9

Εφαρμογές πολλών στρωμάτων (n-tier application servers) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 10 10

HyperText Markup Language: HTML Οι οδηγίες της HTML δίνονται µε χρήση των ετικετών (tags). Οι ετικέτες είναι το τμήμα εκείνο του κειμένου που περικλείεται από τα σύμβολα μικρότερο (<) και μεγαλύτερο (>) και την εντολή μέσα στα σύμβολα αυτά που αποτελεί την οδηγία. Οι ετικέτες «ανοίγουν» και «κλείνουν». Π.χ.: <b>this text will be displayed as bold!</b> Ενα HTML αρχείο είναι ένα απλό αρχείο κειμένου (text file). Έτσι, δεν χρειάζεται ένα ειδικό επεξεργαστή κειμένου. Αρκεί ένας απλός επεξεργαστής κειμένου όπως είναι το NotePad ή το MS Word Υπάρχουν ωστόσο και ειδικά προγράμματα για τη γρήγορη και εύκολη συγγραφή HTML κώδικα (web authoring tools), όπως το Micromedia Dreamweaver (απαιτούν άδεια!) και άλλα τα οποία διατίθενται δωρεάν Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 11 11

Βασική δομή ενός HTML εγγράφου Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 12 12

Cascading Style Sheets Καθορίζουν το style, τη δομή και τη θέση των στοιχείων μέσα στο αρχείο Κάνουν εφικτό το διαχωρισμό της εμφάνισης των δεδομένων και των ίδιων των δεδομένων Σύνταξη selector {property: value; property2: value2} selector : html tag {body, p, h1, } property : το χαρακτηριστικό που θέλουμε να αλλάξουμε color, font-family, text-align Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 13 13

Τρόποι εισαγωγής style sheet 14 Inline styles Καθορίζει το style για συγκεκριμένα elements Χρήση του attribute style μέσα σε tag Μπορεί να καθορίσει πολλά properties Internal styles sheets Ορίζεται μέσα στο <head> με το tag <style> Επηρεάζει τα elements στα οποία αναφέρεται External style sheets Δημιουργία ξεχωριστού αρχείου css με το οποίο συνδέεται το html αρχείο Ιδανικό όταν το ίδιο style sheet εφαρμόζεται σε περισσότερα από ένα αντικείμενα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 14

Javascript Γλώσσα σεναρίου (script language) Αναπτύχθηκε από τη Netscape Τρέχει σε όλους τους browsers (cross-platform) Γράφεται απευθείας μέσα σε HTML έγγραφα µε ή χωρίς χρήση ειδικού λογισμικού (HTML authoring tools, script editors) Πλεονεκτήματα/Μειονεκτήματα client-side programming Αντίδραση/επεξεργασία στις κινήσεις του χρήστη (user actions) Επεξεργασία/έλεγχος δεδομένων εισόδου του χρήστη (user input) Δυναμική εμφάνιση (συγγραφή) HTML Βελτίωση ευχρηστίας, ευελιξίας πλοήγησης Εύκολη στην εκμάθηση/χρήση Όχι όμως πλήρης γλώσσα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 15 15

Χρήση της JavaScript Μικρά κομμάτια κώδικα σε ένα HTML αρχείο π.χ. εμφάνιση σειράς αριθμών (1, 2,, 100) Εμφάνιση «δυναμικού» περιεχομένου Αντιλαμβάνεται και αντιδρά σε γεγονότα π.χ. ο χρήστης επιλέγει ένα link Αλλάζει τα περιεχόμενα σε html elements Ελέγχει δεδομένα που δίνονται σε μία φόρμα πριν αυτή γίνει submit Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 16 16

DOM -Document Object Model Το DOM είναι μια πλατφόρμα και μια ανεξάρτητη από γλώσσα προγραμματισμού διεπαφή που επιτρέπει στα προγράμματα και τα scripts να έχουν πρόσβαση δυναμικά και να ενημερώνουν το περιεχόμενο, τη δομή, και το ύφος ενός εγγράφου. To HTML DOC αποτελείται από μία δεντρική δομή όπου στοιχεία ενσωματώνονται σε άλλα στοιχεία. Τα στοιχεία αυτά μπορούν να προσπελαστούν από τo DOM δέντρο. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 17 17

PHP 18 Υψηλή απόδοση: µε ένα φτηνό server μπορούν να εξυπηρετηθούν εκατομμύρια επισκέψεων καθημερινά. Συνεργάζεται εύκολα µε τους περισσότερους database servers (βάσεις δεδομένων) Σημαντικό για χτίσιμο πληροφοριακών συστημάτων (π.χ. Εφαρμογές ηλεκτρονικού εμπορίου) Ενσωματωμένες βιβλιοθήκες για συνήθεις web διαδικασίες: δυναμική δημιουργία εικόνων, αποστολή email, χειρισμός cookies Χαμηλό κόστος: δωρεάν Ευκολία μάθησης και χρήσης: η σύνταξή της βασίζεται σε άλλες γλώσσες (μοιάζει µε Java, C) Υποστηρίζεται από τους περισσότερους web servers σαν module (επιπρόσθετο δομικό στοιχείο) Μεταφερσιμότητα (portability): ο ίδιος κώδικας δουλεύει χωρίς αλλαγές και σε άλλο λειτουργικό σύστημα ιαθεσιμότητα του κώδικα προέλευσης (open source): μπορούν να πραγματοποιηθούν αλλαγές στη γλώσσα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 18

Επαναχρησιμοποίηση Κώδικα υνατότητα για επαναχρησιμοποίηση κώδικα από άλλα αρχεία (php, html, οποιοδήποτε άλλο) Συνήθως αρχεία.inc αλλά προσοχή! Ο πηγαίος κώδικας ενός.inc μπορεί να φανεί αν φορτωθεί απευθείας από browser -> καλύτερα να χρησιμοποιούμε.php ή «κρύψιµο» των.inc (αποθήκευση σε κατάλογο που δεν είναι δηµοσιευμένος require() & include() include()-> δεν υπολογίζεται αν η εντολή δεν εκτελεστεί Πλεονεκτήματα επαναχρησιμοποίησης κώδικα: Μικρότερο «κόστος» (όχι περιττή επανεγγραφή κώδικα) Αυξημένη αξιοπιστία (αν ο κώδικας δουλεύει κάπου, δουλεύει µε τον ίδιο τρόπο παντού) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 19 19

ιαφορά Get Post στις HTML φόρµες Get, Post: Μέθοδοι μεταφοράς δεδομένων μιας φόρμας από τον web client στον web server Post: Αποστολή δεδομένων φόρμας «διαφανώς» από το χρήστη Get:Τα στοιχεία της φόρμας μεταφέρονται ως τµήµα της URL, π.χ. http://www.uop.gr/~gkamas/grade.php?grade=4 Ερώτηση: πως μπορώ να στείλω δεδομένα μιας φόρμας προς επεξεργασία από ένα PHP script χωρίς να χρειαστεί να ανοίξω τη φόρμα; Καμία διαφορά ως προς την επεξεργασία των δεδομένων από το server-side script Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 20 20

Φόρμα $_GET[ ] Συλλέγει τις τιμές από τη φόρμα ως κείμενο Η πληροφορία που αποστέλλεται από τη φόρμα με τη μέθοδο GET είναι ορατή σε όλους (στο πεδίο διευθύνσεων). Θυμίζουμε ότι η GET περιορίζει την ποσότητα πληροφορίας που μπορεί να σταλεί $_POST[ ] Χρησιμοποιείται για να συλλεχθούν οι τιμές που έχουν σταλεί από μια φόρμα με την POST Η πληροφορία που στέλνεται από τη φόρμα με αυτή τη μέθοδο είναι αόρατη στον πελάτη. Η μέθοδος POST δεν έχει περιορισμούς ως προς το μέγεθος της πληροφορίας. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 21 21

Αρχιτεκτονική Web Βάσεων εδομένων 1. Αίτηση 2. Ο web server λαμβάνει αίτηση 3. Η PHP engine αρχίζει την ανάλυση του script, συνδέεται στον database server και στέλνει το ερώτημα 4. Ο database server επεξεργάζεται το ερώτημα και στέλνει πίσω τη πληροφορία 5. Μορφοποίηση των αποτελεσμάτων σε ΗΤΜL και επιστροφή 6. Ο web server επιστρέφει την HTML σελίδα στον browser Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 22 22

Τι είναι Servlet (SERVer applet) Τα Servlets είναι μικρά προγράμματα γραμμένα στη γλώσσα Java που λειτουργούν στον server και επεκτείνουν τις λειτουργίες ενός Web Server. Όπως και οι άλλες αντίστοιχες τεχνολογίες (CGIs, ASP, PHP,..), χρησιμοποιείται για την δημιουργία Web σελίδων που το περιεχόμενό τους δεν είναι στατικό αλλά μπορεί να εξαρτάται από τα δεδομένα που εισαγάγει ο χρήστη και χρειάζεται να ανακτηθεί από βάσεις δεδομένων ή από άλλα συστήματα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 23 23

Τι είναι Servlet (SERVer applet) Εκτελούνται σε ένα Web Server (Servlets: server-side πρόσωπο της Java Applets: client-side πρόσωπο της Java, δηλ. εκτελούνται σε Web Browsers) Τα Servlets είναι εγκατεστημένα σε Web Server, δέχονται δεδομένα µέσω του πρωτοκόλλου HTTP και απαντούν στέλνοντας στον Web Browser αρχεία τύπου HTML. Για να προγραμματίσουµε Servlets είναι απαραίτητο το JSDK (Java Servlet Development Kit) ή Servlets API (Application Programming Interface) που είναι ενσωματωμένο σε αρκετά εργαλεία προγρ/μού Java (π.χ. JDeveloper) Το Servlets API αποτελεί πλέον μέρος του JDK (v. 1.4) Τα Servlets υποστηρίζονται από (μπορούν να τρέξουν σε) όλους σχεδόν τους Web Servers, π.χ. Apache, Microsoft IIS, Java Web Server, κλπ. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 24 24

Η δύναμη των Servlet Είναι γραμμένα σε γλώσσα Java κατά συνέπεια είναι platform independent: Write once Serve Everywhere Εκμεταλλεύονται πλήρως το Java API, RMI, CORBA, Database Connectivity. Αποδοτικότητα & Αντοχή - Μένουν στην μνήμη μεταξύ διαδοχικών καλεσμάτων Κομψότητα (Εlegance), Object-Oriented, Clean Code, Modular, Simple Λειτουργούν µε το πρωτόκολλο ΗΤΤP Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 25 25

PHP vs. Servlets Τα servlets και τα PHP scripts αποτελούν εναλλακτικές για server-side προγραμματισμό. Τα servlets «φορτώνονται» µία φορά και όχι κάθε φορά που καλούνται, αντίθετα µε τα PHP scripts Τα servlets είναι τεχνολογία που βασίζεται σε μια πλήρη αντικειμενοστραφή γλώσσα (Java), η PHP είναι γλώσσα σεναρίου (script) Υπάρχει διαφορά στη λογική: η PHP μοιάζει περισσότερο µε την τεχνολογία JSP, ο PHP κώδικας είναι ενσωματωµένος σε HTML κώδικα, το στατικό HTML διακρίνεται από το HTML που παράγει δυναμικά η PHP. Οι servlets αποτελούν κλάσεις Java που όταν εκτελούνται παράγουν HTML κώδικα (στατικό & δυναµικό) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 26 26

PHP vs. Servlets Οι κλήσεις σε «έτοιμες» (built-in) συναρτήσεις της PHP (που περιλαμβάνονται στις βιβλιοθήκες της PHP) είναι συνήθως γρηγορότερες από κλήσεις σε συναρτήσεις των Servlets. Το αντίστροφο όμως ισχύει για τον επιπλέον κώδικα που γράφει ο προγραμματιστής PHP. H PHP προσφέρεται για γρήγορη ανάπτυξη κώδικα λόγω απλής σύνταξης Τα servlets προσφέρονται για μεγαλύτερης κλίμακας έργα λόγω της εκμετάλλευσης των πλούσιων βιβλιοθηκών αλλά και της αντικειμενοστραφούς (object-oriented) φύσης της Java. Με τους servlets είναι εύκολη η μετάβαση από µια Β σε άλλη (µε αλλαγή λίγων γραμμών κώδικα) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 27 27

Ο κύκλος ζωής του Servlet Κάθε servlet έχει τον ίδιο κύκλο ζωής: Ο server το κάνει load και το αρχικοποιεί: «τρέχει» η μέθοδος init() Το servlet δέχεται μηδέν ή και περισσότερα client requests: «τρέχουν» οι μέθοδοι service() ή doget()/dopost() Ο server το κάνει remove (ορισμένοι servers εκτελούν αυτό το βήµα µόνο όταν κάνουν shut down): «τρέχει» η μέθοδος destroy() Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 28 28

Ο κύκλος ζωής του Servlet Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 29 29

Τι είναι Servlet Java Server Pages (JSP) H τεχνολογία JavaServer Pages (JSP) είναι server-side τεχνολογία Βασίζεται στην τεχνολογία των Java Servlets Η κύρια διαφορά τους είναι πως ενώ ο κώδικας των Servlets είναι δοµηµένος σε κλάσεις που γράφονται, µεταγλωττίζονται και εκτελούνται όπως κάθε κλάση Java, οι JSP σελίδες αποτελούνται από στατικό HTML και δυναµικά παραγόµενο HTML περιεχόµενο τα οποία είναι διαχωρισµένα µε ειδικά tags Με απλά λόγια, η JSP τοποθετεί Java κώδικα µέσα σε HTML έγγραφα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 30 30

Τι είναι Servlet Java Server Pages (JSP) Μία JSP σελίδα έχει extension *.jsp (αυτό πληροφορεί τον web server ότι η σελίδα πρέπει να φορτωθεί από έναν JSP container για να διερµηνεύσει και να εκτελέσει τον JSP κώδικα Ο JSP container διερµηνεύει τα JSP tags και τα scriptlets, παράγει το δυναµικό περιεχόµενο και το στέλνει πίσω στον client ως HTML ή XML σελίδα. <HTML> <BODY> Hello! The time is now <%= new java.util.date() %> </BODY> </HTML> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 31 31

JSP: Πως δουλεύει Βήματα που λαμβάνουν χώρα όποτε ζητείται μια JSP σελίδα: 1. Ο web browser κάνει ένα request µέσω Internet για μια *.jsp σελίδα 2. Το request φτάνει στον Web server 3. Ο Web server αναγνωρίζει ότι ζητήθηκε ένα ειδικό αρχείο (*.jsp), και περνάει το JSP αρχείο στο JSP Servlet Engine (application server) 4. Αν το JSP αρχείο ζητείται για πρώτη φορά, τότε διερμηνεύεται (parsing), διαφορετικά η διαδικασία προχωράει στο βήμα 7 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 32 32

JSP: Πως δουλεύει 5. Στη συνέχεια παράγεται ένας Servlet από το JSP αρχείο. Όλο το στατικό HTML που περιέχεται στη JSP σελίδα μετατρέπεται σε out.println εντολές 6. Ο πηγαίος κώδικας του Servlet που προκύπτει μεταγλωττίζεται σε ένα class αρχείο 7. Ο Servlet εκτελείται, καλούνται οι κατάλληλες μέθοδοί 8. O HTML κώδικας που προκύπτει από το Servlet output στέλνεται στον web browser 9. O HTML κώδικας εμφανίζεται στον web browser του χρήστη Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 33 33

Συμπεράσματα: JSP vs Servlets Η JSP δεν προσφέρει κάτι που δεν μπορούμε να επιτύχουμε µε Java Servlets, άλλωστε βασίζεται στην τεχνολογία των Servlets H διαφορά έγκειται κυρίως στη διαφορετική προσέγγιση, καθώς στους Servlets ή παραγωγή στατικού ή δυναμικού HTML είναι ενσωματωμένη σε κώδικα Java Αντίθετα, στη JSP το στατικό HTML περιεχόμενο είναι ξεκάθαρα διαχωρισμένο από το δυναμικό HTML που παράγεται από JSP (Java) κώδικα. Αυτό συνιστά έναν πιο «καθαρό» σχεδιασμό καθώς διαχωρίζει τον απλό HTML κώδικα από την προγραμματιστική λογική και αφήνει τον web designer να επικεντρωθεί στην παρουσίαση και μορφοποίηση του περιεχομένου (HTML) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 34 34

Πλεονεκτήματα των JSPs Είναι ευκολότερη και ταχύτερη η ανάπτυξή τους, κυρίως για μικρά projects Με τους servlets είναι δυσκολότερη η παραγωγή στατικού HTML κώδικα, χρειάζονται πολλές out.println εντολές, π.χ. out.println("<body>"); out.println("<h2>hello " + user + "</h2>"); ίνουν έμφαση στην μορφή και παρουσίαση της σελίδας (HTML) και αφήνουν την προγραμματιστική λογική σε Java κώδικα Αν έχουμε έτοιμο JSP κώδικα, μπορεί εύκολα να ενσωματωθεί σε HTML σελίδες από web authors που δε γνωρίζουν προγραμματισµό Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 35 35

Μειονεκτήματα των JSPs Εύρεση και διόρθωση λαθών (debugging) είναι πολύπλοκη Μεγάλες ποσότητες ενσωματωμένου κώδικα σε scriplets μπορεί να οδηγήσουν σε σελίδες που είναι δύσκολο να συντηρηθούν Η απόδοση JSPs είναι κατώτερη των servlets (το compilation 200 JSPs θα δημιουργήσει 200 servlets). Αν χρησιμοποιούσαµε τεχνολογία Servlets θα μπορούσαμε να ενσωματώσουμε περισσότερη λειτουργικότητα σε λιγότερους servlets. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 36 36

Τι είναι η XML; EXtensible Markup Language Υποσύνολο της SGML (Standard Generalized Markup Language) Μετα-γλώσσα κατάλληλη για τον ορισμό άλλων γλωσσών Σχεδιάστηκε για τον ορισμό δεδομένων Οι δομές δεδομένων ανεξάρτητες από την πλατφόρμα Εύκολη η αυτόματη επεξεργασία των δεδομένων Ο χρήστης μπορεί να ορίσει τα δικά του tags Δεν περιγράφει τον τρόπο εμφάνισης δεδομένων! Ένα XSL αρχείο ορίζει την εμφάνιση ενός XML αρχείου Ένα DTD (Document Type Definition) ή ένα XML Schema ορίζει τη σύνταξη ενός XML αρχείου Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 37 37

Γιατί άλλη μία γλώσσα? Η XML χρησιμοποιείται για την ανταλλαγή δεδομένων Επιτρέπει σαφή ορισμό των δεδομένων Όλοι οι συμμετέχοντες «μεταφράζουν» με τον ίδιο τρόπο τα δεδομένα Αντικαθιστά το EDI (Electronic Data Interchange) Χρησιμοποιεί το διαδίκτυο για την ανταλλαγή δεδομένων Είναι πιο ευέλικτη Επιτρέπει τον ορισμό άλλων γλωσσών WSDL Web Services Description Language Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 38 38

XML & HTML Η XML δεν έχει σκοπό να αντικαταστήσει την HTML, αλλά να την συμπληρώσει Η HTML σχεδιάστηκε για να παρουσιάζει δεδομένα δίνοντας έμφαση στο πώς αυτά φαίνονται Η XML σχεδιάστηκε για να περιγράφει δεδομένα δίνοντας έμφαση στο τι είδος δεδομένα είναι Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 39 39

Web Services (1/2) Επιτρέπουν ένα πρόγραμμα σε έναν υπολογιστή να καλέσει μια λειτουργία σε έναν άλλο υπολογιστή χωρίς να δίνουν σημασία στα ακόλουθα: Λειτουργικό σύστημα Γλώσσα προγραμματισμού Κατασκευαστής Τοποθεσία στο Διαδίκτυο Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 40 40

Web Services (2/2) Ανεξάρτητες από την αρχιτεκτονική Απλές Schema descriptions Discovery standards Η δημιουργία Web Services είναι εύκολη, γρήγορη και απλή Το data schema είναι εύκολα αναγνώσιμο από τον άνθρωπο Χρησιμοποιείται οποιαδήποτε προγραμματιστική γλώσσα Interoperable Όλες οι Web Services μιλούν με τα ίδια πρότυπα και κατά συνέπεια μπορούν να επικοινωνούν μεταξύ τους Microsoft, IBM και Sun έχουν συμφωνήσει και χρησιμοποιούν τα ίδια πρότυπα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 41 41

Αρχιτεκτονική Web Services (1/2) Architecture components Service: η υλοποίηση μίας web service Service description: περιέχει τις πληροφορίες της διασύνδεσης και της υλοποίησης της υπηρεσίας Roles Service Provider: η πλατφόρμα που φιλοξενεί την υπηρεσία Service Requestor: η εφαρμογή που καλεί μια υπηρεσία Discovery Agency: ένα σύνολο από περιγραφές υπηρεσιών στο οποίο οι services providers δημοσιεύουν τις περιγραφές των υπηρεσιών τους Αλληλεπίδραση ανάμεσα στου παραπάνω ρόλους Publish Find Interact Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 42 42

Αρχιτεκτονική Web Services (2/2) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 43 43

Web Services Stack Transport layer HTTP, FTP, SMTP Packing layer SOAP (Simple Object Access Protocol) Επιτρέπει στις εφαρμογές να ανταλλάσσουν πληροφορία μέσω του HTTP Description layer WSDL (Web Services Description Language) Χρησιμοποιείται για την περιγραφή των Web Services και για το πώς να αποκτηθεί η πρόσβαση σε αυτές Discovery layer UDDI (Universal Description Discovery and Integration) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 44 44

Συμμετρική και Ασύμμετρη κρυπτογραφία Συμμετρική (Κλασική) Κρυπτογραφία Το ίδιο κλειδί χρησιμοποιείται για την κρυπτογράφηση και για την αποκρυπτογράφηση δεδομένων Τα συναλλασσόμενα μέρη πρέπει να συμφωνήσουν εκ των προτέρων για το κλειδί που θα χρησιμοποιηθεί Η προστασία του κλειδιού αποτελεί κρίσιμο πρόβλημα Ασύμμετρη (Δημόσιου Κλειδιού) Κρυπτογραφία Χρησιμοποιούνται δύο διαφορετικά κλειδιά, ένα ιδιωτικό (μυστικό) και ένα δημόσιο, τα οποία σχετίζονται μεταξύ τους με μονόδρομες συναρτήσεις (one-way functions) Τα δεδομένα που κρυπτογραφούνται με το ένα κλειδί, αποκρυπτογραφούνται αποκλειστικά με το άλλο Μόνο μία φυσική οντότητα γνωρίζει το ιδιωτικό κλειδί, ενώ το δημόσιο κλειδί είναι διαθέσιμο στο κοινό. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 45 45

Υβριδική Κρυπτογραφία Η ασύμμετρη κρυπτογραφία είναι μη αποτελεσματική για την κρυπτογράφηση μεγάλου όγκου δεδομένων, αντίθετα από τη συμμετρική. Συνηθισμένη χρήση της ασύμμετρης κρυπτογραφίας είναι η αποστολή ενός συμμετρικού κρυπτογραφικού κλειδιού μέσω ενός ανασφαλούς καναλιού. Ένα Κέντρο Διανομής Κλειδιών διανέμει με ασφάλεια στα συναλλασσόμενα μέρη ένα συμμετρικό κλειδί, κρυπτογραφημένο με τα δημόσια κλειδιά των εμπλεκομένων. Οι συναλλασσόμενοι αποκρυπτογραφούν το κλειδί και ξεκινούν εμπιστευτικές συνόδους μεταξύ τους, χρησιμοποιώντας συμμετρικούς αλγόριθμους Ο συνδυασμός των δύο τεχνολογιών ονομάζεται Υβριδική Κρυπτογραφία. Π.χ. πρωτόκολλο SSL. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 46 46

Πλεονεκτήματα της Κρυπτογραφίας Δημόσιου Κλειδιού Τα δημόσια κλειδιά δεν χρήζουν προστασίας Τα ιδιωτικά κλειδιά δεν γνωρίζονται η διανέμονται σε τρίτους σε καμία περίπτωση Για να σταλεί ένα εμπιστευτικό μήνυμα, χρησιμοποιείται το δημόσιο κλειδί του παραλήπτη. Μόνο το ιδιωτικό κλειδί που κατέχει ο παραλήπτης μπορεί να το αποκρυπτογραφήσει Για να υπογραφεί ένα μήνυμα χρησιμοποιείται το ιδιωτικό κλειδί του αποστολέα. Οποιοσδήποτε τρίτος μπορεί να επαληθεύσει την υπογραφή με το δημόσιο κλειδί του αποστολέα Ελαχιστοποίηση της διαχείρισης κλειδιών Δεν χρειάζεται κέντρο διανομής κλειδιών. Μεγάλος κύκλος ζωής των κλειδιών Δίνουν τη δυνατότητα επαλήθευσης της ακεραιότητας δεδομένων Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 47 47

Προβλήματα της Κρυπτογραφίας Δημόσιου Κλειδιού Πως επαληθεύεται η ταυτότητα του κατόχου ενός ζεύγους κλειδιών; Πως διασφαλίζεται η ιδιωτικότητα και η ακεραιότητα των κλειδιών κατά τη δημιουργία και τη χρήση τους; Πως διανέμονται στο κοινό τα δημόσια κλειδιά έτσι ώστε να διασφαλίζεται η σύνδεση τους με μία φυσική οντότητα; Πως τελειώνει ο κύκλος ζωής τους όταν αυτό κριθεί αναγκαίο; Διαφαίνεται η ανάγκη ύπαρξης μίας Έμπιστης Τρίτης Οντότητας που διαχειρίζεται Ψηφιακά Πιστοποιητικά. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 48 48

Ψηφιακά Πιστοποιητικά Βεβαιώνουν την ακεραιότητα του Δημόσιου κλειδιού. Βεβαιώνουν τη σύνδεση ενός δημόσιου κλειδιού με ένα άτομο ή οργανισμό μέσω της Έμπιστης Τρίτης Οντότητας (Trusted Third Party). Ανάλογα με την Αρχή Πιστοποίησης το πιστοποιητικό έχει και διαφορετικό εύρος αναγνώρισης. Συνήθως υπάρχει ιεραρχία πιστοποίησης που ορίζεται από το X.509. Από τι αποτελείται ένα ψηφιακό πιστοποιητικό: Κάποια πληροφοριακά στοιχεία για το χρήστη του Το δημόσιο κλειδί του χρήστη Το όνομα μιας Αρχής Πιστοποίησης Την ψηφιακή υπογραφή της Αρχής Πιστοποίησης Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 49 49

Χαρακτήρας θεμάτων γραπτής εξέτασης Θεωρητικές ερωτήσεις που θα εξετάζουν την κατανόηση των θεμάτων τα οποία παρουσιάστηκαν Πιθανόν κάποιες ερωτήσεις πολλαπλής επιλογής Έτοιμος κώδικας που θα πρέπει να εξηγήσετε τη λειτουργία του (πιθανόν να σας ζητηθεί να ζωγραφίσετε το αποτέλεσμα της εκτέλεσής του) Έτοιμος κώδικας που θα πρέπει να εξηγήσετε τυχών λανθασμένα σημεία Συγγραφή κώδικα µε βάση κάποιες προδιαγραφές που θα σας δοθούν (Δεν χρειάζεται να αποστηθίσετε στοιχεία σχετικά µε τη σύνταξη καμίας από τις τεχνολογίες αλλά θα σας δοθεί η σύνταξη της τεχνολογίας που θα ζητείται να γράψετε κώδικα) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 50 50

Παράδειγμα XML: XML <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> <catalog> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <country>usa</country> <company>columbia</company> <price>10.90</price> <year>1985</year> </cd> </catalog> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 51 51

Παράδειγμα XML: XSLT <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h2>my CD Collection</h2> <table > <tr><th>title</th> <th>artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 52 52

Παράδειγμα XML: XHTML <html> <body> <h2>my CD Collection</h2> <table > <tr><th>title</th> <th>artist</th> </tr> <tr> <td>empire Burlesque</td> <td>bob Dylan</td> </tr> </table> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 53 53

Παράδειγμα php <HTML><HEAD><TITLE>Sum calculator...</title> </HEAD> <BODY> <FORM name=form1 action="number_sum.php" method=get> <P>Number 1: <INPUT name=number1> </P> <P>Number2: <INPUT name=number2> </P> <P><INPUT type=submit value=submit name=submit> </P></FORM></BODY></HTML> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 54 54

Παράδειγμα php <html> <head> <title>calculated sum...</title> </head> <body> <? function AddNumbers($nu1,$nu2) { $result=$nu1+$nu2; } AddNumbers($_POST[number1], $_POST[number2]); echo "<H1>". $_POST[number1]. " + ". $_POST[number2]. " = ". $result. "</H1>";?> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 55 55

Παράδειγμα php <html> <head> <title>calculated sum...</title> </head> <body> <? function AddNumbers($nu1,$nu2) { $result=$nu1+$nu2; return $result; } $result = AddNumbers($_GET[number1], $_GET[number2]); echo "<H1>". $_GET[number1]. " + ". $_GET[number2]. " = ". $result. "</H1>";?> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 56 56