ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. «Εξαγωγή Γνώσης από Αποθήκες Υπηρεσιών Παγκόσμιου Ιστού»



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

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

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

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

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

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

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

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

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

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

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

Ομαδοποίηση ΙΙ (Clustering)

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

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

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

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

Προγραμματισμός ΙI (Θ)

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

Εργαστήριο Σημασιολογικού Ιστού

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

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

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

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΘΕΜΑ 1 Τεχνικές Εξαγωγής Συµφράσεων από εδοµένα Κειµένου και Πειραµατική Αξιολόγηση

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

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

Αποµακρυσµένη κλήση διαδικασιών

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

7.2.2 Σχέση OSI και TCP/IP

7.2 Τεχνολογία TCP/IP

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

Τυπικές χρήσεις της Matlab

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Τεχνικές NLP Σχεδιαστικά Θέματα

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

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

ΚΕΦΑΛΑΙΟ 5. Matlab GUI για FWSVM και Global SVM

Ανάκτηση Πληροφορίας

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης

Περιεχόμενο του μαθήματος

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

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

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

Μεταπτυχιακή Διατριβή

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Περίπτωση Χρήσης Use case

Τεχνικές Εξόρυξης Δεδομένων

Ηλεκτρονικό εμπόριο. HE 8 Εξατομίκευση

ΚΕΦΑΛΑΙΟ Web Services

7.11 Πρωτόκολλα εφαρµογής

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

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

ΠΛΑΤΩΝΑΣ Έργο ΓΓΕΤ 1SME2009

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

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

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

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

Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα:

Εισαγωγή στη Σχεδίαση Λογισμικού

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Οδηγός χρήσης Connection Manager

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων»

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

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων

ΕΡΓΑΣΙΑ 3. Παίζοντας Sudoku. Ημερομηνία Ανάρτησης: 16/03/2018 Ημερομηνία Παράδοσης: 03/04/2018, 09:00

ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN

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

Έκδοσης 2005 Π. Κεντερλής

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

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

Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών

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

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

Transcript:

ΠΟΛΥΤΕΧΝΕΙΟ ΠΑΤΡΑΣ TMHMA ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ «Εξαγωγή Γνώσης από Αποθήκες Υπηρεσιών Παγκόσμιου Ιστού» (Knowledge Extraction from Web Services Repositories) Κιούφτης Βασίλειος Μηχανικός Ηλεκτρονικών Υπολογιστών και Πληροφορικής Επιβλέπων Καθηγητής: Τσακαλίδης Αθανάσιος Καθηγητής Πάτρα, Οκτώβριος 2013

2

ΠΟΛΥΤΕΧΝΕΙΟ ΠΑΤΡΑΣ TMHMA ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ «Εξαγωγή Γνώσης από Αποθήκες Υπηρεσιών Παγκόσμιου Ιστού» (Knowledge Extraction from Web Services Repositories) Κιούφτης Βασίλειος Μηχανικός Ηλεκτρονικών Υπολογιστών και Πληροφορικής Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 23 η Οκτωβρίου 2013. (Υπογραφή) (Υπογραφή) (Υπογραφή) Μακρής Χρήστος Επίκουρος Καθηγητής Πανεπιστημίου Πατρών Τσακαλίδης Αθανάσιος Καθηγητής Πανεπιστημίου Πατρών Ιωάννης Γαροφαλάκης Καθηγητής Πανεπιστημίου Πατρών Πάτρα, Οκτώβριος 2013 3

4

Ευχαριστίες Στο σημείο αυτό θα ήθελα να εκφράσω τις θερμές μου ευχαριστίες στον επιβλέποντα καθηγητή, Καθηγητή κ. Α. Τσακαλίδη, που μου εμπιστεύτηκε την ανάθεση αυτή της διπλωματικής εργασίας καθώς επίσης και για το χρήσιμο συμβουλευτικό του έργο. Στη συνέχεια, θέλω να πω ένα μεγάλο ευχαριστώ στον Δρ. Ευάγγελο Θεοδωρίδη για την ανυπολόγιστη βοήθεια και υποστήριξη που μου παρείχε από τη στιγμή που μου ανατέθηκε αυτή η διπλωματική εργασία. Τέλος, θα ήθελα να ευχαριστήσω τους γονείς μου και τον αδερφό μου για την υποστήριξη που μου παρείχαν σε όλα αυτά τα χρόνια των προπτυχιακών και μεταπτυχιακών σπουδών μου. 5

Περίληψη Με την αυξανόμενη χρήση του Παγκόσμιου Ιστού και των Συστημάτων Προσανατολισμένων στις Υπηρεσίες, οι υπηρεσίες παγκόσμιου ιστού έχουν γίνει μίας ευρέως διαδεδομένη ως προς τη χρήση τεχνολογία. Οι αποθήκες υπηρεσιών παγκόσμιου ιστού αναπτύσσονται με ραγδαίους ρυθμούς, δημιουργώντας την ανάγκη ανάπτυξης προηγμένων εργαλείων για την οργάνωση και δεικτοδότησή τους. Η ομαδοποίηση των υπηρεσιών παγκόσμιου ιστού, οι οποίες συνήθως αναπαρίστανται από έγγραφα Γλώσσας Περιγραφής Υπηρεσιών Παγκόσμιου Ιστού (Web Service Description Language - WSDL), καθιστά τις μηχανές αναζήτησης υπηρεσιών παγκόσμιου ιστού αλλά και τους χρήστες ικανούς να οργανώνουν και να επεξεργάζονται μεγάλες αποθήκες υπηρεσιών σε ομάδες με παρόμοια λειτουργικότητα και χαρακτηριστικά. Σε αυτή την εργασία προτείνουμε μια νέα τεχνική για την ομαδοποίηση των WSDL εγγράφων. Η προτεινόμενη μέθοδος θεωρεί τις υπηρεσίες παγκόσμιου ιστού ως κατηγορικά δεδομένα όπου κάθε υπηρεσία περιγράφεται από ένα σύνολο τιμών που εξάγονται από το περιεχόμενο και τη δομή του αντίστοιχου αρχείου περιγραφής και ως μέτρο ποιότητας της ομαδοποίησης ορίζεται η αμοιβαία πληροφορία μεταξύ των ομάδων και των τιμών τους. Περιγράφουμε τον τρόπο με τον οποίο οι υπηρεσίες παγκόσμιου ιστού αναπαρίστανται ως κατηγορικά δεδομένα και ομαδοποιούνται, χρησιμοποιώντας τον αλγόριθμο ομαδοποίησης κατηγορικών δεδομένων LIMBO, ελαχιστοποιώντας συγχρόνως την απώλεια πληροφορίας στις τιμές που εξάγονται από τα γνωρίσματα. Κατά την πειραματική αξιολόγηση, η δική μας προσέγγιση υπερέχει σε απόδοση F- Measure τις τεχνικές που χρησιμοποιούν εναλλακτικές μετρικές ομοιότητας και μεθόδους για την ομαδοποίηση WSDL εγγράφων. Λέξεις κλειδιά - Αποθήκες υπηρεσιών παγκόσμιου ιστού, Ομαδοποίηση WSDL εγγράφων, Εξαγωγή γνώσης. 6

Abstract With the increasing use of web and Service Oriented Systems, web-services have become a widely adopted technology. Web services repositories are growing fast, creating the need for advanced tools for organizing and indexing them. Clustering web services, usually represented by Web Service Description Language (WSDL) documents, enables the web service search engines and users to organize and process large web service repositories in groups with similar functionality and characteristics. In this paper, we propose a novel technique of clustering WSDL documents. The proposed method considers web services as categorical data and each service is described by a set of values extracted from the content and structure of its description file and as quality measure of clustering is defined the mutual information of the clusters and their values. We describe the way to represent web services as categorical data and how to cluster them by using LIMBO algorithm, minimizing at the same time the information loss in features values. In experimental evaluation, our approach outperforms in terms of F-Measure the approaches which use alternative similarity measures and methods for clustering WSDL documents. Keywords-Web services repositories, Clustering WSDL documents, Knowledge extraction. 7

Περιεχόμενα Ευχαριστίες... 5 Περίληψη... 6 Abstract... 7 1 Εισαγωγή... 10 2 Υπηρεσίες Παγκόσμιου Ιστού (Web Services)... 12 2.1 Εισαγωγή... 12 2.2 Αρχιτεκτονική... 13 2.2.1 Ρόλοι... 14 2.2.2 Λειτουργίες... 14 2.2.3 Στοίβα πρωτοκόλλων υπηρεσιών παγκόσμιου ιστού... 14 2.3 Ανταλλαγή XML μηνυμάτων... 15 2.4 Περιγραφή υπηρεσίας : WSDL... 17 2.4.1 Προδιαγραφές WSDL... 18 2.4.2 Παράδειγμα ενός WSDL εγγράφου: HelloService.wsdl... 19 3 Ομαδοποίηση WSDL εγγράφων... 22 3.1 Εισαγωγή... 22 3.2 Συνοπτική παρουσίαση βιβλιογραφίας... 23 3.3 Τεχνική 1: «Ομαδοποίηση υπηρεσιών παγκόσμιου ιστού με εξαγωγή χαρακτηριστικών από τα WSDL έγγραφα»... 26 3.3.1 Προτεινόμενη μέθοδος... 26 3.4 Τεχνική 2: «Ομαδοποίηση υπηρεσιών παγκόσμιου ιστού με χρήση πολυδιάστατων γωνιών ως μέτρα εγγύτητας»... 29 3.4.1 Δεικτοδότηση WSDL εγγράφων... 29 3.4.2 Αλγόριθμος ομαδοποίησης... 30 4 Ομαδοποίηση κατηγορικών δεδομένων... 34 4.1 Εισαγωγή... 34 4.2 Βασικά στοιχεία από τη Θεωρία Πληροφορίας... 35 4.3 Ομαδοποίηση κατηγορικών δεδομένων με την χρήση του αλγορίθμου Agglomerative Information Bottleneck... 36 4.4 Αλγόριθμος LIMBO... 39 4.4.1 Διανεμητικά Γνωρίσματα Ομάδας (Distributional Cluster Features)... 39 4.4.2 Το DCF-δέντρο... 40 4.4.3 Ο αλγόριθμος ομαδοποίησης LIMBO... 40 4.4.4 Εφαρμογή βαρών... 42 8

5 Ομαδοποίηση WSDL εγγράφων με τη χρήση αλγορίθμου ομαδοποίησης κατηγορικών δεδομένων LIMBO... 44 5.1 Εισαγωγή... 44 5.2 Εξαγωγή χαρακτηριστικών από τα WSDL έγγραφα... 45 5.2.1 WSDL Περιεχόμενο (WSDL Content)... 45 5.2.2 WSDL Μηνύματα (WSDL Messages)... 47 5.2.3 WSDL Θύρες (WSDL Port Types)... 48 5.2.4 Όνομα υπηρεσίας (Web Service Name)... 48 5.3 Ομαδοποίηση... 49 5.4 Αναπαράσταση υπηρεσιών παγκόσμιου ιστού ως κατηγορικά δεδομένα για είσοδο στο LIMBO αλγόριθμο... 52 5.5 Παραλλαγές αναπαράστασης... 54 5.5.1 Αριθμός εμφανίσεων των τιμών σε κάθε πλειάδα... 55 5.5.2 Σχήμα βαρών... 56 6 Πειραματική αξιολόγηση... 60 6.1 Σύνολα Δεδομένων (Datasets)... 60 6.2 Μετρικές ποιότητας ομαδοποίησης... 62 6.3 Αξιολόγηση των διαφορετικών σχημάτων αναπαράστασης των δεδομένων... 63 6.4 Συγκριτικές αξιολογήσεις... 66 7 Συμπεράσματα... 70 8 Μελλοντική Εργασία... 72 Βιβλιογραφία... 74 9

1 Εισαγωγή Οι υπηρεσίες παγκόσμιου ιστού (web services) είναι μία δημοφιλής τεχνολογία για την επικοινωνία μεταξύ των εφαρμογών μέσω των δικτύων όπως είναι το Intranet, το Διαδίκτυο (Internet) και ο Παγκόσμιος Ιστός (Web). Η Aρχιτεκτονική Προσανατολισμένη στην Υπηρεσία (Service-Oriented-Architecture) αποτελεί στις μέρες μας κυρίαρχο σύστημα ανάπτυξης, γεγονός που οφείλεται στα χαρακτηριστικά αυτονομίας, αφαιρετικότητας και δυνατότητα ανακάλυψης που την διέπουν, καθιστώντας τις υπηρεσίες παγκοσμίου ιστού μια ευρέως χρησιμοποιούμενη τεχνολογία 1. Επιπλέον, η αρχιτεκτονική Internet of Things (IoT) 2 δίνει τη δυνατότητα σε εκατομμύρια συσκευών (έξυπνα κινητά, ενσωματωμένες συσκευές κτλ) να αποκτούν πρόσβαση στο διαδίκτυο. Στο πλαίσιο αυτό, οι προγραμματιστές συνήθως χρησιμοποιούν τις υπηρεσίες παγκόσμιου ιστού για να επιταχύνουν την διαδικασία ανάπτυξης λογισμικού για επικοινωνία μεταξύ συσκευών και εξυπηρετών παγκόσμιου ιστού. Σε αυτό το σύνθετο περιβάλλον όπου ένα πλήθος εξυπηρετών παγκόσμιου ιστού και συσκευών δημοσιεύει υπηρεσίες στο παγκόσμιο ιστό, τίθεται η ανάγκη για πιο εξειδικευμένους μηχανισμούς αναζήτησης. Οι πιο δημοφιλείς τεχνικές στην ανακάλυψη υπηρεσιών παγκόσμιου ιστού είναι το Universal Description Discovery and Integration (UDDI) 3, ένα μητρώο βασισμένο στον παγκόσμιο ιστό που χρησιμοποιείται από επιχειρήσεις για διαφήμιση και από καταναλωτές για ανακάλυψη υπηρεσιών που ταιριάζουν στις ανάγκες τους και οι μηχανές αναζήτησης. Το κύριο μειονέκτημα αυτών των τύπων ανακάλυψης και μηχανισμών χρήσης είναι το γεγονός ότι η αναζήτηση περιορίζεται στο ταίριασμα λέξης κλειδιού. Οι χρήστες και προγραμματιστές συνήθως θέτουν ένα ερώτημα και οι λέξεις κλειδιά πραγματοποιούν ταίριασμα με το όνομα, την τοποθεσία και την περιγραφή που ορίζονται στις προδιαγραφές ενός WSDL εγγράφου. Αυτό οδηγεί σε χαμηλά αποτελέσματα ανάκτησης υπηρεσιών καθώς οι μηχανισμοί ανακάλυψης δεν θα επιτρέψουν αποτελέσματα με συνώνυμα, υπερώνυμα ή υπώνυμα αν αυτοί οι όροι δεν αναφέρονται ρητά στη δομή του εγγράφου περιγραφής. Επομένως, ο χρήστης είναι υπεύθυνος για την σωστή επιλογή της λέξης κλειδιού προκειμένου να ανακτήσει την κατάλληλη υπηρεσία. Για παράδειγμα, αν ο χρήστης ψάχνει για υπηρεσίες διαδικτύου που σχετίζονται με «όχημα», δεν θα του επιστραφούν αποτελέσματα που αφορούν το «αυτοκίνητο», αν το λήμμα «όχημα» δεν είναι παρόν στο όνομα ή την περιγραφή της υπηρεσίας παγκόσμιου ιστού. Προκειμένου να αντιμετωπιστεί αποτελεσματικά το παραπάνω θέμα, προτείνεται ως λύση η ομαδοποίηση των υπηρεσιών παγκόσμιου ιστούpp σε ομάδες με παρόμοια λειτουργικότητα. Η διαδικασία της ομαδοποίησης μπορεί να εκτελεστεί κατά τον εντοπισμό υπηρεσιών παγκόσμιου ιστού από μηχανές αναζήτησης ή όταν ένας χρήστης επιθυμεί την επέκταση των αποτελεσμάτων που σχετίζονται με μια επιλεγμένη υπηρεσία. 1 http://www.oracle.com/technetwork/articles/javase/soa-142870.html 2 http://www.theinternetofthings.eu/ 3 http://uddi.org/pubs/uddi_v3.htm 10

Οι περισσότερες μέθοδοι ομαδοποίησης υπηρεσιών παγκόσμιου ιστού χρησιμοποιούν μετρικές ομοιότητας για τον υπολογισμό της απόστασης μεταξύ των αναπαραστάσεων δύο υπηρεσιών, έτσι ώστε οι παρόμοιες να τοποθετηθούν στην ίδια συστάδα και οι ανόμοιες σε διαφορετικές. Σε αυτή την εργασία, προτείνουμε μια νέα μέθοδο ομαδοποίησης WSDL εγγράφων, στοχεύοντας στην τοποθέτηση των υπηρεσιών με παρόμοια λειτουργικότητα στην ίδια ομάδα. Στην προσέγγισή μας, θεωρούμε τα WSDL έγγραφα ως κατηγορικά δεδομένα. Στηριζόμενοι στην τεχνική Information Bottleneck Method, θεωρούμε τα WSDL έγγραφα ως μία τυχαία μεταβλητή και οι τιμές που εξάγονται από συγκεκριμένα χαρακτηριστικά των εγγράφων όλων των υπηρεσιών ως μία δεύτερη τυχαία μεταβλητή. Στόχος είναι η πρώτη τυχαία μεταβλητή να συμπιεστεί με τέτοιο τρόπο έτσι ώστε να διατηρηθεί όσο περισσότερη πληροφορία είναι δυνατόν για τις τιμές των χαρακτηριστικών. Στην περίπτωσή μας, η συμπίεση αντιστοιχεί στην ομαδοποίηση των εγγράφων με σκοπό να πάρουμε μια τέτοια ομαδοποίηση που η απώλεια της πληροφορίας στις τιμές των χαρακτηριστικών να είναι ελάχιστη. Για το λόγο αυτό, χρησιμοποιούμε την αμοιβαία πληροφορία (mutual information) από την θεωρία πληροφορίας των ομάδων και των εξαγόμενων τιμών προκειμένου να μετρήσουμε την ποιότητα ομαδοποίησης. Τέλος, κάνουμε αξιολόγηση της προσέγγισης με διαφορετικά σύνολα δεδομένων εισόδου και συγκρίνουμε τα αποτελέσματα ως προς την ανάκληση και την ακρίβεια με δύο άλλες αποδοτικές μεθόδους. Στο μεγαλύτερο ποσοστό των περιπτώσεων η μέθοδός μας αποφέρει καλύτερα αποτελέσματα ομαδοποίησης. 11

2 Υπηρεσίες Παγκόσμιου Ιστού (Web Services) 2.1 Εισαγωγή Μία υπηρεσία παγκόσμιου ιστού είναι μία υπηρεσία η οποία είναι διαθέσιμη στο Διαδίκτυο, χρησιμοποιεί ένα πρότυπο XML σύστημα ανταλλαγής μηνυμάτων και δεν είναι προσδεμένη σε κάποιο λειτουργικό σύστημα ή κάποια γλώσσα προγραμματισμού. Εικόνα 1 - Υπηρεσία Παγκόσμιου Ιστού Υπάρχουν πολλές εναλλακτικές για τη χρήση του XML συστήματος ανταλλαγής μηνυμάτων. Για παράδειγμα, θα μπορούσε κάποιος να χρησιμοποιήσει τις XML Κλήσεις Απομακρυσμένης Διαδικασίας(Remote Procedure Calls) ή την τεχνολογία SOAP, τις οποίες περιγράφουμε στη συνέχεια. Εναλλακτικά, θα μπορούσε κάποιος να χρησιμοποιεί τις μεθόδους HTTP GET/POST και να περάσει XML έγγραφα. Οποιαδήποτε από αυτές τις επιλογές μπορεί να δουλέψει. Αν και δεν είναι απαραίτητο, μία υπηρεσία παγκόσμιου ιστού μπορεί να έχει δύο επιπλέον ιδιότητες: Μία υπηρεσία παγκόσμιου ιστού θα πρέπει να είναι αυτό-περιγραφική: Αν κάποιος δημοσιεύσει μία νέα υπηρεσία παγκόσμιου ιστού, θα πρέπει επίσης να κάνω γνωστό στο κοινό μια αντίστοιχη διεπαφή για την υπηρεσία που θα περιγράφει τη λειτουργικότητα της υπηρεσίας. Η υπηρεσία θα πρέπει να παρέχει, τουλάχιστον, μια τεκμηρίωση με την οποία οι υπόλοιποι προγραμματιστές να μπορούν να ενσωματώσουν την υπηρεσία στην εφαρμογή τους πιο εύκολα. Στην περίπτωση της υπηρεσίας ανταλλαγής μηνυμάτων μέσω της αρχιτεκτονικής SOAP, μαζί με την δημοσίευση της υπηρεσίας θα πρέπει να παρέχεται μια διεπαφή γραμμένη σε κοινή XML γραμματική. Η XML γραμματική μπορεί να χρησιμοποιηθεί για να κοινοποιήσει τις δημόσιες μεθόδους της υπηρεσίας, τα ορίσματα και τιμές που επιστρέφονται. Μία υπηρεσία παγκόσμιου ιστού θα πρέπει να εντοπίζεται: Όταν κάποιος δημιουργεί μια υπηρεσία παγκόσμιου ιστού, θα πρέπει να υπάρχει ένας σχετικά απλός μηχανισμός για την δημοσίευση αυτής της υπηρεσίας. Επίσης, θα πρέπει να υπάρχει ένας απλός μηχανισμός όπου οι ενδιαφερόμενες ομάδες να μπορούν να εντοπίσουν την υπηρεσία και τη δημόσια διεπαφή της. 12

Περιληπτικά, μία ολοκληρωμένη υπηρεσία παγκόσμιου ιστού είναι μια υπηρεσία η οποία: 1. Είναι διαθέσιμη μέσω του Παγκόσμιου Ιστού ή ιδιωτικών δικτύων 2. Χρησιμοποιεί ένα πρότυπο XML σύστημα ανταλλαγής μηνυμάτων 3. Δεν προσδένεται σε κάποιο λειτουργικό σύστημα ή γλώσσα προγραμματισμού 4. Να μπορεί να περιγράφει τον εαυτό της χρησιμοποιώντας μια κοινή XML γραμματική 5. Να μπορεί να εντοπιστεί μέσω ενός απλού μηχανισμού εύρεσης κι ανακάλυψης Ένα παράδειγμα χρήσης μίας τέτοιας υπηρεσίας είναι για την ενημέρωση σχετικά με την κατάσταση μιας παραγγελίας από ένα ηλεκτρονικό κατάστημα. Το ηλεκτρονικό κατάστημα μπορεί να παρέχει μια διαδικτυακή υπηρεσία που να απαντά σε σχετικό ερώτημα και ο πελάτης να ενσωματώσει τα δεδομένα που παίρνει αυτόματα από αυτή την υπηρεσία στη δική του διαδικτυακή εφαρμογή. 2.2 Αρχιτεκτονική Η αρχιτεκτονική των υπηρεσιών στηρίζεται στις αλληλεπιδράσεις μεταξύ τριών ξεχωριστών ρόλων: παροχέας υπηρεσίας (web service provider), κατάλογος υπηρεσιών (web service registry) και ο αιτών υπηρεσίας (web service requestor). Εικόνα 2 - Ρόλοι της αρχιτεκτονικής υπηρεσιών παγκόσμιου ιστού Οι αλληλεπιδράσεις συμπεριλαμβάνουν την δημοσίευση (publish), εύρεση (find) και σύνδεση(bind). Όλα μαζί, οι ρόλοι και οι λειτουργίες επιδρούν στην λειτουργική μονάδα του λογισμικού της υπηρεσίας και της περιγραφής της. Σε ένα τυπικό σενάριο, ο παροχέας της υπηρεσίας φιλοξενεί μια υλοποίηση της υπηρεσίας που είναι προσβάσιμη από το διαδίκτυο. Ο παροχέας της υπηρεσίας ορίζει μια περιγραφή για την υπηρεσία και την δημοσιοποιεί απευθείας στον αιτούντα ή στο κατάλογο υπηρεσιών. Ο αιτών χρησιμοποιεί μια λειτουργία αναζήτησης προκειμένου να ανακτήσει την περιγραφή της υπηρεσίας τοπικά ή από το μητρώο υπηρεσιών και χρησιμοποιεί την περιγραφή της υπηρεσίας για να συνδεθεί με τον παροχέα και να αλληλεπιδράσει με την υλοποίησή της που φιλοξενείται στον 13

εξυπηρετητή του παροχέα. 2.2.1 Ρόλοι Παροχέας υπηρεσίας (Service provider): Παρέχει την υπηρεσία στο διαδίκτυο και δημοσιοποιεί την περιγραφή στον κατάλογο υπηρεσιών. Είναι αυτός που υλοποιεί την υπηρεσία και την κάνει διαθέσιμη στο κοινό. Αιτών (Service Requestor): Οποιοσδήποτε που καταναλώνει την υπηρεσία. Ο αιτών κάνει χρήση μιας τέτοιας, αρχικά εντοπίζοντάς την σε ένα μητρώο υπηρεσιών και στη συνέχεια εγκαθιδρύοντας μια σύνδεση με τον παροχέα της και τέλος αποστέλλοντας ένα XML αίτημα που συναντά τις προδιαγραφές της υπηρεσίας. Ένα τέτοιο ρόλο μπορεί να τον έχει για παράδειγμα ένας φυλλομετρητής καθοδηγούμενος από κάποιο φυσικό πρόσωπο ή από πρόγραμμα χωρίς διεπαφή χρήστη ( πχ μία άλλη υπηρεσία). Κατάλογος υπηρεσιών (Service Registry): Ένας κεντρικός κατάλογος υπηρεσιών στον οποίο οι παροχείς δημοσιεύουν τις περιγραφές των υπηρεσιών τους προκειμένου να μπορούν να εντοπιστούν από τους υποψήφιους καταναλωτές. Παρόλα αυτά όμως, ο κατάλογος αποτελεί προαιρετικό ρόλο στην αρχιτεκτονική, καθώς μια τέτοια περιγραφή υπηρεσίας μπορεί να γίνει απευθείας διαθέσιμη στον καταναλωτή (τοπικό αρχείο, FTP, ιστοσελίδα κτλ). 2.2.2 Λειτουργίες Προκειμένου μια εφαρμογή να εκμεταλλευτεί τα πλεονεκτήματα των υπηρεσιών παγκόσμιου ιστού, τρεις λειτουργίες πρέπει να λάβουν χώρα οι οποίες δίνονται στη συνέχεια: Δημοσίευση (Publish): Για να είναι μια υπηρεσία προσβάσιμη, πρέπει να δημοσιευθεί μια περιγραφή της υπηρεσίας έτσι ώστε ο αιτών να μπορεί να την εντοπίσει. Εύρεση (Find): Κατά την λειτουργία της εύρεσης, ο αιτών της υπηρεσίας ανακτά μια περιγραφή της απευθείας ή θέτοντας ερωτήματα στον κατάλογο για την ανάκτηση περιγραφών των υπηρεσιών που ταιριάζουν στις ανάγκες του. Σύνδεση (bind): Στην λειτουργία της σύνδεσης, ο αιτών αλληλεπιδρά με την υπηρεσία κατά τον χρόνο της εκτέλεσης της εφαρμογής χρησιμοποιώντας τις λεπτομέρειες της σύνδεσης από το περιγραφικό αρχείο της υπηρεσίας για να εντοπίσει, επικοινωνήσει και να επικαλεστεί τις λειτουργίες της υπηρεσίας. 2.2.3 Στοίβα πρωτοκόλλων υπηρεσιών παγκόσμιου ιστού Μια δεύτερη επιλογή για να δούμε την αρχιτεκτονική των υπηρεσιών παγκόσμιου ιστού είναι να εξετάσουμε τη στοίβα πρωτοκόλλων των υπηρεσιών. Η στοίβα αυτή έχει τέσσαρα κύρια επίπεδα τα οποία είναι τα εξής: Επίπεδο μεταφοράς (Service Transport): Το επίπεδο είναι υπεύθυνο για την 14

μεταφορά των μηνυμάτων μεταξύ των εφαρμογών. Το επίπεδο αυτό συμπεριλαμβάνει τα πρωτόκολλα HTTP, SMTP, FTP κτλ Ανταλλαγή XML μηνυμάτων (XML Messaging): Αυτό το επίπεδο είναι υπεύθυνο για την κωδικοποίηση των μηνυμάτων σε κοινή μορφοποίηση XML έτσι ώστε τα μηνύματα να είναι κατανοητά από άκρο σε άκρο. Προς το παρόν αυτό το επίπεδο συμπεριλαμβάνει τα πρωτόκολλα XML-RPC και SOAP. Περιγραφή Υπηρεσίας (Service Description): Το επίπεδο περιγραφής της υπηρεσίας είναι υπεύθυνο για τη περιγραφή της δημόσιας διεπαφής της υπηρεσίας. Η περιγραφή αυτή προς το παρόν χειρίζεται μέσω του Web Service Description Language (WSDL). Ανακάλυψη Υπηρεσίας (Service Discovery): Αυτό το επίπεδο είναι υπεύθυνο για την συγκέντρωση των υπηρεσιών σε ένα κοινό κατάλογο, παρέχοντας έναν εύκολο μηχανισμό δημοσίευσης/ εύρεσης. Ο κατάλογος αυτός χειρίζεται μέσω του Universal Description, Discovery and Integration (UDDI). Εικόνα 3 - Στοίβα πρωτοκόλλων υπηρεσιών παγκόσμιου ιστού 2.3 Ανταλλαγή XML μηνυμάτων Το πρωτόκολλο XML έχει γίνει δημοφιλές στην επιστήμη των υπολογιστών τα τελευταία χρόνια. Έχει γνωρίσει ευρεία αποδοχή λόγω του γεγονότος ότι καθιστά ικανά ξεχωριστά υπολογιστικά συστήματα να διαμοιράζονται δεδομένα πιο εύκολα, ανεξαρτήτως λειτουργικού συστήματος ή γλώσσα προγραμματισμού. Υπάρχουν δεκάδες εργαλεία XML συμπεριλαμβανομένου αναλυτών και εργαλείων κειμένου που είναι διαθέσιμα για σχεδόν κάθε λειτουργικό σύστημα και κάθε γλώσσα προγραμματισμού όπως Java, Perl,Python, C#, C, C++ και Ruby. Όταν οι προγραμματιστές αποφάσισαν να χτίσουν ένα σύστημα ανταλλαγής μηνυμάτων, το XML ήταν μια προφανής επιλογή. Υπάρχουν δύο κύρια πρωτόκολλα για την ανταλλαγή XML μηνυμάτων: XML-RPC και SOAP, τα οποία παρουσιάζουμε στη συνέχεια. XML-RPC Το XML-RPC είναι ένα απλό πρωτόκολλο το οποίο χρησιμοποιεί XML μηνύματα για να εκτελέσει απομακρυσμένες κλήσεις ρουτινών(rpcs). Οι αιτήσεις κωδικοποιούνται σε XML και στέλνονται μέσω HTTP POST. Οι XML αποκρίσεις ενσωματώνονται στο σώμα της HTTP απόκρισης. Επειδή το XML-RPC είναι 15

ανεξάρτητο της πλατφόρμας, επιτρέπει ξεχωριστές εφαρμογές να επικοινωνούν μεταξύ τους. Για παράδειγμα, ένας πελάτης Java μπορεί να μιλήσει XML-RPC σε ένα εξυπηρέτη Perl. Για να αποκτήσουμε μια καλύτερη αντίληψη του XML-RPC, ας σκεφτούμε μια υπηρεσία που αφορά τον καιρό. Η υπηρεσία περιμένει έναν ταχυδρομικό κωδικό και επιστρέφει την τρέχουσα θερμοκρασία για την περιοχή. Παρακάτω δίνεται ένα δείγμα XML-RPC αιτήματος προς την υπηρεσία καιρού: <?xml version= 1.0 encoding= ISO-8859-1?> <methodcall> <methodname>weather.getweather</methodname> <params> <param><value>10016</value></param> </params> </methodcall> Αυτό το αίτημα αποτελείται από ένα απλό methodcall στοιχείο που προσδιορίζει το όνομα και τις παραμέτρους της μεθόδου. Στη συνέχεια δίνεται η αντίστοιχη απόκριση: <?xml version= 1.0 encoding= ISO-8859-1?> <methodresponse> <params> <param><value><int>65</int></value></param> </params> </methodcall> Η απόκριση αποτελείται από ένα απλό στοιχείο methodresponse το οποίο προσδιορίζει την επιστρεφόμενη τιμή. Σε αυτή την περίπτωση, η επιστρεφόμενη τιμή ορίζεται ως ένας ακέραιος. Το πρωτόκολλο XML-RPC είναι ο ευκολότερος τρόπος για να ξεκινήσει κάποιος με τις υπηρεσίες παγκόσμιου ιστού και επίσης είναι απλούστερος του SOAP. Όμως, αντίθετα με το SOAP, το XML-RPC δεν έχει αντίστοιχη γραμματική περιγραφής της υπηρεσίας. Αυτό αποτρέπει από την αυτόματη κλήση των XML-RPC υπηρεσιών. SOAP Το SOAP ένα πρωτόκολλο ανταλλαγής μηνυμάτων βασισμένο στην XML γραμματική. Παρόλο που το SOAP μπορεί να χρησιμοποιηθεί σε μια ποικιλία συστημάτων ανταλλαγής μηνυμάτων και να παραδοθούν μέσω μιας ποικιλίας πρωτοκόλλων μεταφοράς, η κύρια λειτουργία του είναι τα RPCs που μεταδίδονται μέσω της HTTP. Όπως και το XML-RPC, έτσι και το SOAP είναι ανεξάρτητο της πλατφόρμας και ως εκ τούτου καθιστά ικανές τις διάφορες εφαρμογές να επικοινωνούν μεταξύ τους. Στη συνέχεια δίνουμε ένα δείγμα αιτήματος SOAP: <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap-env="http://www.w3.org/2001/09/soap-envelope" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:getweather xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle=" http://www.w3.org/2001/09/soap-encoding 16

<zipcode xsi:type="xsd:string">10016</zipcode> </ns1:getweather> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Όπως βλέπουμε, το αίτημα SOAP είναι ελαφρώς πιο πολύπλοκο από το XML-RPC αίτημα. Κάνει χρήση και του χώρου ονομάτων XML και του σχήματος XML. Όπως στο XML-RPC, όμως, το σώμα του αιτήματος SOAP προσδιορίζεται τόσο το όνομα μιας μεθόδου όσο και μια λίστα παραμέτρων. <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap-env="http://www.w3.org/2001/09/soap-envelope" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:getweatherresponse xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding"> <return xsi:type="xsd:int">65</return> </ns1:getweatherresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Η απόκριση υποδεικνύει μία επιστρεφόμενη τιμή τύπου ακεραίου. 2.4 Περιγραφή υπηρεσίας : WSDL Το WSDL αντιπροσωπεύει το επίπεδο περιγραφής της υπηρεσίας στη στοίβα πρωτοκόλλων των υπηρεσιών. To WSDL έγγραφο είναι μια προδιαγραφή η οποία προσδιορίζει τον τρόπο με τον οποίο θα περιγραφεί μια υπηρεσία σε κοινή XML γραμματική. ΤΟ WSDL δίνει τέσσερα είδη πληροφορίας σχετικά με τα δεδομένα: Πληροφορίες διεπαφής περιγράφοντας όλες τις διαθέσιμες μεθόδους που είναι προσβάσιμες από το κοινό. Πληροφορίες για τους τύπους δεδομένων για όλα τα μηνύματα απόκρισης και αίτησης Πληροφορίες σύνδεσης όσον αφορά το πρωτόκολλο μεταφοράς που θα χρησιμοποιηθεί. Πληροφορίες διεύθυνσης για τον εντοπισμό της υπηρεσίας Γενικά, ένα WSDL έγγραφο αναπαριστά μία σύμβαση μεταξύ του αιτούντα και του παροχέα, με όμοιο τρόπο με τον οποίο μία διεπαφή της Java αναπαριστά μια σύμβαση μεταξύ του κώδικα πελάτη και του πραγματικό αντικειμένου Java. Σημαντική διαφορά αποτελεί το γεγονός ότι το WSDL είναι ανεξάρτητο της πλατφόρμας και της γλώσσας και χρησιμοποιείται κυρίως για να περιγράψει SOAP υπηρεσίες. Χρησιμοποιώντας το πρότυπο WSDL, ένας πελάτης μπορεί να εντοπίσει την υπηρεσία και να καλέσει οποιαδήποτε από τις διαθέσιμες μεθόδους. Επομένως, το WSDL αποτελεί τον ακρογωνιαίο λίθο της αρχιτεκτονικής υπηρεσιών παγκόσμιου ιστού επειδή παρέχει μια κοινή γλώσσα για να περιγράφει υπηρεσίες και μια πλατφόρμα για την αυτόματη ενσωμάτωση αυτών των υπηρεσιών. 17

2.4.1 Προδιαγραφές WSDL Όπως είπαμε προηγουμένως, το WSDL είναι μια γραμματική για την περιγραφή υπηρεσιών παγκόσμιου ιστού. Η προδιαγραφή διαιρείται σε έξι κύρια XML στοιχεία: definitions: Το στοιχείο ορισμοί (definitions) πρέπει να είναι το στοιχείο ρίζα όλων των WSDL εγγράφων. Ορίζει το όνομα της υπηρεσίας παγκόσμιου ιστού, δηλώνει πολλαπλούς χώρους ονομάτων που χρησιμοποιούνται στο υπόλοιπο έγγραφο και περιέχει όλα τα στοιχεία που περιγράφονται στη συνέχεια. types: Το στοιχείο τύποι (types) περιγράφει όλους τους τύπους δεδομένων που χρησιμοποιούνται για την επικοινωνία μεταξύ του πελάτη και του εξυπηρέτη. Το WSDL δεν προσδένεται αποκλειστικά σε ένα συγκεκριμένο σύστημα τύπων αλλά χρησιμοποιεί τις προδιαγραφές του W3C XML σχήματος σαν προεπιλεγμένη επιλογή. Εάν η υπηρεσία χρησιμοποιεί μόνο τους απλούς τύπους του XML σχήματος όπως συμβολοσειρές και ακεραίους, το στοιχείο types δεν είναι απαραίτητο. message: Το στοιχείο μήνυμα (message) περιγράφει ένα μονόδρομο μήνυμα, είτε είναι ένα απλό μήνυμα αίτησης ή ένα απλό μήνυμα απόκρισης. Ορίζει όνομα του μηνύματος και περιέχει μηδέν ή περισσότερα στοιχείαμέρη (part elements), που μπορεί να αναφέρονται στις παραμέτρους μηνύματος ή στις επιστρεφόμενες τιμές. porttype: Το στοιχείο θύρα (porttype) συνδυάζει πολλαπλά μηνύματα για να σχηματίσει μία πλήρη μονόδρομη ή round-trip λειτουργία (operation). Για παράδειγμα, μία θύρα μπορεί να συνδυάσει ένα μήνυμα αιτήματος και ένα μήνυμα απόκρισης σε μία λειτουργία αίτησης/απόκρισης, το πιο κοινό που χρησιμοποιείται στις υπηρεσίες SOAP. Να σημειωθεί ότι μία θύρα ορίζει πολλαπλές λειτουργίες(operations). binding: Το στοιχείο σύνδεση (binding) περιγράφει τον τρόπο με τον οποίο μία υπηρεσία θα υλοποιηθεί πάνω στο καλώδιο. Η WSDL προδιαγραφή συμπεριλαμβάνει επεκτάσεις για τον ορισμό SOAP υπηρεσιών κι επομένως πληροφορίες που αφορούν το SOAP πάνε εκεί. service: Το στοιχείο υπηρεσία (service) ορίζει την διεύθυνση για την κλήση μίας συγκεκριμένης υπηρεσίας και πιο συγκεκριμένα το URL για την κλήση μίας υπηρεσίας SOAP. Εικόνα 4 - Η προδιαγραφή WSDL 18

H Εικόνα 4 δίνει μια συνοπτική αναπαράσταση της προδιαγραφής WSDL. Επί προσθέτως, εκτός των έξι κυρίων στοιχείων, η WSDL προδιαγραφή ορίζει επίσης τα ακόλουθα στοιχεία: documentation: Το στοιχείο τεκμηρίωση (documentation) χρησιμοποιείται για να παρέχει μία περιγραφή και μπορεί να συμπεριληφθεί μέσα σε οποιοδήποτε WSDL στοιχείο. import: Το στοιχείο είσοδος (import) χρησιμοποιείται για να εισάγει άλλα WSDL έγγραφα ή XML σχήματα. Αυτό καθιστά ικανά τα WSDL έγγραφα να είναι πιο αρθρωτά. Για παράδειγμα, δύο WSDL έγγραφα μπορούν να εισάγουν μερικά βασικά στοιχεία και ακόμη να συμπεριλάβουν τα δικά τους στοιχεία service για να κάνουν διαθέσιμη την ίδια υπηρεσία διαθέσιμη σε δύο φυσικές διευθύνσεις. 2.4.2 Παράδειγμα ενός WSDL εγγράφου: HelloService.wsdl Στην παράγραφο αυτή δίνουμε ένα παράδειγμα δομής ενός WSDL εγγράφου. Στην Εικόνα 5 παρέχουμε ένα παράδειγμα εγγράφου με το όνομα HelloService.wsdl το οποίο περιγράφει μία υπηρεσία που ονομάζεται HelloService. Η υπηρεσία αυτή παρέχει μία δημόσια διαθέσιμη μέθοδο, την sayhello. Η μέθοδος περιμένει μία παράμετρο τύπου συμβολοσειρά και επιστρέφει μία απλή συμβολοσειρά χαιρετισμού. Για παράδειγμα, αν ο πελάτης περάσει μια παράμετρο με τη λέξη world, η υπηρεσία επιστρέφει το χαιρετισμό Hello, world!. Στη συνέχεια αναλύουμε τα επιμέρους στοιχεία του παραδείγματος: definitions Το στοιχείο definitions ορίζει ότι το έγγραφο είναι η υπηρεσία HelloService. Επίσης προσδιορίζει πολυάριθμους χώρους ονομάτων που θα χρησιμοποιηθούν στο υπόλοιπο του εγγράφου. Η χρήση των χώρων ονομάτων είναι σημαντική για να διαφοροποιεί τα στοιχεία και καθιστά το έγγραφο ικανό να αναφέρεται σε πολλαπλές εξωτερικές προδιαγραφές, συμπεριλαμβανομένων των WSDL, SOAP και XML προδιαγραφών. Το στοιχείο definitions επίσης προσδιορίζει ένα γνώρισμα targetnamespace. Το targetnamespace είναι μία σύμβαση που καθιστά το WSDL έγγραφο ικανό να αναφέρεται στον εαυτό του. Στο παράδειγμα της Εικόνα 4, ορίσαμε ένα targetnamespace ως http://www.ecerami.com/wsdl/helloservice.wsdl. Να σημειωθεί, όμως, ότι ο προσδιορισμός του χώρου ονομάτων δεν χρειάζεται από το έγγραφο να βρίσκεται πράγματι σε αυτή την τοποθεσία. Το σημαντικό είναι να προσδιοριστεί μια τιμή που είναι μοναδική σε σχέση με τους άλλους ορισμένους χώρους ονομάτων. Τέλος, το definitions προσδιορίζει ένα προεπιλεγμένο χώρο ονομάτων: xmlns=http://schemas.xmlsoap.org/wsdl/. Όλα τα στοιχεία χωρίς πρόθεμα χώρου ονομάτων, όπως το message ή porttype, τα θεωρούμε ως μέρος του αντίστοιχου προεπιλεγμένου χώρου. message 19

Ορίζονται δύο μηνύματα. Το πρώτο αναπαριστά ένα μήνυμα αιτήματος, SayHelloRequest και το δεύτερο ένα μήνυμα απόκρισης, SayHelloResponse. Κάθε ένα από αυτά περιέχει ένα μονό στοιχείο μέρος (part). Για το αίτημα, το μέρος προσδιορίζει τις παραμέτρους της συνάρτησης, όπου στην περίπτωσή μας <definitions name="helloservice" targetnamespace="http://www.ecerami.com/wsdl/helloservice.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/helloservice.wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <message name="sayhellorequest"> <part name="firstname" type="xsd:string"/> </message> <message name="sayhelloresponse"> <part name="greeting" type="xsd:string"/> </message> <porttype name="hello_porttype"> <operation name="sayhello"> <input message="tns:sayhellorequest"/> <output message="tns:sayhelloresponse"/> </operation> </porttype> <binding name="hello_binding" type="tns:hello_porttype"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="sayhello"> <soap:operation soapaction="sayhello"/> <input> <soap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </input> <output> <soap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </output> </operation> </binding> <service name="hello_service"> <documentation>wsdl File for HelloService</documentation> <port binding="tns:hello_binding" name="hello_port"> <soap:address location="http://www.examples.com/sayhello/"> </port> </service> </definitions> Εικόνα 5 - HelloService.wsdl προσδιορίζεται μία παράμετρος με το όνομα firstname. Για την απόκριση, το τμήμα προσδιορίζει τις επιστρεφόμενες τιμές της συνάρτηση όπου στην περίπτωσή μας μία μοναδική τιμή επιστρέφεται με το όνομα greeting. Το γνώρισμα type ορίζει ένα τύπο δεδομένων του XML σχήματος. Η τιμή του γνωρίσματος type πρέπει να προσδιοριστεί ως ένα XML σχήμα QName - αυτό σημαίνει ότι η τιμή του γνωρίσματος θα πρέπει να έχει προσδιοριστεί στο χώρο ονομάτων. Για παράδειγμα, το γνώρισμα firstname type τίθεται ως xsd:string. Το xsd πρόθεμα αναφέρεται στο χώρο ονομάτων του XML σχήματος, ορισμένο 20

νωρίτερα μέσα στο στοιχείο definitions. Αν η συνάρτηση περιμένει πολλαπλά ορίσματα ή επιστρέφει πολλαπλές τιμές, θα πρέπει να προσδιοριστούν και τα μέρη του (parts) porttype Το στοιχείο porttype ορίζει μια λειτουργία με το όνομα sayhello. Η λειτουργία αποτελείται από ένα μήνυμα εισόδου (SayHelloRequest) και από ένα μήνυμα εξόδου (SayHelloResponse). Όπως ορίστηκε το γνώρισμα type νωρίτερα, το γνώρισμα μήνυμα πρέπει να οριστεί σαν ένα XML Schema QName. Αυτό σημαίνει ότι η τιμή του γνωρίσματος πρέπει να προσδιοριστεί από το χώρο ονομάτων. Για παράδειγμα, το στοιχείο εισόδου (input) προσδιορίζει ένα γνώρισμα message τύπου tns:sayhellorequest. binding Το στοιχείο σύνδεσης (binding) παρέχει συγκεκριμένες λεπτομέρειες για το πώς μια λειτουργία porttype θα μεταδοθεί μέσω του καλωδίου. Οι συνδέσεις μπορούν να γίνουν διαθέσιμες μέσω πολλαπλών μεταδόσεων συμπεριλαμβανομένων των HTTP GET, HTTP POST ή SOAP. Στην πραγματικότητα, μπορούν να οριστούν πολλαπλές συνδέσεις για μία θύρα. Το στοιχείο της σύνδεσης ορίζει τα γνωρίσματα όνομα(name) και τύπος (type). Το γνώρισμα τύπος αναφέρεται στην θύρα που ορίζεται νωρίτερα στο έγγραφο. Στην δική μας περίπτωση, το στοιχείο σύνδεσης αναφέρεται στη θύρα tns:hello_porttype, ορισμένη νωρίτερα στο έγγραφο. Το στοιχείο αυτό συνεπώς λέει: Θα παρέχω σαφείς λεπτομέρειες για το πώς η λειτουργία sayhello θα μεταδοθεί στο διαδίκτυο. service Το στοιχείο υπηρεσία (service) προσδιορίζει την τοποθεσία της υπηρεσίας. Επειδή πρόκειται για SOAP υπηρεσία, χρησιμοποιούμε το στοιχείο soap:address και προσδιορίζουμε την τοπική διεύθυνση για τον Apache SOAP rpcrouter servlet: http://localhost:8080/soap/servlet/rpcrouter. 21

3 Ομαδοποίηση WSDL εγγράφων 3.1 Εισαγωγή Στην εισαγωγή της εργασίας, περιγράψαμε το κύριο πρόβλημα που διέπει την ανακάλυψη μιας υπηρεσίας παγκόσμιου ιστού χρησιμοποιώντας μηχανές αναζήτησης και το UDDI τα οποία περιορίζονται στο ταίριασμα της λέξης κλειδί που δίνει ο χρήστης με το όνομα(name), επιχείρηση(business) και tmodel (μοναδικά αναγνωριστικά για επαναχρησιμοποιήσιμα σενάρια) το οποίο οδηγεί σε χαμηλά ποσοστά ανάκλησης υπηρεσιών. Με την ανάπτυξη όμως τoυ service και cloud computing, η ανακάλυψη μιας τέτοιας υπηρεσίας αποτελεί ένα ευρέως διαδεδομένο αντικείμενο έρευνας. Η χρήση κοινών προτύπων περιγραφής για τις υπηρεσίες παγκόσμιου ιστού, όπως το WSDL, καθιστά ικανή την επέκταση της έρευνας όσον αφορά τους καταλόγους υπηρεσιών και τους αντίστοιχους μηχανισμούς ανάκλησης. Ειδικά στους καταλόγους υπηρεσιών, ένας τεράστιος αριθμός υπηρεσιών θα πρέπει να δεικτοδοτηθεί και να ανακληθεί με έναν γρήγορο και αποδοτικό τρόπο με τον οποίο θα εξασφαλιστεί κι η κλιμακωσιμότητα. Μία πρόσθετη ανάγκη που προκύπτει από τον αυξανόμενο αριθμό εγγραφών είναι η αυτόματη δημιουργία μιας λίστας με τις σχετικές υπηρεσίες που ταιριάζουν σε ένα δοθέν ερώτημα. Τέτοιες στοιχειώδεις ικανότητες είναι λίγο πολύ μέρος κάθε καταλόγου υπηρεσιών παγκόσμιου ιστού. Στις περισσότερες περιπτώσεις, αυτοί οι κατάλογοι δεν εστιάζουν στην λειτουργία αναζήτησης ή στην αποδοτικότητα. Μια λύση για να ξεπεράσουμε τα παραπάνω θέματα μερικής επιστροφής αποτελεσμάτων είναι να εμπλουτίσουμε τα αποτελέσματα μιας μηχανής αναζήτησης με έναν αριθμό σχετικών υπηρεσιών που εκπληρώνουν παρόμοια λειτουργικότητα. Για το λόγο αυτό στη βιβλιογραφία προτείνονται διάφορες τεχνικές ομαδοποίησης των υπηρεσιών σε ομάδες με παρόμοια λειτουργικότητα όπως υπηρεσίες που περιγράφουν τον καιρό, πιστωτικές κάρτες, e-mails κτλ Η ομαδοποίηση μπορεί να εφαρμοστεί είτε κατά το crawling WSDL εγγράφων από μηχανές αναζήτησης είτε ως επέκταση αποτελεσμάτων βάσει μιας επιλογής αποτελέσματος από τον χρήστη. Στην πρώτη περίπτωση, όταν ο χρήστης κάνει αναζήτηση με μία λέξη κλειδί τότε επιστρέφονται τα έγγραφα που περιέχουν τη λέξη κλειδί αλλά και τα υπόλοιπα έγγραφα που ανήκουν στις ομάδες των επιστρεφόμενων αποτελεσμάτων. Έτσι αν ο χρήστης αναζητήσει έγγραφα με τη λέξη κλειδί «όχημα», θα επιστραφούν οπωσδήποτε αυτά που περιέχουν το «όχημα» στο περιεχόμενο τους αλλά και τα υπόλοιπα έγγραφα που περιέχουν τη λέξη «αυτοκίνητο» και με την εφαρμογή του αλγόριθμου ομαδοποίησης έχουν ενταχθεί επιτυχώς στην ίδια ομάδα. Στην δεύτερη περίπτωση, πρώτα επιστρέφονται όλα τα αποτελέσματα που ταιριάζουν ακριβώς στη λέξη κλειδί ( πχ όλα τα έγγραφα με τη λέξη «όχημα») και στη συνέχεια ο χρήστης αφού επιλέξει ένα από αυτά, επιστρέφονται και αυτά που περιέχονται στην ίδια ομάδα. Με την δεύτερη τεχνική, εξαλείφεται το πρόβλημα επιστροφής αποτελεσμάτων από δύο διαφορετικές ομάδες λόγω αμφισημίας της λέξης ( όπως θα συνέβαινε με τη λέξη διεύθυνση που περιέχεται είτε σε ομάδες που παρέχουν πληροφορίες για τη διεύθυνση ή για e- mail). 22

Στη συνέχεια δίνουμε μια συνοπτική παρουσίαση των ιδεών που έχουν αναπτυχθεί σχετικά με την ανακάλυψη μιας υπηρεσίας και περιγράφουμε εκτενέστερα δύο τεχνικές τις οποίες έχουμε υλοποιήσει και συγκρίνει την απόδοση με τον δικό μας αλγόριθμο. Τέλος, η τεχνική που προτείνει ο Platzer [3] και παρουσιάζεται στη συνέχεια αναλυτικά και χρησιμοποιείται ως δεύτερος αλγόριθμος σύγκρισης προτείνει μια ομαδοποίηση που βασίζεται στην στατιστική υπολογίζοντας τις παρόμοιες υπηρεσίες για μια επιλεγμένη υπηρεσία χρησιμοποιώντας ως μετρική ποιότητας την πολυδιάστατη γωνία των διανυσμάτων που προκύπτουν από την εξαγωγή των λέξεων από τα WSDL έγγραφα. 3.2 Συνοπτική παρουσίαση βιβλιογραφίας Στην παρούσα φάση υπάρχουν δύο είδη υπηρεσιών παγκόσμιου ιστού. Οι μη σημασιολογικές που περιγράφονται από WSDL έγγραφα και οι σημασιολογικές που χρησιμοποιούν γλώσσες οντολογίας (OWL-S) [21] ως γλώσσα περιγραφής. Οι μη σημασιολογικές υπηρεσίες είναι οι πιο δημοφιλείς και υποστηρίζονται τόσο από τη βιομηχανία όσο και από τα εργαλεία ανάπτυξης. Η διαδικασία ανακάλυψης είναι αρκετά διαφορετική σύμφωνα με τη μέθοδο περιγραφής υπηρεσιών παγκόσμιου ιστού. Οι σημασιολογικές ανακαλύπτονται με προσεγγίσεις ταιριάσματος υψηλού επιπέδου [22] ενώ η ανακάλυψη μη σημασιολογικών υπηρεσιών παγκόσμιου ιστού χρησιμοποιεί τεχνικές ανάκτησης πληροφορίας [23]. Στην δική μας προσέγγιση, έχουμε θέσει ως στόχο την ανακάλυψη μη σημασιολογικών υπηρεσιών. Ο Nayaκ [24] προτείνει μια μέθοδο για να βελτιώσει την διαδικασία ανακάλυψης υπηρεσιών παγκόσμιου ιστού χρησιμοποιώντας το συντελεστή Jaccard για να υπολογίσει την ομοιότητας μεταξύ υπηρεσιών παγκόσμιου ιστού. Παρέχει στον χρήση παρόμοιους όρους αναζήτησης οι οποίοι βασίζονται στο ιστορικό άλλων χρηστών με παρόμοια ερωτήματα. Αντίθετα, η δική μας προσέγγιση ομαδοποιεί τις υπηρεσίες παγκόσμιου ιστού βασιζόμενοι στη λειτουργικότητά τους προκειμένου να μειωθεί ο χώρος αναζήτησης και να βελτιωθεί το ταίριασμα ερωτήματος. Πολλές προσπάθειες έχουν γίνει για να ξεπεραστούν τα μειονεκτήματα των τεχνικών που βασίζονται στην ανακάλυψη μέσω των UDDI μητρώων. Ο Guan [25] προτείνει δύο μηχανισμούς ανακάλυψης που βασίζονται στη συνεργασία δύο μηχανισμών ανακάλυψης μεταξύ του UDDI και του Directory Facilitator (DF) για να βελτιωθεί η αποδοτικότητα ανακάλυψης των υπηρεσιών που βασίζονται στο UDDI. Όμως, η μελέτη δεν δίνει αρκετές αποδείξεις για την αποτελεσματικότητα της προσέγγισής τους για την βελτίωση της διαδικασίας ανακάλυψης των υπηρεσιών παγκόσμιου ιστού. Οι Shuiguang και άλλοι [26] προτείνουν ένα μοντέλο πληροφορίας για καταχωρημένες υπηρεσίες για να βελτιώσουν το ταίριασμα κατά την διαδικασία ανακάλυψης. Οι συγγραφείς χρησιμοποιούν ακρίβεια και ανάκληση για να μετρήσουν την απόδοση της προσέγγισής τους. Οι Sajjanhar και άλλοι[37] εφαρμόζουν μια συνάρτηση παλινδρόμησης, την singular value decomposition, για την ανακάλυψη σημασιολογικών σχέσεων ανάμεσα στις υπηρεσίες με στόχο το ταίριασμα των καλύτερων υπηρεσιών. Τα προκαταρκτικά αποτελέσματα δείχνουν μια σημαντική αύξηση στο σωστό ταίριασμα μεταξύ των περιγραφών των υπηρεσιών και των όρων αναζήτησης μετά την εφαρμογή του αλγορίθμου στο UDDI της IBM. Τα αποτελέσματα που ταιριάζουν δεν στηρίζονται πλήρως στον αριθμό των λέξεων κλειδιών που ταιριάζουν με τις 23

περιγραφές των υπηρεσιών αλλά ο αλγόριθμος αξιολογεί τα καθολικά βάρη των κλειδιών μέσα από την SVD διαδικασία και συσσωρεύει τις υπηρεσίες που περιέχουν λέξεις κλειδιά με το μεγαλύτερο καθολικό βάρος για να εντοπίσουν υπηρεσίες που ταιριάζουν σημασιολογικά. Ο Xin Dong και άλλοι [11] περιγράφουν μια τεχνική αναζήτησης βασισμένη στην ομαδοποίηση, η οποία πραγματοποιείται στη μηχανή αναζήτησης που έχουν υλοποιήσει, Woogle. Η προσέγγισή τους αποτελείται από δύο φάσεις: πρώτον, ο χρήστης θέτει ένα ερώτημα στην μηχανή αναζήτησης προσδιορίζοντας ένα σύνολο από λέξεις κλειδιά. Η μηχανή αναζήτησης επιστρέφει μία λίστα από υπηρεσίες παγκόσμιου ιστού που ταιριάζουν σε αυτό το ερώτημα. Δεύτερον, το εργαλείο αυτό εξάγει ένα σύνολο από σημασιολογικές έννοιες χρησιμοποιώντας φυσικές γλώσσες περιγραφής που παρέχονται μαζί με τις υπηρεσίες παγκόσμιου ιστού στην αποθήκη. Για να γίνει αυτό, οι συγγραφείς εκμεταλλεύονται την συνύπαρξη των όρων στις εισόδους και εξόδους των λειτουργιών προκειμένου να ομαδοποιήσουν τους όρους σε έννοιες που έχουν σημασία εφαρμόζοντας αλγόριθμο συσσωρευμένης ομαδοποίησης. Αυτό καθιστά δυνατό τον συνδυασμό των αρχικών λέξων κλειδιά με τις εξαγόμενες έννοιες και την σύγκριση δύο υπηρεσιών σε επίπεδο λέξεων κλειδιά και εννοιών προκειμένου να βελτιωθεί η ακρίβεια και η ανάκληση. Αυτή η προσέγγιση οδηγεί σε σημαντικά καλύτερα αποτελέσματα από μία απλή αναζήτηση που βασίζεται σε λέξεις κλειδιά. Μειονέκτημα της τεχνικής αυτής είναι ότι χρειάζεται ένα συγκεκριμένο επίπεδο προεπεξεργασίας κάτι που περιορίζει την κλιμακωσιμότητα. Επιπλέον, η μηχανή τους, δεν λαμβάνει υπ όψιν τους τύπους δεδομένων που συνήθως αποκαλύπτουν σημαντική πληροφορία για τις λειτουργίες των υπηρεσιών[27]. Οι Wang και Stroulia [36] ανέπτυξαν μία μέθοδο για ανάθεση τιμών ομοιότητας στα WSDL έγγραφα. Χρησιμοποιούν το μοντέλο Vector Space Model και τη βάση δεδομένων λέξεων Wordnet για να αναλύσουν την σημασιολογία των αναγνωριστικών των WSDL εγγράφων προκειμένου να συγκρίνουν τις μεταξύ τους δομές των υπηρεσιών, μηνυμάτων και τύπων και να καθορίσουν την ομοιότητα μεταξύ δύο WSDL εγγράφων. Αυτό βοηθά στην υποστήριξη μιας αυτόματης διαδικασίας για τον εντοπισμό υπηρεσιών παγκόσμιου ιστού διακρίνοντας τις υπηρεσίες που έχουν την δυνατότητα να χρησιμοποιηθούν και αυτές που δεν είναι σχετικές σε μια συγκεκριμένη περίσταση. O Yu[34] στηρίζεται στο γεγονός ότι η λειτουργικότητα μιας υπηρεσίας αντανακλάται από τις λειτουργίες που περιγράφονται στο WSDL έγγραφο. Στην τεχνική αυτή, θεωρούνται δύο τύποι αντικειμένων στο χώρο των υπηρεσιών παγκόσμιου ιστού: υπηρεσίες S={s 1,.,s m } και λειτουργίες Ο={ο 1,..,ο n }. Η συσχέτιση μεταξύ μιας υπηρεσίας s και μιας λειτουργίας ο υποδηλώνεται από μία βαθμωτή τιμή x(s,o). Επομένως, μπορεί να κατασκευαστεί ένας mxn διδιάστατος πίνακας X όπου οι γραμμές αντιστοιχούν στις υπηρεσίες S και οι στήλες στις λειτγουργίες Ο, προκειμένου να υποδηλωθεί η συσχέτιση μεταξύ κάθε υπηρεσίας και λειτουργίας. Κάθε εγγραφή X(, i j) Xυποδηλώνει την συσχέτιση μεταξύ μιας υπηρεσίας s i και μιας λειτουργίας o j. Όταν ο πίνακας X κατασκευαστεί, η ομοιότητα μεταξύ των υπηρεσιών s i και s j μπορεί να υπολογιστεί ως το εσωτερικό γινόμενο των διανυσμάτων της i-στής γραμμής και j-στής στήλης ως sim( si, s j) = X( i,:) X ( j,:). Για να ολοκληρωθεί η κατασκευή του πίνακα X, χρειάζεται να υπολογιστεί η συσχέτιση μεταξύ κάθε ζεύγους υπηρεσίας και λειτουργίας. Αυτό μπορεί να 24

επιτευχθεί αναπαριστώντας τις υπηρεσίες αλλά και τις λειτουργίες σαν N-διάστατα διανύσματα όρων, όπου Ν είναι ο αριθμός των μοναδικών όρων στη συλλογή WSDL κειμένων. Πιο συγκεκριμένα, αν ο k-οστός όρος εμφανιστεί στην περιγραφή της υπηρεσίας s i,η αντίστοιχη εγγραφή στο διάνυσμα όρων θα τεθεί ως η συχνότητα αυτού του όρου. Διαφορετικά, η αντίστοιχη εγγραφή θα είναι 0. Συνεπώς, η συσχέτιση μεταξύ της υπηρεσίας s i και της λειτουργίας o j μπορούν να υπολογιστούν ως το εσωτερικό γινόμενο των διανυσμάτων όρων τους. Τέλος, με τη μέθοδο Nonnegative Matrix Tri-Factorization ο, πίνακας X παραγοντοποιείται σε τρεις πίνακες T χαμηλής τάξης όπου X SRO, όπου ο S αποτελεί ένδειξη ομαδοποίησης των υπηρεσιών και ο O αποτελεί ένδειξη ομαδοποίησης των υπηρεσιών. Ο Hess και άλλοι [35] προτείνουν μία τεχνική και ένα εργαλείο με το όνομα ASSAM, το οποίο επιτρέπει στους προγραμματιστές να δημιουργήσουν σημασιολογική πληροφορία για τις υπάρχουσες υπηρεσίες. Η προσέγγισή τους χρησιμοποιεί έναν επαναληπτικό αλγόριθμο εκμάθησης μηχανής ο οποίος χειρίζεται τις πληροφορίες της υπηρεσίας (λειτουργίες, είσοδοι, έξοδοι) ως ένα πρόβλημα ταξινόμησης. Το εργαλείο μαθαίνει από τα δεδομένα εκπαίδευσης υπάρχουσες υπηρεσίες με σημασιολογική πληροφορία. Οι συγγραφείς ταξινομούν τις υπηρεσίες λαμβάνοντας υπόψη διάφορα γνωρίσματα: κατηγορία ( πχ πληροφορίες για τον καιρό), τομέα( πχ αναζήτηση καιρού δοθέντος ενός κωδικού ZIP) και τύπου δεδομένων (κωδικός ZIP). Η αξιολόγηση δείχνει ότι ο αλγόριθμος εκμάθησης μηχανής βοηθά τους προγραμματιστές να δημιουργήσουν σημασιολογικά σχόλια για συγκεκριμένες υποθέσεις. Αυτή η προσέγγιση σχετίζεται περισσότερο με τον αλγόριθμο του Platzer[3] που παρουσιάζουμε αναλυτικά στη συνέχεια, στον οποίο η πιο προφανής διαφορά είναι ότι δεν χρειάζεται κάποιο σύνολο δεδομένων εκπαίδευσης. Ένα τέτοιο σύνολο δεδομένων αναπαριστά μια οντολογία, ακόμα κι αν διαφέρει στην υλοποίηση. Ακόμα κι αν τα αποτελέσματα που θα παραχθούν θα έχουν μεγαλύτερη αξία αν το σύνολο δεδομένων εκπαίδευσης είναι επαρκές, η μέθοδος του Platzer δεν χρειάζεται οποιαδήποτε αλληλεπίδραση χρήση για να ολοκληρωθεί η εργασία. Κάποιες άλλες τεχνικές ανακάλυψης υπηρεσίας συζητούνται στο [37]. Στη δημοσίευση αυτή προτείνεται μια επέκταση της τρέχουσας υποδομής UDDI για να προστεθούν QoS περιγραφές μιας δοθείσας υπηρεσίας. Επειδή όμως η υποδομή UDDI δεν είναι αρκετά ανοιχτή προς το κοινό, αυτή η προσέγγιση μπορεί να δουλέψει μόνο με υπάρχουσες τεχνολογίες. Άλλωστε, για αυτό το λόγο το UDDI έχει αποτύχει να κυριαρχήσει στο χώρο των υπηρεσιών παγκόσμιου ιστού. Στην εργασία του Benatallah[38] χρησιμοποιούνται σημασιολογικά στοιχεία για την αυτόματη ανακάλυψη υπηρεσιών. Ξέχωρα από τα θέματα ανακάλυψης, η λογική της περιγραφής μπορεί επίσης να χρησιμοποιηθεί για να περιγράψει επίσημα τις σχέσεις μεταξύ των υπηρεσιών. Αυτές οι σχέσεις μπορεί να αναφέρονται στο ταίριασμα εισόδων/εξόδων σε συντακτικό επίπεδο μέχρι και σε περιγραφές QoS ολόκληρης της δομής. Οι Liu και Wong[10] εφαρμόζουν τεχνικές εξόρυξης κειμένου για να εξάγουν γνωρίσματα όπως content, context, host name και name από το περιγραφικό αρχείο μίας υπηρεσίας προκειμένου να ομαδοποιήσουν τις υπηρεσίες. Προτείνουν μία ολοκληρωμένη προσέγγιση εξόρυξης και ομαδοποίησης από τα παραπάνω γνωρίσματα των υπηρεσιών σαν ένα πρώτο βήμα στην ανακάλυψη υπηρεσιών. Ο Elgazzar[4], του οποίου η τεχνική περιγράφεται αναλυτικά στη συνέχεια και 25

χρησιμοποιείται σαν αλγόριθμος σύγκρισης με τον δικό μας, στηρίζεται στην εξαγωγή των γνωρισμάτων περιεχόμενο (content), τύποι (types), μηνύματα (messages), θύρες (ports) και όνομα (name) για την ομαδοποίηση των υπηρεσιών καθώς τα γνωρίσματα service context και service host name προσφέρουν ελάχιστη βοήθεια στην διαδικασία ομαδοποίησης. Επίσης, οι πάροχοι τείνουν να διαφημίζουν τις υπηρεσίες τους στη δική τους σελίδα που σημαίνει ότι παρέχουν διαφορετικές υπηρεσίες στην ίδια σελίδα. Ως εκ τούτου, κάνοντας εξόρυξη στις υπόλοιπες υπηρεσίες ή λαμβάνοντας υπόψιν το host name δεν βοηθά στο νόημα της υπηρεσίας. Επιπλέον, μερικές υπηρεσίες δεν χρησιμοποιούν το στοιχείο documentation στο WSDL έγγραφο, το οποίο συνεπάγεται την ελλιπή πληροφορία για το γνώρισμα του περιεχομένου. 3.3 Τεχνική 1: «Ομαδοποίηση υπηρεσιών παγκόσμιου ιστού με εξαγωγή χαρακτηριστικών από τα WSDL έγγραφα» Η τεχνική που προτείνει ο Elgazzar στο [4] είναι η ομαδοποίηση (clustering) των υπηρεσιών παγκόσμιου ιστού σε παρόμοιες λειτουργικά ομάδες με στόχο την αύξηση της μετρικής ανάκλησης των εγγράφων εξάγοντας τιμές από πέντε χαρακτηριστικά γνωρίσματα του WSDL εγγράφου: 1. WSDL περιεχόμενο (WSDL content) 2. WSDL τύπους (WSDL types) 3. WSDL μηνύματα (WSDL messages) 4. WSDL θύρες (WSDL ports) 5. Web Service Name Η διαδικασία αυτή πραγματοποιείται κατά το crawling των αρχείων περιγραφής από τη μηχανή αναζήτησης, μειώνει το χώρο αναζήτησης υπηρεσιών και βελτιώνει τη διαδικασία ταιριάσματος. 3.3.1 Προτεινόμενη μέθοδος Τα γνωρίσματα που προαναφέραμε περιγράφουν τη λειτουργικότητα που προσφέρει μια υπηρεσία [17] και ο συνδυασμός αυτών οδηγεί στην ομαδοποίηση υπηρεσιών που προσφέρουν όμοιες λειτουργικότητες. Έχοντας ομάδες όμοιων λειτουργικά υπηρεσιών, μία μηχανή αναζήτησης μπορεί να αναγνωρίσει την λειτουργικότητα μίας τέτοιας υπηρεσίας και να ταιριάξει τις υπηρεσίες με τις απαιτήσεις του χρήστη. Πιο συγκεκριμένα, μία μηχανή αναζήτησης εντοπίζει WSDL έγγραφα από το δίκτυο και σε offline mode χρησιμοποιεί τον αλγόριθμο ομαδοποίησης που αναλύεται στη συνέχεια για την ομαδοποίηση παρόμοιων υπηρεσιών. Όταν ο χρήστης κάνει αναζήτηση για μία συγκεκριμένη υπηρεσία παρέχοντας λέξεις κλειδιά, η μηχανή αναζήτησης χρησιμοποιεί τις ομάδες υπηρεσιών για να ταιριάξει σημασιολογικά το ερώτημα και επιστρέφει τις πιο σχετικές υπηρεσίες. Βήμα 1 - Εξαγωγή Γνωρισμάτων Γνώρισμα 1 - Εξαγωγή WSDL περιεχομένου 26

Ένα WSDL έγγραφο διαβάζεται κατευθείαν από το URI. Κάθε WSDL έγγραφο f i περιγράφει και μια υπηρεσία διαδικτύου s i. H εξαγωγή περιεχομένου γίνεται ως εξής: i. WSDL Συντακτική ανάλυση (Parsing WSDL): Αρχικά προκύπτει ένα πίνακα με τις λέξεις που απαρτίζουν το έγγραφο ( επιλέγουμε τις λέξεις που διαχωρίζονται με κενό). Έστω T i αυτός ο πίνακας. ii. Αφαίρεση ετικετών (Tag removal): Όλες οι ετικέτες που αποτελούν μέρος ενός xml εγγράφου αφαιρούνται iii. Εξαγωγή θέματος (Word stemming): Εντοπίζεται το θέμα κάθε λέξης και αντικαθίσταται με αυτό (ο αριθμός των φορών που εμφανίζεται κάθε λέξη-θέμα στο έγγραφο έχει σημασία). iv. Αφαίρεση λειτουργικών λέξεων (Function word removal): Για να αποφανθεί κάποιος αν μια λέξη είναι λειτουργική ή όχι χρησιμοποιείται ο παρακάτω παράγοντας υπερεκτίμησης (overestimation factor): estimateddocumentfreq nˆ Λ w = = w observeddocumentfreq n Όπου n w : αριθμός εγγράφων που περιέχουν τη λέξη w και nˆw ο αριθμός των εκτιμώμενων εγγράφων που περιέχουν τη λέξη w. Για να βρούμε τον αριθμό των εκτιμώμενων εγγράφων, βρίσκουμε τη διαφορά των σελίδων που επιστρέφει μια μηχανή αναζήτησης δίνοντας ως λέξη κλειδί το word και word*word αντίστοιχα, όπου word η επιθυμητή λέξη. Στη συνέχεια κατασκευάζουμε το κατώφλι ως εξής: [ Λ] αν [ Λ ] > 1 thre avg avg Λ = 1 διαϕορετικά Όπου αν Λ w >Λ thre τότε πρόκειται για λέξη περιεχομένου. Στην αντίθετη περίπτωση, θεωρείται λειτουργική λέξη και αφαιρείται από τον πίνακα T i v. Αναγνώριση λέξης περιεχομένου (content word recognition): Στο τελικό στάδιο, διαχωρίζονται αυτές που αποτελούν μέρος σύνταξης ενός WSDL εγγράφου όπως data,web,port κτλ από τις εναπομείναντες λέξεις του πίνακα. Για το σκοπό αυτό χρησιμοποιείται ο αλγόριθμος ομαδοποίησης k-means για να χωριστούν σε 2 ομάδες οι λέξεις που απομένουν όπου η μία περιέχει τις λέξεις που περιγράφουν ένα web service και το άλλο περιέχει τις λέξεις που αποτελούν δεσμευμένες λέξεις του web service. Από τις 2 ομάδες και χρησιμοποιώντας ως μέτρο σύγκρισης το NGD, αυτή που απέχει λιγότερο από την ομάδα {runtime,bind,web,service,module,data,post,developer} αφαιρεί το σύνολο των λέξεών της από το πίνακα T i και απομένουν αυτές που περιέχουν την σημασιολογία της υπηρεσίας. Γνώρισμα 2 - WSDL Τύποι ( σύνθετοι τύποι) Σε κάθε WSDL έγγραφο, ένας σύνθετος τύπος περιέχει την πιο αντιπροσωπευτική πληροφορία. Από κάθε στοιχείο του WSDL εγγράφου ανακτάται ο τύπος του ( που μπορεί να είναι σύνθετος και να περιέχει 2 ή περισσότερα 27 w