Ανάπτυξη Γραφικού Περιβάλλοντος Σύνθεσης Υπηρεσιών Ιστού

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Ανάπτυξη Γραφικού Περιβάλλοντος Σύνθεσης Υπηρεσιών Ιστού"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάπτυξη Γραφικού Περιβάλλοντος Σύνθεσης Υπηρεσιών Ιστού ιπλωµατική Εργασία της Σταµάτη-Κοροµηνά Βερονίκης (ΑΕΜ: 1144) Επιβλέπων Καθηγητής: ΒΑΣΙΛΕΙΑ ΗΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ ΙΑΝΟΥΑΡΙΟΣ 2009

2 Πρόλογος Στις µέρες µας, πλέον, που η ενασχόληση µας µε τις νέες τεχνολογίες συνεχώς αυξάνεται, είναι λογικό και η ανάπτυξη των υπηρεσιών προς τους χρήστες να έχει ανάλογη πορεία. Αυτό έρχεται να το επιβεβαιώσει η εµφάνιση και η ανάπτυξη διαδικτυακών υπηρεσιών, φιλικών και εύχρηστων προς τους χρήστες. Μια άλλη σπουδαία εξέλιξη είναι αυτή του σηµασιολογικού ιστού, ο οποίος σιγά σιγά µετατρέπει τον απλό ιστό σε µια παγκόσµια βάση δεδοµένων και πληροφοριών, η οποία όµως θα έχει τη δυνατότητα να εισάγει τον παράγοντα της γνώσης µέσω των σηµασιολογικών δεδοµένων, που θα χαρακτηρίζουν τους συµµετέχοντες σε αυτή τη βάση. Ο συνδυασµός των δύο νέων αυτών τεχνολογιών δηµιούργησε τις σηµασιολογικές υπηρεσίες ιστού, οι οποίες περιγράφονται από σηµασιολογικά δεδοµένα. Στα πλαίσια, λοιπόν, της ερεύνας αυτών των τεχνολογιών, αναπτύχθηκε µια εφαρµογή, η οποία προσφέρει ένα γραφικό περιβάλλον σύνθεσης υπηρεσιών ιστού που εκµεταλλεύεται τις σηµασιολογικές τους περιγραφές. Η εργασία εκπονήθηκε στα πλαίσια της διπλωµατικής εργασίας κατά το τέταρτο έτος του τµήµατος Πληροφορικής, της σχολής Θετικών Επιστηµών, του Αριστοτελείου Πανεπιστηµίου Θεσσαλονίκης µε την οµάδα Λογικού Προγραµµατισµού και Ευφυών Συστηµάτων (LPIS Group) στο Εργαστήριο Γλωσσών Προγραµµατισµού και Τεχνολογίας Λογισµικού του τµήµατος. Θα ήθελα να ευχαριστήσω ιδιαίτερα τον επιβλέποντα καθηγητή κ. Βασιλειάδη Νικόλαο για την εµπιστοσύνη που µου έδειξε αναθέτοντάς µου τη διπλωµατική εργασία και για την υποστήριξή του σε όλη τη διάρκειά της. Επίσης, θα ήθελα να ευχαριστήσω τον διδάκτορα Μεδίτσκο Γιώργο για την πολύτιµη βοήθεια του σε θέµατα που προέκυψαν κατά τη διάρκεια της εργασίας και η βοήθεια του οποίου ήταν καθοριστική για την ολοκλήρωσή της. Σταµάτη-Κοροµηνά Βερονίκη 20/01/2009 1

3 2

4 Περιεχόµενα ΠΡΟΛΟΓΟΣ...1 ΠEΡIEXOMENA ΕΙΣΑΓΩΓΗ ΥΠΗΡΕΣΙΕΣ ΙΣΤΟΥ ΕΙΣΑΓΩΓΗ ΥΠΗΡΕΣΙΕΣ ΙΣΤΟΥ, ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΚΑΙ ΟΦΕΛΗ ΤΕΧΝΙΚΑ ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΕΣ ΤΩΝ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ XML SOAP WSDL UDDI ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ Η ΕΝΝΟΙΑ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ ΤΕΧΝΟΛΟΓΙΕΣ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ Ενιαίο Αναγνωριστικό Πόρου - URI Επεκτάσιµη Γλώσσα Σήµανσης - XML Ορισµός Τύπου Εγγράφου - DTD XML Schema RDF Resource Description Framework RDF Schema ΟΝΤΟΛΟΓΙΕΣ DAML+OIL OWL Κλάσεις Ιδιότητες Σηµασιολογικός Σχολιασµός Οντολογιών

5 3.4 ΑΞΙΟΠΙΣΤΙΑ ΕΞΕΛΙΞΗ ΣΗΜΑΣΙΟΛΟΓΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΙΣΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΑ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ Αρχιτεκτονικά Μοντέλα Ο ρόλος των µεταδεδοµένων ΠΕΡΙΓΡΑΦΕΣ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ OWL-S WSMO WSDL-S ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΤΑΥΤΙΣΗ Σηµασιολογικές Σχέσεις Σηµασιολογικό Φιλτράρισµα ΑΝΑΚΑΛΥΨΗ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ Προσέγγιση Registry Προσέγγιση Καταλόγου Peer-to-peer Προσέγγιση ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΑ ΥΛΟΠΟΙΗΣΗΣ NetBeans Jena Apache Server Η ΕΦΑΡΜΟΓΗ WESLI ιεπιφάνεια Προγράµµατος Βασικές Λειτουργίες Προγράµµατος ευτερεύουσες Λειτουργίες Προγράµµατος Κλάσεις και Αντικείµενα Προγράµµατος Εξαγωγή Σηµασιολογικών εδοµένων ΣΥΜΠΕΡΑΣΜΑΤΑ...89 ΒΙΒΛΙΟΓΡΑΦΙΑ...91 ΠΑΡΑΡΤΗΜΑ: ΚΩ ΙΚΑΣ ΗΜΙΟΥΡΓΙΑΣ ΓΡΑΦΙΚΩΝ ΑΠΕΙΚΟΝΙΣΕΩΝ ΥΠΗΡΕΣΙΩΝ

6 1 Εισαγωγή Οι υπηρεσίες ιστού (web services) είναι υπηρεσίες που βρίσκονται σε κάποιο διαδικτυακό τόπο και µπορούν να αναφέρονται σε οποιοδήποτε θέµα, όπως για παράδειγµα, στην ηλεκτρονική αγορά κάποιου βιβλίου ή στην εύρεση της τιµής µιας συγκεκριµένης µετοχής. Μια υπηρεσία ιστού µπορεί να δηµιουργηθεί από οποιονδήποτε και χρησιµοποιεί τεχνολογίες οι οποίες είναι βασισµένες στην XML [W3Schools-XML, 2009]. Είναι µια δικτυακή εφαρµογή που έχει αρχίσει να θεωρείται πολύ χρήσιµη και γίνεται ιδιαίτερα δηµοφιλής κυρίως γιατί βασίζεται στην υπάρχουσα υποδοµή του διαδικτύου, όπως για παράδειγµα στο HTTP πρωτόκολλο, και ενισχύει τη διαλειτουργικότητα των εφαρµογών αφού είναι βασισµένη στην XML. Ήδη έχουν ξεκινήσει ορισµένες διαδικασίες τυποποίησης τέτοιων υπηρεσιών και κατά κάποιο τρόπο συγκέντρωσής τους, ώστε να είναι ευκολότερη η αναζήτησή τους αλλά και η χρησιµοποίησή τους από ευρύτερο κοινό. Η δηµιουργία και ανάπτυξη τέτοιων διαδικτυακών υπηρεσιών ενισχύεται ακόµα περισσότερο από την ύπαρξη και την ανάπτυξη του σηµασιολογικού ιστού (semantic web). Ο σηµασιολογικός ιστός είναι η εξέλιξη του διαδικτύου που γνωρίζουµε σήµερα και έρχεται να το ενισχύσει µε σηµασιολογικές πληροφορίες και µεταδεδοµένα, τα οποία θα προσφέρουν τη δυνατότητα πιο σαφών και ακριβέστερων αναζητήσεων πληροφοριών στο διαδίκτυο. Η σύνθεση, λοιπόν, αυτών των δύο νέων σχετικά τεχνολογιών επέφερε τη δηµιουργία των σηµασιολογικών υπηρεσιών ιστού (semantic web services). Κατά τη συγγραφή των σηµασιολογικών υπηρεσιών ιστού είναι δυνατός ο σηµασιολογικός ορισµός των διαφόρων χαρακτηριστικών τους µε τη χρήση σηµασιολογικών προτύπων, όπως είναι οι οντολογίες (OWL-S περιγραφές [Martin D., 2004]). Αυτές οι πληροφορίες µπορούν να φανούν ιδιαίτερα σηµαντικές για την εύρεση ή χρησιµοποίηση κάποιου κάποιας υπηρεσίας ιστού είτε από µεµονωµένο χρήστη είτε από πρόγραµµα που σχετίζεται µε αυτές. Οι σηµασιολογικές υπηρεσίες ιστού χρησιµοποιούνται πλέον για να αναπαραστήσουν και να αντικαταστήσουν σε ορισµένες περιπτώσεις πραγµατικές οντότητες της καθηµερινής µας ζωής, όπως για παράδειγµα τις συναλλαγές µας µε την τράπεζα. 5

7 Η διπλωµατική αυτή έχει να κάνει µε τη δηµιουργία ενός γραφικού περιβάλλοντος, το οποίο θα µπορεί να χρησιµοποιηθεί από ένα χρήστη για να δηµιουργήσει µε γραφικό τρόπο σύνθετες διαδικτυακές υπηρεσίες, δηλαδή υπηρεσίες οι οποίες θα συνδυάζουν πολλές απλούστερες. Το πεδίο αυτό είναι γνωστό στη βιβλιογραφία ως σύνθεση διαδικτυακών υπηρεσιών (web service composition). Μια υπηρεσία ιστού συνήθως δέχεται µια ή περισσότερες εισόδους και ανάλογα µε το ποια είναι η λειτουργία του δίνει κάποια ή κάποιες εξόδους. Μια έξοδος από µια υπηρεσία ιστού µπορεί να είναι είσοδος σε κάποια άλλη. Έτσι, δύο ή περισσότερες υπηρεσίες ιστού µπορούν να συνδυαστούν ώστε να δηµιουργήσουν µια πολύπλοκη υπηρεσία η οποία δεν µπορεί να υλοποιηθεί µε τη χρήση µιας µοναδικής υπηρεσίας ιστού. Στις σηµασιολογικές υπηρεσίες ιστού, οι είσοδοι και οι έξοδοι περιγράφονται µε κλάσεις οντολογιών και οι µεταξύ τους σχέσεις (π.χ. η έξοδος µιας υπηρεσίας ιστού είναι υποκλάση της εισόδου µιας άλλης) µπορούν να ελεγχθούν µε τη βοήθεια ειδικών προγραµµάτων τα οποία χειρίζονται τις σηµασιολογικές περιγραφές των υπηρεσιών ιστού, προγράµµατα τα οποία είναι γνωστά ως συστήµατα συλλογιστικής (reasoners), π.χ. JENA [Jena Semantic Web Framework, 2009]. Η διπλωµατική εργασία αποτελείται από άλλα 5 κεφάλαια. Στο δεύτερο κεφάλαιο παρουσιάζεται µια λεπτοµερής αναφορά και περιγραφή στο τι είναι οι υπηρεσίες ιστού. Ακόµα, παρουσιάζεται η αρχιτεκτονική τους και οι τεχνολογίες που σχετίζονται µε τη συγγραφή τους αλλά και µε την ανταλλαγή µηνυµάτων µεταξύ τους. Στο τρίτο κεφάλαιο γίνεται αναφορά στην έννοια και στην ανάπτυξη του σηµασιολογικού ιστού. Παρουσιάζονται αναλυτικά οι τεχνολογίες που σχετίζονται µε το σηµασιολογικό ιστό καθώς και οι έννοιες των οντολογιών. Επίσης, γίνεται και αναφορά στις σηµασιολογικές γλώσσες που υπάρχουν και υποστηρίζουν το σηµασιολογικό ιστό. Στο τέταρτο κεφάλαιο αναλύονται όλα τα στοιχεία και οι σηµασιολογικές έννοιες των σηµασιολογικών υπηρεσιών ιστού. Γίνεται αναφορά τόσο στην ανάπτυξη των τεχνολογιών που δηµιουργήθηκαν για να υποστηρίξουν την εξέλιξη των υπηρεσιών αυτών, όσο και στις σχέσεις που δηµιουργούνται µεταξύ των υπηρεσιών. Στο πέµπτο κεφάλαιο περιγράφεται η υλοποίηση της εφαρµογής που αναπτύχθηκε στη διπλωµατική αυτή. Περιγράφονται τα εργαλεία υλοποίησης καθώς και οι δυνατότητες που παρέχει η εφαρµογή αυτή στο χρήστη. Τέλος, στο έκτο κεφάλαιο περιέχεται µια γενική σύνοψη της εργασίας, αναφέροντας προβλήµατα που παρουσιάστηκαν κατά τη διάρκεια της υλοποίησης, προτείνοντας πιθανές βελτιώσεις και επεκτάσεις που µπορούν να γίνουν. 6

8 2 Υπηρεσίες Ιστού Μια υπηρεσία ιστού (Web service) είναι βασικά µια εφαρµογή, µια προγραµµατιστική οντότητα η oποία παρέχει ένα συγκεκριµένο στοιχείο λειτουργικότητας στους χρήστες και είναι προσπελάσιµη από οποιοδήποτε σύστηµα µέσω διαδικτύου χρησιµοποιώντας ήδη υπάρχοντα στάνταρ επικοινωνίας, όπως XML και HTTP. Η ίδια η υπηρεσία περιέχει δεδοµένα, τα οποία είναι απαραίτητα για τη λειτουργία της, αλλά και τη λογική µε την οποία αυτά χρησιµοποιούνται. Στην ουσία είναι µια νέα τυποποιηµένη τεχνολογία για τη δηµιουργία διαδικτυακών εφαρµογών. Βασικό χαρακτηριστικό της τυποποίησης των υπηρεσιών ιστού είναι ότι χρησιµοποιούν την XML για να κτίσουν την υποδοµή πάνω στην οποία θα γίνεται η επικοινωνία µε άλλα προγράµµατα, ανεξαρτήτως προγραµµατιστικής γλώσσας και πλατφόρµας. Γενικά, η τεχνολογία αυτή έχει έρθει να δώσει λύση στα προβλήµατα ευχρηστίας και διαλειτουργικότητας των ηλεκτρονικών υπηρεσιών. 2.1 Εισαγωγή Η εισαγωγή του δικτύου στην καθηµερινή µας ζωή αποτελεί µια καινοτόµα, αναµφισβήτητα, τεχνολογία. Αρχικά είχε την ιδιότητα της παροχής και παρουσίασης πληροφοριών και δεδοµένων. Στην πορεία όµως εξελίχθηκε σε ένα χρήσιµο εργαλείο που παρέχει πληθώρα υπηρεσιών, που εξυπηρετούν τόσο τους απλούς χρήστες, όσο και τις επιχειρήσεις. Είναι γεγονός ότι η ανάπτυξη τέτοιων υπηρεσιών ιστού αναπτύχθηκε από τον επιχειρησιακό τοµέα για την εξυπηρέτηση των πελατών και την προώθηση των υπηρεσιών. Μέχρι πρόσφατα, ενώ υπήρχε ένα αρκετά µεγάλο σύνολο από παρεχόµενες υπηρεσίες στο δίκτυο, για να µπορούσε κάποιος να τις χρησιµοποιήσει θα έπρεπε για κάθε µία υπηρεσία να µελετήσει τον τρόπο µε τον οποίο θα την καλέσει, να ελέγξει αν χρησιµοποιούν το ίδιο πρωτόκολλο επικοινωνίας (TCP/IP, http, κλπ) και γενικά να προσαρµόσει όλο το σύστηµά του έτσι ώστε να γίνει συµβατό µε αυτό του παροχέα της υπηρεσίας [η-επιχειρήν, 2009]. Τα πράγµατα όµως τα τελευταία χρόνια φαίνεται να αλλάζουν και να εξελίσσονται, αφού πλέον σχεδόν όλες οι επιχειρήσεις που δηµιουργούν υπηρεσίες στο δίκτυο βασίζονται σε µία κοινή αρχιτεκτονική ανάπτυξης, δηµοσίευσης 7

9 και εκµετάλλευσης των υπηρεσιών τους, γνωστή ως η αρχιτεκτονική των υπηρεσιών ιστού. Η τυποποιηµένη αυτή αρχιτεκτονική που αναφέραµε παραπάνω, µε το όνοµα υπηρεσία ιστού, έχει ήδη θεσπιστεί και από το world wide web consortium [World Wide Web Consortium Web Standards, (2009)]. Μέσα από την αρχιτεκτονική των υπηρεσιών ιστού ορίζεται ένα σύνολο από προδιαγραφές και κανόνες µε τους οποίους είναι δυνατή η δηµιουργία και η παροχή ηλεκτρονικών υπηρεσιών µέσα στο δίκτυο µε αρκετά απλό και οικονοµικό τρόπο. Αξίζει εδώ να γίνει µια γενική αναφορά στην αρχιτεκτονική των τεχνολογιών που έχει καθορίσει το w3c που περιλαµβάνει τόσο την αρχιτεκτονική των υπηρεσιών ιστού όσο και άλλων εξελισσόµενων τεχνολογιών του ιστού. Η αρχιτεκτονική των τεχνολογιών του w3c αποτελείται από δύο επίπεδα, την αρχιτεκτονική του web ( One Web ) και την αρχιτεκτονική του Internet. Πιο συγκεκριµένα, η αρχιτεκτονική του One Web αποτελείται από περισσότερα επίπεδα που αντιπροσωπεύουν πιο συγκεκριµένες τεχνολογίες. Αυτές είναι οι εξής, όπως παρουσιάζονται και στο σχήµα 2.1 [W3C, 2009]: URI/IRI, HTTP Web Architectural Principles XML Infosets; RDF(S) Graphs XML, Namespaces, Schemas, XQuery/XPath, XSLT, DOM, XML Base, XPointer, RDF/XML, SPARQL Πάνω από αυτά τα επίπεδα ορίζονται κατηγοριοποιηµένες οι δραστηριότητες (activities) του w3c µε την αρχιτεκτονική τους. Οι δραστηριότητες αυτές επίσης απεικονίζονται στο σχήµα 2.1 και είναι οι εξής: Web Applications Mobile Voice Web Services Semantic Web Privacy 8

10 Στη συγκεκριµένη εργασία θα ασχοληθούµε και θα παρουσιάσουµε µε λεπτοµέρεια δύο από αυτές, τις υπηρεσίες ιστού (web services) και το σηµασιολογικό ιστό (semantic web). Σχήµα 2.1. Η αρχιτεκτονική του W3C 2.2 Υπηρεσίες Ιστού, Πλεονεκτήµατα και Οφέλη Η αρχιτεκτονική των υπηρεσιών ιστού παρέχει αρκετά πλεονεκτήµατα µερικά από τα οποία αναφέρονται παρακάτω [Fremantle P et al., 2002]: ιαλειτουργικότητα. Μια υπηρεσία ιστού παρέχει ανεξαρτησία τόσο όσον αφορά το λειτουργικό σύστηµα όσο και το hardware. Οποιοδήποτε πρόγραµµα που συµβαδίζει µε αυτή τη τεχνολογία µπορεί πολύ εύκολα να καλέσει µία τέτοια υπηρεσία. Ενσωµάτωση. Σε ένα υπάρχον σύστηµα που λειτουργεί στο δίκτυο, η δηµιουργία µιας υπηρεσίας ιστού δεν απαιτεί αλλαγές στο µηχανισµό του συστήµατος. ιαθεσιµότητα και δηµοσίευση. Οι πληροφορίες για τις υπηρεσίες ιστού δηµοσιεύονται, οπότε η εύρεση και η χρήση τους µπορεί να είναι ταχύτατες. 9

11 Επέκταση. Μια έτοιµη υπηρεσία ιστού είναι δυνατό να ανανεωθεί µε εύκολο τρόπο παρέχοντας έτσι επιπρόσθετες υπηρεσίες στους χρήστες του. Μικρό κόστος δηµιουργίας και χρήσης. Εφόσον σε ένα σύστηµα υπάρχει ήδη κάποια διαδικασία που χρειάζεται να επεκταθεί σε online υπηρεσία, η δηµιουργία της υπηρεσίας ιστού κοστίζει ελάχιστα. Επίσης, το κόστος ενσωµάτωσης µιας υπηρεσίας ιστού σε κάποια ιστοσελίδα ή σε µια δικτυακή εφαρµογή είναι πάρα πολύ µικρό. Ακόµα και στις περιπτώσεις που η χρήση κάποιας υπηρεσίας ιστού γίνεται µε ενοικίαση, σίγουρα το συνολικό κόστος της χρήσης είναι αρκετά πιο µικρό από το κόστος δηµιουργίας της υπηρεσίας αυτής. Χρήση λογισµικών. Όλα τα λογισµικά και ειδικότερα οι ιστοσελίδες που χρησιµοποιούν έτοιµες υπηρεσίες γίνονται πιο λειτουργικά και πιο φιλικά αφού παρέχουν περισσότερες υπηρεσίες στους χρήστες. Προσαρµοστικότητα. Προσαρµογή ήδη υπαρχουσών εφαρµογών στις µεταβαλλόµενες επιχειρησιακές συνθήκες και ανάγκες των χρηστών. Οι υπηρεσίες ιστού σαν εφαρµογές είναι γενικά πολύ απλές και εύκολες στη χρήση από τους χρήστες. Υπηρεσίες ιστού συναντάµε καθηµερινά στις ιστοσελίδες που επισκεπτόµαστε, σε desktop εφαρµογές που χρησιµοποιούµε. Τέτοιες είναι, για παράδειγµα, εφαρµογές που κάνουν µετατροπές διαφόρων µεγεθών, που ψάχνουν και παρουσιάζουν διαθεσιµότητα σε εισιτήρια και ξενοδοχεία, που ελέγχουν αν τα στοιχεία µιας πιστωτικής κάρτας είναι έγκυρα και υπαρκτά, που δίνουν τα αποτελέσµατα αγώνων και αθλητικών γεγονότων σε πραγµατικό χρόνο και πάρα πολλά άλλα. Η χρήση µιας υπηρεσίας ιστού γίνεται συνήθως µε τον ακόλουθο τρόπο. Αρχικά ο χρήστης κάνει αναζήτηση και βρίσκει τη συγκεκριµένη υπηρεσία ιστού που επιθυµεί και στη συνέχεια, σύµφωνα µε την περιγραφή, στέλνει τα δεδοµένα που απαιτούνται και παίρνει τα αποτελέσµατα που επιθυµούσε. Πλέον, σήµερα, οι υπηρεσίες ιστού αναπτύσσονται από επιχειρήσεις που ενεργοποιούνται στο χώρο των εφαρµογών και των τεχνολογιών του διαδικτύου και προσφέρονται σε άλλες επιχειρήσεις, σε ιδιώτες ή απλούς χρήστες δωρεάν ή µε κάποια πληρωµή. Η τεχνολογία των υπηρεσιών ιστού εξελίσσεται συνεχώς προτείνοντας και θεσπίζοντας νέα standards πάνω στον τρόπο ανάπτυξης και λειτουργίας των υπηρεσιών δίνοντας µάλιστα ιδιαίτερη έµφαση στο «σηµασιολογικό ιστό», δηλαδή στη 10

12 σηµασιολογική ερµηνεία όλων των κόµβων πληροφορίας του παγκόσµιου ιστού. Καλύπτοντας µε αυτόν τον τρόπο και τις απαιτήσεις για την αυτόµατη σηµασιολογικά ερµηνεία µιας online υπηρεσίας από ένα σύστηµα, η επιστήµη προχωρά σε νέες δοµές αυτόµατης ανακάλυψης και εκµετάλλευσης των υπηρεσιών ιστού. 2.3 Τεχνικά Στοιχειά Μια υπηρεσία ιστού είναι ένα λογισµικό σύστηµα που αναγνωρίζεται από ένα URI και που το περιβάλλον διεπαφής (interface) του, καθώς και οι δράσεις του, ορίζονται πλήρως και περιγράφονται κυρίως από έγγραφα extensble Markup Language (XML) µορφής. Μια υπηρεσία ιστού µπορεί να βρεθεί και να χρησιµοποιηθεί εύκολα από άλλα λογισµικά συστήµατα, γνωστά ως parsers. Αυτά τα συστήµατα µπορούν να αλληλεπιδρούν µε την υπηρεσία ιστού και να ανταλλάσουν πληροφορίες σε µορφή XML, και όχι µόνο, χρησιµοποιώντας τρόπους επικοινωνίας µέσω του δικτύου. Η βασική αρχιτεκτονική των διαδικτυακών υπηρεσιών περιλαµβάνει τεχνολογίες οι οποίες επιτρέπουν : Ανταλλαγή µηνυµάτων. Περιγραφή των υπηρεσιών ιστού. ηµοσίευση για ανακάλυψη περιγραφών για τις υπηρεσίες ιστού. Μια σχηµατική απεικόνιση της αρχιτεκτονικής των υπηρεσίων ιστού παρουσιάζεται στο σχήµα 2.2. Σχήµα 2.2. Η αρχιτεκτονική των Υπηρεσίων Ιστού 11

13 Το πιο συνηθισµένο µοντέλο για τις υπηρεσίες ιστού προδιαγράφεται ως εξής [Gunzer H., 2002; η-επιχειρήν, 2009]: 1. Για την επικοινωνία χρησιµοποιείται συνήθως το πρωτόκολλο HTTP, το ίδιο δηλαδή πρωτόκολλο που χρησιµοποιούν και οι κοινοί περιηγητές (browsers) για την πλοήγηση στο δίκτυο. Πιο απλά, τα δεδοµένα µεταφέρονται όπως ακριβώς µεταφέρονται και οι ιστοσελίδες. 2. Βασιζόµενο πάνω στο HTTP πρωτόκολλο (όχι αναγκαστικά) χρησιµοποιείται ένα άλλο πρωτόκολλο που ονοµάζεται SOAP (Simple Object Access Protocol) [W3Schools-SOAP, 2009]. Με τη χρήση του πρωτοκόλλου αυτού υλοποιείται ένας εξυπηρετητής SOAP (SOAP Server). 3. Για κάθε µέθοδο της υπηρεσίας που θέλουµε να προσφέρουµε, ορίζουµε µία αντιστοιχία µε µία λειτουργία του SOAP Server. Κατόπιν, το σύνολο των λειτουργιών του SOAP Server, καθώς και τα υπόλοιπα χαρακτηριστικά του, περιγράφονται σε ένα αρχείο που ονοµάζεται WSDL (Web Service Description Language) [W3Schools-WSDL, 2009]. 4. Εντέλει, για κάθε µια υπηρεσία που δηµιουργείται, το αρχείο WSDL δηµοσιεύεται στο µητρώο UDDI (UDDI Registry [UDDI, 2009]), έτσι ώστε να δίνεται η δυνατότητα σε κάθε ενδιαφερόµενο χρήστη να µπορεί άµεσα να αναζητήσει και να χρησιµοποιήσει την υπηρεσία. Σχήµα 2.3. Μια σχηµατική απεικόνιση του µοντέλου που αναφέραµε παρουσιάζεται στο 12

14 Σχήµα 2.3. Το µοντέλο και η χρήση των Υπηρεσιών Ιστού 2.4 Τεχνολογίες των υπηρεσιών ιστού XML Η γλώσσα XML (extensible Markup Language) είναι µια γλώσσα που χρησιµοποιεί µεταδεδοµένα (metadata) για να καθορίζει τις οντότητές της και τις συσχετίσεις µεταξύ αυτών. Λόγω της σηµασιολογικής σύνταξης και της σαφήνειας της γλώσσας, επιτυγχάνεται πολύ εύκολα η σύλληψη και η ανταλλαγή δεδοµένων µεταξύ διαφορετικών διαδικτυακών εφαρµογών. Τα δεδοµένα δηλώνονται µέσα σε επικεφαλίδες (tags), οι οποίες καθορίζονται στο αρχείο από τον εκάστοτε χρήστη και έχουν άµεση σηµασιολογική σχέση µε το αντικείµενο που περιγράφουν. Με τη χρήση αυτών των επικεφαλίδων δίνεται η δυνατότητα στους προγραµµατιστές άλλων εφαρµογών να ελέγξουν την εγκυρότητα και την ακεραιότητα των δεδοµένων, ώστε να συνδυαστούν µε την εκάστοτε εφαρµογή. Έτσι, επιτυγχάνεται η διαλειτουργικότητα µεταξύ των υπηρεσιών, όπως επίσης και ταχύτερη επικοινωνία, καθώς τα παραγόµενα XML αρχεία είναι ανεξάρτητα από το hardware και από την πλατφόρµα στην οποία τρέχει η κάθε εφαρµογή. Αυτός είναι και ο λόγος που χρησιµοποιείται ευρέως στο διαδίκτυο. 13

15 2.4.2 SOAP Το SOAP (Simple Object Access Protocol) είναι επίσης ένα άλλο standard του W3C [Gudgin M., et al, 2007 ; Gunzer H., 2002 ; Vasudevan V., 2001] και χρησιµοποιείται για την επικοινωνία µεταξύ ενός παροχέα µιας υπηρεσίας ιστού (Web Service provider) και µιας εφαρµογής πελάτη (Client Application). Είναι ευρέως διαδεδοµένο για την αποστολή απλών αντικειµένων (αρχείων, εφαρµογών, κλπ.) σε XML µορφή. Γι αυτό και κάθε υπηρεσία ιστού που χρησιµοποιεί SOAP µπορεί να λάβει αιτήσεις για συγκεκριµένες λειτουργίες απλά δεχόµενο αντικείµενα σε XML. Η χρήση του πρωτοκόλλου SOAP γίνεται συνήθως πάνω από το πρωτόκολλο HTTP αλλά µπορεί να λειτουργήσει και µε άλλα πρωτόκολλα π.χ. FTP, SMTP κ.α. Πλέον, οι περισσότερες γλώσσες προγραµµατισµού από την Delphi v7 µέχρι τη Visual Studio.net, την PHP, την Java και άλλες πολλές, υποστηρίζουν τη δηµιουργία SOAP servers µε πάρα πολύ απλό τρόπο. Το µόνο που πρέπει να κάνει κανείς είναι να καθορίσει τις λειτουργίες που πρέπει να γίνουν όταν ο εξυπηρετητής (server) δεχθεί κάποιο αίτηµα προς εξυπηρέτηση. Γενικά, το SOAP καθορίζει έναν τρόπο για τη µεταφορά ενός XML µηνύµατος από ένα σηµείο Α (αποστολέας) σε ένα σηµείο Β (παραλήπτης). Αυτό το υλοποιεί παρέχοντας ένα πλαίσιο µεταφοράς µηνυµάτων βασισµένο σε XML (XML-based messaging framework) το οποίο: Είναι επεκτάσιµο (extensible). Επιτρέπει σε άλλα πρότυπα να το επεκτείνουν παρέχοντας υπηρεσίες που λείπουν από αυτό. Αυτό το χαρακτηριστικό αποδείχθηκε ίσως το σηµαντικότερο γιατί επάνω του βασίζονται πολλές αναπτυσσόµενες τεχνολογίες των υπηρεσιών ιστού που προσφέρουν υπηρεσίες, όπως αξιοπιστία (reliability), δροµολόγηση (routing) και ασφάλεια (security). Είναι απλό, άρα το κόστος και η πολυπλοκότητα υλοποίησης µειώνονται αισθητά. Μπορεί να χρησιµοποιηθεί πάνω σε πολλά πρωτόκολλα δικτύου. Χρησιµοποιεί πρότυπα πρωτόκολλα, όπως το HTTP και το SMTP ως µέσα µεταφοράς οπότε µπορεί να χρησιµοποιηθεί στο διαδίκτυο και να διαπερνά τείχη προστασίας χωρίς συµβιβασµούς στην ασφάλεια της υποδοµής µιας επιχείρησης. Αυτό αυτοµάτως 14

16 µειώνει και, σε ορισµένες περιπτώσεις, εξαλείφει το κόστος υποδοµής, αφού οι περισσότερες επιχειρήσεις σήµερα έχουν και τον εξοπλισµό και την τεχνογνωσία για τη χρήση του διαδικτύου. Είναι ανεξάρτητο από το προγραµµατιστικό µοντέλο. Οπότε µπορεί να χρησιµοποιηθεί για επικοινωνία µεταξύ εφαρµογών γραµµένων για διαφορετικές πλατφόρµες και σε διαφορετικές γλώσσες προγραµµατισµού. Όταν χρησιµοποιείται το SOAP σαν πρωτόκολλο για ανταλλαγή µηνυµάτων, δηµιουργούνται αιτήσεις στον πελάτη και στέλνονται στον εξυπηρετητή σε µορφή SOAP µηνύµατος. Ο εξυπηρετητής επεξεργάζεται την αίτηση και στη συνέχεια επιστρέφει είτε µια απάντηση (SOAP Response), είτε ένα σφάλµα (SOAP Fault) πίσω στον πελάτη. Όπως και στις κλασσικές γλώσσες προγραµµατισµού, έτσι και σε ένα SOAP µήνυµα καθορίζονται τύποι δεδοµένων (integer, float, string, arrays). Οι τύποι αυτοί ορίζονται σύµφωνα µε ένα XML Schema. Ένα SOAP µήνυµα αποτελείται από ένα κύριο στοιχείο Envelope. Αυτή η επικεφαλίδα περιλαµβάνει δύο αντικείµενα: Ένα προαιρετικό στοιχείο επικεφαλίδα (header) Ένα κυρίως µέρος (body) Η επικεφαλίδα µπορεί να περιέχει περισσότερες εισαγωγές άλλων επικεφαλίδων, οι οποίες περιλαµβάνουν πληροφορίες σχετικά µε την αυθεντικοποιήση (authentication) ή µε την κωδικοποιήση (encoding) των δεδοµένων. Επίσης, υπάρχουν χαρακτηριστικά οντοτήτων για το πώς ο παραλήπτης του µηνύµατος SOAP πρέπει να επεξεργαστεί το µήνυµα. Οι ιδιότητες αυτές είναι οι εξής: 1. Actor Attribute. Η ιδιότητα αυτή χρησιµοποιείται για να καθορίσει τον αποδέκτη της κάθε καταχώρησης επικεφαλίδας (header entry). Έτσι, µπορεί κάποια επικεφαλίδα να αναφέρεται αποκλειστικά σε έναν παραλήπτη και µε αυτόν τον τρόπο γίνεται δυνατό να φτάσει σε αυτόν χωρίς να την δουν άλλοι ενδιάµεσοι. Ή αντίστροφα, το περιεχόµενο µιας επικεφαλίδας που προορίζεται για κάποιον ενδιάµεσο παραλήπτη να µην προωθείται άσκοπα και στους επόµενους. Επιπλέον, επιτρέπεται στη διαδροµή του µηνύµατος να προστεθούν νέες επικεφαλίδες, αν αυτό κρίνεται απαραίτητο. 15

17 2. MustUnderstand Attribute. Προσθέτοντας αυτή την ιδιότητα σε κάποια καταχώρηση επικεφαλίδας µε τιµή ίση µε 1, ο παραλήπτης του µηνύµατος αναγκάζεται να πραγµατοποιήσει την ενέργεια που καθορίζεται από τη συγκεκριµένη επικεφαλίδα. Το κυρίως µέρος (body) περιλαµβάνει πληροφορίες για τον τελικό παραλήπτη του SOAP µηνύµατος, για κλήσεις και αποκρίσεις. Οι προδιαγραφές περιγράφουν ότι το στοιχείο κυρίως µέροςχρησιµοποιείται για να µεταφέρει πληροφορίες σχετικά µε την κατάσταση του µηνύµατος ή κάποιο µήνυµα λάθους. Μπορεί να εµφανίζεται µόνο µια φορά σε ένα SOAP µήνυµα. Στο κυρίως µέρος µπορεί προαιρετικά να εµφανίζεται και µια αντότητα µε την ονοµασία εσφαλµένο στοιχείο (fault element), η οποία περιέχει τις λεπτοµέρειες σε περίπτωση σφάλµατος. Αποτελείται από τα εξής επιµέρους στοιχεία: Faultcode. Περιγράφει τον τύπο της αποτυχίας του µηνύµατος. Μπορεί να είναι ασυµβατότητα σε εκδόσεις (Version Mismatch), µη πραγµατοποίηση υποχρεωτικής λειτουργίας (MustUnderstand), λάθος τροποποιήση του µηνύµατος (Client) και µη επεξεργασία του µηνύµατος που δεν προκλήθηκε από λάθος περιεχόµενα (Server). FaultString. Παρέχει µια ευανάγνωστη εξήγηση για τους παραλήπτες του µηνύµατος που περιγράφει το σφάλµα. FaultFactor. Kαθορίζει τη συγκεκριµένη οντότητα που δηµιούργησε το πρόβληµα και απέτρεψε το µήνυµα να φτάσει στον τελικό προορισµό του. Detail. Μεταφέρει συγκεκριµένα λάθη που έχουν άµεση σχέση µε την εφαρµογή. Γενικά, ισχύουν κάποιοι πολύ σηµαντικοί κανόνες για τη σύνταξη και τη δηµιουργία ενός µηνύµατος SOAP. Σύµφωνα µε αυτούς ισχύει ότι ένα µήνυµα SOAP: πρέπει να είναι κωδικοποιηµένο µε χρήση της XML. πρέπει να χρησιµοποιεί το SOAP envelope namespace. πρέπει να χρησιµοποιεί το SOAP encoding namespace. δεν πρέπει να περιέχει καµία DTD αναφορά. δεν πρέπει να περιέχει XML processing instructions. 16

18 2.4.3 WSDL Η WSDL (Web Service Description Language) [Christensen E., 2001 ; Gunzer H., 2002] είναι µία γλώσσα σε µορφή XML, η οποία περιγράφει απόλυτα µια υπηρεσία ιστού. Έτσι, για κάθε µια υπηρεσία ιστού που δηµιουργείται, πρέπει να δηµιουργείται ένα αρχείο WSDL στο οποίο θα καταγράφονται όλες οι πληροφορίες για την ίδια την υπηρεσία. Πιο συγκεκριµένα, οι πληροφορίες αυτές καταγράφονται από ένα ειδικό σύνολο ετικετών, οι οποίες περιγράφουν µια διαδικτυακή υπηρεσία, το πού βρίσκεται ο εξυπηρετητής (σε πια διεύθυνση), ποιες λειτουργίες υποστηρίζει, πως δέχεται και πως επιστρέφει τα δεδοµένα για κάθε λειτουργία, καθώς και ποιες άλλες υπηρεσίες προσφέρονται. Οι πελάτες αρχικά λαµβάνουν αυτές τις πληροφορίες για να µπορέσουν να αποφασίσουν κατά πόσο χρήσιµη τους είναι µια υπηρεσία ή όχι. Για αυτόν ακριβώς το λόγο, µια περιγραφή WSDL πρέπει να είναι έτσι δηµιουργηµένη έτσι ώστε να είναι εύχρηστη και ευκολονόητη από τους πελάτες. Επίσης, έχει ως σκοπό να βοηθήσει στην επικοινωνία µεταξύ εφαρµογών µε έναν αυτοµατοποιηµένο τρόπο. Μια WSDL καταγραφή µπορεί να χρησιµοποιηθεί ως οδηγός για τη δηµιουργία του κατάλληλου µηνύµατος SOAP για την κλήση της υπηρεσίας, καθώς και της απάντησης που αναµένεται να παραληφθεί. Ένα αρχείο WSDL περιέχει ως κύριο στοιχείο το αντικείµενο <definitions>, το οποίο µε τη σειρά του περιλαµβάνει έξι επιπλέον στοιχεία που µπορούν να χωριστούν σε δύο κατηγορίες: Αφηρηµένος Ορισµός (abstract definition): Περιλαµβάνονται τύποι (types), µηνύµατα (messages) και porttypes. Συγκεκριµένος Ορισµός (concrete definition): Περιλαµβάνονται εξαρτήσεις (bindings) και υπηρεσίες (services). Καθένα από τα προαναφερθέντα στοιχεία µπορεί να περιλαµβάνει µια ετικέτα γνωστή ως <documentation>, η οποία διαθέτει ευανάγνωστες πληροφορίες για τους χρήστες της υπηρεσίας. Οι οντότητες που περιέχονται σε ένα αρχείο WSDL παρουσιάζονται πιο αναλυτικά παρακάτω: 17

19 Import Element. Με χρήση αυτής της οντότητας µπορεί να διαχωρίστει ένα αρχείο WSDL σε περισσότερα ανεξάρτητα, κάνοντας έτσι τη δοµή του αρχείου πιο στρωτή. Η σύνταξη είναι ως εξής: <import namespace = an uri location = an uri > Type Element. Περιλαµβάνει όλους τους τύπους δεδοµένων που σχετίζονται µε την αποστολή και την παραλαβή µηνυµάτων, και αυτούς που θα χρησιµοποιηθούν για τη λειτουργία της υπηρεσίας. Έχει ως σκοπό να καθοριστούν οι λεπτοµέρειες της δοµής του µηνύµατος. Συνήθως, ο ορισµός των τύπων αυτών καθορίζεται µε βάση τον τύπο ενός XML Schema. Message Element. Αναφέρεται άµεσα στα µηνύµατα στα οποία θα ανταλλάσει µια υπηρεσία ιστού, καθώς και στο ποια θα αποτελέσουν είσοδο και ποια έξοδο της εφαρµογής. Προκαθορίζει ποια δεδοµένα θα είναι αυτά που θα µεταφέρονται µεταξύ ενός παροχέα και ενός χρήστη. Αποτελείται από το όνοµα του µηνύµατος (<name>) και τα τµήµατά του (<parts>), δηλαδή τα περιεχόµενα του µηνύµατος. Port Type Element. Πρόκειται για ένα σύνολο από σχετικές µεταξύ τους λειτουργίες, ορισµένες ως οντότητες µε την ετικέτα <operation>. Σε αυτές καθορίζονται τα χαρακτηριστικά της κάθε λειτουργίας και οι παράµετροι που θα χρησιµοποιηθούν για καθεµία από αυτές. Στα διευκρινιστικά στοιχεία περιλαµβάνονται και τα εξής µηνύµατα µεταφοράς: o One-way: Ο τελικός παραλήπτης λαµβάνει ένα µήνυµα. Η λειτουργία, αυτή αναφέρεται αποκλειστικά σε οντότητες εισόδου (input). o Request/Response: Ο τελικός παραλήπτης λαµβάνει ένα µήνυµα και στέλνει µια απάντηση. Η λειτουργία αυτή καθορίζει πρώτα την οντότητα εισόδου (input), ακολουθούµενη από οντότητα εξόδου (output) και προαιρετικά µπορεί να περιλαµβάνει και µήνυµα λάθους (fault). o Solicit Response: Ο τελικός παραλήπτης στέλνει ένα µήνυµα και λαµβάνει την απάντηση. Και αυτή η λειτουργία καθορίζει πρώτα την οντότητα εισόδου (input), ακολουθούµενη από την οντότητα εξόδου (output) και προαιρετικά µπορεί να περιλαµβάνει και µήνυµα λάθους (fault). 18

20 o Notification: Ο τελικός παραλήπτης στέλνει µια ειδοποίηση. Η λειτουργία αυτή περιλαµβάνει τον προκαθορισµό µόνο µιας οντότητας εξόδου (output). Binding Element. Περιγράφει τις λεπτοµέρειες χρήσης ενός συγκεκριµένου porttype µε ένα δεδοµένο πρωτόκολλο, στην περίπτωση των υπηρεσιών ιστού µε το πρωτόκολλο SOAP. Αποτελείται από το χαρακτηριστικό του ονόµατος (<name>), για να µπορεί να αναφερθεί από οπουδήποτε στο WSDL αρχείο, από µια ιδιότητα, η οποία καθορίζει τη σχέση του εκάστοτε πρωτοκόλλου µε το PortType, και από µια λειτουργία (<operation>). Στην περίπτωση λειτουργίας µε SOAP, οι οντότητες µεταβάλλονται. Έχουµε την οντότητα soap:binding που περιλαµβάνει λεπτοµέρειες για το πρωτόκολλο µεταφοράς και για τον τύπο του αιτήµατος ( rpc ή document ). Επίσης, υπάρχουν οι οντότητες soap:header, soap:operation, soap:body και soap:fault, οι οποίες εκτελούν τις λειτουργίες που προαναφέραµε. Service Element. Είναι µια συλλογή από σχετιζόµενα σηµεία επαφής. Αποτελείται από τις οντότητες όνοµα (<name>) και το συνδυασµό µιας οντότητας <binding> και µιας διεύθυνσης URI, που στην ουσία αποτελούν ένα µοναδικό σηµείο επαφής. Υπάρχουν πάρα πολλά διαθέσιµα εργαλεία που δηµιουργούν αυτόµατα ένα WSDL αρχείο παράλληλα µε τη δηµιουργία του SOAP server. Ένα παράδειγµα ενός WSDL αρχείου παρουσιάζεται παρακάτω: <definitions name="stockquote" targetnamespace=" xmlns:tns=" xmlns:xsd1=" xmlns:soap=" xmlns=" <types> <schema targetnamespace=" xmlns=" 19

21 <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </complextype> </element> <element name="tradeprice"> <complextype> <all> <element name="price" type="float"/> </all> </complextype> </element> </schema> </types> <message name="getlasttradepriceinput"> <part name="body" element="xsd1:tradepricerequest"/> </message> <message name="getlasttradepriceoutput"> <part name="body" element="xsd1:tradeprice"/> </message> <porttype name="stockquoteporttype"> <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype> <binding name="stockquotesoapbinding" type="tns:stockquoteporttype"> <soap:binding style="document" transport=" <operation name="getlasttradeprice"> <soap:operation soapaction=" <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> 20

22 </output> </operation> </binding> <service name="stockquoteservice"> <documentation>my first service</documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location=" </port> </service> </definitions> UDDI Το UDDI (Universal Description, Discovery, and Integration) [Cardoso J. and Sheth A., 2006 ; Gunzer H., 2002 ; Vasudevan V., 2001] αποτελεί ένα πρωτόκολλο καταχώρησης υπηρεσιών ιστού (searchable web services registries). Χρησιµοποιείται για να παρέχονται πληροφορίες για τις υπηρεσίες ιστού και για να µπορούν να αναζητηθούν µέσω του διαδικτύου. Κάθε καταχώρηση περιέχει το WSDL αρχείο και τη διεύθυνση που λειτουργεί η υπηρεσία στο διαδίκτυο. Επιπρόσθετα, σε κάθε καταχώρηση υπάρχουν και διάφορες άλλες πληροφορίες για την υπηρεσία που σχετίζονται µε τον ιδιοκτήτη της, την πολιτική του κ.α. Ένας παροχέας δηµιουργεί µια UDDI καταχώρηση για την υπηρεσία. Έτσι, γνωρίζοντας κάποιος το UDDI, µπορεί µε πολύ απλό τρόπο να αναζητήσει και να βρει το αρχείο WSDL για κάποια συγκεκριµένη υπηρεσία και κατόπιν να την εκµεταλλευτεί εξίσου απλά και γρήγορα. Γενικά, τα πλεονεκτήµατα αυτού του συστήµατος είναι πολλά τόσο για τους παρόχους των υπηρεσιών όσο και για τους χρήστες. Για παράδειγµα, οι επιχειρήσεις έχουν έναν εύκολο τρόπο διαφήµισης και προώθησης των προϊόντων και των υπηρεσιών τους. Επίσης, µπορούν πολύ πιο εύκολα να επεκτείνουν τη δραστηριότητα τους, καθώς και να αναπτύξουν συνεργασίες µε άλλες επιχειρήσεις. Όσον αφορά τους χρήστες, τους είναι πολύ πιο εύκολο να βρουν την υπηρεσία που τους ενδιαφέρει και πολύ περισσότερο να τη χρησιµοποιήσουν. Από τη στιγµή που οι καταχωρήσεις περιέχουν πολλές 21

23 πληροφορίες, τόσο τεχνικές όσο και λειτουργικές, ο χρήστης δε χρειάζεται να αναλωθεί στο να ψάχνει τι κάνει η υπηρεσία και πως λειτουργεί. Υπάρχουν διαφορετικοί τύποι καταχωρήσεων µίας υπηρεσίας. Πιο συγκεκριµένα, υπάρχουν καταχωρήσεις που µπορούν να γίνουν για υπηρεσίες από όλο τον κόσµο και που απευθύνονται σε όλο τον κόσµο, αλλά και καταχωρήσεις που απευθύνονται µόνο σε εξειδικευµένες επιχειρήσεις προωθώντας έτσι και το business-to-business (Β2Β) µοντέλο συνεργασίας (πλατφόρµες ηλεκτρονικού εµπορίου). Όπως επίσης, υπάρχουν και καταχωρήσεις υπηρεσιών για πιο εξειδικευµένες περιπτώσεις. Το κυριότερο χαρακτηριστικό του UDDI είναι το UDDI business registration, το οποίο είναι ένα αρχείο XML και περιγράφει την επιχείρηση και τις υπηρεσίες ιστού που παρέχει. Οι πληροφορίες που υπάρχουν σε µία UDDI καταχώρηση αποτελούνται από τρία στοιχεία: Τις Λευκές Σελίδες (White Pages). Περιέχουν γενικές πληροφορίες για µια επιχείρηση, όπως το όνοµά της, τη διεύθυνσή της, πληροφορίες για την επικοινωνία και προσδιοριστές. Οι προσδιοριστές είναι µοναδικές τιµές, οι οποίες αναφέρονται σε µια επιχείρηση και τη ξεχωρίζουν από τις υπόλοιπες. Τις Κίτρινες Σελίδες (Yellow Pages). Κατηγοριοποιούν τις επιχειρήσεις ανάλογα µε τα προϊόντα τους ή τις υπηρεσίες τους. Οι κίτρινες Σελίδες, επίσης, δίνουν τη δυνατότητα στους χρήστες να ψάξουν επιχειρήσεις ή υπηρεσίες αναζητώντας βάσει µιας ορισµένης κατηγορίας. Τις Πράσινες Σελίδες (Green Pages). Περιέχουν τεχνικές πληροφορίες για τις υπηρεσίες ιστού µιας επιχείρησης. Συνήθως, οι Πράσινες Σελίδες περιέχουν αναφορές στα WSDL έγγραφα των υπηρεσιών ιστού τα οποία περιέχουν πληροφορίες για το πώς γίνεται η επικοινωνία µαζί της. ίνουν, δηλαδή, τη δυνατότητα στο χρήστη να επικοινωνήσει µε την υπηρεσία ιστού, αφού είναι αυτές που καθορίζουν µε ποιον τρόπο προσπελαύνεται η υπηρεσία. Για να αποκτηθεί πρόσβαση στις UDDI υπηρεσίες, ένας κατάλογος εκθέτει ένα σύνολο από διαδραστικές εφαρµογές (APIs) στη µορφή µιας υπηρεσίας ιστού βασισµένης στο πρωτόκολλο SOAP. Η κάθε διαδραστική εφαρµογή χωρίζεται σε δύο τµήµατα, στο διερευνητικό (Inquiry API) και στο εκδοτικό (Publishers API). Στο πρώτο επιτρέπεται η δηµιουργία προγραµµάτων και εφαρµογών για την αναζήτηση και την 22

24 εύρεση πληροφοριών σε µια UDDI βάση, καθώς και σε περιπτώσεις αποτυχηµένης κλήσης, βάσει κάποιων δεδοµένων που δίνονται. Το δεύτερο τµήµα είναι βοηθητική εφαρµογή για όσους θέλουν να δηµιουργήσουν κάποια ανεξάρτητη υπηρεσία ιστού. Ένα UDDI XML Schema αρχείο καθορίζει τέσσερις βασικούς τύπους πληροφοριών, οι οποίοι είναι απαραίτητοι για να συγχρονιστεί η υπηρεσία ιστού. Οι δοµές αυτές αποτελούνται από τα εξής στοιχεία: Business Entities. H δοµή αυτή, περιλαµβάνει στοιχεία σχετικά µε την επιχείρηση που δηµοσιεύει µια υπηρεσία ιστού. Τέτοιες πληροφορίες είναι το όνοµα της, χρήσιµοι σύνδεσµοι (links), άλλες υπηρεσίες που προσφέρονται, καθώς και πληροφορίες επικοινωνίας. Business Services. Περιέχει πληροφορίες σχετικά µε την κάθε υπηρεσία αλλά µε χρήση επιστηµονικών- επιχειρησιακών όρων. Binding Templates. Μια δεσµευτική φόρµα περιγράφει πώς να επιτευχθεί η πρόσβαση σε µια υπηρεσία και αποτελείται από οντότητες σηµείων πρόσβασής (accesspoint), οι οποίες συνήθως είναι URLs, mail, ftp κ.α. tmodels. Η δοµή αυτή περιγράφει τεχνικές πληροφορίες και χαρακτηριστικά που είναι απαραίτητα για την συµµόρφωση των τεχνολογιών των συστηµάτων που θα συνεργαστο, όπως πρωτόκολλα καλωδίωσης ή συχνοτήτων. Με αυτό τον τρόπο, ενηµερώνεται κάποιος πελάτης για τη συµβατότητα της υπηρεσίας ιστού µε την τεχνολογία που χρησιµοποιεί αυτός. 23

25 3 Σηµασιολογικός Ιστός 3.1 Η έννοια του σηµασιολογικού ιστού Μια τεχνολογία που πλέον έχει γίνει αναγκαία επέκταση της καθηµερινότητας µας, είναι ο ιστός (web). Θα µπορούσαµε να παρουσιάσουµε το σηµερινό ιστό, στο µεγαλύτερο µέρος του, ως µία ψηφιακή βιβλιοθήκη µε αρχεία, που λέγονται ιστοσελίδες, συνδεδεµένα µεταξύ τους µε υπερσυνδέσµους (links). Είναι, στην ουσία, µια βάση δεδοµένων, µια πλατφόρµα πολυµεσικών εφαρµογών, η οποία έχει ως µόνη δυνατότητα την παρουσίαση όλων αυτών των περιεχοµένων στο χρήστη. Το µειονέκτηµα στη µορφή αυτή είναι ότι δεν µπορεί να κάνει κάποιου είδους αυτοµατοποιηµένης επεξεργασίας των δεδοµένων που παρέχονται, κάτι που πρέπει να κάνει ο χρήστης µόνος του. Γεννήθηκε, λοιπόν, η ανάγκη να γίνει σωστή και αποτελεσµατική χρήση των υπολογιστών και των δυνατοτήτων τους. Για να µπορέσουν βέβαια οι υπολογιστές να κάνουν αντίστοιχη επεξεργασία µε αυτήν που θα έκανε ένας νοήµων άνθρωπος, πρέπει µε κάποιο τρόπο να τους «διδάξουµε». Μέρος της διαδικασίας αυτής είναι και η εξέλιξη του σηµερινού ιστού (web 2.0) σε αυτό που ονοµάστηκε σηµασιολογικός ιστός (web 3.0). Ο σηµασιολογικός ιστός (semantic web) είναι ένα πλέγµα πληροφοριών συνδεδεµένων µεταξύ τους µε τέτοιο τρόπο ώστε να είναι εύκολα επεξεργάσιµες από οποιοδήποτε µηχάνηµα, σε παγκόσµια κλίµακα. Θα µπορούσε να θεωρηθεί µια παγκόσµια συνδεδεµένη βάση δεδοµένων [Cabral L., et al, 2004]. Ο σηµασιολογικός ιστός ήταν µια επινόηση του Tim Berners-Lee το 1996, δηµιουργού του WWW. Όπως χαρακτηριστικά αναφέρει σε άρθρο του [Berners-Lee T. et al, 2001], «ο σηµασιολογικός ιστός δεν είναι ένας ξεχωριστός ιστός αλλά η επέκταση του σηµερινού συντακτικού ιστού, στον οποίο η πληροφορία είναι καλά καθορισµένη κάνοντας καλύτερη τη συνεργασία ανθρώπων και υπολογιστών». Για την υλοποίηση, την ανάπτυξη και την εφαρµογή της επινόησης αυτής δηµιουργήθηκε µια οµάδα ανθρώπων που ανήκουν στο World Wide Web consortium (W3C) και από το 2001 ασχολείται αποκλειστικά µε τη βελτίωση, την ανάπτυξη και την τυποποίηση των συστηµάτων του σηµασιολογικού ιστού. Ωστόσο, γίνονται παράλληλα έρευνες από διάφορους εξωγενείς φορείς, όπως είναι πανεπιστήµια, κυβερνήσεις, 24

26 εταιρείες και γενικότερα από οποιονδήποτε φορέα διαπιστώνει ότι ο σηµασιολογικός ιστός είναι µια καινοτόµα επινόηση, εξαιρετικά χρήσιµη. Γενικά τα δεδοµένα, όπως είναι καταγεγραµµένα σε HTML αρχεία, είναι κρυµµένα, παρόλο που συνήθως είναι πολύ χρήσιµα. Το πρόβληµα είναι ότι στην πλειονότητά τους τα δεδοµένα του ιστού είναι σε τέτοια µορφή που είναι δύσκολο να χρησιµοποιηθούν σε ευρεία κλίµακα. Αυτό συµβαίνει γιατί δεν υπάρχει κάποιο παγκόσµιο σύστηµα για τη δηµοσίευση δεδοµένων µε τέτοια µορφοποίηση, ώστε να είναι εύκολα επεξεργάσιµα από τον οποιονδήποτε και να µπορούν να χρησιµοποιηθούν µε τον τρόπο που κάποιος θα ήθελε. Ο σηµασιολογικός ιστός µπορεί να θεωρηθεί ως µία τεράστια τεχνολογική λύση στο πρόβληµα αυτό. Στην πραγµατικότητα, όµως, είναι πολλά παραπάνω. Το κλειδί είναι η εισαγωγή µεταδεδοµένων ώστε να ενισχύσουν µε πληροφορίες τα απλά δεδοµένα. Τα µεταδεδοµένα κάνουν σαφή την πληροφορία που είναι αόριστη, περιγράφουν το περιεχόµενο και τη σηµασία των πηγών και στη συνέχεια εκθέτουν την πληροφορία για αναζήτηση, επεξεργασία και ενοποίηση. Από τη στιγµή, λοιπόν, που θα γίνεται συνεχώς ευκολότερο για κάποιον να δηµοσιεύσει πληροφορίες και δεδοµένα µε σαφή µορφή, όλο και περισσότεροι άνθρωποι θα θέλουν να δηµοσιεύσουν δεδοµένα. Αυτό θα έχει ως αποτέλεσµα µια ραγδαία αύξηση στην ύπαρξη πληροφοριών στον ιστό και την αύξηση των δυνατοτήτων µας στη διαχείριση αυτών. ιαπιστώνεται ότι ένας µεγάλος αριθµός εφαρµογών θα µπορεί να χρησιµοποιηθεί για µια ποικιλία διαφορετικών ενεργειών, αυξάνοντας την προσαρµοστικότητα των εφαρµογών. ιαπιστώνουµε εποµένως, ότι το βασικό στοιχείο διαφοροποίησης του σηµασιολογικού ιστού µε τον σηµερινό ιστό είναι ότι η πληροφορία θα αποκτήσει ένα καλά ορισµένο νόηµα, το οποίο θα επιτρέψει την ακόµα καλύτερη συνεργασία µεταξύ ανθρώπων και υπολογιστών. Ήδη τα πρώτα βήµατα της ένταξης του σηµασιολογικού ιστού στη δοµή του ιστού είναι σε εξέλιξη. Στο εγγύς µέλλον οι ενέργειες αυτές θα επιτρέψουν στις µηχανές να κατανοούν και να επεξεργάζονται καλύτερα τα δεδοµένα, τα οποία σήµερα απλά µας παρουσιάζουν. Οι άνθρωποι σήµερα µοιράζονται τη γνώση τους στον ιστό µε τη χρήση µιας γλώσσας που δεν απευθύνεται στο σύνολο των ανθρώπων (HTML). Στο σηµασιολογικό ιστό (ο όρος σηµασιολογικό αναφέρεται στο νόηµα), τα δεδοµένα θα µπορούν να εκφράζονται χρησιµοποιώντας όρους τους οποίους θα µπορούν να ερµηνεύσουν και να ανταλλάξουν εξίσου εύκολα οι άνθρωποι και οι 25

27 υπολογιστές. Επιτυγχάνοντας αυτό, παρέχεται η δυνατότητα επίλυσης προβληµάτων που θεωρούνται βαρετά ή χρονοβόρα, βοηθώντας στη γρήγορη εύρεση πληροφοριών. Το βασικό χαρακτηριστικό του ιστού είναι η καθολικότητά του. Η δύναµη του υπερκειµένου (hypertext) είναι πως οποιαδήποτε καταχώρηση µπορεί να έχει δεσµό (link) µε οτιδήποτε. εν υπάρχουν για τον ιστό διαφοροποιήσεις για κείµενα που είναι σε διαφορετικές γλώσσες ή είναι σε διαφορετική µορφή. Οι πληροφορίες διαφέρουν µεταξύ τους σε πολλά σηµεία. Ένα από αυτά είναι η διαφοροποίηση µεταξύ της πληροφορίας που παράγεται κυρίως για κατανάλωση από ανθρώπους και αυτής που προορίζεται για τους υπολογιστές. Στην πρώτη περίπτωση έχουµε οποιασδήποτε µορφής πληροφορία. Στη δεύτερη περίπτωση έχουµε βάσεις δεδοµένων και προγράµµατα. Ο σηµασιολογικός ιστός έρχεται να ξεπεράσει την αδυναµία του σηµερινού ιστού στην αυτόµατη επεξεργασία δεδοµένων και πληροφοριών. Για να γίνει πιο σαφής η αποτελεσµατικότητα της έννοιας της σηµασιολογίας που εισάγει ο σηµασιολογικός ιστός, θα παρουσιαστεί ένα παράδειγµα. Σήµερα, µια από τις πιο ευρέως χρησιµοποιούµενες εφαρµογές του ιστού είναι οι µηχανές αναζήτησης. Όταν ο χρήστης θέλει να ψάξει για κάτι που τον ενδιαφέρει στον ιστό εισάγει κάποιες λέξεις κλειδιά και του επιστρέφονται αποτελέσµατα βάσει αυτών. Στην πράξη, γίνεται µια αναζήτηση στις καταχωρηµένες ιστοσελίδες και παρουσιάζονται όσες περιέχουν τις λέξεις κλειδιά που έδωσε ο χρήστης. Τα αποτελέσµατα πολλές φορές, είναι σε πολύ µικρό ποσοστό σχετικά µε αυτό που πραγµατικά ψάχνει ο χρήστης. Ας δούµε τώρα την περίπτωση που η µηχανή αναζήτησης θα µπορούσε να κατανοήσει και να ερµηνεύσει την φράση ή τις λέξεις που έδωσε ο χρήστης. Στην περίπτωση αυτή, θα έψαχνε µε βάση τη σηµασιολογία των λέξεων και όχι µόνο το γεγονός της ταύτισης µέσα στο κείµενο. Για παράδειγµα, αν ο χρήστης εισάγει την φράση «semantic web», σίγουρα θα του εµφανίσει και δεδοµένα που εµπεριέχουν µόνο τη λέξη «web». Στη συγκεκριµένη περίπτωση όµως, η λέξη αυτή έχει διπλή σηµασία, πέρα από το δίκτυο, κυριολεκτικά σηµαίνει ιστός. Πολλά, λοιπόν από τα αποτελέσµατα που θα επιστραφούν θα είναι εντελώς άσχετα µε αυτό που αναζητά ο χρήστης. Στην περίπτωση της εφαρµογής του σηµασιολογικού ιστού, όµως, θα γίνει φιλτράρισµα όλων των αποτελεσµάτων µε βάση τη σηµασιολογική έννοια της φράσης και όχι µε την κυριολεκτική έννοια, οπότε και τα αποτελέσµατα θα είναι πολύ πιο χρήσιµα. 26

28 Για την υλοποίηση όλης αυτής της καινοτόµας ιδέας, είναι λογικό ότι θα έπρεπε να αναπτυχθούν νέες τεχνολογίες ή και να εξελιχθούν οι ήδη υπάρχουσες. Είναι γεγονός ότι ήδη έχουν δηµιουργηθεί πολλές γλώσσες, εφαρµογές και εργαλεία. Ωστόσο, οι τεχνολογίες σχετικά µε το σηµασιολογικό ιστό βρίσκονται ακόµα σε αρχικά επίπεδα. Αυτή τη στιγµή, παρόλο που το µέλλον του σηµασιολογικού ιστού αντικειµενικά διαφαίνεται λαµπρό, η τελική του µορφή και τα χαρακτηριστικά του δεν είναι σαφώς καθορισµένα. Το ερώτηµα που τίθεται είναι µε ποιον τρόπο θα υλοποιηθούν όλα αυτά. Ο σηµασιολογικός ιστός είναι βασισµένος σε κάποια συγκεκριµένη αρχιτεκτονική (σχήµα 3.1) και συντακτικό [Schreiter T., 2007], που έχει καθοριστεί από την οµάδα ανάπτυξης του w3c. Παρακάτω γίνεται λεπτοµερής παρουσίαση των τεχνολογιών που σχετίζονται µε την αρχιτεκτονική του semantic web. Σχήµα Τεχνολογίες του σηµασιολογικού ιστού Ενιαίο Αναγνωριστικό Πόρου - URI Το κατώτερο επίπεδο του σηµασιολογικού ιστού εξασφαλίζει ότι θα χρησιµοποιείται διεθνής κωδικοποίηση (unicode) χαρακτήρων και παρέχει έναν τρόπο αναγνώρισης των αντικειµένων στον ιστό. Επίσης, καθορίζεται ότι τα έγγραφα του 27

29 σηµασιολογικού ιστού θα διευθυνσιοδοτούνται µε ενιαία αναγνωριστικά πόρων (Uniform Resource Identifiers), γνωστά και ως URIs. Ένα URI είναι απλά ένα αναγνωριστικό του ιστού [Uniform Resource Identifier- Wikipedia, 2009], όπως τα αλφαριθµητικά (strings) που συναντώνται στον ιστό και αρχίζουν µε πρόθεµα http: ή ftp:. Οποιοσδήποτε µπορεί να δηµιουργήσει ένα URI. Θεωρητικά, ότι αντιπροσωπεύεται από κάποιο URI θεωρείται ότι υπάρχει στον ιστό και όλα αυτά µαζί είναι η βάση του παγκόσµιου ιστού (global web). Η σύνταξη των URIs είναι καθορισµένη από τον οργανισµό τυποποίησης IETF, ο οποίος έχει εκδώσει ως γενική προδιαγραφή την τυποποίηση RFC 2396 και ο οργανισµός W3C διατηρεί µια λίστα από URI schemes Επεκτάσιµη Γλώσσα Σήµανσης - XML Η επεκτάσιµη γλώσσα σήµανσης extensible Markup Language (XML) είναι µια γενικής χρήσης προδιαγραφή για τη δηµιουργία προσαρµοσµένων γλωσσών σήµανσης (markup languages). Μια γλώσσα σήµανσης είναι ένας µηχανισµός που καθορίζει δοµές σε ένα έγγραφο. Οι δοµηµένες πληροφορίες περιλαµβάνουν περιεχόµενο και κάποιες διευκρινίσεις για το ρόλο που παίζει το περιεχόµενο αυτό. Σχεδόν όλα τα έγγραφα έχουν την ίδια δοµή. Η XML έχει χαρακτηριστεί ως επεκτάσιµη γλώσσα διότι επιτρέπει στο χρήστη να µαρκάρει τα στοιχεία µε χαρακτηριστικά και ιδιότητες. Γενικότερος σκοπός της XML είναι να βοηθήσει τα πληροφοριακά συστήµατα στην ανταλλαγή δοµηµένων πληροφοριών, κυρίως µέσω διαδικτύου, για την κωδικοποίηση εγγράφων και τη δηµοσιοποίηση των δεδοµένων. [XML-Wikipedia, 2009] Την ανάπτυξη και την επίβλεψη της XML έχει αναλάβει το W3C και είναι ένα ανοιχτό πρότυπο. Το W3C, ακόµα, καθορίζει τη λεξιλογική γραµµατική και τους κανόνες για την ανάλυση απαιτήσεων. Η XML ξεκίνησε ως ένα απλοποιηµένο υποσύνολο της Standard Generalized Markup Language (SGML) [W3Schools-XML, (2009)], που να µπορεί να είναι αναγνώσιµο από τους ανθρώπους µέσω των σηµασιολογικών περιορισµών της κάθε εγγραφής. Η XML σχεδιάστηκε να ικανοποιήσει πολλές ανάγκες δίνοντας στα έγγραφα ένα µεγαλύτερο επίπεδο προσαρµοστικότητας στο στυλ και τη δοµή από αυτό που υπήρχε παλαιότερα στην HTML. Η XML προσφέρει στους σχεδιαστές της HTML τη δυνατότητα να προσθέτουν περισσότερα στοιχεία στη γλώσσα και τους παρέχει τη 28

30 δυνατότητα να καθορίζουν τα tags και τις δοµηµένες µεταξύ τους σχέσεις στα έγγραφα. Σαν γλώσσα δεν αναφέρεται µονάχα στους σχεδιαστές του ιστού αλλά σε οποιονδήποτε ασχολείται µε εκδόσεις. Επιπλέον, η XML χρησιµοποιείται µερικές φορές ως η βασική γλώσσα για την ανάπτυξη των γλωσσών εφαρµογών. Τέτοιες γλώσσες είναι για παράδειγµα οι XHTML, RSS, MathML, GraphML και άλλες. Η γλώσσα XML περιγράφει µια κατηγορία πληροφοριών (data objects) που καλούνται XML έγγραφα (documents), καθώς επίσης περιγράφει τµηµατικά τη συµπεριφορά των προγραµµάτων που τα επεξεργάζονται [Βλαχάβας Ι., et al, 2005]. Τα XML έγγραφα δεν είναι πολύπλοκα αλλά είναι απλά και πολύ αποτελεσµατικά. Το διδακτικό υλικό της well-formed XML αναλύει τη δηµιουργία των XML εγγράφων, η οποία είναι κατά κάποιο τρόπο ίδια µε την HTML καθώς επιτρέπει τη µη δοµηµένη δηµιουργία εγγράφου. Η valid XML είναι πιο σύνθετη. Απαιτεί την ύπαρξη ενός Document Type Definition πριν να γραφεί το έγγραφο αλλά παρέχει µια γενική δοµή µε βάση την οποία τη δηµιουργούµε. Τα XML έγγραφα αποτελούνται από µονάδες αποθήκευσης που καλούνται οντότητες (entities), οι οποίες περιέχουν πληροφορίες αναλυµένες ή µη. Οι αναλυµένες πληροφορίες αποτελούνται από χαρακτήρες (characters), οι οποίοι συνθέτουν character data και άλλοι οι οποίοι συνθέτουν markup. Η µορφή markup κωδικοποιεί την περιγραφή της τελικής αποθήκευσης του εγγράφου καθώς και τη λογική δοµή. Ένα παράδειγµα εγγράφου XML παρουσιάζεται παρακάτω: <?xml version="1.0" encoding="iso "?> <note> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> Στο συγκεκριµένο παράδειγµα, έχουµε ένα απλό σηµείωµα µε τη µορφή ενός XML αρχείου. ηλώνεται αρχικά η έκδοση της XML (version 1.0) και η κωδικοποιήση (encoding), ISO , που χρησιµοποιήθηκαν για τη συγγραφή του εγγράφου. Στην πρώτη ετικέτα (tag) δηλώνεται ο τύπος του αρχείου, στη συγκεκριµένη περίπτωση είναι 29

31 <note> και στη συνέχεια µε τις κατάλληλες ετικέτες καθορίζεται σε ποιον απευθύνεται, από ποιον προέρχεται και ποιο είναι το θέµα του. Στο παραπάνω παράδειγµα, είδαµε ένα έγγραφο XML απλής µορφής. Γενικότερα, τα έγγραφα αυτά εξελίχτηκαν και αναπτύχθηκαν συγκεκριµένοι κανόνες για τη συγγραφή τους. Στο σηµασιολογικό ιστό συναντάµε, συνήθως, δύο µορφές τέτοιων λεξιλογικών εγγράφων, το DTD και το XML Schema Ορισµός τύπου εγγράφου - DTD Ο ορισµός τύπου εγγράφου - Document Type Declaration (DTD) [W3Schools- DTD, 2009] είναι ένα XML έγγραφο στο οποίο καθορίζονται διάφοροι τύποι. Σκοπός ενός DTD είναι να καθορίσει και να διαχωρίσει τα τµήµατα (blocks) δεδοµένων σύµφωνα µε κάποια συγκεκριµένα χαρακτηριστικά. Συγκεκριµένα, καθορίζουν επακριβώς ποια στοιχεία επιτρέπεται να υπάρχουν, σε ποια σηµεία του εγγράφου να βρίσκονται και κάποια άλλα χαρακτηριστικά. Τα χαρακτηριστικά αυτά είναι τα περιεχόµενα (elements), οι ιδιότητες (attributes), οι οντότητες (entities) και τα δεδοµένα (PCDATA, CDDATA). Κάθε στοιχείο (element) που υπάρχει σε ένα έγκυρο έγγραφο θα πρέπει να δηλώνεται στο DTD του εγγράφου µια δήλωση στοιχειού, όπως φαίνεται παρακάτω: <! ELEMENT name content_specification> Το πεδίο name αντιστοιχεί στο όνοµα του στοιχείου και το content_specification καθορίζει τι στοιχεία παιδιά µπορεί ή πρέπει να έχει το συγκεκριµένο στοιχείο και µε ποια σειρά να εµφανίζονται αυτά στο έγγραφο. Τα στοιχεία παιδία µπορεί να είναι απλού τύπου, δηλαδή µεµονωµένα δεδοµένα (PCDATA, CDDATA), ή να είναι σύνθετου τύπου, δηλαδή να είναι και αυτά δηλωµένα στοιχεία (ELEMENT). Στη δοµή του DTD εγγράφου ακολουθεί η δήλωση των ιδιοτήτων (attributes). Οι ιδιότητες δηλώνονται σε µια συγκεκριµένη λίστα, τη λίστα ιδιοτήτων (ATTLIST). Η σύνταξη της λίστας φαίνεται παρακάτω: <! ATTLIST element-name attribute-name attribute-type default-value> 30

32 Το element-name ορίζει σε ποιο στοιχείο ανήκουν οι ιδιότητες που θα δηλωθούν. Το attribute-name είναι στην ουσία το όνοµα της ιδιότητας που θέλουµε να αποδώσουµε στο στοιχείο, το attribute-type ο τύπος της ιδιότητας και το default-value µια στάνταρ τιµή που θέτουµε εξαρχής στην ιδιότητα αυτή. Υπάρχουν δέκα τύποι ιδιοτήτων και τέσσερεις default τιµές τα οποία παρουσιάζονται στον πίνακα 3.2 και 3.1, αντίστοιχα. Πίνακας 3.1 Πίνακας

33 Παρακάτω παρουσιάζεται ένα DTD που αντιπροσωπεύει την περιγραφή της δοµής του παραδείγµατος XML εγγράφου που παρουσιάσαµε παραπάνω: <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> XML Schema Το XML Schema είναι µια άλλη µορφή περιγραφής της δοµής XML εγγράφων. Όπως και στο DTD, έτσι και στο XML Schema ορίζονται τα στοιχεία µε τις ιδιότητες και τα χαρακτηριστικά τους. Ωστόσο, το XML Schema τείνει να αντικαταστήσει πλήρως το DTD γιατί είναι επεκτάσιµο, δηλαδή, επιτρέπει των ορισµό καινούριων τύπων µε πλουσιότερο συντακτικό. Το µεγαλύτερο πλεονέκτηµα είναι ότι βασίζεται στην ίδια τη σύνταξη της XML όποτε δεν χρειάζεται κάποια επιπλέον τεχνολογία (π.χ. parsers) για την επεξεργασία των δεδοµένων και των στοιχείων που παρέχει. Πιο συγκεκριµένα, ο σκοπός του XML schema είναι να καθορίσει τα εξής: [W3Schools, 2009] Τα αντικείµενα που µπορεί να εµφανίζονται µέσα στο έγγραφο Τις ιδιότητες που µπορούν να έχουν τα αντικείµενα Ποια αντικείµενα είναι αντικείµενα παιδιά Ποια είναι η συγκεκριµένη ιεραρχία µεταξύ των αντικειµένων και των αντικειµένων παιδιά Τι µπορεί να είναι ένα αντικείµενο (κενό ή να περιέχει κείµενο ή δεδοµένα) Τους τύπους δεδοµένων για τα αντικείµενα και τις ιδιότητές τους Τις τιµές των αντικειµένων και των ιδιοτήτων τους (default ή fixed) Παρακάτω παρουσιάζεται ένα XML Schema που αντιπροσωπεύει την περιγραφή της δοµής του παραδείγµατος XML εγγράφου που παρουσιάσαµε παραπάνω: 32

34 <?xml version="1.0"?> <xs:schema xmlns:xs=" targetnamespace=" xmlns=" elementformdefault="qualified"> <xs:element name="note"> <xs:complextype> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> Πλαίσιο Περιγραφής Πόρων - RDF Το πλαίσιο περιγραφής πόρων (Resource Description Framework) [W3Schools- RDF, 2009] χρησιµοποιείται για την αναπαράσταση πληροφοριών για πόρους του ιστού σε µορφή τριπλετών. Μια τριπλέτα µπορεί να περιγραφεί απλά από τρία διαφορετικά URIs και έχει τη µορφή υποκείµενο-κατηγόρηµα-αντικέιµενο. Η γλώσσα RDF είναι µια από αυτές που διαχειρίζεται αποτελεσµατικά µια τέτοια µορφοποίηση δεδοµένων. Το W3C ανέπτυξε µια έκδοση της RDF προσαρµοσµένης σε XML. Η RDF XML θεωρείται ως η βασική µορφοποίηση ανταλλαγής δεδοµένων για το σηµασιολογικό ιστό [Swick R.& Lassila O., 1999 ; Manola F. & Miller E., 2004]. Από τη στιγµή που οι πληροφορίες είναι γραµµένες σε RDF µορφή, είναι πολύ πιο εύκολο να επεξεργαστούν, εφόσον η RDF µορφοποιήση είναι γενικότερη. Η RDF XML είναι µια αρκετά λεπτοµερής προδιαγραφή που χρησιµοποιείται και σχετικά πιο πολύπλοκη. Ένα παράδειγµα παρουσιάζεται παρακάτω: 33

35 <rdf:rdf xmlns:rdf=" xmlns:dc=" xmlns:foaf=" > <rdf:description rdf:about=""> <dc:creator rdf:parsetype="resource"> <foaf:name>sean B. Palmer</foaf:name> </dc:creator> <dc:title>the Semantic Web: An Introduction</dc:title> </rdf:description> </rdf:rdf> Σε αυτό το απόσπασµα RDF αναφέρεται ότι το συγκεκριµένο άρθρο έχει τίτλο The Semantic Web: An Introduction και ότι έχει γραφτεί από τον Sean B. Palmer. Παρακάτω παρουσιάζεται η τριπλέτα που αφορά στο παράδειγµά µας: <> < _:x0. this < "The Semantic Web: An Introduction". _:x0 < "Sean B. Palmer" Αυτή η µορφοποιήση είναι στην πραγµατικότητα παρουσίαση της RDF που ονοµάζεται Notation 3. [Berners-Lee T., 2005] Η µορφοποιήση αυτη, αναπτύχθηκε από τον Tim Berners-Lee, ο οπoίος σκόπευε στη δηµιουργία µιας µορφής RDF πιο εύκολης στη χρήση από ότι η XML RDF για την ανάπτυξη µεγάλων εφαρµογών. Φυσικά, για λόγους συµβατότητας, είναι εύκολα µετατρεπόµενη σε XML RDF. Ο λόγος που χρησιµοποιείται η σύνταξη RDF και όχι η XML είναι συγκεκριµένος. Καταρχάς, το όφελος είναι ότι οι πληροφορίες που δηµιουργούνται αντιστοιχίζονται κατευθείαν και ξεκάθαρα σε ένα συγκεκριµένο µοντέλο, το οποίο είναι εύκολα διαχειρίσιµο από πολλούς γενικευµένους parsers. Αυτό σηµαίνει ότι όταν υπάρχει µια εφαρµογή είναι σαφές ποιες πληροφορίες είναι σηµασιολογικές και ποιες συντακτικές λεπτοµέρειες. Επίσης οι πληροφορίες αυτές είναι αναγνωρίσιµες όχι µόνο από τον συγγραφέα της εφαρµογής αλλά από τον οποιονδήποτε. Τέλος αναµένεται ότι η RDF θα είναι στο µέλλον η γλώσσα του Internet, του semantic web για την ακρίβεια, όπως είναι σήµερα η HTML.Για να φτάσει ο σηµασιολογικός ιστός την πλήρη δυναµική του, χρειάζεται να αρχίσουν όλο και περισσότεροι άνθρωποι να δηµοσιεύουν δεδοµένα 34

36 σε RDF µορφή. Ένας τρόπος είναι η µέθοδος εκαθάρισης ιστού (web scraping), η οποία µπορεί να εξορύξει πληροφορίες από δηµοσιεύσεις που υπάρχουν σήµερα και να τις µετατρέψει σε διαχειρίσιµη µορφή (πχ. RDF). Η µέθοδος αυτή επικεντρώνεται κυριώς στην µετατροπή αδόµητων πληροφοριών και δεδοµένων του ιστού σε δοµηµένα δεδοµένα τα οποία µπορούν να αποθηκευτούν σε κάποια βάση δεδοµένων. Κάποιες εφαρµογές της τεχνολογίας αυτής είναι η online σύγκριση τιµών, η παρακολούθηση καιρικών συνθηκών ή η παρακολούθηση αλλάγων σε κάποια συγκεκριµένη ιστοσελίδα [Web Scraping-Wikipedia, 2009]. ύο εύχρηστα εργαλεία είναι το XSLT (για µετατροπή σε XML γλώσσα) και το RegExps (για Perl, Python κτλ). Ένας άλλος τρόπος είναι να αναπτυχθεί ένα κατάλληλο RDF σύστηµα στο οποίο ο χρήστης να δίνει δεδοµένα και αυτό να τα καταχωρεί απευθείας σε RDF µορφή. Έτσι όταν κάποιος θα χρησιµοποιεί τέτοιες φόρµες, τα στοιχεία θα είναι διαθέσιµα στο σηµασιολογικό ιστό για επεξεργασία στο µέλλον RDF Schema Το πρώτο επίπεδο του σηµασιολογικού ιστού, πέρα από τη σύνταξη που περιγράφηκε, είναι το απλό µοντέλο τύπων δεδοµένων. Ένα schema είναι ένα απλό έγγραφο ή ένα τµήµα κώδικα, το οποίο ελέγχει ένα σύνολο όρων από ένα άλλο έγγραφο ή κώδικα. Ένα από τα πιο γνωστά schemata και κατάλληλο για το σηµασιολογικό ιστό, είναι το RDF schema. Το RDF Schema (RDF Schema Candidate Recommendation) [W3Schools-RDF Schema, 2009] σχεδιάστηκε ως ένα απλό datatyping µοντέλο για την RDF. Χρησιµοποιώντας ένα τέτοιο schema µπορεί κάποιος να καθορίσει ότι τα αντικείµενα είναι µέλη µιας κλάσης και ότι κάποιες κλάσεις είναι υποκλάσεις άλλων. Επίσης, µπορεί να δηµιουργήσει ιδιότητες και κλάσεις, ή και λίγο πιο σύνθετα πράγµατα όπως περιορισµούς πεδίου ορισµών (domain) και πεδίου τιµών (range). Ένα τέτοιο schema είναι αναγνωρίσιµο από το χαρακτηριστικό "rdfs:" σε ένα έγγραφο. Τα τρία πιο σηµαντικά χαρακτηριστικά ενός RDF schema είναι τα εξής: Πόρος "Resource" (rdfs:resource) Κλάση "Class" (rdfs:class) Ιδιότητα "Property" (rdf:property). 35

37 Αυτά είναι όλα κλάσεις, οπότε ότι άλλο περιλαµβάνεται στο RDF schema µπορεί να ανήκει σε κάποια από αυτές τις κλάσεις. Για να δηλωθεί ότι κάποιο αντικείµενο ανήκει σε µια κλάση αρκεί να αναγράφεται ως rdf:type property. Με τον τρόπο αυτό γίνεται εύκολο για κάποιον να δηµιουργήσει τις δικές του κλάσεις και τα αντικείµενα που θέλει να ανήκουν σε αυτές. Επίσης, µπορεί να δώσει στις κλάσεις του ότι ιδιότητες επιθυµεί. Κάποια παραδείγµατα παρουσιάζονται παρακάτω: rdfs:resource rdf:type rdfs:class. rdfs:class rdf:type rdfs:class. rdf:property rdf:type rdfs:class. rdf:type rdf:type rdf:property. :Dog rdf:type rdfs:class. :Fido rdf:type :Dog. :name rdf:type rdf:property. :Fido :name "Fido". Σε ένα RDF schema είναι εύκολο µε συγκεκριµένους όρους να δηµιουργηθούν υποκλάσεις ή υποιδιότητες (π.χ. :Dog rdfs:subclassof :Animal, :owns rdf:type rdf:property ). Αυτό εισάγει την έννοια της κληρονοµικότητας σε µια εφαρµογή. Ακόµα µπορούν να εισαχθούν χρήσιµες πληροφορίες ως ετικέτες (labels) ή σχόλια (comments). Μια άλλη δυνατότητα που προσφέρει το RDF schema είναι η δηµιουργία και ο καθορισµός πεδίων ορισµών (domains), τα οποία είναι γενικότερες κατηγορίες κλάσεων και περιέχουν πολλές από αυτές. Γενικά είναι ένα πολύ χρήσιµο, απλό και γρήγορο εργαλείο για τη δηµιουργία σηµασιολογικών βάσεων γνώσης. 3.3 Οντολογίες Οι οντολογίες είναι η βάση για την αναπαράσταση της σηµασιολογική γνώσης. Θεωρούνται παράγοντας κρίσιµης σηµασίας για την έννοια της σκέψης στο χώρο της γνώσης των υπολογιστών. Η οντολογία στην επιστήµη της πληροφορικής ορίζεται ως ένα ελεγχόµενο λεξιλόγιο φράσεων που χρησιµοποιούνται για να εκφράσουν το περιέχοµενο ενός συγκεκριµένου τοµέα ή χώρου της γνώσης [Schreiter T., 2007]. Μια οντολογία ορίζει τους όρους που χρησιµοποιούνται για την περιγραφή και 36

38 αναπαράσταση µιας περιοχής γνώσης. Οι οντολογίες χρησιµοποιούνται από ανθρώπους, βάσεις δεδοµένων και εφαρµογές που ανταλλάσσουν πληροφορίες σχετικές µε το αντικείµενο (περιοχή) - όπως ιατρική, κατασκευή εργαλείων, ακίνητη περιουσία, επισκευή αυτοκινήτων, οικονοµική διαχείριση, κλπ. Οι oντολογίες περιλαµβάνουν ορισµούς βασικών εννοιών - χρησιµοποιήσιµους από υπολογιστές - στην εκάστοτε περιοχή και τις µεταξύ τους σχέσεις. Κωδικοποιούν τη γνώση σε µια περιοχή καθώς και γνώση που διαπερνά περιοχές. Με αυτόν τον τρόπο, κάνουν τη γνώση επαναχρησιµοποιήσιµη DAML+OIL Η DAML εξελίχθηκε στην γνωστή έκδοση DAML+OIL. Η έκδοση της γλώσσας αυτής παρέχει µια µέθοδο περιγραφής συγκεκριµένων πραγµάτων, όπως αντιστροφές, ξεκάθαρων και µοναδικών ιδιοτήτων, περιορισµών, θεµελιωδών αρχών, τύπων δεδοµένων και πολλά άλλα. Αποτελεί την πρώτη επιτυχηµένη και αρκετά πλήρη προσπάθεια ανάπτυξης µιας γλώσσας για την περιγραφή των οντολογιών. Παρακάτω παρουσιάζονατι κάποια παραδείγµατα χρήσης της γλώσσας [Mc Ilraith, et al, 2001; Ouellet R. & Ogbuji U. 2002]. Μια βασική έννοια της DAML είναι η daml:inverseofproperty. Με χρήση αυτής της έννοιας, δηλώνεται ότι µία ιδιότητα είναι αντίστροφη µιας άλλης. Παράδειγµα: :hasname daml:inverseof :isnameof. :Sean :hasname "Sean". "Sean" :isnameof :Sean. Μια άλλη χρήσιµη έννοια είναι η daml:unambiguousproperty. Τη χρησιµοποιούµε όταν θέλουµε να δηλώσουµε ότι αν τα αντικείµενο της ιδιότητας είναι ίδια τότε και τα θέµατα των αντικειµένων είναι ίδια. Παράδειγµα: foaf:mbox rdf:type daml:unambiguousproperty. :x foaf:mbox. 37

39 :y foaf:mbox. implies that:- :x daml:equivalentto :y OWL Η OWL (Web Ontology Language) [Dean M., Schreiber G.,2004; McGuinness D., van Harmelen F., 2003] είναι µια γλώσσα για τον ορισµό δοµηµένων οντολογιών, βασισµένων στον Παγκόσµιο Ιστό, που δίνουν τη δυνατότητα για πλουσιότερη ενσωµάτωση και διαλειτουργικότητα δεδοµένων, σε εύρος εφαρµογών. Η OWL δίνει τη δυνατότητα πραγµατοποίησης εύρους περιγραφικών εφαρµογών, συµπεριλαµβανοµένων της διαχείρισης portals του Παγκοσµίου Ιστού, αναζητήσεων που βασίζονται στο περιεχόµενο, διαχείρισης συλλογών, ενδυναµώνοντας τους έξυπνους πράκτορες, τις υπηρεσίες του Παγκοσµίου Ιστού και γενικά όλες τις περιοχές υλοποίησης εφαρµογών των υπολογιστών. Η γλώσσα OWL είναι µια σηµασιολογική γλώσσα που εξελίχθηκε ως λεξιλογική επέκταση της RDF και προήλθε από την προγενέστερη της DAML+OIL, προσθέτοντας πλουσιότερο λεξιλόγιο για την περιγραφή ιδιοτήτων και τάξεων: σχέσεις µεταξύ τάξεων (για παράδειγµα ανεξαρτησία), αριθµητικές σχέσεις (για παράδειγµα "ακριβώς ένα"), ισότητα, πλουσιότερα χαρακτηριστικά ιδιοτήτων (για παράδειγµα συµµετρικές) και απαριθµητές τάξεις. Η OWL είναι µια γλώσσα οντολογιών για τον ιστό [McGuinness D. & van Harmelen F., 2003]. Ενώ οι προηγούµενες γλώσσες χρησίµευαν στην ανάπτυξη εργαλείων και οντολογιών για συγκεκριµένες κοινότητες χρηστών, δεν ορίζονταν ώστε να είναι συµβατές µε την αρχιτεκτονική του Παγκοσµίου Ιστού γενικά, ούτε µε το Σηµασιολογικό Ιστό ειδικότερα. Η γλώσσα OWL το κατορθώνει αυτό, χρησιµοποιώντας URIs για ονοµατοδοσία και τις διασυνδέσεις µέσω του RDF για την προσθήκη των παρακάτω δυνατοτήτων στις οντολογίες: υνατότητα κατανοµής σε εύρος συστηµάτων Επεκτασιµότητα, ανάλογα µε τις ανάγκες στον Παγκόσµιο Ιστό Συµβατότητα µε τα πρότυπα (standards) του Παγκοσµίου Ιστού για προσβασιµότητα και διεθνοποίηση. Είναι ανοιχτές και επεκτάσιµες. 38

40 Κλάσεις Οι κλάσεις στην OWL παρέχουν ένα µηχανισµό για την συλλογή πηγών (resources) µε όµοια χαρακτηριστικά. Σε κάθε κλάση της OWL ορίζεται ένα σύνολο από αντικείµενα που ονοµάζεται class extension. Τα αντικείµενα αυτά απότελούν ξεχωριστά γεγονότα της κάθε κλάσης. Κάθε κλάση έχει ένα βασικό νόηµα που τη χαρακτηρίζει, παρόλο που δύο κλασείς µπορούν να έχουν ίδια γεγονότα. Τεχνικά οι OWL κλάσεις περιγράφονται από συγκεκριµένες περιγραφές (class descriptions), οι οποίες µπορούν να µετατραπούν σε ορισµούς κλάσεων ή αξιωµατικές κλάσεις (class axioms).τα δύο αυτά χαρακτηριστικά της OWL θα περιγράψουµε στη συνέχεια [Dean M., Schreiber G.,2004]. Συγκεκριµένα στην OWL διακρίνονται έξι τύποι περιγραφών κλασης: Aναγνωριστικό κλάσης (URI). Ο τύπος αυτός είναι βασικός καθώς αποτελεί το όνοµα της κλάσης. Ο ορισµός του τύππυ αυτού γίνεται µε τον ακόλουθο τρόπο: <owl:class rdf:id="human"/> Eξαντλητική απαρίθµηση (enumeration) των αντικειµένων τα οποία συντελούν ένα γεγονός της κλάσης. Την κλάση αυτή τη δηµιουργεί µια λίστα από ξεχωριστά αντικείµενα καθένα από τα οποία αποτελεί ένα γεγονός. Ωστόσο για να ισχύει η περιγραφή της κλάσης πρέπει όλα τα αντικείµενα να συµµετέχουν σε αυτήν ακριβώς όπως ορίζονται. Ο τύπος αυτής της κλάσης ορίζεται µε την ιδιότητα owl:oneof µε τον ακόλουθο τρόπο: <owl:class> <owl:oneof rdf:parsetype="collection"> <owl:thing rdf:about="#eurasia"/> <owl:thing rdf:about="#africa"/> <owl:thing rdf:about="#northamerica"/> <owl:thing rdf:about="#southamerica"/> 39

41 <owl:thing rdf:about="#australia"/> <owl:thing rdf:about="#antarctica"/> </owl:oneof> </owl:class> Περιγραφή περιορισµών των ιδιοτήτων (property restriction) των αντικειµένων της κλάσης. Ο συγκεκριµένος τύπος περιγραφής ορίζει µια κλάση στην οποία τα αντικείµενα που συµµετέχουν πρέπει να ικανοποιούν συγκεκριµένους περιορισµούς. Οι περιορισµοί που διακρίνονται σε τέτοιου είδους κλάσεις είναι δύο τύπων, περιορισµοί τιµών (value constraints) και πρωταρχικοί περιορισµοί (cardinality constraints). Οι περιορισµοί τιµών καθορίζουν ποιες τιµές µπορεί να έχει ένα αντικείµενο της κλάσης. ιακρίνονται κάποιες επιµέρους ιδιότητες στους περιορισµούς τιµών οι οποίοι διευκρινίζουν την κλάση. Υπάρχει η ιδιότητα owl:allvaluesfrom η οποία ορίζει ότι το αντικέιµενο πρέπει να πάρει όλες τις τιµές από ένα σύνολο το όποιο µπορέι να είναι είτε ένα σύνολο δεδοµένων είτε µια άλλη περιγραφή κλάσης. Η ιδιότητα owl:somevaluesfrom ορίζει οµοιώς ότι το αντικείµενο πρέπει να πάρει τιµές από ένα µέρος του συνόλου, δεν είναι υποχρεωτικό να τις πάρει όλες. Τέλος, η ιδιότητα owl:hasvalue καθορίζει ότι ένα αντικείµενο πρέπει να έχει ιδία τιµή σηµασιολογικά µε κάποιο συγκεκριµένο άλλο αντικέιµενο ή καποιο δεδοµένο. Οι πρωταρχικοί περιορισµοί καθορίζουν των αριθµών των διαφορετικών τιµών που µπορεί ή πρέπει να έχει ένα αντικείµενο. Για να γίνουν πιο συγκεκριµένοι οι πρωταρχικοί περιορίσµοι χρησιµοποιούν συγκεκριµένες ιδιότητες. Η ιδιότητα owl:maxcardinality και η owl:mincardinality ορίζουν ότι µια κλάση µπορεί να έχει µέχρι το πολύ ή το λιγότερο αντίστοίχα κάποια δεδοµένα ή τιµές. Και τέλος η ιδιότητα owl:cardinality δηλώνει ότι η κλάση πρέπει να έχει ακριβώς ένα συγκεκριµένο αριθµό τιµών. ιασταυρώση περιγραφών κλάσεων (intersection), δύο ή περισσοτέρων. Στην ουσία ο τύπος αυτός περιγραφής κλάσεων αποτελεί τον τελεστή AND στον τοµέα των κλάσεων και των οντολογιών. Ορίζεται µε την ιδιότητα owl:intersectionof, η οποία δηµιουργεί µια κλάση συνδυάζοντας 40

42 δύο ή περισσότερες. Η κλάση που προκύπτει περιέχει τα στοιχεία αυτά που εντοπίζονται κοινά στις κλάσεις οι οποίες συνδυάζονται. Παράδειγµα τετοιας κλάσης παουσιάζεται παρακάτω: <owl:class> <owl:intersectionof rdf:parsetype="collection"> <owl:class> <owl:oneof rdf:parsetype="collection"> <owl:thing rdf:about="#tosca" /> <owl:thing rdf:about="#salome" /> </owl:oneof> </owl:class> <owl:class> <owl:oneof rdf:parsetype="collection"> <owl:thing rdf:about="#turandot" /> <owl:thing rdf:about="#tosca" /> </owl:oneof> </owl:class> </owl:intersectionof> </owl:class> Ένωση περιγραφών κλάσεων (union), δύο ή περισσοτέρων. Όπως και στη περίπτωση της προηγούµενης περιγραφής, η ένωση αποτελεί την αντιστοίχιση του τελεστή OR στην γλώσσα των οντολογιών και των κλάσεων και ορίζεται από την ιδιότητα owl:unionof. Στην ουσία είναι µια κλάση η οποία περιέχει όλα τα χαρακτηριστικά που περιέχουν και οι κλάσεις που συνδυάζονται για τη δηµιουργίατης. Ένα παράδειγµα τέτοιας περιγραφής παρουσιάζεται παρακάτω: <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class> <owl:oneof rdf:parsetype="collection"> <owl:thing rdf:about="#tosca" /> <owl:thing rdf:about="#salome" /> </owl:oneof> </owl:class> 41

43 <owl:class> <owl:oneof rdf:parsetype="collection"> <owl:thing rdf:about="#turandot" /> <owl:thing rdf:about="#tosca" /> </owl:oneof> </owl:class> </owl:unionof> </owl:class> Συµπληρωµατικό περιγραφής κλάσης (complement). Ο τύπος αυτός περιγραφής ορίζεται µε την ιδιότητα owl:complementof και αποτελεί την αντιστοίχηση του συντελεστή NOT στον τοµέα των οντολογιών. Η κλάση αυτή συγκρίνεται µε την περιγραφή κάποιας άλλης και δεν πρέπει να περιέχει κανένα αντικείµενο που περιέχεται και στη συγκρινόµενη κλάση. Ένα παράδειγµα παρουσιάζεται παρακάτω: <owl:class> <owl:complementof> <owl:class rdf:about="#meat"/> </owl:complementof> </owl:class> Οι αξιωµατικές κλάσεις έρχονται να προσθέσουν χαρακτηριστικά και να κάνουν πιο ανεπτυγµένη µια απλή κλάση που παρουσιάζεται από ένα URI. Η OWL χργσιµοποιεί τρεις βασικές δοµές για να χαρακτηρίσει και να συνδυάσει τις περιγραφές των κλασεών της. Οι δοµές αυτές είναι οι εξής: rdfs:subclassof. ηλώνει ότι η επέκταση µιας περιγραφής µιας κλάσης είναι ή αποτελεί υποσύνολο µιας άλλης περιγραφής κλάσης. owl:equivalentclass. ηλώνει ότι η επέκταση µιας περιγραφής µιας κλάσης έχει ακριβώς τα ίδια στοιχεία, ταυτίζεται δηλαδή, µε την περιγραφή κάποιας άλλης κλάσης. owl:disjointwith. ηλώνει ότι η επέκταση µιας περιγραφής µιας κλάσης δεν έχει κοινά αντικείµενα και χαρακτηριστικά µε την περιγραφή κάποιας άλλης κλάσης. 42

44 Ιδιότητες Η OWL δίνει τη δυνατότητα σε κάποιον που γράφει οντολογίες να καθορίσει δύο βασικούς τύπους ιδιοτήτων, ιδιότητες αντικειµένων (object properties) και ιδιότητες δεδοµένων (datatype properties). Ακόµα µπορούν να οριστούν άλλοι δύο τύποι ιδιοτήτων, ιδιότητες σχολιασµών (annotation properties) και ιδιότητες οντολογιών (ontology properties) και χρησιµοποιούνται για σηµασιολογικό σχολιασµό των οντολογιών [Dean M., Schreiber G.,2004]. Παρακάτω θα παρουσιάσουµε κάποιες από τις βασικές ιδιότητες και τα χαρακτηριστικά που αποδίδουν στις κλάσεις. rdfs:subpropertyof. Ο χαρακτηρισµός αυτός δηλώνει ότι µια ιδιότητα που αποδίδεται σε ένα αντικείµενο µιας κλασης είναι υποιδιότητα µιας άλλης ιδιότητας. Αυτό σηµαίνει οτί τα χαρακτηριστικά που αποδίδεί µια ιδιότητα είναι ταυτοχρονα και χαρακτηριστικά µιας άλλης ιδιότητας. rdfs:domain. Με το χαρακτηριστικό αυτό δηλώνεται ότι µια ιδιότητα που αποδίδεται σε ένα αντικείµενο εντάσσεται σε κάποια συγκεκριµένη περιγραφή κλάσης, κοινώς σε κάποιο συγκεκριµένο τοµέα. Σε µια ιδιότητα βέβαια µπορούν να αποδοθούν περισσότερους από ένας τοµείς. rdfs:range. Η ιδιότητα αυτή είναι κατά κάποιο τρόπο ένα υπερσύνολο της προήγούµενης, καθώς αποδίδει τα ίδια χαρακτηριστικά µε τη διαφορά ότι η ιδιότητα µπορεί να εντάσσεται όχι µόνο σε κάποια περιγραφή κλάσης αλλά και σε κάποιο ξεχωριστό σύνολο δεδοµένων (data range). owl:equivalentproperty. Το χαρακτηριστικό αυτό δηλώνει ότι δύο ιδιότητες έχουν την ίδια επέκταση. Αυτό σηµαίνει ότι παίρνουν τις ίδιες τιµές (values), αλλά όχι ότι είναι ίδιες, εννοιολογικά µπορεί να παρουσιάζουν διαφορετικό χαρακτηριστικό. owl:inverseof. Οι ιδιότητες συνήθως είναι κατευθυνόµενες ιεραρχικά από έναν τοµέα (domain) σε ένα εύρος (range). Με τον τρόπο αυτό 43

45 δηµιουργούνται αντίστροφες σχέσεις, π.χ. οι άνθρωποι έχουν αυτοκίνητα-τα αυτοκίνητα ανήκουν στους ανθρώπους. Με το χαρακτηριστικό αυτό, λοιπόν, µπορούν να δηλωθούν τέτοιου είδους σχέσεις στις ιδιότητες των οντολογιών. owl:functionalproperty. Με αυτή την ιδιότητα καθορίζεται ότι ένα γεγονός µιας κλάσης που χαρακτηρίζεται από την ιδιότητα θα παίρνει πάντα την ίδια µοναδική τιµή. owl:inversefunctionalproperty. Η ιδιότητα αυτή δηλώνει ότι µια τιµή ενός γεγονότος µιας κλασης είναι µοναδική για το κάθε γεγονός. Στην ουσία είναι η αντίστροφη σχέση της παραπάνω ιδιότητας. owl:transitiveproperty.το χαρακτηριστικό αυτό δηλώνει ότι αν ένα αντικείµενο χαρακτηρίζεται από µια ιδιότητα και αυτή η ιδιότητα µε τη σειρά της χαρακτηρίζεται από µια άλλη ιδιότητα, τότε αυτοµάτως το αντικείµενο χαρακτηρίζεται από τη δεύτερη ιδιότητα και αποτελούν και οι δύο σχέσεις γεγονότα της ίδιας κλάσης. Στην ουσία είναι η γνωστή µας µεταβατική ιδιότητα. owl:symmetricproperty.η ιδιότητα αυτή είναι η αντίστοιχη της αντιµεταθετικής. ηλαδή, αν ένα αντικείµενο χαρακτηρίζεται από µια συγκεκριµένη ίδιότητα τότε και η ιδιότητα ως αντικείµενο θα χαρακτηρίζεται από το συγκεκριµένο αντικείµενο. Τα δύο γεγονότα είναι ανεξάρτητα αλλά αποτελούν και τα δύο γεγονότα της ίδιας κλάσης Σηµασιολογικός Σχολιασµός Οντολογιών Η έκδοση OWL που υποστηρίζει και χρησιµοποιείται για την εισαγωγή κάποιων σηµασιολογικών σχολιασµών στις οντολογιές ονοµάζεται OWL DL. H OWL DL δίνει τη δυνατότητα στον δηµιουργό µιας οντολογίας να εισάγει σχόλια στις κλάσεις, στις ιδιότητες και στα αντικείµενα, σύµφωνα µε την τήρηση συγκεκριµένων κανόνων. Οι κύριοι κανόνες είναι ότι οι ιδιότητες σχολιασµού (annotation properties) πρέπει να είναι εντελώς ανεξάρτητες από τις άλλου είδους ιδιότητες που παρουσιάσαµε παραπάνω, δεν µπορούν να ανήκουν σε µεγαλύτερα ή µικρότερα σύνολα άλλων ιδιοτήτων και µπορούν 44

46 να είναι είτε απλά δεδοµένα, είτε κάποιο URI, είτε ένα αντικείµενο. Οι τύποι των ιδιοτήτων σχολιασµού είναι προκαθορισµένοι από το συνατκτικό της OWL και είναι πέντε [Dean M., Schreiber G.,2004]: rdfs:label. rdfs:comment. rdfs:seealso. rdfs:isdefinedby. owl:versioninfo. Η συγκεκριµένη ιδιότητα είναι πολύ χρήσιµη για τεχνικούς λόγους και για την διευκόλυνση συµβατότητας των οντολογιών µε συστήµατα και άλλες γλώσσες, για αυτό περιλάµβάνει επιπλέον χαρακτηρισµούς. Έχουµε, λοιπόν, τις ακόλουθές επιµέρους ιδιότητες: την owl:priorversion, την owl:backwardcompatiblewith, την owl:incompatiblewith, την owl:deprecatedclass και την owl:deprecatedproperty. 3.4 Αξιοπιστία Η δύναµη των γλωσσών σηµασιολογικού ιστού είναι ότι ο καθένας µπορεί να δηµιουργήσει µια, απλά εκδίδοντας κάποια µορφή RDF η οποία να περιγράφει ένα σύνολο από URI s, δηλαδή να εξηγεί τι κάνουν, τι σηµαίνουν και πως µπορούν να χρησιµοποιηθούν. Επιπλέον µπορούµε να δηµοσιεύσουµε εύκολα την κάθε γλώσσα, χωρίς το φόβο παρερµήνευσης των όρων της αφού χρησιµοποιούµε URI s, και µε τη γνώση ότι ο καθένας στον κόσµο που διαθέτει έναν απλό RDF επεξεργαστή θα µπορεί να τη χρησιµοποιήσει. Ο σηµασιολογικός ιστός βασίζεται στην αρχή της ελαχίστης δύναµης, όσο λιγότεροι κανόνες τόσο το καλύτερο. Αυτό σηµαίνει ότι ο σηµασιολογικός ιστός είναι ουσιαστικά πολύ ελαστικός στο τι θέλει κάποιος να πει και κατά συνέπεια ο καθένας µπορεί να πει ότι θέλει για οτιδήποτε. Είναι ευνόητο, λοιπόν, γιατί ο σηµασιολογικός ιστός βασίζεται σε αυτή την αρχή. Αν περιορίζονταν οι άνθρωποι από πολλούς κανόνες 45

47 δε θα ήταν το ίδιο εύκολο να αναπτυχθεί µεγάλο εύρος εφαρµογών, µε αποτέλεσµα η έννοια του σηµασιολογικού ιστού να ήταν άχρηστη. Παρ όλη την ευκολία και την ελαστικότητα που περιέχει η έννοια του σηµασιολογικού ιστού, οι εφαρµογές που θα αναπτύσσονται στο ανώτερο επίπεδο του, θα είναι για να εκτελούν συγκεκριµένες διαδικασίες, και µάλιστα πολύ καθορισµένες. Αυτό σηµαίνει ότι οι χρήστες των δεδοµένων, ακόµα και αν δηµοσιεύουν δεδοµένα µε οποιονδήποτε τρόπο θέλουν, δε θα µπορούν να επέµβουν στον πυρήνα των εφαρµογών. Το επόµενο κοµµάτι έρευνας σχετικά µε την αρχιτεκτονική του σηµαιολογικού ιστού αφορά τις έννοιες εµπιστοσύνη και απόδειξη. Είναι ένας τοµέας που δεν έχει ερευνηθεί πολύ, παρόλο που στο µέλλον θα παίξει πολύ σηµαντικό ρόλο στο σηµασιολογικό ιστό. Το ερώτηµα είναι, ποιες πληροφορίες και από ποιόν θα µπορεί κάποιος να εµπιστευτεί. Συνεπώς αν δύο ή περισσότερες καταχωρηµένες πληροφορίες για το ίδιο αντικείµενο δηλώνουν διαφορετικά πράγµατα, όλη η έννοια του σηµασιολογικού ιστού καταρρέει. Η αντιµετώπιση του προβλήµατος αυτού έγκειται στο γεγονός ότι οι εφαρµογές βασίζουν τις δηµοσιεύσεις πληροφορίας στα συµφραζόµενα, δηλαδή, δεν µπορεί να είναι εντελώς αυθαίρετη επιλογή. Επίσης, µία άλλη λύση είναι η ανάπτυξη µηχανισµών ελέγχων και η ενσωµάτωση ψηφιακών υπογραφών στις εφαρµογές, για απόδειξη της εγκυρότητας της δηµοσιευµένης πληροφορίας του σηµασιολογικού ιστού. Οι εφαρµογές του σηµασιολογικού ιστού θα βασίζονται γενικά στα συµφραζόµενα για να επιτρέπουν στους ανθρώπους να αποφασίζουν αν η πληροφορία είναι έµπιστη ή όχι. Πολύ σηµαντικό ρόλο στο πόσο έµπιστη είναι µια πληροφορία παίζει το ποιος την έχει εκδώσει, είτε πρόκειται για µεµονωµένο άτοµο είτε πρόκειται για συγγραφική οµάδα εφαρµογών. Ο αναγνώστης της πληροφορίας θα µπορεί να αξιολογήσει µόνος του κατά πόσο εµπιστεύεται τον εκδότη και κατά συνέπεια την πληροφορία. Γενικά, η µέθοδος αυτή είναι καλή, καθώς επιτρέπει στο χρήστη να λειτουργήσει αυθόρµητα και να αποφασίσει σχετικά µε την πληροφορία, χωρίς να είναι απαραίτητο να βασιστεί σε σύνθετα εργαλεία και συστήµατα αυθεντικοποιήσης (authentication) και ελέγχου. Για πιο σύνθετα και περισσότερα δεδοµένα, η παραπάνω µέθοδος δεν είναι επαρκής. Για αυτό το λόγο χρησιµοποιούνται ψηφιακές υπογραφές. Η ψηφιακή 46

48 υπογραφή είναι ένας συνδυασµός από bit τα οποία αντιπροσωπεύουν το άτοµο που έγραψε ένα έγγραφο. Είναι ακριβώς η ίδια περίπτωση που χρησιµοποιείται για την αποστολή κρυπτογραφηµένων µηνυµάτων, απλά γίνεται εφαρµογή της τεχνολογίας αυτής στην RDF. Μια αναφορά σε ένα RDF αρχείο θα µπορούσε να είναι η εξής: this :signature < Ο χρήστης, λοιπόν, παίρνει αυτήν την αναφορά την τροφοδοτεί σε µια µηχανή εξαγωγής συµπερασµάτων (trust engine), η οποία θα δώσει ως αποτέλεσµα αν η πηγή του αρχείου είναι έγκυρη ή όχι. Μια άλλη εξέλιξη που σχετίζεται άµεσα µε την έννοια του σηµασιολογικού ιστού και της εµπιστοσύνης είναι η ανάπτυξη γλωσσών αποδείξεων (proof language). Μια τέτοια γλώσσα επιτρέπει να αποδειχτεί αν µια δήλωση είναι αληθής ή όχι. Ένα στιγµιότυπο της γλώσσας αυτής αποτελείται από ένα σύνολο συλλογισµών που οδήγησαν στο τελικό συµπέρασµα. Για παράδειγµα, η µηχανή εξαγωγής συµπερασµάτων CWM µπορεί να πάρει ορισµένα αρχεία και κάνοντας χρήση της RDF ιδιότητας equivalentto να εξάγει ένα γενικό συµπέρασµα [Palmer S., 2001]. 3.5 Εξέλιξη Μια άλλη πολύ σηµαντική έννοια του σηµασιολογικού ιστού είναι αυτή της εξέλιξης, η µετάβαση δηλαδή από το ένα σύστηµα στο άλλο [Palmer S., 2001]. Οι δύο έννοιες κλειδιά για την εξέλιξη είναι η µερική κατανόηση (partial understanding) και η προσαρµοστικότητα (transformability). Η έννοια της µερικής κατανόησης (partial understanding) έχει να κάνει µε τη διαχείριση δύο συστηµάτων, γραµµένα σε διαφορετική γλώσσα, που περιέχουν γνώση για το ίδιο θέµα. ηλαδή, να υπάρχει µια τέτοια µηχανή που να µπορεί να αποµονώνει τα δεδοµένα και να τα µεταφράζει στην εκάστοτε γλώσσα για να µπορούν να είναι εύκολα διαχειρίσιµα από οποιοδήποτε σύστηµα και χωρίς να ενδιαφέρει τους χρήστες η εσωτερική δοµή και το πώς είναι καταχωρηµένα τα δεδοµένα. Η άλλη πλευρά της εξελιξιµότητας αφορά στη δυνατότητα ενός συστήµατος να µετατρέπεται και να προσαρµόζεται (transformability). Για παράδειγµα, να µπορούν να 47

49 ενσωµατωθούν εύκολα δύο διαφορετικές βάσεις σηµασιολογικών δεδοµένων σε µία ενιαία, ακόµα και αν είναι σε διαφορετικό format. Για τη διευκόλυνση της εξέλιξης του σηµασιολογικού ιστού και της συµβατότητας όλων των δεδοµένων και των εφαρµογών ιδρύθηκε µια οργάνωση µε το όνοµα the Semantic Web Agreement Group (SWAG) [Swag-Semantic Web Agreement Group, 2009]. Σκοπός τους είναι να εξασφαλίσουν και να διασφαλίσουν τη διαλειτουργικότητα των εφαρµογών, των δεδοµένων και του σηµασιολογικού ιστού. ηµοσίευσαν, επίσης, ένα σηµασιολογικό λεξικό, το WebNS SWAG Dictionary [The Swag Dictionary, 2009]. Γενικότερα, ο σηµασιολογικός ιστός δεν είναι απλά ένα εργαλείο αυτόµατης εκτέλεσης εργασιών. Εάν σχεδιαστεί και υλοποιηθεί σωστά, θα µπορέσει να συµβάλει αποφασιστικά στην ανάπτυξη ολόκληρης της ανθρώπινης γνώσης. Ο σηµασιολογικός ιστός θα επιτρέψει την περιγραφή κάθε ιδέας µε συγκεκριµένο τρόπο, ώστε αυτή να µπορεί να γίνει κατανοητή από οποιονδήποτε, σε οποιαδήποτε γλώσσα. Αυτή η λογική γλώσσα θα επιτρέψει στα νοήµατα να διασυνδεθούν µεταξύ τους και να δηµιουργήσουν έναν καθολικό ιστό. Κατά συνέπεια θα έχουµε συνεχόµενη και αυξανόµενη ροή πληροφοριών µε αποτέλεσµα τη διεύρυνση της ανθρώπινης γνώσης. 48

50 4 Σηµασιολογικές Υπηρεσίες Ιστού Οι περισσότερες υπάρχουσες περιγραφές των υπηρεσιών ιστού δεν παρέχουν επαρκείς πληροφορίες που να δηλώνουν τη σηµασιολογική έννοια των χαρακτηριστικών και των δυνατοτήτων των υπηρεσιών. Συνεπώς, οι περισσότερες υπηρεσίες δεν είναι ξεκάθαρες και πλήρως ορισµένες. Για να γίνουν, λοιπόν, αποτελεσµατικότερες και περισσότερο αυτοµατοποιηµένες οι λειτουργίες που σχετίζονται µε τις υπηρεσίες, πρέπει οι µηχανές να µπορούν να διαχειριστούν σε όλο το βαθµό την περιγραφή των υπηρεσιών, ώστε να µπορούν να µεταφράσουν σωστά το περιεχόµενό τους. Έτσι, η ιδέα που ήρθε να λύσει το πρόβληµα ήταν ο σηµασιολογικός σχολιασµός τους (semantic annotation) βασισµένη στην ιδέα του σηµασιολογικού ιστού. Κατά συνέπεια και οι υπηρεσίες ιστού πλέον βασίζονται σε οντολογίες. Οι υπηρεσίες ιστού οι οποίες προσφέρουν κάποια σηµασιολογική περιγραφή των χαρακτηριστικών τους αναφέρονται ως σηµασιολογικές υπηρεσίες ιστού (semantic web services). 4.1 Σηµασιολογία Υπηρεσιών Ιστού Για να επιτευχθεί η επικοινωνία και η διαλειτουργικότητα δύο ή περισσοτέρων εφαρµογών των υπολογιστών πρέπει να πληρούνται κάποιες προϋποθέσεις [Booth D., et al, 2004]: 1. Αρχικά πρέπει να υπάρχει φυσική σύνδεση µεταξύ των υπολογιστών, έτσι ώστε τα δεδοµένα της µιας εφαρµογής να µπορούν να φτάσουν στην αντίστοιχη εφαρµογή. 2. Πρέπει να υπάρχει συµφωνία ως προς το είδος των δεδοµένων που θα ανταλλάσουν οι υπολογιστές. Παράδειγµα αν θα είναι απλό κείµενο ή αν θα είναι XML δοµές. 3. Επίσης, πρέπει να υπάρχει συµφωνία µεταξύ των εφαρµογών για το ποιος θα είναι ο σκοπός των δεδοµένων που ανταλλάσσονται. Για παράδειγµα αν τα 49

51 δεδοµένα παρουσιάζουν µια ιστοσελίδα, την ανταλλαγή ενός ή µια online συναλλαγή τράπεζας. 4. Τέλος, πρέπει να υπάρχει συµφωνία για το πώς θα χειριστούν τα δεδοµένα που ανταλλάσσονται. Όπως στην περίπτωση της τραπεζικής συναλλαγής θα πρέπει να υπάρχει µια υπηρεσία ιστού που να κάνει την επεξεργασία των δεδοµένων για να επιτευχτεί η συναλλαγή. Στην περίπτωση των υπηρεσιών ιστού, οι συµφωνίες αυτές για τη µορφή, τη δοµή και τη σηµασία των δεδοµένων επιτυγχάνονται µέσω των σηµασιολογικών µεταδεδοµένων που υπάρχουν και χαρακτηρίζουν κάθε εφαρµογή υπηρεσίας ιστού. Το εύρος στο οποίο εκτείνονται αυτές οι συµφωνίες σχετικά µε τα µηνύµατα, είναι πέρα από τα όρια των πρακτόρων που συµµετέχουν και διαχειρίζονται τις ανταλλαγές τους. Η έµφαση που δίνεται στον τύπο των µηνυµάτων παρά στις ενέργειες που προκαλούν βοηθάει στο να ανιχνεύεται η κίνηση και ο κάθε ενδιάµεσος πράκτορας να αναλαµβάνει το κοµµάτι που του αντιστοιχεί. Με αυτό το σύστηµα τίθεται κάποιου είδους ιεραρχία. Η ορατότητα του είδους των µηνυµάτων και της επικοινωνίας στις υπηρεσίες ιστού ενισχύεται από τις standard σηµασιολογίες που ισχύουν στους τύπους επικοινωνίας, όπως στην περίπτωση του HTTP πρωτοκόλλου. Οι ενδιάµεσοι πράκτορες εντοπίζουν το URI της υπηρεσίας που αναζητείται, την TCP/IP διεύθυνση αυτού που ζητάει την υπηρεσία και τη συγκεκριµένη ενέργεια που ζητείται να επιτευχθεί, και έτσι µπορούν να αποφασίσουν αν η ενέργεια αυτή µπορεί να πραγµατοποιηθεί. Τα πρωτόκολλα που ανήκουν στην σουίτα του TCP/IP, όπως το HTTP, έχουν πολλές υποστηριζόµενες και καθιερωµένες συµβάσεις (π.χ. well-known ports) για να µπορούν να λειτουργούν µε τους ενδιάµεσους πράκτορες, τα firewall και τους servers που εξυπηρετούν την επικοινωνία. Στην περίπτωση των υπηρεσιών ιστού η έµφαση δίνεται κυρίως στη δοµή των µηνυµάτων τα οποία αποτελούνται από φακέλους (envelopes), κεφαλίδες (headers) και κυρίως µέρη (bodies). Το κάθε τµήµα του µηνύµατος περιέχει συγκεκριµένες πληροφορίες και δεδοµένα που απευθύνονται στα διαφορετικά επίπεδα της επικοινωνίας. Για παράδειγµα, στην περίπτωση που χρειάζεται να γίνει κάποιου είδους αυθεντικοποιήση, υπάρχουν well-known standards για το πώς θα ορίζονται τα 50

52 authentication tokens στην κεφαλίδα µιας υπηρεσίας ιστού. Αν δηλαδή, η αυθεντικοποίηση ενός µηνύµατος γίνεται µε καθορισµένο τρόπο, τότε πιο πολλοί ενδιάµεσοι θα µπορούν να πραγµατοποιήσουν τη διαδικασία και πιο γρήγορα. Ή στην περίπτωση που πρέπει να αναγνωριστεί η ταυτότητα ενός αποστολέα, ανεξάρτητα από την τελική ενέργεια που θέλει να πραγµατοποιήσει, είναι πιο θεµιτό να µπορεί να γίνεται ανεξάρτητα η αυθεντικοποιήση. Έτσι µειώνεται το κόστος της επικοινωνίας, µπορεί να δοθεί περισσότερη σηµασία στα σηµασιολογικά δεδοµένα που υπάρχουν στο µήνυµα παρά στη διαδικασία της αυθεντικοποιήσης και φυσικά µειώνεται και το κόστος της εισόδου µιας υπηρεσίας ιστού στην αγορά Αρχιτεκτονικά Μοντέλα Για τη διαχείριση των µηνυµάτων που ενεργοποιούνται και ανταλλάσσονται στην περίπτωση των web services έχουν καθιερωθεί κάποια αρχιτεκτονικά µοντέλα, που εστιάζουν σε διαφορετικές πλευρές της διαλειτουργικότητας µεταξύ των πρακτόρων υπηρεσιών ιστού [Booth D., et al, 2004]. Message Oriented Model. Το συγκεκριµένο µοντέλο εστιάζει στο πως οι web service agents (requester και provider) επικοινωνούν χρησιµοποιώντας ένα µοντέλο επικοινωνίας βασισµένο στα ανταλλασσόµενα µηνύµατα. Ο τύπος των µηνυµάτων είναι XML και οι πράκτορες αναλύουν τα τµήµατα τους (φακέλους, κεφαλίδες και κυριώς µέρος), για να µπορέσουν να καταλάβουν ποια υπηρεσία αναζητείται και ποια λειτουργία θα πραγµατοποιηθεί. Service Oriented Model. Το µοντέλο αυτό χρησιµοποιεί τις βασικές λειτουργίες της επικοινωνίας µηνυµάτων και προσθέτει τις έννοιες της υπηρεσίας και της ενέργειας (action). Αυτό το µοντέλο επιτρέπει να µεταφράζονται τα µηνύµατα ως αιτήµατα για συγκεκριµένες ενέργειες και ως απαντήσεις στα αιτήµατα αυτά. Επιπλέον, επιτρέπει τη µετάφραση των διαφορετικών τύπων µηνυµάτων σε διαφορετικά αναµενόµενα αποτελέσµατα. Στην πραγµατικότητα επιτυγχάνεται µια αυξητική και πολυεπίπεδη προσέγγιση για την υπηρεσία ιστού, µε τη χρήση των καθιερωµένων well-known headers. 51

53 Resource Oriented Model. Το συγκεκριµένο µοντέλο, λοιπόν, επεκτείνει το µοντέλο προσανατολισµένο προς την υπηρεσία και εισάγει στην ανάλυση και επεξεργασία µιας υπηρεσίας ιστού, την έννοια της πηγής-προέλευσης (resource). Μια υπηρεσία ιστού αναφέρεται και ως µια πηγή στα πλαίσια της διαχείρισης των υπηρεσιών ιστού και στους όρους που σχετίζονται µε την πολιτική των υπηρεσιών. Η έννοια της πηγής, λοιπόν, παίζει πολύ σηµαντικό ρόλο τόσο στην εσωτερική αρχιτεκτονική των υπηρεσιών όσο και στην εξωτερική. Ο σηµαντικότερος ρόλος τους είναι ότι αποτελούν µια αλληγορία για την ερµηνεία της αλληλεπίδρασης µεταξύ πελάτη (requester) και εξυπηρετητή (provider) µιας υπηρεσίας ιστού Ο ρόλος των µεταδεδοµένων Γενικά το µοντέλο που χρησιµοποιείται και εφαρµόζεται στις τεχνολογίες των web services είναι κυρίως το µοντέλο προσανατολισµένο προς την υπηρεσία. Ένα πολύ βασικό συστατικό αυτής της προσέγγισης είναι η εκτεταµένη χρήση των µεταδεδοµένων (metadata) [Booth D., et al, 2004 ; Cardoso J. & Sheth A., 2006]. Τα µεταδιδόµενα είναι χρήσιµα και σηµαντικά για πολλούς λόγους. Ενισχύουν τη διαλειτουργικότητα, απαιτώντας λεπτοµερή σχολιασµό στην τεκµηρίωση των υπηρεσιών ιστού και επιτρέπουν σε διάφορα εργαλεία να εφαρµοστούν στις υπηρεσίες, αυξάνοντας το βαθµό αυτοµατοποίησης στην εφαρµογή τους. Τα µεταδεδοµένα που σχετίζονται µε τις υπηρεσίες ιστού µπορούν να θεωρήθουν ως µια µερική περιγραφή των σηµασιολογικών δεδοµένων των υπηρεσιών ιστού, επεξεργάσιµη από µηχανές. Πιο συγκεκριµένα, για παράδειγµα, στην περίπτωση χρήσης της τεχνολογίας WSDL, µια υπηρεσία ιστού µπορεί να περιγραφεί ως προς τους τύπους των αναµενόµενων µηνυµάτων, τους τύπους δεδοµένων των ιδιοτήτων των µηνυµάτων και µε τη χρήση µιας σηµασιολογικής γλώσσας ως προς τις αναµενόµενες ανταλλαγές µηνυµάτων µεταξύ των πρακτόρων υπηρεσιών ιστού. Παρόλα αυτά, οι υπηρεσίες ιστού εξελίσσονται και αναπτύσσονται συνεχώς και η διαλειτουργικότητα µεταξύ τους αυξάνεται. Σε αυτές τις περιπτώσεις τα µεταδεδοµένα και οι τεχνολογίες που χρησιµοποιούνται για τις περιγραφές τους πολλές φορές δεν είναι επαρκείς. Έτσι, είναι απαραίτητο να αναπτυχθούν και να εµπλουτιστούν τα µεταδεδοµένα για να ενισχυθεί η περιγραφή της αλληλεξάρτρησης διαφόρων υπηρεσιών ιστού. Θα 52

54 πρέπει να µπορούν να αναγνωρίζονται οι πραγµατικές οντότητες, όπως δηλαδή αντιπροσωπεύονται στον πραγµατικό κόσµο, που καλούνται από τα αντικείµενα των µηνυµάτων. Για παράδειγµα, στην περίπτωση χρήσης µια πιστωτικής κάρτας για την αγορά ενός προιόντος µέσω µιας υπηρεσίας ιστού, το µήνυµα που περιέχει τις πληροφορίες τις πιστωτικής, στην ουσία αναφέρεται σε µια υπαρκτή οντότητα, τον τραπεζικό λογαριασµό της κάρτας. Την κάλυψη των αναγκών αυτών αναλαµβάνει η γλώσσα OWL, η οποία µεταφράζει τα απλά µεταδεδοµένα σε οντολογίες. Πλέον, εντοπίζονται όχι µόνο οι τύποι και οι ανταλλαγές των µηνυµάτων, αλλά και τα αποτελέσµατα που θα ενεργοποιηθούν από αυτά. Σίγουρα οι σηµασιολογικές περιγραφές των υπηρεσιών ιστού θα πρέπει να συνεχίσουν να εξελίσσονται και να µπορούν να αναγνωρίζουν όχι µόνο αν τα µηνύµατα που ανταλλάσσονται είναι έγκυρα σηµασιολογικά και τυπικά, αλλά θα πρέπει να είναι σε θέση να αναγνωρίζουν και τη σχέση µεταξύ αυτού που ζητάει την εκτέλεση (requester entity) της υπηρεσίας ιστού και αυτού που την προσφέρει (provider entity). Αυτά τα θέµατα αντιµετοπίζονται ως θέµατα ασφάλειας τα οποία δεν µπορούν να καλυφθούν απόλυτα από ένα απλό µοντέλο αυθεντικοποιήσης. Είναι αναµενόµενο να αναπτυχθεί ένα µοντέλο που θα τυποποιεί έννοιες όπως αρχές, επαγγελµατικούς και εµπορικούς ρόλους, κανονισµούς και γενικά να υπάρχουν κάποιου είδους κανονισµοί. Με ένα τέτοιο µοντέλο θα είναι πολύ πιο εύκολο να γίνουν αντιληπτές οντότητες όπως τα δικαιώµατα χρήσης και το ποιος είναι υπεύθυνος να δίνει εξουσιοδότηση στο να γίνει µια ενέργεια και πολλές άλλες που αφορούν στα θέµατα ασφάλειας. 4.2 Περιγραφές Υπηρεσιών Ιστού ολες οι υπηρεσίες έχουν έναν αριθµό από λειτουργικές και µη-λειτουργικές ιδιότητες. Οι µη λειτουργικές ιδιότητες συνήθως αφορούν σε δικαιώµατα χρήσης ή πληροφορίες για τους δηµιουργούς. Οι πιο χρήσιµες πληροφορίες έχουν να κάνουν µε ανταλλαγή και κίνηση δεδοµένων. Τα κύρια χαρακτηριστικά µιας σηµασιολογικής υπηρεσίας ιστούείναι οι είσοδοι και έξοδοι που δέχεται, προκειµένου να δώσει το επιθυµητό αποτέλεσµα. Μια έξοδος από µια υπηρεσία ιστού µπορεί να είναι είσοδος σε κάποια άλλη. Για τη διαχείριση αυτών των χαρακτηριστικών έχουν αναπτυχθεί κάποιες τεχνολογίες όπως είναι η OWL-S, η WSDL-S και η WSMO. Η πιο διαδεδοµένη και ευρέως χρησιµοποιούµενη για εύρεση και σύνθεση υπηρεσιών µε βάση των 53

55 σηµασιολογικών χαρακτηριστικών είναι η OWL-S. Όλα τα παραπάνω εντάσσονται σε µια σηµασιολογική περιγραφή [Cardoso J. & Sheth A, 2006 ; Liliana C., et al, 2004] OWL-S Όπως παρουσιάστηκε σε προηγούµενο κεφάλαιο, η OWL είναι µια γλώσσα για την αναπαράσταση οντολογιών. Θεωρήθηκε, όµως, αναγκαία η δηµιουργία µιας ανώτερης και πιο συγκεκριµένης γλώσσας για την περιγραφή των σηµασιολογικών υπηρεσιών ιστού. H OWL-S προέρχεται από την DAML-S, καθορίζει κάποιους συγκεκριµένους κανόνες για τη σηµασιολογική περιγραφή των χαρακτηριστικών που πρόκειται να χρησιµοποιηθούν αργότερα από τα συστήµατα συλλογιστικής. Σύµφωνα µε τους κανόνες της OWL-S [Cardoso J. & Sheth A, 2006 ; Liliana C., et al, 2004; Schreiter T., 2007], ένα service περιγράφεται από κάποια τµήµατα, καθένα εκ των οποίων αποθηκεύεται σε ένα ξεχωριστό αρχείο. Ο καθένας από τους παρακάτω τοµείς αντικατοπτρίζει µια διαφορετική πλευρά της υπηρεσίας και καθορίζει επιπλέον λεπτοµέρειες για αυτήν. Τα τµήµατα της περιγραφής των υπηρεσιών περιγράφονται παρακάτω αναλυτικότερα και παρουσιάζονται και στο σχήµα 4.1. Το Service Profile, περιγράφει τι ακριβώς κάνει η υπηρεσία. Το Service Model, περιγράφει πως χρησιµοποιείται η υπηρεσία. Το Service Grounding, περιγράφει πως υπάρχει πρόσβαση στην υπηρεσία. Σχήµα 4.1 Ένα παράδειγµα σηµασιολογικής περιγραφής παρουσιάζεται παρακάτω: 54

56 1 <service : Service rdf : ID= WCTicketPurchaseService > 2 <service : presents rdf : resource= Profile. owl# Profile Ticket Purchase Service /> 3 <service : described By rdf : resource= Process.owl# Basic Ticket Purchase /> 4 <service : supports rdf : resource= Grounding.owl# Basic Ticket Purchase Service Grounding /> 5 </ service : Service> Service Profile. Το service profile είναι σχεδιασµένο για να χρησιµοποιηθεί ως διαφήµιση για κάποια υπηρεσία ιστού σε κάποια βάση όπου αυτή θα βρίσκεται καταχωρηµένη, γνωστή ως service repository. Παρέχει διάφορες γενικές πληροφορίες σχετικές µε την υπηρεσία. ηλαδή, οι πληροφορίες αυτές χρησιµεύουν κυρίως στο να επιλέγει η υπηρεσία από κάποιον χρήστη. Τέτοιες πληροφορίες συνήθως είναι ο πάροχος της υπηρεσίας, σε ποιο τοµέα ενδιαφέροντος εντάσσεται, πληροφορίες σχετικές µε το QoS και τέλος µια περιγραφή του τι ακριβώς κάνει αυτό η υπηρεσία. Αυτή η λειτουργική περιγραφή καθορίζει τις εισόδους, τις εξόδους, τις προϋποθέσεις και τα αποτελέσµατα του service. Τα παραπάνω δεδοµένα είναι γνωστά ως IOPEs. Για παράδειγµα, αν σκεφτούµε µια υπηρεσία ιστού η οποία δίνει τη δυνατότητα στο χρήστη να αγοράσει κάποιο προϊόν, είναι λογικό ότι θα απαιτείται κάποιος τρόπος πληρωµής, συνήθως πιστωτική κάρτα. Στο service profile θα πρέπει να είναι καθορισµένες οι IOPEs για τη χρήση της πιστωτικής κάρτας. Η πιστωτική θα πρέπει να είναι έγκυρη για να ικανοποιείται η προϋπόθεση της υπηρεσίας. Στη συνέχεια η υπηρεσία δέχεται ως είσοδο τον αριθµό της πιστωτικής κάρτας και την ηµεροµηνία λήξης της και ως έξοδο θα πρέπει να εκδώσει µια απόδειξη της αγοράς. Αν η διαδικασία έχει ολοκληρωθεί επιτυχώς το αποτέλεσµα θα είναι η χρέωση της πιστωτικής. Service Model. Αφού γίνει η επιλογή της υπηρεσίας βάσει του service profile, ο χρήστης πρέπει να συµβουλευτεί το service model σχετικά µε την αλληλεπίδραση µε την υπηρεσία. Ένα πιθανό σενάριο αλληλεπίδρασης ορίζεται ως διαδικασία (process). Η παρεχόµενη περιγραφή της διαδικασίας χρησιµοποιείται από τον χρήστη για να συντονίσει την αλληλεπίδραση µε την υπηρεσία. Υπάρχουν τρείς διαφορετικοί τύποι διαδικασιών: 55

57 Ατοµική ιαδικασία (Atomic Process) Οι ατοµικές διαδικασίες µπορούν να κληθούν απευθείας και να πραγµατοποιηθούν σε ένα µόλις βήµα. Συνεπώς, η αλληλεπίδραση πραγµατοποιείται από κάποιο µήνυµα εισόδου, το οποίο δέχεται κάποιες παραµέτρους, και ένα µήνυµα εξόδου, το οποίο επιστρέφει ένα ή περισσότερα αποτελέσµατα. Σύνθετη ιαδικασία (Composite Process) Σε µια σύνθετη διαδικασία η αλληλεπίδραση µεταξύ χρήστη και υπηρεσίας είναι πιο περίπλοκη. Αποτελείται από ένα σύνολο λογικών βηµάτων, τα οποία επίσης µπορούν να αναπαραστήσουν οποιαδήποτε διαδικασία. Για να µπορέσει να κυλήσει η αρχική διαδικασία τρέχει κάποιο µοντέλο ελέγχου το οποίο αποτελείται από διάφορες συνθήκες (Sequence, Split, Split-Join, Any-Order, If-Then-Else), για να µπορέσουν να συνδυαστούν οι υπό-διαδικασίες. Η σύνθετη διαδικασία δεν µπορεί να κληθεί απευθείας, δηλαδή πρέπει να πραγµατοποιηθούν πρώτα όλες οι υπό-διαδικασίες µε τη σειρά που ορίζεται από το µοντέλο ελέγχου. Από τη στιγµή, λοιπόν, που µια σύνθετη διαδικασία βασίζεται σε ένα σύνολο από ατοµικές διαδικασίες, όλες αυτές θα πρέπει να είναι µαζεµένες κάπου. Τη δουλειά αυτή αναλαµβάνει το service grounding. Απλή ιαδικασία (Simple Process) Μια απλή διαδικασία, συνήθως, επιλέγεται στην περίπτωση που θέλει ο χρήστης να έχει µια διαφορετική πιο αφηρηµένη όψη µιας ατοµικής διαδικασίας ή στην περίπτωση που θέλει µια απλούστερη αναπαράσταση µιας σύνθετης διαδικασίας. Θα µπορούσαµε, δηλαδή, να πούµε ότι η απλή διαδικασία είναι ένας αφαιρετικός µηχανισµός. Μπορεί να χρησιµοποιηθεί για να αποκρυφτούν κάποια στοιχεία και λεπτοµέρειες µιας διαδικασίας, τα οποία είτε µπορεί να είναι άχρηστα για κάποιον συγκεκριµένο σκοπό, είτε να είναι εµπιστευτικά. Γενικά, όπως αναφέραµε και στην περίπτωση του service profile, έτσι και η περιγραφή της οποιασδήποτε διαδικασίας περιέχει πληροφορίες σχετικά µε IOPEs, συνήθως όµως, πιο συγκεκριµένες και καθορισµένες. Σε οποιαδήποτε περίπτωση η συνοχή µεταξύ των δύο περιγραφών πρέπει να διατηρηθεί, είτε αυτό γίνει χειροκίνητα είτε από κάποιο εργαλείο υποστήριξης. 56

58 Service Grounding. Grounding είναι η αντιστοίχηση της περιγραφή µιας σηµασιολογικής υπηρεσίας µε κάποια µοναδική υπηρεσία. Βέβαια, είναι δυνατό περισσότερες από µια περιγραφές να αναφέρονται σε κάποια υπηρεσία. Σε µια OWL-S περιγραφή το service grounding καθορίζει πώς µια αφηρηµένη σηµασιολογική περιγραφή µιας υπηρεσίας µπορεί να ερµηνευτεί, έτσι ώστε να πραγµατοποιηθεί και τεχνικά η πραγµατική υπηρεσία. Αυτό επιτυγχάνεται καθορίζοντας τον τρόπο µε τον οποίο πρέπει να µετατραπούν οι είσοδοι και οι έξοδοι σε µηνύµατα και πώς να γίνει η ανταλλαγή των µηνυµάτων. Γενικά χρησιµοποιείται η OWL-S περιγραφή γιατί όλα τα χαρακτηριστικά που δηλώνονται σε αυτή µπορούν πολύ εύκολα να µετατραπούν σε WSDL περιγραφή. Είναι σηµαντικό, βέβαια να διατηρείται και να ελέγχεται η πλήρης συµβατότητα των δύο περιγραφών WSMO Ένα άλλο µοντέλο που χρησιµοποιείται για τη σηµασιολογική περιγραφή των σηµασιολογικών υπηρεσιών ιστού και επίσης έχει εισαχθεί από το W3C είναι το Web Service Modeling Ontology (WSMO). Για τη σύνταξη των αντικειµένων της περιγραφής αυτής χρησιµοποιείται η οικογένεια γλωσσών WSML, που βασίζονται στις έννοιες της Περιγραφής Λογικής (Description Logics) και του Λογικού προγραµµατισµού (Logic Programming). [Cardoso J & Sheth A., 2006] Στο µοντέλο WSMO οι οντολογίες που αντιπροσωπεύουν τα βασικά χαρακτηριστικά των υπηρεσιών ιστού, παρουσιάζονται από αντίστοιχα αντικείµενα της συγκεκριµένης περιγραφής. Goals, αντιπροσωπεύουν τις επιθυµίες του χρήστη, οι οποίες µπορούν να εξυπηρετηθούν από την εκτέλεση µιας υπηρεσίας ιστού. Mediators, εσωτερικά αντικείµενα, τα οποία µεσολαβούν για να επιλύονται τυχόν δυσλειτουργίες µεταξύ άλλων WSMO αντικειµένων. Γενικά, ο συµβιβασµός αυτών των δυσλειτουργιών επιτυγχάνεται σε τρία επίπεδα. Σε επίπεδο δεδοµένων (Data Level), στο οποίο συµβιβάζονται ετερογενείς πηγές δεδοµένων. Σε επίπεδο πρωτοκόλλου (Protocol Level), όπου επιτυγχάνεται η συνεργασία διαφορετικών µοντέλων επικοινωνιών. Και τέλος, σε επίπεδο εφαρµογών (Process Level) για να επιτευχθεί πλήρης διαλειτουργικότητα µεταξύ διαφορετικών υπηρεσιών. 57

59 4.2.3 WSDL-S Η WSDL-S είναι η πιο πρόσφατη µέθοδος περιγραφής των υπηρεσιών ιστού, που παρουσιάστηκε από το W3C [Akkiraju R, et al, 2005]. Παρέχει ένα µηχανισµό για τη σηµασιολογική σηµείωση των δυνατοτήτων και των απαιτήσεων των υπηρεσιών ιστού µέσω ενός εξωτερικού µοντέλου. Το καινοτόµο χαρακτηριστικό αυτής της περιγραφής είναι ότι χρησιµοποιεί τα ήδη υπάρχοντα standars των υπηρεσιών ιστού. Επιπλέον, το γεγονός ότι το µοντέλο εισάγει την εξωτερική περιγραφή επιτρέπει στους προγραµµατιστές να συντάσσουν domain models σε οποιαδήποτε γλώσσα και όχι απαραίτητα σε OWL όπως επέβαλε το πρότυπο OWL-S και επίσης, είναι και επαναχρησιµοποιήσιµα. Η σηµασιολογικές σηµειώσεις επιτυγχάνονται µέσω των WSDL αντικειµένων και χαρακτηριστικών. Τα πιο βασικά από αυτά παρουσιάζονται παρακάτω[cardoso J & Sheth A., 2006]: modelreference. Όταν πρόκειται για την περιγραφή αντικειµένου τύπου input/output message, αφορά στο καθορισµό των WSDL των τύπων των µηνυµάτων εισόδου/ εξόδου µέσα σε ένα συγκεκριµένο σηµασιολογικό µοντέλο. Όταν πρόκειται για την περιγραφή αντικειµένου λειτουργικότητας, αντικατοπτρίζει τα σηµασιολογικά χαρακτηριστικά και δυνατότητες µιας λειτουργίας της υπηρεσίας ιστού. shemamapping. Σχολιασµός και καθορισµός των δοµικών και συντακτικών αντικειµένων µεταξύ των WSDL µηνυµάτων και των εννοιών του σηµασιολογικού µοντέλου. pre-conditions. Το σύνολο των σηµασιολογικών κανόνων και χαρακτηριστικών που πρέπει να ισχύουν και να είναι αληθή για να αρχικοποιηθεί και να εκτελεστεί µια υπηρεσία ιστού. effects. Το σύνολο των σηµασιολογικών χαρακτηριστικών και αποτελεσµάτων που πρέπει να ισχύουν και να είναι αληθή µετά την εκτέλεση µιας υπηρεσίας ιστού. category. Το σηµασιολογικό χαρακτηριστικό που πρέπει να χρησιµοποιείται και να ορίζεται όταν πρόκειται να δηµοσιευθεί µια υπηρεσία ιστού σε κάποια registry, όπως το UDDI. 58

60 4.3 Σηµασιολογική Ταύτηση Αφού οριστεί η σηµασιολογική περιγραφή µιας υπηρεσίας ιστού και γίνει η δηµοσίευση της, δηλαδή η καταχώρηση σε κάποιο semantic service repository, είναι δυνατόν να ανακαλυφθεί από κάποιον χρήστη ο οποίος ψάχνει κάτι σχετικό µε τις IOPEs µεταβλητές που περιέχει και η υπηρεσία. Πιθανά όµως κάποιος χρήστης να χρειάζεται παραπάνω από µια υπηρεσίες για να πραγµατοποιήσει αυτό που θέλει. Αρχικά θα πρέπει να γίνει η αναζήτηση και η εύρεση των δυνατοτήτων των υπηρεσιών και στη συνέχεια να γίνει η σύνθεση τους, ώστε να επιτευχθεί το επιθυµητό αποτέλεσµα. Ωστόσο µια σηµασιολογική µηχανή αναζήτησης πρέπει να είναι σε θέση να ελέγχει τόσο τις εισόδους και τις εξόδους µιας υπηρεσίας, όσο και την ικανοποίηση των προϋποθέσεων, έτσι ώστε να µπορέσει να αποφασίσει ποιες υπηρεσίες είναι κατάλληλες να συνδυαστούν µεταξύ τους. Αρχικά, πρέπει όλες οι είσοδοι και οι έξοδοι της αναζήτησης να συµπίπτουν µε αυτές της σηµασιολογικής περιγραφής της υπηρεσίας. Γενικά, υπάρχουν διάφορες πιθανότητες για το τι µπορεί να συµβεί σχετικά µε το ταίριασµα των δυνατοτήτων. Οι πιο απλές είναι είτε να µην υπάρχει συµβατότητα καθόλου (fail), είτε να ταιριάζουν απόλυτα οι απαιτήσεις του χρήστη µε του service (exact). Βέβαια, το πιο συχνό φαινόµενο είναι να βρίσκει ο χρήστης κάποια υπηρεσία που προσφέρει ένα υποσύνολο (subsumes) αυτών που ζητάει, και τον ικανοποιεί µερικώς. Αυτό, όµως, δεν σηµαίνει ότι θα πρέπει να απορριφθεί η συγκεκριµένη υπηρεσία, γιατί µπορεί να επιτευχθεί το επιθυµητό αποτέλεσµα από περισσότερες. Και τέλος, υπάρχει η περίπτωση το αποτέλεσµα της αναζήτησης να δώσει µια υπηρεσία της οποίας οι απαιτήσεις είναι υπερσύνολο (plug in) αυτών του χρήστη. Για παράδειγµα, µπορεί ο χρήστης να θέλει να κάνει µια αγορά βιβλίου και η υπηρεσία να έχει τη δυνατότητα πολλαπλών αγορών. Συνήθως, τέτοια αποτελέσµατα µπορούν να χρησιµοποιηθούν επιτυχώς, καθώς είναι προσαρµόσιµα στις απαιτήσεις του χρήστη. Είναι σηµαντικό να σηµειωθεί ότι το ακριβές ταίριασµα των εισόδων-εξόδων δεν αρκεί από µόνο του. Πολύ σηµαντικό ρόλο παίζει η ικανοποίηση των προϋποθέσεων και των αποτελεσµάτων [Booth D., et al, 2004 ; Paolucci M., et al]. Για παράδειγµα, όπως χρησιµοποιήθηκε και παραπάνω, κάποιος χρήστης αγόρασε εισιτήρια µέσω µιας web υπηρεσίας. Στην περίπτωση που θέλει να αλλάξει κάποια από τα χαρακτηριστικά των εισιτηρίων του, ο υπάλληλος στο τµήµα 59

61 εξυπηρέτησης θα πρέπει να είναι σε θέση να εντοπίσει άµεσα την παραγγελία. Αυτό µπορεί να γίνει µε τη χρήση µιας υπηρεσίας, π.χ. GetTicketOrder, που θα εµφανίζει την παραγγελία βάσει της διεύθυνσης του πελάτη, η οποία θα συµπεραίνεται από τον τηλεφωνικό αριθµό. Η λειτουργία αυτή όµως δεν είναι σωστή, καθώς ο συγκεκριµένος πελάτης µπορεί να τηλεφωνεί από άλλη τοποθεσία από αυτή που είναι δηλωµένη η παραγγελία. Στην συγκεκριµένη περίπτωση παρατηρούµε ότι ναι µεν ο τύπος των δεδοµένων, δηλαδή η διεύθυνση, ταιριάζει µε την είσοδο της υπηρεσίας τυπικά, όχι όµως και εννοιολογικά, αφού θα δώσει λανθασµένο αποτέλεσµα. Το παράδειγµά µας απεικονίζεται από την παρακάτω εικόνα 4.1 [Schreiter T., 2007]. Μια άλλη περίπτωση που µπορεί να οδηγήσει σε λάθος είναι η εξής. Αν σε ένα web service repository υπάρχουν δύο διαφορετικές υπηρεσίες που δέχονται σαν είσοδο τηλεφωνικό αριθµό και δίνουν αποτέλεσµα µια διεύθυνση, τότε η µηχανή ταύτησης (matching engine) δεν θα είναι σε θέση να αναγνωρίσει ποια υπηρεσία να χρησιµοποιήσει. Εικόνα 4.1. Έλεγχος semantic matching εισόδων-εξόδων Γενικότερα µια υπηρεσία δε χαρακτηρίζεται αποκλειστικά και µόνο από τις εισόδους-εξόδους της αλλά και από τις προϋποθέσεις και τα αποτελέσµατα που δίνει. Είναι λογικό, λοιπόν, και η επιλογή της να µην γίνεται µόνο µε τα µεν κριτήρια. Η 60

62 σηµασιολογική περιγραφή των προϋποθέσεων και των αποτελεσµάτων είναι αυτή που βοηθάει στο να παρθεί µια σωστή απόφαση Σηµασιολογικές Σχέσεις Αφού έχει γίνει η σηµασιολογική περιγραφή, οι διαθέσιµες υπηρεσίες στο repository επεξεργάζονται και δηµιουργείται ένας πίνακας περιεχοµένων που περιλαµβάνει στοιχεία σχετικά µε την υπηρεσία ιστού, τα οποία διευκολύνουν την αναζήτηση. Αυτό επιτυγχάνεται µε τη χρήση µιας υπηρεσίας γνωστής ως σηµασιολογική ταύτιστη (semantic matcher), που χρησιµοποιεί λέξεις κλειδιά τόσο ανεξάρτητου πεδίου (domainindependent) όσο και εξαρτηµένες από το πεδίο (domain-specific), έτσι ώστε να βρεθεί οµοιότητα µεταξύ των υπηρεσιών και των προδιαγραφών της αναζήτησης. Ορισµένες από τις τεχνικές που χρησιµοποιούνται από την µηχανή σηµασιολογικής ταύτισης παρατίθενται στη συνέχεια [Booth D., et al, 2004]. Σύνθετες σηµασιολογικές ιδιότητες ανατίθενται σε ενδείξεις (tokens) και στη συνέχεια µαρκάρονται και γίνεται φιλτράρισµα αυτών. Οι χρήσιµα σηµασιολογικές λέξεις που κρατιούνται υπόκεινται είτε σε σύντµηση είτε σε επέκταση και έπειτα ένα σηµασιολογικό λεξικό (thesaurus) αναλαµβάνει να βρει τις µεταξύ των ενδείξεων σχέσεις, βάσει συνωνύµων. Για να εξαχθούν τα συµπεράσµατα των σχέσεων αυτών χρησιµοποιούνται συνήθως, σχέσεις όπως subclassof(a,b), subclassof(b,a), typeof (A,B), και equivalenceclass(a,b) που αναπαρίστανται από οντολογίες στην OWL. Για το µαρκάρισµα των σχέσεων αυτών χρησιµοποιούνται κάποιες τιµές. 0,5 για τις σχέσεις subclassof και typeof, 1 για την equivalentclass και 0 για την έλλειψη σχέσης. Οι τιµές δύο ή περισσοτέρων πηγών συνδυάζονται, ώστε να εξαχθεί ένα γενικό συµπέρασµα. Για το συνδυασµό δεδοµένων ανεξαρτήτων πεδίου και εξαρτηµένων από το πεδίο χρησιµοποιούνται σχήµατα όπως winner-takes-all (είναι η default τιµή) και weighted average. Με περισσότερες λεπτοµέρειες παρουσιάζονται ορισµένες σχέσεις παρακάτω. Η σχέση is. Η σχέση is καθορίζει ότι κάθε αντικείµενο Χ ταυτίζεται µε το αντικείµενο Υ. ηλαδή είτε αναφερόµαστε στο Χ είτε στο Υ είναι ένα και το αυτό. Η σχέση αυτή µπορεί να χρησιµοποιηθεί και ακολουθιακά, δηλαδή εάν υπάρχει κάποιο αντικείµενο Χ που είναι ταυτόσηµο µε το Ζ και το Ζ είναι ταυτόσηµο µε το Υ, 61

63 τότε και το Χ ταυτίζεται µε το Υ. Στην περίπτωση των υπηρεσιών ιστού συγκεκριµένα εννοούµε ότι όλα τα χαρακτηριστικά µιας εισόδου ή µιας εξόδου ή µιας προϋπόθεσης είναι ίδια µε τα χαρακτηριστικά µιας αντίστοιχης. Η σχέση describes. Η σχέση describes σηµαίνει ότι κάποιο αντικείµενο Χ είναι έτσι ορισµένο που µπορεί να περιγράψει πλήρως κάποιο γενικό κανόνα αντικειµένων, είναι δηλαδή µια απεικόνιση ενός γενικότερου συνόλου. Από τη σχέση αυτή προκύπτει και η σχέση X is instance of Y. Η σχέση has. Η σχέση has δηλώνει ότι κάποιο αντικείµενο Χ περιλαµβάνει ως χαρακτηριστικό του κάποιο άλλο αντικείµενο Υ. Στην περίπτωση των υπηρεσιών ιστού συνήθως αυτό υποδηλώνει ότι για να υφίσταται ένα αντικείµενο εισόδου ή εξόδου πρέπει να υπάρχει και να είναι έγκυρο κάποιο εσωτερικό χαρακτηριστικό. Φυσικά, ένα χαρακτηριστικό µιας υπηρεσίας ιστού µπορεί να αποτελείται από πολλά τέτοια αντικείµενα. Η σχέση owns. Η σχέση owns δηλώνει την ικανότητα ενός αντικείµενου ή χαρακτηριστικού να ελέγχει κάποιο άλλο. Αυτό σηµαίνει ότι η λειτουργία και η ενεργοποίησηαρχικοποιήση του χαρακτηριστικού Υ µιας υπηρεσίας ιστού προϋποθέτει την ενεργοποίηση του αντικειµένου Χ, από το οποίο και εξαρτάται άµεσα. Το πώς θα γίνει αυτή η διαδικασία καθορίζεται από ένα σύνολο κανόνων και δικαιωµάτων τα οποία αποδίδονται στο αντικείµενο Χ που ελέγχει το Υ. Η σχέση realized. Η σχέση realized δηλώνει ότι κάποιο αντικείµενο Υ είναι η εφαρµογή ή η επέκταση ενός αντικειµένου Χ. Αποτέλεσµα της εφαρµογής όλων αυτών των κανόνων µεταξύ των αντικειµένων που αποτελούν τις εισόδους, τις εξόδους και τις προϋποθέσεις των υπηρεσιών ιστού, 62

64 είναι η δηµιουργία ενός αποτελεσµατικού καταλόγου των σηµασιολογικών σχέσεων και των δεδοµένων, γνωστός στην βιβλιογραφία ως χάρτης σηµασιολογικών οµοιοτήτων (semantic similarity map) Σηµασιολογικό Φιλτράρισµα Από τη στιγµή που οι σηµασιολογικές και σχετικές έννοιες έχουν καταγραφεί, πραγµατοποιείται ένα φιλτράρισµα µε χρήση ευριστικών µεθόδων για να αποκτήσει ο χρήστης µια λίστα µε υποψήφιες υπηρεσίες που θα µπορούσαν να ικανοποιήσουν την αναζήτηση του. Όλα τα παραπάνω απεικονίζονται παρακάτω στην εικόνα 2 [Akkiraju R., 2006]. Εικόνα 4.2. Semantic Matching Architecture 4.4 Ανακάλυψη Υπηρεσιών Ιστού Στην περίπτωση που κάποιος χρήστης θέλει να ξεκινήσει µια αλληλεπίδραση µε κάποιον παροχέα υπηρεσιών (provider) και δεν γνωρίζει ακριβώς τι είδους πράκτορα (agent) πρέπει να δεσµεύσει, θα πρέπει να εκκινήσει µια διαδικασία ανακάλυψης του κατάλληλου υποψήφιου. Η ανακάλυψη είναι η διαδικασία εκείνη κατά την οποία εντοπίζεται µια περιγραφή µιας υπηρεσίας ιστού, επεξεργάσιµη από µηχανή, η οποία 63

65 πιθανά να µην ήταν γνωστή από πριν και ταιρίαζει µε συγκεκριµένα λειτουργικά κριτίρια που θέτει ο χρήστης [Haas H. & Brown A., 2004]. Ο στόχος είναι να βρεθεί µια κατάλληλη υπηρεσία ιστού. Για να γίνει αυτό υπάρχει µια ενδιάµεση υπηρεσία, η υπηρεσία ανακάλυψης (discovery service), η οποία διευκολύνει στο να επιτευχθεί ο στόχος. Είναι ένας λογικός ρόλος και µπορεί να πραγµατοποιηθεί είτε από το χρήστη (requester) είτε από κάποιον πράκτορα, ο οποίος µπορεί να είναι τόσο αυτός που παρέχει την υπηρεσία όσο και κάποιος άλλoς. Η διαδικασία κάτα την οποία γίνεται η ανακάλυψη µιας υπηρεσίας καλείται και δέσµευση της υπηρεσίας (service engagement). Για να πραγµατοποιήθει ακολουθούνται κάποια συγκεκριµένα βήµατα, που παρατίθενται παρακάτω, καθώς και στην εικόνα 3 παρουσιάζονται σχηµατικά [Booth D., et al, 2004]: 1. Οι οντότητες που αντιπροσωπεύουν τον αιτούντα (requester) και τον παροχέα (provider) γίνονται γνωστές µεταξύ τους. 2. Η υπηρεσία ανακάλυψης αποκτά από τον παροχέα τη σηµασιολογική περιγραφή της υπηρεσίας ιστού καθώς και µια σχετιζόµενη περιγραφή µε τη λειτουργικότητα της υπηρεσίας. Η λειτουργική περιγραφή είναι µια επεξεργάσιµη από µηχανή περιγραφή, η οποία περιλαµβάνει κάποιες σηµασιολογικές πληροφορίες για το τι ακριβώς κάνει µια υπηρεσία ιστού και ποια είναι η λειτουργία του. Αντιπροσωπεύεται συνήθως είτε από µεταδεδοµένα είτε και από ένα απλό URI, µπορεί όµως να είναι και µια πιο σύνθετη περιγραφή όπως ένα tmodel στην περίπτωση του UDDI ή ένα σύνολο κατηγορηµάτων εκφρασµένων σε RDF, DAML-S ή και OWL-S. Η ακριβής αρχιτεκτονική για το πως αποκτά η υπηρεσία ανακάλυψης τις περιγραφές δεν περιγράφεται πλήρως. Μπορεί να είναι είτε µέσω µιας µηχανής αναζήτησης που ανατρέχει στον ιστό και συλλέγει περιγραφές υπηρεσιών, είτε αν η υπηρεσία ανακάλυψης εντάσσεται σε κάποια registry (UDDI) συλλέγει τις δηµοσιευµένες περιγραφές από τους παρόχους. 3. Ο αιτούντας εκφράζει κάποια κριτήρια προς την υπηρεσία ανκάλυψης, ώστε να τα χρησιµοποιήσει για να επιλέχθει η κατάλληλη υπηρεσία ιστού που να τα ικανοποιεί. Το αν κάποια υπηρεσία εξυπηρετεί κάποια συγκεκριµένα κριτήρια µπορεί να αποδειχθεί µέσω της λειτουργικής περιγραφής αλλά και µέσω διαφόρων άλλων χαρακτηριστικών της υπηρεσίας που παρέχονται από τη 64

66 σηµασιολογική περιγραφή. Για παράδειγµα µπορεί να εντοπιστεί µια υπηρεσία της οποίας τα λειτουργικά (functional) χαρακτηριστικά να ικανοποιούν τις απαιτήσεις του αιτούντα, όµως τα µη λειτουργικά (non-functional) χαρακτηριστικά να κάνουν την υπηρεσία ακατάλληλη για χρήση (π.χ. η χαµηλή βαθµολογία/αξιολόγηση ενός online πωλητή). 4. Η υπηρεσία ανακάλυψης επιστρέφει στον αιτούντα τα αποτελέσµατα της αναζήτησης, µπορεί να είναι ένα ή και παραπάνω, και ο χρήστης επιλέγει ποια υπηρεσία ιστού θέλει να χρησιµοποιήσει. 5. Στη συνέχει ο αιτούντας και ο πάροχος πρέπει να συµφωνήσουν στις σηµασιολογίες της συγκεκριµένης αλληλεπίδρασης. Συνήθως τα σηµασιολογικά δεδοµένα (semantics) καθορίζονται από τον πάροχο προς τον αιτούντα µε µια µορφή take it or leave it, ωστόσο µπορεί και να αποτελέσουν µια κοινή συµφωνία βάσει κάποιων εµπορικών κανόνων ή και να καθοριστούν εξ ολοκλήρου από τον αιτούντα. 6. Η σηµασιολογική περιγραφή της υπηρεσίας και τα σηµασιολογικά δεδοµένα τοποθετούνται στους πράκτορες του αιτούντα και του παρόχου και ξεκινάει η ανταλλαγή των SOAP µηνυµάτων µεταξύ τους για την υλοποιήση της υπηρεσίας ιστού. Η διαδικασία ανακάλυψης, που περιγράφηκε παραπάνω, δεν καθορίζει το ποιος ή το τι πραγµατοποιεί τη διαδικασία της αναζήτησης. Στην περίπτωση της χειροκίνητης (manual) αναζήτησης ο ίδιος ο αιτούντας (χρήστης) χρησιµοποιεί την υπηρεσία ανακάλυψης για να εντοπίσει και να επιλέξει τη σηµασιολογική περιγραφή που ταιριάζει µε τα λειτουργικά και τα µη-λειτουργικά κριτήρια. Στην περίπτωση της αυτοµατοποιήµενης αναζήτησης ο πράκτορας του αιτούντα αναλαµβάνει αυτήν τη διαδικασία. Παρόλο που τα βασικά βήµατα και στις δύο περιπτώσεις για την πραγµατοποιήση της διαδικασίας είναι ίδια, υπάρχουν διαφορετικές ανάγκες στην κάθε περίπτωση. 65

67 Εικόνα 4.3. ιαδικασία ανακάλυψης Απαιτήσεις περιβάλλοντος: Στην περίπτωση της χειροκίνητης αναζήτησης πρέπει να υπάρχει κάποιο γραφικό, για παράδειγµα, περιβάλλον µέσω του οποίου ο χρήστης να µπορεί να πραγµατοποιήσει τη διαδικασία της ανακάλυψης. Αντίθετα, οι απαιτήσεις για την ύπαρξη ενός τέτοιου περιβάλλοντος στην περίπτωση της αυτοµατοποιήµενες αναζήτησης είναι ελάχιστες. Ανάγκη καθιέρωσης standard: Στην περίπτωση της αυτοµατοποιήµενης αναζήτησης είναι ιδιαίτερα µεγάλη η ανάγκη για την καθιέρωση standards, ώστε να µπορέσει να γίνει η επικοινωνία µε επιτυχία µεταξύ των πρακτόρων, κάτι που δεν ισχύει στην αντίθετη περίπτωση. Εµπιστοσύνη: Ο άνθρωπος είναι σε θέση να εµπιστευτεί και να αποφασίσει ποια υπηρεσία ιστού θα επιλέξει βάσει των σηµασιολογικών περιγραφών χρησιµοποιώντας την κρίση του. Στην αντίθετη περίπτωση ο χρήστης θα πρέπει να βασιστεί στις αποφάσεις των πρακτόρων που βασίζονται αποκλειστικά στις σηµασιολογικές περιγραφές για να εξάγουν συµπεράσµατα. 66

68 Ταχύτητα: Είναι προφανές, βέβαια, ότι η επεξεργαστική ισχύς που παρέχεται στην αυτοµατοποιήµενη διαδικασία έιναι πολύ µεγάλη, µε αποτέλεσµα να µπορούν να παρουσιαστουν αποτελέσµατα πολύ πιο γρήγορα και για πολύ περισσότερα αιτήµατα, σε αντίθεση µε τη χειροκίνητη διαδικασία ανακάλυψης υπηρεσιών ιστού. Επίσης, στην περίπτωση που για οποιοδήποτε λόγο τερµατιστεί η επικοινωνία µε έναν πράκτορα είναι πολύ πιο γρήγορο να µεταβίβαστει το αίτηµα σε κάποιον αλλό διαθέσιµο και να συνεχιστεί η διαδικασία κανονικά. Στην παρούσα φάση υπάρχουν τρεις επικρατούσες θέσεις (registry approach, index approach, peer-to-peer approach) για το µε ποιο τρόπο θα πρέπει να πραγµατοποιηθεί η διαδικασία. Αυτές οι προσεγγίσεις θα παρουσιαστούν παρακάτω Προσέγγιση Registry Registry είναι µια εξουσιοδοτηµένη αρχή, κεντρικά ελεγχόµενη η οποία έχει καταχωρηµένες πληροφορίες και δεδοµένα. Η δηµοσιεύση µιας σηµασιολογικής περιγραφής µιας υπηρεσίας ιστού απαιτεί µια ενέργεια από τον πάροχο που δηµιουργεί την υπηρεσία. Πρέπει να τοποθετήσει και να ορίσει ρητά και µε λεπτοµέρεια τις πληροφορίες στη registry πριν αυτές οι πληροφορίες και τα δεδοµένα να µπορούν να προσφερθούν σε άλλους. Από την πλευρά της registry, ο ιδιοκτήτης ή αυτός που τη διαχειρίζεται αποφασίζει ποιος έχει τη δικαιοδοσία να τοποθετεί και να αναβαθµίζει πληροφορίες σε αυτήν. Επίσης αποφασίζει και τι πληροφορίες θα είναι αυτές που τοποθετούνται στην registry. Τα παραπάνω κάνουν αυτήν την προσέγγιση λίγο αυστηρή και ανελαστική καθώς είναι λίγοι αυτοί που θα έχουν τα δικαιώµατα και ίσως χρήσιµη πληροφορία να πηγαίνει χαµένη λόγω του φιλτραρίσµατος των πληροφοριών. Ως παράδειγµα για την προσέγγιση αυτή, αναφέρεται η UDDI registry (που περιγράφηκε στο 2 ο κεφάλαιο) Προσέγγιση Καταλόγου Σε αντίθεση µε τη registry, η προσέγγιση κατάλογου (index) είναι ένας συνδυασµός, ή καλύτερα ένας κατάλογος, για πληροφορίες που υπάρχουν καταχωρηµένες σε διάφορα µέρη. Επίσης δεν είναι κεντρικά διαχειρίσιµος ούτε εξαρτάται από εξουσιοδοτηµένα δικαιώµατα για τις πληροφορίες στις οποίες παραπέµπει. 67

69 Η δηµοσιεύση στην περίπτωση του καταλόγου είναι παθητική, ο πάροχος της υπηρεσίας εκθέτει τη σηµασιολογική και τη λειτουργική περιγραφή της υπηρεσίας στο internet και οι ενδιαφερόµενοι (indexes) τις συλλέγουν χωρίς απαραίτητα να το γνωρίζει ο πάροχος. Έτσι ο καθένας µπορεί να δηµιουργήσει το δικό του κατάλογο. Για τη συλλογή των περιγραφών χρησιµοποιούνται πράκτορες (agents) και στη συνέχεια καταχωρούνται και ταξινοµούνται ως κατάλογος. Οι κατάλογοι περιέχουν τόσο τις πληροφορίες όσο και τις αρχές που τις δηµοσιεύουν, οπότε µπορούν να κάνουν ενηµερώσεις και να τις επιβεβαιώνουν κάθε φορά πριν από τη χρήση. ιάφοροι κατάλογοι µπορούν να περιέχουν διαφορετικές πληροφορίες, άλλοι πιο πολλές και πλήρεις και άλλοι πιο λίγες και περιεκτικές. Το ποιοι κατάλογοι προτιµώνται και χρησιµοποιούνται από τους χρήστες είναι καθάρα στην κρίση τους αν και γενικά υπόκεινται στους κανόνες της ελεύθερης αγοράς (marketing, διαφήµιση κ.τ.λ.). Ένας τέτοιος κατάλογος, για παράδειγµα, είναι το google Peer-to-peer προσέγγιση Η συγκεκριµένη προσέγγιση παρέχει µια εναλακτική µέθοδο για την ανακάλυψη των υπηρεσιών ιστού. Κατά κάποιο τρόπο οι υπηρεσίες ανακαλύπτουν η µια την άλλη. Η κάθε υπηρεσία αποτελεί έναν κόµβο ενός δικτύου, του οποίου οι συµµετέχοντες µπορεί να είναι ή να µην είναι υπηρεσίες ιστού. Στην διαδικασία της ανακάλυψης ο αιτούντας πράκτορες κάνει ερωτήµατα στους γειτονικούς κόµβους αναζητώντας κάποια κατάλληλη υπηρεσία. Αν κάποιος από τους άλλους κόµβους ταιρίαζει στο ερώτηµα, τότε απαντάει. Στην περίπτωση που δεν υπάρχει κάποιος γειτονικός κόµβος που να πληρεί τις προϋποθέσεις του ερωτήµατος, το ερώτηµα προωθείται από κόµβο σε κόµβο µέχρι να βρεθεί ο κατάλληλος. Στην αρχιτεκτονική peer-to-peer δεν χρειάζεται µια κεντρική registry, αφού ο οποιοσδήποτε κόµβος θα απαντήσει σε ότι ερώτηµα και αν δεχθεί. Στην αρχιτεκτονική αυτή, επιπλέον, δεν υπάρχει κάποιο σηµείο αποτυχίας. Ακόµα επειδή ο κάθε κόµβος µπορεί να είναι µια υπηρεσία ιστού, ή και ένας κατάλογος, αυτό σηµαίνει ότι όλες οι πληροφορίες θα είναι έγκυρες και ενηµερωµένες. Ωστόσο, υπάρχουν και αρκετά µειονεκτήµατα. Λόγω της ύπαρξης πολλών κόµβων δεν είναι δυνατόν να προβλεφθεί το µέγεθος του µονοπατιού για την εύρεση της 68

70 κατάλληλης υπηρεσίας, γεγονός που προκαλεί µεγάλες καθυστερήσεις. Ο κόµβος, επίσης, µπορεί να είναι συνέχεια απασχοληµένος στο να παρέχει και να προωθεί πληροφορίες σε αλλούς κόµβους, γεγονός που προσθέτει πολύ µεγάλο overhead στο δίκτυο. Και τέλος, δεν παρέχεται καµία εγγύηση ότι το αίτηµα τελικά θα φτάσει στον προορισµό του και θα εξυπηρετηθεί. Αφού παρουσιάστηκαν, λοιπόν, τα πλεονεκτήµατα και τα µειονεκτήµατα της κάθε προσέγγισης οφείλουµε να αναφέρουµε ότι λόγω της διαφορετικότητάς τους, η κάθε µια ταιριάζει σε διαφορετική περίπτωση. Η peer-to-peer αρχιτεκτονική είναι πιο κατάλληλη για δυναµικά περιβάλλοντα στα οποία δεν είναι καθορισµένη η δοµή τους. Η κεντρικοποιήµενες registries είναι καταλληλότερες για στατικά, ελεγχόµενα περιβάλλοντα όπου οι πληροφορίες δεν αλλάζουν συχνά. Τέλος, οι κατάλογοι ταιριάζουν περισσότερο σε περιπτώσεις που πρέπει να γίνονται διαβαθµίσεις και απαιτούνται παραπάνω από µια στρατηγικές εύρεσης υπηρεσιών ιστού. 69

71 5 Υλοποίηση Στο κεφάλαιο αυτό θα γίνει µια ανάλυση και παρουσίαση των χαρακτηριστικών και το λειτουργιών της εφαρµογής που δηµιουργήθηκε. Γίνεται αναφορά στα εργαλεία που χρησιµοποιήθηκαν για τη υλοποιήση της εφαρµογής του γραφικού περιβάλλοντος. Επίσης, περιγράφονται λεπτοµερώς οι λειτουργίες που παρέχει η εφαρµογή αυτή, ποια είναι τα αποτελεσµατά τους και πως ακριβώς χρησιµοποιούνται. 5.1 Εργαλεία Υλοποίησης NetBeans Το NetBeans είναι ένα ελεύθερο λογισµικό, open source για την δηµιουργία εφαρµογών και προγραµµάτων. Ιδρύθηκε τον Ιούνιο του 2000 από την Sun Microsystems και αριθµεί 100 (και πλέον) συνεργάτες παγκοσµίως. Σήµερα υπάρχουν δύο ερευνητικά έργα: NetBeans IDE NetBeans Platform Παρέχει όλα τα απαραίτητα εργαλεία για τη δηµιουργία desktop, enterprise, web, ακόµα και mobile εφαρµογών. Υποστηρίζει όλα τα παρακάτω: Ajax C/C++ Databases Debugger Desktop Editor GUI Builder Java EE Java ME Java SE Javascript Mobile Profiler Refactor REST Rich Client Platform Ruby SOA SOAP UML Web WSDL XML. Είναι πολύ εύκολο στην εγκατάσταση, µε ένα απλό installation set-up, και υποστηρίζεται από όλες τις πλατφόρµες Windows, Linux, Mac OS X and Solaris (Σχήµα 5.1). Το NetBeans διαθέτει ένα πολύ χρήσιµο module, εύχρηστο και απλό, για τη δηµιουργία GUI interfaces (Σχήµα 5.2). Το module αυτό χρησιµοποιήθηκε για να δοθεί η αρχική µορφή στην εφαρµογή που αναπτύχθηκε. Βασικά, δηµιουργείται ένα αρχικό panel και ο χρήστης έχει τη δυνατότητα να τοποθετήσει σε αυτό οποιοδήποτε component επιθυµεί σε οποιαδήποτε θέση µε ένα απλό drag and drop. Γενικότερα, η εφαρµογή αυτή έχει 70

72 υλοποιηθεί µε χρήση της προγραµµατιστικής γλώσσας JAVA στην έκδοση NetBeans 6.1. Πληροφορίες Εγκατάστασης Η εγκατάσταση της πλατφόρµας NetBeans 6.1 έχει κάποιες βασικές απαιτήσεις τόσο σε software όσο και σε hardware. Software Requirements: Για να γίνει επιτυχηµένα η εγκατάσταση στο σύστηµά µας είναι απαραίτητο να έχει πρώτα εγκαταστηθεί το πακέτο Java SE Development Kit (JDK). Συγκεκριµένα, η έκδοση αυτού του πακέτου πρέπει να είναι, τουλάχιστον, η 5(version 1.5.0_14) ή και νεότερη. Σε οποιαδήποτε άλλη περίπτωση η εγκατάσταση του NetBeans είναι αδύνατη. Εικόνα 5.1. Περιβάλλον NetBeans Εικόνα 5.2. Module GUI-builder Οδηγίες δηµιουργίας GUI Παρακάτω θα παρουσιαστεί βήµα-βήµα η διαδικασία για τη δηµιουργία ενός Java GUI interface στο περιβάλλον NetBeans Επιλέγουµε File > New Project (Ctrl-Shift-N). 2. Στο παράθυρο New Project επιλέγουµε a. Categories > Java 71

73 b. Projects > Java application. 3. Εµφανίζεται ένα παράθυρο στο οποίο πρέπει να εισαχθούν κάποια στοιχεία σχετικά µε το προς δηµιουργία Project. a. Στο Project name βάζουµε το όνοµα του project b. Στο Project Location µπορούµε να επιλέξουµε οποιονδήποτε φάκελο στον υπολογιστή µας. 4. Στη συνέχεια, έχει δηµιουργηθεί το project και έχουµε τη δυνατότητα να επιλέξουµε ανάµεσα a. στη δηµιουργία ενός applet source file από αρχείο. Σε αυτήν την περίπτωση γράφουµε τις απαραίτητες εντολές στον editor του NetΒeans από το µηδέν ή b. στη δηµιουργία ενός java project µε τον GUI interface builder που µας δίνει ένα έτοιµο γραφικό περιβάλλον. Μετά προσθέτουµε στον editor τις απαραίτητες εντολές για τη λειτουργικότητα του περιβάλλοντος µε βάση τις απαιτήσεις της δικής µας εφαρµογής. Στην περίπτωση υλοποίησης της δικής µας εφαρµογής έχει χρησιµοποιηθεί ο GUI interface builder Jena H Jena είναι ένα σύστηµα γραµµένο σε Java για τη δηµιουργία και την ανάπτυξη εφαρµογών σηµασιολογικού ιστού. Είναι ένα open source πρόγραµµα και υποστηρίζεται από το HP Labs Semantic Web Programme. Παρέχει ένα προγραµµατιστικό περιβάλλον για σηµασιολογικές γλώσσες και µοντέλα όπως, RDF, RDFS, OWL, SPARQL, και περιέχει µια µηχανή εξαγωγής συµπερασµάτων βασισµένη σε κανόνες. Γενικά, η Jena περιλαµβάνει τα εξής χαρακτηριστικά: RDF API. Ανάγνωση και εγγραφή RDF σε RDF/XML, N3 and N-Triples. OWL API. Εσωτερική µνήµη (In-memory) και διαρκής αποθήκευση (persistent storage) SPARQL µηχανή ερωτηµάτων. 72

74 ηµιουργήσαµε, λοιπόν, ένα πρόγραµµα γραµµένο στο netbeans, το οποίο µας παρέχει τη δυνατότητα να διαβάζουµε µια σηµασιολογική περιγραφή µιας οποιαδήποτε υπηρεσίας ιστού και να επεξεργαζόµαστε τις σηµασιολογίες του profile της. Μπορούµε, δηλαδή, να πάρουµε πληροφορίες για το ποιο είναι το όνοµα της υπηρεσίας, ποια είναι η τοποθεσία που φιλοξενείται, τι είδους και τι πλήθος εισόδων και εξόδων έχει και άλλα. Αυτές οι σηµασιολογικές πληροφορίες είναι βασικής σηµασίας για την ανάπτυξη της εφαρµογής WeSLi που δηµιουργήσαµε και περιγράφεται αναλυτικά στη συνέχεια του κεφαλαίου Apache Server Για να λειτουργήσει ο κώδικας της Jena µαζί µε τον κώδικα που γράφτηκε σε Java και για να µπορέσει να γίνει η συλλογιστική (reasoning) και η χρησιµοποίηση των σηµασιολογικών δεδοµένων των υπηρεσιών ιστού, θεωρήθηκε απαραίτητο να λειτουργήσει ένας apache server, στον οποίο θα βρίσκονταν οι σηµασιολογικές περιγραφές των υπηρεσιών ιστού. Όπως έχει ήδη αναφερθεί οι υπηρεσίες ιστού αναπαριστώνται από URIs και βρίσκονται κάπου στο διαδίκτυο. Συνεπώς, κάναµε µια τέτοια προσοµοίωση και στον υπολογιστή µας. Για τη φιλοξενία των υπηρεσιών στον apache χρησιµοποιήθηκε η εφαρµογή EasyPHP ( το οποίο είναι ένα open source πρόγραµµα. Το EasyPHP είναι ένα πρόγραµµα που δίνει τη δυνατότητα στο χρήστη να στήσει έναν server στον υπολογιστή του και να αναπτύξει εφαρµογές ιστού, δυναµικές διαδικτυακές σελίδες, MySQL βάσεις κ.τ.λ. Στην περίπτωση της ανάπτυξης της δικιάς µας εφαρµογής, WeSLi, ο χρήστης αφού εγκαταστήσει το πρόγραµµα αυτό θα πρέπει να δηµιουργήσει ένα φάκελο «services» στον φάκελο www που έχει δηµιουργηθεί κατά την εγκατάσταση του προγράµµατος στο σύστηµα του. Στον φάκελο services ο χρήστης τοποθετεί τις σηµασιολογικές περιγραφές που τον ενδιαφέρουν και θέλει να χρησιµοποιήσει. Σηµασιολογικές περιγραφές υπηρεσιών ένας χρήστης µπορεί να βρει είτε στο διαδίκτυο είτε κάποιες προτεινόµενες, που βρίσκονται στο cd της εφαρµογής WeSLi. 73

75 5.2 Η εφαρµογή WeSLi Σκοπός της ανάπτυξης της εφαρµογής WeSLi (Web Service Linker), ήταν η δηµιουργία ενός γραφικού περιβάλλοντος για την απεικόνιση και τη διασύνδεση υπηρεσιών ιστού. Στο περιβάλλον αυτό ο χρήστης έχει τη δυνατότητα να εισάγει όσες υπηρεσίες ιστού τον ενδιαφέρουν και εκµεταλλευόµενος τη γραφική τους απεικόνιση να πραγµατοποιήσει τις µεταξύ τους σύνδεσεις. Η εφαρµογή αυτή αναπτύχθηκε σε γλώσσα Java και µε τη βοήθεια των εργαλείων που αναφέρθηκαν παραπάνω ιεπιφάνεια προγράµµατος Κατά την εκκίνηση του προγράµµατος εµφανίζεται το κεντρικό παράθυρο (Εικόνα 5.3) στο οποίο θα εκτελούνται όλες οι ενέργειες του χρήστη. Εικόνα 5.3. Κεντρικό παράθυρο WeSLi Το παράθυρο αυτό είναι χωρισµένο σε δύο τµήµατα και στη µπάρα των µενού. Στο αριστερό πάνελ θα τοποθετούνται σε λίστα τα ονόµατα των υπηρεσιών ιστού που θα επιλέγει ο χρήστης προς επεξεργασία. Το δεξί πάνελ θα είναι το µέρος εκείνο, όπου ο χρήστης θα βλέπει τα γραφικά απότελέσµατα και τις απεικονίσεις των ενεργειών του. Το µενού θα αναλυθεί παρακάτω. Επίσης, ο χρήστης µπορεί αν θέλει να εκτελέσει κλασσικές λειτουργίες, όπως minimize, maximize και close. 74

76 File menu: Το µενού αυτό περιλαµβάνει τρείς επιλογές, τα load, open και save. Σε λειτουργία είναι η µια από τις τρείς, το load. Όταν την επιλέγει ο χρήστης εµφανίζεται ένα παράθυρο από το οποίο καλείται να δώσει τη διαδροµή (path) που αντιπροσωπεύει τη σηµασιολογική περιγραφή της υπηρεσίας ιστού, για να γίνει η εισαγωγή του στη λίστα. Το αποτέλεσµα της λειτουργίας αυτής είναι να δηµιουργηθεί η λίστα µε τις υπηρεσίες ιστού που έχει επιλέξει ο χρήστης. Εικόνα 5.4. Load menu και web services list Options menu: Το µενού αυτό αποτελείται από δύο βασικές λειτουργίες, τις connect services και delete services. Ο χρήστης επιλέγει την λειτουργία connect για να κάνει µια σύνδεση µεταξύ δύο υπηρεσιών ιστού και την delete όταν θέλει να διαγράψει µια υπηρεσία από το panel. Οι λειτουργίες αυτές είναι οι βασικότερες και κυριότερες του προγράµαµτος και θα παρουσιάστουν µε µεγαλύτερη λεπτοµέρεια παρακάτω. Εικόνα 5.5. Options menu 75

77 Help menu: Στο µενού αυτό ο χρήστης έχει δύο επιλογές, την quick guide και το about. Στην επιλογή της quick guide εµφανίζεται ένα παράθυρο µε οδηγίες προς το χρήστη για το πως να διαχειριστεί την εφαρµογή, ενώ στο about εµφανίζονται πληροφορίες σχετικά µε στοιχεία του προγράµµατος. Εικόνα 5.6. Quick guide και About Βασικές λειτουργίες προγράµµατος Aπεικόνιση υπηρεσιών ιστού Μια από τις βασικές λειτουργίες και ίσως και η πιο σηµαντική είναι η γραφική απεικόνιση των υπηρεσιών ιστού που επιλέγει ο χρήστης να επεξεργαστεί. Η εφαρµογή WeSLi είναι σε θέση να παρουσιάζει µια γραφική απεικόνιση εκµεταλλεύοµενη τα λειτουργικά και µη χαρακτηριστικά της κάθε υπηρεσίας. Αυτά τα χαρακτηριστικά είναι το όνοµα του, ο αριθµός των εισόδων και εξόδων της υπηρεσίας. Η κάθε υπηρεσία ιστού παρουσιάζεται από ένα ορθογώνιο, στις ακµές του οποίου εµφανίζονται οι είσοδοι στην αριστερή ακµή και οι έξοδοι στην δεξία ακµή. Η απεικόνιση αυτή είναι άκρως λειτουργική και βοηθητική για το χρήστη καθώς του δίνει όλες τις απαραίτητες πληροφορίες που χρειάζεται για να επεξεργαστεί την υπηρεσία ιστού και να έχει µια πλήρη κατανόηση των στοιχείων και των χαρακτηριστικών του. Για να εµφανιστεί αυτή η απεικόνιση στο δεξί panel της εφαρµογής µας αρκεί ο χρήστης να επιλέξει µε διπλό κλικ την υπηρεσία ιστού που τον ενδιαφέρει από την αριστερή λίστα. Το αποτέλεσµα της λειτουργίας αυτής φαίνεται στην εικόνα

78 Εικόνα 5.7. Γραφική απεικόνιση web services Μπορεί κανείς να παρατηρήσει αναλυτικά τα εξής χαρακτηριστικά που είναι κοινά σε κάθε µια υπηρεσία ιστού. Κάτω από το καθένα εµφανίζεται το όνοµα του, που εξάγεται από τη σηµασιολογική περιγραφή της κάθε υπηρεσίας, ώστε να µπορεί να το εντοπίζει εύκολα ο χρήστης µέσα στο panel επεξεργασίας. Ακόµα οι είσοδοι και οι έξοδοι της κάθε υπηρεσίας παρουσιάζονται από κυκλάκια, πράσινο χρώµα για τις εισόδους και µπλέ για τις εξόδους. Η διαφορά τους εντοπίζεται στο γεγονός ότι ο αριθµός τους δεν είναι σταθερός. Αυτό συµβαίνει γιατί η εφαρµογή έχει τη δυνατότητα να εκµεταλλεύεται τα σηµασιολογικά δεδοµένα της περιγραφής της κάθε υπηρεσίας ιστού και να εντοπίζει το πλήθος των εισόδων ή των εξόδων. Όπως φαίνεται και στην εικόνα 5.7 δεν είναι απαραίτητο να υπάρχουν όλα τα χαρακτηριστικά σε µια υπηρεσία. Για παράδειγµα, κάποιο µπορεί να µην έχει καθόλου εισόδους, όπως το ABC Headlines, ή καθόλου εξόδους, όπως το Sender. O σχεδιασµός της συγκεκριµένης απεικόνισης βασίζεται στην έννοια του µαύριου κουτιού, που εµφανίζεται στην ορολογία της τεχνολογίας ανάπτυξης λογισµικού. Γενικά, µια υπηρεσία ιστού µπορεί να αντιµετοπιστεί και ως µια εφαρµογή στην οποία δίνεται µια ή περισσότερες είσοδοι, στο εσωτερικό της πραγµατοποιείται κάποια επεξεργασία 77

79 και παράγεται ένα αποτέλεσµα, οι έξοδοι. Ακριβώς, λοιπόν, εφόσον δεν µας αφορά η ακριβής διαδικασία εξαγωγής των εξόδων, παροµοιάσαµε τη συγκεκριµένη απεικόνιση µε την φιλοσοφία του µαύρου κουτιού. Αυτό είναι το ορατό αποτέλεσµα στο χρήστη. Στην ουσία, όµως, γίνονται και άλλες λειτουργίες. Όταν ο χρήστης επιλέγει από τη λίστα µια υπηρεσία ιστού το πρόγραµµα αυτόµατα καταχωρεί ως αντικείµενο σε έναν πίνακα την υπηρεσία µε τα χαρακτηριστικά της. Τα χαρακτηριστικά αυτά, εξάγωνται µε τη βοήθεια του κώδικα της Jena από την σηµασιολογική περιγραφή της υπηρεσίας. Τέτοια χαρακτηριστικά είναι το όνοµα της υπηρεσίας, ο τύπος των εισόδων και των εξόδων και ο τύπος τους. ηµιουργείται, λοιπόν, µια καταχώρηση, χάρη στην οποία το πρόγραµµα µπορεί και εκµεταλλεύεται τα χαρακτηριστικά της κάθε υπηρεσίας ιστού για να εξασφαλιστεί η εγγυρότητα και η παρουσίαση της πραγµατικότητας στις ενέργειες του χρήστη που θα ακολουθήσουν. ιασύνδεση υπηρεσιών ιστού Εφόσον, λοιπόν, ο χρήστης της εφαρµογής έχει επιλέξει ποιες υπηρεσίες ιστού θέλει να επεξεργαστεί και τα έχει µπροστά του στο panel µπορεί να δηµιουργήσει τις διασυνδέσεις µεταξύ των υπηρεσιών. Στην πραγµατικότητα, η διασυνδέσεις γίνονται µέσω των εξόδων και των εισόδων των υπηρεσιών, τα οποία έχουν καταχωρηθεί ως στοιχεία του προγράµµατος στην προηγούµενη διαδικασία. Για να πραγµατοποιήθει η διασύνδεση που ο χρήστης επιθυµεί αρκεί να επιλέξει από το µενού options την επιλογή Connect services. Αυτοµάτως εµφανίζεται ένα παράθυρο (εικόνα 5.8) όπου περιέχονται σε combo boxes τα ονόµατα των υπηρεσιών ιστού που απεικονίζονται στο panel της εφαρµογής, καθώς και τα στοιχεία των εξόδων των αντίστοιχων υπηρεσιών. Ο χρήστης καλείται να διαλέξει από τη λίστα ποια υπηρεσία τον ενδιαφέρει να συνδέσει και αυτοµάτως εµφανίζονται στο δεύτερο combo box οι έξοδοι που του αντιστοιχούν. Επιλέγοντας το ΟΚ, εµφανίζεται ένα δεύτερο ίδιο παράθυρο (εικόνα 5.9) στο οποίο όµως αυτή τη φορά ο χρήστης επιλέγει τη δεύτερη υπηρεσία προς σύνδεση. Εποµένως, σε αυτή την περίπτωση, αφού επιλεγεί την υπηρεσία βάσει του ονόµατος του, εµφανίζονται οι είσοδοι που του αντιστοιχούν. Το ορατό αποτέλεσµα αυτών των ενεργειών είναι µια γραµµή στο panel από την πρώτη επιλεγµένη έξοδο προς τη δεύτερη επιλεγµένη είσοδο. 78

80 Εικόνα 5.8. Επιλογή 1 ου service Εικόνα 5.9. Επιλογή 2 ου service Η συγκεκριµένη σύνδεση αποτέλει τη γραφική αναπαράσταση µιας λειτουργικής ενέργειας. Η ενέργεια αυτή είναι η αλλήλεπιδραση που µπορούν να έχουν δύο υπηρεσίες ιστού µέσω των εξόδων και των εισόδων τους. Όπως αναφέρθηκε αναλυτικά στο κεφάλαιο 4 (4.3.1) οι είσοδοι και οι έξοδοι των υπηρεσιών ιστού διέπονται από κάποιες µεταξύ τους σχέσεις (relationships). Αυτές οι σχέσεις είναι, λοιπόν, που µπορούν να χρησιµοποιήθουν για να δηνιουργηθούν πιο σύνθετες υπηρεσίες ιστού. Αυτό το αποτέλεσµα επιδιώκουµε µε την ανάπτυξη της εφαρµογής αυτής. Εικόνα Γραφική απεικόνιση σύνδεσης 79

81 Εδώ αξίζει να σηµειωθεί ότι δεν εµφανίζονται πάντα όλες οι έξοδοι που απεικονίζονται στην κάθε µια υπηρεσία ιστού. Αυτό συµβαίνει, γιατί κάθε φόρα που επιλέγεται η υπηρεσία προς διασύνδεση ελέγχονται οι έξοδοι ως προς το αν είναι κατειληµένες ή όχι. ηλαδή, ο χρήστης µπορεί σε προήγουµενη ενέργεια να έχει ήδη συνδέσει κάποια έξοδο, γεγονός που το κάνει µη διαθέσιµο για άλλη σύνδεση. Με αυτό τον τρόπο εξασφαλίζεται η εγγυρότητα των ενεργειών του χρήστη. ιαγραφή υπηρεσίας ιστού Στο panel εργασιών ο χρήστης µπορεί να απεικονίσει όσες υπηρεσίες θέλει και τον ενδιαφέρουν. Σίγουρα, όµως, θα χρειαστεί κάποια στιγµή να αφαιρέσει κάποια από αυτές, είτε σε περίπτωση που έχει κάνει λάθος επιλογή είτε σε περίπτωση που δεν την χρειάζεται πια. Η εφαρµογή του δίνει αυτή τη δυνατότητα µέσα από το options µενού και την επιλογή Delete service. Όταν την επιλέξει, λοιπόν, εµφανίζεται ένα παράθυρο (εικόνα 5.11) που παρουσιάζει σε ένα combo box τα ονόµατα όλων των υπηρεσιών που απεικονίζονται στο panel. Εικόνα Μενού διαγραφής Ο χρήστης αποφασίζει ποια υπηρεσία θέλει, τελικά, να διαγραφεί και αυτό εξαφανίζεται από το panel. Το αποτέλεσµα αυτής της ενέργειας φαίνεται στην εικόνα 5.12, όπου έχει σβηστεί το service Book Hotel (εικόνα 5.10). Είναι σηµαντικό να αναφέρουµε ότι η διαγραφή της υπηρεσίας ιστού για να µπορεί να ανταποκρίνεται στην πραγµατικότητα και στην εγγυρότητα των αποτελεσµάτων που θέλει να προσφέρει η εφαρµογή, δεν διαγράφεται απλά η γραφική του απεικόνιση, αλλά όλη η υπηρεσία σαν οντότητα. Όπως αναφέραµε, όταν ο χρήστης επιλέγει να δηµιουργηθεί µια υπηρεσία, δηµιουργείται αυτόµατα και µια καταχώρηση 80

82 στο πρόγραµµα µε όλα τα στοιχεία της υπηρεσίας ενηµερωµένα. Για να διασφαλίσουµε, λοιπόν, ότι ο χρήστης στις επιλογές των ενεργειών του θα βλέπει πάντα αυτές που ανταποκρίνονται στην πραγµατικότητα µε την ενέργεια της διαγραφής, αφαιρείται η καταχώρηση της υπηρεσίας και των χαρακτηριστικών του από το πρόγραµµα. Εικόνα ιαγραφή service ευτερεύουσες λειτουργίες προγράµµατος Μετακίνηση των υπηρεσιών στο panel Όταν ο χρήστης της εφαρµογής επιλέξει µε διπλό κλικ να απεικονιστεί κάποια υπηρεσία ιστού από τη λίστα στο panel, το πρόγραµµα κάνει συγκεκριµένους ελέγχους στο panel ενεργειών για να το τοποθέτησει σε αυτό. Ο βασικός έλεγχος που πραγµατοποιέιται είναι να απεικονιστεί η κάθε καινούρια υπηρεσία σε τέτοια θέση ώστε να µην καλύπτει κάποια άλλη που ήδη υπάρχει στο panel. Αφού βεβαιωθεί για αυτό τοποθετεί την απεικόνιση της υπηρεσίας σε µια τυχαία θέση. Παρόλα αυτά η εφαρµογή δίνει στο χρήστη τη δυνατότητα να τοποθετήσει εντέλει και να ταξινοµήσει τις απεικονίσεις µε χρήση της 81

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Περιεχόμενα Εισαγωγή στις Υπηρεσίες Ιστού Ορισμοί Παραδείγματα Σύγκριση με άλλες τεχνολογίες Πρωτόκολλα Υπηρεσιών Ιστού SOAP

Διαβάστε περισσότερα

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

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

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

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Χρήστος Ηλιούδης Πλεονεκτήματα των Υπηρεσιών Ιστού Διαλειτουργικότητα: Η χαλαρή σύζευξή τους οδηγεί στην ανάπτυξη ευέλικτου λογισμικού

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών World Wide Web (WWW) Θέματα Επεξεργασία δεδομένων στο Web Δημιουργία απλών σελίδων HTML Περιγραφή κάποιων XHTML στοιχείων (tags) Εξέλιξης του WWW Το WWW

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

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

Τεχνικές Προδιαγραφές ιαλειτουργικότητας ΤΕΧΝΙΚΕΣ ΠΡΟ ΙΑΓΡΑΦΕΣ ΕΙΓΜΑ ΠΑΡΑΡΤΗΜΑΤΟΣ ΙΑΓΩΝΙΣΜΟΥ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «Κοινωνία της Πληροφορίας» http://www.infosociety.gr Μάιος 2003 Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ Web Services

ΚΕΦΑΛΑΙΟ Web Services ΚΕΦΑΛΑΙΟ Web Services Προϋποθέσεις εγκατάστασης Web Services για το Κεφάλαιο 4.50 1. Κεφάλαιο έκδοση 4.51e build 458 ή νεότερο 2. Internet Information Server (IIS) version 6 ή νεότερος 3. Σε κάποιον υπολογιστή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

7.11 Πρωτόκολλα εφαρµογής 7.11 Πρωτόκολλα εφαρµογής Ερωτήσεις 1. Ποιος ο ρόλος των πρωτοκόλλων εφαρµογής και πώς χειρίζονται τις συνδέσεις δικτύου; 2. Γιατί κάθε πρωτόκολλο εφαρµογής ορίζει συγκεκριµένο τρόπο παρουσίασης των δεδοµένων;

Διαβάστε περισσότερα

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

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

Διαβάστε περισσότερα

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

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol) Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας Κέρκυρα ίκτυα - Internet 2 Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) ΜηχανέςΑναζήτησηςστοWeb Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία

Διαβάστε περισσότερα

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

«Σημασιολογική Αναζήτηση Υπηρεσιών Ιστού βάση των δυνατοτήτων τους» Semantic Matching of Web Services Capabilities ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΠΟΛΙΤΙΚΩΝ ΣΠΟΥΔΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Σημασιολογική Αναζήτηση Υπηρεσιών Ιστού βάση των δυνατοτήτων τους»

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

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

Μεταπτυχιακή Διατριβή Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Υπηρεσία Αυτόματης Ανάκτησης Συνδεδεμένης Δομής Θεματικών Επικεφαλίδων μέσω

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή ΚΕΦΑΛΑΙΟ 17: Web Services 17.1. Εισαγωγή Με τον όρο WebService αναφερόμαστε σε ένα σύστημα λογισμικού το οποίο σχεδιάστηκε με τρόπο τέτοιο ώστε να υποστηρίζει την ανεμπόδιστη συνεργασία δύο μηχανών μέσω

Διαβάστε περισσότερα

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

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html Χρ. Ηλιούδης Παγκόσμιος Ιστός (WWW) Ο Παγκόσμιος Ιστός (World Wide Web WWW), ή απλώς Ιστός, βασίζεται στην ιδέα των κατανεμημένων πληροφοριών. Αντί όλες

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

Διπλωματικές των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη

Διπλωματικές των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Διπλωματικές 2006-2007 των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη Επιβλέπων: Ι. Βλαχάβας 1.

Διαβάστε περισσότερα

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αλέξανδρος Βαλαράκος (alexv@iit.demokritos.gr) (alexv@aegean.gr) Υποψήφιος ιδάκτορας Τµήµα Μηχανικών Υπολογιστικών και Πληροφοριακών Συστηµάτων.

Διαβάστε περισσότερα

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

Διαβάστε περισσότερα

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

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

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML Δικτυακά Πολυμέσα ΙΙ Διάλεξη #2 η : Βασικές έννοιες σχεδιασμού στο web Γαβαλάς Δαμιανός dgavalas@aegean.gr Περιεχόμενα Τρέχον status της HTML Μετάβαση από την HTML στην XHTML Κλέ Καλές πρακτικές συγγραφής

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας Υπηρεσίες Internet ίκτυα Η/Υ Επίπεδο Εφαρµογής O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

* Enterprise Resource Planning ** Customer Relationship Management

* Enterprise Resource Planning ** Customer Relationship Management Υπηρεσιοστρεφείς Επιχειρησιακές ιαδικασίες ιαµοιρασµός και Επαναχρησιµοποίηση Αποτελούν βασικές απαιτήσειςκατά το σχεδιασµό και την ολοκλήρωση (integration) επιχειρησιακών διαδικασιών ιαµοιρασµός: πολλοί

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Κωστής Αϊβαλής Μηχανικός Πληροφορικής TU-Berlin 2/5/2008 ΕΑΠ-ΓΤΠ61-Κωστής Αϊβαλής 1 Εισαγωγή Η ταχύτητα επεξεργασίας των εφαρµογών διαδικτυακών υπηρεσιών

Διαβάστε περισσότερα

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας

ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας ΜΑΘΗΜΑ 6 195 Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων Το RDF Το Warwick Framework 196 1 Resource Data Framework RDF Τα πολλαπλά και πολλαπλής προέλευσης σχήµατα παραγωγής δηµιουργούν την ανάγκη δηµιουργίας

Διαβάστε περισσότερα

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 example Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 Πρότυπα και XML Πρότυπα ενιαίο

Διαβάστε περισσότερα

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014 Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014 Ανοικτά και Συνδεδεμένα Δεδομένα Ανοικτά Δεδομένα Πληροφορίες, δημόσιες ή άλλες, στις

Διαβάστε περισσότερα

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

...στις µέρες µας, όσο ποτέ άλλοτε, οι χώρες καταναλώνουν χρόνο και χρήµα στη µέτρηση της απόδοσης του δηµόσιου τοµέα...(oecd)

...στις µέρες µας, όσο ποτέ άλλοτε, οι χώρες καταναλώνουν χρόνο και χρήµα στη µέτρηση της απόδοσης του δηµόσιου τοµέα...(oecd) Κατηγορία Καλύτερης Εφαρµογής 4-delta: ηµιουργία & ιαχείριση ιαδικασιών Αξιολόγησης στο ηµόσιο τοµέα Χονδρογιάννης Θεόδωρος Εθνικό Καποδιστριακό Πανεπιστήµιο Αθηνών Αλεξόπουλος Χαράλαµπος Πανεπιστήµιο

Διαβάστε περισσότερα

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

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0 Καραμαούνας Πολύκαρπος 1 9.1 Ιστορικά Στοιχεία Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο και ήταν απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΛΟΓΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (III) ΙΖΑΜΠΩ ΚΑΡΑΛΗ ΑΘΗΝΑ 2008 Σύγχρονεςανάγκες για αναπαράσταση γνώσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες 1 η Ερώτηση (Ορισμός): Τι είναι το Διαδίκτυο; Διαδίκτυο είναι το παγκόσμιο δίκτυο όλων των επιμέρους δικτύων που έχουν συμφωνήσει σε κοινούς κανόνες επικοινωνίας και

Διαβάστε περισσότερα

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

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες.

Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες. Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες. Για να επιτευχθεί αυτό όλοι οι υπολογιστές και τα επιμέρους

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ9: Διαδίκτυο, Web2.0, WebX.0 9.1 Ιστορικά στοιχεία Από πού, πότε με ποια μορφή και με ποια αφορμή ξεκίνησε η λειτουργία του Διαδικτύου; Ξεκίνησε στην Αμερική, το 1969,

Διαβάστε περισσότερα

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

Σημασιολογικός Ιστός (Semantic Web) - XML Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σημασιολογικός Ιστός (Semantic Web) - XML 4/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

Διαβάστε περισσότερα

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

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού 1η διάλεξη Χαρακτηριστικά Μαθήματος Μάθημα προγραμματισμού (και όχι μόνον) Μπορεί να εξελιχθεί σε εφιάλτη αν δεν έχετε καλή γνώση και αρκετή εμπειρία προγραμματισμού (Java)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Γεώργιος Σταυρουλάκης gstavr@dblab.ece.ntua.gr ιπλωµατική εργασία στο Εργαστήριο Συστηµάτων Βάσεων Γνώσεων και εδοµένων Επιβλέπων: Καθηγητής

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη. πληροφοριακών συστηµάτων

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη. πληροφοριακών συστηµάτων Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη πληροφοριακών συστηµάτων οµή παρουσίασης Τεχνολογική-Ιστορική Επισκόπηση Φάσεις Ανάπτυξης Πληροφοριακού Συστήµατος

Διαβάστε περισσότερα

Σηµασιολογικές Υπηρεσίες Ιστού

Σηµασιολογικές Υπηρεσίες Ιστού Citation: Thanassis Tiropanis, Notes on Semantic Web Services, July 2006 http://eprints.ecs.soton.ac.uk/18173/ You may contact the author at: tt2@ecs.soton.ac.uk Σηµασιολογικές Υπηρεσίες Ιστού Θανάσης

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 4: Χρησιμοποιώντας Ενιαία Αναγνωριστικά URIs και IRIs Μ.Στεφανιδάκης 28-2-2016. Η έννοια της οντότητας Στον Σημασιολογικό Ιστό οι τριάδες μπορούν να εκληφθούν ως

Διαβάστε περισσότερα

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων World Wide Web Παγκόσμιος Ιστός Internet - WWW Internet: παγκόσμιο δίκτυο υπολογιστών που βασίζεται στο πρωτόκολο επικοινωνίας TCP/IP και

Διαβάστε περισσότερα

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

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας. Η Πυξίδα Απασχόλησης είναι ένα πλήρως παραμετροποιήσιμο portal που απευθύνεται σε Κέντρα Επαγγελματικής Κατάρτισης, Δήμους, Εκπαιδευτικούς Οργανισμούς και Εταιρίες Εύρεσης Εργασίας, με στόχο τόσο την μηχανογράφηση

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο - Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας

Ιόνιο Πανεπιστήμιο - Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας Μεταδεδομένα για Ψηφιακές Βιβλιοθήκες Γ. Δ. Μπώκος Μεταδεδομένα: Ο όρος Μεταδεδομένα: «Δεδομένα σχετικά με Δεδομένα» Αναλυτικότερα: «Το σύνολο όσων θα μπορούσε να πει κανείς για ένα πληροφοριακό αντικείμενο

Διαβάστε περισσότερα

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

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών Ουρανία Χατζή raniah@hua.gr Χαροκόπειο Πανεπιστήμιο 29 Νοεμβρίου 2007 Outline Web Service Overview Standards & Model Syntactic vs Semantic

Διαβάστε περισσότερα

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 16-3-2015. Τα επίπεδα του Σημασιολογικού Ιστού RDF: Το κύριο πρότυπο του Σημασιολογικού Ιστού, χρησιμοποιεί

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης

Διαβάστε περισσότερα

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

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ 1Τι είναι ο Παγκόσµιος Ιστός; Λόγω της µεγάλης απήχησης του Παγκόσµιου Ιστού πολλές φορές ταυτίζουµε τον Παγκόσµιο Ιστό µε το Διαδίκτυο. Στην πραγµατικότητα αυτή η αντίληψη

Διαβάστε περισσότερα

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

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

Διαβάστε περισσότερα

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

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

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003.1 - Επιστήµη της Πληροφορικής και Πληροφοριακά Συστήµατα Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Τελική Εξέταση: Σάββατο - 04/12/10, Ώρα: 08:30-11:30,

Διαβάστε περισσότερα

Πολιτισμική Τεχνολογία. Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α

Πολιτισμική Τεχνολογία. Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α Πολιτισμική Τεχνολογία Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α Δυνατότητες: Σύλληψη, συντήρηση, ανάδειξη Χρήση : Ψηφιακών βίντεο, ήχων, εικόνων, γραφικών παραστάσεων Οι συλλογές καθίστανται διαθέσιμες

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

Διαβάστε περισσότερα

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

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Βερονίκης Σπύρος Τμήμα Αρχειονομίας- Βιβλιοθηκονομίας, Ιόνιο Πανεπιστήμιο spver@ionio.gr Stoica Adrian Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Ολοκληρωμένο Πληροφοριακό Σύστημα Εξυπηρέτησης Πολιτών και Παρόχων

Ολοκληρωμένο Πληροφοριακό Σύστημα Εξυπηρέτησης Πολιτών και Παρόχων Ολοκληρωμένο Πληροφοριακό Σύστημα Εξυπηρέτησης Πολιτών και Παρόχων Γιάννης Γιαννάκος Ηλεκτρονικός Μηχανικός Ηλεκτρονικών Υπολογιστών/ Α.Δ.Α.Ε. Ηράκλειο,1Δεκεμβρίου 2008 ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ

Διαβάστε περισσότερα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα Στόχοι κεφαλαίου ίκτυα υπολογιστών (Κεφαλαιο 15 στο βιβλιο) Περιγραφή των κύριων θεµάτων σχετικά µε τα δίκτυα υπολογιστών Αναφορά στα διάφορα είδη δικτύων Περιγραφή των διαφόρων τοπολογιών των τοπικών

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 13-3-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

Διαβάστε περισσότερα

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.11 Πρωτόκολλα Εφαρµογής 104. Αναφέρετε ονοµαστικά τις πιο χαρακτηριστικές εφαρµογές που υποστηρίζει η τεχνολογία TCP/IP οι οποίες είναι διαθέσιµες στο ιαδίκτυο 1. Ηλεκτρονικό

Διαβάστε περισσότερα

Το Πλαίσιο Διαλειτουργικότητας & Υπηρεσιών. Ενημέρωση σχετικά με τις γενικές αρχές και τη. Ενημέρωση σχετικά με τα τεχνολογικά πρότυπα βάσει

Το Πλαίσιο Διαλειτουργικότητας & Υπηρεσιών. Ενημέρωση σχετικά με τις γενικές αρχές και τη. Ενημέρωση σχετικά με τα τεχνολογικά πρότυπα βάσει Το Πλαίσιο Διαλειτουργικότητας & Υπηρεσιών Ηλεκτρονικών Συναλλαγών (ΠΔ&ΥΗΣ) στοχεύει στην: Ενημέρωση σχετικά με τις γενικές αρχές και τη στρατηγική ανάπτυξης πληροφοριακών συστημάτων Ενημέρωση σχετικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

Διαβάστε περισσότερα

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

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

Διαβάστε περισσότερα

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Περιεχόµενα World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Εισαγωγή Ιστορική Αναδροµή Το ιαδίκτυο και το WWW Υπερκείµενο Εντοπισµός πληροφοριών στο WWW Search Engines Portals Unicode Java Plug-Ins 1 2

Διαβάστε περισσότερα

Κεφάλαιο 29. Τεχνητή Νοημοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου

Κεφάλαιο 29. Τεχνητή Νοημοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Κεφάλαιο 29 Σημασιολογικό Διαδίκτυο "The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation."

Διαβάστε περισσότερα

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

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

Αναφορά εργασιών για το τρίμηνο Σεπτέμβριος Νοέμβριος 2012 Όνομα : Μπελούλη Αγάθη

Αναφορά εργασιών για το τρίμηνο Σεπτέμβριος Νοέμβριος 2012 Όνομα : Μπελούλη Αγάθη Στο πλαίσιο της πράξης «Αναβάθμιση και Εμπλουτισμός των Ψηφιακών Υπηρεσιών της Βιβλιοθήκης του Παντείου Πανεπιστημίου». Η Πράξη συγχρηματοδοτείται από το Ευρωπαϊκό Ταμείο Περιφερειακής Ανάπτυξης (ΕΤΠΑ).

Διαβάστε περισσότερα