ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. WSDLBook:



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

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

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

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

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

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

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

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

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

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

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS)

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

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

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Πίνακας Εικόνων. 22/04/2014 Έκδοση 3.0.1

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

6 Εισαγωγή στο Wordpress 3.x

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

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

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

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

«Σημασιολογική Αναζήτηση Υπηρεσιών Ιστού βάση των δυνατοτήτων τους» Semantic Matching of Web Services Capabilities

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

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

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

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

Διπλωματική Εργασία. Μέλλιος Θωμάς, Πετρίδης Κοσμάς. Επιβλέπων Καθηγητής: Πρωτόγερος Νικόλαος

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών)

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

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

website guide B2B e-shop

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

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

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

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

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

Πλατφόρμα Συνεργατικότητας (Collaboration Platform) ΧΡΗΣΗΣ. MRB Hellas System Συμβουλευτική Α.Ε

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών

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

Μεταδεδομένα στο Ψηφιακό περιβάλλον

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

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

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

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων

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

Μια καλή επιλογή θα ήταν (χωρίζοντας τις λέξεις με παύλα -) ή

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

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

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

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

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

ΜΑΘΗΜΑ 4 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA


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

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

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

Ημερομηνία Παράδοσης: 4/4/2013

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

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

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

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

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1

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

ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΟΙΚΗΤΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ. Οδηγίες χρήσης

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Ιστορικό. *Ομάδα ανάπτυξης: Γρεασίδης Θοδωρής: 265 Κουτσαυτίκης Δημήτρης: 258 Μπούρα Βάγια: 257 Πετράκη Ελένη: 266 Φουντά Σταυρούλα: 256

Εθνικό Κέντρο Τεκμηρίωσης ΕΙΕ. Copyright 2014 Εθνικό Κέντρο Τεκμηρίωσης Ι EIE

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

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

Περιεχόμενα. Visio / White paper 1

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

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

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

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ WSDLBook: Web 2.0 εφαρμογή για WSDL Περιγραφές Υπηρεσιών Ιστού (Web Services) Διπλωματική Εργασία του Γεωργακάκη Νικολάου (ΑΕΜ: 230) Επιβλέπων Καθηγητής: Βασιλειάδης Νικόλαος ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΛΙΟΣ 2010 -i-

Πρόλογος Η παρούσα διπλωματική εργασία έχει σαν στόχο την ανάπτυξη μιας διαδικτυακής εφαρμογής βασισμένη στο Web 2.0 μοντέλο, ικανή να παρέχει κάποιες ενέργειες όπως η αναζήτηση, ο σχολιασμός, η αποθήκευση, η συλλογή προτιμήσεων από χρήστες κλπ των περιγραφών WSDL των υπηρεσιών ιστού. Η εφαρμογή ουσιαστικά παρέχει στους χρήστες κάποιες βασικές λειτουργίες, με απώτερο σκοπό την ανάπτυξη ενός εύχρηστου καταλόγου περιγραφών υπηρεσιών ι- στού, όπου οι χρήστες μπορούν να απευθύνονται για να καλύψουν τις προγραμματιστικές τους ανάγκες. Έχοντας ολοκληρώσει λοιπόν την διπλωματική μου εργασία, θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή Βασιλειάδη Νικόλαο για την ευκαιρία που μου έδωσαν να ασχοληθώ με ένα τόσο σημαντικό αλλά και ενδιαφέρον θέμα. Επίσης θα ήθελα να ευχαριστήσω ιδιαίτερα τον διδάκτορα Γιώργο Μεδίτσκο για την πολύ σημαντική βοήθεια και καθοδήγησή του αλλά και την πολύ καλή συνεργασία που είχαμε κατά την διάρκεια της εκπόνησης της διπλωματικής μου εργασίας. Γεωργακάκης Νικόλαος Φεβρουάριος 2010 -ii-

Περιεχόμενα ΠΡΟΛΟΓΟΣ... II ΠΕΡΙΕΧΟΜΕΝΑ...III 1 ΕΙΣΑΓΩΓΗ... 7 1.1 ΓΕΝΙΚΑ... 7 1.2 ΤΙ ΕΙΝΑΙ ΜΙΑ ΥΠΗΡΕΣΙΑ ΙΣΤΟΥ... 8 1.3 ΤΑ ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΩΝ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ... 9 1.4 ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝΤΑΙ ΟΙ ΥΠΗΡΕΣΙΕΣ ΙΣΤΟΥ... 10 1.5 ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ... 10 1.6 ΣΚΟΠΟΣ ΤΗΣ ΕΡΓΑΣΙΑΣ... 11 2 ΒΑΣΙΚΕΣ ΈΝΝΟΙΕΣ... 13 2.1 ΤΕΧΝΟΛΟΓΙΕΣ ΠΑΝΩ ΣΤΙΣ ΟΠΟΙΕΣ ΒΑΣΙΖΟΝΤΑΙ ΟΙ ΥΠΗΡΕΣΙΕΣ ΙΣΤΟΥ... 13 2.2 ΤΟ ΠΡΩΤΟΚΟΛΛΟ XML... 14 2.3 ΤΟ ΠΡΩΤΟΚΟΛΛΟ SOAP... 16 2.4 Η ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ WSDL... 20 2.4.1 Πώς ορίζεται το WSDL... 20 2.4.2 Ποια σήμανση χρησιμοποιείται στα WSDL αρχεία... 20 2.4.3 Οι ορισμοί της WSDL... 21 2.4.4 Παράδειγμα ενός WSDL... 22 2.5 Ο ΜΗΧΑΝΙΣΜΟΣ ΑΝΑΖΗΤΗΣΗΣ UDDI... 26 2.5.1 Πως ορίζεται το UDDI... 26 2.5.2 Η δομή του καταλόγου UDDI... 27 2.5.3 Τα πλεονεκτήματα της χρήσης του UDDI... 29 2.5.4 Πώς μπορεί να χρησιμοποιηθεί ο μηχανισμός UDDI... 29 2.5.5 Η υποστήριξη του καταλόγου UDDI... 31 3 ΣΥΣΤΗΜΑΤΑ ΑΝΑΖΗΤΗΣΗΣ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ... 33 3.1 TO ΣΥΣΤΗΜΑ OPOSSUM... 33 3.2 ΤΟ ΣΥΣΤΗΜΑ SEEKDA... 35 -iii-

3.3 ΤΟ ΣΥΣΤΗΜΑ XIGNITE... 37 4 Η ΕΦΑΡΜΟΓΗ WSDL BOOK... 39 4.1 ΓΕΝΙΚΑ... 39 4.2 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ... 40 4.2.1 Γενικά... 40 4.2.2 Εισαγωγή στο WSDL Book... 42 4.3 ΤΟ ΣΧΗΜΑ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ... 43 4.4 ΧΡΗΣΤΕΣ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ... 45 4.4.1 Εγγραφή χρήστη στο σύστημα... 45 4.4.2 Εισαγωγή ήδη εγγεγραμμένου χρήστη στο σύστημα... 46 4.5 ΕΙΣΑΓΩΓΗ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ ΣΤΟ ΣΥΣΤΗΜΑ... 48 4.5.1 Η ανάλυση ενός αρχείου WSDL... 48 4.5.2 Εισαγωγή ενός αρχείου WSDL στην εφαρμογή... 51 4.6 ΑΝΑΖΗΤΗΣΗ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ... 55 4.6.1 Η Αναζήτηση Πλήρους Κειμένου MySQL (MySQL Fulltext Search)... 55 4.6.2 Η διαδικασία του Φιλτραρίσματος του κειμένου εισόδου... 56 4.6.3 Η μέθοδος υπολογισμού Βαρών... 58 4.7 ΑΠΛΗ ΑΝΑΖΗΤΗΣΗ... 59 4.7.1 Πώς γίνεται η απλή αναζήτηση... 59 4.7.2 Παράδειγμα απλής αναζήτησης στην εφαρμογή... 60 4.8 ΣΥΝΘΕΤΗ ΑΝΑΖΗΤΗΣΗ... 62 4.8.1 Πως γίνεται η σύνθετη αναζήτηση... 62 4.8.2 Παράδειγμα σύνθετης αναζήτησης στην εφαρμογή... 64 4.9 ΠΕΡΙΗΓΗΣΗ ΣΤΙΣ ΥΠΗΡΕΣΙΕΣ ΙΣΤΟΥ... 65 4.10 ΠΡΟΣΘΕΤΕΣ ΕΝΕΡΓΕΙΕΣ ΤΟΥ ΔΙΑΧΕΙΡΙΣΤΗ... 67 4.10.1 Επεξεργασία μιας Υπηρεσίας Ιστού... 69 4.10.2 Διαγραφή μιας Υπηρεσίας ιστού... 70 5 ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΚΑΙ ΑΡΧΙΚΟΠΟΙΗΣΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ.. 71 5.1 ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΕΡΓΑΣΙΑΣ JAVA... 71 5.1.1 Εγκατάσταση... 71 -iv-

5.1.2 Ενημέρωση της Μεταβλητής Περιβάλλοντος (Environment Variable)... 71 5.2 ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ ΔΙΑΚΟΜΙΣΤΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ MYSQL... 72 5.3 ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ APACHE TOMCAT... 73 6 ΣΥΜΠΕΡΑΣΜΑΤΑ... 75 ΒΙΒΛΙΟΓΡΑΦΙΑ... 77 ΠΑΡΑΡΤΗΜΑ... 79 ΓΕΝΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ... 79 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ... 80 -v-

1 Εισαγωγή 1.1 Γενικά Τα τελευταία χρόνια, στον τομέα της τεχνολογίας, παρατηρείται μια αξιόλογη αύξηση των υπολογιστικών δυνατοτήτων τόσο των προσωπικών υπολογιστών όσο και των φορητών συσκευών. Το γεγονός αυτό, σε συνδυασμό με την δυνατότητα ασύρματης δικτύωσης που έχουν οι περισσότερες από αυτές τις συσκευές σήμερα, έχει δώσει μεγάλη ώθηση στον τομέα των εφαρμογών υπηρεσιών ιστού. Έτσι, βλέπουμε καθημερινά πως πολλές φορητές συσκευές, μπορούν πλέον να παρέχουν υπηρεσίες όπως για παράδειγμα υπηρεσίες με βάση τη γεωγραφική θέση της συσκευής, πληροφορίες σχετικά με τη θερμοκρασία, τον άνεμο και γενικά τα καιρικά φαινόμενα που επικρατούν σε μια περιοχή κ.α.π. Η τεχνολογία των υπηρεσιών ιστού (web services) αποτελεί μια πολλά υποσχόμενη τεχνολογία για την ανάπτυξη εφαρμογών σε ένα κατανεμημένο και πλήρως ετερογενές περιβάλλον. Η ανάπτυξη της νέας αυτής τεχνολογίας συμπίπτει αρκετά, τόσο σε επίπεδο υλικών (hardware), όσο και σε επίπεδο εφαρμογών (software), με την ανάπτυξη που σημειώνεται εδώ και αρκετό καιρό στο χώρο των ασύρματων και κινητών συσκευών. Παρατηρώντας όλα τα πλεονεκτήματα που συνοδεύουν την τεχνολογία των υπηρεσιών ιστού και αναφέρονται παρακάτω, διαπιστώνουμε ότι η χρήση τους είναι ιδιαίτερα ωφέλιμη. Έτσι υπάρχει έντονο ενδιαφέρον τα τελευταία χρόνια στην προσαρμογή τους στις κινητές συσκευές καθιστώντας τες ικανές όχι μόνο να αξιοποιούν αλλά και να παρέχουν τέτοιου είδους υπηρεσίες μέσα από τα ασύρματα δίκτυα. Μια υπηρεσία ιστού είναι μια τεχνολογία [4] που επιτρέπει στις εφαρμογές να επικοινωνούν μεταξύ τους ανεξαρτήτως πλατφόρμας και γλώσσας προγραμματισμού. Η επικοινωνία αυτή γίνεται με αποστολή/λήψη ενός ή περισσοτέρων μηνυμάτων μεταξύ των εφαρμογών αυτών. Ουσιαστικά δηλαδή, μια υπηρεσία ιστού μια διεπαφή λογισμικού (software interface) που περιγράφει μια συλλογή από λειτουργίες οι οποίες μπορούν να προσεγγιστούν από το δίκτυο μέσω πρότυπων μηνυμάτων XML. -7-

Κάθε τέτοια υπηρεσία χρησιμοποιεί πρότυπα βασισμένα στη γλώσσα XML για να περιγράψει μία λειτουργία (operation) προς εκτέλεση και τα δεδομένα προς ανταλλαγή με κάποια άλλη εφαρμογή. Τα πρότυπα αυτά συνθέτουν μια γλώσσα που ονομάζεται Γλώσσα Περιγραφής Υπηρεσιών Ιστού (WSDL, Web Services Description Language), και είναι ουσιαστικά κάποια XML αρχεία που περιγράφουν μια ή περισσότερες υπηρεσίες ιστού. Μια ομάδα από υπηρεσίες ιστού οι οποίες αλληλεπιδρούν μεταξύ τους καθορίζει μια εφαρμογή υπηρεσιών ιστού. 1.2 Τι είναι μια Υπηρεσία Ιστού Η διεθνής συνεργασία του Παγκόσμιου Ιστού (W3C World Wide Web Consortium), είναι ο παγκόσμιος οργανισμός που καθορίζει τα πρότυπα και τις λειτουργίες πάνω στις οποίες βασίζεται ο Παγκόσμιος Ιστός (World Wide Web). Σύμφωνα με τον οργανισμό αυτό, ο ορισμός μιας Υπηρεσίας Ιστού [4] είναι «ένα σύστημα λογισμικού που είναι σχεδιασμένο να υποστηρίζει την ενδοτμηματική αλληλεπίδραση (interoperable interaction) μηχανής με μηχανή μέσω ενός δικτύου». Είναι δηλαδή ένα σύστημα που επιτρέπει κάποιες εφαρμογές (ή γενικότερα κάποια υπολογιστικά συστήματα) να επικοινωνούν μεταξύ τους ανεξαρτήτως πλατφόρμας και γλώσσας προγραμματισμού. Οι υπηρεσίες ιστού επιτρέπουν ένα πρόγραμμα σε έναν υπολογιστή να καλέσει μία λειτουργία σε έναν άλλο υπολογιστή χωρίς να δίνουν σημασία στα ακόλουθα: Λειτουργικό σύστημα Γλώσσα προγραμματισμού Κατασκευαστής Τοποθεσία στο διαδίκτυο Ένας άλλος ορισμός είναι αυτός της εταιρίας IBM [6]. Σύμφωνα με τον ορισμό αυτό, οι υπηρεσίες ιστού είναι μια νέα γενιά διαδικτυακών εφαρμογών. Είναι αυτόπεριγραφικές, ανεξάρτητες, αρθρωτές εφαρμογές που μπορούν να δημοσιευτούν, να εντοπιστούν και να κληθούν μέσα από ένα δίκτυο. Οι υπηρεσίες ιστού εκτελούν συναρτήσεις, που μπορεί να είναι οτιδήποτε από ένα απλό αίτημα έως μια περίπλοκη επιχει- -8-

ρησιακή διαδικασία. Μόλις μια υπηρεσία ιστού αναπτυχθεί, άλλες εφαρμογές (και άλλες υπηρεσίες ιστού) μπορούν να αναζητήσουν και να την καλέσουν. Η διεπαφή (interface) μιας υπηρεσίας ιστού περιγράφεται από μια γλώσσα ικανή να επεξεργαστεί από μια μηχανή, την Γλώσσα Περιγραφής Υπηρεσιών Ιστού (WSDL). Τα συστήματα που επικοινωνούν με μια υπηρεσία ιστού, χρησιμοποιούν το πρωτόκολλο επικοινωνίας HTTP (πρωτόκολλο μεταφοράς υπερκειμένου - Hypertext Transfer Protocol), μέσα από το οποίο λαμβάνονται και στέλνονται μηνύματα. Τα μηνύματα αυτά βασίζονται στο πρωτόκολλο SOAP (πρωτόκολλο απλής πρόσβασης αντικειμένων - Simple Object Access Protocol). Οι υπηρεσίες ιστού αποτελούν μια σχετικά καινούρια τεχνολογία ολοένα αναπτυσσόμενη. Συνήθως υλοποιούνται με τη μορφή Διεπαφής Εφαρμογών Προγραμματισμού σε κάποιον εξυπηρετητή. Στη διεπαφή αυτή μπορούν να έχουν πρόσβαση οι χρήστες μέσω ενός δικτύου που συνήθως είναι το ίντερνετ, χρησιμοποιώντας συνήθως κάποιον περιηγητή (web browser). 1.3 Τα πλεονεκτήματα των Υπηρεσιών Ιστού Μερικά από τα πλεονεκτήματα [5] και [6] των υπηρεσιών ιστού είναι τα παρακάτω : Η Διαλειτουργικότητα. Μια υπηρεσία ιστού παρέχει ανεξαρτησία τόσο από λειτουργικό σύστημα όσο και από το υλικό (hardware). Οποιοδήποτε πρόγραìμα που συμβαδίζει με αυτή τη τεχνολογία μπορεί πολύ εύκολα να προσπελάσει μία τέτοια υπηρεσία. Η Ενσωμάτωση. Σε ένα υπάρχον λογισμικό σύστημα που λειτουργεί μέσα στον παγκόσμιο ιστό, η δημιουργία μιας υπηρεσίας ιστού δεν απαιτεί αλλαγές στον μηχανισμό του συστήματος. Η Διαθεσιμότητα και η Δημοσίευση. Οι πληροφορίες για τις υπηρεσίες ιστού δημοσιεύονται οπότε η εύρεση και η χρήση τους μπορεί να είναι ταχύτατες. Η Επέκταση. Μια υπάρχουσα υπηρεσία ιστού είναι δυνατό να ανανεωθεί με εύκολο τρόπο παρέχοντας έτσι επιπρόσθετες υπηρεσίες στους χρήστες του. Το μικρό κόστος δημιουργίας και χρήσης. Εφόσον σε ένα λογισμικό σύστημα υπάρχει ήδη κάποια διαδικασία που χρειάζεται να επεκταθεί σε δικτυακή (online) υπηρεσία, η δημιουργία μιας υπηρεσίας ιστού κοστίζει ελάχιστα. Επίσης το κόστος ενσωμάτωσης μιας υπηρεσίας ιστού σε μια ιστοσελίδα ή σε δικτυακή -9-

εφαρμογή είναι πάρα πολύ μικρό. Ακόμα και στις περιπτώσεις που η χρήση κάποιας υπηρεσίας ιστού γίνεται με ενοικίαση σίγουρα το συνολικό κόστος της χρήσης είναι αρκετά πιο μικρό από το κόστος δημιουργίας της υπηρεσίας αυτής. Χρήση λογισμικών συστημάτων. Όλα τα λογισμικά συστήματα και ειδικότερα οι ιστοσελίδες που χρησιμοποιούν έτοιμες υπηρεσίες γίνονται πιο λειτουργικά και πιο φιλικά αφού παρέχουν περισσότερες υπηρεσίες στους χρήστες. 1.4 Που χρησιμοποιούνται οι Υπηρεσίες Ιστού Τα τελευταία χρόνια η χρήση των υπηρεσιών ιστού αυξάνεται συνεχώς. Η χρήση μιας ή περισσότερων υπηρεσιών ιστού μπορεί να εξυπηρετεί : Κλήση/ενοποίηση λογισμικών λειτουργιών πάνω από ένα δίκτυο, όπου συνήθως απαιτείται η ταυτοποίηση του χρήστη για αγορά (ή άδεια χρήσης) ενός λογισμικού. Β2Β (Business To Business) διεπιχειρησιακές συνεργασίες πάνω από ένα δίκτυο. Web Αποστολή αιτήσεων για υπηρεσίες μέσω HTTP πρωτοκόλλου όπως για παράδειγμα η αίτηση σε μια υπηρεσία ιστού για την πρόγνωση του καιρού στην πόλη της Θεσσαλονίκης την αυριανή μέρα. Υπάρχουν και άλλες υπηρεσίες που ο στόχος τους είναι παρόμοιος με αυτό των υ- πηρεσιών ιστού, όπως Corba, DCOM της Microsoft κ.α. που όμως δεν τυγχάνουν της δημοτικότητας των υπηρεσιών ιστού λόγω των προβλημάτων διαλειτουργικότητας, της περιορισμένης υποστήριξης (άρα και γνώσης ανάπτυξης) αλλά και του προβλήματος έλλειψης κάποιας προτυποποίησης που παρουσιάζουν. 1.5 Προσδιορισμός του προβλήματος Η ταχεία εξέλιξη των υπηρεσιών ιστού στο διαδίκτυο δημιούργησε ένα ολοένα και αυξανόμενο πρόβλημα αναζήτησής τους. Έτσι, ένας απλός χρήστης του διαδικτύου είναι πολύ δύσκολο να αναζητήσει κάποια υπηρεσία ιστού που να του λύσει κάποια προβλήματα, χωρίς ο χρήστης να γνωρίζει εκ των προτέρων ποια είναι αυτή. Έχουν αναπτυχθεί πολλά εργαλεία, κατάλογοι καθώς και κάποιες εφαρμογές αναζήτησης υπηρε- -10-

σιών ιστού με στόχο να λύσουν το πρόβλημα αυτό. Το πρόβλημα όμως παραμένει, όσο οι εφαρμογές αυτές είναι πολύπλοκες και δεν οδηγούν σε καλά αποτελέσματα αναζήτησης. 1.6 Σκοπός της εργασίας Ο σκοπός της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη και υλοποίηση μιας εφαρμογής η οποία μπορεί να διαχειρίζεται τα αρχεία WSDL των υπηρεσιών ι- στού. Η εφαρμογή αυτή είναι διαδικτυακή και ακολουθεί το πρότυπο Web 2.0, πράγμα που σημαίνει ότι ο χρήστης θα μπορεί να αλληλεπιδρά με το σύστημα και να εκτελεί κάποιες ενέργειες όπως εισαγωγή, αποθήκευση, σχολιασμό και γενικότερα επεξεργασία αρχείων WSDL, καθώς επίσης και αναζήτηση υπηρεσιών ιστού. Ουσιαστικά, η εφαρμογή είναι ένας εύχρηστος κατάλογος περιγραφών υπηρεσιών ιστού όπου οι χρήστες μπορούν να απευθύνονται για να βρουν γρήγορα την τοποθεσία μιας συγκεκριμένης υπηρεσίας ιστού που τυχόν αναζητούν ή ακόμα και να βρουν μια άγνωστη υπηρεσία ιστού που καλύπτει κάποιες ανάγκες τους. -11-

-12-

2 Βασικές Έννοιες 2.1 Τεχνολογίες Πάνω στις οποίες Βασίζονται οι Υπηρεσίες Ιστού Οι υπηρεσίες ιστού βασίζονται σε ένα σύνολο πρωτοκόλλων επικοινωνίας που ε- φαρμόζονται πάνω από ένα δίκτυο. Τα πρωτόκολλα αυτά βασίζονται στην γλώσσα XML (Extensible Markup Language), η οποία είναι μια γλώσσα που αποτελείται από ένα σύνολο κανόνων που δομούν κείμενα σε ηλεκτρονική μορφή έτσι ώστε αυτά να είναι κατανοητά από μια μηχανή ή ένα υπολογιστικό σύστημα. Οι υπηρεσίες ιστού λοιπόν βασίζονται στις παρακάτω τεχνολογίες [1] : Extensible Markup Language (XML): που περιλαμβάνει βασική XML, XML schemas και XML parsers. Simple Object Access Protocol (SOAP): που στηρίζεται στην XML και υποστηρίζει την ανταλλαγή των πληροφοριών σε ένα αποκεντρωμένο και διανεμημένο περιβάλλον. Web Services Description Language (WSDL): που είναι ουσιαστικά ένα XML shema που καθορίζει τις πληροφορίες που σχετίζονται με τις υπηρεσίες αυτές, δηλαδή με το ποια στοιχεία πρέπει να παρασχεθούν, και το τι θα επιστραφεί. Universal Description, Discovery, and Integration (UDDI): που αποτελεί έ- ναν μηχανισμό αναζήτησης σχετικά με το που παρέχονται και το ποιος προσφέρει συγκεκριμένες Υπηρεσίες Ιστού. Παρακάτω παρουσιάζονται τα πρωτόκολλα αυτά πιο αναλυτικά, έτσι ώστε να γίνει κατανοητή η δομή και η λειτουργία μιας Υπηρεσίας Ιστού. -13-

2.2 Το πρωτόκολλο XML Η XML (extensible Markup Language) αναπτύχθηκε από το W3C s XML Working Group το 1996 και συνδυάζει την ισχύ και την επεκτασιμότητα της SGML (Standard Generalized Markup Language), από την οποία προέρχεται, με την απλότητα που απαιτεί η κοινότητα του Διαδικτύου. Είναι μια μεταφερτή, ευρέως υποστηριζόμενη, ανοικτή τεχνολογία για την περιγραφή δεδομένων. Η XML περιγράφει μια κατηγορία αντικειμένων δεδομένων που ονομάζονται XML έγγραφα και εν μέρει τη συμπεριφορά των προγραμμάτων υπολογιστών που τα επεξεργάζονται. Ένα παράδειγμα φαίνεται στην Εικόνα 1. Εικόνα 1 : Ο κώδικας ενός απλού XML αρχείου. Η XML χρησιμοποιεί ένα μοντέλο για την περιγραφή των εγγράφων της. Ένα τέτοιο μοντέλο είναι το Document Type Definition (DTD) ή το XML Schema (XSD). Το μοντέλο αυτό χρησιμοποιείται για να περιγράψει τα δεδομένα και αποτελεί ένα σύνολο κανόνων που αφορούν στις ετικέτες (tags) της γλώσσας XML. Συγκεκριμένα, ορίζει κανόνες για το ποια είναι τα επιτρεπτά ονόματα στοιχείων και τα επιτρεπτά υπόστοιχεία (sub-elements) και χαρακτηριστικά (attributes) για κάθε συγκεκριμένο στοιχείο. Στην Εικόνα 2 φαίνεται ένα παράδειγμα DTD κώδικα ενώ στην Εικόνα 3, ένα παράδειγμα σε κώδικα XSD. -14-

Εικόνα 2 : Ο κώδικας ενός DTD αρχείου. Εικόνα 3 : Ο κώδικας ενός XSD αρχείου. -15-

2.3 Το πρωτόκολλο SOAP Το W3C από τον Ιούνιο του 2003 έχει συντάξει μία πρόταση (recommendation) η οποία είναι ό,τι πιο κοντινό υπάρχει στην προδιαγραφή (specification) του Simple Object Access Protocol v1.2. Μέσα στη πρόταση αυτή βρίσκεται ο παρακάτω ορισμός [8] : Το SOAP στην έκδοση 1.2 είναι ένα ελαφρύ πρωτόκολλο προορισμένο για την ανταλλαγή δομημένων πληροφοριών σε ένα αποκεντρωμένο, διανεμημένο περιβάλλον. Χρησιμοποιεί τεχνολογίες XML για να καθορίσει ένα επεκτάσιμο πλαίσιο παρέχοντας μια δομή μηνυμάτων η οποία μπορεί να ανταλλαχθεί πάνω από ποικίλα δικτυακά πρωτόκολλα. Το πλαίσιο έχει σχεδιαστεί να είναι ανεξάρτητο από οποιοδήποτε προγραμματιστικό μοντέλο και σημασιολογία υλοποίησης. Δύο βασικοί στόχοι του σχεδιασμού του SOAP είναι η απλότητα και η επεκτασιμότητα. Το SOAP προσπαθεί να πετύχει αυτούς τους στόχους παραλείποντας, από το πλαίσιο μηνυμάτων, χαρακτηριστικά γνωρίσματα τα οποία συνήθως συναντούνται σε κατανεμημένα συστήματα. Μερικά από αυτά τα γνωρίσματα είναι η «αξιοπιστία» (reliability),η «ασφάλεια» (security), ο «συσχετισμός» (correlation),η «δρομολόγηση» (routing) και τα «σχέδια ανταλλαγής μηνυμάτων» (Message Exchange Patterns - MPEs). Ενώ αναμένεται ότι πολλά χαρακτηριστικά θα καθοριστούν, η παρούσα προδιαγραφή παρέχει τις λεπτομέρειες μόνο για δύο MEPs : το HTTP (Hypertext Transfer Protocol ) και το SMTP (Simple Mail Transfer Protocol). Τα υπόλοιπα χαρακτηριστικά γνωρίσματα αφήνονται να καθοριστούν από άλλες προδιαγραφές. Με πιο απλά λόγια το SOAP είναι ένα πρωτόκολλο βασισμένο στην XML το οποίο επιτρέπει στις εφαρμογές να ανταλλάσουν πληροφορία πάνω από κοινώς χρησιμοποιούμενα πρωτόκολλα του διαδικτύου. Το πρωτόκολλο SOAP λοιπόν : Δημιουργήθηκε για να δώσει λύση σε προβλήματα διαλειτουργικότητας ανάμεσα σε κατανεμημένες εφαρμογές. Το SOAP υλοποιεί μια μέθοδο για την αποστολή και λήψη πληροφορίας πάνω από ένα δίκτυο (όπως το διαδίκτυο) με χρήση της XML. Το SOAP έχει σχεδιαστεί με τρεις βασικούς στόχους: -16-

o Να παρέχει ένα προτυποποιημένο πρωτόκολλο κλήσης αντικειμένων βασισμένο σε άλλα πρότυπα του Διαδικτύου, χρησιμοποιώντας το HTTP για μεταφορά και την XML για την δόμηση των δεδομένων. o Να αποτελεί ένα επεκτάσιμο πρωτόκολλο και μορφή δεδομένων μηνυμάτων που μπορεί να εξελιχθεί. o Να είναι απλό. Η δημιουργία και αποστολή ενός σύγχρονου μηνύματος SOAP περιλαμβάνει: Την δημιουργία της σύνδεσης SOAP. Την δημιουργία του μηνύματος SOAP. Την συμπλήρωση του μηνύματος με δεδομένα. Την αποστολή του μηνύματος. Την λήψη της απάντησης. Ένα μήνυμα SOAP είναι ένα συνηθισμένο έγγραφο XML το οποίο περιέχει τα παρακάτω στοιχεία (elements): 1. Ένα φάκελο (envelope), ένα απαιτούμενο στοιχείο από το οποίο αναγνωρίζεται το έγγραφο XML ως μήνυμα SOA. 2. Μια επικεφαλίδα (header), ένα προαιρετικό στοιχείο που περιλαμβάνει βοηθητικές πληροφορίες. Η επικεφαλίδα χρησιμοποιείται συνήθως για την προσθήκη στο μήνυμα SOAP χαρακτηριστικών που εξαρτώνται από την εκάστοτε ε- φαρμογή (για παράδειγμα πληροφορίες αυθεντικοποίησης) 3. Ένα σώμα (body), ένα απαιτούμενο στοιχείο το οποίο περιλαμβάνει την κύρια πληροφορία του μηνύματος που ενδιαφέρει τον παραλήπτη. 4. Ένα προαιρετικό στοιχείο Fault το οποίο παρέχει πληροφορίες για σφάλματα που προκλήθηκαν κατά την επεξεργασία ενός μηνύματος. Όλα τα παραπάνω στοιχεία δηλώνονται στο προεπιλεγμένο namespace για το SOAP envelope : http://www.w3.org/2003/05/soap-envelope Το προεπιλεγμένο namespace για την κωδικοποίηση (encoding) του SOAP και τους τύπους δεδομένων είναι ο : http://www.w3.org/2001/12/soap-encoding -17-

Μερικοί σημαντικοί κανόνες σύνταξης ενός μηνύματος SOAP είναι οι παρακάτω : Ένα μήνυμα SOAP πρέπει να είναι κωδικοποιημένο χρησιμοποιώντας XML. Ένα μήνυμα SOAP πρέπει να χρησιμοποιεί το SOAP Envelope namespace. Ένα μήνυμα SOAP πρέπει να χρησιμοποιεί το SOAP Encoding namespace. Ένα μήνυμα SOAP δεν πρέπει να περιέχει αναφορά σε DTD. Ένα μήνυμα SOAP δεν πρέπει να περιέχει XML Processing Instructions. Το SOAP δηλαδή βασίζεται στο μοντέλο αίτησης-απάντησης μπορούν να μοντελοποιηθούν απλά σαν ανταλλαγή ολόκληρων εγγράφων XML με τη μορφή μίας μπροςπίσω «συνομιλίας», όπου η σημασιολογία εξαρτάται από τις ίδιες τις εφαρμογές. Τα μηνύματα SOAP μπορούν να ανταλλάσσονται χρησιμοποιώντας μια πληθώρα από πρωτόκολλα δικτύου συμπεριλαμβανομένων και πρωτοκόλλων επιπέδου εφαρμογών (application layer protocols). Η προδιαγραφή για το πώς μηνύματα SOAP μπορούν να περνιούνται από ένα κόμβο σε ένα άλλο χρησιμοποιώντας ένα πρωτόκολλο ονομάζεται «σύνδεση SOAP» (SOAP binding). Συνήθως η επικοινωνία γίνεται μέσω του πρωτοκόλλου HTTP (Hypertext Tranfer Protocol). Το HTTP έχει ένα ευρέως γνωστό μοντέλο σύνδεσης και μορφή ανταλλαγής μηνυμάτων. Ο πελάτης αναγνωρίζει τον εξυπηρετητή μέσω ενός URI, συνδέεται σε αυτόν χρησιμοποιώντας το TCP/IP, εκτελεί μία αίτηση HTTP και λαμβάνει μία απάντηση HTTP πάνω από την ίδια σύνδεση TCP. Το HTTP συνδέει το μήνυμα αίτησης με το μήνυμα απάντησης. Για αυτό το λόγο μια εφαρμογή που χρησιμοποιεί αυτή τη σύνδεση μπορεί να επιλέξει να συνδέσει ένα μήνυμα SOAP που στάλθηκε στο σώμα μιας αίτησης HTTP με ένα μήνυμα SOAP που επιστράφηκε στο σώμα μιας απάντησης HTTP. Η απλότητα χρήσης του HTTP είναι και ο λόγος για τον οποίο είναι το πιο ευρέως χρησιμοποιούμενο πρωτόκολλο για την αποστολή μηνυμάτων SOAP. Στα παρακάτω παραδείγματα της Εικόνα 5 και της Εικόνα 6, φαίνονται η αίτηση SOAP και η απάντηση SOAP αντίστοιχα για μία κλήση RPC (Remote Procedure Call) και αφορούν την απομακρυσμένη κλήση μιας διαδικασίας με όνομα GetStockPrice η οποία δέχεται ένα όρισμα με όνομα StockName τύπου αλφαριθμητικού και επιστρέφει μία τιμή τύπου πραγματικού. -18-

Εικόνα 4 : Η ανταλλαγή πληροφοριών μέσω SOAP ανάμεσα σε κάποιον αιτών και κάποιο προμηθευτή μιας υπηρεσίας ιστού. Εικόνα 5 : Η αίτηση SOAP για την κλήση της διαδικασίας GetStockPrice. Εικόνα 6 : Η απάντηση SOAP στην παραπάνω αίτηση. Επιστρέφεται η τιμή 34.5. -19-

2.4 Η γλώσσα περιγραφής υπηρεσιών ιστού WSDL 2.4.1 Πώς ορίζεται το WSDL Ο ορισμός που δίνει το W3C για την γλώσσα περιγραφής υπηρεσιών ιστού (Web Services Description Language, WSDL) είναι ο παρακάτω [9] : "Η WSDL είναι ένα σχήμα XML για την περιγραφή δικτυακών υπηρεσιών σαν ένα σύνολο από τελικά σημεία που λειτουργούν σε μηνύματα τα οποία περιέχουν πληροφορία είτε προσανατολισμένη στα έγγραφα είτε προσανατολισμένη στις διαδικασίες. Οι λειτουργίες και τα μηνύματα περιγράφονται περιληπτικά, και τότε δένονται σε ένα συγκεκριμένο πρωτόκολλο δικτύων και μορφή μηνυμάτων για να καθορίσουν ένα τελικό σημείο. Πολλά σχετικά τελικά σημεία συνδυάζονται σε υπηρεσίες (services). Η WSDL είναι επεκτάσιμη στο να επιτρέπει την περιγραφή τελικών σημείων και των μηνυμάτων τους άσχετα από τη μορφή των μηνυμάτων και των πρωτοκόλλων δικτύων που χρησιμοποιούνται για την επικοινωνία. Παρόλα αυτά, αυτή τη στιγμή στην προδιαγραφή της WSDL οι μόνες συνδέσεις που περιλαμβάνονται περιγράφουν πώς μπορούμε να χρησιμοποιήσουμε την WSDL σε συνδυασμό με το SOAP, το HTTP GET/POST και το MIME". Με πιο απλά λόγια η WSDL μας βοηθά να περιγράψουμε ένα σύνολο από μηνύματα και το πώς αυτά τα μηνύματα ανταλλάσσονται. Για να καταλάβουμε την αξία της WSDL, μπορούμε να υποθέσουμε ότι θέλουμε να καλέσουμε ένα web service μέσω SOAP το οποίο μας παρέχεται από έναν συνεργάτη μας. Θα μπορούσαμε να του ζητήσουμε μερικά παραδείγματα μηνυμάτων SOAP και να γράψουμε κώδικα στην εφαρμογή μας για να παράγουμε και να καταναλώνουμε μηνύματα SOAP που μοιάζουν με αυτά τα παραδείγματα. Κάτι τέτοιο όμως είναι επιρρεπές σε λάθη. Για παράδειγμα, θα βλέπαμε ένα ID πελάτη με την τιμή 4327 και θα υποθέταμε ότι είναι ακέραιος ενώ στην πραγματικότητα θα ήταν αλφαριθμητικό. Η WSDL καθορίζει τι πρέπει να περιέχει ένα μήνυμα και πώς πρέπει να είναι ένα μήνυμα απάντησης με σαφή σήμανση. Η WSDL αποτελεί το προϊόν τυποποίησης στον οργανισμό W3C και η πιο πρόσφατη έκδοσή της είναι αυτή του 2001 WSDL 1.1 (http://www.w3.org/tr/wsdl) ενώ ο W3C εργάζεται για µία νέα έκδοση την WSDL 2.0 (http://www.w3.org/tr/wsdl20/) η οποία αναμένεται να οριστικοποιηθεί άμεσα. 2.4.2 Ποια σήμανση χρησιμοποιείται στα WSDL αρχεία Η σήμανση που χρησιμοποιείται σε ένα αρχείο WSDL για να περιγράψει μορφές μηνυμάτων βασίζεται στο πρότυπο του XML Schema το οποίο σημαίνει ότι είναι ταυ- -20-

τόχρονα ανεξάρτητη από γλώσσα προγραμματισμού και βασισμένη σε πρότυπα. Αυτό το γεγονός την κάνει κατάλληλη για να περιγράψει διεπαφές web services οι οποίες είναι προσβάσιμες από μία μεγάλη ποικιλία πλατφορμών και γλωσσών προγραμματισμού. Επιπλέον, εκτός του ότι περιγράφει τα περιεχόμενα των μηνυμάτων, η WSDL ορίζει πού είναι διαθέσιμη μία υπηρεσία και ποιά πρωτόκολλα επικοινωνίας χρησιμοποιούνται για να επικοινωνήσουμε με αυτή την υπηρεσία. Αυτό σημαίνει ότι ένα αρχείο WSDL ορίζει όλα όσα χρειάζονται για να γράψουμε ένα πρόγραμμα το οποίο να λειτουργεί με ένα web service. Ένα αρχείο WDSL αποτελεί ουσιαστικά μια μορφή εγγράφου σε XML που περιγράφει μια ή περισσότερες υπηρεσίες δικτύου ως ένα σύνολο από σημεία τερματισμού (endpoints) που βασίζονται σε μηνύματα με περιεχόμενο: Πληροφορία προσανατολισμένη σε έγγραφα (document-oriented) Πληροφορία προσανατολισμένη σε διαδικασίες (procedure-oriented) Η WSDL είναι επεκτάσιμη για να επιτρέπει την περιγραφή των σημείων τερματισμού ανεξάρτητα από την μορφή των μηνυμάτων ή το πρωτόκολλο επικοινωνίας. Οι προδιαγραφές δεσμεύσεων (bindings) που υπάρχουν μέχρι στιγμής, περιγράφουν πώς μπορεί να χρησιμοποιηθεί η WSDL σε συνδυασμό με το SOAP, HTTP GET/POST και το MIME (Multipurpose Internet Mail Extensions). 2.4.3 Οι ορισμοί της WSDL Η WSDL παρέχει ένα τρόπο στους παροχείς υπηρεσιών να περιγράψουν τη βασική μορφή των αιτήσεων και απαντήσεων των υπηρεσιών πάνω από διαφορετικά πρωτόκολλα και κωδικοποιήσεις. Η WSDL χρησιμοποιείται για να περιγράψει τί μπορεί να κάνει μια υπηρεσία ιστού, πού βρίσκεται και πώς να το καλέσει κανείς. Ένα έγγραφο WSDL είναι ουσιαστικά ένα σύνολο από ορισμούς (definitions). Οι ορισμοί αυτοί, περιγράφουν μια ή περισσότερες υπηρεσίες ιστού και χωρίζονται στις κατηγορίες [1],[9] : Αφηρημένοι ορισμοί (abstract definitions) : Type: παρέχει ορισμούς για τους τύπους δεδομένων που περιέχουν μηνύματα SOAP. -21-

Message: παρέχει έναν ορισμό του μηνύματος που μεταφέρεται σε μια επικοινωνία. Operation: παρέχει την περιγραφή μιας πράξης (ή διαδικασίας) που υποστηρίζεται από την υπηρεσία. PortType: καθορίζει την διεπαφή υπηρεσιών των λειτουργιών που υποστηρίζει η υπηρεσία ιστού. Συγκεκριμένοι ορισμοί (specific service definitions) : Binding: προδιαγράφει το πρωτόκολλο και την μορφή των δεδομένων για ένα συγκεκριμένο PortType. Port: προδιαγράφει τη διεύθυνση μια συγκεκριμένης δέσμευσης. Service: προδιαγράφει την τοποθεσία URL της υπηρεσίας ιστού στον εξυπηρετητή που την φιλοξενεί. Γενικότερα, το WSDL δεν εισάγει ένα νέο τύπο γλώσσας περιγραφής, απλά αναγνωρίζει την ανάγκη να περιγραφούν κάποιοι τύποι μηνυμάτων. Έτσι, υποστηρίζοντας την προδιαγραφή XML Schema (XSD), αναπτύσσει μια δομή περιγραφής των μηνυμάτων αυτών. Επίσης, είναι σημαντικό να διασαφηνίσουμε πως, κάνοντας όλα τα παραπάνω, η WSDL είναι ένα μέσον, ένας μηχανισμός διασύνδεσης. Συνδέει μια υπηρεσία με τις εργασίες που προσφέρει, τα μηνύματα που υποστηρίζονται για κάθε μια διεργασία, ποια από αυτά είναι είσοδος και ποια έξοδος κ.α. Μέσω του WSDL, μπορεί να γίνει μια σύνδεση ενός μηνύματος με ένα συγκεκριμένο πρωτόκολλο, όπως το SOAP. 2.4.4 Παράδειγμα ενός WSDL Στην Εικόνα 7,Εικόνα 8 και Εικόνα 9 παρουσιάζονται τρία διαφορετικά αρχεία, τα οποία αν συνδυαστούν ορίζουν το web service με όνομα StockQuoteService. Στο πρώτο αρχείο (stockquote.xsd) που είναι της μορφής XML Schema, υπάρχουν οι ορισμοί για τους τύπους των δεδομένων (data type definitions). Στο δεύτερο αρχείο (stockquote.wsdl) που είναι της μορφής wsdl, υπάρχουν οι αφηρημένοι ορισμοί που περιγράφτηκαν νωρίτερα (type, message, porttype και operation) ενώ, -22-

Στο τρίτο αρχείο (stockquoteservice.wsdl) που κι αυτό είναι της μορφής WSDL, υπάρχουν οι συγκεκριμένοι ορισμοί (binding, port και service). Το δεύτερο αρχείο, μέσω της διαδικασίας insert, ενσωματώνει το πρώτο αρχείο. Ομοίως, το τρίτο αρχείο ενσωματώνει το δεύτερο κι έτσι τελικά έχει οριστεί η υπηρεσία ιστού StockQuoteService. Για να γίνει ποιο κατανοητή η λειτουργία και τα πλεονεκτήματα του WSDL, θα αναλυθεί ο κώδικας στα XML αρχεία των παρακάτω εικόνων. Στην Εικόνα 7: Ορίζονται όπως είπαμε οι τύποι δεδομένων που αφορούν τα μηνύματα του WSDL. Αξίζει να επισημανθεί ότι αυτός ο τρόπος δόμησης του αρχείου wsdl έχει το πλεονέκτημα της ανεξάρτητης αλλαγής κάποιου τύπου δεδομένων. Για παράδειγμα, αν στην Εικόνα 7 ο τύπος δεδομένων για το element TradePrice αλλάξει από πραγματικό (float) σε ακέραιο (int), δεν θα επηρεαστεί καθόλου η υπόλοιπη δομή του WSDL εγγράφου. Στην Εικόνα 8: Ορίζονται αφηρημένα οι τύποι των μηνυμάτων. Παρατηρούμε ότι στον ορισμό του κάθε message, υπάρχει το υπό-στοιχείο element το οποίο αναφέρεται σε κάποιο στοιχείο (element) που ορίστηκε στο αρχείο XSD. Ο ορισμός του porttype ορίζει αφηρημένα τις διαδικασίες (operations) καθώς και τα μηνύματα που εμπλέκονται είτε στην είσοδο είτε στην έξοδο της κάθε διεργασίας. Στην Εικόνα 9: Ορίζονται πιο συγκεκριμένα (με λεπτομέρειες), οι διεργασίες και τα μηνύματα αυτών, για κάθε porttype που ορίστηκε αφηρημένα στο προηγούμενο αρχείο. Αυτό γίνεται με τον ορισμό binding. Ορίζονται τα services, μια ή περισσότερες υπηρεσίες ιστού στο ίδιο έγγραφο wsdl. Έτσι καθορίζεται ένα μοναδικό όνομα για κάθε υπηρεσία (μοναδικό με την έννοια να μην υπάρχει κάποια άλλη υπηρεσία ιστού ορισμένη στο ίδιο WSDL αρχείο που να έχει το ίδιο όνομα). Για κάθε service : Ορίζεται ο όρος documentation. Ο όρος αυτός είναι ένα κείμενο το ο- ποίο περιγράφει το τι ακριβώς κάνει η συγκεκριμένη υπηρεσία ιστού, έτσι ώστε να το γνωρίζει κάποιος χρήστης που τυχόν ενδιαφέρεται. -23-

Ορίζεται ένας ή περισσότεροι όροι port. Κάθε τέτοιος όρος συνδέει το συγκεκριμένο service με ένα binding. Οι όροι port που ορίζονται για ένα service, δεν πρέπει να επικοινωνούν μεταξύ τους. Σε κάθε port, ορίζεται μια διεύθυνση-location και ένα πρωτόκολλο με το οποίο θα μεταφέρονται τα μηνύματα από κ προς αυτή (πχ. SOAP). Εικόνα 7: Το XSD έγγραφο που καθορίζει τους τύπους των δεδομένων για το WSDL. Εικόνα 8: Tο WSDL έγγραφο που καθορίζει τους αφηρημένους όρους. -24-

Εικόνα 9 : Το ολοκληρωμένο WSDL έγγραφο. Υπάρχουν οι συγκεκριμένοι όροι κ έμμεσα οι αφηρημένοι και οι τύποι δεδομένων. Εικόνα 10 : Ένα οπτικό παράδειγμα από την ανάλυση του WSDL εγγράφου. Φαίνεται η σχέση μεταξύ PortTypes και Binding για το WSDL έγγραφο του παραδείγματος. -25-

2.5 Ο μηχανισμός αναζήτησης UDDI 2.5.1 Πως ορίζεται το UDDI Ο μηχανισμός UDDI (Universal Description, Discovery and Integration) είναι ουσιαστικά ένας κατάλογος από υπηρεσίες ιστού που υποστηρίζει την περιγραφή και την αναζήτησή τους. Ο σκοπός που δίνει το OASIS (OASIS Security Services Technical Comitee, οργανισμός κατοχύρωσης προτύπων στο διαδίκτυο), για τo Universal Description, Discovery and Integration είναι ο παρακάτω [11] : "Οι υπηρεσίες ιστού έχουν νόημα, μόνο όταν δυνητικοί χρήστες μπορούν να βρουν πληροφορίες ικανές ώστε να επιτρέψουν την εκτέλεσή τους. Το Universal Description Discovery & Integration (UDDI) εστιάζει στον καθορισμό ενός συνόλου από υπηρεσίες που θα υποστηρίζουν την περιγραφή και την ανακάλυψη: 1. Των εταιριών, των οργανισμών και άλλων παρόχων υπηρεσιών ιστού. 2. Των υπηρεσιών ιστού, που είναι διαθέσιμες. 3. Των τεχνικών ή προγραμματιστικών διεπαφών οι οποίες μπορούν να χρησιμοποιηθούν ώστε να έχει κάποιος χρήστης πρόσβαση σε αυτές τις υπηρεσίες. Βασισμένο σε ένα κοινό σύνολο από βιομηχανικά πρότυπα, συμπεριλαμβανομένων των HTTP, XML, XML Schema και SOAP, το UDDI παρέχει μία διαλειτουργική, θεμελιώδη υποδομή για ένα περιβάλλον λογισμικού προσανατολισμένο στις υπηρεσίες τόσο για δημόσια διαθέσιμες υπηρεσίες όσο και για υπηρεσίες που εκτίθενται μόνο εσωτερικά ενός οργανισμού." Το UDDI λοιπόν, σύμφωνα με τα παραπάνω, παρέχει ένα σύστημα για την εγγραφή και εύρεση της πληροφορίας που απαιτείται για τη χρήση μιας υπηρεσίας ιστού και της πληροφορίας για τον πάροχο της υπηρεσίας. Με πιο απλά λόγια το UDDI είναι ο «χρυσός οδηγός» των υπηρεσιών ιστού. Όπως σε ένα χρυσό οδηγό, μπορούμε να αναζητήσουμε μια εταιρία που προσφέρει τις υπηρεσίες που χρειαζόμαστε, να διαβάσουμε για μια προσφερόμενη υπηρεσία και να επικοινωνήσουμε με κάποιον για περισσότερες λεπτομέρειες. Φυσικά μπορούμε να προσφέρουμε ένα web service χωρίς να το καταχωρίσουμε στο UDDI, όπως αν ανοίγαμε μία επιχείρηση στο υπόγειο του σπιτιού μας και βασιζόμασταν στη διαφήμιση από στόμα σε στόμα. Αλλά αν θέλουμε να αγγίξουμε το ευρύ κοινό, θα χρειαστούμε το UDDI ώστε οι δυνητικοί μας πελάτες να μπορέσουν να μας βρουν. -26-

Εικόνα 11 : H ανίχνευση μιας υπηρεσίας ιστού μέσω του UDDI από κάποιον χρήστη και η εγγραφή μιας υπηρεσίας ιστού στο UDDI από κάποιον πάροχο. 2.5.2 Η δομή του καταλόγου UDDI Το UDDI, όπως έχει περιγραφεί παραπάνω, παρέχει έναν τρόπο ανακάλυψης υπηρεσιών ιστού που μπορεί να προσφέρονται από έναν αριθμό επιχειρήσεων προκειμένου να υπάρξει συνεργασία ιδιαίτερα στα πλαίσια του ηλεκτρονικού επιχειρείν. Έτσι, προσφέρεται πρόσβαση σε έναν κατάλογο που περιλαμβάνει τις επιχειρήσεις, τις υπηρεσίες ιστού που αυτές προσφέρουν και τον τρόπο με τον οποίο οι υπηρεσίες αυτές θα μπορούσαν να χρησιμοποιηθούν. Πιο συγκεκριμένα, το μοντέλο δεδομένων που αποθηκεύει το UDDI περιλαμβάνει τους ακόλουθους τύπους στοιχείων: businessentity. Που περιγράφει επιχειρήσεις ή οργανισμούς που προσφέρουν υπηρεσίες ιστού. Στην ουσία μπορεί να περιγράψει οποιαδήποτε οντότητα προσφέρει υπηρεσίες ιστού σε διαφορετικές γλώσσες εάν απαιτείται και να παρέχει λεπτομέρειες για το πως μπορεί να επικοινωνήσει κάποιος μαζί της κλπ. Τέτοια στοιχεία μπορούν να κατηγοριοποιηθούν με διάφορους τρόπους και μπορούν να σχετιστούν με έναν αριθμό υπηρεσιών, οι οποίες περιγράφονται ως στοιχεία businessservice. businessservice: Τέτοια στοιχεία περιγράφουν μια συλλογή σχετικών μεταξύ τους υπηρεσιών ιστού που προσφέρονται από μία επιχείρηση ή οργανισμό η περιγραφή του οποίου δίνεται ως περιγραφή businessentity. Επίσης, στοιχεία businessservice μπορούν να σχετιστούν με έναν αριθμό στοιχείων bindingtemplate. -27-

bindingtemplate: Αυτά τα στοιχεία παρέχουν τις τεχνικές λεπτομέρειες προκειμένου να χρησιμοποιηθεί μια υπηρεσία ιστού. Περιλαμβάνουν τις δικτυακές διευθύνσεις όπου οι υπηρεσίες είναι διαθέσιμες όπως επίσης και Ψηφιακές Υπογραφές (digital signatures). Επίσης στοιχεία biningtemplate μπορούν να σχετιστούν με έναν αριθμό στοιχείων tmodel. tmodel: Αυτού του είδους τα στοιχεία αποτελούν επαναχρησιμοποιήσιμες έννοιες που προσφέρουν το τεχνικό μοντέλο (technical model) περιγραφής διαφορετικών στοιχείων όπως ένας τύπος υπηρεσίας ιστού, ένα πρωτόκολλο για επικοινωνία με υπηρεσίες ιστού ή ένα σύστημα κατηγοριοποίησης. Έτσι, στοιχεία tmodel μπορούν να αναπαριστούν πρωτόκολλα μεταφοράς δεδομένων όπως HTTP ή SMTP κ.α. publisherassertion: Που περιγράφουν σχέσεις μεταξύ στοιχείων businessentity. Έτσι, είναι δυνατό να ορισθεί ότι μία επιχείρηση είναι θυγατρική κάποιας άλλης, κλπ. Το UDDI ορίζει έναν αριθμό πιθανών σχέσεων. subscription: Που περιγράφουν αιτήματα για ενημέρωση (ειδοποίηση) σχετικά με ενημερώσεις στοιχείων ή τύπων στοιχείων στους καταλόγους. Οι τύποι στοιχείων businessentity, businessservice, biningtemplate, tmodel και publisherassertion μπορούν να έχουν τις δικές τους ψηφιακές υπογραφές (digital signatures) σύμφωνα με την έκδοση UDDI v3. Μία αρχιτεκτονική που να υποστηρίζει τη φιλοξενία και χρήση καταλόγων σύμφωνα με το UDDI μπορεί να περιλαμβάνει UDDI Κόμβους (nodes), οι οποίοι παρέχουν καταλόγους χρησιμοποιώντας το μοντέλο δεδομένων που περιγράφεται πιο πάνω και Πελάτες UDDI Κόμβων (clients). Τουλάχιστον ένας κόμβος πρέπει να υλοποιείται σε κάθε αρχιτεκτονική UDDI. Οι πελάτες κόμβων μπορούν να χρησιμοποιούν τις υπηρεσίες κόμβων UDDI. Είναι δυνατή η χρήση υπηρεσιών ενός κόμβου UDDI από κάποιο άλλο κόμβο, όπως επίσης και η χρήση υπηρεσιών του πελάτη ενός κόμβου UDDI από τον κόμβο (π.χ. για τη μετάδοση ειδοποιήσεων για τις οποίες ο πελάτης έχει συνάψει συνδρομές). -28-

2.5.3 Τα πλεονεκτήματα της χρήσης του UDDI Η χρήση του μηχανισμού αναζήτησης UDDI μπορεί να ωφελήσει είτε μικρές είτε μεγάλες υπηρεσίες και επιχειρήσεις. Πριν από το UDDI, δεν υπήρχε κάποιο δικτυακό κριτήριο με βάση το οποίο μια επιχείρηση θα ενημέρωνε πελάτες ή συνεργάτες για κάποια προϊόντα ή υπηρεσίες της. Επίσης, δεν υπήρχε κάποιος μηχανισμός έτσι ώστε υ- πηρεσίες της μιας επιχείρησης να χρησιμοποιηθούν από μια άλλη. Έτσι, διαπιστώνουμε ότι η χρήση του μηχανισμού UDDI μπορεί να έχει τα παρακάτω οφέλη : Δίνει τη δυνατότητα ανακάλυψης/ εύρεσης μιας συγκεκριμένης επιχείρησης ή μιας συγκεκριμένης υπηρεσίας ιστού ανάμεσα σε πολλές χιλιάδες που τυχόν υπάρχουν στο ίντερνετ. Καθορίζεται πως μπορεί να γίνει επικοινωνία, εφόσον η συγκεκριμένη υπηρεσία ή επιχείρηση γενικότερα βρεθεί. Βοηθά στην εύρεση νέων πελατών για επιχειρήσεις Βοηθάει σε προγραμματιστικό επίπεδο την ύπαρξη των υπηρεσιών ιστού, καθώς παρέχει ένα περιβάλλον μέσα από το οποίο υπάρχουν καλά δομημένες οι περιγραφές τους. Έτσι, μέσα από το περιβάλλον αυτό μπορεί κάποιος χρήστης να αναζητήσει μια συγκεκριμένη υπηρεσία ιστού. 2.5.4 Πώς μπορεί να χρησιμοποιηθεί ο μηχανισμός UDDI Κάθε κατασκευαστής μιας υπηρεσίας ιστού, μπορεί να εγγράψει-καταχωρήσει την υπηρεσία του στον κατάλογο UDDI. Για παράδειγμα, αν μια επιχείρηση αναπτύξει μια υπηρεσία ιστού που ελέγχει τη διαθεσιμότητα των εισιτηρίων μιας αεροπορικής εταιρίας για μια συγκεκριμένη πτήση, τότε κάποιο ταξιδιωτικό γραφείο θα μπορέσει να βρει και να χρησιμοποιήσει την υπηρεσία αυτή, αναζητώντας τη στον κατάλογο UDDI. Πιο συγκεκριμένα, το πρότυπο UDDI προβλέπει ένα σύνολο από Διεπαφές Προγραμματισμού Εφαρì ογών (Application Programming Interface, API) προκειμένου να χρησιμοποιηθούν οι υπηρεσίες που προσφέρονται από UDDI Κόμβους αλλά και Πελάτες UDDI Κόμβων. Ένας κόμβος παρέχει τις εξής ομάδες διεπαφών σύμφωνα με το UDDI v3: UDDI Inquiry. Με λειτουργίες αναζήτησης στοιχείων στον κατάλογο που τηρεί ο κόμβος και απόκτηση πληροφορίας από τον κατάλογο. -29-

UDDI Publication. Με λειτουργίες που επιτρέπουν την πρόσθεση, ενημέρωση ή διαγραφή στοιχείων από τον κατάλογο που διατηρεί ο κόμβος. UDDI Security. Με λειτουργίες που εξυπηρετούν προβλεπόμενους ì ηχανισì ούς Επικύρωσης (authentication). UDDI Custody Transfer. Με λειτουργίες που επιτρέπουν την απόκτηση ή μεταφορά ενός ή περισσοτέρων στοιχείων businessentity και των σχετικών businessservice στοιχείων όπως επίσης και στοιχεία tmodel από ένα κόμβο σε έναν άλλο. UDDI Subscription. Που υποστηρίζει τις συνδρομές για ειδοποίηση όταν λαμβάνουν χώρα αλλαγές στον κατάλογο που υποστηρίζει ο κόμβος. Με τη σειρά του, ένας Πελάτης Κόμβου UDDI σύμφωνα με το UDDI v3 προσφέρει τις εξής οì άδες διεπαφών: UDDI Subscription Listener. Που επιτρέπει στον Κόμβο UDDI να ειδοποιεί τον πελάτη όταν γίνονται αλλαγές στον κατάλογο για τις οποίες ο πελάτης έχει ζητήσει να ενημερώνεται μέσω συνδρομής (χρησιμοποιώντας τις λειτουργίες UDDI Subscription που προσφέρει ο κόμβος). UDDI Value Set. Με λειτουργίες σχετικές με κατηγοριοποίηση και συσχετισμό των εννοιών που χρησιμοποιούνται. Η επικοινωνία μεταξύ πελατών και UDDI κόμβων γίνεται με χρήση SOAP μέσω του πρωτοκόλλου HTTP. Έτσι, κάποιος πελάτης μπορεί να αναζητήσει άλλες υ- πηρεσίες ιστού στον κατάλογο του UDDI με το να χρησιμοποιήσει τις λειτουργίες UDDI Inquiry του τοπικού κόμβου. Η περιγραφή των υπηρεσιών που αποκτώνται από τον κατάλογο και οι λεπτομέρειες για τον τρόπο επικοινωνίας μαζί τους περιγράφονται από τα στοιχεία του καταλόγου. Γίνεται έτσι φανερή η ανάγκη να ορισθούν τρόποι συσχετισμού του τρόπου περιγραφής μιας υπηρεσίας ιστού στο UDDI με τον τρόπο περιγραφής σύμφωνα με την WSDL. Αυτό επιτρέπει σε υπηρεσίες ιστού που περιγράφονται σε WSDL να προστεθούν στους καταλόγους UDDI αλλά και σε πελάτες κόμβων UDDI να αποκτήσουν πρόσβαση σε WSDL περιγραφή των υπηρεσιών ιστού που ανακαλύπτουν. Οι εργασίες που έχουν γίνει μέχρι στιγμής στα πλαίσια του OASIS Open προβλέπουν αντιστοίχηση των στοιχείων porttype, binding, service και port της -30-

WSDL ì ε τα στοιχεία tmodel, tmodel businessservice και bindingtemplate του UDDI αντίστοιχα. 2.5.5 Η υποστήριξη του καταλόγου UDDI Ο κατάλογος UDDI λοιπόν, αναπτύχθηκε από διαφορετικές εταιρίες όπως η Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, Sun κ.α. Οι εταιρίες αυτές υ- ποστηρίζουν τον κατάλογο UDDI για τις υπηρεσίες που αναπτύσσουν και παρέχουν. -31-

-32-

3 Συστήματα αναζήτησης υπηρεσιών ιστού Για την αναζήτηση των υπηρεσιών ιστού έχουν υλοποιηθεί κάποια συστήματα, τα οποία έχουν σαν στόχο να βοηθήσουν τον χρήστη να βρει κάποια υπηρεσία που αναζητά εύκολα και γρήγορα. Όμως, παρ όλη την ολοένα και αυξανόμενη αποδοχή και χρήση των υπηρεσιών ιστού, τα εργαλεία ή οι εφαρμογές που μας βοηθούν να τις διαχειριστούμε είναι σπάνιες. 3.1 To σύστημα OPOSSum Μια από τις πιο γνωστές εφαρμογές που αφορά όμως σημασιολογικές υπηρεσίες ι- στού, είναι το OPOSSum (online portal for semantic web services). Το OPOSSum είναι μια Web 2.0 εφαρμογή, μέσα στην οποία βρίσκεται αποθηκευμένη μια συλλογή από περιγραφές από σημασιολογικές υπηρεσίες ιστού. Οι περιγραφές αυτές μπορεί να είναι διαφορετικού τύπου, όπως WSDL 1.1, WSDL 2.0, OWL-S 1.0 και OWL-S 1.1 κ.α. Ένα παράδειγμα αναζήτησης υπηρεσίας ιστού στο OPOSSum φαίνεται στην Εικόνα 12 και στην Εικόνα 13. Πιο συγκεκριμένα, στην φόρμα που φαίνεται στην Εικόνα 12 εισάγουμε την πρόταση longitude and lattitude of the area ενώ στους «περιγραφητές» (descriptors) της υπηρεσίας επιλέγουμε WSDL 1.1. Στην Εικόνα 13 παρατηρούμε ότι έχει επιστραφεί η υπηρεσία ιστού 01792.orgUKPostalCodeToLongLatService, η οποία έχοντας σαν είσοδο τον ταχυδρομικό κωδικό μιας περιοχής της Αγγλίας, επιστρέφει τις γεωγραφικές συντεταγμένες της περιοχής. Στην Εικόνα 14 φαίνονται οι λεπτομέρειες της υπηρεσίας ιστού, όπως ο σχολιασμός της, οι συλλογές στις οποίες ανήκει, οι είσοδοι και οι έξοδοι της καθώς και οι «περιγραφητές» που υπάρχουν για την υπηρεσία αυτή. -33-

Εικόνα 12 : H φόρμα αναζήτησης υπηρεσίας ιστού του συστήματος OPOSSum. Εικόνα 13 : Tα αποτελέσματα από μια αναζήτηση. -34-

Εικόνα 14 : Oι λεπτομέρειες μιας υπηρεσίας ιστού που έχει επιστραφεί στα αποτελέσματα. 3.2 Το σύστημα Seekda Το σύστημα seekda, είναι μια Web 1.0 μηχανή αναζήτησης υπηρεσιών οστού, ε- λεύθερη προς χρήση από τον οποιονδήποτε. Αντίθετα με το WSDL Book και το OPOSSum, το seekda δεν αποθηκεύει ούτε διαχειρίζεται περιγραφές για κάποιες υπηρεσίες ιστού, απλά παρέχει έναν τρόπο εύρεσης αυτών με τη βοήθεια κάποιων crawlers. Με τον όρο crawler (ή spider), εννοείται ένα πρόγραμμα που αυτομάτως «σέρνεται» μέσω του Παγκόσμιου Ιστού και συλλέγει ιστοσελίδες. Τα προγράμματα αυτά χρησιμοποιούνται κατά κόρων σε μηχανές αναζήτησης, παίρνοντας σαν είσοδο κάποιες λέξεις κλειδιά και ανιχνεύοντας στο διαδίκτυο για ιστοσελίδες (ή πιο συγκεκριμένα πληροφορίες των βάσεων δεδομένων των ιστοσελίδων) που σχετίζονται με τις λέξεις αυτές. -35-

Το seekda λοιπόν ανιχνεύει υπηρεσίες ιστού με τον παραπάνω τρόπο, και επιστρέφει στον χρήστη πληροφορίες για τις υπηρεσίες αυτές ή τους παροχείς των υπηρεσιών αυτών. Ένα παράδειγμα αναζήτησης φαίνεται στην Εικόνα 15 και Εικόνα 16. Στην αρχική φόρμα αναζήτησης επιλέγεται η χώρα Greece ενώ στο κείμενο περιγραφής εισάγεται η λέξη weather. Στην Εικόνα 16 παρατηρούμε ότι έχει επιστραγεί ένα αποτέλεσμα. Πρόκειται για την υπηρεσία ιστού GlobakWeatherService, κάποιες πληροφορίες για την οποία φαίνονται παρακάτω. Επίσης δίνεται και η ηλεκτρονική τοποθεσία του αρχείου περιγραφής WSDL της υπηρεσίας. Εικόνα 15 : H φόρμα αναζήτησης υπηρεσίας ιστού του συστήματος seekda. -36-

Εικόνα 16 : Oι λεπτομέρειες μιας υπηρεσίας ιστού που έχει επιστραφεί στα αποτελέσματα. 3.3 Το σύστημα Xignite Το σύστημα αυτό είναι μια εμπορική εφαρμογή που στοχεύει κυρίως στην αγορά της Οικονομίας και του Χρηματιστηρίου. Στο σύστημα υπάρχουν αποθηκευμένες πληροφορίες για έναν αριθμό από υπηρεσίες ιστού τις οποίες αναπτύσσει η ίδια η εταιρία. Κάθε υπηρεσία ιστού που διατίθεται προς πώληση, ανήκει σε μια συγκεκριμένη κατηγορία, από ένα σύνολο 18 προς το παρόν κατηγοριών. Επίσης παρέχεται η δυνατότητα περιήγησης στις υπηρεσίες αυτές ανά κατηγορία, όπως φαίνεται στην Εικόνα 17. Επίσης στην Εικόνα 18 φαίνονται οι πληροφορίες για κάποια συγκεκριμένη υπηρεσία ι- στού. Εικόνα 17 : O κατάλογος με όλες τις διαθέσιμες υπηρεσίες ιστού, για κάθε μια από τις 18 κατηγορίες. -37-

-38- Εικόνα 18 : Oι πληροφορίες για την υπηρεσία ιστού Real-Time stock quote data for U.S.Equities.

4 Η Εφαρμογή WSDL Book 4.1 Γενικά Το WSDL Book είναι μια διαδικτυακή εφαρμογή που επιτρέπει την αναζήτηση, τον σχολιασμό, την αποθήκευση και την επεξεργασία σχολιασμού των πληροφοριών που λαμβάνονται από τα WSDL αρχεία των υπηρεσιών ιστού. Η εφαρμογή αναπτύχθηκε με βάση το πρότυπο Web 2.0 και παρέχει στους χρήστες όλες τις βασικές διαδραστικές λειτουργίες που συναντώνται σε τέτοιου είδους διαδικτυακές εφαρμογές. Η εφαρμογή, αντί του καταλόγου UDDI, χρησιμοποιεί ένα μοντέλο βάσης δεδομένων για την αποθήκευση και αναζήτηση των υπηρεσιών ιστού. Η βάση δεδομένων λοιπόν, είναι η MySQL 5.2, καθώς όπως θα δούμε αργότερα, χρησιμοποιούνται πολλά από τα χαρακτηριστικά της όπως η απλότητα, η ταχύτητα καθώς και η αναζήτηση κειμένου που παρέχει. Οι λειτουργίες που υποστηρίζονται από την εφαρμογή WSDL Book είναι : Εγγραφή και εισαγωγή χρήστη στο σύστημα. Εισαγωγή ενός αρχείου wsdl που περιγράφει μια ή περισσότερες υπηρεσίες ιστού. Εισαγωγή της ηλεκτρονικής τοποθεσίας (url) στην οποία βρίσκεται το αρχείο wsdl. Ανάλυση του αρχείου και εξαγωγή όλων των πληροφοριών που περιέχονται σε αυτό και αφορούν τις υπηρεσίες ιστού που περιγράφει. Δυνατότητα τροποποίησης των πληροφοριών του wsdl αρχείου ή εισαγωγής νέων πληροφοριών. Δυνατότητα αποθήκευσης των πληροφοριών των υπηρεσιών ιστου στη Βάση Δεδομένων. Δυνατότητα απλής αναζήτησης κάποιας συγκεκριμένης υπηρεσίας ιστού. -39-

Δυνατότητα σύνθετης (καλύτερα κατευθυνόμενης) αναζήτησης μιας υπηρεσίας ιστού. Πλοήγηση σε όλες τις αποθηκευμένες υπηρεσίες ιστού. Επισκόπηση όλων των πληροφοριών για μια συγκεκριμένη υπηρεσία ιστού : o Λειτουργικές πληροφορίες. o Πληροφορίες του χρήστη που έκανε εισαγωγή τη συγκεκριμένη υπηρεσία ιστού. Επισκόπηση όλων των υπηρεσιών ιστού που έκανε εισαγωγή κάποιος συγκεκριμένος χρήστης. 4.2 Η Αρχιτεκτονική του Συστήματος 4.2.1 Γενικά Η εφαρμογή WSDL Book μπορεί γενικότερα να χωριστεί στα παρακάτω 4 υποσυστήματα, όπως φαίνεται στην Εικόνα 19 : 1. DB Settings : Στη κλάση αυτή ορίζονται οι παράμετροι της Βάσης Δεδομένων όπως το όνομα του σχήματος της ΒΔ, το όνομα και κωδικός πρόσβασης του διαχειριστή και τοποθεσία σύνδεσης (connection url) και αφορούν τη ΒΔ mysql όπου θα συνδεθεί η εφαρμογή. Επίσης ορίζεται μια σειρά από βάρη τα οποία καθορίζουν το πώς θα γίνει η αναζήτηση μιας υπηρεσίας ι- στού που θα περιγραφεί αργότερα. Τα παραπάνω φαίνονται στον Πίνακας 1. 2. WSDL Parser : Είναι η βασική κλάση που περιέχει όλες τις απαραίτητες συναρτήσεις για να γίνει η ανάλυση ενός wsdl αρχείου και να εξαχθούν οι πληροφορίες των υπηρεσιών ιστού που ορίζονται σε αυτό. 3. DB Bus : Η κλάση αυτή αποτελεί ουσιαστικά τη δίοδο από την εφαρμογή στη ΒΔ. Περιέχει τις απαραίτητες συναρτήσεις για να διαβαστούν οι πληροφορίες που αφορούν κάποια αποθηκευμένη υπηρεσία ιστού. Επίσης περιέχονται οι συναρτήσεις για την αποθήκευση όλων των πληροφοριών που α- φορούν μια συγκεκριμένη υπηρεσία. -40-

4. Service Search : Είναι η κλάση που περιέχει τις απαραίτητες συναρτήσεις για να επιτευχθεί η αναζήτηση υπηρεσίας ιστού από κάποιον χρήστη του wsdl book. Η διαδικασία της αναζήτησης θα περιγραφεί αργότερα. Εικόνα 19 : Τα υποσυστήματα που απαρτίζουν το σύστημα WSDL Book. -41-

package wsdl_book; /** * * @author Georgakakis Nikos */ public class DB_Settings{ public String Username = "root"; public String Password = "geobros"; public String Schema = "wsdl_book"; public String connectionurl = "jdbc:mysql://localhost:3306/wsdl_book?" + "characterencoding=utf8&connectioncollation=utf8_general_ci"; public String Driver = "com.mysql.jdbc.driver"; } public float WEIGHT_DOC = (float)0.4; public float WEIGHT_EXTRA_DOC = (float)0.3; public float WEIGHT_CAT = (float)0.3; public float WEIGHT_NAME = (float)0.1; public String FullTextSearchMethod = " IN BOOLEAN MODE "; //public String FullTextSearchMethod = " WITH QUERY EXPANSION "; Πίνακας 1 : Οι βασικοί παράμετροι του συστήματος που ορίζονται στο αρχείο DB_Settings. 4.2.2 Εισαγωγή στο WSDL Book Η εκκίνηση της εφαρμογής WSDL Book από κάποιον περιηγητή, θα εμφανίσει τη σελίδα της Εικόνα 20. Από αυτή τη σελίδα, ο επισκέπτης της σελίδας μπορεί : Να εισέλθει ή να εγγραφεί στο σύστημα (όπως φαίνεται στην Εικόνα 20, από κουμπί Login/Register πάνω δεξιά). Να περιηγηθεί από το κύριο μενού στις υποσελίδες της εφαρμογής : o Insert WSDL : όπου ο χρήστης μπορεί να εισάγει κάποιο wsdl αρχείο που περιγράφει κάποιες υπηρεσίες ιστού. Οι υπηρεσίες αυτές αποθηκεύονται στο σύστημα. o Search : όπου ο χρήστης μπορεί να αναζητήσει μια υπηρεσία ιστού εισάγοντας κάποιο κείμενο το οποίο να την περιγράφει. o Advanced Search : όπου ο χρήστης μπορεί να αναζητήσει μια υπηρεσία ιστού εισάγοντας μόνο κάποια συγκεκριμένα πεδία. Η διαδικασία θα περιγραφεί αργότερα. o Browse Web Services : όπου ο χρήστης μπορεί να δει όλες τις αποθηκευμένες υπηρεσίες ιστού και τις πληροφορίες για την καθεμία από αυτές. -42-

o Contact : όπου είναι μια σελίδα με πληροφορίες για το πώς κάποιος χρήστης μπορεί να επικοινωνήσει με τους υπεύθυνους του συστήματος (αποστολή e-mail). Εικόνα 20 : Η αρχική σελίδα της εφαρμογής WSDL Book. 4.3 Το Σχήμα της Βάσης Δεδομένων Όπως αναφέρθηκε και προηγουμένως, αντί του καταλόγου UDDI, το σύστημα χρησιμοποιεί μια βάση δεδομένων. Έτσι, οι πληροφορίες για κάθε υπηρεσία ιστού αποθηκεύονται με μια σχεσιακή δομή, τέτοια που να μας επιτρέπει να αναζητούμε γρήγορα και εύκολα την υπηρεσία ιστού που μας ενδιαφέρει. Από το Κεφάλαιο 2, γνωρίζουμε πως μια υπηρεσία ιστού χαρακτηρίζεται από τις διαδικασίες (operations) που προσφέρει, κάθε μια από τις οποίες έχουν κάποιες εισό- -43-

δους και (συνήθως) κάποιες εξόδους. Οι είσοδοι και οι έξοδοι είναι ουσιαστικά τα μηνύματα που μεταφέρονται μέσω του SOAP πρωτοκόλλου. Η σχέση λοιπόν ανάμεσα σε μια υπηρεσία ιστού, στις διεργασίες της, στις εισόδους και εξόδους της καθεμίας κλπ, γίνεται με την αντιστοίχηση κάποιων αναγνωριστικών (id) ανάμεσα στους πίνακες της ΒΔ. Στην Εικόνα 21 φαίνεται το διάγραμμα σχέσεων της ΒΔ στο οποίο παρουσιάζονται οι πίνακες καθώς και οι σχέσεις μεταξύ τους. Οι πίνακες αυτοί αφορούν στις υπηρεσίες ιστού που αποθηκεύονται στο σύστημα αλλά και στους χρήστες που είναι εγγεγραμμένοι σε αυτό. Εικόνα 21 : Tο διάγραμμα σχέσεων της Βάσης Δεδομένων του συστήματος WSDL Book. -44-

4.4 Χρήστες και Δικαιώματα Στο σύστημα υπάρχουν δυο κατηγορίες χρηστών, οι απλοί χρήστες και οι διαχειριστές. Τα δικαιώματα που έχει η κάθε κατηγορία είναι : Απλοί χρήστες : Εισαγωγή αρχείου ή τοποθεσίας ενός WSDL αρχείου. Επεξεργασία των πληροφοριών των υπηρεσιών ιστού που περιγράφονται στο αρχείο αυτό. Αποθήκευση των πληροφοριών των υπηρεσιών ιστού που περιέχονται στο αρχείο WSDL στο σύστημα. Έχουν το δικαίωμα αναζήτησης κάποιας από τις αποθηκευμένες υπηρεσίες ιστού Μπορούν να δουν τις πληροφορίες όλων των αποθηκευμένων στο σύστημα υπηρεσιών ιστού. Διαχειριστές : Έχουν όλα τα δικαιώματα των απλών χρηστών. Έχουν δικαιώματα επεξεργασίας όλων των αποθηκευμένων στο σύστημα υπηρεσιών ιστού. Έχουν δικαιώματα διαγραφής οποιασδήποτε υπηρεσίας ιστού που είναι α- ποθηκευμένη στο σύστημα. 4.4.1 Εγγραφή χρήστη στο σύστημα Κάθε χρήστης που εισέρχεται στην εφαρμογή για πρώτη φορά, θεωρείται «επισκέπτης». Για να μπορεί να χρησιμοποιήσει τις δυνατότητές του, θα πρέπει να κάνει αίτηση εγγραφής σε αυτό (Register). Η αίτηση εγγραφής είναι μια φόρμα που καλείται να συμπληρώσει ο χρήστης και φαίνεται στην Εικόνα 22, στην οποία υπάρχουν τα πεδία: Username : ο χρήστης εισάγει το ψευδώνυμο με το οποίο θέλει να εισέρχεται στο σύστημα και το οποίο θα μπορούν να βλέπουν οι υπόλοιποι χρήστες. E-Mail : η ηλεκτρονική διεύθυνση του χρήστη First Name : Το πραγματικό όνομα του χρήστη Last Name : Το επώνυμό του χρήστη -45-